Bläddra i källkod

合同相关接口修改

别傲 5 år sedan
förälder
incheckning
91a8314812
13 ändrade filer med 218 tillägg och 131 borttagningar
  1. 25 9
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/controller/ContractController.java
  2. 13 19
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/Contracts.java
  3. 27 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/ContractsExtend.java
  4. 9 11
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/Payment.java
  5. 20 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractDetailRequest.java
  6. 16 15
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractRequest.java
  7. 4 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractResponse.java
  8. 9 13
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractsHistoryRequest.java
  9. 1 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/mapper/ContractsMapper.java
  10. 34 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/ContractHistoryService.java
  11. 28 28
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/ContractService.java
  12. 6 16
      lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/PaymentService.java
  13. 26 19
      lift-business-service/src/main/resources/mapper/contract/ContractsMapper.xml

+ 25 - 9
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/controller/ContractController.java

@@ -1,7 +1,9 @@
 package cn.com.ty.lift.business.contract.controller;
 
 import cn.com.ty.lift.business.contract.dao.entity.Contracts;
+import cn.com.ty.lift.business.contract.dao.entity.ContractsExtend;
 import cn.com.ty.lift.business.contract.dao.entity.ContractsHistory;
+import cn.com.ty.lift.business.contract.dao.entity.model.ContractDetailRequest;
 import cn.com.ty.lift.business.contract.dao.entity.model.ContractRequest;
 import cn.com.ty.lift.business.contract.dao.entity.model.ContractsHistoryRequest;
 import cn.com.ty.lift.business.contract.dao.entity.model.PaymentRequest;
@@ -9,11 +11,13 @@ import cn.com.ty.lift.business.contract.service.ContractService;
 import cn.com.ty.lift.business.contract.service.PaymentService;
 import cn.com.ty.lift.business.framework.util.MessageUtils;
 import cn.com.xwy.boot.web.dto.RestResponse;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 
 /**
  * @author bieao
@@ -38,9 +42,9 @@ public class ContractController {
      * @date 2019/12/7 11:53 AM
      */
     @PostMapping("list")
