From 3e1a770800cc7d5462672588d77b85f3afb8fbda Mon Sep 17 00:00:00 2001
From: lius <Lius2225@163.com>
Date: 星期五, 30 六月 2023 14:47:07 +0800
Subject: [PATCH] 利用率报表接口

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java |    3 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyDto.java                               |   60 ++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java                      |   40 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java                           |   32 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java                                     |   34 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyVo.java                                 |   26 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java                 |   20 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentCalendarVo.java                             |    8 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcUtilizationRateServiceImpl.java         |   12 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyResultDto.java                         |   49 +++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java        |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java        |  128 ++++++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java           |   42 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java                   |   22 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcUtilizationRateService.java                 |    8 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml                |   37 ++++
 16 files changed, 521 insertions(+), 4 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
new file mode 100644
index 0000000..b6df6c8
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java
@@ -0,0 +1,42 @@
+package org.jeecg.modules.mdc.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+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.MdcEfficiencyVo;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-15 17:17
+ */
+@Slf4j
+@Api(tags = "璁惧鏁堢巼鎶ヨ〃")
+@RestController
+@RequestMapping("/mdc/efficiencyReport")
+public class MdcEfficiencyReportController {
+
+    @Resource
+    private MdcEfficiencyReportService mdcEfficiencyReportService;
+
+    @AutoLog(value = "璁惧鏁堢巼鎶ヨ〃-鍒╃敤鐜囧垪琛ㄦ煡璇�")
+    @ApiOperation(value = "璁惧鏁堢巼鎶ヨ〃-鍒╃敤鐜囧垪琛ㄦ煡璇�", notes = "璁惧鏁堢巼鎶ヨ〃-鍒╃敤鐜囧垪琛ㄦ煡璇�")
+    @GetMapping("/efficiencyList")
+    public Result efficiencyList(MdcEfficiencyReportQueryVo vo) {
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = user.getId();
+        MdcEfficiencyVo result = mdcEfficiencyReportService.efficiencyList(userId, vo);
+        return Result.OK(result);
+    }
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyDto.java
new file mode 100644
index 0000000..d868159
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyDto.java
@@ -0,0 +1,60 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-16 15:12
+ */
+@Data
+public class MdcEfficiencyDto {
+
+    /**
+     * 璁惧缂栫爜
+     */
+    private String equipmentId;
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String equipmentName;
+    /**
+     * 璁惧绫诲瀷
+     */
+    private String equipmentType;
+    /**
+     * 鏈夋晥鏃ユ湡
+     */
+    private String theDate;
+    /**
+     * 鍔犲伐鏃堕暱
+     */
+    private BigDecimal processLong;
+    /**
+     * 鍒╃敤鐜�
+     */
+    private BigDecimal utilizationRate;
+    /**
+     * 寮�鍔ㄧ巼
+     */
+    private BigDecimal startRate;
+    /**
+     * 寮�鏈虹巼
+     */
+    private BigDecimal openRate;
+    /**
+     * 寮�鏈烘椂闀�
+     */
+    private BigDecimal openLong;
+    /**
+     * 寰呮満鏃堕暱
+     */
+    private BigDecimal waitLong;
+    /**
+     * 鍏虫満鏃堕暱
+     */
+    private BigDecimal closeLong;
+
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java
new file mode 100644
index 0000000..ceea58a
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java
@@ -0,0 +1,32 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-19 10:37
+ */
+
+@Data
+public class MdcEfficiencyListDto {
+
+    /**
+     * 璁惧缂栫爜
+     */
+    private String equipmentId;
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String equipmentName;
+    /**
+     * 璁惧绫诲瀷
+     */
+    private String equipmentType;
+
+    /**
+     * 鍒╃敤鐜囨暟鎹�
+     */
+    private List<MdcEfficiencyResultDto> list;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyResultDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyResultDto.java
new file mode 100644
index 0000000..d0c97ae
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyResultDto.java
@@ -0,0 +1,49 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-27 16:34
+ */
+@Data
+public class MdcEfficiencyResultDto {
+    /**
+     * 鏈夋晥鏃ユ湡
+     */
+    private String theDate;
+    /**
+     * 鍔犲伐鏃堕暱
+     */
+    private BigDecimal processLong;
+    /**
+     * 鍒╃敤鐜�
+     */
+    private BigDecimal utilizationRate;
+    /**
+     * 寮�鍔ㄧ巼
+     */
+    private BigDecimal startRate;
+    /**
+     * 寮�鏈虹巼
+     */
+    private BigDecimal openRate;
+    /**
+     * 寮�鏈烘椂闀�
+     */
+    private BigDecimal openLong;
+    /**
+     * 寰呮満鏃堕暱
+     */
+    private BigDecimal waitLong;
+    /**
+     * 鍏虫満鏃堕暱
+     */
+    private BigDecimal closeLong;
+    /**
+     * 棰滆壊
+     */
+    private String color;
+}
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
new file mode 100644
index 0000000..73d6da4
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEfficiencyReportMapper.java
@@ -0,0 +1,22 @@
+package org.jeecg.modules.mdc.mapper;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.mdc.dto.MdcEfficiencyDto;
+import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo;
+
+import java.util.List;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-19 10:40
+ */
+public interface MdcEfficiencyReportMapper {
+
+    /**
+     * 鏌ヨ鍒╃敤鐜囨暟鎹�
+     *
+     * @param vo
+     * @return
+     */
+    List<MdcEfficiencyDto> efficiencyList(@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
new file mode 100644
index 0000000..66aa54f
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.mdc.mapper.MdcEfficiencyReportMapper">
+
+    <!--鏌ヨ鍒╃敤鐜囨暟鎹�-->
+    <select id="efficiencyList" 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,
+            t1.process_long / 86400 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/IMdcEquipmentStatisticalInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java
index dd32aab..2ccf4dc 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java
@@ -6,13 +6,15 @@
 /**
  * @Description: 璁惧鍗曟棩杩愯鏁版嵁琛�
  * @Author: jeecg-boot
- * @Date:   2023-04-14
+ * @Date: 2023-04-14
  * @Version: V1.0
  */
 public interface IMdcEquipmentStatisticalInfoService extends IService<MdcEquipmentStatisticalInfo> {
 
     /**
      * 璁$畻璁惧鍗曟棩杩愯鏁版嵁
+     *
+     * @param dateTime
      */
     void runningAllEquipmentStatisticalProcess(String dateTime);
 }
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 2253a43..fee7d2b 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
@@ -6,6 +6,7 @@
 import org.jeecg.modules.mdc.entity.MdcUtilizationRate;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * @Description: 鐜囧弬鏁拌缃�
@@ -50,4 +51,11 @@
      * @return
      */
     Boolean deleteBatchUtilization(String ids);
+
+    /**
+     * 鏍规嵁绫诲瀷鏌ヨ
+     * @param type
+     * @return
+     */
+    List<MdcUtilizationRate> listByType(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
new file mode 100644
index 0000000..0471926
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEfficiencyReportService.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.mdc.service;
+
+import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo;
+import org.jeecg.modules.mdc.vo.MdcEfficiencyVo;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-15 17:25
+ */
+public interface MdcEfficiencyReportService {
+
+    /**
+     * 鍒╃敤鐜囨姤琛�
+     *
+     * @param userId
+     * @param vo
+     * @return
+     */
+    MdcEfficiencyVo efficiencyList(String userId, MdcEfficiencyReportQueryVo 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
new file mode 100644
index 0000000..de8846c
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
@@ -0,0 +1,128 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import net.sf.saxon.expr.Component;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.modules.mdc.dto.MdcEfficiencyDto;
+import org.jeecg.modules.mdc.dto.MdcEfficiencyListDto;
+import org.jeecg.modules.mdc.dto.MdcEfficiencyResultDto;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
+import org.jeecg.modules.mdc.entity.MdcUtilizationRate;
+import org.jeecg.modules.mdc.mapper.MdcEfficiencyReportMapper;
+import org.jeecg.modules.mdc.service.IMdcEquipmentService;
+import org.jeecg.modules.mdc.service.IMdcUtilizationRateService;
+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.MdcEfficiencyVo;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-16 09:52
+ */
+@Service
+public class MdcEfficiencyReportServiceImpl implements MdcEfficiencyReportService {
+
+    @Resource
+    private IMdcEquipmentService mdcEquipmentService;
+
+    @Resource
+    private MdcEfficiencyReportMapper mdcEfficiencyReportMapper;
+
+    @Resource
+    private IMdcUtilizationRateService mdcUtilizationRateService;
+
+    /**
+     * 鍒╃敤鐜囨姤琛�
+     *
+     * @param userId
+     * @param vo
+     * @return
+     */
+    @Override
+    public MdcEfficiencyVo efficiencyList(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);
+            }
+        }
+        vo.setEquipmentIdList(equipmentIds);
+
+        // 鏌ヨ鍒╃敤鐜囨暟鎹�
+        List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyList(vo);
+        // 鍒╃敤鐜囩瓑绾�
+        List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("lyl");
+
+        //灏佽缁撴灉
+        List<MdcEfficiencyDto> equipmentList = efficiencyList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MdcEfficiencyDto::getEquipmentId))), ArrayList::new));
+
+        List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime()));
+
+        for (MdcEfficiencyDto mdcEfficiencyDto : equipmentList) {
+            MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+            mdcEfficiencyListDto.setEquipmentId(mdcEfficiencyDto.getEquipmentId());
+            mdcEfficiencyListDto.setEquipmentName(mdcEfficiencyDto.getEquipmentName());
+            mdcEfficiencyListDto.setEquipmentType(mdcEfficiencyDto.getEquipmentType());
+            List<MdcEfficiencyResultDto> list = new ArrayList<>();
+            for (String date : dates) {
+                list.add(this.efficiencyRate(efficiencyList, date, mdcEfficiencyDto, mdcUtilizationRateList));
+            }
+            mdcEfficiencyListDto.setList(list);
+            listDtos.add(mdcEfficiencyListDto);
+        }
+
+        result.setLists(listDtos);
+        result.setDates(dates);
+
+        return result;
+    }
+
+    private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEfficiencyDto mdcEfficiencyDto, List<MdcUtilizationRate> mdcUtilizationRateList) {
+        MdcEfficiencyResultDto mdcEfficiencyResultDto = new MdcEfficiencyResultDto();
+        for (MdcEfficiencyDto efficiencyDto : efficiencyList) {
+            if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(mdcEfficiencyDto.getEquipmentId())) {
+                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());
+                mdcEfficiencyResultDto.setWaitLong(efficiencyDto.getWaitLong());
+                mdcEfficiencyResultDto.setCloseLong(efficiencyDto.getCloseLong());
+                for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
+                    if (efficiencyDto.getUtilizationRate().longValue() * 100 > mdcUtilizationRate.getMinimumRange() && efficiencyDto.getUtilizationRate().longValue() * 100 <= mdcUtilizationRate.getMaximumRange()) {
+                        mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
+                    }
+                }
+
+            }
+        }
+        return mdcEfficiencyResultDto;
+    }
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
index d57b283..865fa7e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -155,8 +155,9 @@
                     list = notExecuteData;
                 }
             } else {
-                if (notExecuteData != null && !notExecuteData.isEmpty())
+                if (notExecuteData != null && !notExecuteData.isEmpty()) {
                     list.addAll(notExecuteData);
+                }
             }
         } else {
             LambdaQueryWrapper<MdcEquipmentRunningSection> queryWrapper = new LambdaQueryWrapper<>();
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 247a499..b9d4024 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
@@ -1,5 +1,6 @@
 package org.jeecg.modules.mdc.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,6 +14,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.sql.Array;
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * @Description: 鐜囧弬鏁拌缃�
@@ -56,4 +58,14 @@
     public Boolean deleteBatchUtilization(String ids) {
         return this.removeByIds(Arrays.asList(ids.split(",")));
     }
+
+    /**
+     * 鏍规嵁绫诲瀷鏌ヨ鍒╃敤鐜囧眰绾�
+     * @param type
+     * @return
+     */
+    @Override
+    public List<MdcUtilizationRate> listByType(String type) {
+        return this.baseMapper.selectList(new LambdaQueryWrapper<MdcUtilizationRate>().eq(MdcUtilizationRate::getRateParameterType, type));
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java
index 25776c5..8f37912 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java
@@ -635,6 +635,25 @@
         return list;
     }
 
+    /**
+     * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡yyyyMMdd
+     * @param start
+     * @param end
+     * @return
+     */
+    public static List<String> getDatesStringList2(Date start, Date end) {
+        List<String> list = new ArrayList<>();
+        int i = getDays(start, end);
+        for(int j = 0; j <= i; j++) {
+            if(j == 0) {
+                list.add(format(start, STRDATE));
+            } else {
+                list.add(format(plusTime(start, j), STRDATE));
+            }
+        }
+        return list;
+    }
+
     public static List<String> getMonthBetween(Date start, Date end){
         List<String> list = new ArrayList<>();
         Calendar min = Calendar.getInstance();
@@ -666,6 +685,21 @@
         return startTime == null ? removeTime(new Date()) : startTime;
     }
 
+    /**
+     * 鑾峰彇dateStr鐨勬棩鏈熸牸寮弝yyyMMdd
+     * @param dateStr
+     * @return
+     */
+    public static Date getShortDate2(String dateStr) {
+        SimpleDateFormat sdf = new SimpleDateFormat(STRDATE);
+        Date startTime = null;
+        try {
+            startTime = sdf.parse(dateStr);
+        } catch (ParseException e) {
+        }
+        return startTime == null ? removeTime(new Date()) : startTime;
+    }
+
     public static Date getFormatDate(String dateStr,String format) {
         SimpleDateFormat sdf = new SimpleDateFormat(format);
         Date startTime = null;
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentCalendarVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentCalendarVo.java
index 271c269..cd9e110 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentCalendarVo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentCalendarVo.java
@@ -13,10 +13,14 @@
 public class EquipmentCalendarVo {
 
     private String equipmentId;
-    /*寮�濮嬫椂闂�*/
+    /**
+     * 寮�濮嬫椂闂�
+     */
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
     private LocalDate takeEffectDate;
-    /*缁撴潫鏃堕棿*/
+    /**
+     * 缁撴潫鏃堕棿
+     */
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
     private LocalDate invalidDate;
 
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java
new file mode 100644
index 0000000..6af5883
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java
@@ -0,0 +1,40 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-15 17:58
+ */
+@Data
+public class MdcEfficiencyReportQueryVo {
+
+    /**
+     * 寮�濮嬫椂闂�  ->  20220101
+     */
+    private String startTime;
+    /**
+     * 缁撴潫鏃堕棿  ->  20220101
+     */
+    private String endTime;
+    /**
+     * 鏍戠被鍨�    ->  1:杞﹂棿灞傜骇   2:閮ㄩ棬灞傜骇
+     */
+    private String typeTree;
+    /**
+     * 灞傜骇ID
+     */
+    private String parentId;
+    /**
+     * 璁惧Id
+     */
+    private String equipmentId;
+
+    /**
+     * 璁惧ids
+     */
+    private List<String> equipmentIdList;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyVo.java
new file mode 100644
index 0000000..214c7ca
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyVo.java
@@ -0,0 +1,26 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+import org.jeecg.modules.mdc.dto.MdcEfficiencyListDto;
+
+import java.util.List;
+
+/**
+ * @author: LiuS
+ * @create: 2023-06-16 09:44
+ */
+@Data
+public class MdcEfficiencyVo {
+
+    /**
+     * 鍒╃敤鐜囨暟鎹�
+     */
+    private List<MdcEfficiencyListDto> lists;
+
+//    /**
+//     * 鍒╃敤鐜囨暟鎹�
+//     */
+//    private List<MdcEfficiencyDto> list;
+
+    private List<String> dates;
+}

--
Gitblit v1.9.3