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/IMdcDeviceCalendarService.java         |    5 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml         |   12 ++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java            |    2 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcBoardServiceImpl.java          |   18 +++++++--
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java |   48 ++++++++++++++++++++++++
 5 files changed, 81 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
index ba443bd..8442396 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.mdc.entity.MdcDeviceCalendar;
+import org.jeecg.modules.mdc.entity.MdcShiftSub;
 import org.jeecg.modules.mdc.vo.MdcDeviceCalendarQueryVo;
 import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo;
 
@@ -33,4 +34,5 @@
 
     List<MdcDeviceCalendarVo> listByEquipmentAndDates(@Param("equipmentId") String equipmentId, @Param("stringDates") List<String> stringDates);
 
+    List<MdcShiftSub> findShiftByEquId(@Param("equipmentId") String equipmentId, @Param("date") String date);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml
index 77de9af..6a94588 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml
@@ -152,4 +152,16 @@
             t1.effective_date ASC
     </select>
 
+    <select id="findShiftByEquId" resultType="org.jeecg.modules.mdc.entity.MdcShiftSub">
+        SELECT
+            t3.*
+        FROM
+            mdc_device_calendar t1
+                LEFT JOIN mdc_shift t2 ON t1.shift_id = t2.id
+                LEFT JOIN mdc_shift_sub t3 ON t1.shift_sub_id = t3.id
+        WHERE
+            t1.equipment_id = #{equipmentId}
+          AND t1.effective_date = #{date}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcDeviceCalendarService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcDeviceCalendarService.java
index 7c055ed..ec0682a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcDeviceCalendarService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcDeviceCalendarService.java
@@ -73,4 +73,9 @@
     MdcDeviceCalendar getFirstData(String equipmentId);
 
     List<MdcDeviceCalendarVo> listByEquipmentIdAndDate(String equipmentId, String date);
+
+    /**
+     * 鏍规嵁璁惧id鏌ヨ褰撳墠鐝鍚嶇О
+     */
+    String findShiftByEquId(String equipmentId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcBoardServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcBoardServiceImpl.java
index 30a4fe8..8550546 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcBoardServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcBoardServiceImpl.java
@@ -22,12 +22,14 @@
 import org.jeecg.modules.mdcJc.service.IMdcJcRcJobreportService;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.service.IMdcProductionService;
+import org.joda.time.LocalDateTime;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -68,6 +70,9 @@
 
     @Resource
     private MdcBoardMapper mdcBoardMapper;
+
+    @Resource
+    private IMdcDeviceCalendarService mdcDeviceCalendarService;
 
     /**
      * 璁惧鐘舵��
@@ -311,8 +316,8 @@
         String realName = commonAPI.translateDictFromTable("sys_user", "realname", "username", mdcBoardEquRealTImeVo.getEquipmentManager());
         mdcBoardEquRealTImeVo.setEquipmentManager(realName);
         mdcBoardEquRealTImeVo.setAlarm("鏃�");
-        if (mdcBoardEquRealTImeVo.getOporation() != null) {
-            switch (mdcBoardEquRealTImeVo.getOporation()) {
+        if (mdcBoardEquRealTImeVo.getOperation() != null) {
+            switch (mdcBoardEquRealTImeVo.getOperation()) {
                 case 1:
                 case 2:
                     mdcBoardEquRealTImeVo.setOporationDict("寰呮満");
@@ -334,7 +339,7 @@
             }
         } else {
             mdcBoardEquRealTImeVo.setOporationDict("鍏虫満");
-            mdcBoardEquRealTImeVo.setOporation(0);
+            mdcBoardEquRealTImeVo.setOperation(0);
         }
         //璁惧杩愯鏁版嵁
         Map<String, Object> mapData = equipmentWorkLineService.getDataList(mdcBoardEquRealTImeVo.getSaveTableName());
@@ -383,7 +388,12 @@
         } else {
             mdcBoardEquRealTImeVo.setReportRepairStatus("鏃�");
         }
-        // 涓嬫鐐规涓嬫淇濆吇
+        // 鐝
+        String shift = mdcDeviceCalendarService.findShiftByEquId(equipmentId);
+        if (StringUtils.isNotBlank(shift)) {
+            mdcBoardEquRealTImeVo.setShift(shift);
+        }
+        // 鐐规  淇濆吇
         Date nextInspection = mdcBoardMapper.findInsOrMain(equipmentId, MaintenanceCategoryEnum.POINT_INSPECTION.name());
         if (nextInspection != null) {
             mdcBoardEquRealTImeVo.setNextInspection(nextInspection);
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