From 64547892d0e41aa004bd293eb185d1ec28a59d95 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Fri, 31 May 2024 14:57:05 +0800 Subject: [PATCH] step --- .../serviceimpl/busi/MesAssemblyExtService.java | 6 + .../step/MesAssemblyShowNosortStepService.java | 73 ++++++++++ .../step/MesAssemblyShowSortStepService.java | 90 ++++++++++-- .../step/MesAssemblyShowStepService.java | 154 +++++++-------------- .../pcn/pojo/context/MesAssemblyShowContext.java | 46 ++++++ .../pojo/context/MesProductionAssemblyContext.java | 2 +- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 16 +++ 7 files changed, 274 insertions(+), 113 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java index 8d9abb1..074220c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java @@ -32,6 +32,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { @Autowired private MesProductionAssemblyRepository productionAssemblyRepository; + //【排序线】获取生产工单装配件绑定记录 @Override public List getProductionAssemblySortContextList(MesProductionAssemblySortContext productionAssemblySortContext, List workOrderNoList) { @@ -56,6 +57,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { return productionAssemblyContextList; } + //【排序线】获取生产工单装配件清单 @Override public List getWorkOrderAssemblyList(MesProductionAssemblySortContext productionAssemblySortContext, List workOrderNoList) { @@ -75,6 +77,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { } + //获取装配件绑定记录 @Override public List getProductionAssemblyList(MesProductionAssemblyContext productionAssemblyContext, List sourceIdList) { @@ -92,14 +95,17 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { } + //剔除解绑的数据 private List filterProductionAssemblyList(List productionAssemblyList) { return CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().filter(o -> (null != o && MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_20.getValue() != o.getAssemblyStatus())).collect(Collectors.toList()); } + //根据生产工单装配件清单ID分组 private Map groupProductionAssembly(List productionAssemblyList) { return CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().filter(o -> null != o).collect(Collectors.toMap(MesProductionAssembly::getSourceId, o -> o)); } + //根据生产工单装配件清单ID获取装配件绑定记录 private MesProductionAssembly getProductionAssembly(Map productionAssemblyMap, Long id) { return CollectionUtils.isEmpty(productionAssemblyMap) ? null : productionAssemblyMap.get(id); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java new file mode 100644 index 0000000..9e196f8 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java @@ -0,0 +1,73 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService; +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.MesCellEquipContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +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 lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description : 显示装配件扫描项工步【非排序】 + * @Author : wangjie + **/ +@Slf4j +@Service("mesAssemblyShowNosortStepService") +public class MesAssemblyShowNosortStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private IMesProdRuleCfgExtService prodRuleCfgExtService; + + @Autowired + private IMesAssemblyExtService assemblyExtService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); + + //配置错误 抛出异常 + if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); + + //从上下文中取出生产线对象 + MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); + + //从上下文中取出生产线对象 + MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); + + //获取上下文装配件数据信息集合 + List productionAssemblyContextList = productionDispatchContextStepService.getAssemblyDataContext(reqBean, workCenter); + + + + + return stepResult; + + + + } + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java index 262ff12..614612c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java @@ -5,26 +5,36 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService; 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.util.LocaleUtil; +import cn.estsh.i3plus.mes.pcn.util.PojoAttrUtil; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; +import cn.estsh.i3plus.pojo.mes.model.AttrBean; 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.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.Comparator; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** - * @Description : 显示装配件扫描项工步 + * @Description : 显示装配件扫描项工步【排序】 * @Author : wangjie **/ @Slf4j -@Service("mesAssemblyShowStepService") +@Service("mesAssemblyShowSortStepService") public class MesAssemblyShowSortStepService extends BaseStepService { @Autowired @@ -61,30 +71,90 @@ public class MesAssemblyShowSortStepService extends BaseStepService { //获取上下文装配件数据信息集合 List productionAssemblyContextList = productionDispatchContextStepService.getAssemblyDataContext(reqBean, workCenter); - //存在装配件数据信息, 直接展示 -// if (!CollectionUtils.isEmpty(productionAssemblyContextList)) return showProductionAssembly(); + //搜集当前设备对应的装配件数据信息 + productionAssemblyContextList = filterProductionAssemblyContextList(cellEquipContext, productionAssemblyContextList); + + //不存在装配件数据信息则进行查询 + if (CollectionUtils.isEmpty(productionAssemblyContextList)) productionAssemblyContextList = doHandleAssemblyData(reqBean, resultBean, stepResult, cellEquipContext); + + if (!stepResult.isCompleted()) return stepResult; + + if (CollectionUtils.isEmpty(productionAssemblyContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前未查询到相关的装配件清单"); + + //显示装配件信息 + showProductionAssembly(reqBean, resultBean, getAssemblyShowContextList(productionAssemblyContextList)); + + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "显示装配件扫描项成功!"); + + } + + private List doHandleAssemblyData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesCellEquipContext cellEquipContext) { //从上下文中取出生产工单数据信息集合 List workOrderContextList = productionDispatchContextStepService.getWorkOrderDataContext(reqBean); //上下文中不存在生产工单数据信息集合 - if (CollectionUtils.isEmpty(workOrderContextList)) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在生产工单数据信息,请重新扫描加工单!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); + if (CollectionUtils.isEmpty(workOrderContextList)) execNonCompleteAndSendMsg(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在生产工单数据信息,请重新扫描加工单!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); //获取排序线的装配件清单 - productionAssemblyContextList = assemblyExtService.getProductionAssemblySortContextList( + List productionAssemblyContextList = assemblyExtService.getProductionAssemblySortContextList( new MesProductionAssemblySortContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode()), workOrderContextList.stream().filter(o -> null != o).map(MesWorkOrderContext::getWorkOrderNo).collect(Collectors.toList())); - if (CollectionUtils.isEmpty(productionAssemblyContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, ""); - + //保存设备当前一轮工序的装配件清单信息 + if (!CollectionUtils.isEmpty(productionAssemblyContextList)) productionDispatchContextStepService.saveAssemblyDataContext(reqBean, productionAssemblyContextList); + return filterProductionAssemblyContextList(cellEquipContext, productionAssemblyContextList); + } - return stepResult; - + private List filterProductionAssemblyContextList(MesCellEquipContext cellEquipContext, List productionAssemblyContextList) { + return CollectionUtils.isEmpty(productionAssemblyContextList) ? null : + productionAssemblyContextList.stream().filter(o -> (null != o && o.getEquipmentCode().equals(cellEquipContext.getEquipmentCode()))).collect(Collectors.toList()); } + private List getAssemblyShowContextList(List productionAssemblyContextList) { + List assemblyShowContextList = new ArrayList<>(); + Map> assemblyMap = productionAssemblyContextList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesProductionAssemblyContext::getWorkOrderNo)); + for (Map.Entry> entry : assemblyMap.entrySet()) { + if (null == entry) continue; + List itemList = new ArrayList<>(); + for (MesProductionAssemblyContext item : entry.getValue()) { + if (null == item) continue; + itemList.add(assemblyShowContext(item)); + } + itemList = itemList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList()); + assemblyShowContextList.addAll(itemList); + } + return assemblyShowContextList; + } + private void showProductionAssembly(StationRequestBean reqBean, StationResultBean resultBean, List assemblyShowContextList) { + List attrBeanList = new ArrayList<>(); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.INDEX, LocaleUtil.transferLanguage(reqBean.getUserInfo(), "序号")); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.PART_NO, LocaleUtil.transferLanguage(reqBean.getUserInfo(), "零件编码")); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NO, LocaleUtil.transferLanguage(reqBean.getUserInfo(), "原料编码")); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NAME, LocaleUtil.transferLanguage(reqBean.getUserInfo(), "原料名称")); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_SN, LocaleUtil.transferLanguage(reqBean.getUserInfo(), "原料条码")); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_STATUS_NAME, LocaleUtil.transferLanguage(reqBean.getUserInfo(), "是否装配")); + + resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CUSTOM_CONTENT.getValue()); + resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.TABLE.getValue()); + resultBean.setResultList(assemblyShowContextList); + resultBean.setDataAttrList(attrBeanList); + this.sendMessage(reqBean, resultBean); + } + private MesAssemblyShowContext assemblyShowContext(MesProductionAssemblyContext o) { + MesAssemblyShowContext assemblyShowContext = new MesAssemblyShowContext(); + BeanUtils.copyProperties(o, assemblyShowContext); + if (StringUtils.isEmpty(assemblyShowContext.getRouteSeq())) assemblyShowContext.setRouteSeq(MesPcnExtConstWords.ZERO); + if (MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue() == assemblyShowContext.getAssemblyStatus() && (MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_50.getValue() == assemblyShowContext.getMatchType() || + MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_60.getValue() == assemblyShowContext.getMatchType())) assemblyShowContext.setAssemblyStatus(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()); + assemblyShowContext.setAssemblyStatusName(MesExtEnumUtil.ASSEMBLY_STATUS.valueOfDescription(o.getAssemblyStatus())); + if (MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue() != assemblyShowContext.getAssemblyStatus()) + assemblyShowContext.setColor(StringUtils.isEmpty(assemblyShowContext.getShowColor()) ? MesExtEnumUtil.COLOR.GREEN.getValue() : assemblyShowContext.getShowColor()); + return assemblyShowContext; + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowStepService.java index b768456..fbafdbb 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowStepService.java @@ -1,102 +1,52 @@ -//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -// -//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService; -//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.mes.pcn.serviceimpl.fsm.BaseStepService; -//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.util.MesExtEnumUtil; -//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.List; -//import java.util.stream.Collectors; -// -///** -// * @Description : 显示装配件扫描项工步 -// * @Author : wangjie -// **/ -//@Slf4j -//@Service("mesAssemblyShowStepService") -//public class MesAssemblyShowStepService extends BaseStepService { -// -// @Autowired -// private IMesProductionProcessContextStepService productionProcessContextStepService; -// -// @Autowired -// private IMesProductionDispatchContextStepService productionDispatchContextStepService; -// -// @Autowired -// private IMesProdRuleCfgExtService prodRuleCfgExtService; -// -// @Autowired -// private IMesAssemblyExtService assemblyExtService; -// -// @Override -// public StepResult execute(StationRequestBean reqBean) { -// -// StationResultBean resultBean = new StationResultBean(); -// -// StepResult stepResult = StepResult.getSuccessComplete(); -// -// //获取上下文信息 -// MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); -// -// //配置错误 抛出异常 -// if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); -// -// //从上下文中取出生产线对象 -// MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); -// -// //从上下文中取出生产线对象 -// MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); -// -// //获取排序线的装配件清单 -// if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workCenter.getCenterType()) return doAssemblyShow2Sort(reqBean, resultBean, stepResult, productionProcessContext, workCenter, cellEquipContext); -// -// //验证上下文是否存在装配件数据信息集合 -// List productionAssemblyContextList = productionDispatchContextStepService.getAssemblyDataList(workCenter); -// -// -// -// -// -// -// -// -// //获取非排序线的装配件清单 -// return doAssemblyShow2Nosort(reqBean, resultBean, stepResult, productionProcessContext, workCenter, cellEquipContext); -// -// } -// -// //获取排序线的装配件清单 -// private StepResult doAssemblyShow2Sort(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesWorkCenter workCenter, MesCellEquipContext cellEquipContext) { -// -// //从上下文中取出生产工单数据信息集合 -// List workOrderContextList = -// -// //上下文中不存在生产工单数据信息集合 -// if (CollectionUtils.isEmpty(workOrderContextList)) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在生产工单数据信息,请重新扫描加工单!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); -// -// List productionAssemblyContextList = assemblyExtService.getProductionAssemblySortContextList( -// new MesProductionAssemblySortContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode()), workOrderContextList.stream().filter(o -> null != o).map(MesWorkOrderContext::getWorkOrderNo).collect(Collectors.toList())); -// -// if (CollectionUtils.isEmpty(productionAssemblyContextList)) return stepResult; -// -// //设备 -// -// -// return stepResult; -// -// } -// -// -// -//} +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.context.MesProductionProcessContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +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.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 显示装配件扫描项工步 + * @Author : wangjie + **/ +@Slf4j +@Service("mesAssemblyShowStepService") +public class MesAssemblyShowStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); + + //配置错误 抛出异常 + if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); + + //从上下文中取出生产线对象 + MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); + + //获取排序线的装配件清单 + if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workCenter.getCenterType()) return ((IStepService) SpringContextsUtil.getBean("mesAssemblyShowSortStepService")).execute(reqBean); + + //获取非排序线的装配件清单 + return ((IStepService) SpringContextsUtil.getBean("mesAssemblyShowNosortStepService")).execute(reqBean); + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java new file mode 100644 index 0000000..d30352c --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java @@ -0,0 +1,46 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.context; + +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import java.io.Serializable; + +/** + * 生产过程上下文对象-装配件清单信息 + */ +@Data +public class MesAssemblyShowContext implements Serializable { + + private static final long serialVersionUID = -3650546953572889323L; + + @ApiParam("零件编码") + private String partNo; + + @ApiParam("装配件零件编码") + private String assemblyPartNo; + + @ApiParam("装配件零件名称") + private String assemblyPartName; + + @ApiParam("装配件条码") + private String assemblySn; + + @ApiParam(value = "装备序号") + private Integer routeSeq; + + @ApiParam("显示颜色") + private String color; + + @ApiParam(value = "显示颜色(配置)") + private String showColor; + + @ApiParam("装配零件状态") + private Integer assemblyStatus; + + @ApiParam("装配件条码确认方式") + private String matchType; + + @ApiParam("装配零件状态") + private String assemblyStatusName; + +} 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 1d54fd6..f683bd2 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 @@ -16,7 +16,7 @@ public class MesProductionAssemblyContext implements Serializable { @ApiParam("加工记录ID") public Long productionRecordId; - @ApiParam("装配件零件号") + @ApiParam("装配件零件编码") public String assemblyPartNo; @ApiParam("装配件零件名称") diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 5fe1554..28aeb06 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -48,6 +48,10 @@ public class MesPcnExtConstWords { public static final String MODIFY_USER = "modifyUser"; // 修改人 public static final String USER_INFO = "userInfo"; + // 零件编码 + public static final String PART_NO = "partNo"; + // 零件名称 + public static final String PART_NAME = "partName"; // 设备代码 public static final String EQUIPMENT_CODE = "equipmentCode"; // 设备ID @@ -72,6 +76,18 @@ public class MesPcnExtConstWords { public static final String SOURCE_ID = "sourceId"; // 装配件绑定状态 public static final String ASSEMBLY_STATUS = "assemblyStatus"; + // 装配件绑定状态 + public static final String ASSEMBLY_STATUS_NAME = "assemblyStatusName"; + // 装配件零件编码 + public static final String ASSEMBLY_PART_NO = "assemblyPartNo"; + // 装配件零件名称 + public static final String ASSEMBLY_PART_NAME = "assemblyPartName"; + // 装配件条码 + public static final String ASSEMBLY_SN = "assemblySn"; + // 装备序号 + public static final String ROUTE_SEQ = "routeSeq"; + // 序号 + public static final String INDEX = "index";