-    public RestResponse list(@RequestBody ContractRequest request) {
+    public RestResponse list(@Valid @RequestBody ContractRequest request) {
         IPage<Contracts> page = contractService.list(request);
-        if (ObjectUtil.isEmpty(page.getRecords())) {
+        if (CollUtil.isEmpty(page.getRecords())) {
             return RestResponse.success();
         }
         return RestResponse.success(page, MessageUtils.get("msg.query.success"));
@@ -55,7 +59,7 @@ public class ContractController {
     @PostMapping("history/list")
     public RestResponse list(@RequestBody ContractsHistoryRequest request) {
         IPage<ContractsHistory> page = contractService.list(request);
-        if (ObjectUtil.isEmpty(page.getRecords())) {
+        if (CollUtil.isEmpty(page.getRecords())) {
             return RestResponse.success();
         }
         return RestResponse.success(page, MessageUtils.get("msg.query.success"));
@@ -69,7 +73,7 @@ public class ContractController {
      * @date 2019/12/7 3:31 PM
      */
     @PostMapping("add")
-    public RestResponse add(@RequestBody Contracts contracts) {
+    public RestResponse add(@Valid @RequestBody ContractsExtend contracts) {
         return contractService.add(contracts);
     }
 
@@ -82,7 +86,11 @@ public class ContractController {
      */
     @PostMapping("modify")
     public RestResponse modify(@RequestBody Contracts contracts) {
-        return contractService.modify(contracts);
+        int result = contractService.modify(contracts);
+        if (result > 0) {
+            return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
+        }
+        return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
     }
 
     /**
@@ -92,8 +100,12 @@ public class ContractController {
      * @date 2019/12/6 4:46 PM
      */
     @PostMapping("detail")
-    public RestResponse detail(@RequestBody ContractRequest request) {
-        return contractService.detail(request.getContractId());
+    public RestResponse detail(@Valid @RequestBody ContractDetailRequest request) {
+        Contracts contracts = contractService.detail(request.getId());
+        if (ObjectUtil.isEmpty(contracts)) {
+            return RestResponse.success();
+        }
+        return RestResponse.success(contracts, MessageUtils.get("msg.query.detail.success"));
     }
 
     /**
@@ -102,9 +114,13 @@ public class ContractController {
      * @description 批量修改收款信息
      * @date 2019/12/11 3:50 PM
      */
-    @PostMapping("payment/updateBatchById")
+    @PostMapping("payment/batch/update")
     public RestResponse updateBatchById(@RequestBody PaymentRequest request) {
-        return paymentService.updateBatchById(request);
+        boolean result = paymentService.updateBatchById(request);
+        if (result) {
+            return RestResponse.success(null, MessageUtils.get("msg.modify.batch.success"));
+        }
+        return RestResponse.fail(MessageUtils.get("msg.modify.batch.fail"));
     }
 
 }

+ 13 - 19
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/Contracts.java

@@ -1,11 +1,13 @@
 package cn.com.ty.lift.business.contract.dao.entity;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
+import java.time.LocalDate;
 
+import cn.com.ty.lift.business.common.BaseEntity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 实体类 - 表:contracts
@@ -13,10 +15,12 @@ import lombok.Data;
  * @since 2019-12-06 16:35:47
  */
 @Data
-public class Contracts implements Serializable {
+@EqualsAndHashCode(callSuper = true)
+public class Contracts extends BaseEntity {
     /**
      * 主键ID
      */
+    @TableId(value = "id",type = IdType.ID_WORKER)
     private Long id;
 
     /**
@@ -67,7 +71,7 @@ public class Contracts implements Serializable {
     /**
      * 签约时间
      */
-    private Date givenDate;
+    private LocalDate givenDate;
 
     /**
      * 签约人
@@ -77,22 +81,17 @@ public class Contracts implements Serializable {
     /**
      * 开始时间
      */
-    private Date starDate;
+    private LocalDate starDate;
 
     /**
      * 结束时间
      */
-    private Date endDate;
-
-    /**
-     * 创建时间
-     */
-    private Date createDate;
+    private LocalDate endDate;
 
     /**
      * 签约合同编号
      */
-    private Long nextId;
+    private String nextId;
 
     /**
      * 合同附件
@@ -112,10 +111,5 @@ public class Contracts implements Serializable {
     /**
      * 上一个合同编号
      */
-    private Long previousId;
-
-    /**
-     * 收款列表
-     */
-    private List<Payment> paymentList;
+    private String previousId;
 }

+ 27 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/ContractsExtend.java

@@ -0,0 +1,27 @@
+package cn.com.ty.lift.business.contract.dao.entity;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author bieao
+ * @date 2020/1/8
+ * @description 合同扩展
+ */
+@Data
+public class ContractsExtend {
+    /**
+     * 收款列表
+     */
+    @NotEmpty(message = "notEmpty")
+    private List<Payment> paymentList;
+
+    /**
+     * 合同信息
+     */
+    @NotNull(message = "notEmpty")
+    private Contracts contracts;
+}

+ 9 - 11
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/Payment.java

@@ -1,11 +1,13 @@
 package cn.com.ty.lift.business.contract.dao.entity;
 
 import java.math.BigDecimal;
-import java.util.Date;
+import java.time.LocalDate;
 
+import cn.com.ty.lift.business.common.BaseEntity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 实体类 - 表:payment
@@ -13,7 +15,8 @@ import lombok.Data;
  * @since 2019-12-11 14:22:13
  */
 @Data
-public class Payment {
+@EqualsAndHashCode(callSuper = true)
+public class Payment extends BaseEntity {
 
 	/**
 	 * 收付款ID
@@ -24,7 +27,7 @@ public class Payment {
 	/**
 	 * 合同编号
 	 */
-	private Long contractsId;
+	private String contractsId;
 
 	/**
 	 * 收付款事项   1:合同分期费
@@ -50,12 +53,12 @@ public class Payment {
 	/**
 	 * 应收时间
 	 */
-	private Date planDate;
+	private LocalDate planDate;
 
 	/**
 	 * 已收时间
 	 */
-	private Date workDate;
+	private LocalDate workDate;
 
 	/**
 	 * 收款人编号
@@ -93,11 +96,6 @@ public class Payment {
 	 */
 	private String bankImgUrl;
 
-	/**
-	 * 创建时间
-	 */
-	private Date createDate;
-
 	/**
 	 * 收付款编号
 	 */
@@ -111,7 +109,7 @@ public class Payment {
 	/**
 	 * 开票日期
 	 */
-	private Date billingDate;
+	private LocalDate billingDate;
 
 	/**
 	 * 期数

+ 20 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractDetailRequest.java

@@ -0,0 +1,20 @@
+package cn.com.ty.lift.business.contract.dao.entity.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author bieao
+ * @date 2020/1/8
+ * @description 合同详情请求
+ */
+@Data
+public class ContractDetailRequest {
+
+    /**
+     * 主键id
+     */
+    @NotNull(message = "notEmpty")
+    private Long id;
+}

+ 16 - 15
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractRequest.java

@@ -1,6 +1,10 @@
 package cn.com.ty.lift.business.contract.dao.entity.model;
 
+import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * @author bieao
@@ -8,15 +12,22 @@ import lombok.Data;
  * @description 合同列表请求体
  */
 @Data
-public class ContractRequest {
+@EqualsAndHashCode(callSuper = true)
+public class ContractRequest extends BaseRequestModel {
+
     /**
-     * 项目id
+     * 公司id
      */
-    private Long projectId;
+    @NotNull(message = "notEmpty")
+    private Long mtCompanyId;
     /**
-     * 合同id
+     * 项目名称
      */
-    private Long contractId;
+    private String projectName;
+    /**
+     * 合同编号
+     */
+    private String contractId;
     /**
      * 合同类型
      */
@@ -25,14 +36,4 @@ public class ContractRequest {
      * 合同状态
      */
     private String contractStatus;
-
-    /**
-     * 当前页码
-     */
-    private int pageNum;
-
-    /**
-     * 每页条数
-     */
-    private int pageSize;
 }

+ 4 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractResponse.java

@@ -9,6 +9,10 @@ import lombok.Data;
  */
 @Data
 public class ContractResponse {
+    /**
+     * 主键id
+     */
+    private String id;
     /**
      * 合同编号
      */

+ 9 - 13
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/entity/model/ContractsHistoryRequest.java

@@ -1,6 +1,10 @@
 package cn.com.ty.lift.business.contract.dao.entity.model;
 
+import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * @author bieao
@@ -8,20 +12,12 @@ import lombok.Data;
  * @description 合同操作记录列表请求体
  */
 @Data
-public class ContractsHistoryRequest {
-
-    /**
-     * 记录id
-     */
-    private String id;
-
-    /**
-     * 当前页码
-     */
-    private int pageNum;
+@EqualsAndHashCode(callSuper = true)
+public class ContractsHistoryRequest extends BaseRequestModel {
 
     /**
-     * 每页条数
+     * 合同id
      */
-    private int pageSize;
+    @NotNull(message = "notEmpty")
+    private Long contractId;
 }

+ 1 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/dao/mapper/ContractsMapper.java

@@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ContractsMapper extends BaseMapper<Contracts> {
 
-    IPage<Contracts> findByCondition(IPage page, @Param("request") ContractRequest request);
+    IPage<Contracts> findByCondition(IPage<Contracts> page, @Param("request") ContractRequest request);
 
 
 }

+ 34 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/ContractHistoryService.java

@@ -0,0 +1,34 @@
+package cn.com.ty.lift.business.contract.service;
+
+import cn.com.ty.lift.business.contract.dao.entity.ContractsHistory;
+import cn.com.ty.lift.business.contract.dao.entity.model.ContractsHistoryRequest;
+import cn.com.ty.lift.business.contract.dao.mapper.ContractsHistoryMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author bieao
+ * @date 2020/1/8
+ * @description 合同历史记录业务层
+ */
+@Service
+public class ContractHistoryService extends ServiceImpl<ContractsHistoryMapper, ContractsHistory> {
+
+    /**
+     * @param request 合同编号
+     * @return IPage<ContractsHistory> 合同历史记录
+     * @description 根据合同编号查询合同历史记录
+     * @date 2020/1/8 11:37 上午
+     */
+    public IPage<ContractsHistory> list(ContractsHistoryRequest request) {
+        IPage<ContractsHistory> page = new Page<>(request.getPageNum(), request.getPageSize());
+        QueryWrapper<ContractsHistory> queryWrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<ContractsHistory> lambdaQueryWrapper = queryWrapper.lambda();
+        lambdaQueryWrapper.eq(ContractsHistory::getContractsId, request.getContractId());
+        return page(page, lambdaQueryWrapper);
+    }
+}

+ 28 - 28
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/ContractService.java

@@ -1,19 +1,20 @@
 package cn.com.ty.lift.business.contract.service;
 
 import cn.com.ty.lift.business.contract.dao.entity.Contracts;
+import cn.com.ty.lift.business.contract.dao.entity.ContractsExtend;
 import cn.com.ty.lift.business.contract.dao.entity.ContractsHistory;
 import cn.com.ty.lift.business.contract.dao.entity.model.ContractRequest;
 import cn.com.ty.lift.business.contract.dao.entity.model.ContractsHistoryRequest;
-import cn.com.ty.lift.business.contract.dao.mapper.ContractsHistoryMapper;
 import cn.com.ty.lift.business.contract.dao.mapper.ContractsMapper;
 import cn.com.ty.lift.business.framework.BusinessBasicException;
 import cn.com.ty.lift.business.framework.util.MessageUtils;
-import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.utils.DateUtils;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -25,13 +26,13 @@ import javax.annotation.Resource;
  * @description 合同管理业务层
  */
 @Service
-public class ContractService {
+public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
 
     @Resource
     private ContractsMapper contractsMapper;
 
     @Resource
-    private ContractsHistoryMapper contractsHistoryMapper;
+    private ContractHistoryService contractHistoryService;
 
     @Resource
     private PaymentService paymentService;
@@ -44,39 +45,46 @@ public class ContractService {
      */
     public IPage<Contracts> list(ContractRequest request) {
         IPage<Contracts> page = new Page<>(request.getPageNum(), request.getPageSize());
+        if (ObjectUtil.isNotEmpty(request.getContractId())) {
+            request.setContractId(StrUtil.format("%{}%", request.getContractId()));
+        }
+        if (ObjectUtil.isNotEmpty(request.getProjectName())) {
+            request.setProjectName(StrUtil.format("%{}%", request.getProjectName()));
+        }
         return contractsMapper.findByCondition(page, request);
     }
 
     /**
-     * @param request 合同列表查询条件
-     * @return RestResponse 合同分页列表结果
-     * @description 查询合同列表
+     * @param request 合同编号
+     * @return RestResponse 合同历史记录分页列表结果
+     * @description 查询合同历史记录列表
      * @date 2019/12/7 11:53 AM
      */
     public IPage<ContractsHistory> list(ContractsHistoryRequest request) {
-        IPage<ContractsHistory> page = new Page<>(request.getPageNum(), request.getPageSize());
-        return contractsHistoryMapper.findByCondition(page, request);
+        return contractHistoryService.list(request);
     }
 
     /**
-     * @param contracts 新增合同数据项
+     * @param extend 新增合同数据项
      * @return 1.成功, 0.失败, 消息描述
      * @description 新增合同
      * @date 2019/12/7 3:31 PM
      */
     @Transactional(rollbackFor = Exception.class)
-    public RestResponse add(Contracts contracts) {
-        if (contracts.getNextId() == null) {
+    public RestResponse add(ContractsExtend extend) {
+        Contracts contracts = extend.getContracts();
+        if (ObjectUtil.isEmpty(contracts.getCode())) {
             //按当前日期时间戳自动生成合同编号
             String contractId = DateUtils.generateCode();
-            contracts.setNextId(Long.parseLong(contractId));
+            contracts.setNextId(contractId);
         }
+        contracts.setNextId(contracts.getCode());
         int result = contractsMapper.insert(contracts);
         if (result > 0) {
             //批量插入收款信息
-            boolean ret = paymentService.insertBatch(contracts);
+            boolean ret = paymentService.insertBatch(extend.getPaymentList(), contracts.getNextId());
             if (ret) {
-                return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, MessageUtils.get("msg.add.success"));
+                return RestResponse.success(null, MessageUtils.get("msg.add.success"));
             } else {
                 throw new BusinessBasicException("批量插入收款信息失败");
             }
@@ -90,25 +98,17 @@ public class ContractService {
      * @description 合同变更
      * @date 2019/12/7 3:31 PM
      */
-    public RestResponse modify(Contracts contracts) {
-        int result = contractsMapper.updateById(contracts);
-        if (result > 0) {
-            return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, MessageUtils.get("msg.modify.success"));
-        }
-        return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
+    public int modify(Contracts contracts) {
+        return contractsMapper.updateById(contracts);
     }
 
     /**
      * @param id 主键id
-     * @return RestResponse 合同详情
+     * @return Contracts 合同详情
      * @description 查看合同详情
      * @date 2019/12/7 11:50 AM
      */
-    public RestResponse detail(Long id) {
-        Contracts contracts = contractsMapper.selectById(id);
-        if (ObjectUtil.isEmpty(contracts)) {
-            return RestResponse.success();
-        }
-        return RestResponse.success(contracts, MessageUtils.get("msg.query.detail.success"));
+    public Contracts detail(Long id) {
+        return contractsMapper.selectById(id);
     }
 }

+ 6 - 16
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/PaymentService.java

@@ -1,12 +1,8 @@
 package cn.com.ty.lift.business.contract.service;
 
-import cn.com.ty.lift.business.contract.dao.entity.Contracts;
 import cn.com.ty.lift.business.contract.dao.entity.Payment;
 import cn.com.ty.lift.business.contract.dao.entity.model.PaymentRequest;
 import cn.com.ty.lift.business.contract.dao.mapper.PaymentMapper;
-import cn.com.ty.lift.business.framework.util.MessageUtils;
-import cn.com.ty.lift.common.constants.ApiConstants;
-import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
@@ -21,17 +17,15 @@ import java.util.List;
 public class PaymentService extends ServiceImpl<PaymentMapper, Payment> {
 
     /**
-     * @param contracts 合同信息
+     * @param payments 付款信息
+     * @param nextId 合同编号
      * @return  是否成功
      * @description 批量插入收款信息
      * @date 2019/12/11 4:34 PM
      */
-    public boolean insertBatch(Contracts contracts) {
-        List<Payment> payments = contracts.getPaymentList();
+    public boolean insertBatch(List<Payment> payments, String nextId) {
         //设置合同付款的合同编号
-        for (Payment entry : payments) {
-            entry.setContractsId(contracts.getNextId());
-        }
+        payments.forEach(entry -> entry.setContractsId(nextId));
         //批量插入付款信息
         return saveBatch(payments);
     }
@@ -42,11 +36,7 @@ public class PaymentService extends ServiceImpl<PaymentMapper, Payment> {
      * @description 批量修改收款信息
      * @date 2019/12/11 3:50 PM
      */
-    public RestResponse updateBatchById(PaymentRequest request) {
-        boolean result = updateBatchById(request.getPaymentList());
-        if (result) {
-            return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, MessageUtils.get("msg.modify.batch.success"));
-        }
-        return RestResponse.fail(MessageUtils.get("msg.modify.batch.fail"));
+    public boolean updateBatchById(PaymentRequest request) {
+        return updateBatchById(request.getPaymentList());
     }
 }

+ 26 - 19
lift-business-service/src/main/resources/mapper/contract/ContractsMapper.xml

@@ -30,31 +30,38 @@
 	</sql>
 
     <!-- 根据项目、合同号、合同类型、合同状态查询合同管理列表-->
-    <select id="findByCondition" resultType="cn.com.ty.lift.business.contract.dao.entity.model.ContractResponse" parameterType="cn.com.ty.lift.business.contract.dao.entity.model.ContractRequest" >
+    <select id="findByCondition" resultType="cn.com.ty.lift.business.contract.dao.entity.model.ContractResponse"
+            parameterType="cn.com.ty.lift.business.contract.dao.entity.model.ContractRequest" >
         SELECT
-        next_id       as contractId,
-        previous_id   as previousId,
-        source        as source,
-        type          as type,
-        star_date     as starDate,
-        end_date      as endDate,
-        lift_num      as liftNum,
-        moneys        as moneys,
-        given_date    as givenDate,
-        given_user    as givenUser,
-        accessory_url as accessoryUrl,
-        remarks       as remarks,
-        status        as status
-        from contracts
-        WHERE 1=1
+            c.id            AS id,
+            c.next_id       AS contractId,
+            c.previous_id   AS previousId,
+            c.source        AS contractSource,
+            c.type          AS contractType,
+            c.star_date     AS starDate,
+            c.end_date      AS endDate,
+            c.lift_num      AS liftNum,
+            c.moneys        AS moneys,
+            c.given_date    AS givenDate,
+            c.given_user    AS givenUser,
+            c.accessory_url AS accessoryUrl,
+            c.remarks       AS remarks,
+            c.status        AS contractStatus,
+            p.project_name  AS projectName
+            FROM contracts c
+        LEFT JOIN project p ON c.project_id = p.id
+        WHERE c.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
         <if test="request.contractId!=null and request.contractId!=''">
-            and id= #{request.contractId,jdbcType=VARCHAR}
+            AND c.next_id LIKE #{request.contractId,jdbcType=BIGINT}
         </if>
         <if test="request.contractType!=null and request.contractType!=''">
-            and type = #{request.contractType,jdbcType=VARCHAR}
+            AND c.type = #{request.contractType,jdbcType=INTEGER}
         </if>
         <if test="request.contractStatus!=null and request.contractStatus!=''">
-            and status = #{request.contractStatus,jdbcType=VARCHAR}
+            AND c.status = #{request.contractStatus,jdbcType=INTEGER}
+        </if>
+        <if test="request.projectName!=null and request.projectName!=''">
+            AND p.project_name LIKE #{request.projectName,jdbcType=VARCHAR}
         </if>
     </select>