lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
@@ -11,6 +11,7 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.service.IMdcHomeService; import org.jeecg.modules.mdc.vo.MdcCommonVo; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.service.IMdcProductionService; @@ -20,6 +21,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.Map; /** * @author Lius @@ -37,6 +39,9 @@ @Resource private IMdcProductionService mdcProductionService; @Resource private IMdcHomeService mdcHomeService; @ApiOperation(value = "MDCé¦é¡µæ¥å£-设å¤è¿è¡ç¶æç»è®¡", notes = "MDCé¦é¡µæ¥å£-设å¤è¿è¡ç¶æç»è®¡") @GetMapping("/equipmentStatusStatistics") @@ -60,7 +65,85 @@ key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId()); } } List<MdcCommonVo> resultMap = mdcEquipmentService.getEquipmentStatusStatistics(userId, key); List<MdcCommonVo> resultMap = mdcHomeService.getEquipmentStatusStatistics(userId, key); return Result.OK(resultMap); } @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); 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); 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); return Result.OK(result); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java
@@ -5,6 +5,7 @@ import org.jeecg.modules.mdc.entity.EquipmentLog; import java.util.Date; import java.util.List; /** * @author: LiuS @@ -16,4 +17,6 @@ EquipmentLog getRow(@Param("equipmentid") String equipmentid, @Param("startTime") Date startTime); EquipmentLog selectEquipmentOporation(@Param("equipmentId") String equipmentId); List<EquipmentLog> getEquipmentStatusList(@Param("equipmentIdList") List<String> equipmentIdList); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
@@ -9,7 +9,6 @@ import org.jeecg.modules.mdc.dto.MdcEquDepDto; import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; import org.jeecg.modules.mdc.entity.EquipmentLog; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; import org.jeecg.modules.mdc.vo.MdcEquipmentDepVo; @@ -118,5 +117,4 @@ @InterceptorIgnore(tenantLine = "1") MdcEquipmentDto findWorkLineLast(@Param("tableName") String tableName); List<EquipmentLog> getEquipmentStatusList(@Param("equipmentIdList") List<String> equipmentIdList); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcHomeMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package org.jeecg.modules.mdc.mapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.system.entity.MdcProduction; import org.springframework.stereotype.Repository; import java.math.BigDecimal; import java.util.List; import java.util.Map; /** * @author Lius * @date 2024/3/14 10:27 */ @Mapper @Repository public interface MdcHomeMapper { /** * æ ¹æ®ç¨æ·idåä¸çº§äº§çº¿idè·åäº§çº¿ä¿¡æ¯ * * @param userId * @param productionId * @return */ List<MdcProduction> getProductionByPid(@Param("userId") String userId, @Param("productionId") String productionId); /** * æ ¹æ®è®¾å¤éå忥æè·åå å·¥æ¶é´ * * @param equipmentIdList * @param date * @return */ BigDecimal getProcessCount(@Param("equipmentIdList") List<String> equipmentIdList, @Param("date") String date); /** * æ ¹æ®è®¾å¤éå忥æè·åoee * * @param equipmentIdList * @param date * @return */ BigDecimal getOeeByDate(@Param("equipmentIdList") List<String> equipmentIdList, @Param("date") String date); /** * æ ¹æ®è®¾å¤idéååæä»½è·åå©ç¨çæ°æ® * * @param equipmentIdList * @param date * @return */ Map<String, Object> getUtilizationByMonth(@Param("equipmentIdList") List<String> equipmentIdList, @Param("date") String date); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml
@@ -9,4 +9,20 @@ <select id="selectEquipmentOporation" resultType="org.jeecg.modules.mdc.entity.EquipmentLog"> SELECT TOP 1 * FROM EquipmentLog WHERE EquipmentID = #{ equipmentId } ORDER BY CollectTime DESC </select> <!--æ¥è¯¢è®¾å¤ææ°ä¸æ¡æ°æ®--> <select id="getEquipmentStatusList" resultType="org.jeecg.modules.mdc.entity.EquipmentLog"> SELECT t1.* FROM EquipmentLog t1 INNER JOIN ( SELECT MAX ( CollectTime ) AS CollectTime, EquipmentID FROM EquipmentLog GROUP BY EquipmentID ) t2 ON t1.CollectTime= t2.CollectTime AND t1.EquipmentID= t2.EquipmentID <if test="equipmentIdList != null and equipmentIdList.size() > 0"> AND t1.EquipmentID IN <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
@@ -286,20 +286,4 @@ select top 1 spindlespeed, actualspindlespeed from [${tableName}] order by CollectTime desc </select> <!--æ¥è¯¢è®¾å¤ææ°ä¸æ¡æ°æ®--> <select id="getEquipmentStatusList" resultType="org.jeecg.modules.mdc.entity.EquipmentLog"> SELECT t1.* FROM EquipmentLog t1 INNER JOIN ( SELECT MAX ( CollectTime ) AS CollectTime, EquipmentID FROM EquipmentLog GROUP BY EquipmentID ) t2 ON t1.CollectTime= t2.CollectTime AND t1.EquipmentID= t2.EquipmentID <if test="equipmentIdList != null and equipmentIdList.size() > 0"> AND t1.EquipmentID IN <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ <?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.MdcHomeMapper"> <select id="getProductionByPid" resultType="org.jeecg.modules.system.entity.MdcProduction"> SELECT 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 } </select> <select id="getProcessCount" resultType="java.math.BigDecimal"> SELECT SUM(process_long) FROM mdc_equipment_statistical_info <where> <if test="equipmentIdList != null and equipmentIdList.size() > 0 "> AND equipment_id IN <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> AND the_date = #{ date } </where> </select> <select id="getOeeByDate" resultType="java.math.BigDecimal"> SELECT SUM(overall_equipment_efficiency) FROM mdc_overall_equipment_efficiency <where> <if test="equipmentIdList != null and equipmentIdList.size() > 0 "> AND equipment_id IN <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> AND valid_date = #{ date } </where> </select> <select id="getUtilizationByMonth" resultType="java.util.Map"> SELECT SUM(process_long) processLong, COUNT(*) processDay FROM mdc_equipment_statistical_info <where> <if test="equipmentIdList != null and equipmentIdList.size() > 0 "> AND equipment_id IN <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> AND the_date LIKE CONCAT('%', #{ date } ,'%') </where> </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java
@@ -28,4 +28,6 @@ EquipmentLog getRow(String equipmentid, Date startTime); EquipmentLog selectEquipmentOporation(String equipmentId); List<EquipmentLog> getEquipmentStatusList(List<String> equipmentIdList); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
@@ -9,7 +9,6 @@ import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; import org.jeecg.modules.mdc.model.MdcEquipmentTree; import org.jeecg.modules.mdc.vo.MdcCommonVo; import org.jeecg.modules.mdc.vo.MdcEquipmentVo; import org.jeecg.modules.mdc.vo.WorkshopEquipmentVo; @@ -204,8 +203,4 @@ */ MdcEquipmentDto getWorkLineLast(String tableName); /** * 设å¤è¿è¡ç¶æç»è®¡ */ List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcHomeService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package org.jeecg.modules.mdc.service; import org.jeecg.modules.mdc.vo.MdcCommonVo; import java.util.List; import java.util.Map; /** * @author Lius * @date 2024/3/14 9:51 */ public interface IMdcHomeService { /** * 设å¤è¿è¡ç¶æç»è®¡ */ List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key); /** * 设å¤å©ç¨çç»è®¡ */ List<MdcCommonVo> getEquipmentUtilizationStatistics(String userId, String key); /** * 设å¤OEEç»è®¡ */ List<MdcCommonVo> getEquipmentOeeStatistics(String userId, String key); /** * 设å¤OEEåå©ç¨çç»è®¡æ±ç¶å¾ */ Map<String, Object> getEquipmentMonthStatistics(String userId, String key); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java
@@ -53,4 +53,9 @@ public EquipmentLog selectEquipmentOporation(String equipmentId) { return this.baseMapper.selectEquipmentOporation(equipmentId); } @Override public List<EquipmentLog> getEquipmentStatusList(List<String> equipmentIdList) { return this.baseMapper.getEquipmentStatusList(equipmentIdList); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,231 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.jeecg.modules.mdc.entity.EquipmentLog; import org.jeecg.modules.mdc.mapper.MdcHomeMapper; import org.jeecg.modules.mdc.service.IEquipmentLogService; import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.service.IMdcHomeService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcCommonVo; import org.jeecg.modules.mdc.vo.MdcEquipmentStatusVo; import org.jeecg.modules.system.entity.MdcProduction; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.util.*; /** * @author Lius * @date 2024/3/14 9:52 */ @Service public class IMdcHomeServiceImpl implements IMdcHomeService { @Resource private IMdcEquipmentService mdcEquipmentService; @Resource private IEquipmentLogService equipmentLogService; @Resource private MdcHomeMapper mdcHomeMapper; /** * 设å¤è¿è¡ç¶æç»è®¡ */ @Override public List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key) { List<MdcCommonVo> result = new ArrayList<>(); MdcCommonVo mdcCommonVo1 = new MdcCommonVo(); mdcCommonVo1.setName("å ³æº"); mdcCommonVo1.setValue("0"); result.add(mdcCommonVo1); MdcCommonVo mdcCommonVo2 = new MdcCommonVo(); mdcCommonVo2.setName("æ¥è¦"); mdcCommonVo2.setValue("0"); result.add(mdcCommonVo2); MdcCommonVo mdcCommonVo3 = new MdcCommonVo(); mdcCommonVo3.setName("å¾ æº"); mdcCommonVo3.setValue("0"); result.add(mdcCommonVo3); MdcCommonVo mdcCommonVo4 = new MdcCommonVo(); mdcCommonVo4.setName("è¿è¡"); mdcCommonVo4.setValue("0"); result.add(mdcCommonVo4); MdcEquipmentStatusVo mdcEquipmentStatusVo = new MdcEquipmentStatusVo(); if (StringUtils.isBlank(key)) { return result; } List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key); if (equipmentIdList == null || equipmentIdList.isEmpty()) { return result; } List<EquipmentLog> logList = equipmentLogService.getEquipmentStatusList(equipmentIdList); if (logList != null && !logList.isEmpty()) { for (EquipmentLog equipmentLog : logList) { if (equipmentLog.getOporation() != null) { switch (equipmentLog.getOporation()) { case 1: case 2: mdcEquipmentStatusVo.setWaitCount(mdcEquipmentStatusVo.getWaitCount() + 1); break; case 3: mdcEquipmentStatusVo.setRunCount(mdcEquipmentStatusVo.getRunCount() + 1); break; case 22: mdcEquipmentStatusVo.setAlarmCount(mdcEquipmentStatusVo.getAlarmCount() + 1); break; default: mdcEquipmentStatusVo.setCloseCount(mdcEquipmentStatusVo.getCloseCount() + 1); break; } } else { mdcEquipmentStatusVo.setCloseCount(mdcEquipmentStatusVo.getCloseCount() + 1); } } } result.clear(); MdcCommonVo mdcCommonVo5 = new MdcCommonVo(); mdcCommonVo5.setName("å ³æº"); mdcCommonVo5.setValue(mdcEquipmentStatusVo.getCloseCount().toString()); result.add(mdcCommonVo5); MdcCommonVo mdcCommonVo6 = new MdcCommonVo(); mdcCommonVo6.setName("æ¥è¦"); mdcCommonVo6.setValue(mdcEquipmentStatusVo.getAlarmCount().toString()); result.add(mdcCommonVo6); MdcCommonVo mdcCommonVo7 = new MdcCommonVo(); mdcCommonVo7.setName("å¾ æº"); mdcCommonVo7.setValue(mdcEquipmentStatusVo.getWaitCount().toString()); result.add(mdcCommonVo7); MdcCommonVo mdcCommonVo8 = new MdcCommonVo(); mdcCommonVo8.setName("è¿è¡"); mdcCommonVo8.setValue(mdcEquipmentStatusVo.getRunCount().toString()); result.add(mdcCommonVo8); return result; } /** * 设å¤å©ç¨çç»è®¡ */ @Override public List<MdcCommonVo> getEquipmentUtilizationStatistics(String userId, String key) { List<MdcCommonVo> result = new ArrayList<>(); //è·åå ¬å¸æååºäºçº§ä¿¡æ¯ List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(userId, key); if (mdcProductionList != null && !mdcProductionList.isEmpty()) { for (MdcProduction mdcProduction : mdcProductionList) { MdcCommonVo mdcCommonVo = new MdcCommonVo(); mdcCommonVo.setName(mdcProduction.getProductionName()); mdcCommonVo.setProductionCode(mdcProduction.getProductionCode()); //è·åæ¤å±çº§ä¸è®¾å¤ List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId()); if (equipmentIdList == null || equipmentIdList.isEmpty()) { mdcCommonVo.setValue("0"); } else { String date = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-1).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); BigDecimal processCount = mdcHomeMapper.getProcessCount(equipmentIdList, date); if (processCount == null || processCount.compareTo(BigDecimal.ZERO) == 0) { mdcCommonVo.setValue("0"); } else { mdcCommonVo.setValue(processCount.divide(new BigDecimal(86400).multiply(new BigDecimal(equipmentIdList.size())), 4, RoundingMode.HALF_UP).toString()); } } result.add(mdcCommonVo); } } return result; } /** * 设å¤OEEç»è®¡ */ @Override public List<MdcCommonVo> getEquipmentOeeStatistics(String userId, String key) { List<MdcCommonVo> result = new ArrayList<>(); //è·åå ¬å¸æååºäºçº§ä¿¡æ¯ List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(userId, key); if (mdcProductionList != null && !mdcProductionList.isEmpty()) { for (MdcProduction mdcProduction : mdcProductionList) { MdcCommonVo mdcCommonVo = new MdcCommonVo(); mdcCommonVo.setName(mdcProduction.getProductionName()); mdcCommonVo.setProductionCode(mdcProduction.getProductionCode()); //è·åæ¤å±çº§ä¸è®¾å¤ List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId()); if (equipmentIdList == null || equipmentIdList.isEmpty()) { mdcCommonVo.setValue("0"); } else { String date = DateUtils.format(DateUtils.toDate(LocalDate.now().plusMonths(-1).toString(), DateUtils.STR_DATE), DateUtils.STR_YEAR_MONTH); BigDecimal oee = mdcHomeMapper.getOeeByDate(equipmentIdList, date); if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) { mdcCommonVo.setValue("0"); } else { mdcCommonVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).toString()); } } result.add(mdcCommonVo); } } return result; } /** * 设å¤OEEåå©ç¨çç»è®¡æ±ç¶å¾ */ @Override public Map<String, Object> getEquipmentMonthStatistics(String userId, String key) { List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key); 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); List<String> monthBetween = DateUtils.getMonthBetween(start, end); List<String> dateList = new ArrayList<>(); List<MdcCommonVo> utilizationList = new ArrayList<>(); List<MdcCommonVo> oeeList = new ArrayList<>(); for (String month : monthBetween) { //æ¥æéå String name = month.substring(month.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "æ"; dateList.add(name); //å©ç¨çåoee MdcCommonVo mdcCommonUtilizationVo = new MdcCommonVo(); mdcCommonUtilizationVo.setName(name); MdcCommonVo mdcCommonOeeVo = new MdcCommonVo(); mdcCommonOeeVo.setName(name); if (equipmentIdList == null || equipmentIdList.isEmpty()) { mdcCommonUtilizationVo.setValue("0"); mdcCommonOeeVo.setValue("0"); } else { //å©ç¨ç Map<String, Object> resultMap = mdcHomeMapper.getUtilizationByMonth(equipmentIdList, month.replace("-", "")); if (resultMap != null && resultMap.get("processLong") != null) { BigDecimal processLong = BigDecimal.valueOf((Double) resultMap.get("processLong")); BigDecimal processDay = new BigDecimal((Integer) resultMap.get("processDay")); if (processLong.compareTo(BigDecimal.ZERO) == 0) { mdcCommonUtilizationVo.setValue("0"); } else { mdcCommonUtilizationVo.setValue(processLong.divide(processDay, 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).toString()); } } else { mdcCommonUtilizationVo.setValue("0"); } //OEE BigDecimal oee = mdcHomeMapper.getOeeByDate(equipmentIdList, month); if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) { mdcCommonOeeVo.setValue("0"); } else { mdcCommonOeeVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).toString()); } } utilizationList.add(mdcCommonUtilizationVo); oeeList.add(mdcCommonOeeVo); } result.put("dateList", dateList); result.put("utilizationList", utilizationList); result.put("oeeList", oeeList); return result; } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -849,75 +849,4 @@ return this.baseMapper.findWorkLineLast(tableName); } /** * 设å¤è¿è¡ç¶æç»è®¡ */ @Override public List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key) { List<MdcCommonVo> result = new ArrayList<>(); MdcCommonVo mdcCommonVo1 = new MdcCommonVo(); mdcCommonVo1.setName("å ³æº"); mdcCommonVo1.setValue(0); result.add(mdcCommonVo1); MdcCommonVo mdcCommonVo2 = new MdcCommonVo(); mdcCommonVo2.setName("æ¥è¦"); mdcCommonVo2.setValue(0); result.add(mdcCommonVo2); MdcCommonVo mdcCommonVo3 = new MdcCommonVo(); mdcCommonVo3.setName("å¾ æº"); mdcCommonVo3.setValue(0); result.add(mdcCommonVo3); MdcCommonVo mdcCommonVo4 = new MdcCommonVo(); mdcCommonVo4.setName("è¿è¡"); mdcCommonVo4.setValue(0); result.add(mdcCommonVo4); MdcEquipmentStatusVo mdcEquipmentStatusVo = new MdcEquipmentStatusVo(); List<String> equipmentIdList = this.getEquipmentIdsProduction(userId, key); if (equipmentIdList == null || equipmentIdList.isEmpty()) { return result; } List<EquipmentLog> logList = this.baseMapper.getEquipmentStatusList(equipmentIdList); if (logList != null && !logList.isEmpty()) { for (EquipmentLog equipmentLog : logList) { if (equipmentLog.getOporation() != null) { switch (equipmentLog.getOporation()) { case 1: case 2: mdcEquipmentStatusVo.setWaitCount(mdcEquipmentStatusVo.getWaitCount() + 1); break; case 3: mdcEquipmentStatusVo.setRunCount(mdcEquipmentStatusVo.getRunCount() + 1); break; case 22: mdcEquipmentStatusVo.setAlarmCount(mdcEquipmentStatusVo.getAlarmCount() + 1); break; default: mdcEquipmentStatusVo.setCloseCount(mdcEquipmentStatusVo.getCloseCount() + 1); break; } } else { mdcEquipmentStatusVo.setCloseCount(mdcEquipmentStatusVo.getCloseCount() + 1); } } } result.clear(); MdcCommonVo mdcCommonVo5 = new MdcCommonVo(); mdcCommonVo5.setName("å ³æº"); mdcCommonVo5.setValue(mdcEquipmentStatusVo.getCloseCount()); result.add(mdcCommonVo5); MdcCommonVo mdcCommonVo6 = new MdcCommonVo(); mdcCommonVo6.setName("æ¥è¦"); mdcCommonVo6.setValue(mdcEquipmentStatusVo.getAlarmCount()); result.add(mdcCommonVo6); MdcCommonVo mdcCommonVo7 = new MdcCommonVo(); mdcCommonVo7.setName("å¾ æº"); mdcCommonVo7.setValue(mdcEquipmentStatusVo.getWaitCount()); result.add(mdcCommonVo7); MdcCommonVo mdcCommonVo8 = new MdcCommonVo(); mdcCommonVo8.setName("è¿è¡"); mdcCommonVo8.setValue(mdcEquipmentStatusVo.getRunCount()); result.add(mdcCommonVo8); return result; } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcCommonVo.java
@@ -8,6 +8,7 @@ */ @Data public class MdcCommonVo { private Integer value; private String value; private String name; private String productionCode; }