From 528583047b08f74df27ac538705627741363602e Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期日, 28 四月 2024 18:06:26 +0800 Subject: [PATCH] 合同积分详情,合同考核结果展示 --- ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml | 7 ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 8 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java | 123 +----------- ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractScore.java | 1 ycl-server/src/main/java/com/ycl/task/ContractResultTask.java | 79 ++++++++ ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java | 14 + ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java | 6 ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java | 18 + ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java | 7 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java | 77 +++++--- ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java | 50 +++++ ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java | 54 ----- ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml | 6 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java | 31 +++ ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml | 2 ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java | 15 + ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java | 7 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java | 2 18 files changed, 309 insertions(+), 198 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java index f4e22b8..02d972c 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckResult.java @@ -1,140 +1,49 @@ package com.ycl.platform.domain.entity; import annotation.Excel; +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 com.ycl.system.entity.BaseEntity; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.lang.builder.ToStringStyle; +import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * 鑰冩牳缁撴灉瀵硅薄 t_check_result - * + * * @author ruoyi * @date 2024-04-01 */ -public class CheckResult extends BaseEntity -{ +@TableName("t_contract_result") +@Data +public class CheckResult { private static final long serialVersionUID = 1L; - /** */ private Long id; - /** 鑰冩牳瀵硅薄 */ @Excel(name = "鑰冩牳瀵硅薄") - private Long deptId; + private Long unitId; - /** 鑰冩牳鍙戝竷 */ + @Excel(name = "杩愮淮鍚堝悓") + private Long contractId; + @Excel(name = "鑰冩牳鍙戝竷") private Long publishId; - /** 鑰冩牳绫诲瀷 */ - @Excel(name = "鑰冩牳绫诲瀷") - private Long examineCategory; - - /** 鑰冩牳鍒嗘暟 */ @Excel(name = "鑰冩牳鍒嗘暟") - private BigDecimal checkScore; + private BigDecimal score; - /** 鏄惁鍙戝竷 */ @Excel(name = "鏄惁鍙戝竷") - private Long publish; + private Integer publish; - /** 鑰冩牳鏃堕棿 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "鑰冩牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd") private Date checkTime; - /** 閫昏緫鍒犻櫎 */ + @TableLogic private String deleted; - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - public void setDeptId(Long deptId) - { - this.deptId = deptId; - } - - public Long getDeptId() - { - return deptId; - } - public void setPublishId(Long publishId) - { - this.publishId = publishId; - } - - public Long getPublishId() - { - return publishId; - } - public void setExamineCategory(Long examineCategory) - { - this.examineCategory = examineCategory; - } - - public Long getExamineCategory() - { - return examineCategory; - } - public void setCheckScore(BigDecimal checkScore) - { - this.checkScore = checkScore; - } - - public BigDecimal getCheckScore() - { - return checkScore; - } - public void setPublish(Long publish) - { - this.publish = publish; - } - - public Long getPublish() - { - return publish; - } - public void setCheckTime(Date checkTime) - { - this.checkTime = checkTime; - } - - public Date getCheckTime() - { - return checkTime; - } - public void setDeleted(String deleted) - { - this.deleted = deleted; - } - - public String getDeleted() - { - return deleted; - } - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("deptId", getDeptId()) - .append("publishId", getPublishId()) - .append("examineCategory", getExamineCategory()) - .append("checkScore", getCheckScore()) - .append("publish", getPublish()) - .append("checkTime", getCheckTime()) - .append("updateTime", getUpdateTime()) - .append("deleted", getDeleted()) - .toString(); - } + private Date updateTime; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java new file mode 100644 index 0000000..88c766c --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResultRecord.java @@ -0,0 +1,31 @@ +package com.ycl.platform.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author ghl + * @since 2024/4/28 涓嬪崍 5:45 + */ + +@Data +@TableName("t_contract_result_record") +public class ContractResultRecord { + + @TableId + private Integer id; + private Integer resultId; + private String ruleIds; + private String ruleName; + private String num; + private Double score; + private Date createTime; + private Date auditTime; + @TableLogic + private String deleted; + +} 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 9b0f1d8..55a21ba 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 @@ -43,7 +43,6 @@ private Long[] ruleIdsArray; @Excel(name = "瑙勫垯") - @TableField(exist = false) private String ruleName; @Excel(name = "鎸囨爣") 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 61dc0e0..60b01ab 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 @@ -49,7 +49,7 @@ * 鍗曚綅id */ @NotBlank - private Integer unitId; + private Long unitId; @TableField(exist = false) private String unitName; diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java new file mode 100644 index 0000000..a8fec3f --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckResultVO.java @@ -0,0 +1,50 @@ +package com.ycl.platform.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ycl.platform.domain.entity.CheckResult; +import lombok.Data; +import lombok.experimental.Accessors; +import org.springframework.beans.BeanUtils; +import org.springframework.lang.NonNull; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author gonghl + */ +@Data +@Accessors(chain = true) +public class CheckResultVO { + private Long id; + + private Long unitId; + + private String unitName; + + private Long contractId; + + private String contractName; + + private Long publishId; + + private BigDecimal score; + + private Integer publish; + + @JsonFormat(pattern = "yyyy-MM-dd") + private Date checkTime; + + private String deleted; + + private Date updateTime; + + public static CheckResultVO getVoByEntity(@NonNull CheckResult entity, CheckResultVO vo) { + if (vo == null) { + vo = new CheckResultVO(); + } + BeanUtils.copyProperties(entity, vo); + return vo; + } + +} diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java index 527c258..8511159 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/CheckResultController.java @@ -2,6 +2,7 @@ import annotation.Log; import com.ycl.platform.domain.entity.CheckResult; +import com.ycl.platform.domain.vo.CheckResultVO; import com.ycl.platform.service.ICheckResultService; import com.ycl.system.AjaxResult; import com.ycl.system.controller.BaseController; @@ -36,7 +37,7 @@ public TableDataInfo list(CheckResult checkResult) { startPage(); - List<CheckResult> list = checkResultService.selectCheckResultList(checkResult); + List<CheckResultVO> list = checkResultService.selectCheckResultList(checkResult); return getDataTable(list); } @@ -48,8 +49,8 @@ @PostMapping("/export") public void export(HttpServletResponse response, CheckResult checkResult) { - List<CheckResult> list = checkResultService.selectCheckResultList(checkResult); - ExcelUtil<CheckResult> util = new ExcelUtil<CheckResult>(CheckResult.class); + List<CheckResult> list = checkResultService.selectCheckResult(checkResult); + ExcelUtil<CheckResult> util = new ExcelUtil<>(CheckResult.class); util.exportExcel(response, list, "鑰冩牳缁撴灉鏁版嵁"); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java index 0129ff5..615207b 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckResultMapper.java @@ -3,61 +3,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.CheckResult; -import java.util.List; - /** * 鑰冩牳缁撴灉Mapper鎺ュ彛 - * + * * @author ruoyi * @date 2024-04-01 */ -public interface CheckResultMapper extends BaseMapper<CheckResult> -{ - /** - * 鏌ヨ鑰冩牳缁撴灉 - * - * @param id 鑰冩牳缁撴灉涓婚敭 - * @return 鑰冩牳缁撴灉 - */ - public CheckResult selectCheckResultById(Long id); - - /** - * 鏌ヨ鑰冩牳缁撴灉鍒楄〃 - * - * @param checkResult 鑰冩牳缁撴灉 - * @return 鑰冩牳缁撴灉闆嗗悎 - */ - public List<CheckResult> selectCheckResultList(CheckResult checkResult); - - /** - * 鏂板鑰冩牳缁撴灉 - * - * @param checkResult 鑰冩牳缁撴灉 - * @return 缁撴灉 - */ - public int insertCheckResult(CheckResult checkResult); - - /** - * 淇敼鑰冩牳缁撴灉 - * - * @param checkResult 鑰冩牳缁撴灉 - * @return 缁撴灉 - */ - public int updateCheckResult(CheckResult checkResult); - - /** - * 鍒犻櫎鑰冩牳缁撴灉 - * - * @param id 鑰冩牳缁撴灉涓婚敭 - * @return 缁撴灉 - */ - public int deleteCheckResultById(Long id); - - /** - * 鎵归噺鍒犻櫎鑰冩牳缁撴灉 - * - * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 - * @return 缁撴灉 - */ - public int deleteCheckResultByIds(Long[] ids); +public interface CheckResultMapper extends BaseMapper<CheckResult> { } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java new file mode 100644 index 0000000..0554d45 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractResultRecordMapper.java @@ -0,0 +1,15 @@ +package com.ycl.platform.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.platform.domain.entity.ContractResultRecord; + +/** + * @author gonghl + */ +public interface ContractResultRecordMapper extends BaseMapper<ContractResultRecord> { + +} + + + + diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java index fe0a755..32d9b35 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/ICheckResultService.java @@ -1,6 +1,9 @@ package com.ycl.platform.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.CheckResult; +import com.ycl.platform.domain.entity.ContractResultRecord; +import com.ycl.platform.domain.vo.CheckResultVO; import java.util.List; @@ -10,7 +13,7 @@ * @author ruoyi * @date 2024-04-01 */ -public interface ICheckResultService +public interface ICheckResultService extends IService<CheckResult> { /** * 鏌ヨ鑰冩牳缁撴灉 @@ -26,7 +29,8 @@ * @param checkResult 鑰冩牳缁撴灉 * @return 鑰冩牳缁撴灉闆嗗悎 */ - public List<CheckResult> selectCheckResultList(CheckResult checkResult); + public List<CheckResultVO> selectCheckResultList(CheckResult checkResult); + public List<CheckResult> selectCheckResult(CheckResult checkResult); /** * 鏂板鑰冩牳缁撴灉 @@ -59,4 +63,10 @@ * @return 缁撴灉 */ public int deleteCheckResultById(Long id); + + /** + * 鎵归噺淇濆瓨鑰冩牳缁撴灉 + * @param contractResultRecord 闆嗗悎 + */ + void saveBatchRecord(List<ContractResultRecord> contractResultRecord); } 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 123ad3b..a55cfce 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 @@ -39,4 +39,11 @@ * @return 缁撴灉 */ boolean audit(ContractScore contractScore); + + /** + * 鏍规嵁鍚堝悓id鏌ヨ鏈湀鍚堝悓鎵撳垎 + * @param id id + * @return 鏁版嵁 + */ + List<ContractScore> getDateRangeScoreByContractId(Long id, String startTime, String endTime); } 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 d101b61..15d8e8c 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 @@ -39,4 +39,10 @@ * @return 瑙勫垯 */ List<CalculateMoneyRule> selectMoneyRules(Integer contractId); + + /** + * 鏌ヨ鎵�鏈夋鍦ㄤ娇鐢ㄧ殑鍚堝悓 + * @return 鏁版嵁 + */ + List<TContract> selectUsingContract(); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java index d8ba31d..6ac8771 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckResultServiceImpl.java @@ -2,96 +2,119 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.CheckResult; +import com.ycl.platform.domain.entity.ContractResultRecord; +import com.ycl.platform.domain.vo.CheckResultVO; import com.ycl.platform.mapper.CheckResultMapper; +import com.ycl.platform.mapper.ContractResultRecordMapper; import com.ycl.platform.service.ICheckResultService; +import com.ycl.platform.service.ITContractService; +import com.ycl.platform.service.YwUnitService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import utils.DateUtils; +import java.util.Arrays; import java.util.List; /** * 鑰冩牳缁撴灉Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2024-04-01 */ @Service -public class CheckResultServiceImpl extends ServiceImpl<CheckResultMapper, CheckResult> implements ICheckResultService -{ +public class CheckResultServiceImpl extends ServiceImpl<CheckResultMapper, CheckResult> implements ICheckResultService { @Autowired private CheckResultMapper checkResultMapper; + @Autowired + private ContractResultRecordMapper contractResultRecordMapper; + @Autowired + private YwUnitService unitService; + @Autowired + private ITContractService contractService; + /** * 鏌ヨ鑰冩牳缁撴灉 - * + * * @param id 鑰冩牳缁撴灉涓婚敭 * @return 鑰冩牳缁撴灉 */ @Override - public CheckResult selectCheckResultById(Long id) - { - return checkResultMapper.selectCheckResultById(id); + public CheckResult selectCheckResultById(Long id) { + return checkResultMapper.selectById(id); } /** * 鏌ヨ鑰冩牳缁撴灉鍒楄〃 - * + * * @param checkResult 鑰冩牳缁撴灉 * @return 鑰冩牳缁撴灉 */ @Override - public List<CheckResult> selectCheckResultList(CheckResult checkResult) - { - return checkResultMapper.selectCheckResultList(checkResult); + public List<CheckResultVO> selectCheckResultList(CheckResult checkResult) { + return checkResultMapper.selectList(null).stream().map( + item -> { + CheckResultVO checkResultVO = CheckResultVO.getVoByEntity(item, null); + checkResultVO.setUnitName(unitService.getById(item.getUnitId()).getUnitName()); + checkResultVO.setContractName(contractService.getById(item.getContractId()).getName()); + return checkResultVO; + } + ).toList(); + } + + @Override + public List<CheckResult> selectCheckResult(CheckResult checkResult) { + return checkResultMapper.selectList(null); } /** * 鏂板鑰冩牳缁撴灉 - * + * * @param checkResult 鑰冩牳缁撴灉 * @return 缁撴灉 */ @Override - public int insertCheckResult(CheckResult checkResult) - { - return checkResultMapper.insertCheckResult(checkResult); + public int insertCheckResult(CheckResult checkResult) { + return checkResultMapper.insert(checkResult); } /** * 淇敼鑰冩牳缁撴灉 - * + * * @param checkResult 鑰冩牳缁撴灉 * @return 缁撴灉 */ @Override - public int updateCheckResult(CheckResult checkResult) - { + public int updateCheckResult(CheckResult checkResult) { checkResult.setUpdateTime(DateUtils.getNowDate()); - return checkResultMapper.updateCheckResult(checkResult); + return checkResultMapper.updateById(checkResult); } /** * 鎵归噺鍒犻櫎鑰冩牳缁撴灉 - * + * * @param ids 闇�瑕佸垹闄ょ殑鑰冩牳缁撴灉涓婚敭 * @return 缁撴灉 */ @Override - public int deleteCheckResultByIds(Long[] ids) - { - return checkResultMapper.deleteCheckResultByIds(ids); + public int deleteCheckResultByIds(Long[] ids) { + return checkResultMapper.deleteBatchIds(Arrays.asList(ids)); } /** * 鍒犻櫎鑰冩牳缁撴灉淇℃伅 - * + * * @param id 鑰冩牳缁撴灉涓婚敭 * @return 缁撴灉 */ @Override - public int deleteCheckResultById(Long id) - { - return checkResultMapper.deleteCheckResultById(id); + public int deleteCheckResultById(Long id) { + return checkResultMapper.deleteById(id); + } + + @Override + public void saveBatchRecord(List<ContractResultRecord> contractResultRecord) { + // contractResultRecordMapper } } 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 c979ea1..6adf720 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 @@ -10,6 +10,7 @@ import com.ycl.platform.mapper.YwUnitMapper; import com.ycl.platform.service.IContractScoreService; import com.ycl.system.entity.SysUser; +import com.ycl.utils.DateUtils; import com.ycl.utils.SecurityUtils; import enumeration.general.AuditingStatus; import org.apache.commons.lang3.ObjectUtils; @@ -57,9 +58,6 @@ 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(); } @@ -79,6 +77,9 @@ contractScore.setAuditingStatus(AuditingStatus.WAIT); contractScore.setDeleted("0"); contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(","))); + contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new)); + List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper).in(CalculateRule::getId, contractScore.getRuleIdsArray()).list(); + contractScore.setRuleName(String.join(" / ", new String[]{list.get(0).getRuleName(), list.get(1).getRuleDesc(), list.get(2).getRuleCondition()})); return super.save(contractScore); } @@ -91,10 +92,19 @@ @Override 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); } + + @Override + public List<ContractScore> getDateRangeScoreByContractId(Long id, String startTime, String endTime) { + return new LambdaQueryChainWrapper<>(contractScoreMapper) + .eq(ContractScore::getContractId, id) + .between(ContractScore::getCreateTime, startTime, endTime) + .eq(ContractScore::getAuditingStatus, AuditingStatus.PASS) + .list(); + } + } 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 eeb6d56..f26f06f 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 @@ -209,4 +209,12 @@ public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) { return calculateMoneyRuleService.selectMoneyRules(contractId); } + + @Override + public List<TContract> selectUsingContract() { + return new LambdaQueryChainWrapper<>(baseMapper) + .gt(TContract::getStartTime, DateUtils.getNowDate()) + .lt(TContract::getEndTime, DateUtils.getNowDate()) + .list(); + } } diff --git a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java new file mode 100644 index 0000000..22a195b --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java @@ -0,0 +1,79 @@ +package com.ycl.task; + +import com.ycl.platform.domain.entity.CheckResult; +import com.ycl.platform.domain.entity.ContractResultRecord; +import com.ycl.platform.domain.entity.ContractScore; +import com.ycl.platform.domain.entity.TContract; +import com.ycl.platform.service.ICheckResultService; +import com.ycl.platform.service.IContractScoreService; +import com.ycl.platform.service.ITContractService; +import com.ycl.utils.DateUtils; +import com.ycl.utils.bean.BeanUtils; +import jakarta.annotation.PostConstruct; +import lombok.Data; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * @author ghl + * @since 2024/4/28 涓嬪崍 4:14 + */ + +@Component +@Data +public class ContractResultTask { + + private final ITContractService contractService; + private final IContractScoreService contractScoreService; + private final ICheckResultService checkResultService; + + private String startTime; + private String endTime; + + /** + * 姣忎釜鏈�1鍙锋墽琛� + */ + @Scheduled(cron = "0 0 0 1 * ?") + // @PostConstruct + // 澶氳〃 + public void contractResultTask() { + // 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚� + List<TContract> list = contractService.selectUsingContract(); + getLastMonth(); + for (TContract tContract : list) { + // 涓婁釜鏈堟墸鍒嗚褰� + List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime); + // 鏂板鑰冩牳缁撴灉 + CheckResult checkResult = new CheckResult(); + checkResult.setUnitId(tContract.getUnitId()); + checkResult.setContractId(tContract.getId()); + checkResult.setPublish(0); + checkResult.setCheckTime(DateUtils.getNowDate()); + checkResultService.save(checkResult); + // 鏂板鑰冩牳缁撴灉璁板綍 + List<ContractResultRecord> contractResultRecord = new ArrayList<>(); + BeanUtils.copyBeanProp(contractResultRecord, contractScore); + checkResultService.saveBatchRecord(contractResultRecord); + } + } + + + /** + * 鑾峰彇涓婁釜鏈堢殑绗竴澶╁拰鏈�鍚庝竴澶� + */ + public void getLastMonth() { + LocalDate currentDate = LocalDate.now().minusMonths(1); + LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1); + String firstDay = firstDayOfMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth()); + String lastDay = lastDayOfMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + this.startTime = firstDay; + this.endTime = lastDay; + } + +} diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml index d04f8d5..f012b50 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml @@ -47,7 +47,7 @@ from t_calculate_rule where deleted = 0 and contract_id - in (select id from t_contract where unit_id = #{unitId}) + in (select id from t_contract where unit_id = #{unitId} and deleted = 0 and start_time <![CDATA[ <= ]]> now() and end_time >= now() ) </select> <insert id="insertDefaultRule" useGeneratedKeys="true" keyProperty="id"> diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml new file mode 100644 index 0000000..b5e1958 --- /dev/null +++ b/ycl-server/src/main/resources/mapper/zgyw/CheckResultMapper.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.platform.mapper.CheckResultMapper"> + + +</mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml new file mode 100644 index 0000000..2aca478 --- /dev/null +++ b/ycl-server/src/main/resources/mapper/zgyw/TContractResultRecordMapper.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.platform.mapper.ContractResultRecordMapper"> + +</mapper> -- Gitblit v1.8.0