From e547993a3c78d0bd75f3fdef4a9878e180d73d36 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 29 四月 2024 17:52:26 +0800
Subject: [PATCH] 合同考核结果定时任务、详情、查询、导出

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java |    2 
 ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml            |    7 +
 ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java     |   10 -
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java             |    3 
 ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java                |    3 
 ycl-server/src/main/java/com/ycl/task/ContractResultTask.java                        |   56 ++++++++--
 ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java           |   12 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java |   14 --
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java   |   39 ++++---
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java                 |   13 ++
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java              |    4 
 ycl-server/src/main/resources/mapper/zgyw/ContractScoreMapper.xml                    |   33 +++++-
 ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml                        |    8 +
 ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java            |    2 
 ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml                      |   21 ++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java      |    9 +
 ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml                    |    2 
 ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java     |    8 +
 ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java      |   32 +++++-
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java                 |    4 
 20 files changed, 213 insertions(+), 69 deletions(-)

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
index 88c766c..f93b8ab 100644
--- 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
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -17,14 +18,14 @@
 public class ContractResultRecord {
 
     @TableId
-    private Integer id;
-    private Integer resultId;
+    private Long id;
+    private Long resultId;
     private String ruleIds;
     private String ruleName;
+    private String deductCategory;
     private String num;
-    private Double score;
+    private BigDecimal 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 55a21ba..190042a 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
@@ -45,6 +45,9 @@
     @Excel(name = "瑙勫垯")
     private String ruleName;
 
+    @Excel(name = "鎵e噺鏂瑰紡")
+    private String deductCategory;
+
     @Excel(name = "鎸囨爣")
     private String num;
 
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 60b01ab..92bab73 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
@@ -63,14 +63,14 @@
     /**
      * 寮�濮嬫椂闂�
      */
-    @JsonFormat(pattern = "yyyy-MM-dd hh-mm-ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     @NotNull
     private Date startTime;
 
     /**
      * 缁撴潫鏃堕棿
      */
-    @JsonFormat(pattern = "yyyy-MM-dd hh-mm-ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     @NotNull
     private Date endTime;
 
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
index a8fec3f..b3ce510 100644
--- 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
@@ -1,5 +1,6 @@
 package com.ycl.platform.domain.vo;
 
+import annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.platform.domain.entity.CheckResult;
 import lombok.Data;
@@ -20,25 +21,37 @@
 
     private Long unitId;
 
+    @Excel(name = "鑰冩牳瀵硅薄")
     private String unitName;
 
     private Long contractId;
 
+    @Excel(name = "杩愮淮鍚堝悓")
     private String contractName;
 
     private Long publishId;
 
+    @Excel(name = "鑰冩牳鍒嗘暟", scale = 2)
     private BigDecimal score;
 
+    @Excel(name = "鏄惁鍙戝竷", readConverterExp = "0=鏈彂甯�,1=宸插彂甯�")
     private Integer publish;
 
     @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鑰冩牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
     private Date checkTime;
 
     private String deleted;
 
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date updateTime;
 
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createStartTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createEndTime;
+
     public static CheckResultVO getVoByEntity(@NonNull CheckResult entity, CheckResultVO vo) {
         if (vo == null) {
             vo = new CheckResultVO();
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 8511159..d9f5f58 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.entity.ContractResultRecord;
 import com.ycl.platform.domain.vo.CheckResultVO;
 import com.ycl.platform.service.ICheckResultService;
 import com.ycl.system.AjaxResult;
@@ -33,11 +34,22 @@
      * 鏌ヨ鑰冩牳缁撴灉鍒楄〃
      */
    @PreAuthorize("@ss.hasPermi('system:result:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(CheckResult checkResult)
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody CheckResultVO checkResult)
     {
         startPage();
         List<CheckResultVO> list = checkResultService.selectCheckResultList(checkResult);
+        return getDataTable(list);
+    }
+
+    /**
+     * 鏌ヨ鑰冩牳缁撴灉鍒楄〃
+     */
+   @PreAuthorize("@ss.hasPermi('system:result:query')")
+    @GetMapping("/record/list")
+    public TableDataInfo recordList(Long resultId)
+    {
+        List<ContractResultRecord> list = checkResultService.selectCheckResultRecordList(resultId);
         return getDataTable(list);
     }
 
@@ -47,10 +59,10 @@
     @PreAuthorize("@ss.hasPermi('system:result:export')")
     @Log(title = "鑰冩牳缁撴灉", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, CheckResult checkResult)
+    public void export(HttpServletResponse response, CheckResultVO checkResult)
     {
-        List<CheckResult> list = checkResultService.selectCheckResult(checkResult);
-        ExcelUtil<CheckResult> util = new ExcelUtil<>(CheckResult.class);
+        List<CheckResultVO> list = checkResultService.selectCheckResultList(checkResult);
+        ExcelUtil<CheckResultVO> util = new ExcelUtil<>(CheckResultVO.class);
         util.exportExcel(response, list, "鑰冩牳缁撴灉鏁版嵁");
     }
 
@@ -87,6 +99,16 @@
     }
 
     /**
+     * 鍙戝竷鑰冩牳缁撴灉
+     */
+    @PreAuthorize("@ss.hasPermi('system:result:publish')")
+    @PutMapping("/publish/{id}")
+    public AjaxResult publish(@PathVariable("id") Long id)
+    {
+        return toAjax(checkResultService.publish(id));
+    }
+
+    /**
      * 鍒犻櫎鑰冩牳缁撴灉
      */
     @PreAuthorize("@ss.hasPermi('system:result:remove')")
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java
index 4b3fa26..e882f25 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java
@@ -67,5 +67,5 @@
      * @param unitId 杩愮淮鍗曚綅
      * @return 鏁版嵁
      */
-    List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId);
+    List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId, String now);
 }
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 615207b..b58337a 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
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.platform.domain.entity.CheckResult;
+import com.ycl.platform.domain.vo.CheckResultVO;
+
+import java.util.List;
 
 /**
  * 鑰冩牳缁撴灉Mapper鎺ュ彛
@@ -10,4 +13,5 @@
  * @date 2024-04-01
  */
 public interface CheckResultMapper extends BaseMapper<CheckResult> {
+    List<CheckResultVO> selectCheckResultList(CheckResultVO 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
index 0554d45..6739b00 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java
@@ -2,12 +2,20 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.platform.domain.entity.ContractResultRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author gonghl
  */
 public interface ContractResultRecordMapper extends BaseMapper<ContractResultRecord> {
 
+    /**
+     * 鎵归噺淇濆瓨鑰冩牳缁撴灉
+     * @param contractResultRecord 闆嗗悎
+     */
+    void saveBatch(List<ContractResultRecord> contractResultRecord);
 }
 
 
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java
index fb4a704..919f81e 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.platform.domain.entity.TContract;
 
+import java.util.List;
+
 /**
  * 銆愯濉啓鍔熻兘鍚嶇О銆慚apper鎺ュ彛
  *
@@ -10,4 +12,5 @@
  * @date 2024-03-12
  */
 public interface TContractMapper extends BaseMapper<TContract> {
+    List<TContract> selectAll();
 }
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 32d9b35..01c7078 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
@@ -29,8 +29,7 @@
      * @param checkResult 鑰冩牳缁撴灉
      * @return 鑰冩牳缁撴灉闆嗗悎
      */
-    public List<CheckResultVO> selectCheckResultList(CheckResult checkResult);
-    public List<CheckResult> selectCheckResult(CheckResult checkResult);
+    public List<CheckResultVO> selectCheckResultList(CheckResultVO checkResult);
 
     /**
      * 鏂板鑰冩牳缁撴灉
@@ -69,4 +68,13 @@
      * @param contractResultRecord 闆嗗悎
      */
     void saveBatchRecord(List<ContractResultRecord> contractResultRecord);
+
+    /**
+     * 鏍规嵁鑰冩牳缁撴灉鏌ヨ璁板綍
+     * @param resultId 鑰冩牳缁撴灉id
+     * @return 鑰冩牳缁撴灉璁板綍
+     */
+    List<ContractResultRecord> selectCheckResultRecordList(Long resultId);
+
+    Boolean publish(Long id);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java
index a6c3af1..0cadd77 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java
@@ -144,6 +144,6 @@
 
     @Override
     public List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId) {
-        return TreeUtils.build(calculateRuleMapper.getRuleListByUnitId(unitId), 0L);
+        return TreeUtils.build(calculateRuleMapper.getRuleListByUnitId(unitId, DateUtils.getDate()), 0L);
     }
 }
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 6ac8771..cdd747c 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
@@ -1,5 +1,7 @@
 package com.ycl.platform.service.impl;
 
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.CheckResult;
 import com.ycl.platform.domain.entity.ContractResultRecord;
@@ -9,6 +11,7 @@
 import com.ycl.platform.service.ICheckResultService;
 import com.ycl.platform.service.ITContractService;
 import com.ycl.platform.service.YwUnitService;
+import com.ycl.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import utils.DateUtils;
@@ -52,20 +55,8 @@
      * @return 鑰冩牳缁撴灉
      */
     @Override
-    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);
+    public List<CheckResultVO> selectCheckResultList(CheckResultVO checkResult) {
+        return checkResultMapper.selectCheckResultList(checkResult);
     }
 
     /**
@@ -115,6 +106,24 @@
 
     @Override
     public void saveBatchRecord(List<ContractResultRecord> contractResultRecord) {
-        // contractResultRecordMapper
+        if (!contractResultRecord.isEmpty()) {
+            contractResultRecordMapper.saveBatch(contractResultRecord);
+        }
+    }
+
+    @Override
+    public List<ContractResultRecord> selectCheckResultRecordList(Long resultId) {
+        return new LambdaQueryChainWrapper<>(contractResultRecordMapper)
+                .eq(ContractResultRecord::getResultId, resultId)
+                .list();
+    }
+
+    @Override
+    public Boolean publish(Long id) {
+        return new LambdaUpdateChainWrapper<>(checkResultMapper)
+                .eq(CheckResult::getId, id)
+                .set(CheckResult::getPublish, 1)
+                .set(CheckResult::getPublishId, SecurityUtils.getLoginUser().getUserId())
+                .update();
     }
 }
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 6adf720..f0e76b0 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
@@ -47,19 +47,7 @@
      */
     @Override
     public List<ContractScore> selectDefaultScoreList(ContractScore contractScore) {
-        return new LambdaQueryChainWrapper<>(contractScoreMapper)
-                .eq(ObjectUtils.isNotEmpty(contractScore.getUnitId()), ContractScore::getUnitId, contractScore.getUnitId())
-                .between(ObjectUtils.isNotEmpty(contractScore.getCreateStartTime()), ContractScore::getCreateTime, contractScore.getCreateStartTime(), contractScore.getCreateEndTime())
-                .between(ObjectUtils.isNotEmpty(contractScore.getAuditingStartTime()), ContractScore::getAuditingTime, contractScore.getAuditingStartTime(), contractScore.getAuditingEndTime())
-                .eq(ObjectUtils.isNotEmpty(contractScore.getAuditingStatus()), ContractScore::getAuditingStatus, contractScore.getAuditingStatus())
-                .orderByDesc(ContractScore::getCreateTime)
-                .list()
-                .stream().peek(
-                        item -> {
-                            item.setUnitName(ywunitMapper.selectById(item.getUnitId()).getUnitName());
-                            item.setContractName(contractMapper.selectById(item.getContractId()).getName());
-                        }
-                ).toList();
+        return contractScoreMapper.selectDefaultScoreList(contractScore);
     }
 
     @Override
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 f26f06f..b48b540 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
@@ -198,11 +198,7 @@
 
     @Override
     public List<TContract> selectAll() {
-        return list(new LambdaQueryWrapper<TContract>()
-                .orderByDesc(TContract::getCreateTime))
-                .stream().peek(
-                        tContract -> tContract.setUnitName(ywUnitService.getById(tContract.getUnitId()).getUnitName())
-                ).toList();
+        return baseMapper.selectAll();
     }
 
     @Override
