From 54bfeae64b0d4a85b8f3e146b0f261d35c45ddc0 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 12 五月 2025 18:31:57 +0800
Subject: [PATCH] 分控看板班次信息添加

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
index 8612950..f6f781a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
@@ -8,6 +8,7 @@
 import org.jeecg.modules.mdc.entity.*;
 import org.jeecg.modules.mdc.mapper.MdcDeviceCalendarMapper;
 import org.jeecg.modules.mdc.service.*;
+import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.vo.EquipmentCalendarVo;
 import org.jeecg.modules.mdc.vo.MdcDeviceCalendarQueryVo;
 import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo;
@@ -18,8 +19,12 @@
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -222,4 +227,47 @@
         return mdcDeviceCalendarVos;
     }
 
+    @Override
+    public String findShiftByEquId(String equipmentId) {
+        String result = "";
+        LocalDateTime now = LocalDateTime.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+        String date = now.format(formatter);
+        String format = DateUtils.format(DateUtils.toDate(date, DateUtils.STRDATE), DateUtils.STR_DATE);
+        List<MdcShiftSub> shiftSubList = this.baseMapper.findShiftByEquId(equipmentId, date);
+        if (shiftSubList != null && !shiftSubList.isEmpty()) {
+            for (MdcShiftSub mdcShiftSub : shiftSubList) {
+                LocalDateTime startDate = DateUtils.toDate(format + " " + mdcShiftSub.getStartDate(), DateUtils.STR_DATE_TIME_SMALL).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+                LocalDateTime endDate = DateUtils.toDate(format + " " + mdcShiftSub.getEndDate(), DateUtils.STR_DATE_TIME_SMALL).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+                if ("true".equals(mdcShiftSub.getIsDaySpan())) {
+                    endDate = endDate.plusDays(1);
+                }
+                if (now.isAfter(startDate) && now.isBefore(endDate)) {
+                    result = mdcShiftSub.getShiftSubName();
+                    break;
+                }
+            }
+        }
+        if (StringUtils.isBlank(result)) {
+            LocalDateTime yesterday = now.plusDays(-1);
+            String yes = yesterday.format(formatter);
+            String previous = DateUtils.format(DateUtils.toDate(yes, DateUtils.STRDATE), DateUtils.STR_DATE);
+            List<MdcShiftSub> shiftSubs = this.baseMapper.findShiftByEquId(equipmentId, previous);
+            if (shiftSubs != null && !shiftSubs.isEmpty()) {
+                for (MdcShiftSub mdcShiftSub : shiftSubs) {
+                    LocalDateTime startDate = DateUtils.toDate(format + " " + mdcShiftSub.getStartDate(), DateUtils.STR_DATE_TIME_SMALL).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+                    LocalDateTime endDate = DateUtils.toDate(format + " " + mdcShiftSub.getEndDate(), DateUtils.STR_DATE_TIME_SMALL).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+                    if ("true".equals(mdcShiftSub.getIsDaySpan())) {
+                        endDate = endDate.plusDays(1);
+                    }
+                    if (now.isAfter(startDate) && now.isBefore(endDate)) {
+                        result = mdcShiftSub.getShiftSubName();
+                        break;
+                    }
+                }
+            }
+        }
+        return result;
+    }
+
 }

--
Gitblit v1.9.3