From c33eedaf999b84dd8377aba96d8aeeeba264b4f6 Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期二, 09 九月 2025 15:07:35 +0800
Subject: [PATCH] mdc首页功能迁移

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DncHomeController.java                |   49 +++++++
 lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java |   16 ++
 lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml         |   12 +
 lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java         |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml                     |   19 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDayUtilizationVo.java                |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java            |  135 +++++++++---------
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java                |  124 +++--------------
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java                     |   13 +
 9 files changed, 192 insertions(+), 185 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DncHomeController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DncHomeController.java
new file mode 100644
index 0000000..480626c
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DncHomeController.java
@@ -0,0 +1,49 @@
+package org.jeecg.modules.dnc.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Lyh
+ * @Description: DNC棣栭〉鎺ュ彛
+ * @date 2024/3/13 14:27
+ */
+@Slf4j
+@Api(tags = "DNC棣栭〉鎺ュ彛")
+@RestController
+@RequestMapping("/dnc/home")
+
+//todo dnc棣栭〉鐩稿叧鎺ュ彛寰呭畾
+public class DncHomeController {
+
+    /**
+     * 涓夌淮宸ヨ壓宸ヨ壓瑙勭▼淇℃伅鍒楄〃
+     * @return
+     */
+    @ApiOperation(value = "涓夌淮宸ヨ壓宸ヨ壓瑙勭▼淇℃伅鍒楄〃", notes = "涓夌淮宸ヨ壓宸ヨ壓瑙勭▼淇℃伅鍒楄〃")
+    @GetMapping(value = "/syncProcessSpecificationInfo")
+    public Result<?> syncProcessSpecificationInfo() {
+        return Result.ok();
+    }
+
+    /**
+     * 涓夌淮宸ヨ壓宸ヨ壓瑙勭▼淇℃伅棰嗗彇鎸傞潬浜у搧缁撴瀯鏍�
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "涓夌淮宸ヨ壓宸ヨ壓瑙勭▼淇℃伅棰嗗彇鎸傞潬浜у搧缁撴瀯鏍�", notes = "涓夌淮宸ヨ壓宸ヨ壓瑙勭▼淇℃伅棰嗗彇鎸傞潬浜у搧缁撴瀯鏍�")
+    @GetMapping(value = "/receiveTree")
+    public Result<?> syncProcessSpecificationInfoTree(@RequestParam(name = "id") String id) throws JsonProcessingException {
+        return Result.ok();
+    }
+
+}
diff --git a/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
index 4e876b7..d89fefc 100644
--- a/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
+++ b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
@@ -82,11 +82,13 @@
         FROM
             mdc_equipment me
             LEFT JOIN mdc_production_equipment mpe ON me.id = mpe.equipment_id
-        WHERE
-            mpe.production_id IN
-        <foreach collection="allProductionIds" index="index" item="id" open="(" separator="," close=")">
-            #{id}
-        </foreach>
+        WHERE 1=1
+        <if test="allProductionIds != null and allProductionIds.size() > 0">
+            and  mpe.production_id IN
+            <foreach collection="allProductionIds" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
     </select>
 
     <!--鏍规嵁浜х嚎id鏌ヨ璁惧id闆嗗悎-->
diff --git a/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
index f3493f9..82c8366 100644
--- a/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
+++ b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
@@ -129,6 +129,11 @@
     List<String> getEquipmentIdsProduction(String userId, String key);
 
     /**
+     * 鏌ヨ浜х嚎涓嬬殑鎵�鏈夎澶�(棣栭〉閮ㄦ牴鎹敤鎴疯繘琛屾暟鎹瓫閫�)
+     */
+    List<String> getEquipmentIdsProduction(String key);
+
+    /**
      * 鏍规嵁璁惧id鏌ヨ璁惧鍚嶇О
      *
      * @param equipmentId
diff --git a/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index 49944e5..2682672 100644
--- a/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.compress.utils.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.dto.message.MessageDTO;
@@ -634,6 +635,21 @@
     }
 
     /**
+     * 鏌ヨ浜х嚎涓嬬殑鎵�鏈夎澶�
+     */
+    @Override
+    public List<String> getEquipmentIdsProduction(String key) {
+        List<String> partProduction = Lists.newArrayList();
+        if (StringUtils.isNotEmpty(key)) {
+            //key涓嶄负绌猴紝鏌ヨ鎵�鏈変笅绾т骇绾縤d
+            partProduction = this.findAllProductions(key);
+            partProduction.add(key);
+        }
+        List<String> equipmentIds = this.baseMapper.queryIdsByProductions(partProduction);
+        return equipmentIds;
+    }
+
+    /**
      * 鏍规嵁璁惧id鏌ヨ璁惧鍚嶇О
      */
     @Override
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
index 248d69a..fb7219c 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
@@ -46,131 +46,49 @@
     @Resource
     private IMdcHomeService mdcHomeService;
 
+    @ApiOperation(value = "MDC棣栭〉鎺ュ彛-鏌ヨ鎵�鏈夎溅闂�", notes = "MDC棣栭〉鎺ュ彛-鏌ヨ鎵�鏈夎溅闂�")
+    @GetMapping("/getAllWorkShop")
+    public Result<List<MdcProduction>> getAllWorkShop() {
+        return Result.OK(mdcHomeService.getAllWorkShop());
+    }
+
     @ApiOperation(value = "MDC棣栭〉鎺ュ彛-璁惧杩愯鐘舵�佺粺璁�", notes = "MDC棣栭〉鎺ュ彛-璁惧杩愯鐘舵�佺粺璁�")
     @GetMapping("/equipmentStatusStatistics")
-    public Result<?> equipmentStatusStatistics(String productionCode) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        Integer userType = user.getUserType();
-        String userId = user.getId();
-        String key = "";
-        if (StringUtils.isNotBlank(productionCode)) {
-            //鍘傚尯/宸ユ
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
-            key = mdcProduction.getId();
-        } else {
-            //鍒ゆ柇鏄叕鍙哥骇杩樻槸鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
-            if (userType.equals(MdcConstant.USER_TYPE_4)) {
-                //鍏徃
-                key = mdcProduction.getId();
-            } else if (userType.equals(MdcConstant.USER_TYPE_3)) {
-                //鍘傚尯
-                key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
-            } else if (userType.equals(MdcConstant.USER_TYPE_2)) {
-                //宸ユ 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勫伐娈垫潈闄�
-                key = mdcProductionService.findThreeProductionId(userId);
-            }
-        }
-        List<MdcCommonVo> resultMap = mdcHomeService.getEquipmentStatusStatistics(userId, key);
+    public Result<?> equipmentStatusStatistics(String productionId) {
+        List<MdcCommonVo> resultMap = mdcHomeService.getEquipmentStatusStatistics(productionId);
         Map<String, Object> map = new HashMap<>();
         map.put("list", resultMap);
-        map.put("productionId", key);
         return Result.OK(map);
     }
 
     @ApiOperation(value = "MDC棣栭〉鎺ュ彛-璁惧鍒╃敤鐜囩粺璁�(鏄ㄦ棩)", notes = "MDC棣栭〉鎺ュ彛-璁惧杩愯鐘舵�佺粺璁�(鏄ㄦ棩)")
     @GetMapping("/equipmentUtilizationStatistics")
-    public Result<?> equipmentUtilizationStatistics(String productionCode) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        Integer userType = user.getUserType();
-        String userId = user.getId();
-        String key = "";
-        if (StringUtils.isNotBlank(productionCode)) {
-            //鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
-            key = mdcProduction.getId();
-        } else {
-            //鍒ゆ柇鏄叕鍙哥骇杩樻槸鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
-            if (userType.equals(MdcConstant.USER_TYPE_4)) {
-                //鍏徃
-                key = mdcProduction.getId();
-            } else if (userType.equals(MdcConstant.USER_TYPE_3)) {
-                //鍘傚尯
-                key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
-            }
-        }
-        List<MdcCommonVo> result = mdcHomeService.getEquipmentUtilizationStatistics(userId, key);
+    public Result<?> equipmentUtilizationStatistics(String productionId) {
+        List<MdcCommonVo> result = mdcHomeService.getEquipmentUtilizationStatistics(productionId);
         return Result.OK(result);
     }
 
     @ApiOperation(value = "MDC棣栭〉鎺ュ彛-璁惧OEE缁熻(涓婃湀)", notes = "MDC棣栭〉鎺ュ彛-璁惧OEE缁熻(涓婃湀)")
     @GetMapping("/equipmentOEEStatistics")
-    public Result<?> equipmentOEEStatistics(String productionCode) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        Integer userType = user.getUserType();
-        String userId = user.getId();
-        String key = "";
-        if (StringUtils.isNotBlank(productionCode)) {
-            //鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
-            key = mdcProduction.getId();
-        } else {
-            //鍒ゆ柇鏄叕鍙哥骇杩樻槸鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
-            if (userType.equals(MdcConstant.USER_TYPE_4)) {
-                //鍏徃
-                key = mdcProduction.getId();
-            } else if (userType.equals(MdcConstant.USER_TYPE_3)) {
-                //鍘傚尯
-                key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
-            }
-        }
-        List<MdcCommonVo> result = mdcHomeService.getEquipmentOeeStatistics(userId, key);
+    public Result<?> equipmentOEEStatistics(String productionId) {
+        List<MdcCommonVo> result = mdcHomeService.getEquipmentOeeStatistics(productionId);
         return Result.OK(result);
     }
 
     @ApiOperation(value = "MDC棣栭〉鎺ュ彛-璁惧OEE鍜屽埄鐢ㄧ巼缁熻鏌辩姸鍥�", notes = "MDC棣栭〉鎺ュ彛-璁惧OEE鍜屽埄鐢ㄧ巼缁熻鏌辩姸鍥�")
     @GetMapping("/equipmentMonthStatistics")
-    public Result<?> equipmentMonthStatistics(String productionCode) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        Integer userType = user.getUserType();
-        String userId = user.getId();
-        String key = "";
-        if (StringUtils.isNotBlank(productionCode)) {
-            //鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
-            key = mdcProduction.getId();
-        } else {
-            //鍒ゆ柇鏄叕鍙哥骇杩樻槸鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
-            if (userType.equals(MdcConstant.USER_TYPE_4)) {
-                //鍏徃
-                key = mdcProduction.getId();
-            } else if (userType.equals(MdcConstant.USER_TYPE_3)) {
-                //鍘傚尯
-                key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
-            }
-        }
-        Map<String, Object> result = mdcHomeService.getEquipmentMonthStatistics(userId, key);
+    public Result<?> equipmentMonthStatistics(String productionId) {
+        MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
+
+        String key = mdcProduction.getId();
+        Map<String, Object> result = mdcHomeService.getEquipmentMonthStatistics(productionId);
         return Result.OK(result);
     }
 
-    @ApiOperation(value = "MDC棣栭〉鎺ュ彛-宸ユ绾у墠涓冨ぉ鍒╃敤鐜囨姌绾垮浘", notes = "MDC棣栭〉鎺ュ彛-宸ユ绾у墠涓冨ぉ鍒╃敤鐜囨姌绾垮浘")
+    @ApiOperation(value = "MDC棣栭〉鎺ュ彛-宸ユ绾у墠15澶╁埄鐢ㄧ巼鎶樼嚎鍥�", notes = "MDC棣栭〉鎺ュ彛-宸ユ绾у墠15澶╁埄鐢ㄧ巼鎶樼嚎鍥�")
     @GetMapping("/equipmentDayUtilizationStatistics")
-    public Result<?> equipmentDayUtilizationStatistics(String productionCode) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = user.getId();
-        String key = "";
-        if (StringUtils.isNotBlank(productionCode)) {
-            //鍘傚尯
-            MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
-            key = mdcProduction.getId();
-        } else {
-            //宸ユ 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勫伐娈垫潈闄�
-            key = mdcProductionService.findThreeProductionId(userId);
-        }
-        Map<String, Object> result = mdcHomeService.getEquipmentDayUtilizationStatistics(userId, key);
+    public Result<?> equipmentDayUtilizationStatistics(String productionId) {
+        Map<String, Object> result = mdcHomeService.getEquipmentDayUtilizationStatistics(productionId);
         return Result.OK(result);
     }
 
@@ -249,6 +167,8 @@
         return Result.OK(result);
     }
 
