From daf5a28d644cece1e19972521f0d6f19dfef20a4 Mon Sep 17 00:00:00 2001
From: lius <Lius2225@163.com>
Date: 星期五, 07 七月 2023 09:57:01 +0800
Subject: [PATCH] 率参数标签接口

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcUtilizationRateController.java     |   34 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java     |    6 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcUtilizationRateDto.java                   |   20 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java          |   12 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java                      |   22 --
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java          |   48 ++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcUtilizationRateServiceImpl.java  |   24 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcTorqueConfigVo.java                        |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java |  192 +++++++++++++++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java    |   21 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java            |    8 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcUtilizationRateService.java          |   15 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml         |   38 ++++
 13 files changed, 398 insertions(+), 47 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java
index 2016911..f518d2b 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java
@@ -9,6 +9,7 @@
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.mdc.service.MdcEfficiencyReportService;
 import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo;
+import org.jeecg.modules.mdc.vo.MdcEfficiencyReportShiftQueryVo;
 import org.jeecg.modules.mdc.vo.MdcEfficiencyVo;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -39,13 +40,23 @@
         return Result.OK(result);
     }
 
-    @AutoLog(value = "璁惧鏁堢巼鎶ヨ〃-鐝鍒╃敤鐜囧垪琛ㄦ煡璇�")
-    @ApiOperation(value = "璁惧鏁堢巼鎶ヨ〃-鐝鍒╃敤鐜囧垪琛ㄦ煡璇�", notes = "璁惧鏁堢巼鎶ヨ〃-鐝鍒╃敤鐜囧垪琛ㄦ煡璇�")
-    @GetMapping("/shiftEfficiencyList")
-    public Result shiftEfficiencyList(MdcEfficiencyReportQueryVo vo) {
+    @AutoLog(value = "璁惧鏁堢巼鎶ヨ〃-寮�鍔ㄧ巼鍒楄〃鏌ヨ")
+    @ApiOperation(value = "璁惧鏁堢巼鎶ヨ〃-寮�鍔ㄧ巼鍒楄〃鏌ヨ", notes = "璁惧鏁堢巼鎶ヨ〃-寮�鍔ㄧ巼鍒楄〃鏌ヨ")
+    @GetMapping("/efficiencyPOList")
+    public Result efficiencyPOList(MdcEfficiencyReportQueryVo vo) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         String userId = user.getId();
-        MdcEfficiencyVo result = mdcEfficiencyReportService.shiftEfficiencyList(userId, vo);
+        MdcEfficiencyVo result = mdcEfficiencyReportService.efficiencyPOList(userId, vo);
+        return Result.OK(result);
+    }
+
+    @AutoLog(value = "璁惧鏁堢巼鎶ヨ〃-鐝鍒╃敤鐜囧垪琛ㄦ煡璇�")
+    @ApiOperation(value = "璁惧鏁堢巼鎶ヨ〃-鐝鍒╃敤鐜囧垪琛ㄦ煡璇�", notes = "璁惧鏁堢巼鎶ヨ〃-鐝鍒╃敤鐜囧垪琛ㄦ煡璇�")
+    @GetMapping("/efficiencyShiftList")
+    public Result efficiencyShiftList(MdcEfficiencyReportShiftQueryVo vo) {
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = user.getId();
+        MdcEfficiencyVo result = mdcEfficiencyReportService.efficiencyShiftList(userId, vo);
         return Result.OK(result);
     }
 
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcUtilizationRateController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcUtilizationRateController.java
index 69156e5..aaf1068 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcUtilizationRateController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcUtilizationRateController.java
@@ -8,6 +8,7 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.mdc.dto.MdcUtilizationRateDto;
 import org.jeecg.modules.mdc.entity.MdcUtilizationRate;
 import org.jeecg.modules.mdc.service.IMdcUtilizationRateService;
 import org.springframework.web.bind.annotation.*;
