From 5eaf01b0765639bbcb7a53b9cbb177871ec634a2 Mon Sep 17 00:00:00 2001 From: yxw Date: Sun, 29 Sep 2024 14:51:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=B1=95=E7=A4=BA=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../station/MesProductionSortModuleService.java | 78 +++++++++++++--------- 1 file changed, 48 insertions(+), 30 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java index f742ed8..d2b9d71 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepSer import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesQueueOrderModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -34,6 +35,8 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Description : 展示组件:排序生产 @@ -63,14 +66,15 @@ public class MesProductionSortModuleService extends BaseModuleService { // 获取工单信息 List> moduleContentContext = productionDispatchContextStepService.getModuleContentContext(reqBean); - //获取上下文信息 - MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue()); - MesWorkCell mesWorkCell = productionProcessContext.getWorkCell(); + // 获取产成零件信息 + List productionPartContext = productionDispatchContextStepService.getProductionPartContext(reqBean); + // 排除掉空腔的产成零件 + productionPartContext = CollectionUtils.isEmpty(productionPartContext) ? null : productionPartContext.stream().filter(o -> o.getForeignKey() != null).collect(Collectors.toList()); //获取班次信息,先查询缓存,缓存没有在查询数据库 List prodShiftDataContext = getShiftRecordStationKvBeans(reqBean); - MesProdShiftContext mesProdShiftKvBean = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); + //MesProdShiftContext mesProdShiftKvBean = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); if (CollectionUtils.isEmpty(prodShiftDataContext)) { this.sendMessage(reqBean, new StationResultBean().writeDbLog(), "请先开班", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); @@ -81,7 +85,7 @@ public class MesProductionSortModuleService extends BaseModuleService { this.sendMessage(reqBean, resultBean); // 获取当前工位最新修改的完成状态的队列单据数据 并根据其零件生产组代码按生产序号倒序前50条 - resultBean = getStationResultBean(queryQueueOrderTopFiftyProduceSeq(getNewQueueOrder(reqBean))); + resultBean = getStationResultBean(queryQueueOrderTopFiftyProduceSeq(reqBean, getNewPartProdGroupCode(reqBean, productionPartContext))); this.sendMessage(reqBean, resultBean); //验证工位是否锁定 @@ -110,40 +114,54 @@ public class MesProductionSortModuleService extends BaseModuleService { return attrBeanList; } - private List queryQueueOrderTopFiftyProduceSeq(MesQueueOrder queueOrder) { + private List queryQueueOrderTopFiftyProduceSeq(StationRequestBean reqBean, List partProdGroupCodeList) { - if (queueOrder == null) return new ArrayList<>(); - - Pager pager = new Pager(); - pager.setStartRow(1); - pager.setCurrentPage(1); - pager.setPageSize(50); - DdlPackBean packBean = DdlPackBean.getDdlPackBean(queueOrder.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(queueOrder.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - DdlPreparedPack.getStringEqualPack(queueOrder.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean); - DdlPreparedPack.getStringEqualPack(queueOrder.getPartProdGroupCode(), MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean); - packBean.setOrderByStr(" order by produceSeq desc "); - List queueOrderList = queueOrderRepository.findByHqlWherePage(packBean, pager); + if (CollectionUtils.isEmpty(partProdGroupCodeList)) return new ArrayList<>(); List queueOrderModels = new ArrayList<>(); - if (!CollectionUtils.isEmpty(queueOrderList)) { - - boolean isComplete = false; - for (MesQueueOrder mesQueueOrder : queueOrderList) { - MesQueueOrderModel queueOrderModel = new MesQueueOrderModel(); - BeanUtils.copyProperties(mesQueueOrder, queueOrderModel); - String color = MesExtEnumUtil.COLOR.GREEN.getValue(); - if (queueOrderModel.getStatus() == MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue()) isComplete = true; - else if (!isComplete) color = MesExtEnumUtil.COLOR.WHITE.getValue(); - else if (isComplete && (queueOrderModel.getStatus() == MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue())) color = MesExtEnumUtil.COLOR.YELLOW.getValue(); - queueOrderModel.setColor(color); - queueOrderModels.add(queueOrderModel); + for (String partProdGroupCode : partProdGroupCodeList) { + Pager pager = new Pager(); + pager.setStartRow(1); + pager.setCurrentPage(1); + pager.setPageSize(50); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(reqBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringEqualPack(reqBean.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean); + DdlPreparedPack.getStringEqualPack(partProdGroupCode, MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean); + packBean.setOrderByStr(" order by produceSeq desc "); + List queueOrderList = queueOrderRepository.findByHqlWherePage(packBean, pager); + + //List queueOrderModels = new ArrayList<>(); + if (!CollectionUtils.isEmpty(queueOrderList)) { + + boolean isComplete = false; + for (MesQueueOrder mesQueueOrder : queueOrderList) { + MesQueueOrderModel queueOrderModel = new MesQueueOrderModel(); + BeanUtils.copyProperties(mesQueueOrder, queueOrderModel); + String color = MesExtEnumUtil.COLOR.GREEN.getValue(); + if (queueOrderModel.getStatus() == MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue()) isComplete = true; + else if (!isComplete) color = MesExtEnumUtil.COLOR.WHITE.getValue(); + else if (isComplete && (queueOrderModel.getStatus() == MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue())) color = MesExtEnumUtil.COLOR.YELLOW.getValue(); + queueOrderModel.setColor(color); + queueOrderModels.add(queueOrderModel); + } } } return queueOrderModels; } + private List getNewPartProdGroupCode(StationRequestBean reqBean, List productionPartContext) { + + // 获取工单信息 + if (!CollectionUtils.isEmpty(productionPartContext)) { + return productionPartContext.stream().map(MesProductionPartContext::getPartProdGroupCode).distinct().collect(Collectors.toList()); + } + + MesQueueOrder queueOrder = getNewQueueOrder(reqBean); + return Stream.of(queueOrder.getPartProdGroupCode()).collect(Collectors.toList()); + } + private MesQueueOrder getNewQueueOrder(StationRequestBean reqBean) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(reqBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);