From 869132254eadcebec485a22f0b7ddee766cec5b8 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 11 Jul 2024 19:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E9=85=8D=E4=BB=B6=E5=8F=91=E9=80=81?= =?UTF-8?q?=E7=88=86=E7=82=B8=E5=9B=BE=20=E9=9F=B3=E9=A2=91=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=B0=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesAssemblyExtService.java | 50 +++++++++++++++- .../step/MesAssemblyScanStepService.java | 68 ++++++++++++++++++++++ .../step/MesAssemblyShowNosortStepService.java | 3 +- .../step/MesAssemblyShowSortStepService.java | 3 +- .../step/MesProdCraftRouteCheckStepService.java | 6 +- .../MesProductionProcessMonitorService.java | 4 +- .../pojo/context/MesProductionAssemblyContext.java | 17 ++++-- .../MesProductionAssemblyNosortContext.java | 14 +++++ .../context/MesProductionAssemblySortContext.java | 14 +++++ .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 9 ++- 10 files changed, 173 insertions(+), 15 deletions(-) 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 623afd3..05ec302 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 @@ -10,9 +10,11 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesAssemblyNosortCfg; +import cn.estsh.i3plus.pojo.mes.bean.MesFile; import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderAssembly; import cn.estsh.i3plus.pojo.mes.repository.MesAssemblyNosortCfgRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesFileRepository; import cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderAssemblyRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -43,6 +45,9 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { @Autowired private IMesProductionCustomContextStepService productionCustomContextStepService; + @Autowired + private MesFileRepository fileRepository; + //【排序线】获取生产工单装配件绑定记录 @Override public List getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext) { @@ -57,13 +62,16 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; + //获取排序FILE文件URL + Map fileMap = getFileMap(prodRuleContext.getOrganizeCode(), filterSortFileIdList(workOrderAssemblyList)); + //获取装配件绑定记录 Map productionAssemblyMap = groupProductionAssembly(filterProductionAssemblyList(getProductionAssemblyList( prodRuleContext.getOrganizeCode(), MesExtEnumUtil.PRODUCTION_ASSEMBLY_DATA_SOURCE.SORT.getValue(), workOrderAssemblyList.stream().filter(o -> null != o).map(MesWorkOrderAssembly::getId).collect(Collectors.toList())))); List productionAssemblySortContextList = new ArrayList<>(); - workOrderAssemblyList.forEach(o -> productionAssemblySortContextList.add(new MesProductionAssemblySortContext().copy(o, getProductionAssembly(productionAssemblyMap, o.getId())))); + workOrderAssemblyList.forEach(o -> productionAssemblySortContextList.add(new MesProductionAssemblySortContext().copy(o, getProductionAssembly(productionAssemblyMap, o.getId())).fileUrl(fileMap))); return productionAssemblySortContextList; } @@ -113,11 +121,14 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { if (CollectionUtils.isEmpty(assemblyNosortCfgList)) return null; + //获取非排序FILE文件URL + Map fileMap = getFileMap(prodRuleContext.getOrganizeCode(), filterNosortFileIdList(assemblyNosortCfgList)); + List productionAssemblyNosortContextList = new ArrayList<>(); //遍历装配件规则, 实例化装配件清单对象, 判断是否配置可复用 assemblyNosortCfgList.forEach(o -> productionAssemblyNosortContextList.add( - new MesProductionAssemblyNosortContext().copy(prodRuleContext, o, getRepeatAssemblySn(prodRuleContext.getOrganizeCode(), prodRuleContext.getWorkCenterCode(), prodRuleContext.getWorkCellCode(), o))) + new MesProductionAssemblyNosortContext().copy(prodRuleContext, o, getRepeatAssemblySn(prodRuleContext.getOrganizeCode(), prodRuleContext.getWorkCenterCode(), prodRuleContext.getWorkCellCode(), o)).fileUrl(fileMap)) ); return productionAssemblyNosortContextList; @@ -200,4 +211,39 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { } + //搜集非排序文件ID集合 + private List filterNosortFileIdList(List assemblyNosortCfgList) { + if (CollectionUtils.isEmpty(assemblyNosortCfgList)) return null; + List imageFileIdList = assemblyNosortCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getImageFileId()))).map(MesAssemblyNosortCfg::getImageFileId).collect(Collectors.toList()); + List audioFileIdList = assemblyNosortCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getAudioFileId()))).map(MesAssemblyNosortCfg::getAudioFileId).collect(Collectors.toList()); + return filterFileIdList(imageFileIdList, audioFileIdList); + } + + //搜集排序文件ID集合 + private List filterSortFileIdList(List workOrderAssemblyList) { + if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; + List imageFileIdList = workOrderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getImageFileId()))).map(MesWorkOrderAssembly::getImageFileId).collect(Collectors.toList()); + List audioFileIdList = workOrderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getAudioFileId()))).map(MesWorkOrderAssembly::getAudioFileId).collect(Collectors.toList()); + return filterFileIdList(imageFileIdList, audioFileIdList); + } + + //搜集文件ID集合 + private List filterFileIdList(List imageFileIdList, List audioFileIdList) { + if (!CollectionUtils.isEmpty(imageFileIdList) && CollectionUtils.isEmpty(audioFileIdList)) return imageFileIdList; + if (CollectionUtils.isEmpty(imageFileIdList) && !CollectionUtils.isEmpty(audioFileIdList)) return audioFileIdList; + imageFileIdList.addAll(audioFileIdList); + return imageFileIdList; + } + + //获取FILE文件URL + private Map getFileMap(String organizeCode, List fileIdList) { + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(fileIdList)) return null; + fileIdList = fileIdList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (fileIdList.size() == 1) DdlPreparedPack.getNumEqualPack(fileIdList.get(0), MesPcnExtConstWords.ID, packBean); + DdlPreparedPack.getInPackList(fileIdList, MesPcnExtConstWords.ID, packBean); + List fileDbList = fileRepository.findByHqlWhere(packBean); + return CollectionUtils.isEmpty(fileIdList) ? null : fileDbList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getFileUrl()))).collect(Collectors.toMap(MesFile::getId, MesFile::getFileUrl)); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java index f632fba..849f311 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java @@ -7,11 +7,14 @@ 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.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.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 com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -74,6 +77,9 @@ public class MesAssemblyScanStepService extends BaseStepService { if (!CollectionUtils.isEmpty(prodRuleContextList) && !checkIsNeedScanAssembly(prodRuleContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前上下文中的加工规则未配置装配件扫描项,当前无需扫描装配件条码!"); + //处理装配件的装配爆炸图和音频文件 + doHandleAssemblyFile(reqBean, productionProcessContext.getWorkCenter(), prodRuleContextList); + //验证当前是否需要读装配件条码: 验证是否存在待绑定数据 【当前验证只能对内部触发生效】 if (!CollectionUtils.isEmpty(prodRuleContextList) && !hasUnBindAssembly(prodRuleContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前上下文中的加工规则对应的装配件清单已扫描完毕,当前无需扫描装配件条码!"); @@ -129,6 +135,66 @@ public class MesAssemblyScanStepService extends BaseStepService { } + //处理装配件的装配爆炸图和音频文件 + private void doHandleAssemblyFile(StationRequestBean reqBean, MesWorkCenter workCenter, List prodRuleContextList) { + Boolean isSendFile = false; + Boolean isBreakLoop = false; + LOOP: + for (MesProdRuleContext prodRuleContext : prodRuleContextList) { + if (null == prodRuleContext || StringUtils.isEmpty(prodRuleContext.getAssemblyDataJson())) continue; + if (MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue() == workCenter.getCenterType()) { + List productionAssemblyNosortContextList = prodRuleContext.getNosortAssemblyDataContext(); + for (MesProductionAssemblyNosortContext productionAssemblyNosortContext : productionAssemblyNosortContextList) { + if (null == productionAssemblyNosortContext || + productionAssemblyNosortContext.getFileIsFinished().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || + productionAssemblyNosortContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_60.getValue()) == 0 || + (StringUtils.isEmpty(productionAssemblyNosortContext.getImageFileUrl()) && StringUtils.isEmpty(productionAssemblyNosortContext.getAudioFileUrl()))) continue; + //不扫描的默认直接直接标记绿色已装配, 但是文件也需要发送 + if (productionAssemblyNosortContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_50.getValue()) != 0) isBreakLoop = true; + isSendFile = true; + //发送文件到客户端 + sendFile(reqBean, productionAssemblyNosortContext.fileIsFinished()); + if (isBreakLoop) break LOOP; + } + prodRuleContext.assemblyDataJson(productionAssemblyNosortContextList); + } else { + List productionAssemblySortContextList = prodRuleContext.getSortAssemblyDataContext(); + for (MesProductionAssemblySortContext productionAssemblySortContext : productionAssemblySortContextList) { + if (null == productionAssemblySortContext || + productionAssemblySortContext.getFileIsFinished().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || + productionAssemblySortContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_60.getValue()) == 0 || + (StringUtils.isEmpty(productionAssemblySortContext.getImageFileUrl()) && StringUtils.isEmpty(productionAssemblySortContext.getAudioFileUrl()))) continue; + //不扫描的默认直接直接标记绿色已装配, 但是文件也需要发送 + if (productionAssemblySortContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_50.getValue()) != 0) isBreakLoop = true; + isSendFile = true; + //发送文件到客户端 + sendFile(reqBean, productionAssemblySortContext.fileIsFinished()); + if (isBreakLoop) break LOOP; + } + prodRuleContext.assemblyDataJson(productionAssemblySortContextList); + } + } + //保存上下文产品加工规则信息集合 + if (isSendFile) productionDispatchContextStepService.saveProdRuleDataContext(reqBean, prodRuleContextList); + } + + //发送文件到客户端 + private void sendFile(StationRequestBean reqBean, MesProductionAssemblyContext productionAssemblyContext) { + if (!StringUtils.isEmpty(productionAssemblyContext.getImageFileUrl())) + this.sendMessage(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()) + .busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CUSTOM_CONTENT.getValue()) + .dataType(MesPcnEnumUtil.STATION_DATA_TYPE.IMAGE.getValue()) + .customPageName(MesPcnExtConstWords.CUSTOM_PAGE_NAME_ASSEMBLY) + .message(String.format("装配件信息来源ID[%s],装配件爆炸图URL[%s]", productionAssemblyContext.getSourceId(), productionAssemblyContext.getImageFileUrl())) + .resultObj(new JSONObject().put(MesPcnExtConstWords.URL, productionAssemblyContext.getImageFileUrl()))); + if (!StringUtils.isEmpty(productionAssemblyContext.getAudioFileUrl())) + this.sendMessage(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()) + .busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue()) + .dataType(MesPcnEnumUtil.STATION_DATA_TYPE.SOUND.getValue()) + .message(String.format("装配件信息来源ID[%s],装配件音频文件URL[%s]", productionAssemblyContext.getSourceId(), productionAssemblyContext.getAudioFileUrl())) + .resultObj(new JSONObject().put(MesPcnExtConstWords.URL, productionAssemblyContext.getAudioFileUrl()))); + } + //判断是否存在装配件清单 private Boolean checkIsNeedScanAssembly(List prodRuleContextList) { Optional optional = prodRuleContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getAssemblyDataJson()))).findFirst(); @@ -143,12 +209,14 @@ public class MesAssemblyScanStepService extends BaseStepService { List productionAssemblyNosortContextList = prodRuleContext.getNosortAssemblyDataContext(); Optional optional = productionAssemblyNosortContextList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue()) == 0)).findFirst(); if (null == optional || !optional.isPresent()) continue; + hasUnBindAssembly = true; break; } return hasUnBindAssembly; } + //封装当前扫描的装配件信息 private List getAssemblySnJson(StationRequestBean reqBean, String scanInfo) { List equipVariableCollectContextList = new ArrayList<>(); 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 index 2937de2..66352b9 100644 --- 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 @@ -437,7 +437,8 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { if (CollectionUtils.isEmpty(productionAssemblyContextList)) return null; List assemblyShowContextList = new ArrayList<>(); for (MesProductionAssemblyContext item : productionAssemblyContextList) { - if (null == item) continue; + //仅目视的不显示出来 + if (null == item || MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_60.getValue() == item.getMatchType()) continue; assemblyShowContextList.add(assemblyShowContext(item)); } 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 a639f10..6dea070 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 @@ -164,7 +164,8 @@ public class MesAssemblyShowSortStepService extends BaseStepService { if (CollectionUtils.isEmpty(productionAssemblyContextList)) return null; List assemblyShowContextList = new ArrayList<>(); for (MesProductionAssemblyContext item : productionAssemblyContextList) { - if (null == item) continue; + //仅目视的不显示出来 + if (null == item || MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_60.getValue() == item.getMatchType()) continue; assemblyShowContextList.add(assemblyShowContext(item)); } assemblyShowContextList = assemblyShowContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java index 1775db6..1f83a75 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java @@ -123,9 +123,9 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService { } //查询工艺路线数据 - private void doHandleProdCraftData(StationRequestBean reqBean, MesWorkCenter workCenter, String o, Map> craftRouteDataMap) { - List craftRouteDetailList = fsmRouteDataService.doHandleProdCraftData(reqBean, workCenter.getCenterType(), o); - if (!CollectionUtils.isEmpty(craftRouteDetailList)) craftRouteDataMap.put(o, craftRouteDetailList); + private void doHandleProdCraftData(StationRequestBean reqBean, MesWorkCenter workCenter, String partNo, Map> craftRouteDataMap) { + List craftRouteDetailList = fsmRouteDataService.doHandleProdCraftData(reqBean, workCenter.getCenterType(), partNo); + if (!CollectionUtils.isEmpty(craftRouteDetailList)) craftRouteDataMap.put(partNo, craftRouteDetailList); } //验证是否存在工艺强过码, 存在则保存 并返回强过的主条码 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java index c6e6f74..e859833 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java @@ -60,7 +60,7 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic //客户端下线 @Override public Boolean doOffLine(StationRequestBean requestBean) { - //删除当前状态点 + //删除当前工步集 fsmCommonService.doFlushCache(requestBean); //清除上下文中的所有业务数据 productionDispatchContextStepService.doFlushProductionDispatchContext(requestBean); @@ -69,7 +69,7 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic return true; } - //工位流程重置 【父类已经调用: 删除当前状态点; 清除工位工序流程; TASK_COMPLETE】 + //工位流程重置 【父类已经调用: 删除当前工步集; 清除工位工序流程; TASK_COMPLETE】 @Override public Boolean fsmReset(StationRequestBean requestBean) { //清除上下文中的所有业务数据 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 02a5dbe..f303f91 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 @@ -15,7 +15,7 @@ public class MesProductionAssemblyContext implements Serializable { private static final long serialVersionUID = 2382117884422723639L; @ApiParam("生产工单号") - private String workOrderNo; + public String workOrderNo; @ApiParam("装配件零件编码") public String assemblyPartNo; @@ -66,13 +66,22 @@ public class MesProductionAssemblyContext implements Serializable { public Integer routeSeq; @ApiParam(value = "装配爆炸图FID") - private Long imageFileId; + public Long imageFileId; @ApiParam(value = "音频文件") - private Long audioFileId; + public Long audioFileId; + + @ApiParam(value = "装配爆炸图URL") + public String imageFileUrl; + + @ApiParam(value = "音频文件URL") + public String audioFileUrl; + + @ApiParam(value = "装配爆炸图URL") + public Integer fileIsFinished = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); @ApiParam("前道工艺代码") - private String preCraftCode; + public String preCraftCode; @ApiParam("组织代码") public String organizeCode; 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 0cd466f..102e5f5 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 @@ -7,9 +7,11 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import io.swagger.annotations.ApiParam; import lombok.Data; import org.springframework.beans.BeanUtils; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.io.Serializable; +import java.util.Map; /** * 生产过程上下文对象-装配件清单信息(非排序) @@ -102,4 +104,16 @@ public class MesProductionAssemblyNosortContext extends MesProductionAssemblyCon return this; } + public MesProductionAssemblyNosortContext fileUrl(Map fileMap) { + if (CollectionUtils.isEmpty(fileMap)) return this; + if (!StringUtils.isEmpty(this.imageFileId)) this.imageFileUrl= fileMap.get(this.imageFileId); + if (!StringUtils.isEmpty(this.audioFileId)) this.audioFileUrl= fileMap.get(this.audioFileId); + return this; + } + + public MesProductionAssemblyNosortContext fileIsFinished() { + this.fileIsFinished = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + return this; + } + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java index bb7c87d..10239f7 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java @@ -8,9 +8,11 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import io.swagger.annotations.ApiParam; import lombok.Data; import org.springframework.beans.BeanUtils; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.io.Serializable; +import java.util.Map; /** * 生产过程上下文对象-装配件清单信息(排序) @@ -132,4 +134,16 @@ public class MesProductionAssemblySortContext extends MesProductionAssemblyConte return this; } + public MesProductionAssemblySortContext fileUrl(Map fileMap) { + if (CollectionUtils.isEmpty(fileMap)) return this; + if (!StringUtils.isEmpty(this.imageFileId)) this.imageFileUrl= fileMap.get(this.imageFileId); + if (!StringUtils.isEmpty(this.audioFileId)) this.audioFileUrl= fileMap.get(this.audioFileId); + return this; + } + + public MesProductionAssemblySortContext fileIsFinished() { + this.fileIsFinished = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + return this; + } + } 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 1a7c371..a61e272 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 @@ -151,6 +151,8 @@ public class MesPcnExtConstWords { public static final String STEP_CODE = "stepCode"; // 生产顺序号 public static final String PRODUCE_SEQ = "produceSeq"; + // URL + public static final String URL = "url"; // 时间格式 public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; @@ -271,12 +273,15 @@ public class MesPcnExtConstWords { //过程条码默认生成规则 public static final String DEFAULT_SERIAL_NUMBER_RULE = "DEFAULT_SERIAL_NUMBER_RULE"; - // 定制页面名称(默认) + // 定制页面名称(默认 产出零件) public static final String CUSTOM_PAGE_NAME_DEFAULT = "CUSTOM_PAGE_NAME_DEFAULT"; - // 定制页面名称(默认) + // 定制页面名称(工位) public static final String CUSTOM_PAGE_NAME_WORK_CELL = "CUSTOM_PAGE_NAME_WORK_CELL"; + // 定制页面名称(装配件) + public static final String CUSTOM_PAGE_NAME_ASSEMBLY = "CUSTOM_PAGE_NAME_ASSEMBLY"; + // 上个扫描信息 public static final String CLIENT_INFO = "clientInfo"; // 上个扫描信息