@@ -16,6 +17,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * @Description: 鐜囧弬鏁拌缃�
@@ -33,6 +35,7 @@
 
     /**
      * 鍒嗛〉鏌ヨ
+     *
      * @param mdcUtilizationRate
      * @param pageNo
      * @param pageSize
@@ -45,7 +48,7 @@
     public Result<?> queryPageList(MdcUtilizationRate mdcUtilizationRate,
                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                   HttpServletRequest req){
+                                   HttpServletRequest req) {
         //灏嗛〉闈㈣幏鍙栫殑椤靛�煎皝瑁呰嚦Page瀵硅薄鍐�
         Page page = new Page(pageNo, pageSize);
         IPage<MdcUtilizationRate> mdcUtilizationRateIPage = mdcUtilizationRateService.queryPageList(page, req);
@@ -54,69 +57,75 @@
 
     /**
      * 鏂板
+     *
      * @param mdcUtilizationRate
      * @return
      */
     @AutoLog("鐜囧弬鏁拌缃�-鏂板")
     @ApiOperation(value = "鐜囧弬鏁拌缃�-鏂板", notes = "鐜囧弬鏁拌缃�-鏂板")
     @PostMapping("/addUtilization")
-    public Result<?> addUtilization(@RequestBody MdcUtilizationRate mdcUtilizationRate){
+    public Result<?> addUtilization(@RequestBody MdcUtilizationRate mdcUtilizationRate) {
         Boolean flag = mdcUtilizationRateService.addUtilization(mdcUtilizationRate);
         return flag ? Result.OK("鏂板鎴愬姛") : Result.error("鏂板澶辫触");
     }
 
     /**
      * 缂栬緫
+     *
      * @param mdcUtilizationRate
      * @return
      */
     @AutoLog("鐜囧弬鏁拌缃�-缂栬緫")
     @ApiOperation(value = "鐜囧弬鏁拌缃�-缂栬緫", notes = "鐜囧弬鏁拌缃�-缂栬緫")
     @PutMapping("/editUtilization")
-    public Result<?> editUtilization(@RequestBody MdcUtilizationRate mdcUtilizationRate){
+    public Result<?> editUtilization(@RequestBody MdcUtilizationRate mdcUtilizationRate) {
         Boolean flag = mdcUtilizationRateService.editUtilization(mdcUtilizationRate);
         return flag ? Result.OK("淇敼鎴愬姛") : Result.error("淇敼澶辫触");
     }
 
     /**
      * 鏍规嵁id鍒犻櫎
+     *
      * @param id
      * @return
      */
     @AutoLog("鐜囧弬鏁拌缃�-鏍规嵁id鍒犻櫎")
     @ApiOperation(value = "鐜囧弬鏁拌缃�-鏍规嵁id鍒犻櫎", notes = "鐜囧弬鏁拌缃�-鏍规嵁id鍒犻櫎")
     @DeleteMapping("/deleteUtilization")
-    public Result<?> deleteUtilization(@RequestParam(name = "id", required = true) String id){
+    public Result<?> deleteUtilization(@RequestParam(name = "id", required = true) String id) {
         Boolean flag = mdcUtilizationRateService.deleteUtilization(id);
         return flag ? Result.OK("鍒犻櫎鎴愬姛") : Result.error("鍒犻櫎澶辫触");
     }
 
     /**
      * 鎵归噺鍒犻櫎
+     *
      * @param ids
      * @return
      */
     @AutoLog("鐜囧弬鏁拌缃�-鎵归噺鍒犻櫎")
     @ApiOperation(value = "鐜囧弬鏁拌缃�-鎵归噺鍒犻櫎", notes = "鐜囧弬鏁拌缃�-鎵归噺鍒犻櫎")
     @DeleteMapping("/deleteBatchUtilization")
-    public Result<?> deleteBatchUtilization(@RequestParam(name = "ids", required = true) String ids){
+    public Result<?> deleteBatchUtilization(@RequestParam(name = "ids", required = true) String ids) {
         Boolean flag = mdcUtilizationRateService.deleteBatchUtilization(ids);
         return flag ? Result.OK("鎵归噺鍒犻櫎鎴愬姛") : Result.error("鎵归噺鍒犻櫎澶辫触");
     }
 
     /**
      * 瀵煎嚭excel
+     *
      * @param request
      * @param mdcUtilizationRate
      * @return
      */
     @RequestMapping("/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, MdcUtilizationRate mdcUtilizationRate){
+    public ModelAndView exportXls(HttpServletRequest request, MdcUtilizationRate mdcUtilizationRate) {
         return super.exportXls(request, mdcUtilizationRate, MdcUtilizationRate.class, "鐜囧弬鏁拌缃鍑�");
     }
 
     /**
      * 瀵煎叆excel
+     *
      * @param request
      * @param response
      * @return
@@ -125,4 +134,17 @@
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
         return super.importExcel(request, response, MdcUtilizationRate.class);
     }
+
+    /**
+     * 鏍规嵁绫诲瀷鑾峰彇棰滆壊鏍囩
+     *
+     * @param type
+     * @return
+     */
+    @ApiOperation(value = "鐜囧弬鏁拌缃�-鏍规嵁绫诲瀷鑾峰彇棰滆壊鏍囩", notes = "鐜囧弬鏁拌缃�-鏍规嵁绫诲瀷鑾峰彇棰滆壊鏍囩")
+    @GetMapping("/getByType")
+    public Result<List<MdcUtilizationRateDto>> getByType(@RequestParam(name = "type", required = true) String type) {
+        List<MdcUtilizationRateDto> list = mdcUtilizationRateService.getByType(type);
+        return Result.OK(list);
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcUtilizationRateDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcUtilizationRateDto.java
new file mode 100644
index 0000000..25591fc
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcUtilizationRateDto.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+/**
+ * @author: LiuS
+ * @create: 2023-07-07 09:41
+ */
+@Data
+public class MdcUtilizationRateDto {
+    /**
+     * 棰滆壊
+     */
+    private String color;
+    /**
+     * 鏍囬
+     */
+    private String title;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java
index 6676982..9501577 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java
@@ -53,29 +53,11 @@
     private String equipmentName;
 
     /**
-     * 寮�濮嬫椂闂�
-     */
-    @Excel(name = "寮�濮嬫椂闂�", width = 15)
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty("寮�濮嬫椂闂�")
-    private Date startTime;
-
-    /**
-     * 缁撴潫鏃堕棿
-     */
-    @Excel(name = "缁撴潫鏃堕棿", width = 15)
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty("缁撴潫鏃堕棿")
-    private Date endTime;
-
-    /**
-     * 鏃ユ湡
+     * 鏃堕棿
      */
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "鏃ユ湡")
+    @ApiModelProperty(value = "鏃堕棿")
     private Date torqueDate;
 
     /**
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java
index 73d6da4..7462e8e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java
@@ -19,4 +19,12 @@
      * @return
      */
     List<MdcEfficiencyDto> efficiencyList(@Param("vo") MdcEfficiencyReportQueryVo vo);
+
+    /**
+     * 鏌ヨ寮�鍔ㄧ巼鏁版嵁
+     *
+     * @param vo
+     * @return
+     */
+    List<MdcEfficiencyDto> efficiencyPOList(@Param("vo") MdcEfficiencyReportQueryVo vo);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
index 66aa54f..f930d30 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
@@ -31,7 +31,41 @@
                 #{ id }
             </foreach>
         </if>
-        ORDER BY
-            t1.the_date
+        ORDER BY t1.the_date
+    </select>
+
+    <!--鏌ヨ寮�鍔ㄧ巼鏁版嵁-->
+    <select id="efficiencyPOList" resultType="org.jeecg.modules.mdc.dto.MdcEfficiencyDto">
+        SELECT
+            t2.equipment_id equipmentId,
+            t2.equipment_name equipmentName,
+            t2.equipment_type equipmentType,
+            t1.the_date,
+            t1.process_long processLong,
+            CASE
+                WHEN t1.open_long > 0 THEN
+                t1.process_long / t1.open_long ELSE 0
+            END utilizationRate,
+            CASE
+                WHEN t1.open_long > 0 THEN
+                t1.process_long / t1.open_long ELSE 0
+            END startRate,
+            t1.open_long / 86400 openRate,
+            t1.open_long openLong,
+            t1.wait_long waitLong,
+            t1.close_long closeLong
+        FROM
+            mdc_equipment t2
+            LEFT JOIN mdc_equipment_statistical_info t1 ON t1.equipment_id = t2.equipment_id
+        WHERE
+            t1.the_date &lt;= #{ vo.endTime }
+            AND t1.the_date &gt;= #{ vo.startTime }
+        <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 ">
+            AND t2.equipment_id IN
+            <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                #{ id }
+            </foreach>
+        </if>
+        ORDER BY t1.the_date
     </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcUtilizationRateService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcUtilizationRateService.java
index fee7d2b..db5cbae 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcUtilizationRateService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcUtilizationRateService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.dto.MdcUtilizationRateDto;
 import org.jeecg.modules.mdc.entity.MdcUtilizationRate;
 
 import javax.servlet.http.HttpServletRequest;
@@ -18,6 +19,7 @@
 
     /**
      * 鍒嗛〉鏌ヨ
+     *
      * @param page
      * @param req
      * @return
@@ -26,6 +28,7 @@
 
     /**
      * 鏂板鍙傛暟
+     *
      * @param mdcUtilizationRate
      * @return
      */
@@ -33,6 +36,7 @@
 
     /**
      * 缂栬緫鍙傛暟
+     *
      * @param mdcUtilizationRate
      * @return
      */
@@ -40,6 +44,7 @@
 
     /**
      * 鏍规嵁id鍒犻櫎
+     *
      * @param id
      * @return
      */
@@ -47,6 +52,7 @@
 
     /**
      * 鎵归噺鍒犻櫎
+     *
      * @param ids
      * @return
      */
@@ -54,8 +60,17 @@
 
     /**
      * 鏍规嵁绫诲瀷鏌ヨ
+     *
      * @param type
      * @return
      */
     List<MdcUtilizationRate> listByType(String type);
+
+    /**
+     * 鏍规嵁绫诲瀷鑾峰彇棰滆壊鏍囩
+     *
+     * @param type
+     * @return
+     */
+    List<MdcUtilizationRateDto> getByType(String type);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java
index a3a1a15..496075f 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.mdc.service;
 
 import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo;
+import org.jeecg.modules.mdc.vo.MdcEfficiencyReportShiftQueryVo;
 import org.jeecg.modules.mdc.vo.MdcEfficiencyVo;
 
 /**
@@ -19,11 +20,20 @@
     MdcEfficiencyVo efficiencyList(String userId, MdcEfficiencyReportQueryVo vo);
 
     /**
+     * 寮�鏈虹巼鎶ヨ〃
+     *
+     * @param userId
+     * @param vo
+     * @return
+     */
+    MdcEfficiencyVo efficiencyPOList(String userId, MdcEfficiencyReportQueryVo vo);
+
+    /**
      * 鐝鍒╃敤鐜囨姤琛�
      *
      * @param userId
      * @param vo
      * @return
      */
-    MdcEfficiencyVo shiftEfficiencyList(String userId, MdcEfficiencyReportQueryVo vo);
+    MdcEfficiencyVo efficiencyShiftList(String userId, MdcEfficiencyReportShiftQueryVo vo);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
index 583d480..7cddfa0 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
@@ -12,6 +12,7 @@
 import org.jeecg.modules.mdc.service.MdcEfficiencyReportService;
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo;
+import org.jeecg.modules.mdc.vo.MdcEfficiencyReportShiftQueryVo;
 import org.jeecg.modules.mdc.vo.MdcEfficiencyVo;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.entity.SysDepart;
@@ -225,8 +226,195 @@
         return result;
     }
 
+    /**
+     * 寮�鏈虹巼鎶ヨ〃
+     *
+     * @param userId
+     * @param vo
+     * @return
+     */
     @Override
-    public MdcEfficiencyVo shiftEfficiencyList(String userId, MdcEfficiencyReportQueryVo vo) {
+    public MdcEfficiencyVo efficiencyPOList(String userId, MdcEfficiencyReportQueryVo vo) {
+        MdcEfficiencyVo result = new MdcEfficiencyVo();
+        List<MdcEfficiencyListDto> listDtos = new ArrayList<>();
+        List<String> equipmentIds = new ArrayList<>();
+        if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
+            if ("2".equals(vo.getTypeTree())) {
+                // 閮ㄩ棬灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId());
+            } else {
+                // 浜х嚎灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId());
+            }
+        } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) {
+            // 鍗曞彴璁惧淇℃伅
+            vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId()));
+        } else {
+            // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
+            if ("2".equals(vo.getTypeTree())) {
+                // 閮ㄩ棬灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
+            } else {
+                // 浜х嚎灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
+            }
+        }
+        if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+            vo.setEquipmentIdList(equipmentIds);
+        }
+
+        List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime()));
+        result.setDates(dates);
+
+        if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+            result.setMdcEfficiencyList(listDtos);
+        } else {
+            // 鏌ヨ鍒╃敤鐜囨暟鎹�
+            List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyPOList(vo);
+            // 鍒╃敤鐜囩瓑绾�
+            List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("kdl");
+
+            // 灏佽缁撴灉
+            if ("2".equals(vo.getTypeTree())) {
+                // 閮ㄩ棬灞傜骇
+                List<MdcEquDepDto> equipmentList = mdcEquipmentService.findEquDepList(vo.getEquipmentIdList());
+                // 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�
+                List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().ne(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_1.toString()));
+
+                for (MdcEquDepDto mdcEquDepDto : equipmentList) {
+                    MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+                    mdcEfficiencyListDto.setEquipmentId(mdcEquDepDto.getEquipmentId());
+                    mdcEfficiencyListDto.setEquipmentName(mdcEquDepDto.getEquipmentName());
+                    mdcEfficiencyListDto.setEquipmentType(mdcEquDepDto.getEquipmentType());
+                    switch (mdcEquDepDto.getOrgType()) {
+                        case "1":
+                            mdcEfficiencyListDto.setLevel1(mdcEquDepDto.getDepartName());
+                            break;
+                        case "2":
+                            mdcEfficiencyListDto.setLevel2(mdcEquDepDto.getDepartName());
+                            break;
+                        case "3":
+                            mdcEfficiencyListDto.setLevel3(mdcEquDepDto.getDepartName());
+                            break;
+                        default:
+                    }
+
+                    SysDepart sysDepart = departList.stream().filter(depart -> depart.getId().equals(mdcEquDepDto.getParentId())).findAny().orElse(null);
+                    if (sysDepart != null) {
+                        switch (sysDepart.getOrgType()) {
+                            case "1":
+                                mdcEfficiencyListDto.setLevel1(sysDepart.getDepartName());
+                                break;
+                            case "2":
+                                mdcEfficiencyListDto.setLevel2(sysDepart.getDepartName());
+                                break;
+                            case "3":
+                                mdcEfficiencyListDto.setLevel3(sysDepart.getDepartName());
+                                break;
+                            default:
+                        }
+                        if (StringUtils.isNotEmpty(sysDepart.getParentId())) {
+                            departList.stream().filter(depart -> depart.getId().equals(sysDepart.getParentId())).findAny().ifPresent(depart1 -> {
+                                switch (depart1.getOrgType()) {
+                                    case "1":
+                                        mdcEfficiencyListDto.setLevel1(depart1.getDepartName());
+                                        break;
+                                    case "2":
+                                        mdcEfficiencyListDto.setLevel2(depart1.getDepartName());
+                                        break;
+                                    case "3":
+                                        mdcEfficiencyListDto.setLevel3(depart1.getDepartName());
+                                        break;
+                                    default:
+                                }
+                            });
+                        }
+                    }
+                    List<MdcEfficiencyResultDto> list = new ArrayList<>();
+                    for (String date : dates) {
+                        list.add(this.efficiencyRate(efficiencyList, date, mdcEquDepDto.getEquipmentId(), mdcUtilizationRateList));
+                    }
+                    mdcEfficiencyListDto.setDataList(list);
+                    listDtos.add(mdcEfficiencyListDto);
+                }
+            } else {
+                // 浜х嚎灞傜骇
+                List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList());
+                // 鏌ヨ鎵�鏈変骇绾夸俊鎭�
+                List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString()));
+
+                for (MdcEquProDto mdcEquProDto : equipmentList) {
+                    MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+                    mdcEfficiencyListDto.setEquipmentId(mdcEquProDto.getEquipmentId());
+                    mdcEfficiencyListDto.setEquipmentName(mdcEquProDto.getEquipmentName());
+                    mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType());
+                    switch (mdcEquProDto.getOrgType()) {
+                        case "1":
+                            mdcEfficiencyListDto.setLevel1(mdcEquProDto.getProductionName());
+                            break;
+                        case "2":
+                            mdcEfficiencyListDto.setLevel2(mdcEquProDto.getProductionName());
+                            break;
+                        case "3":
+                            mdcEfficiencyListDto.setLevel3(mdcEquProDto.getProductionName());
+                            break;
+                        default:
+                    }
+                    MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
+                    if (mdcProduction != null) {
+                        switch (mdcProduction.getOrgType()) {
+                            case "1":
+                                mdcEfficiencyListDto.setLevel1(mdcProduction.getProductionName());
+                                break;
+                            case "2":
+                                mdcEfficiencyListDto.setLevel2(mdcProduction.getProductionName());
+                                break;
+                            case "3":
+                                mdcEfficiencyListDto.setLevel3(mdcProduction.getProductionName());
+                                break;
+                            default:
+                        }
+                        if (StringUtils.isNotEmpty(mdcProduction.getParentId())) {
+                            productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> {
+                                switch (production1.getOrgType()) {
+                                    case "1":
+                                        mdcEfficiencyListDto.setLevel1(production1.getProductionName());
+                                        break;
+                                    case "2":
+                                        mdcEfficiencyListDto.setLevel2(production1.getProductionName());
+                                        break;
+                                    case "3":
+                                        mdcEfficiencyListDto.setLevel3(production1.getProductionName());
+                                        break;
+                                    default:
+                                }
+                            });
+                        }
+                    }
+                    List<MdcEfficiencyResultDto> list = new ArrayList<>();
+                    for (String date : dates) {
+                        list.add(this.efficiencyRate(efficiencyList, date, mdcEquProDto.getEquipmentId(), mdcUtilizationRateList));
+                    }
+                    mdcEfficiencyListDto.setDataList(list);
+                    listDtos.add(mdcEfficiencyListDto);
+                }
+            }
+
+            result.setMdcEfficiencyList(listDtos);
+        }
+
+        return result;
+    }
+
+    /**
+     * 鐝鍒╃敤鐜囨姤琛�
+     *
+     * @param userId
+     * @param vo
+     * @return
+     */
+    @Override
+    public MdcEfficiencyVo efficiencyShiftList(String userId, MdcEfficiencyReportShiftQueryVo vo) {
         return null;
     }
 
