diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionCustomContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionCustomContextStepService.java index e555946..9737f71 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionCustomContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionCustomContextStepService.java @@ -2,7 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -76,7 +76,7 @@ public interface IMesProductionCustomContextStepService { Integer getRepeatAssemblySnCount(String organizeCode, String workCenterCode, String workCellCode, String equipmentCode); @ApiOperation(value = "保存可复用条码到上下文") - Boolean dispatchRepeatAssemblySn(String organizeCode, String workCenterCode, String workCellCode, MesProductionAssemblyNosortContext productionAssemblyNosortContext); + Boolean dispatchRepeatAssemblySn(String organizeCode, String workCenterCode, String workCellCode, MesProductionAssemblyContext productionAssemblyContext); @ApiOperation(value = "删除上下文可复用条码信息") void removeRepeatAssemblySn(StationRequestBean reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index b182609..d1c9f37 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -244,8 +244,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (model.isTransferFlg() && model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) { //移库 - MesMove move = createMove(model,getDestLocateNo(model, org),configService.getCfgValue(org, "LGORT"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); - moveRepository.save(move); + if (model.getOptType() != 2) { + MesMove move = createMove(model, getDestLocateNo(model, org), configService.getCfgValue(org, "LGORT"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); + moveRepository.save(move); + } } //判断首次合格还是 多次检验最终为合格品 @@ -335,10 +337,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService }else{ srcLocate= configService.getCfgValue(org, "UMLGO"); } - - //移库 - MesMove move = createMove(model,srcLocate,configService.getCfgValue(org, "LGORT"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); - moveRepository.save(move); + if (model.getOptType() != 2) { + //移库 + MesMove move = createMove(model, srcLocate, configService.getCfgValue(org, "LGORT"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); + moveRepository.save(move); + } } } @@ -401,9 +404,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (Objects.isNull(srcLocateNo)) { srcLocateNo = configService.getCfgValue(org, "LGORT"); } - //移库 - MesMove move = createMove(model,srcLocateNo, configService.getCfgValue(org, "UMLGO"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); - moveRepository.save(move); + if (model.getOptType() != 2) { + //移库 + MesMove move = createMove(model, srcLocateNo, configService.getCfgValue(org, "UMLGO"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); + moveRepository.save(move); + } } else { @@ -438,6 +443,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService throw new ImppBusiException(String.format("【%s】位置不存在,请检查数据", defectTypeNoExitList)); } + //若是扫描条码 则判定条码可疑 if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) { checkProduceSn(produceSn, model.getSn()); @@ -458,9 +464,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService partInspectionDetailRepository.saveAll(model.getPartInspectionDetailList()); //移库 - MesMove move = createMove(model, configService.getCfgValue(org, "LGORT"), configService.getCfgValue(org, "UMLGO"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); - moveRepository.save(move); - + if (model.getOptType() != 2) { + MesMove move = createMove(model, configService.getCfgValue(org, "LGORT"), configService.getCfgValue(org, "UMLGO"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); + moveRepository.save(move); + } } @@ -996,7 +1003,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (CollectionUtils.isEmpty(produceSnList)) { MesPcnException.throwFlowException("条码不存在"); } - MesProduceSn produceSn = produceSnList.get(0); + MesProduceSn produceSn = produceSnList.stream().filter(mesProduceSn -> Objects.equals(mesProduceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue())).findFirst().orElse(null); + if (produceSn == null) { + MesPcnException.throwFlowException("条码不存在"); + } MesProduceSnLog produceSnLog = new MesProduceSnLog(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java index 98c2e70..e2e873f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java @@ -347,6 +347,7 @@ public class MesNcProcessingService implements IMesNcProcessingService { } String source = configService.getCfgValue(org, "LGORT"); + String refundSource = configService.getCfgValue(org, "REFUND"); if (!StringUtils.isEmpty(model.getProductVersion())) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); DdlPreparedPack.getStringEqualPack(model.getPart().getPartNo(), "partNo", ddlPackBean); @@ -387,9 +388,12 @@ public class MesNcProcessingService implements IMesNcProcessingService { model.getPartInspection().setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.NORMAL.getValue()); ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserName()); partInspectionRepository.save(model.getPartInspection()); - + String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { + sourceValue = refundSource; + } //移库 转正常、放行:8000移至2000 - MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); + MesMove move = createMove(model, sourceValue, configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); moveRepository.save(move); @@ -442,7 +446,12 @@ public class MesNcProcessingService implements IMesNcProcessingService { ConvertBean.serviceModelUpdate(model.getPartInspection(),model.getUserName()); partInspectionRepository.save(model.getPartInspection()); - MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.RETURN_MOVE); + String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { + sourceValue = refundSource; + } + + MesMove move = createMove(model, sourceValue, areaCode, org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.RETURN_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); moveRepository.save(move); @@ -477,12 +486,21 @@ public class MesNcProcessingService implements IMesNcProcessingService { ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserName()); partInspectionRepository.save(model.getPartInspection()); if (isOrder) { - MesMove move = createMove(model, source, configService.getCfgValue(org, "SCRAP"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE); + String sourceValue = source; + if (model.getOptType() == 2) { + sourceValue = refundSource; + } + + MesMove move = createMove(model, sourceValue, configService.getCfgValue(org, "SCRAP"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); moveRepository.save(move); } else { + String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { + sourceValue = refundSource; + } //移库 转报废 根据责任方库区对应关系的主数据,选择哪个责任方,就移动到哪个库区(8000移至8002/8003) - MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE); + MesMove move = createMove(model, sourceValue, areaCode, org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); moveRepository.save(move); } @@ -515,9 +533,12 @@ public class MesNcProcessingService implements IMesNcProcessingService { ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserName()); partInspectionRepository.save(model.getPartInspection()); - + String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { + sourceValue = refundSource; + } //移库 转正常、放行:8000移至2000 - MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); + MesMove move = createMove(model, sourceValue, configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); moveRepository.save(move); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveNosortStepService.java deleted file mode 100644 index 1df5057..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveNosortStepService.java +++ /dev/null @@ -1,171 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; - -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; -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.pojo.context.*; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly; -import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssemblyUnique; -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 cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyUniqueRepository; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -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.List; -import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; - -/** - * @Description : 保存装配记录工步 【非排序】 - * @Author : wangjie - **/ -@Slf4j -@Service("mesAssemblySaveNosortStepService") -public class MesAssemblySaveNosortStepService extends BaseStepService { - - @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired - private IMesProductionCustomContextStepService productionCustomContextStepService; - - @Autowired - private MesProductionAssemblyRepository productionAssemblyRepository; - - @Autowired - private MesProductionAssemblyUniqueRepository productionAssemblyUniqueRepository; - - @Autowired - private IMesProduceSnExtService produceSnExtService; - - @Override - public StepResult execute(StationRequestBean reqBean) { - - StationResultBean resultBean = new StationResultBean(); - - StepResult stepResult = StepResult.getSuccessComplete(); - - //获取上下文信息 - MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); - - //配置错误 抛出异常 - if (!productionProcessContext.getSuccess()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); - - //存储生产过程上下文对象 - productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext); - - //获取上下文产品加工规则数据信息集合 - List prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean); - - if (CollectionUtils.isEmpty(prodRuleContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在非排序加工规则数据,请重置工序!"); - - //获取上下文产出条码数据信息集合 - List productionPsOutContextList = productionDispatchContextStepService.getProductionPsOutContext(reqBean); - - if (CollectionUtils.isEmpty(productionPsOutContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在产出零件条码信息,请重置工序解决!"); - - //从上下文中取出工位当前要使用的设备 - MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); - - Map ppMap = CollectionUtils.isEmpty(productionPsOutContextList) ? null : productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProductionPsOutContext::getForeignKey, o -> o)); - - List productSnId = new ArrayList<>(); - - //保存装配记录 - prodRuleContextList.stream().filter(o -> null != o).forEach(o -> saveProductionAssemblyData(reqBean, resultBean, stepResult, productSnId, productionProcessContext, o, ppMap, cellEquipContext)); - - if (!CollectionUtils.isEmpty(productSnId)) produceSnExtService.saveProduceSnList(reqBean, MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY.getValue(), productSnId); - - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "保存装配记录成功!"); - - } - - private void saveProductionAssemblyData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List productSnId, - MesProductionProcessContext productionProcessContext, MesProdRuleContext prodRuleContext, Map ppMap, MesCellEquipContext cellEquipContext) { - - if (StringUtils.isEmpty(prodRuleContext.getAssemblyDataJson())) return; - - List productionAssemblyNosortContextList = prodRuleContext.getNosortAssemblyDataContext(); - - MesProductionPsOutContext productionPsOutContext = CollectionUtils.isEmpty(ppMap) ? null : ppMap.get(prodRuleContext.getForeignKey()); - - for (MesProductionAssemblyNosortContext productionAssemblyNosortContext : productionAssemblyNosortContextList) { - - if (null == productionAssemblyNosortContext) continue; - - MesProductionAssembly productionAssembly = new MesProductionAssembly(); - BeanUtils.copyProperties(productionAssemblyNosortContext, productionAssembly); - - productionAssembly.setDataSource(MesExtEnumUtil.PRODUCTION_ASSEMBLY_DATA_SOURCE.NOSORT.getValue()); - productionAssembly.setIsOrigSn(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - - productionAssembly.setAreaCode(reqBean.getWorkCenterCode()); - productionAssembly.setWorkCenterCode(reqBean.getWorkCenterCode()); - productionAssembly.setWorkCellCode(reqBean.getWorkCellCode()); - productionAssembly.setProcessCode(reqBean.getProcessCode()); - - productionAssembly.setProcessName(productionProcessContext.getProcessName()); - productionAssembly.setCraftCode(productionProcessContext.getCraftCode()); - productionAssembly.setCraftName(productionProcessContext.getCraftName()); - - productionAssembly.setEquipmentCode(cellEquipContext.getEquipmentCode()); - - productionAssembly.setProductionRecordId(prodRuleContext.getProductionRecordId()); - productionAssembly.setMouldNo(prodRuleContext.getMouldNo()); - - if (null != productionPsOutContext) { - productionAssembly.setPartNo(productionPsOutContext.getPartNo()); - productionAssembly.setPartName(productionPsOutContext.getPartName()); - productionAssembly.setSerialNumber(productionPsOutContext.getSerialNumber()); - productionAssembly.setProductSn(productionPsOutContext.getProductSn()); - productionAssembly.setCustSn(productionPsOutContext.getCustSn()); - } - - MesScanMonitorContext scanMonitorContext = productionProcessContextStepService.dispatchScanMonitorContext(reqBean, true); - if (null != scanMonitorContext) productionAssembly.setMouldRecordId(scanMonitorContext.getMouldRecordId()); - - productionAssembly.setOrganizeCode(reqBean.getOrganizeCode()); - ConvertBean.serviceModelInitialize(productionAssembly, reqBean.getUserInfo()); - - productionAssembly.setFid(UUID.randomUUID().toString()); - - productionAssembly = productionAssemblyRepository.insert(productionAssembly); - - if (productionAssemblyNosortContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_30.getValue()) == 0) saveProductionAssemblyUnique(productionAssembly); - - if (!StringUtils.isEmpty(productionAssemblyNosortContext.getProductSnId())) productSnId.add(productionAssemblyNosortContext.getProductSnId()); - - if (productionAssemblyNosortContext.getIsRepeat().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionAssemblyNosortContext.getIsRepeat2Cache().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) - productionCustomContextStepService.dispatchRepeatAssemblySn(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), productionAssemblyNosortContext); - - } - - } - - private void saveProductionAssemblyUnique(MesProductionAssembly productionAssembly) { - MesProductionAssemblyUnique productionAssemblyUnique = new MesProductionAssemblyUnique(); - BeanUtils.copyProperties(productionAssembly, productionAssemblyUnique, MesPcnExtConstWords.ID); - productionAssemblyUnique.setPid(productionAssembly.getId()); - productionAssemblyUniqueRepository.insert(productionAssemblyUnique); - } - -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveSortStepService.java deleted file mode 100644 index 67c3596..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveSortStepService.java +++ /dev/null @@ -1,171 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; - -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; -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.pojo.context.*; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly; -import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssemblyUnique; -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 cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyUniqueRepository; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -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.List; -import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; - -/** - * @Description : 保存装配记录工步 【排序】 - * @Author : wangjie - **/ -@Slf4j -@Service("mesAssemblySaveSortStepService") -public class MesAssemblySaveSortStepService extends BaseStepService { - - @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired - private IMesProductionCustomContextStepService productionCustomContextStepService; - - @Autowired - private MesProductionAssemblyRepository productionAssemblyRepository; - - @Autowired - private MesProductionAssemblyUniqueRepository productionAssemblyUniqueRepository; - - @Autowired - private IMesProduceSnExtService produceSnExtService; - - @Override - public StepResult execute(StationRequestBean reqBean) { - - StationResultBean resultBean = new StationResultBean(); - - StepResult stepResult = StepResult.getSuccessComplete(); - - //获取上下文信息 - MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); - - //配置错误 抛出异常 - if (!productionProcessContext.getSuccess()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); - - //存储生产过程上下文对象 - productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext); - - //获取上下文产品加工规则数据信息集合 - List prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean); - - if (CollectionUtils.isEmpty(prodRuleContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在非排序加工规则数据,请重置工序!"); - - //获取上下文产出条码数据信息集合 - List productionPsOutContextList = productionDispatchContextStepService.getProductionPsOutContext(reqBean); - - if (CollectionUtils.isEmpty(productionPsOutContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在产出零件条码信息,请重置工序解决!"); - - //从上下文中取出工位当前要使用的设备 - MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); - - Map ppMap = CollectionUtils.isEmpty(productionPsOutContextList) ? null : productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProductionPsOutContext::getForeignKey, o -> o)); - - List productSnId = new ArrayList<>(); - - //保存装配记录 - prodRuleContextList.stream().filter(o -> null != o).forEach(o -> saveProductionAssemblyData(reqBean, resultBean, stepResult, productSnId, productionProcessContext, o, ppMap, cellEquipContext)); - - if (!CollectionUtils.isEmpty(productSnId)) produceSnExtService.saveProduceSnList(reqBean, MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY.getValue(), productSnId); - - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "保存装配记录成功!"); - - } - - private void saveProductionAssemblyData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List productSnId, - MesProductionProcessContext productionProcessContext, MesProdRuleContext prodRuleContext, Map ppMap, MesCellEquipContext cellEquipContext) { - - if (StringUtils.isEmpty(prodRuleContext.getAssemblyDataJson())) return; - - List productionAssemblyNosortContextList = prodRuleContext.getNosortAssemblyDataContext(); - - MesProductionPsOutContext productionPsOutContext = CollectionUtils.isEmpty(ppMap) ? null : ppMap.get(prodRuleContext.getForeignKey()); - - for (MesProductionAssemblyNosortContext productionAssemblyNosortContext : productionAssemblyNosortContextList) { - - if (null == productionAssemblyNosortContext) continue; - - MesProductionAssembly productionAssembly = new MesProductionAssembly(); - BeanUtils.copyProperties(productionAssemblyNosortContext, productionAssembly); - - productionAssembly.setDataSource(MesExtEnumUtil.PRODUCTION_ASSEMBLY_DATA_SOURCE.NOSORT.getValue()); - productionAssembly.setIsOrigSn(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - - productionAssembly.setAreaCode(reqBean.getWorkCenterCode()); - productionAssembly.setWorkCenterCode(reqBean.getWorkCenterCode()); - productionAssembly.setWorkCellCode(reqBean.getWorkCellCode()); - productionAssembly.setProcessCode(reqBean.getProcessCode()); - - productionAssembly.setProcessName(productionProcessContext.getProcessName()); - productionAssembly.setCraftCode(productionProcessContext.getCraftCode()); - productionAssembly.setCraftName(productionProcessContext.getCraftName()); - - productionAssembly.setEquipmentCode(cellEquipContext.getEquipmentCode()); - - productionAssembly.setProductionRecordId(prodRuleContext.getProductionRecordId()); - productionAssembly.setMouldNo(prodRuleContext.getMouldNo()); - - if (null != productionPsOutContext) { - productionAssembly.setPartNo(productionPsOutContext.getPartNo()); - productionAssembly.setPartName(productionPsOutContext.getPartName()); - productionAssembly.setSerialNumber(productionPsOutContext.getSerialNumber()); - productionAssembly.setProductSn(productionPsOutContext.getProductSn()); - productionAssembly.setCustSn(productionPsOutContext.getCustSn()); - } - - MesScanMonitorContext scanMonitorContext = productionProcessContextStepService.dispatchScanMonitorContext(reqBean, true); - if (null != scanMonitorContext) productionAssembly.setMouldRecordId(scanMonitorContext.getMouldRecordId()); - - productionAssembly.setOrganizeCode(reqBean.getOrganizeCode()); - ConvertBean.serviceModelInitialize(productionAssembly, reqBean.getUserInfo()); - - productionAssembly.setFid(UUID.randomUUID().toString()); - - productionAssembly = productionAssemblyRepository.insert(productionAssembly); - - if (productionAssemblyNosortContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_30.getValue()) == 0) saveProductionAssemblyUnique(productionAssembly); - - if (!StringUtils.isEmpty(productionAssemblyNosortContext.getProductSnId())) productSnId.add(productionAssemblyNosortContext.getProductSnId()); - - if (productionAssemblyNosortContext.getIsRepeat().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionAssemblyNosortContext.getIsRepeat2Cache().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) - productionCustomContextStepService.dispatchRepeatAssemblySn(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), productionAssemblyNosortContext); - - } - - } - - private void saveProductionAssemblyUnique(MesProductionAssembly productionAssembly) { - MesProductionAssemblyUnique productionAssemblyUnique = new MesProductionAssemblyUnique(); - BeanUtils.copyProperties(productionAssembly, productionAssemblyUnique, MesPcnExtConstWords.ID); - productionAssemblyUnique.setPid(productionAssembly.getId()); - productionAssemblyUniqueRepository.insert(productionAssemblyUnique); - } - -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java index aa4538e..a6fd965 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java @@ -1,15 +1,38 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; +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.pojo.context.*; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; -import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly; +import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssemblyUnique; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; 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 cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyUniqueRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderAssemblyRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; 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.List; +import java.util.Map; +import java.util.UUID; +import java.util.stream.Collectors; /** * @Description : 保存装配记录工步 @@ -22,15 +45,143 @@ public class MesAssemblySaveStepService extends BaseStepService { @Autowired private IMesProductionProcessContextStepService productionProcessContextStepService; + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private IMesProductionCustomContextStepService productionCustomContextStepService; + + @Autowired + private MesProductionAssemblyRepository productionAssemblyRepository; + + @Autowired + private MesWorkOrderAssemblyRepository workOrderAssemblyRepository; + + @Autowired + private MesProductionAssemblyUniqueRepository productionAssemblyUniqueRepository; + + @Autowired + private IMesProduceSnExtService produceSnExtService; + @Override public StepResult execute(StationRequestBean reqBean) { - //排序线 保存装配记录工步 - if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == productionProcessContextStepService.getCenterType(reqBean)) return ((IStepService) SpringContextsUtil.getBean("mesAssemblySaveSortStepService")).executeInState(reqBean); + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); - //非排序线 保存装配记录工步 - return ((IStepService) SpringContextsUtil.getBean("mesAssemblySaveNosortStepService")).executeInState(reqBean); + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); + + //配置错误 抛出异常 + if (!productionProcessContext.getSuccess()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); + + //存储生产过程上下文对象 + productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext); + + //获取上下文产品加工规则数据信息集合 + List prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean); + + if (CollectionUtils.isEmpty(prodRuleContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在非排序加工规则数据,请重置工序!"); + + //获取上下文产出条码数据信息集合 + List productionPsOutContextList = productionDispatchContextStepService.getProductionPsOutContext(reqBean); + + if (CollectionUtils.isEmpty(productionPsOutContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在产出零件条码信息,请重置工序解决!"); + + //从上下文中取出工位当前要使用的设备 + MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); + MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); + + Map ppMap = CollectionUtils.isEmpty(productionPsOutContextList) ? null : productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProductionPsOutContext::getForeignKey, o -> o)); + + List productSnIdList = new ArrayList<>(); + + //保存装配记录 + prodRuleContextList.stream().filter(o -> null != o).forEach(o -> saveProductionAssemblyData(reqBean, resultBean, stepResult, productSnIdList, productionProcessContext, o, ppMap, cellEquipContext, workCenter)); + + if (!CollectionUtils.isEmpty(productSnIdList)) produceSnExtService.saveProduceSnList(reqBean, MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY.getValue(), productSnIdList); + + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "保存装配记录成功!"); } + private void saveProductionAssemblyData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List productSnIdList, MesProductionProcessContext productionProcessContext, + MesProdRuleContext prodRuleContext, Map ppMap, MesCellEquipContext cellEquipContext, MesWorkCenter workCenter) { + + if (StringUtils.isEmpty(prodRuleContext.getAssemblyDataJson())) return; + + List productionAssemblyContextList = prodRuleContext.getAssemblyDataContext(workCenter); + + MesProductionPsOutContext productionPsOutContext = CollectionUtils.isEmpty(ppMap) ? null : ppMap.get(prodRuleContext.getForeignKey()); + + for (MesProductionAssemblyContext productionAssemblyContext : productionAssemblyContextList) { + + if (null == productionAssemblyContext) continue; + + MesProductionAssembly productionAssembly = new MesProductionAssembly(); + BeanUtils.copyProperties(productionAssemblyContext, productionAssembly); + + productionAssembly.setDataSource(MesExtEnumUtil.PRODUCTION_ASSEMBLY_DATA_SOURCE.NOSORT.getValue()); + productionAssembly.setIsOrigSn(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + + productionAssembly.setAreaCode(reqBean.getWorkCenterCode()); + productionAssembly.setWorkCenterCode(reqBean.getWorkCenterCode()); + productionAssembly.setWorkCellCode(reqBean.getWorkCellCode()); + productionAssembly.setProcessCode(reqBean.getProcessCode()); + + productionAssembly.setProcessName(productionProcessContext.getProcessName()); + productionAssembly.setCraftCode(productionProcessContext.getCraftCode()); + productionAssembly.setCraftName(productionProcessContext.getCraftName()); + + productionAssembly.setEquipmentCode(cellEquipContext.getEquipmentCode()); + + productionAssembly.setProductionRecordId(prodRuleContext.getProductionRecordId()); + productionAssembly.setMouldNo(prodRuleContext.getMouldNo()); + + if (null != productionPsOutContext) { + productionAssembly.setPartNo(productionPsOutContext.getPartNo()); + productionAssembly.setPartName(productionPsOutContext.getPartName()); + productionAssembly.setSerialNumber(productionPsOutContext.getSerialNumber()); + productionAssembly.setProductSn(productionPsOutContext.getProductSn()); + productionAssembly.setCustSn(productionPsOutContext.getCustSn()); + } + + MesScanMonitorContext scanMonitorContext = productionProcessContextStepService.dispatchScanMonitorContext(reqBean, true); + if (null != scanMonitorContext) productionAssembly.setMouldRecordId(scanMonitorContext.getMouldRecordId()); + + productionAssembly.setOrganizeCode(reqBean.getOrganizeCode()); + ConvertBean.serviceModelInitialize(productionAssembly, reqBean.getUserInfo()); + + productionAssembly.setFid(UUID.randomUUID().toString()); + + productionAssembly = productionAssemblyRepository.insert(productionAssembly); + + if (productionAssemblyContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_30.getValue()) == 0) saveProductionAssemblyUnique(productionAssembly); + + if (!StringUtils.isEmpty(productionAssemblyContext.getProductSnId())) productSnIdList.add(productionAssemblyContext.getProductSnId()); + + if (productionAssemblyContext.getIsRepeat().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionAssemblyContext.getIsRepeat2Cache().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) + productionCustomContextStepService.dispatchRepeatAssemblySn(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), productionAssemblyContext); + + if (workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue()) == 0) saveWorkOrderAssembly(reqBean, productionAssemblyContext); + + } + + } + + private void saveProductionAssemblyUnique(MesProductionAssembly productionAssembly) { + MesProductionAssemblyUnique productionAssemblyUnique = new MesProductionAssemblyUnique(); + BeanUtils.copyProperties(productionAssembly, productionAssemblyUnique, MesPcnExtConstWords.ID); + productionAssemblyUnique.setPid(productionAssembly.getId()); + productionAssemblyUniqueRepository.insert(productionAssemblyUnique); + } + + private void saveWorkOrderAssembly(StationRequestBean reqBean, MesProductionAssemblyContext productionAssemblyContext) { + workOrderAssemblyRepository.updateByProperties( + new String[]{MesPcnExtConstWords.ID}, + new Object[]{productionAssemblyContext.getSourceId()}, + new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.ASSEMBLY_STATUS}, + new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), productionAssemblyContext.getAssemblyStatus()}); + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java index 610f933..f40ade2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java @@ -3,7 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.context; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; @@ -231,8 +231,8 @@ public class MesProductionCustomContextStepService extends BaseStepService imple @Override public String getRepeatAssemblySn(String organizeCode, String workCenterCode, String workCellCode, String assemblyNosortCfgId) { String repeatAssemblySnJson = getFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), assemblyNosortCfgId); - MesProductionAssemblyNosortContext productionAssemblyNosortContext = !StringUtils.isEmpty(repeatAssemblySnJson) ? JSONObject.parseObject(repeatAssemblySnJson, MesProductionAssemblyNosortContext.class) : null; - return null != productionAssemblyNosortContext ? productionAssemblyNosortContext.getAssemblySn() : null; + MesProductionAssemblyContext productionAssemblyContext = !StringUtils.isEmpty(repeatAssemblySnJson) ? JSONObject.parseObject(repeatAssemblySnJson, MesProductionAssemblyContext.class) : null; + return null != productionAssemblyContext ? productionAssemblyContext.getAssemblySn() : null; } //根据设备代码获取可复用条码的个数 @@ -244,12 +244,12 @@ public class MesProductionCustomContextStepService extends BaseStepService imple //根据装配件规则ID获取可复用条码 @Override - public Boolean dispatchRepeatAssemblySn(String organizeCode, String workCenterCode, String workCellCode, MesProductionAssemblyNosortContext productionAssemblyNosortContext) { - if (StringUtils.isEmpty(getRepeatAssemblySn(organizeCode, workCenterCode, workCellCode, productionAssemblyNosortContext.getSourceId().toString()))) { - Integer count = getRepeatAssemblySnCount(organizeCode, workCenterCode, workCellCode, productionAssemblyNosortContext.getEquipmentCode()) + 1; - dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), productionAssemblyNosortContext.getEquipmentCode(), count.toString()); + public Boolean dispatchRepeatAssemblySn(String organizeCode, String workCenterCode, String workCellCode, MesProductionAssemblyContext productionAssemblyContext) { + if (StringUtils.isEmpty(getRepeatAssemblySn(organizeCode, workCenterCode, workCellCode, productionAssemblyContext.getSourceId().toString()))) { + Integer count = getRepeatAssemblySnCount(organizeCode, workCenterCode, workCellCode, productionAssemblyContext.getEquipmentCode()) + 1; + dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), productionAssemblyContext.getEquipmentCode(), count.toString()); } - return dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), productionAssemblyNosortContext.getSourceId().toString(), JSONObject.toJSONString(productionAssemblyNosortContext)); + return dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), productionAssemblyContext.getSourceId().toString(), JSONObject.toJSONString(productionAssemblyContext)); } //删除上下文可复用条码信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java index efd5334..4b0dcbc 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java @@ -482,7 +482,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl @Override public Integer getCenterType(StationRequestBean reqBean) { if (!StringUtils.isEmpty(reqBean.getCenterType())) return reqBean.getCenterType(); - MesProductionProcessContext productionProcessContext = getProductionProcessContext(reqBean); + MesProductionProcessContext productionProcessContext = getProductionProcessContext(reqBean, false); //获取生产过程上下文对象有异常信息 抛出异常 if (!productionProcessContext.getSuccess()) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), productionProcessContext.getMessage()); dispatchProductionProcessContext(reqBean, productionProcessContext); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java index ecaf1de..8f3f510 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java @@ -110,4 +110,10 @@ public class MesProductionAssemblyContext implements Serializable { @ApiParam(name = "数据关联键") public Integer foreignKey; + @ApiParam(value = "是否可复用条码") + public Integer isRepeat; + + @ApiParam(value = "是否可复用条码是否写入上下文进行复用") + public Integer isRepeat2Cache = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java index 9dfde0e..71fb105 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java @@ -25,12 +25,6 @@ public class MesProductionAssemblyNosortContext extends MesProductionAssemblyCon @ApiParam(value = "BOM明细ID") private String bomDetailId; - @ApiParam(value = "是否可复用条码") - private Integer isRepeat; - - @ApiParam(value = "是否可复用条码是否写入上下文进行复用") - private Integer isRepeat2Cache = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); - @ApiParam(name = "任意装配件扫描错误判断工位isResetScan后是否重新扫描") public Integer isResetScan = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesNcProcessingInputModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesNcProcessingInputModel.java index b5dcd83..b6345a9 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesNcProcessingInputModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesNcProcessingInputModel.java @@ -20,6 +20,9 @@ import java.util.List; @Data public class MesNcProcessingInputModel { + @ApiParam("操作类型(1 电子化检验 2客退品 默认1)") + private Integer optType = 1; + @ApiParam("类型") private Integer type; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesPartInspectionInputModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesPartInspectionInputModel.java index afb6d47..943da9c 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesPartInspectionInputModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesPartInspectionInputModel.java @@ -18,6 +18,9 @@ import java.util.List; @Data public class MesPartInspectionInputModel { + @ApiParam("操作类型(1 电子化检验 2客退品 默认1)") + private Integer optType = 1; + @ApiParam("操作人") private String userInfo;