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