From eb806b5ec0bb72536e78c1a7fcffb94bcd24cbbe Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 26 四月 2024 18:24:27 +0800
Subject: [PATCH] 考核结果应用规则(算钱)新增、展示

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java |  114 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 58 insertions(+), 56 deletions(-)

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 88e3711..c979ea1 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
@@ -1,14 +1,25 @@
 package com.ycl.platform.service.impl;
 
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.platform.domain.entity.CalculateRule;
 import com.ycl.platform.domain.entity.ContractScore;
+import com.ycl.platform.mapper.CalculateRuleMapper;
 import com.ycl.platform.mapper.ContractScoreMapper;
+import com.ycl.platform.mapper.TContractMapper;
+import com.ycl.platform.mapper.YwUnitMapper;
 import com.ycl.platform.service.IContractScoreService;
+import com.ycl.system.entity.SysUser;
+import com.ycl.utils.SecurityUtils;
+import enumeration.general.AuditingStatus;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import utils.DateUtils;
 
+import java.io.Serializable;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鍚堝悓鎵撳垎Service涓氬姟灞傚鐞�
@@ -17,22 +28,15 @@
  * @date 2024-04-01
  */
 @Service
-public class ContractScoreServiceImpl extends ServiceImpl<ContractScoreMapper, ContractScore> implements IContractScoreService
-{
+public class ContractScoreServiceImpl extends ServiceImpl<ContractScoreMapper, ContractScore> implements IContractScoreService {
     @Autowired
     private ContractScoreMapper contractScoreMapper;
-
-    /**
-     * 鏌ヨ鍚堝悓鎵撳垎
-     *
-     * @param id 鍚堝悓鎵撳垎涓婚敭
-     * @return 鍚堝悓鎵撳垎
-     */
-    @Override
-    public ContractScore selectDefaultScoreById(Long id)
-    {
-        return contractScoreMapper.selectDefaultScoreById(id);
-    }
+    @Autowired
+    private YwUnitMapper ywunitMapper;
+    @Autowired
+    private TContractMapper contractMapper;
+    @Autowired
+    private CalculateRuleMapper calculateRuleMapper;
 
     /**
      * 鏌ヨ鍚堝悓鎵撳垎鍒楄〃
@@ -41,58 +45,56 @@
      * @return 鍚堝悓鎵撳垎
      */
     @Override
-    public List<ContractScore> selectDefaultScoreList(ContractScore contractScore)
-    {
-        return contractScoreMapper.selectDefaultScoreList(contractScore);
+    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());
+                            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();
     }
 
-    /**
-     * 鏂板鍚堝悓鎵撳垎
-     *
-     * @param contractScore 鍚堝悓鎵撳垎
-     * @return 缁撴灉
-     */
     @Override
-    public int insertDefaultScore(ContractScore contractScore)
-    {
-        contractScore.setCreateTime(DateUtils.getNowDate());
-        return contractScoreMapper.insertDefaultScore(contractScore);
+    public ContractScore getById(Serializable id) {
+        ContractScore contractScore = super.getById(id);
+        contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
+        return contractScore;
     }
 
-    /**
-     * 淇敼鍚堝悓鎵撳垎
-     *
-     * @param contractScore 鍚堝悓鎵撳垎
-     * @return 缁撴灉
-     */
     @Override
-    public int updateDefaultScore(ContractScore contractScore)
-    {
-        contractScore.setUpdateTime(DateUtils.getNowDate());
-        return contractScoreMapper.updateDefaultScore(contractScore);
+    public boolean save(ContractScore contractScore) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        contractScore.setCreateUserId(user.getUserId());
+        contractScore.setCreateUser(user.getNickName());
+        contractScore.setAuditingStatus(AuditingStatus.WAIT);
+        contractScore.setDeleted("0");
+        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
+        return super.save(contractScore);
     }
 
-    /**
-     * 鎵归噺鍒犻櫎鍚堝悓鎵撳垎
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑鍚堝悓鎵撳垎涓婚敭
-     * @return 缁撴灉
-     */
     @Override
-    public int deleteDefaultScoreByIds(Long[] ids)
-    {
-        return contractScoreMapper.deleteDefaultScoreByIds(ids);
+    public boolean updateById(ContractScore contractScore) {
+        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
+        return super.updateById(contractScore);
     }
 
-    /**
-     * 鍒犻櫎鍚堝悓鎵撳垎淇℃伅
-     *
-     * @param id 鍚堝悓鎵撳垎涓婚敭
-     * @return 缁撴灉
-     */
     @Override
-    public int deleteDefaultScoreById(Long id)
-    {
-        return contractScoreMapper.deleteDefaultScoreById(id);
+    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);
     }
 }

--
Gitblit v1.8.0