From 528583047b08f74df27ac538705627741363602e Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期日, 28 四月 2024 18:06:26 +0800
Subject: [PATCH] 合同积分详情,合同考核结果展示

---
 ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml            |    7 
 ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java     |    8 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java               |  123 +-----------
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java             |    1 
 ycl-server/src/main/java/com/ycl/task/ContractResultTask.java                        |   79 ++++++++
 ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java           |   14 +
 ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java             |    6 
 ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java |   18 +
 ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java         |    7 
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java   |   77 +++++---
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java                 |   50 +++++
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java              |   54 -----
 ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml                      |    6 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java      |   31 +++
 ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml                    |    2 
 ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java     |   15 +
 ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java      |    7 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java                 |    2 
 18 files changed, 309 insertions(+), 198 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java
index f4e22b8..02d972c 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java
@@ -1,140 +1,49 @@
 package com.ycl.platform.domain.entity;
 
 import annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ycl.system.entity.BaseEntity;
-import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.commons.lang.builder.ToStringStyle;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
 /**
  * 鑰冩牳缁撴灉瀵硅薄 t_check_result
- * 
+ *
  * @author ruoyi
  * @date 2024-04-01
  */
-public class CheckResult extends BaseEntity
-{
+@TableName("t_contract_result")
+@Data
+public class CheckResult {
     private static final long serialVersionUID = 1L;
 
-    /**  */
     private Long id;
 
-    /** 鑰冩牳瀵硅薄 */
     @Excel(name = "鑰冩牳瀵硅薄")
-    private Long deptId;
+    private Long unitId;
 
-    /** 鑰冩牳鍙戝竷 */
+    @Excel(name = "杩愮淮鍚堝悓")
+    private Long contractId;
+
     @Excel(name = "鑰冩牳鍙戝竷")
     private Long publishId;
 
-    /** 鑰冩牳绫诲瀷 */
-    @Excel(name = "鑰冩牳绫诲瀷")
-    private Long examineCategory;
-
-    /** 鑰冩牳鍒嗘暟 */
     @Excel(name = "鑰冩牳鍒嗘暟")
-    private BigDecimal checkScore;
+    private BigDecimal score;
 
-    /** 鏄惁鍙戝竷 */
     @Excel(name = "鏄惁鍙戝竷")
-    private Long publish;
+    private Integer publish;
 
-    /** 鑰冩牳鏃堕棿 */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "鑰冩牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
     private Date checkTime;
 
-    /** 閫昏緫鍒犻櫎 */
+    @TableLogic
     private String deleted;
 
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setDeptId(Long deptId) 
-    {
-        this.deptId = deptId;
-    }
-
-    public Long getDeptId() 
-    {
-        return deptId;
-    }
-    public void setPublishId(Long publishId) 
-    {
-        this.publishId = publishId;
-    }
-
-    public Long getPublishId() 
-    {
-        return publishId;
-    }
-    public void setExamineCategory(Long examineCategory) 
-    {
-        this.examineCategory = examineCategory;
-    }
-
-    public Long getExamineCategory() 
-    {
-        return examineCategory;
-    }
-    public void setCheckScore(BigDecimal checkScore) 
-    {
-        this.checkScore = checkScore;
-    }
-
-    public BigDecimal getCheckScore() 
-    {
-        return checkScore;
-    }
-    public void setPublish(Long publish) 
-    {
-        this.publish = publish;
-    }
-
-    public Long getPublish() 
-    {
-        return publish;
-    }
-    public void setCheckTime(Date checkTime) 
-    {
-        this.checkTime = checkTime;
-    }
-
-    public Date getCheckTime() 
-    {
-        return checkTime;
-    }
-    public void setDeleted(String deleted) 
-    {
-        this.deleted = deleted;
-    }
-
-    public String getDeleted() 
-    {
-        return deleted;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("deptId", getDeptId())
-            .append("publishId", getPublishId())
-            .append("examineCategory", getExamineCategory())
-            .append("checkScore", getCheckScore())
-            .append("publish", getPublish())
-            .append("checkTime", getCheckTime())
-            .append("updateTime", getUpdateTime())
-            .append("deleted", getDeleted())
-            .toString();
-    }
+    private Date updateTime;
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java
new file mode 100644
index 0000000..88c766c
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java
@@ -0,0 +1,31 @@
+package com.ycl.platform.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ghl
+ * @since 2024/4/28 涓嬪崍 5:45
+ */
+
+@Data
+@TableName("t_contract_result_record")
+public class ContractResultRecord {
+
+    @TableId
+    private Integer id;
+    private Integer resultId;
+    private String ruleIds;
+    private String ruleName;
+    private String num;
+    private Double score;
+    private Date createTime;
+    private Date auditTime;
+    @TableLogic
+    private String deleted;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java
index 9b0f1d8..55a21ba 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java
@@ -43,7 +43,6 @@
     private Long[] ruleIdsArray;
 
     @Excel(name = "瑙勫垯")
-    @TableField(exist = false)
     private String ruleName;
 
     @Excel(name = "鎸囨爣")
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java
index 61dc0e0..60b01ab 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java
@@ -49,7 +49,7 @@
      * 鍗曚綅id
      */
     @NotBlank
-    private Integer unitId;
+    private Long unitId;
 
     @TableField(exist = false)
     private String unitName;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java
new file mode 100644
index 0000000..a8fec3f
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java
@@ -0,0 +1,50 @@
+package com.ycl.platform.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.platform.domain.entity.CheckResult;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author gonghl
+ */
+@Data
+@Accessors(chain = true)
+public class CheckResultVO {
+    private Long id;
+
+    private Long unitId;
+
+    private String unitName;
+
+    private Long contractId;
+
+    private String contractName;
+
+    private Long publishId;
+
+    private BigDecimal score;
+
+    private Integer publish;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date checkTime;
+
+    private String deleted;
+
+    private Date updateTime;
+
+    public static CheckResultVO getVoByEntity(@NonNull CheckResult entity, CheckResultVO vo) {
+        if (vo == null) {
+            vo = new CheckResultVO();
+        }
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java
index 527c258..8511159 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java
@@ -2,6 +2,7 @@
 
 import annotation.Log;
 import com.ycl.platform.domain.entity.CheckResult;
+import com.ycl.platform.domain.vo.CheckResultVO;
 import com.ycl.platform.service.ICheckResultService;
 import com.ycl.system.AjaxResult;
 import com.ycl.system.controller.BaseController;
@@ -36,7 +37,7 @@
     public TableDataInfo list(CheckResult checkResult)
     {
         startPage();
-        List<CheckResult> list = checkResultService.selectCheckResultList(checkResult);
+        List<CheckResultVO> list = checkResultService.selectCheckResultList(checkResult);
         return getDataTable(list);
     }
 
@@ -48,8 +49,8 @@
     @PostMapping("/export")
     public void export(HttpServletResponse response, CheckResult checkResult)
     {
-        List<CheckResult> list = checkResultService.selectCheckResultList(checkResult);
-        ExcelUtil<CheckResult> util = new ExcelUtil<CheckResult>(CheckResult.class);
+        List<CheckResult> list = checkResultService.selectCheckResult(checkResult);
+        ExcelUtil<CheckResult> util = new ExcelUtil<>(CheckResult.class);
         util.exportExcel(response, list, "鑰冩牳缁撴灉鏁版嵁");
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java
index 0129ff5..615207b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java
@@ -3,61 +3,11 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.platform.domain.entity.CheckResult;
 
-import java.util.List;
-
 /**
  * 鑰冩牳缁撴灉Mapper鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2024-04-01
  */
-public interface CheckResultMapper extends BaseMapper<CheckResult>
-{
-    /**
-     * 鏌ヨ鑰冩牳缁撴灉
-     * 
-     * @param id 鑰冩牳缁撴灉涓婚敭
-     * @return 鑰冩牳缁撴灉
-     */
-    public CheckResult selectCheckResultById(Long id);
-
-    /**
-     * 鏌ヨ鑰冩牳缁撴灉鍒楄〃
-     * 
-     * @param checkResult 鑰冩牳缁撴灉
-     * @return 鑰冩牳缁撴灉闆嗗悎
-     */
-    public List<CheckResult> selectCheckResultList(CheckResult checkResult);
-
-    /**
-     * 鏂板鑰冩牳缁撴灉
-     * 
-     * @param checkResult 鑰冩牳缁撴灉
-     * @return 缁撴灉
-     */
-    public int insertCheckResult(CheckResult checkResult);
-
-    /**
-     * 淇敼鑰冩牳缁撴灉
-     * 
-     * @param checkResult 鑰冩牳缁撴灉
-     * @return 缁撴灉
-     */
-    public int updateCheckResult(CheckResult checkResult);
-
-    /**
-     * 鍒犻櫎鑰冩牳缁撴灉
-     * 
-     * @param id 鑰冩牳缁撴灉涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteCheckResultById(Long id);
-
-    /**
-     * 鎵归噺鍒犻櫎鑰冩牳缁撴灉
-     * 
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteCheckResultByIds(Long[] ids);
+public interface CheckResultMapper extends BaseMapper<CheckResult> {
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java
new file mode 100644
index 0000000..0554d45
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java
@@ -0,0 +1,15 @@
+package com.ycl.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.platform.domain.entity.ContractResultRecord;
+
+/**
+ * @author gonghl
+ */
+public interface ContractResultRecordMapper extends BaseMapper<ContractResultRecord> {
+
+}
+
+
+
+
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java
index fe0a755..32d9b35 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java
@@ -1,6 +1,9 @@
 package com.ycl.platform.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.platform.domain.entity.CheckResult;
+import com.ycl.platform.domain.entity.ContractResultRecord;
+import com.ycl.platform.domain.vo.CheckResultVO;
 
 import java.util.List;
 
@@ -10,7 +13,7 @@
  * @author ruoyi
  * @date 2024-04-01
  */
-public interface ICheckResultService 
+public interface ICheckResultService extends IService<CheckResult>
 {
     /**
      * 鏌ヨ鑰冩牳缁撴灉
@@ -26,7 +29,8 @@
      * @param checkResult 鑰冩牳缁撴灉
      * @return 鑰冩牳缁撴灉闆嗗悎
      */
-    public List<CheckResult> selectCheckResultList(CheckResult checkResult);
+    public List<CheckResultVO> selectCheckResultList(CheckResult checkResult);
+    public List<CheckResult> selectCheckResult(CheckResult checkResult);
 
     /**
      * 鏂板鑰冩牳缁撴灉
@@ -59,4 +63,10 @@
      * @return 缁撴灉
      */
     public int deleteCheckResultById(Long id);
+
+    /**
+     * 鎵归噺淇濆瓨鑰冩牳缁撴灉
+     * @param contractResultRecord 闆嗗悎
+     */
+    void saveBatchRecord(List<ContractResultRecord> contractResultRecord);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java b/ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java
index 123ad3b..a55cfce 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java
@@ -39,4 +39,11 @@
      * @return 缁撴灉
      */
     boolean audit(ContractScore contractScore);
+
+    /**
+     * 鏍规嵁鍚堝悓id鏌ヨ鏈湀鍚堝悓鎵撳垎
+     * @param id id
+     * @return 鏁版嵁
+     */
+    List<ContractScore> getDateRangeScoreByContractId(Long id, String startTime, String endTime);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
index d101b61..15d8e8c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
@@ -39,4 +39,10 @@
      * @return 瑙勫垯
      */
     List<CalculateMoneyRule> selectMoneyRules(Integer contractId);
+
+    /**
+     * 鏌ヨ鎵�鏈夋鍦ㄤ娇鐢ㄧ殑鍚堝悓
+     * @return 鏁版嵁
+     */
+    List<TContract> selectUsingContract();
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java
index d8ba31d..6ac8771 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java
@@ -2,96 +2,119 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.CheckResult;
+import com.ycl.platform.domain.entity.ContractResultRecord;
+import com.ycl.platform.domain.vo.CheckResultVO;
 import com.ycl.platform.mapper.CheckResultMapper;
+import com.ycl.platform.mapper.ContractResultRecordMapper;
 import com.ycl.platform.service.ICheckResultService;
+import com.ycl.platform.service.ITContractService;
+import com.ycl.platform.service.YwUnitService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import utils.DateUtils;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
  * 鑰冩牳缁撴灉Service涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2024-04-01
  */
 @Service
-public class CheckResultServiceImpl extends ServiceImpl<CheckResultMapper, CheckResult> implements ICheckResultService
-{
+public class CheckResultServiceImpl extends ServiceImpl<CheckResultMapper, CheckResult> implements ICheckResultService {
     @Autowired
     private CheckResultMapper checkResultMapper;
+    @Autowired
+    private ContractResultRecordMapper contractResultRecordMapper;
+    @Autowired
+    private YwUnitService unitService;
+    @Autowired
+    private ITContractService contractService;
+
 
     /**
      * 鏌ヨ鑰冩牳缁撴灉
-     * 
+     *
      * @param id 鑰冩牳缁撴灉涓婚敭
      * @return 鑰冩牳缁撴灉
      */
     @Override
-    public CheckResult selectCheckResultById(Long id)
-    {
-        return checkResultMapper.selectCheckResultById(id);
+    public CheckResult selectCheckResultById(Long id) {
+        return checkResultMapper.selectById(id);
     }
 
     /**
      * 鏌ヨ鑰冩牳缁撴灉鍒楄〃
-     * 
+     *
      * @param checkResult 鑰冩牳缁撴灉
      * @return 鑰冩牳缁撴灉
      */
     @Override
-    public List<CheckResult> selectCheckResultList(CheckResult checkResult)
-    {
-        return checkResultMapper.selectCheckResultList(checkResult);
+    public List<CheckResultVO> selectCheckResultList(CheckResult checkResult) {
+        return checkResultMapper.selectList(null).stream().map(
+                item -> {
+                    CheckResultVO checkResultVO = CheckResultVO.getVoByEntity(item, null);
+                    checkResultVO.setUnitName(unitService.getById(item.getUnitId()).getUnitName());
+                    checkResultVO.setContractName(contractService.getById(item.getContractId()).getName());
+                    return checkResultVO;
+                }
+        ).toList();
+    }
+
+    @Override
+    public List<CheckResult> selectCheckResult(CheckResult checkResult) {
+        return checkResultMapper.selectList(null);
     }
 
     /**
      * 鏂板鑰冩牳缁撴灉
-     * 
+     *
      * @param checkResult 鑰冩牳缁撴灉
      * @return 缁撴灉
      */
     @Override
-    public int insertCheckResult(CheckResult checkResult)
-    {
-        return checkResultMapper.insertCheckResult(checkResult);
+    public int insertCheckResult(CheckResult checkResult) {
+        return checkResultMapper.insert(checkResult);
     }
 
     /**
      * 淇敼鑰冩牳缁撴灉
-     * 
+     *
      * @param checkResult 鑰冩牳缁撴灉
      * @return 缁撴灉
      */
     @Override
-    public int updateCheckResult(CheckResult checkResult)
-    {
+    public int updateCheckResult(CheckResult checkResult) {
         checkResult.setUpdateTime(DateUtils.getNowDate());
-        return checkResultMapper.updateCheckResult(checkResult);
+        return checkResultMapper.updateById(checkResult);
     }
 
     /**
      * 鎵归噺鍒犻櫎鑰冩牳缁撴灉
-     * 
+     *
      * @param ids 闇�瑕佸垹闄ょ殑鑰冩牳缁撴灉涓婚敭
      * @return 缁撴灉
      */
     @Override
-    public int deleteCheckResultByIds(Long[] ids)
-    {
-        return checkResultMapper.deleteCheckResultByIds(ids);
+    public int deleteCheckResultByIds(Long[] ids) {
+        return checkResultMapper.deleteBatchIds(Arrays.asList(ids));
     }
 
     /**
      * 鍒犻櫎鑰冩牳缁撴灉淇℃伅
-     * 
+     *
      * @param id 鑰冩牳缁撴灉涓婚敭
      * @return 缁撴灉
      */
     @Override
-    public int deleteCheckResultById(Long id)
-    {
-        return checkResultMapper.deleteCheckResultById(id);
+    public int deleteCheckResultById(Long id) {
+        return checkResultMapper.deleteById(id);
+    }
+
+    @Override
+    public void saveBatchRecord(List<ContractResultRecord> contractResultRecord) {
+        // contractResultRecordMapper
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java
index c979ea1..6adf720 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java
@@ -10,6 +10,7 @@
 import com.ycl.platform.mapper.YwUnitMapper;
 import com.ycl.platform.service.IContractScoreService;
 import com.ycl.system.entity.SysUser;
+import com.ycl.utils.DateUtils;
 import com.ycl.utils.SecurityUtils;
 import enumeration.general.AuditingStatus;
 import org.apache.commons.lang3.ObjectUtils;
@@ -57,9 +58,6 @@
                         item -> {
                             item.setUnitName(ywunitMapper.selectById(item.getUnitId()).getUnitName());
                             item.setContractName(contractMapper.selectById(item.getContractId()).getName());
-                            item.setRuleIdsArray(Arrays.stream(item.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
-                            List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper).in(CalculateRule::getId, item.getRuleIdsArray()).list();
-                            item.setRuleName(String.join(" / ", new String[]{list.get(0).getRuleName(), list.get(1).getRuleDesc(), list.get(2).getRuleCondition()}));
                         }
                 ).toList();
     }
@@ -79,6 +77,9 @@
         contractScore.setAuditingStatus(AuditingStatus.WAIT);
         contractScore.setDeleted("0");
         contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
+        contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
+        List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper).in(CalculateRule::getId, contractScore.getRuleIdsArray()).list();
+        contractScore.setRuleName(String.join(" / ", new String[]{list.get(0).getRuleName(), list.get(1).getRuleDesc(), list.get(2).getRuleCondition()}));
         return super.save(contractScore);
     }
 
@@ -91,10 +92,19 @@
     @Override
     public boolean audit(ContractScore contractScore) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
         contractScore.setAuditingTime(com.ycl.utils.DateUtils.getNowDate());
         contractScore.setAuditingUser(user.getNickName());
         contractScore.setAuditingUserId(user.getUserId());
         return super.updateById(contractScore);
     }
+
+    @Override
+    public List<ContractScore> getDateRangeScoreByContractId(Long id, String startTime, String endTime) {
+        return new LambdaQueryChainWrapper<>(contractScoreMapper)
+                .eq(ContractScore::getContractId, id)
+                .between(ContractScore::getCreateTime, startTime, endTime)
+                .eq(ContractScore::getAuditingStatus, AuditingStatus.PASS)
+                .list();
+    }
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
index eeb6d56..f26f06f 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -209,4 +209,12 @@
     public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) {
         return calculateMoneyRuleService.selectMoneyRules(contractId);
     }
+
+    @Override
+    public List<TContract> selectUsingContract() {
+        return new LambdaQueryChainWrapper<>(baseMapper)
+                .gt(TContract::getStartTime, DateUtils.getNowDate())
+                .lt(TContract::getEndTime, DateUtils.getNowDate())
+                .list();
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
new file mode 100644
index 0000000..22a195b
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -0,0 +1,79 @@
+package com.ycl.task;
+
+import com.ycl.platform.domain.entity.CheckResult;
+import com.ycl.platform.domain.entity.ContractResultRecord;
+import com.ycl.platform.domain.entity.ContractScore;
+import com.ycl.platform.domain.entity.TContract;
+import com.ycl.platform.service.ICheckResultService;
+import com.ycl.platform.service.IContractScoreService;
+import com.ycl.platform.service.ITContractService;
+import com.ycl.utils.DateUtils;
+import com.ycl.utils.bean.BeanUtils;
+import jakarta.annotation.PostConstruct;
+import lombok.Data;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author ghl
+ * @since 2024/4/28 涓嬪崍 4:14
+ */
+
+@Component
+@Data
+public class ContractResultTask {
+
+    private final ITContractService contractService;
+    private final IContractScoreService contractScoreService;
+    private final ICheckResultService checkResultService;
+
+    private String startTime;
+    private String endTime;
+
+    /**
+     * 姣忎釜鏈�1鍙锋墽琛�
+     */
+    @Scheduled(cron = "0 0 0 1 * ?")
+    // @PostConstruct
+    // 澶氳〃
+    public void contractResultTask() {
+        // 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚�
+        List<TContract> list = contractService.selectUsingContract();
+        getLastMonth();
+        for (TContract tContract : list) {
+            // 涓婁釜鏈堟墸鍒嗚褰�
+            List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime);
+            // 鏂板鑰冩牳缁撴灉
+            CheckResult checkResult = new CheckResult();
+            checkResult.setUnitId(tContract.getUnitId());
+            checkResult.setContractId(tContract.getId());
+            checkResult.setPublish(0);
+            checkResult.setCheckTime(DateUtils.getNowDate());
+            checkResultService.save(checkResult);
+            // 鏂板鑰冩牳缁撴灉璁板綍
+            List<ContractResultRecord> contractResultRecord = new ArrayList<>();
+            BeanUtils.copyBeanProp(contractResultRecord, contractScore);
+            checkResultService.saveBatchRecord(contractResultRecord);
+        }
+    }
+
+
+    /**
+     * 鑾峰彇涓婁釜鏈堢殑绗竴澶╁拰鏈�鍚庝竴澶�
+     */
+    public void getLastMonth() {
+        LocalDate currentDate = LocalDate.now().minusMonths(1);
+        LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
+        String firstDay = firstDayOfMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());
+        String lastDay = lastDayOfMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        this.startTime = firstDay;
+        this.endTime = lastDay;
+    }
+
+}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
index d04f8d5..f012b50 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
@@ -47,7 +47,7 @@
         from t_calculate_rule
         where deleted = 0
           and contract_id
-            in (select id from t_contract where unit_id = #{unitId})
+            in (select id from t_contract where unit_id = #{unitId} and deleted = 0 and start_time <![CDATA[ <=  ]]> now() and end_time >= now() )
     </select>
 
     <insert id="insertDefaultRule" useGeneratedKeys="true" keyProperty="id">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml
new file mode 100644
index 0000000..b5e1958
--- /dev/null
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.platform.mapper.CheckResultMapper">
+
+
+</mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml
new file mode 100644
index 0000000..2aca478
--- /dev/null
+++ b/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.platform.mapper.ContractResultRecordMapper">
+
+</mapper>

--
Gitblit v1.8.0