From 5777b0803509008e638e747eca5408f82ffbc8bf Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 25 四月 2024 18:05:45 +0800
Subject: [PATCH] 合同积分新增、查询、修改、审核、删除、导出

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java       |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java             |  180 +++++++++++++----------------------
 ycl-common/src/main/java/enumeration/general/AuditingStatus.java                     |    3 
 ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java |   32 ++++++
 ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml                    |    1 
 ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java         |    3 
 ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java    |   62 ++++++++----
 8 files changed, 147 insertions(+), 138 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/general/AuditingStatus.java b/ycl-common/src/main/java/enumeration/general/AuditingStatus.java
index 51d3860..659905c 100644
--- a/ycl-common/src/main/java/enumeration/general/AuditingStatus.java
+++ b/ycl-common/src/main/java/enumeration/general/AuditingStatus.java
@@ -13,15 +13,16 @@
 @Getter
 public enum AuditingStatus {
 
+    WAIT("WAIT", "寰呭鏍�"),
     PASS("PASS", "閫氳繃"),
     NO_PASS("NO_PASS", "鏈�氳繃"),
     ;
 
 
     @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
-    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
     private final String code;
 
+    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
     private final String desc;
 
     AuditingStatus(String code, String desc) {
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 d5924f9..0e1fca8 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
@@ -1,11 +1,17 @@
 package com.ycl.platform.domain.entity;
 
 import annotation.Excel;
-import com.ycl.system.entity.BaseEntity;
-import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.commons.lang.builder.ToStringStyle;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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 enumeration.general.AuditingStatus;
+import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 鍚堝悓鎵撳垎瀵硅薄 t_default_score
@@ -13,137 +19,87 @@
  * @author ruoyi
  * @date 2024-04-01
  */
-public class ContractScore extends BaseEntity
-{
+@Data
+@TableName("t_contract_score")
+public class ContractScore {
     private static final long serialVersionUID = 1L;
 
-    /**  */
     private Long id;
 
-    /** 鍚堝悓鑰冩牳id */
-    @Excel(name = "鍚堝悓鑰冩牳id")
-    private Long publishId;
+    private Long unitId;
 
-    /** 妯℃澘id */
-    @Excel(name = "妯℃澘id")
-    private Long templateId;
+    @Excel(name = "杩愮淮鍗曚綅")
+    @TableField(exist = false)
+    private String unitName;
 
-    /** 鍏蜂綋鏁伴噺銆佷釜鏁般�佸皬鏃舵暟 */
-    @Excel(name = "鍏蜂綋鏁伴噺銆佷釜鏁般�佸皬鏃舵暟")
+    private Long contractId;
+
+    @Excel(name = "鍚堝悓")
+    @TableField(exist = false)
+    private String contractName;
+
+    private Long ruleId;
+    private String ruleIds;
+    @TableField(exist = false)
+    private Long[] ruleIdsArray;
+
+    @Excel(name = "瑙勫垯")
+    @TableField(exist = false)
+    private String ruleName;
+
+    @Excel(name = "鎸囨爣")
     private String num;
 
-    /** 鏍规嵁rule鐨勬墦鍒嗘柟寮忕粨鍚坱emplate鎵e垎绯绘暟鍜宯um,绯荤粺璁$畻鐨勫垎鏁� */
-    @Excel(name = "鏍规嵁rule鐨勬墦鍒嗘柟寮忕粨鍚坱emplate鎵e垎绯绘暟鍜宯um,绯荤粺璁$畻鐨勫垎鏁�")
+    @Excel(name = "鍒嗘暟")
     private BigDecimal score;
 
-    /**  */
-    private Long createUser;
+    private Long createUserId;
 
-    /**  */
-    private String createUserName;
+    @Excel(name = "鍒涘缓浜�")
+    private String createUser;
 
-    /**  */
-    private Long updateUser;
+    private Long auditingUserId;
 
-    /**  */
-    private String updateUserName;
+    @Excel(name = "瀹℃牳浜�")
+    private String auditingUser;
 
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(fill = FieldFill.INSERT)
+    @Excel(name = "鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
 
-    public Long getId()
-    {
-        return id;
-    }
-    public void setPublishId(Long publishId)
-    {
-        this.publishId = publishId;
-    }
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date auditingTime;
 
-    public Long getPublishId()
-    {
-        return publishId;
-    }
-    public void setTemplateId(Long templateId)
-    {
-        this.templateId = templateId;
-    }
+    @Excel(name = "瀹℃牳鐘舵��")
+    private AuditingStatus auditingStatus;
 
-    public Long getTemplateId()
-    {
-        return templateId;
-    }
-    public void setNum(String num)
-    {
-        this.num = num;
-    }
+    @Excel(name = "瀹℃牳璇存槑")
+    private String remark;
 
-    public String getNum()
-    {
-        return num;
-    }
-    public void setScore(BigDecimal score)
-    {
-        this.score = score;
-    }
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
 
-    public BigDecimal getScore()
-    {
-        return score;
-    }
-    public void setCreateUser(Long createUser)
-    {
-        this.createUser = createUser;
-    }
+    @TableLogic
+    private String deleted;
 
-    public Long getCreateUser()
-    {
-        return createUser;
-    }
-    public void setCreateUserName(String createUserName)
-    {
-        this.createUserName = createUserName;
-    }
+    //鏌ヨ鏉′欢
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createStartTime;
 
-    public String getCreateUserName()
-    {
-        return createUserName;
-    }
-    public void setUpdateUser(Long updateUser)
-    {
-        this.updateUser = updateUser;
-    }
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createEndTime;
 
-    public Long getUpdateUser()
-    {
-        return updateUser;
-    }
-    public void setUpdateUserName(String updateUserName)
-    {
-        this.updateUserName = updateUserName;
-    }
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date auditingStartTime;
 
-    public String getUpdateUserName()
-    {
-        return updateUserName;
-    }
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date auditingEndTime;
 
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("publishId", getPublishId())
-            .append("templateId", getTemplateId())
-            .append("num", getNum())
-            .append("score", getScore())
-            .append("createUser", getCreateUser())
-            .append("createUserName", getCreateUserName())
-            .append("updateUser", getUpdateUser())
-            .append("updateUserName", getUpdateUserName())
-            .append("createTime", getCreateTime())
-            .append("updateTime", getUpdateTime())
-            .toString();
-    }
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java
index eecdbc8..63d6d23 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java
@@ -33,4 +33,6 @@
      */
     private Integer calcUnit;
 
+    private Long contractId;
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java b/ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java
index 6a479fc..b9a4395 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java
@@ -6,14 +6,18 @@
 import com.ycl.system.AjaxResult;
 import com.ycl.system.controller.BaseController;
 import com.ycl.system.page.TableDataInfo;
+import com.ycl.utils.DateUtils;
 import com.ycl.utils.poi.ExcelUtil;
 import enumeration.BusinessType;
+import enumeration.general.AuditingStatus;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鍚堝悓鎵撳垎Controller
@@ -23,8 +27,7 @@
  */
 @RestController
 @RequestMapping("/contract/score")
-public class ContractScoreController extends BaseController
-{
+public class ContractScoreController extends BaseController {
     @Autowired
     private IContractScoreService defaultScoreService;
 
@@ -32,9 +35,8 @@
      * 鏌ヨ鍚堝悓鎵撳垎鍒楄〃
      */
     @PreAuthorize("@ss.hasPermi('platform:score:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(ContractScore contractScore)
-    {
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody ContractScore contractScore) {
         startPage();
         List<ContractScore> list = defaultScoreService.selectDefaultScoreList(contractScore);
         return getDataTable(list);
@@ -44,12 +46,10 @@
      * 瀵煎嚭鍚堝悓鎵撳垎鍒楄〃
      */
     @PreAuthorize("@ss.hasPermi('platform:score:export')")
-    @Log(title = "鍚堝悓鎵撳垎", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ContractScore contractScore)
-    {
+    public void export(HttpServletResponse response, ContractScore contractScore) {
         List<ContractScore> list = defaultScoreService.selectDefaultScoreList(contractScore);
-        ExcelUtil<ContractScore> util = new ExcelUtil<ContractScore>(ContractScore.class);
+        ExcelUtil<ContractScore> util = new ExcelUtil<>(ContractScore.class);
         util.exportExcel(response, list, "鍚堝悓鎵撳垎鏁版嵁");
     }
 
@@ -58,9 +58,10 @@
      */
     @PreAuthorize("@ss.hasPermi('platform:score:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(defaultScoreService.selectDefaultScoreById(id));
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        ContractScore contractScore = defaultScoreService.getById(id);
+        contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
+        return success(contractScore);
     }
 
     /**
@@ -69,9 +70,13 @@
     @PreAuthorize("@ss.hasPermi('platform:score:add')")
     @Log(title = "鍚堝悓鎵撳垎", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody ContractScore contractScore)
-    {
-        return toAjax(defaultScoreService.insertDefaultScore(contractScore));
+    public AjaxResult add(@RequestBody ContractScore contractScore) {
+        contractScore.setCreateUserId(getUserId());
+        contractScore.setCreateUser(getUsername());
+        contractScore.setAuditingStatus(AuditingStatus.WAIT);
+        contractScore.setDeleted("0");
+        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
+        return toAjax(defaultScoreService.save(contractScore));
     }
 
     /**
@@ -80,9 +85,23 @@
     @PreAuthorize("@ss.hasPermi('platform:score:edit')")
     @Log(title = "鍚堝悓鎵撳垎", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody ContractScore contractScore)
-    {
-        return toAjax(defaultScoreService.updateDefaultScore(contractScore));
+    public AjaxResult edit(@RequestBody ContractScore contractScore) {
+        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
+        return toAjax(defaultScoreService.updateById(contractScore));
+    }
+
+    /**
+     * 鍚堝悓鎵撳垎瀹℃牳
+     */
+    @PreAuthorize("@ss.hasPermi('platform:score:audit')")
+    @Log(title = "鍚堝悓鎵撳垎瀹℃牳", businessType = BusinessType.UPDATE)
+    @PostMapping("/auditing")
+    public AjaxResult audit(@RequestBody ContractScore contractScore) {
+        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
+        contractScore.setAuditingTime(DateUtils.getNowDate());
+        contractScore.setAuditingUser(getUsername());
+        contractScore.setAuditingUserId(getUserId());
+        return toAjax(defaultScoreService.updateById(contractScore));
     }
 
     /**
@@ -90,9 +109,8 @@
      */
     @PreAuthorize("@ss.hasPermi('platform:score:remove')")
     @Log(title = "鍚堝悓鎵撳垎", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(defaultScoreService.deleteDefaultScoreByIds(ids));
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(defaultScoreService.removeBatchByIds(Arrays.asList(ids)));
     }
 }
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 bb33340..8ca27c1 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
@@ -1,5 +1,6 @@
 package com.ycl.platform.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.platform.domain.entity.ContractScore;
 
 import java.util.List;
@@ -10,7 +11,7 @@
  * @author ruoyi
  * @date 2024-04-01
  */
-public interface IContractScoreService
+public interface IContractScoreService extends IService<ContractScore>
 {
     /**
      * 鏌ヨ鍚堝悓鎵撳垎
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 0283e71..a6c3af1 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
@@ -42,7 +42,7 @@
      */
     @Override
     public CalculateRule selectDefaultRuleById(Long id) {
-        return calculateRuleMapper.selectDefaultRuleById(id);
+        return calculateRuleMapper.selectById(id);
     }
 
     /**
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..441b357 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,13 +1,22 @@
 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 org.apache.commons.lang3.ObjectUtils;
+import org.aspectj.weaver.ast.Var;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import utils.DateUtils;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -21,6 +30,12 @@
 {
     @Autowired
     private ContractScoreMapper contractScoreMapper;
+    @Autowired
+    private YwUnitMapper ywunitMapper;
+    @Autowired
+    private TContractMapper contractMapper;
+    @Autowired
+    private CalculateRuleMapper calculateRuleMapper;
 
     /**
      * 鏌ヨ鍚堝悓鎵撳垎
@@ -43,7 +58,22 @@
     @Override
     public List<ContractScore> selectDefaultScoreList(ContractScore contractScore)
     {
-        return contractScoreMapper.selectDefaultScoreList(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();
     }
 
     /**
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
index f22190c..d04f8d5 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
@@ -41,6 +41,7 @@
                calc_fraction,
                calc_unit,
                id as value,
+               contract_id,
                if(rule_condition is not null, rule_condition, if(rule_desc is not null, rule_desc, rule_name)) as label,
                parent_id
         from t_calculate_rule

--
Gitblit v1.8.0