+
+
     @ApiOperation(value = "MDC棣栭〉鎺ュ彛-闂鍒楄〃", notes = "MDC棣栭〉鎺ュ彛-闂鍒楄〃")
     @GetMapping("/feedbackList")
     public Result<?> feedbackList(String productionCode) {
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml
index b809b98..457de28 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml
@@ -4,12 +4,17 @@
 
     <select id="getProductionByPid" resultType="org.jeecg.modules.system.entity.MdcProduction">
         SELECT
-            t1.*
+        t1.*
         FROM
-            mdc_production t1
-                LEFT JOIN mdc_user_production t2 ON t1.id = t2.pro_id
-        WHERE
-            t1.parent_id = #{ productionId } AND t2.user_id = #{ userId }
+        mdc_production t1
+        --                 LEFT JOIN mdc_user_production t2 ON t1.id = t2.pro_id
+        WHERE 1=1
+        <if test="productionId != null and productionId != ''">
+            AND t1.parent_id = #{ productionId }
+        </if>
+        <!--        <if test="userId != null and userId != ''">-->
+        <!--            AND t2.user_id = #{ userId }-->
+        <!--        </if>-->
     </select>
 
     <select id="getProcessCount" resultType="java.math.BigDecimal">
@@ -126,6 +131,7 @@
     <select id="getEquipmentSevenUtilizationStatistics" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalInfo">
         SELECT
             equipment_id,
+            the_date,
             SUM ( process_long ) processLong,
             SUM ( open_long ) openLong
         FROM
@@ -140,7 +146,8 @@
             </if>
         </where>
         GROUP BY
-            equipment_id
+        equipment_id,
+        the_date
     </select>
 
 
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java
index cadcb5a..a6cd01f 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java
@@ -6,6 +6,7 @@
 import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency;
 import org.jeecg.modules.mdc.vo.MdcCommonVo;
 import org.jeecg.modules.mdc.vo.MdcHomeEfficiencyVo;
+import org.jeecg.modules.system.entity.MdcProduction;
 
 import java.util.List;
 import java.util.Map;
@@ -19,27 +20,27 @@
     /**
      * 璁惧杩愯鐘舵�佺粺璁�
      */
-    List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key);
+    List<MdcCommonVo> getEquipmentStatusStatistics(String productionId);
 
     /**
      * 璁惧鍒╃敤鐜囩粺璁�
      */
