diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java index c7da1954..d7102d61 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java @@ -19,6 +19,8 @@ import org.springblade.desk.basic.config.RoleConfig; import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.util.RoleUtil; +import org.springblade.desk.common.feign.IMesNotifyMessageClient; +import org.springblade.desk.common.pojo.entity.MesNotifyMessageEntity; import org.springblade.desk.quality.constant.CycleTestConst; import org.springblade.desk.quality.constant.CycleTestTaskConst; import org.springblade.desk.quality.constant.InspectionTaskConst; @@ -93,6 +95,8 @@ public class CycleTestTaskService2 { private IAttachClient attachClient; @Resource private RoleConfig roleConfig; + @Resource + private IMesNotifyMessageClient mesNotifyMessageClient; /** * list @@ -211,6 +215,11 @@ public class CycleTestTaskService2 { // 判断结果对象 Object objAdvance = JobExtUtil.isAdvanceTargetDay(je, ct.getGenBefore()); if (objAdvance != null) { + MesNotifyMessageEntity mesNotifyMessageEntity = new MesNotifyMessageEntity(); + mesNotifyMessageEntity.setContent("您有实验任务"); + mesNotifyMessageEntity.setReceiveUserId(ct.getProcessUserId()); + mesNotifyMessageClient.save(mesNotifyMessageEntity); + log.info("match je config = {}", objAdvance); // 试验时间 LocalDate testDate = LocalDate.now().plusDays(ct.getGenBefore()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java index b6750dbd..57b75e83 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java @@ -158,8 +158,34 @@ public class JobExtUtil { } } else if (type == YEAR) { String config = je.getJobTypeYearValue(); + + // 获取当月最后一天 + LocalDate lastLD = LocalDate.of(today.getYear(), today.getMonth(), 1) + .with(TemporalAdjusters.lastDayOfMonth()); + log.info("当月最后一天:{}", lastLD); + // 当月最多多少天 + Integer maxDay = lastLD.getDayOfMonth(); + + + //如果超了就设置为最后一天 + List list = Arrays.asList(config.split(",")); + String str = ""; + for(String one : list){ + + String m = one.substring(0, 2); + String d = one.substring(2); + + int month = Integer.parseInt(one.substring(0, 2)); + int day = Integer.parseInt(one.substring(2)); + if(day>maxDay){ + day = maxDay; + d = day+""; + } + str = str+m+""+d+","; + } + str = str.substring(0,str.length()-1); // 解析配置为年度目标日期(MonthDay 仅存月+日,不关联年份) - Set targetMonthDays = Arrays.stream(config.split(",")) + Set targetMonthDays = Arrays.stream(str.split(",")) .map(String::trim) .map(dateStr -> { // 解析 0201 → 月=2,日=1;1020 → 月=10,日=20 @@ -176,6 +202,7 @@ public class JobExtUtil { if (targetMonthDays.contains(futureMonthDay)) { return futureMonthDay; } else { + MonthDay leapDay = MonthDay.of(2, 29); if (targetMonthDays.contains(leapDay)) { // 有配置0229 if (!Year.now().isLeap()) { // 不是闰年 特殊情况