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