-    List<MdcCommonVo> getEquipmentUtilizationStatistics(String userId, String key);
+    List<MdcCommonVo> getEquipmentUtilizationStatistics(String productionId);
 
     /**
      * 璁惧OEE缁熻
      */
-    List<MdcCommonVo> getEquipmentOeeStatistics(String userId, String key);
+    List<MdcCommonVo> getEquipmentOeeStatistics(String productionId);
 
     /**
      * 璁惧OEE鍜屽埄鐢ㄧ巼缁熻鏌辩姸鍥�
      */
-    Map<String, Object> getEquipmentMonthStatistics(String userId, String key);
+    Map<String, Object> getEquipmentMonthStatistics(String productionId);
 
     /**
      * 宸ユ绾у墠涓冨ぉ鍒╃敤鐜囨姌绾垮浘
      */
-    Map<String, Object> getEquipmentDayUtilizationStatistics(String userId, String key);
+    Map<String, Object> getEquipmentDayUtilizationStatistics(String productionId);
 
     /**
      * 鏌ヨ璁惧涓婃湀OEE
@@ -72,4 +73,6 @@
     MdcEquipmentDto getEquipmentDetails(String equipmentId);
 
     List<MdcFeedback> getFeedbackList(String key);
+
+    List<MdcProduction> getAllWorkShop();
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
index cb3f76b..4c2b54e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
@@ -1,7 +1,9 @@
 package org.jeecg.modules.mdc.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import org.apache.commons.compress.utils.Lists;
+import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.modules.mdc.constant.MdcConstant;
 import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
@@ -20,6 +22,7 @@
 import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author Lius
@@ -56,7 +59,7 @@
      * 璁惧杩愯鐘舵�佺粺璁�
      */
     @Override
