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