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/TContractServiceImpl.java | 14 +++ ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java | 7 + ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java | 8 ++ ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java | 11 ++ ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java | 86 +++++++-------------- ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java | 49 +++-------- ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java | 19 ---- ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java | 24 ++++++ ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java | 7 + 9 files changed, 114 insertions(+), 111 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java index e4c77d9..61dc0e0 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java @@ -9,9 +9,22 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.util.Arrays; import java.util.Date; +import java.util.List; /** * 杩愮淮鍚堝悓瀵硅薄 t_contract @@ -35,6 +48,7 @@ /** * 鍗曚綅id */ + @NotBlank private Integer unitId; @TableField(exist = false) @@ -43,18 +57,21 @@ /** * 鍚堝悓鍚嶇О */ + @NotBlank private String name; /** * 寮�濮嬫椂闂� */ @JsonFormat(pattern = "yyyy-MM-dd hh-mm-ss") + @NotNull private Date startTime; /** * 缁撴潫鏃堕棿 */ @JsonFormat(pattern = "yyyy-MM-dd hh-mm-ss") + @NotNull private Date endTime; /** @@ -69,4 +86,11 @@ @TableLogic private String deleted; + @TableField(exist = false) + @NotBlank + private String ruleList; + @TableField(exist = false) + @NotNull + private MultipartFile file; + } 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 b9a4395..298cf96 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,10 +6,8 @@ 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; @@ -17,7 +15,6 @@ import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; /** * 鍚堝悓鎵撳垎Controller @@ -59,9 +56,7 @@ @PreAuthorize("@ss.hasPermi('platform:score:query')") @GetMapping(value = "/{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); + return success(defaultScoreService.getById(id)); } /** @@ -71,11 +66,6 @@ @Log(title = "鍚堝悓鎵撳垎", businessType = BusinessType.INSERT) @PostMapping 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)); } @@ -86,7 +76,6 @@ @Log(title = "鍚堝悓鎵撳垎", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ContractScore contractScore) { - contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(","))); return toAjax(defaultScoreService.updateById(contractScore)); } @@ -97,11 +86,7 @@ @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)); + return toAjax(defaultScoreService.audit(contractScore)); } /** diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java b/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java index a4f51da..3ad75a8 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java @@ -2,6 +2,7 @@ import annotation.Log; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ycl.platform.domain.entity.CalculateMoneyRule; import com.ycl.platform.domain.entity.TContract; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.query.YwUnitQuery; @@ -40,6 +41,12 @@ return tContractService.selectAll(); } + @PreAuthorize("@ss.hasPermi('system:contract:query')") + @GetMapping("/selectMoneyRules") + public AjaxResult selectMoneyRules(Integer contractId) { + return success(tContractService.selectMoneyRules(contractId)); + } + /** * 鍚堝悓瀵煎叆妯℃澘 */ @@ -58,8 +65,8 @@ @Log(title = "鍚堝悓瀵煎叆", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, TContract tContract) { - return tContractService.importData(file, tContract); + public AjaxResult importData(TContract tContract) { + return tContractService.importData(tContract.getFile(), tContract); } /** diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java b/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java index d67e2f2..14287b2 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java @@ -62,4 +62,11 @@ * @return */ Result all(); + + /** + * 鏍规嵁鍚堝悓id鏌ヨ + * @param contractId 鍚堝悓id + * @return 鏁版嵁 + */ + List<CalculateMoneyRule> selectMoneyRules(Integer contractId); } 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 8ca27c1..123ad3b 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 @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.ContractScore; +import java.io.Serializable; import java.util.List; /** @@ -11,15 +12,7 @@ * @author ruoyi * @date 2024-04-01 */ -public interface IContractScoreService extends IService<ContractScore> -{ - /** - * 鏌ヨ鍚堝悓鎵撳垎 - * - * @param id 鍚堝悓鎵撳垎涓婚敭 - * @return 鍚堝悓鎵撳垎 - */ - public ContractScore selectDefaultScoreById(Long id); +public interface IContractScoreService extends IService<ContractScore> { /** * 鏌ヨ鍚堝悓鎵撳垎鍒楄〃 @@ -29,35 +22,21 @@ */ public List<ContractScore> selectDefaultScoreList(ContractScore contractScore); - /** - * 鏂板鍚堝悓鎵撳垎 - * - * @param contractScore 鍚堝悓鎵撳垎 - * @return 缁撴灉 - */ - public int insertDefaultScore(ContractScore contractScore); + + @Override + ContractScore getById(Serializable id); + + @Override + boolean save(ContractScore contractScore); + + @Override + boolean updateById(ContractScore contractScore); /** - * 淇敼鍚堝悓鎵撳垎 + * 瀹℃牳 * - * @param contractScore 鍚堝悓鎵撳垎 + * @param contractScore 鏁版嵁 * @return 缁撴灉 */ - public int updateDefaultScore(ContractScore contractScore); - - /** - * 鎵归噺鍒犻櫎鍚堝悓鎵撳垎 - * - * @param ids 闇�瑕佸垹闄ょ殑鍚堝悓鎵撳垎涓婚敭闆嗗悎 - * @return 缁撴灉 - */ - public int deleteDefaultScoreByIds(Long[] ids); - - /** - * 鍒犻櫎鍚堝悓鎵撳垎淇℃伅 - * - * @param id 鍚堝悓鎵撳垎涓婚敭 - * @return 缁撴灉 - */ - public int deleteDefaultScoreById(Long id); + boolean audit(ContractScore contractScore); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java index 338ad78..d101b61 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java @@ -1,6 +1,7 @@ package com.ycl.platform.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.platform.domain.entity.CalculateMoneyRule; import com.ycl.platform.domain.entity.TContract; import com.ycl.system.AjaxResult; import jakarta.servlet.http.HttpServletResponse; @@ -31,4 +32,11 @@ AjaxResult importData(MultipartFile file, TContract tContract); List<TContract> selectAll(); + + /** + * 鏍规嵁鍚堝悓id鏌ヨ閽辨牳绠楄鍒� + * @param contractId 鍚堝悓id + * @return 瑙勫垯 + */ + List<CalculateMoneyRule> selectMoneyRules(Integer contractId); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java index df1a3a5..3c36e50 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java @@ -142,4 +142,11 @@ .collect(Collectors.toList()); return Result.ok().data(vos); } + + @Override + public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) { + return new LambdaQueryChainWrapper<>(baseMapper) + .eq(CalculateMoneyRule::getContractId, contractId) + .list(); + } } 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 441b357..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 @@ -9,15 +9,17 @@ 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.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.io.Serializable; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 鍚堝悓鎵撳垎Service涓氬姟灞傚鐞� @@ -26,8 +28,7 @@ * @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; @Autowired @@ -38,26 +39,13 @@ private CalculateRuleMapper calculateRuleMapper; /** - * 鏌ヨ鍚堝悓鎵撳垎 - * - * @param id 鍚堝悓鎵撳垎涓婚敭 - * @return 鍚堝悓鎵撳垎 - */ - @Override - public ContractScore selectDefaultScoreById(Long id) - { - return contractScoreMapper.selectDefaultScoreById(id); - } - - /** * 鏌ヨ鍚堝悓鎵撳垎鍒楄〃 * * @param contractScore 鍚堝悓鎵撳垎 * @return 鍚堝悓鎵撳垎 */ @Override - public List<ContractScore> selectDefaultScoreList(ContractScore 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()) @@ -76,53 +64,37 @@ ).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); } } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java index 9ea9b05..eeb6d56 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java @@ -3,10 +3,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.merge.LoopMergeStrategy; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.handler.CommentWriteHandler; import com.ycl.handler.CustomSheetWriteHandler; +import com.ycl.platform.domain.entity.CalculateMoneyRule; import com.ycl.platform.domain.entity.CalculateRule; import com.ycl.platform.domain.entity.TContract; import com.ycl.platform.mapper.TContractMapper; @@ -30,6 +33,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 銆愯濉啓鍔熻兘鍚嶇О銆慡ervice涓氬姟灞傚鐞� @@ -42,6 +46,7 @@ public class TContractServiceImpl extends ServiceImpl<TContractMapper, TContract> implements ITContractService { private final ICalculateRuleService calculateRuleService; + private final CalculateMoneyRuleServiceImpl calculateMoneyRuleService; private final YwUnitServiceImpl ywUnitService; @Override @@ -184,6 +189,10 @@ } // 鎵归噺淇濆瓨瑙勫垯 calculateRuleService.saveBatch(calculateRulesToSave); + //鎵归噺淇濆瓨鑰冩牳缁撴灉搴旂敤瑙勫垯 + calculateMoneyRuleService.saveBatch(JSON.parseArray(tContract.getRuleList(), CalculateMoneyRule.class).stream().peek( + calculateMoneyRule -> calculateMoneyRule.setContractId(tContract.getId().intValue()) + ).collect(Collectors.toList())); return AjaxResult.success("鎿嶄綔鎴愬姛"); } @@ -195,4 +204,9 @@ tContract -> tContract.setUnitName(ywUnitService.getById(tContract.getUnitId()).getUnitName()) ).toList(); } + + @Override + public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) { + return calculateMoneyRuleService.selectMoneyRules(contractId); + } } -- Gitblit v1.8.0