@@ -213,8 +209,8 @@
     @Override
     public List<TContract> selectUsingContract() {
         return new LambdaQueryChainWrapper<>(baseMapper)
-                .gt(TContract::getStartTime, DateUtils.getNowDate())
-                .lt(TContract::getEndTime, DateUtils.getNowDate())
+                .le(TContract::getStartTime, DateUtils.getDate())
+                .ge(TContract::getEndTime, DateUtils.getDate())
                 .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
index 22a195b..758c3a8 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -9,14 +9,14 @@
 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 org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -36,11 +36,11 @@
     private String endTime;
 
     /**
-     * 姣忎釜鏈�1鍙锋墽琛�
+     * 姣忎釜鏈�1鍙锋墽琛岋紝缁熻鑰冩牳缁撴灉
      */
     @Scheduled(cron = "0 0 0 1 * ?")
-    // @PostConstruct
-    // 澶氳〃
+    @Transactional
+    // @PostConstruct //鍚姩鏃舵墽琛屼竴娆�
     public void contractResultTask() {
         // 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚�
         List<TContract> list = contractService.selectUsingContract();
@@ -49,19 +49,51 @@
             // 涓婁釜鏈堟墸鍒嗚褰�
             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());
+            CheckResult checkResult = getCheckResult(tContract, contractScore);
             checkResultService.save(checkResult);
             // 鏂板鑰冩牳缁撴灉璁板綍
-            List<ContractResultRecord> contractResultRecord = new ArrayList<>();
-            BeanUtils.copyBeanProp(contractResultRecord, contractScore);
+            List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, checkResult);
             checkResultService.saveBatchRecord(contractResultRecord);
         }
     }
 