-    public List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key) {
+    public List<MdcCommonVo> getEquipmentStatusStatistics(String productionId) {
         List<MdcCommonVo> result = new ArrayList<>();
         MdcCommonVo mdcCommonVo1 = new MdcCommonVo();
         mdcCommonVo1.setName("鍏虫満");
@@ -75,15 +78,16 @@
         mdcCommonVo4.setValue("0");
         result.add(mdcCommonVo4);
         MdcEquipmentStatusVo mdcEquipmentStatusVo = new MdcEquipmentStatusVo();
-        if (StringUtils.isBlank(key)) {
-            return result;
+
+        //鑾峰彇鎵�鏈夎澶�
+        List<Equipment> equipmentList = Lists.newArrayList();
+        if (StringUtils.isNotBlank(productionId)) {
+            List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(productionId);
+            equipmentList = CollectionUtils.isNotEmpty(equipmentIdList) ? equipmentService.listByIds(equipmentIdList) : new ArrayList<>();
+        }else {
+            equipmentList = equipmentService.list();
         }
-        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key);
-        if (equipmentIdList == null || equipmentIdList.isEmpty()) {
-            return result;
-        }
-//        List<EquipmentLog> logList = equipmentLogService.getEquipmentStatusList(equipmentIdList);
-        List<Equipment> equipmentList = equipmentService.list(new LambdaQueryWrapper<Equipment>().in(Equipment::getEquipmentid, equipmentIdList));
+
         if (equipmentList != null && !equipmentList.isEmpty()) {
             for (Equipment equipment : equipmentList) {
                 if (equipment.getOporation() != null) {
@@ -131,10 +135,15 @@
      * 璁惧鍒╃敤鐜囩粺璁�
      */
     @Override
-    public List<MdcCommonVo> getEquipmentUtilizationStatistics(String userId, String key) {
+    public List<MdcCommonVo> getEquipmentUtilizationStatistics(String productionId) {
         List<MdcCommonVo> result = new ArrayList<>();
         //鑾峰彇鍏徃鎴栧巶鍖轰簩绾т俊鎭�
-        List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(userId, key);
+        List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(null, productionId);
+
+        //濡傛灉涓嶄紶鈥減roductionId鈥濆弬鏁帮紝鍒欐煡鎵�鏈夎溅闂达紝鍚﹀垯鏌ヨ璇ヨ溅闂翠笅鐨勫伐娈电瓑
+        if (StringUtils.isEmpty(productionId)) {
+            mdcProductionList = mdcProductionList.stream().filter(mdcProduction -> "2".equals(mdcProduction.getOrgType())).collect(Collectors.toList());
+        }
         if (mdcProductionList != null && !mdcProductionList.isEmpty()) {
             for (MdcProduction mdcProduction : mdcProductionList) {
                 MdcCommonVo mdcCommonVo = new MdcCommonVo();
@@ -142,7 +151,7 @@
                 mdcCommonVo.setProductionCode(mdcProduction.getProductionCode());
                 mdcCommonVo.setProductionId(mdcProduction.getId());
                 //鑾峰彇姝ゅ眰绾т笅璁惧
-                List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId());
+                List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(mdcProduction.getId());
                 if (equipmentIdList == null || equipmentIdList.isEmpty()) {
                     mdcCommonVo.setValue("0");
                 } else {
@@ -167,10 +176,14 @@
      * 璁惧OEE缁熻
      */
     @Override
-    public List<MdcCommonVo> getEquipmentOeeStatistics(String userId, String key) {
+    public List<MdcCommonVo> getEquipmentOeeStatistics(String productionId) {
         List<MdcCommonVo> result = new ArrayList<>();
         //鑾峰彇鍏徃鎴栧巶鍖轰簩绾т俊鎭�
-        List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(userId, key);
+        List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(null, productionId);
+        //濡傛灉涓嶄紶鈥減roductionId鈥濆弬鏁帮紝鍒欐煡鎵�鏈夎溅闂达紝鍚﹀垯鏌ヨ璇ヨ溅闂翠笅鐨勫伐娈电瓑
+        if (StringUtils.isEmpty(productionId)) {
+            mdcProductionList = mdcProductionList.stream().filter(mdcProduction -> "2".equals(mdcProduction.getOrgType())).collect(Collectors.toList());
+        }
         if (mdcProductionList != null && !mdcProductionList.isEmpty()) {
             for (MdcProduction mdcProduction : mdcProductionList) {
                 MdcCommonVo mdcCommonVo = new MdcCommonVo();
@@ -178,7 +191,7 @@
                 mdcCommonVo.setProductionCode(mdcProduction.getProductionCode());
                 mdcCommonVo.setProductionId(mdcProduction.getId());
                 //鑾峰彇姝ゅ眰绾т笅璁惧
-                List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId());
+                List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(mdcProduction.getId());
                 if (equipmentIdList == null || equipmentIdList.isEmpty()) {
                     mdcCommonVo.setValue("0");
                 } else {
@@ -187,7 +200,7 @@
                     if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) {
                         mdcCommonVo.setValue("0");
                     } else {
-                        mdcCommonVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());
+                        mdcCommonVo.setValue(CollectionUtils.isNotEmpty(equipmentIdList) ? oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString() : "0");
                     }
                 }
                 result.add(mdcCommonVo);
@@ -200,8 +213,8 @@
      * 璁惧OEE鍜屽埄鐢ㄧ巼缁熻鏌辩姸鍥�
      */
     @Override
-    public Map<String, Object> getEquipmentMonthStatistics(String userId, String key) {
-        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key);
+    public Map<String, Object> getEquipmentMonthStatistics(String productionId) {
+        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(productionId);
         Map<String, Object> result = new HashMap<>();
         Date end = DateUtils.toDate(LocalDate.now().plusMonths(-1).toString(), DateUtils.STR_DATE);
         Date start = DateUtils.toDate(LocalDate.now().plusMonths(-12).toString(), DateUtils.STR_DATE);
@@ -241,7 +254,7 @@
                 if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) {
                     mdcCommonOeeVo.setValue("0");
                 } else {
-                    mdcCommonOeeVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());
+                    mdcCommonOeeVo.setValue(CollectionUtils.isNotEmpty(equipmentIdList) ? oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString() : "0");
                 }
             }
             utilizationList.add(mdcCommonUtilizationVo);
@@ -257,34 +270,21 @@
      * 宸ユ绾у墠涓冨ぉ鍒╃敤鐜囨姌绾垮浘
      */
     @Override
-    public Map<String, Object> getEquipmentDayUtilizationStatistics(String userId, String key) {
+    public Map<String, Object> getEquipmentDayUtilizationStatistics(String productionId) {
         Map<String, Object> result = new HashMap<>();
-        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key);
-        //鑾峰彇鍓嶄竷澶╂棩鏈熼泦鍚�
-        String start = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-7).toString(), DateUtils.STR_DATE), DateUtils.STRDATE);
-        String end = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-1).toString(), DateUtils.STR_DATE), DateUtils.STRDATE);
-        if (equipmentIdList != null && !equipmentIdList.isEmpty()) {
-            List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().in(MdcEquipment::getEquipmentId, equipmentIdList));
-            result.put("mdcEquipmentList", mdcEquipmentList);
-            List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfoList = mdcHomeMapper.getEquipmentSevenUtilizationStatistics(equipmentIdList, start, end);
-            List<EquipmentDayUtilizationVo> dataList = new ArrayList<>();
-            if (mdcEquipmentStatisticalInfoList != null && !mdcEquipmentStatisticalInfoList.isEmpty()) {
-                for (MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo : mdcEquipmentStatisticalInfoList) {
-                    EquipmentDayUtilizationVo equipmentDayUtilizationVo = new EquipmentDayUtilizationVo();
-                    equipmentDayUtilizationVo.setEquipmentId(mdcEquipmentStatisticalInfo.getEquipmentId());
-                    equipmentDayUtilizationVo.setUtilizationRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(mdcEquipmentStatisticalInfoList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
-                    if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) {
-                        equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
-                        equipmentDayUtilizationVo.setStartRate(mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(mdcEquipmentStatisticalInfoList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
-                    }
-                    dataList.add(equipmentDayUtilizationVo);
-                }
-            }
-            result.put("dataList", dataList);
-        }
-        /*List<String> dayBetween = DateUtils.getDatesStringList2(start, end);
+
+        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(productionId);
+        Date startDate = DateUtils.toDate(LocalDate.now().plusDays(-15).toString(), DateUtils.STR_DATE);
+        String start = DateUtils.format(startDate, DateUtils.STRDATE);
+        Date endDate = DateUtils.toDate(LocalDate.now().plusDays(-1).toString(), DateUtils.STR_DATE);
+        String end = DateUtils.format(endDate, DateUtils.STRDATE);
+        List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfos = mdcHomeMapper.getEquipmentSevenUtilizationStatistics(equipmentIdList, start, end);
+        Map<String, MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfoMap = mdcEquipmentStatisticalInfos.stream().collect(Collectors.toMap(MdcEquipmentStatisticalInfo::getTheDate, mdcEquipmentStatisticalInfo -> mdcEquipmentStatisticalInfo, (v1, v2) -> v1));
+        List<String> dayBetween = DateUtils.getDatesStringList2(startDate, endDate);
+
         List<String> dateList = new ArrayList<>();
         List<EquipmentDayUtilizationVo> dataList = new ArrayList<>();
+
         for (String date : dayBetween) {
             EquipmentDayUtilizationVo equipmentDayUtilizationVo = new EquipmentDayUtilizationVo();
             String item = date.substring(4);
@@ -292,42 +292,34 @@
                 item = item.substring(1);
                 String sub = item.substring(1);
                 if (sub.startsWith("0")) {
-                    item = item.substring(0, 1) + "鏈�" + sub.substring(1) + "鏃�";
+                    item = item.substring(0, 1) + "-" + sub.substring(1);
                 } else {
-                    item = item.substring(0, 1) + "鏈�" + item.substring(1) + "鏃�";
+                    item = item.substring(0, 1) + "-" + item.substring(1);
                 }
             } else {
                 String sub = item.substring(2);
                 if (sub.startsWith("0")) {
-                    item = item.substring(0, 2) + "鏈�" + sub.substring(2) + "鏃�";
+                    item = item.substring(0, 2) + "-" + sub.substring(2);
                 } else {
-                    item = item.substring(0, 2) + "鏈�" + item.substring(2) + "鏃�";
+                    item = item.substring(0, 2) + "-" + item.substring(2);
                 }
             }
             dateList.add(item);
             equipmentDayUtilizationVo.setDate(item);
-            if (equipmentIdList != null && !equipmentIdList.isEmpty()) {
-                //鑾峰彇鍓嶄竷澶╁埄鐢ㄧ巼鏁版嵁
-                List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfos = mdcHomeMapper.getEquipmentDayUtilizationStatistics(equipmentIdList, dayBetween);
-                if (mdcEquipmentStatisticalInfos != null && !mdcEquipmentStatisticalInfos.isEmpty()) {
-                    for (MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo : mdcEquipmentStatisticalInfos) {
-                        if (mdcEquipmentStatisticalInfo.getTheDate().equals(date)) {
-                            equipmentDayUtilizationVo.setUtilizationRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
-                            if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) {
-                                equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
-                                equipmentDayUtilizationVo.setStartRate(mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
-                            }
-                        }
-                    }
-                } else {
-                    dataList.add(equipmentDayUtilizationVo);
+
+            if (null != mdcEquipmentStatisticalInfoMap && mdcEquipmentStatisticalInfoMap.containsKey(date)) {
+                //鑾峰彇褰撳墠鏃ユ湡涓嬬殑鍒╃敤鐜囨暟鎹�
+                MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo = mdcEquipmentStatisticalInfoMap.get(date);
+                equipmentDayUtilizationVo.setUtilizationRate(CollectionUtils.isNotEmpty(equipmentIdList) ? mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO);
+                if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) {
+                    equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+                    equipmentDayUtilizationVo.setStartRate(CollectionUtils.isNotEmpty(equipmentIdList) ? mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO);
                 }
-            } else {
-                dataList.add(equipmentDayUtilizationVo);
             }
+            dataList.add(equipmentDayUtilizationVo);
         }
         result.put("dateList", dateList);
-        result.put("dataList", dataList);*/
+        result.put("dataList", dataList);
         return result;
     }
 
@@ -505,4 +497,13 @@
     public List<MdcFeedback> getFeedbackList(String key) {
         return mdcFeedbackService.getFeedbackList(key);
     }
+
+    @Override
+    public List<MdcProduction> getAllWorkShop() {
+        List<MdcProduction> list = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getOrgType, "2"));
+        if (CollectionUtils.isEmpty(list)) {
+            return null;
+        }
+        return list;
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDayUtilizationVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDayUtilizationVo.java
index c634d10..1acff00 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDayUtilizationVo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDayUtilizationVo.java
@@ -15,6 +15,10 @@
      */
     private String equipmentId;
     /**
+     * 璁惧缂栧彿
+     */
+    private String date;
+    /**
      * 鍒╃敤鐜�
      */
     private BigDecimal utilizationRate = BigDecimal.ZERO;

--
Gitblit v1.9.3