From 05c0381a592a1d91b70eaef1219e60e208acc2f7 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 8 Nov 2023 10:27:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=8D=E5=AE=A1=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...terpriseStandardRecheckPlanController.java | 4 +- .../entity/EnterpriseStandardRecheckPlan.java | 4 + .../vo/EnterpriseStandardRecheckPlanVo.java | 4 + .../laws/enterprise/job/ESRecheckPlanJob.java | 73 +++++++++++++++++++ ...Task.java => QualityStandardResetJob.java} | 12 +-- .../EnterpriseStandardRecheckPlanMapper.xml | 14 ++-- ...erpriseStandardRecheckPlanServiceImpl.java | 6 +- 7 files changed, 95 insertions(+), 22 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java rename laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/{QualityStandardResetTask.java => QualityStandardResetJob.java} (73%) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardRecheckPlanController.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardRecheckPlanController.java index 679bbc3d..6e585e10 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardRecheckPlanController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardRecheckPlanController.java @@ -3,6 +3,7 @@ package com.jero.modules.laws.enterprise.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.aspect.annotation.Translation; import com.jero.common.system.base.controller.JeroController; import com.jero.common.util.MessageUtils; import com.jero.modules.laws.common.constant.ResultCommon; @@ -49,7 +50,6 @@ public class EnterpriseStandardRecheckPlanController extends JeroController queryPageList(ESQueryCommonDTO esDeclare, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { - IPage pageList= recheckPlanService.queryPageList(esDeclare, pageNo, pageSize); - return Result.OK(pageList); + return Result.OK(recheckPlanService.queryPageList(esDeclare, pageNo, pageSize)); } } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRecheckPlan.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRecheckPlan.java index 5d9d0cf0..ab7dcd13 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRecheckPlan.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardRecheckPlan.java @@ -58,6 +58,10 @@ public class EnterpriseStandardRecheckPlan implements Serializable { @ApiModelProperty(value = "所属部门") private String orgCode; + /**企标Id*/ + @ApiModelProperty(value = "企标Id") + private String standardId; + /**企标编号*/ @ApiModelProperty(value = "企标编号") private String standardNo; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardRecheckPlanVo.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardRecheckPlanVo.java index 64054cf2..2c72d43d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardRecheckPlanVo.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardRecheckPlanVo.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -18,6 +19,7 @@ import java.util.Date; @Data @NoArgsConstructor @AllArgsConstructor +@Accessors(chain = true) public class EnterpriseStandardRecheckPlanVo { /**主键ID*/ @@ -51,9 +53,11 @@ public class EnterpriseStandardRecheckPlanVo { /**主起草人*/ @ApiModelProperty(value = "主起草人") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") private String mainDraftingUser; /**主起草单位*/ @ApiModelProperty(value = "主起草单位") + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String mainDraftingUnit; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java new file mode 100644 index 00000000..76056d4c --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java @@ -0,0 +1,73 @@ +package com.jero.modules.laws.enterprise.job; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan; +import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import lombok.extern.slf4j.Slf4j; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author: Mzaxd + * @Date: 2023/11/8 9:11 + */ + +@Slf4j +public class ESRecheckPlanJob implements Job { + + @Resource + private EnterpriseStandardRecheckPlanService esRecheckPlanService; + + @Resource + private ILawsEnterpriseStandardService esService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + List allEs = esService.list(new LambdaQueryWrapper().eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue())); + + List recheckPlanList = esRecheckPlanService.list(); + Map> recheckPlanMap = recheckPlanList.stream().collect(Collectors.groupingBy(EnterpriseStandardRecheckPlan::getId)); + + for (LawsEnterpriseStandard es : allEs) { + // 根据企标发布日期判断是否当前已经达到35个月 + + // 请确保es.getReleaseDate()返回的是Date类型的实例 + ZonedDateTime releaseZonedDateTime = es.getReleaseDate().toInstant() + .atZone(ZoneId.of("Asia/Shanghai")); + LocalDate releaseLocalDate = releaseZonedDateTime.toLocalDate(); + LocalDate now = LocalDate.now(); + // 36个月的复审日期 + LocalDate recheckDate36Months = releaseLocalDate.plusMonths(36); + LocalDate plusMonths = releaseLocalDate.plusMonths(35); + if (plusMonths.isBefore(now)) { + // 判断是否已经存在复审计划 + List recheckPlans = recheckPlanMap.get(es.getId()); + if (recheckPlans == null || recheckPlans.size() == 0) { + // 企标已经达到35个月,需要重新复审 + EnterpriseStandardRecheckPlan recheckPlan = new EnterpriseStandardRecheckPlan(); + recheckPlan.setStandardId(es.getId()); + recheckPlan.setStandardNo(es.getStandardNumber()); + // 正确处理时区,转换回Date类型 + ZonedDateTime zdtRecheck = recheckDate36Months.atStartOfDay(ZoneId.of("Asia/Shanghai")); + Date recheckDate = Date.from(zdtRecheck.toInstant()); + recheckPlan.setRecheckDate(recheckDate); + esRecheckPlanService.save(recheckPlan); + } + } + } + log.info("企标复审计划定时任务执行完成"); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/QualityStandardResetTask.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/QualityStandardResetJob.java similarity index 73% rename from laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/QualityStandardResetTask.java rename to laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/QualityStandardResetJob.java index 3c268581..3c14cd5b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/QualityStandardResetTask.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/QualityStandardResetJob.java @@ -4,21 +4,21 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import lombok.extern.slf4j.Slf4j; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; import javax.annotation.Resource; @Slf4j -@Component -public class QualityStandardResetTask { +public class QualityStandardResetJob implements Job { @Resource private EnterpriseStandardPlanService enterpriseStandardPlanService; - @Scheduled(cron = "0 0 0 1 * ?") - public void qualityStandardResetTask() { + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(EnterpriseStandardPlan::getQualityFlag, 0); enterpriseStandardPlanService.update(updateWrapper); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardRecheckPlanMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardRecheckPlanMapper.xml index fe46a525..ab88bb99 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardRecheckPlanMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardRecheckPlanMapper.xml @@ -12,6 +12,7 @@ + @@ -30,17 +31,12 @@ s.release_date AS releaseDate, p.recheck_date AS recheckDate, p.recheck_result AS recheckResult, - u.username AS mainDraftingUser, - d.depart_name AS mainDraftingUnit + s.main_drafting_user AS mainDraftingUser, + s.main_drafting_unit AS mainDraftingUnit FROM laws_enterprise_standard_recheck_plan AS p - LEFT JOIN laws_enterprise_standard AS s ON s.standard_number = p.standard_no - LEFT JOIN sys_user AS u ON u.id = s.main_drafting_user - LEFT JOIN sys_depart AS d ON d.id = s.main_drafting_unit - WHERE - (p.recheck_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH)) - OR - (p.recheck_result IS NOT NULL) + LEFT JOIN laws_enterprise_standard AS s ON s.id = p.standard_id + WHERE 1 = 1 AND s.standard_number LIKE CONCAT('%',#{param.standardNo},'%') diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardRecheckPlanServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardRecheckPlanServiceImpl.java index 43c7a335..dd1420dc 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardRecheckPlanServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardRecheckPlanServiceImpl.java @@ -32,17 +32,13 @@ import java.util.stream.Collectors; public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl implements EnterpriseStandardRecheckPlanService{ - @Resource - private ISysBaseAPI sysBaseAPI; - @Resource private EnterpriseStandardRecheckPlanMapper esRecheckPlanMapper; @Override public IPage queryPageList(ESQueryCommonDTO esRecheckPlan, Integer pageNo, Integer pageSize) { IPage page = new Page<>(pageNo, pageSize); - esRecheckPlanMapper.page(page, esRecheckPlan); - return page; + return esRecheckPlanMapper.page(page, esRecheckPlan); } }