feat: 复审计划定时任务
This commit is contained in:
+2
-2
@@ -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<Ente
|
||||
public Result<?> queryPageList(ESQueryCommonDTO esDeclare,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
|
||||
IPage<EnterpriseStandardRecheckPlanVo> pageList= recheckPlanService.queryPageList(esDeclare, pageNo, pageSize);
|
||||
return Result.OK(pageList);
|
||||
return Result.OK(recheckPlanService.queryPageList(esDeclare, pageNo, pageSize));
|
||||
}
|
||||
}
|
||||
+4
@@ -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;
|
||||
|
||||
+4
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<LawsEnterpriseStandard> allEs = esService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>().eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
|
||||
|
||||
List<EnterpriseStandardRecheckPlan> recheckPlanList = esRecheckPlanService.list();
|
||||
Map<String, List<EnterpriseStandardRecheckPlan>> 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<EnterpriseStandardRecheckPlan> 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("企标复审计划定时任务执行完成");
|
||||
}
|
||||
}
|
||||
+6
-6
@@ -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<EnterpriseStandardPlan> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(EnterpriseStandardPlan::getQualityFlag, 0);
|
||||
enterpriseStandardPlanService.update(updateWrapper);
|
||||
+5
-9
@@ -12,6 +12,7 @@
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
|
||||
<result property="standardNo" column="standard_no" jdbcType="VARCHAR"/>
|
||||
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
|
||||
<result property="recheckDate" column="recheck_date" jdbcType="TIMESTAMP"/>
|
||||
<result property="recheckResult" column="recheck_result" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
@@ -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
|
||||
<!--企标编号判断-->
|
||||
<if test="param.standardNo != null and param.standardNo != ''">
|
||||
AND s.standard_number LIKE CONCAT('%',#{param.standardNo},'%')
|
||||
|
||||
+1
-5
@@ -32,17 +32,13 @@ import java.util.stream.Collectors;
|
||||
public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<EnterpriseStandardRecheckPlanMapper, EnterpriseStandardRecheckPlan>
|
||||
implements EnterpriseStandardRecheckPlanService{
|
||||
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardRecheckPlanMapper esRecheckPlanMapper;
|
||||
|
||||
@Override
|
||||
public IPage<EnterpriseStandardRecheckPlanVo> queryPageList(ESQueryCommonDTO esRecheckPlan, Integer pageNo, Integer pageSize) {
|
||||
IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(pageNo, pageSize);
|
||||
esRecheckPlanMapper.page(page, esRecheckPlan);
|
||||
return page;
|
||||
return esRecheckPlanMapper.page(page, esRecheckPlan);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user