From 4fb5c3d50b3991f54bd7650e5da53a0ed08dc680 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Wed, 5 Feb 2025 16:13:16 +0800 Subject: [PATCH] =?UTF-8?q?44881=20MES:=E8=A3=81=E7=89=87=E8=A1=A5?= =?UTF-8?q?=E7=89=87=E9=80=BB=E8=BE=91=E6=9B=B4=E6=96=B0=EF=BC=86=E8=A3=81?= =?UTF-8?q?=E7=89=87=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/api/busi/IMesWorkOrderCutService.java | 4 ++ .../serviceimpl/busi/MesWorkOrderCutService.java | 13 +++++ .../MesFunctionDialogCutOrderPrintService.java | 63 +++++++++++++++++++--- 3 files changed, 73 insertions(+), 7 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderCutService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderCutService.java index 85b7957..509bb1a 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderCutService.java @@ -31,6 +31,10 @@ public interface IMesWorkOrderCutService { @ApiOperation(value = "查询裁片方案成品配置") List queryCutSchemeFgList(String cutCode, String organizeCode); + @ApiOperation(value = "查询裁片方案成品配置") + List queryCutOrderMaterialList(String cutWorkOrder, String organizeCode); + + @ApiOperation(value = "查询裁片方案设备信息") MesCutSchemeEquipment getCutSchemeEquipment(String cutCode, String equipmentCode, String organizeCode); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java index 86467bd..4dd1772 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java @@ -30,6 +30,9 @@ public class MesWorkOrderCutService implements IMesWorkOrderCutService { private MesWorkOrderCutDetailRepository workOrderCutDetailRepository; @Autowired + private MesWorkOrderCutMaterialRepository workOrderCutMaterialRepository; + + @Autowired private MesCutSchemeRepository cutSchemeRepository; @Autowired @@ -77,6 +80,16 @@ public class MesWorkOrderCutService implements IMesWorkOrderCutService { } @Override + public List queryCutOrderMaterialList(String cutWorkOrder, String organizeCode) { + + if (StringUtils.isEmpty(organizeCode)) return Collections.emptyList(); + + return workOrderCutMaterialRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.CUT_WORK_ORDER_NO}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), cutWorkOrder}); + } + + @Override public MesCutSchemeEquipment getCutSchemeEquipment(String cutCode, String equipmentCode, String organizeCode) { return cutSchemeEquipmentRepository.getByProperty( diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogCutOrderPrintService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogCutOrderPrintService.java index 156b399..907f24d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogCutOrderPrintService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogCutOrderPrintService.java @@ -2,19 +2,29 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderCutService; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; import cn.estsh.i3plus.platform.common.util.MesPcnConstWords; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesCutScheme; import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCutMaterial; import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel; import cn.estsh.i3plus.pojo.mes.model.StationCustomDialogBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.repository.MesCutSchemeRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository; import com.alibaba.fastjson.JSONObject; +import com.google.common.base.Objects; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,8 +32,12 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import javax.jws.Oneway; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Description : 裁片工单弹框接口实现【裁片工单打印弹框】 @@ -40,6 +54,10 @@ public class MesFunctionDialogCutOrderPrintService extends BaseSwsService implem @Autowired private IMesWorkOrderCutService workOrderCutService; + @Autowired + private MesCutSchemeRepository cutSchemeRepository; + @Autowired + private MesPartRepository mesPartRepository; @Override public Boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { @@ -82,17 +100,48 @@ public class MesFunctionDialogCutOrderPrintService extends BaseSwsService implem String cutWorkOrderNo = equipVariableCollectContextList.get(0).getEquipVariableValue(); - // 查成品列表 - List mesCutSchemeFgs = workOrderCutService.queryCutSchemeFgList(cutWorkOrderNo, reqBean.getOrganizeCode()); - mesWorkOrderCutFgDataContextList = new ArrayList<>(); + DdlPackBean schemePackBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(cutWorkOrderNo, "cutCode", schemePackBean); + MesCutScheme mesCutScheme =cutSchemeRepository.getByProperty(schemePackBean); + // 如果是补片方案,则需要查询裁片工单原材料,而不是裁片方案原材料 + if (mesCutScheme != null && Objects.equal(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),mesCutScheme.getIsFree())) { + // 查裁片工单物料列表 + List workOrderCutMaterialList = workOrderCutService.queryCutOrderMaterialList(cutWorkOrderNo, reqBean.getOrganizeCode()); + if (CollectionUtils.isEmpty(workOrderCutMaterialList)) { + MesPcnException.throwFlowException("裁片工单为补片方案但未添加原材料信息"); + } + List partNoList = workOrderCutMaterialList.stream().map(MesWorkOrderCutMaterial::getPartNo).collect(Collectors.toList()); + // 查询物料信息 + DdlPackBean partBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); + DdlPreparedPack.getInPackList(partNoList, "partNo", partBean); + List mesPartList = mesPartRepository.findByHqlWhere(partBean); + Map> map = mesPartList.stream().collect(Collectors.groupingBy(MesPart::getPartNo)); + + mesWorkOrderCutFgDataContextList = new ArrayList<>(); + for (MesWorkOrderCutMaterial mesWorkOrderCutMaterial : workOrderCutMaterialList) { + MesWorkOrderCutDetailModel cutDetailModel = new MesWorkOrderCutDetailModel(); + BeanUtils.copyProperties(mesWorkOrderCutMaterial, cutDetailModel); + cutDetailModel.setPartName(map.get(mesWorkOrderCutMaterial.getPartNo()).get(0).getPartName()); + mesWorkOrderCutFgDataContextList.add(cutDetailModel); + } + } else { + + // 查询物料信息 + List mesCutSchemeFgs = workOrderCutService.queryCutSchemeFgList(cutWorkOrderNo, reqBean.getOrganizeCode()); + + mesWorkOrderCutFgDataContextList = new ArrayList<>(); + + for (MesCutSchemeFg mesWorkOrderCutMaterial : mesCutSchemeFgs) { + MesWorkOrderCutDetailModel cutDetailModel = new MesWorkOrderCutDetailModel(); + BeanUtils.copyProperties(mesWorkOrderCutMaterial, cutDetailModel); + mesWorkOrderCutFgDataContextList.add(cutDetailModel); + } - for (MesCutSchemeFg mesCutSchemeFg : mesCutSchemeFgs) { - MesWorkOrderCutDetailModel cutDetailModel = new MesWorkOrderCutDetailModel(); - BeanUtils.copyProperties(mesCutSchemeFg, cutDetailModel); - mesWorkOrderCutFgDataContextList.add(cutDetailModel); } + + productionDispatchContextStepService.dispatchMesWorkOrderCutFgDataContext(reqBean, mesWorkOrderCutFgDataContextList); }