Forráskód Böngészése

1、销售合同、采购合同数据权限

dongpo 6 hónapja
szülő
commit
e49de52571
10 módosított fájl, 145 hozzáadás és 14 törlés
  1. 1 0
      yudao-module-finance/yudao-module-contract-api/src/main/java/cn/iocoder/yudao/module/contract/enums/ErrorCodeConstants.java
  2. 7 0
      yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/customercontract/vo/CustomerContractPageReqVO.java
  3. 1 1
      yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/customercontract/vo/CustomerContractRespVO.java
  4. 7 0
      yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/suppliercontract/vo/SupplierContractPageReqVO.java
  5. 1 1
      yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/suppliercontract/vo/SupplierContractRespVO.java
  6. 34 5
      yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/service/customercontract/CustomerContractServiceImpl.java
  7. 32 3
      yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/service/suppliercontract/SupplierContractServiceImpl.java
  8. 2 2
      yudao-module-finance/yudao-module-contract-biz/src/main/resources/mapper/customercontract/CustomerContractHistoryMapper.xml
  9. 29 0
      yudao-module-finance/yudao-module-contract-biz/src/main/resources/mapper/customercontract/CustomerContractMapper.xml
  10. 31 2
      yudao-module-finance/yudao-module-contract-biz/src/main/resources/mapper/suppliercontract/SupplierContractMapper.xml

+ 1 - 0
yudao-module-finance/yudao-module-contract-api/src/main/java/cn/iocoder/yudao/module/contract/enums/ErrorCodeConstants.java

@@ -21,4 +21,5 @@ public interface ErrorCodeConstants {
     // ========== 销售合同历史信息 1_052_003_001 ==========
     ErrorCode CUSTOMER_CONTRACT_HISTORY_NOT_EXISTS = new ErrorCode(1_052_003_001, "销售合同历史信息不存在");
 
+    ErrorCode CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER = new ErrorCode(1_052_004_001, "不允许修改/删除他人添加的合同");
 }

+ 7 - 0
yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/customercontract/vo/CustomerContractPageReqVO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo;
 
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -50,4 +51,10 @@ public class CustomerContractPageReqVO extends PageParam {
     @Schema(description = "是否终止 0否 1是")
     private Integer terminate;
 
+    @Schema(description = "数据权限")
+    private DeptDataPermissionRespDTO deptDataPermission;
+
+    @Schema(description = "用户id")
+    private Long userId;
+
 }

+ 1 - 1
yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/customercontract/vo/CustomerContractRespVO.java

