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; } 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)); } /** 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); } /** 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); } 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); } 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); } 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(); } } 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); } } 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; /** * 【请填写功能名称】Service业务层处理 @@ -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); } }