From 094a9290c836827bc1f45fd3549e7cd2ea1e1e45 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期二, 07 十一月 2023 09:45:36 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/mdc_430 into develop --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/DailyInspectionOrderJob.java | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 168 insertions(+), 0 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/DailyInspectionOrderJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/DailyInspectionOrderJob.java new file mode 100644 index 0000000..57944ce --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/DailyInspectionOrderJob.java @@ -0,0 +1,168 @@ +package org.jeecg.modules.eam.job; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.eam.entity.*; +import org.jeecg.modules.eam.service.*; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.time.DayOfWeek; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * 鑷富缁存姢宸ュ崟鑷姩鐢熸垚 + */ +@Slf4j +public class DailyInspectionOrderJob implements Job { + + @Autowired + private IInspectionCycleService inspectionCycleService; + @Autowired + private IdentityService identityService; + @Autowired + private IInspectionOrderService inspectionOrderService; + @Autowired + private IInspectionOrderDetailService inspectionOrderDetailService; + @Autowired + private IDailyInspectionStandardDetailService dailyInspectionStandardDetailService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + /*//閬嶅巻鐐规鏍囧噯锛岄�氳繃鐐规鏍囧噯鐢熸垚鐐规宸ュ崟 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List<InspectionCycle> inspectionCycleList = inspectionCycleService.getInspectionOrder(); + //褰撳墠鏃堕棿 + String currentDateTime = formatter.format(LocalDateTime.now()); + for(InspectionCycle inspectionCycle : inspectionCycleList){ + //鎻愬墠鏃堕棿 + BigDecimal leadTime = new BigDecimal("0"); + //鏈夋晥鏃堕棿 + BigDecimal effectiveTime = new BigDecimal("0"); + //鏈鐐规鏃堕棿 + Date newInspecttionTime = null; + if("min".equals(inspectionCycle.getUnit())){ + leadTime = inspectionCycle.getLeadTime().multiply(new BigDecimal("60")); + effectiveTime = inspectionCycle.getEffectiveTime().multiply(new BigDecimal("60")); + }else if("hour".equals(inspectionCycle.getUnit())){ + leadTime = inspectionCycle.getLeadTime().multiply(new BigDecimal("3600")); + effectiveTime = inspectionCycle.getEffectiveTime().multiply(new BigDecimal("3600")); + }else if("day".equals(inspectionCycle.getUnit())){ + leadTime = inspectionCycle.getLeadTime().multiply(new BigDecimal("86400")); + effectiveTime = inspectionCycle.getEffectiveTime().multiply(new BigDecimal("86400")); + } + if("day".equals(inspectionCycle.getCycleUnit())){ + Calendar calendar = Calendar.getInstance(); + if(inspectionCycle.getLastInspectionTime() != null){ + calendar.setTime(inspectionCycle.getLastInspectionTime()); + }else { + calendar.setTime(inspectionCycle.getFirstInspectionTime()); + } + calendar.add(Calendar.DAY_OF_YEAR, inspectionCycle.getCycle().intValue()); + Date inspecttionTime = calendar.getTime(); + Instant instant = inspecttionTime.toInstant(); + instant = instant.minusSeconds(leadTime.intValue()); + newInspecttionTime = Date.from(instant); + }else if("week".equals(inspectionCycle.getCycleUnit())){ + Calendar calendar = Calendar.getInstance(); + if(inspectionCycle.getLastInspectionTime() != null){ + calendar.setTime(inspectionCycle.getLastInspectionTime()); + }else { + calendar.setTime(inspectionCycle.getFirstInspectionTime()); + } + calendar.add(Calendar.WEEK_OF_MONTH, inspectionCycle.getCycle().intValue()); + Date inspecttionTime = calendar.getTime(); + Instant instant = inspecttionTime.toInstant(); + instant = instant.minusSeconds(leadTime.intValue()); + newInspecttionTime = Date.from(instant); + } + Instant instant = newInspecttionTime.toInstant(); + instant = instant.plusSeconds(effectiveTime.intValue()); + //鏈鐐规鎴鏃堕棿 + Date newnspectionDeadline = Date.from(instant); + String newDate = formatter.format(newInspecttionTime); + if(currentDateTime.equals(newDate)){ + //淇濆瓨鐐规宸ュ崟涓昏〃鏁版嵁 + InspectionOrder inspectionOrder = new InspectionOrder(); + inspectionOrder.setNum(identityService.getNumByTypeAndLength("DailylnspectionOrder",4)); + inspectionOrder.setInspectionCycleId(inspectionCycle.getId()); + inspectionOrder.setInspectionStandardId(inspectionCycle.getInspectionStandardId()); + inspectionOrder.setInspectionTime(newInspecttionTime); + inspectionOrder.setInspectionStandardType("1"); + inspectionOrder.setInspectionDeadline(newnspectionDeadline); + inspectionOrder.setEquipmentId(inspectionCycle.getEquipmentId()); + inspectionOrder.setTeamId(inspectionCycle.getTeamId()); + inspectionOrderService.save(inspectionOrder); + //鏇存柊涓婃鐐规鏃堕棿 + inspectionCycle.setLastInspectionTime(newInspecttionTime); + inspectionCycleService.updateById(inspectionCycle); + //鏍规嵁鏍囧噯鍜屽懆鏈熸煡璇㈢偣妫�椤圭洰 + //淇濆瓨鐐规宸ュ崟瀛愯〃鏁版嵁 + } + }*/ + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List<InspectionCycle> inspectionCycleList = inspectionCycleService.getInspectionOrder(); + LocalDate today = LocalDate.now(); + DayOfWeek dayOfWeek = today.getDayOfWeek(); + for(InspectionCycle inspectionCycle : inspectionCycleList){ + if("day".equals(inspectionCycle.getCycleUnit())){ + //淇濆瓨鐐规宸ュ崟涓昏〃鏁版嵁 + InspectionOrder inspectionOrder = new InspectionOrder(); + inspectionOrder.setNum(identityService.getNumByTypeAndLength("DailylnspectionOrder",4)); + inspectionOrder.setInspectionCycleId(inspectionCycle.getId()); + inspectionOrder.setInspectionStandardId(inspectionCycle.getInspectionStandardId()); + inspectionOrder.setInspectionTime(new Date()); + inspectionOrder.setInspectionStandardType("1"); + inspectionOrder.setEquipmentId(inspectionCycle.getEquipmentId()); + inspectionOrder.setTeamId(inspectionCycle.getTeamId()); + inspectionOrderService.save(inspectionOrder); + //淇濆瓨鐐规宸ュ崟瀛愯〃鏁版嵁 + List<DailyInspectionStandardDetail> dailyInspectionStandardDetailList = dailyInspectionStandardDetailService.lambdaQuery() + .eq(DailyInspectionStandardDetail::getDailyInspectionStandardId,inspectionOrder.getInspectionStandardId()) + .eq(DailyInspectionStandardDetail::getInspectionCycleId,inspectionOrder.getInspectionCycleId()).list(); + for(DailyInspectionStandardDetail dailyInspectionStandardDetail : dailyInspectionStandardDetailList){ + InspectionOrderDetail inspectionOrderDetail = new InspectionOrderDetail(); + inspectionOrderDetail.setInspectionOrderId(inspectionOrder.getId()); + inspectionOrderDetail.setInspectionProjectId(dailyInspectionStandardDetail.getInspectionProjectId()); + inspectionOrderDetail.setInspectionStandardDetailId(dailyInspectionStandardDetail.getId()); + inspectionOrderDetail.setLocation(dailyInspectionStandardDetail.getLocation()); + inspectionOrderDetail.setPhoto(dailyInspectionStandardDetail.getPhoto()); + inspectionOrderDetailService.save(inspectionOrderDetail); + } + }else if("week".equals(inspectionCycle.getCycleUnit()) && dayOfWeek == DayOfWeek.FRIDAY){ + //淇濆瓨鐐规宸ュ崟涓昏〃鏁版嵁 + InspectionOrder inspectionOrder = new InspectionOrder(); + inspectionOrder.setNum(identityService.getNumByTypeAndLength("DailylnspectionOrder",4)); + inspectionOrder.setInspectionCycleId(inspectionCycle.getId()); + inspectionOrder.setInspectionStandardId(inspectionCycle.getInspectionStandardId()); + inspectionOrder.setInspectionTime(new Date()); + inspectionOrder.setInspectionStandardType("1"); + inspectionOrder.setEquipmentId(inspectionCycle.getEquipmentId()); + inspectionOrder.setTeamId(inspectionCycle.getTeamId()); + inspectionOrderService.save(inspectionOrder); + //淇濆瓨鐐规宸ュ崟瀛愯〃鏁版嵁 + List<DailyInspectionStandardDetail> dailyInspectionStandardDetailList = dailyInspectionStandardDetailService.lambdaQuery() + .eq(DailyInspectionStandardDetail::getDailyInspectionStandardId,inspectionOrder.getInspectionStandardId()) + .eq(DailyInspectionStandardDetail::getInspectionCycleId,inspectionOrder.getInspectionCycleId()).list(); + for(DailyInspectionStandardDetail dailyInspectionStandardDetail : dailyInspectionStandardDetailList){ + InspectionOrderDetail inspectionOrderDetail = new InspectionOrderDetail(); + inspectionOrderDetail.setInspectionOrderId(inspectionOrder.getId()); + inspectionOrderDetail.setInspectionProjectId(dailyInspectionStandardDetail.getInspectionProjectId()); + inspectionOrderDetail.setInspectionStandardDetailId(dailyInspectionStandardDetail.getId()); + inspectionOrderDetail.setLocation(dailyInspectionStandardDetail.getLocation()); + inspectionOrderDetail.setPhoto(dailyInspectionStandardDetail.getPhoto()); + inspectionOrderDetailService.save(inspectionOrderDetail); + } + } + } + } +} -- Gitblit v1.9.3