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 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 { //夿æ¯å ¬å¸çº§è¿æ¯ååº public Result<?> equipmentMonthStatistics(String productionId) { 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); 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
@@ -7,9 +7,14 @@ 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 } -- 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 (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(mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).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); } } else { 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;