From af8decbd88dc414ea2c528bfbfa9ab19efc63eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91=E7=9D=80=E9=9D=A2=E5=AF=B9=E6=98=8E?= =?UTF-8?q?=E5=A4=A9?= <752558143@qq.com> Date: Wed, 5 Jun 2024 22:35:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E6=AD=A5=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/api/busi/IMesWorkOrderService.java | 3 +- .../controller/busi/MesWorkOrderController.java | 2 +- .../serviceimpl/busi/MesWorkOrderService.java | 7 +-- .../equiplog/MesEquipmentRwExtServiceImpl.java | 2 +- .../MesProductResultErrorHandleStepService.java | 35 ++++++++++----- .../step/MesProductSnGenerateStepService.java | 4 ++ .../step/MesReportGenerateStepService.java | 52 ++++++++++++++++++++++ .../step/MesSaveProcessResultStepService.java | 27 +++++++++-- 8 files changed, 109 insertions(+), 23 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java index 18265ed..f10fa94 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java @@ -27,7 +27,6 @@ public interface IMesWorkOrderService { @ApiOperation(value = "查询工单") public ListPager queryMesWorkOrderListByPager(MesWorkOrder workOrder, Pager pager); - void doProductReport(List mesProduceSnList); - + void doProductReport(List mesProduceSnList, String organizeCode, String userName); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesWorkOrderController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesWorkOrderController.java index 40bd1f8..e5e5199 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesWorkOrderController.java @@ -65,7 +65,7 @@ public class MesWorkOrderController { @ApiOperation(value = "生产报工") public ResultBean doProductReport(@RequestBody List mesProduceSnList) { try { - workOrderService.doProductReport(mesProduceSnList); + //workOrderService.doProductReport(mesProduceSnList); return ResultBean.success("操作成功") .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException e) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index 197b21a..dcaf9d8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -96,11 +96,8 @@ public class MesWorkOrderService implements IMesWorkOrderService { @Override - public void doProductReport(List mesProduceSnList) { - //新增初始化 - String organizeCode = AuthUtil.getOrganizeCode(); - String userName = AuthUtil.getSessionUser().getUserName(); - + public void doProductReport(List mesProduceSnList, String organizeCode, String userName) { + //新增初始化 todo Map> mesWorkOrderMap = mesProduceSnList.stream().collect(Collectors.groupingBy(MesProduceSn::getPartNo)); Map mesPartMap = new HashMap<>(); MesPart mesPart = null; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentRwExtServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentRwExtServiceImpl.java index 00e0e65..01be53a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentRwExtServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentRwExtServiceImpl.java @@ -59,7 +59,7 @@ public class MesEquipmentRwExtServiceImpl implements IMesEquipVariableRwExtServi private Map> getConfigMap(List configList, String cfgType) { List filterList = CollectionUtils.isEmpty(configList) ? null : - configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgType()) && !StringUtils.isEmpty(o.getCfgKey()) && o.getCfgType().equals(MesPcnExtConstWords.RW_API_CFG))).collect(Collectors.toList()); + configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgType()) && !StringUtils.isEmpty(o.getCfgKey()) && o.getCfgType().equals(cfgType))).collect(Collectors.toList()); return CollectionUtils.isEmpty(filterList) ? null : filterList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesConfig::getCfgKey)); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java index 7b741a1..05aae9b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java @@ -32,6 +32,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.Arrays; import java.util.Date; @@ -68,17 +69,29 @@ public class MesProductResultErrorHandleStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); StationResultBean resultBean = new StationResultBean(); - MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue()); - + // 获取加工结果 String result = mesProductionDispatchContextStepService.getProductResultContext(reqBean); // 如果是报废或者可疑,需要编辑条码状态为不合格、并且nc判定需要新增一条记录 - if (!Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) { + if (StringUtils.isEmpty(result) || Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_OK.getValue(), result)) { return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工结果合格,无需记录异常"); } - String defectTypeCode = MesEnumUtil.DEFECT_TYPE_CODE.BACK_SPRAY.getValue(); - + // 获取条码列表 List mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean); + // 保存加工异常记录(NC判断记录) + saveProductResultException(reqBean, mesProduceSns, result); + + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工异常处理成功"); + + + } + /** + * 存加工异常记录 + * @param reqBean + * @param mesProduceSns + */ + private void saveProductResultException(StationRequestBean reqBean, List mesProduceSns, String result) { + String defectTypeCode = MesEnumUtil.DEFECT_TYPE_CODE.DETERMIND.getValue(); mesProduceSns.forEach(mesProduceSn -> { MesNcProcessingInputModel model = new MesNcProcessingInputModel(); MesDefectType mesDefectType = new MesDefectType(); @@ -99,7 +112,11 @@ public class MesProductResultErrorHandleStepService extends BaseStepService { partInspection.setDefectTypeCode(mesDefectType.getDefectTypeCode()); partInspection.setInspectionDate(DateUtil.format(new Date(), DatePattern.NORM_DATETIME_FORMATTER)); partInspection.setLotNo(mesProduceSn.getLotNo()); - partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue()); + if (!Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) { + partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue()); + } else { + partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()); + } partInspection.setRejectQty(mesProduceSn.getQty().intValue()); partInspection.setShiftCode(mesProduceSn.getShiftCode()); partInspection.setSn(mesProduceSn.getProductSn()); @@ -117,9 +134,5 @@ public class MesProductResultErrorHandleStepService extends BaseStepService { model.setPartInspectionDetailList(Arrays.asList(mesPartInspectionDetail)); ncProcessingService.saveNc(model, reqBean.getOrganizeCode()); }); - - return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "加工异常处理成功"); - - - } + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java index eac6cb9..1d432e4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java @@ -26,6 +26,7 @@ import com.google.common.base.Objects; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; @@ -72,6 +73,9 @@ public class MesProductSnGenerateStepService extends BaseStepService { MesWorkCell mesWorkCell = productionProcessContext.getWorkCell(); // 获取产出零件信息 List productionPartContextList = mesProductionDispatchContextStepService.getProductionPartContext(reqBean); + if (CollectionUtils.isEmpty(productionPartContextList)) { + foundExThrow(reqBean, "必过工步不允许跳过"); + } // 获取零件号,可能存在多个 List partNoList = productionPartContextList.stream().map(MesProductionPartContext::getPartNo).collect(Collectors.toList()); // 根据零件号组装产品条码信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java new file mode 100644 index 0000000..f78faed --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import akka.actor.ActorRef; +import akka.actor.ActorSystem; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @Description : 生产汇报工步 + * @Author : zxw + **/ +@Slf4j +@Service +public class MesReportGenerateStepService extends BaseStepService { + + @Autowired + private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; + + @Autowired + private IMesWorkOrderService mesWorkOrderService; + + + + public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT"; + + private static final Map refMap = new ConcurrentHashMap<>(200); + + @Override + public StepResult execute(StationRequestBean reqBean) { + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + List mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean); + + mesWorkOrderService.doProductReport(mesProduceSns, reqBean.getOrganizeCode(), reqBean.getUserInfo()); + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存加工结果成功"); + } +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java index eef2e48..7d87ff2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java @@ -56,6 +56,12 @@ public class MesSaveProcessResultStepService extends BaseStepService { @Autowired private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; + @Autowired + private MesProductResultErrorHandleStepService mesProductResultErrorHandleStepService; + + @Autowired + private MesReportGenerateStepService mesReportGenerateStepService; + public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT"; private static final Map refMap = new ConcurrentHashMap<>(200); @@ -65,17 +71,32 @@ public class MesSaveProcessResultStepService extends BaseStepService { StationResultBean resultBean = new StationResultBean(); StepResult stepResult = StepResult.getSuccessComplete(); + /** + * 生成开模记录 + */ mesMouldRecordGenerateStepService.execute(reqBean); - + /** + * 保存零件条码信息工步 + */ MesProductSnSaveStepService.execute(reqBean); - + /** + * 生成加工记录工步 + */ mesProductionReocrdGenerateStepService.execute(reqBean); - + /** + * 加工异常处理工步 + */ + mesProductResultErrorHandleStepService.execute(reqBean); + /** + * 报工 + */ + mesReportGenerateStepService.execute(reqBean); mesProductionDispatchContextStepService.deleteFirstMouldNoContext(reqBean); mesProductionDispatchContextStepService.deleteMouldNoContext(reqBean); mesProductionDispatchContextStepService.deleteProductResultContext(reqBean); mesProductionDispatchContextStepService.deleteReadySignalContext(reqBean); + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存加工结果成功"); } }