@@ -238,7 +426,6 @@
                     mdcEfficiencyResultDto.setTheDate(efficiencyDto.getTheDate());
                     mdcEfficiencyResultDto.setProcessLong(efficiencyDto.getProcessLong());
                     mdcEfficiencyResultDto.setUtilizationRate(efficiencyDto.getUtilizationRate());
-                    mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate());
                     mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate());
                     mdcEfficiencyResultDto.setOpenRate(efficiencyDto.getOpenRate());
                     mdcEfficiencyResultDto.setOpenLong(efficiencyDto.getOpenLong());
@@ -256,7 +443,6 @@
             mdcEfficiencyResultDto.setTheDate(date);
             mdcEfficiencyResultDto.setProcessLong(new BigDecimal("0"));
             mdcEfficiencyResultDto.setUtilizationRate(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setStartRate(new BigDecimal("0"));
             mdcEfficiencyResultDto.setStartRate(new BigDecimal("0"));
             mdcEfficiencyResultDto.setOpenRate(new BigDecimal("0"));
             mdcEfficiencyResultDto.setOpenLong(new BigDecimal("0"));
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java
index dc553a2..56756e0 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java
@@ -38,14 +38,8 @@
     public Boolean addTorque(MdcTorqueConfigVo torqueVo) {
         boolean result = false;
         String[] equipmentIds = torqueVo.getEquipmentIds().split(",");
-        List<MdcTorqueConfig> mdcTorqueConfigList = new ArrayList<>();
         for (String equipmentId : equipmentIds) {
             MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(equipmentId);
-            //鏍规嵁Id鏌ヨ姝よ澶囦俊鎭�
-            LambdaQueryWrapper<MdcTorqueConfig> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(MdcTorqueConfig::getEquipmentId, equipmentId);
-            queryWrapper.orderByAsc(MdcTorqueConfig::getStartTime);
-            List<MdcTorqueConfig> mdcTorqueConfigs = this.baseMapper.selectList(queryWrapper);
             MdcTorqueConfig mdcTorqueConfig = new MdcTorqueConfig();
             mdcTorqueConfig.setEquipmentId(equipmentId);
             mdcTorqueConfig.setEquipmentName(mdcEquipment.getEquipmentName());
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcUtilizationRateServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcUtilizationRateServiceImpl.java
index b9d4024..8c00020 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcUtilizationRateServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcUtilizationRateServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.jeecg.modules.mdc.dto.MdcUtilizationRateDto;
 import org.jeecg.modules.mdc.entity.MdcUtilizationRate;
 import org.jeecg.modules.mdc.mapper.MdcUtilizationRateMapper;
 import org.jeecg.modules.mdc.service.IMdcUtilizationRateService;
@@ -13,6 +14,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.sql.Array;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -28,7 +30,7 @@
         //鍒涘缓鏌ヨ鍣�
         QueryWrapper<MdcUtilizationRate> queryWrapper = new QueryWrapper();
         //妫�鏌TTP璇锋眰浣撲腑鏄惁瀛樺湪鍚嶄负椹卞姩绫诲瀷鐨勫弬鏁�,瀛樺湪鍒檛rue,鑾峰彇绗竴涓暟鎹娇鐢ㄦā绯婃煡璇㈡坊鍔犲埌鍒版煡璇㈠櫒涓�
-        if (req.getParameterMap().containsKey("rateParameterCategory")){
+        if (req.getParameterMap().containsKey("rateParameterCategory")) {
             String rateParameterCategory = req.getParameterMap().get("rateParameterCategory")[0];
             queryWrapper.like(StringUtils.isNotBlank(rateParameterCategory), "rate_parameter_category", rateParameterCategory);
         }
@@ -61,6 +63,7 @@
 
     /**
      * 鏍规嵁绫诲瀷鏌ヨ鍒╃敤鐜囧眰绾�
+     *
      * @param type
      * @return
      */
@@ -68,4 +71,23 @@
     public List<MdcUtilizationRate> listByType(String type) {
         return this.baseMapper.selectList(new LambdaQueryWrapper<MdcUtilizationRate>().eq(MdcUtilizationRate::getRateParameterType, type));
     }
+
+    /**
+     * 鏍规嵁绫诲瀷鑾峰彇棰滆壊鏍囩
+     *
+     * @param type
+     * @return
+     */
+    @Override
+    public List<MdcUtilizationRateDto> getByType(String type) {
+        List<MdcUtilizationRateDto> result = new ArrayList<>();
+        List<MdcUtilizationRate> list = this.list(new LambdaQueryWrapper<MdcUtilizationRate>().eq(MdcUtilizationRate::getRateParameterType, type).orderByAsc(MdcUtilizationRate::getRateParameterLevel));
+        for (MdcUtilizationRate mdcUtilizationRate : list) {
+            MdcUtilizationRateDto mdcUtilizationRateDto = new MdcUtilizationRateDto();
+            mdcUtilizationRateDto.setColor(mdcUtilizationRate.getRateParameterColor());
+            mdcUtilizationRateDto.setTitle(mdcUtilizationRate.getMinimumRange() + "% <= " + mdcUtilizationRate.getRateParameterCategory() + " < " + mdcUtilizationRate.getMaximumRange() + "%");
+            result.add(mdcUtilizationRateDto);
+        }
+        return result;
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java
new file mode 100644
index 0000000..464c650
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java
@@ -0,0 +1,48 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author: LiuS
+ * @create: 2023-07-05 14:31
+ */
+@Data
+public class MdcEfficiencyReportShiftQueryVo {
+
+    /**
+     * 寮�濮嬫椂闂�  ->  20220101
+     */
+    private String startTime;
+    /**
+     * 缁撴潫鏃堕棿  ->  20220101
+     */
+    private String endTime;
+    /**
+     * 鏍戠被鍨�    ->  1:杞﹂棿灞傜骇   2:閮ㄩ棬灞傜骇
+     */
+    private String typeTree;
+    /**
+     * 灞傜骇ID
+     */
+    private String parentId;
+    /**
+     * 璁惧Id
+     */
+    private String equipmentId;
+    /**
+     * 鐝埗Id
+     */
+    private String shiftId;
+    /**
+     * 鐝Id
+     */
+    private String shiftSubId;
+
+    /**
+     * 璁惧ids
+     */
+    private List<String> equipmentIdList;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcTorqueConfigVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcTorqueConfigVo.java
index a85d387..5337c45 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcTorqueConfigVo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcTorqueConfigVo.java
@@ -9,13 +9,12 @@
 
 @Data
 public class MdcTorqueConfigVo {
-    /*璁惧鍚嶇О*/
-    private String equipmentName;
+
     /*璁惧缁�*/
     private String equipmentIds;
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date torqueDate;
-    private float torqueValue;
+    private Float torqueValue;
     private String notes;
 }

--
Gitblit v1.9.3