hyingbo
3 天以前 c33eedaf999b84dd8377aba96d8aeeeba264b4f6
mdc首页功能迁移
已添加1个文件
已修改8个文件
377 ■■■■ 文件已修改
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DncHomeController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDayUtilizationVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}
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集合-->
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
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不为空,查询所有下级产线id
            partProduction = this.findAllProductions(key);
            partProduction.add(key);
        }
        List<String> equipmentIds = this.baseMapper.queryIdsByProductions(partProduction);
        return equipmentIds;
    }
    /**
     * æ ¹æ®è®¾å¤‡id查询设备名称
     */
    @Override
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) {
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>
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();
}
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);
        //如果不传“productionId”参数,则查所有车间,否则查询该车间下的工段等
        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);
        //如果不传“productionId”参数,则查所有车间,否则查询该车间下的工段等
        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;
    }
}
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;