@@ -126,7 +126,7 @@ public class CustomerContractRespVO {
     private String creator;
 
     @Schema(description = "创建者名称")
-    @ExcelProperty("创建者名称")
+    @ExcelProperty("创建")
     private String creatorName;
 
     @Schema(description = "创建时间")

+ 7 - 0
yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/suppliercontract/vo/SupplierContractPageReqVO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo;
 
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -49,4 +50,10 @@ public class SupplierContractPageReqVO extends PageParam {
 
     @Schema(description = "是否终止 0否 1是")
     private Integer terminate;
+
+    @Schema(description = "数据权限")
+    private DeptDataPermissionRespDTO deptDataPermission;
+
+    @Schema(description = "用户id")
+    private Long userId;
 }

+ 1 - 1
yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/controller/admin/suppliercontract/vo/SupplierContractRespVO.java

@@ -126,7 +126,7 @@ public class SupplierContractRespVO {
     private String creator;
 
     @Schema(description = "创建者名称")
-    @ExcelProperty("创建者名称")
+    @ExcelProperty("创建")
     private String creatorName;
 
     @Schema(description = "创建时间")

+ 34 - 5
yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/service/customercontract/CustomerContractServiceImpl.java

@@ -8,7 +8,13 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
-import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.*;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractCloseReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractListVO;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractPageReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractRespVO;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractSaveReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractStatusReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractTerminatedReqVO;
 import cn.iocoder.yudao.module.contract.dal.dataobject.customercontract.CustomerContractDO;
 import cn.iocoder.yudao.module.contract.dal.dataobject.customercontract.CustomerContractHistoryDO;
 import cn.iocoder.yudao.module.contract.dal.mysql.customercontract.CustomerContractHistoryMapper;
@@ -18,23 +24,29 @@ import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
+import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
-import org.w3c.dom.ls.LSException;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Collections;
-import java.util.ConcurrentModificationException;
 import java.util.List;
 import java.util.Objects;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_CODE_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_HISTORY_NOT_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_NAME_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_NOT_CLOSED;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_NOT_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_START_DATE_GREATER_THAN_END_DATE;
 import static cn.iocoder.yudao.module.employee.enums.ErrorCodeConstants.EMPLOYEE_INFO_NOT_EXISTS;
 
 /**
@@ -60,6 +72,9 @@ public class CustomerContractServiceImpl implements CustomerContractService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private PermissionApi permissionApi;
+
     @Override
     public String getCustomerContractCode() {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
@@ -115,7 +130,7 @@ public class CustomerContractServiceImpl implements CustomerContractService {
         }
 
         // 创建人
-        customerContract.setCreator(String.valueOf(loginEmployee.getId()));
+        // customerContract.setCreator(String.valueOf(loginEmployee.getId()));
 
         customerContractMapper.insert(customerContract);
 
@@ -152,6 +167,8 @@ public class CustomerContractServiceImpl implements CustomerContractService {
     public void updateCustomerContract(CustomerContractSaveReqVO updateReqVO) {
         // 校验存在
         CustomerContractDO customerContractDO = validateCustomerContractExists(updateReqVO.getId());
+        // 校验能否更新
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(customerContractDO.getCreator()));
         String customerContractCode = updateReqVO.getCustomerContractCode();
         if (StrUtil.isNotBlank(customerContractCode)) {
             validateCustomerContractCode(customerContractCode, updateReqVO.getId());
@@ -185,11 +202,18 @@ public class CustomerContractServiceImpl implements CustomerContractService {
         fileApi.updateFileBiz(updateReqVO.getFileIdList(), customerContractDO.getCustomerContractUuid());
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteCustomerContract(Long id) {
         // 校验存在
         CustomerContractDO customerContractDO = validateCustomerContractExists(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(customerContractDO.getCreator()));
         // 删除
         customerContractMapper.deleteById(id);
 
@@ -219,6 +243,11 @@ public class CustomerContractServiceImpl implements CustomerContractService {
 
     @Override
     public PageResult<CustomerContractRespVO> getCustomerContractPage(CustomerContractPageReqVO pageReqVO) {
+        // 数据权限
+        Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
+        DeptDataPermissionRespDTO deptDataPermission = permissionApi.getDeptDataPermission(loginUserId);
+        pageReqVO.setDeptDataPermission(deptDataPermission);
+        pageReqVO.setUserId(loginUserId);
         pageReqVO.setPageNo((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize());
 
         long pageCount = -1;

+ 32 - 3
yudao-module-finance/yudao-module-contract-biz/src/main/java/cn/iocoder/yudao/module/contract/service/suppliercontract/SupplierContractServiceImpl.java

@@ -8,7 +8,12 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
-import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.*;
+import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractCloseReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractPageReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractRespVO;
+import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractSaveReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractStatusReqVO;
+import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractTerminatedReqVO;
 import cn.iocoder.yudao.module.contract.dal.dataobject.suppliercontract.SupplierContractDO;
 import cn.iocoder.yudao.module.contract.dal.dataobject.suppliercontract.SupplierContractHistoryDO;
 import cn.iocoder.yudao.module.contract.dal.mysql.suppliercontract.SupplierContractHistoryMapper;
@@ -18,6 +23,8 @@ import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
+import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.stereotype.Service;
@@ -31,7 +38,13 @@ import java.util.List;
 import java.util.Objects;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_CODE_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_HISTORY_NOT_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_NAME_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_NOT_CLOSED;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_NOT_EXISTS;
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_START_DATE_GREATER_THAN_END_DATE;
 import static cn.iocoder.yudao.module.employee.enums.ErrorCodeConstants.EMPLOYEE_INFO_NOT_EXISTS;
 
 /**
@@ -57,6 +70,9 @@ public class SupplierContractServiceImpl implements SupplierContractService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private PermissionApi permissionApi;
+
     @Override
     public String getSupplierContractCode() {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
@@ -112,7 +128,7 @@ public class SupplierContractServiceImpl implements SupplierContractService {
         }
 
         // 创建人
-        supplierContract.setCreator(String.valueOf(loginEmployee.getId()));
+        // supplierContract.setCreator(String.valueOf(loginEmployee.getId()));
 
         supplierContractMapper.insert(supplierContract);
 
@@ -149,6 +165,7 @@ public class SupplierContractServiceImpl implements SupplierContractService {
     public void updateSupplierContract(SupplierContractSaveReqVO updateReqVO) {
         // 校验存在
         SupplierContractDO supplierContractDO = validateSupplierContractExists(updateReqVO.getId());
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(supplierContractDO.getCreator()));
         String supplierContractName = updateReqVO.getSupplierContractName();
         if (StrUtil.isNotBlank(supplierContractName)) {
             validateSupplierContractName(supplierContractName, updateReqVO.getId());
@@ -182,11 +199,18 @@ public class SupplierContractServiceImpl implements SupplierContractService {
         fileApi.updateFileBiz(updateReqVO.getFileIdList(), supplierContractDO.getSupplierContractUuid());
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteSupplierContract(Long id) {
         // 校验存在
         SupplierContractDO supplierContractDO = validateSupplierContractExists(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(supplierContractDO.getCreator()));
         // 删除
         supplierContractMapper.deleteById(id);
 
@@ -216,6 +240,11 @@ public class SupplierContractServiceImpl implements SupplierContractService {
 
     @Override
     public PageResult<SupplierContractRespVO> getSupplierContractPage(SupplierContractPageReqVO pageReqVO) {
+        // 数据权限
+        Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
+        DeptDataPermissionRespDTO deptDataPermission = permissionApi.getDeptDataPermission(loginUserId);
+        pageReqVO.setDeptDataPermission(deptDataPermission);
+        pageReqVO.setUserId(loginUserId);
         pageReqVO.setPageNo((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize());
 
         long pageCount = -1;

+ 2 - 2
yudao-module-finance/yudao-module-contract-biz/src/main/resources/mapper/customercontract/CustomerContractHistoryMapper.xml

@@ -16,7 +16,7 @@
             finance_customer_contract_history fcch
             LEFT JOIN employee_info ei ON ei.id = fcch.owner_employee_id AND ei.deleted = 0
             LEFT JOIN system_dept sd ON sd.id = fcch.dept_id AND sd.deleted = 0
-            LEFT JOIN employee_info ei2 ON ei2.id = fcch.creator AND ei2.deleted = 0
+            LEFT JOIN employee_info ei2 ON ei2.user_id = fcch.creator AND ei2.deleted = 0
             LEFT JOIN customer_info ci ON ci.id = fcch.customer_id AND ci.deleted = 0
         WHERE
             fcch.deleted = 0
@@ -77,7 +77,7 @@
             finance_customer_contract_history fcch
                 LEFT JOIN employee_info ei ON ei.id = fcch.owner_employee_id AND ei.deleted = 0
                 LEFT JOIN system_dept sd ON sd.id = fcch.dept_id AND sd.deleted = 0
-                LEFT JOIN employee_info ei2 ON ei2.id = fcch.creator AND ei2.deleted = 0
+                LEFT JOIN employee_info ei2 ON ei2.user_id = fcch.creator AND ei2.deleted = 0
                 LEFT JOIN customer_info ci ON ci.id = fcch.customer_id AND ci.deleted = 0
         WHERE
             fcch.deleted = 0

+ 29 - 0
yudao-module-finance/yudao-module-contract-biz/src/main/resources/mapper/customercontract/CustomerContractMapper.xml

@@ -9,6 +9,35 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
 
+    <sql id="deptDataPermission">
+        <choose>
+            <when test="page.deptDataPermission.all">
+                <!-- 全部数据权限 -->
+            </when>
+            <when test="page.deptDataPermission.deptIds != null and page.deptDataPermission.deptIds.size() > 0 and page.deptDataPermission.self">
+                AND (
+                fcc.dept_id IN
+                <foreach collection="page.deptDataPermission.deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+                OR fcc.creator = #{page.userId}
+                )
+            </when>
+            <when test="page.deptDataPermission.deptIds != null and page.deptDataPermission.deptIds.size() > 0">
+                AND fcc.dept_id IN
+                <foreach collection="page.deptDataPermission.deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </when>
+            <when test="page.deptDataPermission.self">
+                AND fcc.creator = #{page.userId}
+            </when>
+            <otherwise>
+                AND 1 = 2
+            </otherwise>
+        </choose>
+    </sql>
+
     <select id="getPageCount" resultType="java.lang.Long">
         SELECT
         count(fcc.id)

+ 31 - 2
yudao-module-finance/yudao-module-contract-biz/src/main/resources/mapper/suppliercontract/SupplierContractMapper.xml

@@ -9,6 +9,35 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
 
+    <sql id="deptDataPermission">
+        <choose>
+            <when test="page.deptDataPermission.all">
+                <!-- 全部数据权限 -->
+            </when>
+            <when test="page.deptDataPermission.deptIds != null and page.deptDataPermission.deptIds.size() > 0 and page.deptDataPermission.self">
+                AND (
+                fsc.dept_id IN
+                <foreach collection="page.deptDataPermission.deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+                OR fsc.creator = #{page.userId}
+                )
+            </when>
+            <when test="page.deptDataPermission.deptIds != null and page.deptDataPermission.deptIds.size() > 0">
+                AND fsc.dept_id IN
+                <foreach collection="page.deptDataPermission.deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </when>
+            <when test="page.deptDataPermission.self">
+                AND fsc.creator = #{page.userId}
+            </when>
+            <otherwise>
+                AND 1 = 2
+            </otherwise>
+        </choose>
+    </sql>
+
     <select id="getPageCount" resultType="java.lang.Long">
         SELECT
             count(fsc.id)
@@ -16,7 +45,7 @@
             finance_supplier_contract fsc
             LEFT JOIN employee_info ei ON ei.id = fsc.owner_employee_id AND ei.deleted = 0
             LEFT JOIN system_dept sd ON sd.id = fsc.dept_id AND sd.deleted = 0
-            LEFT JOIN employee_info ei2 ON ei2.id = fsc.creator AND ei2.deleted = 0
+            LEFT JOIN employee_info ei2 ON ei2.user_id = fsc.creator AND ei2.deleted = 0
         WHERE
             fsc.deleted = 0
         <if test="page.supplierContractCode != null and page.supplierContractCode != ''">
@@ -106,7 +135,7 @@
             finance_supplier_contract fsc
                 LEFT JOIN employee_info ei ON ei.id = fsc.owner_employee_id AND ei.deleted = 0
                 LEFT JOIN system_dept sd ON sd.id = fsc.dept_id AND sd.deleted = 0
-                LEFT JOIN employee_info ei2 ON ei2.id = fsc.creator AND ei2.deleted = 0
+                LEFT JOIN employee_info ei2 ON ei2.user_id = fsc.creator AND ei2.deleted = 0
         WHERE
             fsc.deleted = 0
         <if test="page.supplierContractCode != null and page.supplierContractCode != ''">