From f287f84070642733a12b8d6f4b5a5d3974015e51 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: Sat, 25 May 2024 13:46:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/step/MesGenerateSnService.java | 69 ++++++++++++---------- .../context/MesSnProductionProcessContext.java | 31 ++++++++++ 2 files changed, 69 insertions(+), 31 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesSnProductionProcessContext.java diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesGenerateSnService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesGenerateSnService.java index 4a6c8bf..6c24504 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesGenerateSnService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesGenerateSnService.java @@ -1,20 +1,17 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesSnProductionProcessContext; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; 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.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; -import cn.estsh.i3plus.pojo.mes.bean.MesModelMultiCavity; +import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity; import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; @@ -22,17 +19,14 @@ import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.hutool.core.date.DateUtil; 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.ArrayList; +import java.util.Date; import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; /** * @Description : 生成零件条码 @@ -41,6 +35,8 @@ import java.util.stream.Collectors; @Slf4j @Service("mesGenerateSnService") public class MesGenerateSnService extends BaseStepService { + @Autowired + private SnowflakeIdMaker snowflakeIdMaker; @Autowired private IMesProductionProcessContextStepService productionProcessContextStepService; @@ -65,11 +61,10 @@ public class MesGenerateSnService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue()); - - - List mesModelMultiCavities = productionProcessContext.getMesModelMultiCavities(); + MesWorkCell mesWorkCell = productionProcessContext.getWorkCell(); + List mesModelMultiCavities = productionProcessContext.getMouldCavityList(); List mesProduceSns = new ArrayList<>(); - for (MesModelMultiCavity modelMultiCavity : mesModelMultiCavities) { + for (MesMouldMultiCavity modelMultiCavity : mesModelMultiCavities) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(modelMultiCavity.getPartNo(), "partNo", packBean); MesPart mesPart = mesPartRepository.getByProperty(packBean); @@ -77,10 +72,12 @@ public class MesGenerateSnService extends BaseStepService { return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "零件号不存在"); } String sn = generateByRule(mesPart); - MesProduceSn mesProduceSn = generateMesProduceSn(mesPart, sn); + MesProduceSn mesProduceSn = generateMesProduceSn(mesPart, sn,mesWorkCell, productionProcessContext,reqBean); mesProduceSns.add(mesProduceSn); } mesProduceSnRepository.saveAll(mesProduceSns); + MesSnProductionProcessContext mesSnProductionProcessContext = (MesSnProductionProcessContext) productionProcessContext; + mesSnProductionProcessContext.productSns(mesProduceSns); return StepResult.getSuccessComplete(); } @@ -94,21 +91,31 @@ public class MesGenerateSnService extends BaseStepService { return resultList.get(0); } - private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn) { + private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, MesWorkCell mesWorkCell,MesProductionProcessContext productionProcessContext, StationRequestBean reqBean) { + long serialNum = snowflakeIdMaker.nextId(); + MesProduceSn mesProduceSn = new MesProduceSn(); + mesProduceSn.setSerialNumber(serialNum + ""); mesProduceSn.setProductSn(sn); - mesProduceSn.setQcStatus(); - mesProduceSn.setWorkOrderNo(); - mesProduceSn.setAreaCode(); - mesProduceSn.setColorName(); - mesProduceSn.setCompensateTime(); - mesProduceSn.setCraftCode(); - mesProduceSn.setCustCode(); - mesProduceSn.setCustLabelTemplate(); - mesProduceSn.setCustPartNo(); - mesProduceSn.setEquipmentCode(); - mesProduceSn.setEquipmentName(); - mesProduceSn.set(); - + mesProduceSn.setCustSn(sn); + mesProduceSn.setPartNo(mesPart.getPartNo()); + mesProduceSn.setPartNameRdd(mesPart.getPartName()); + mesProduceSn.setAreaCode(mesWorkCell.getAreaCode()); + mesProduceSn.setWorkCenterCode(mesWorkCell.getWorkCenterCode()); + mesProduceSn.setWorkCellCode(mesWorkCell.getWorkCellCode()); + mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate()); + mesProduceSn.setCustLabelTemplate(mesPart.getCustLabelTemplate()); + mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate()); + mesProduceSn.setQty(1d); + mesProduceSn.setSnStatus(10); + mesProduceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); + mesProduceSn.setLotNo(DateUtil.format(new Date(), "YYYYMMDD")); + mesProduceSn.setRouteCode(reqBean.getRouteCode()); + mesProduceSn.setProcessCode(productionProcessContext.getProcessCode()); + mesProduceSn.setCraftCode(productionProcessContext.getCraftCode()); + mesProduceSn.setPrintCount(0); + mesProduceSn.setPrintStatus(10); + + return mesProduceSn; } } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesSnProductionProcessContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesSnProductionProcessContext.java new file mode 100644 index 0000000..7015048 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesSnProductionProcessContext.java @@ -0,0 +1,31 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.context; + +import cn.estsh.i3plus.pojo.mes.bean.*; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + +/** + * 生产过程上下文对象 + */ +@Data +public class MesSnProductionProcessContext extends MesProductionProcessContext{ + + @ApiParam("零件条码信息") + private String produceSnJson; + + + //上下文赋值一模多腔信息 + public MesSnProductionProcessContext productSns(List mesProduceSns) { + this.produceSnJson = !CollectionUtils.isEmpty(mesProduceSns) ? JSONObject.toJSONString(mesProduceSns) : null; + return this; + } +}