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