+    /**
+     * 淇濆瓨鑰冩牳璁板綍
+     *
+     * @param contractScore 鎵e垎
+     * @param checkResult   鑰冩牳缁撴灉
+     * @return 鑰冩牳璁板綍
+     */
+    private List<ContractResultRecord> getContractResultRecord(List<ContractScore> contractScore, CheckResult checkResult) {
+        return contractScore.stream().map(
+                item -> {
+                    ContractResultRecord record = new ContractResultRecord();
+                    BeanUtils.copyProperties(item, record);
+                    record.setResultId(checkResult.getId());
+                    record.setCreateTime(DateUtils.getNowDate());
+                    return record;
+                }
+        ).toList();
+    }
+
+    /**
+     * 璁$畻鑰冩牳缁撴灉
+     *
+     * @param tContract     鍚堝悓
+     * @param contractScore 鎵e垎
+     * @return 鑰冩牳缁撴灉
+     */
+    private CheckResult getCheckResult(TContract tContract, List<ContractScore> contractScore) {
+        CheckResult checkResult = new CheckResult();
+        checkResult.setUnitId(tContract.getUnitId());
+        checkResult.setContractId(tContract.getId());
+        checkResult.setPublish(0);
+        checkResult.setDeleted("0");
+        checkResult.setCheckTime(DateUtils.getNowDate());
+        checkResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
+        return checkResult;
+    }
+
 
     /**
      * 鑾峰彇涓婁釜鏈堢殑绗竴澶╁拰鏈�鍚庝竴澶�
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
index f012b50..5ec3a0d 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} and deleted = 0 and start_time <![CDATA[ <=  ]]> now() and end_time >= now() )
+            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
index b5e1958..a0cb132 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml
@@ -3,4 +3,25 @@
 <mapper namespace="com.ycl.platform.mapper.CheckResultMapper">
 
 
+    <select id="selectCheckResultList" resultType="com.ycl.platform.domain.vo.CheckResultVO">
+        SELECT c.*,
+        u.unit_name AS unitName,
+        ct.name AS contractName
+        FROM t_contract_result c
+        LEFT JOIN
+        t_yw_unit u ON c.unit_id = u.id and u.deleted = '0'
+        LEFT JOIN
+        t_contract ct ON c.contract_id = ct.id and ct.deleted = '0'
+        where
+        c.deleted = '0'
+        <if test="unitId != null">
+            AND c.unit_id = #{unitId}
+        </if>
+        <if test="createStartTime != null">
+            AND c.check_time BETWEEN #{createStartTime} AND #{createEndTime}
+        </if>
+        <if test="publish != null">
+            AND c.publish = #{publish}
+        </if>
+    </select>
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/ContractScoreMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ContractScoreMapper.xml
index c834028..e4ca7ab 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ContractScoreMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/ContractScoreMapper.xml
@@ -22,12 +22,33 @@
         select id, publish_id, template_id, num, score, create_user, create_user_name, update_user, update_user_name, create_time, update_time from t_contract_score
     </sql>
 
-    <select id="selectDefaultScoreList" resultMap="DefaultScoreResult">
-        <include refid="selectDefaultScoreVo"/>
-        <where>
-            <if test="publishId != null "> and publish_id = #{publishId}</if>
-            <if test="templateId != null "> and template_id = #{templateId}</if>
-        </where>
+    <select id="selectDefaultScoreList" resultType="com.ycl.platform.domain.entity.ContractScore">
+        SELECT
+        cs.*,
+        u.unit_name AS unitName,
+        c.name AS contractName
+        FROM
+        t_contract_score cs
+        LEFT JOIN
+        t_yw_unit u ON cs.unit_id = u.id and u.deleted = '0'
+        LEFT JOIN
+        t_contract c ON cs.contract_id = c.id and c.deleted = '0'
+        where
+            cs.deleted = '0'
+        <if test="unitId != null">
+            AND cs.unit_id = #{unitId}
+        </if>
+        <if test="createStartTime != null">
+            AND cs.create_time BETWEEN #{createStartTime} AND #{createEndTime}
+        </if>
+        <if test="auditingStartTime != null">
+            AND cs.auditing_time BETWEEN #{auditingStartTime} AND #{auditingEndTime}
+        </if>
+        <if test="auditingStatus != null">
+            AND cs.auditing_status = #{auditingStatus}
+        </if>
+        ORDER BY
+        cs.create_time DESC
     </select>
 
     <select id="selectDefaultScoreById" resultMap="DefaultScoreResult">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml
index 18a9ccb..4e2abe7 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml
@@ -4,4 +4,12 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ycl.platform.mapper.TContractMapper">
 
+    <select id="selectAll" resultType="com.ycl.platform.domain.entity.TContract">
+        select a.*, b.unit_name
+        from t_contract a
+                 left join t_yw_unit b on a.unit_id = b.id and b.deleted = '0'
+        where a.deleted = '0'
+        order by create_time desc
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml
index 2aca478..d2ee5c5 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml
@@ -4,4 +4,11 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ycl.platform.mapper.ContractResultRecordMapper">
 
+    <insert id="saveBatch">
+        insert into t_contract_result_record(rule_name, create_time, rule_ids, result_id, num, score, deleted, deduct_category) values
+        <foreach collection="contractResultRecord" item="item" separator=",">
+            (#{item.ruleName}, #{item.createTime}, #{item.ruleIds}, #{item.resultId}, #{item.num}, #{item.score}, 0, #{item.deductCategory})
+        </foreach>
+    </insert>
+
 </mapper>

--
Gitblit v1.8.0