From 103f2dcd07503cbb03d047a7a26cf5156ce2187d Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 18 Dec 2024 16:49:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?44399=20=E5=B7=A5=E4=BD=8D=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E5=B7=A5=E4=BD=8D=E5=9B=BE=E7=9A=84file=5FID=E5=8F=96?= =?UTF-8?q?=20mes=5Fmedia=5Ffile=5Fcfg=E8=A1=A8=E7=9A=84ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/api/base/IMesMediaFileCfgService.java | 36 +++++++++++ .../serviceimpl/base/MesMediaFileCfgService.java | 72 ++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesMediaFileCfgService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesMediaFileCfgService.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesMediaFileCfgService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesMediaFileCfgService.java new file mode 100644 index 0000000..e518b56 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesMediaFileCfgService.java @@ -0,0 +1,36 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesMediaFileCfg; +import io.swagger.annotations.ApiOperation; + +import java.util.List; +import java.util.Map; + +/** + * @Description : 媒体文件维护信息 + * @Reference : + * @Author : wangjie + * @CreateDate 2024/6/13 15:18 + * @Modify: + **/ +public interface IMesMediaFileCfgService { + + @ApiOperation(value = "根据ID查询资源文件信息") + MesMediaFileCfg getMediaFileCfg(String organizeCode, Long id); + + @ApiOperation(value = "根据ID查询资源文件信息") + MesMediaFileCfg getMediaFileCfg(String organizeCode, String idStr); + + @ApiOperation(value = "根据ID查询资源文件信息") + String getMediaFileUrl(String organizeCode, Long id); + + @ApiOperation(value = "根据ID查询资源文件信息") + String getMediaFileUrl(String organizeCode, String idStr); + + @ApiOperation(value = "根据ID集合查询资源文件信息") + List getMediaFileCfgList(String organizeCode, List idList); + + @ApiOperation(value = "根据ID集合查询资源文件信息") + Map getMediaFileCfgMap(String organizeCode, List idList); + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesMediaFileCfgService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesMediaFileCfgService.java new file mode 100644 index 0000000..4246e2a --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesMediaFileCfgService.java @@ -0,0 +1,72 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMediaFileCfgService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +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.MesMediaFileCfg; +import cn.estsh.i3plus.pojo.mes.repository.MesMediaFileCfgRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@Service +public class MesMediaFileCfgService implements IMesMediaFileCfgService { + + @Autowired + private MesMediaFileCfgRepository mediaFileCfgRepository; + + @Override + public MesMediaFileCfg getMediaFileCfg(String organizeCode, Long id) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(id)) return null; + MesMediaFileCfg mediaFileCfg = mediaFileCfgRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.ID}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), id}); + return (null == mediaFileCfg || StringUtils.isEmpty(mediaFileCfg.getFileUrl())) ? null : mediaFileCfg; + } + + @Override + public MesMediaFileCfg getMediaFileCfg(String organizeCode, String idStr) { + Long id = null; + try { id = Long.valueOf(idStr);} catch (NumberFormatException e) {} + return getMediaFileCfg(organizeCode, id); + } + + @Override + public String getMediaFileUrl(String organizeCode, Long id) { + MesMediaFileCfg mediaFileCfg = getMediaFileCfg(organizeCode, id); + return (null == mediaFileCfg || StringUtils.isEmpty(mediaFileCfg.getFileUrl())) ? null : mediaFileCfg.getFileUrl(); + } + + @Override + public String getMediaFileUrl(String organizeCode, String idStr) { + MesMediaFileCfg mediaFileCfg = getMediaFileCfg(organizeCode, idStr); + return (null == mediaFileCfg || StringUtils.isEmpty(mediaFileCfg.getFileUrl())) ? null : mediaFileCfg.getFileUrl(); + } + + @Override + public List getMediaFileCfgList(String organizeCode, List idList) { + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(idList)) return null; + if (idList.size() != 1) idList = idList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.ID, packBean); + else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean); + return mediaFileCfgRepository.findByHqlWhere(packBean); + } + + @Override + public Map getMediaFileCfgMap(String organizeCode, List idList) { + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(idList)) return null; + List mediaFileCfgList = getMediaFileCfgList(organizeCode, idList); + if (CollectionUtils.isEmpty(mediaFileCfgList)) return null; + return mediaFileCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getFileUrl()))).collect(Collectors.toMap(MesMediaFileCfg::getId, MesMediaFileCfg::getFileUrl)); + } +} From 4a3e42f31f26652454dffc8c73200eeca27f4304 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 18 Dec 2024 18:41:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?44399=20=E5=B7=A5=E4=BD=8D=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E5=B7=A5=E4=BD=8D=E5=9B=BE=E7=9A=84file=5FID=E5=8F=96?= =?UTF-8?q?=20mes=5Fmedia=5Ffile=5Fcfg=E8=A1=A8=E7=9A=84ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesAssemblyExtService.java | 23 ++++++++-------------- .../station/MesProductionNoSortModuleService.java | 16 +++------------ .../MesFunctionProductionStatisticsService.java | 12 +++-------- 3 files changed, 14 insertions(+), 37 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 87fb10b..0225acd 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 @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMediaFileCfgService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; @@ -11,7 +12,10 @@ 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.*; -import cn.estsh.i3plus.pojo.mes.repository.*; +import cn.estsh.i3plus.pojo.mes.repository.MesAssemblyNosortCfgRepository; +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 lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -47,7 +51,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { private IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired - private MesFileRepository fileRepository; + private IMesMediaFileCfgService mediaFileCfgService; //【排序线】获取生产工单装配件绑定记录 @Override @@ -69,7 +73,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_20.getValue()) == 0))).collect(Collectors.toList()); //获取排序FILE文件URL - Map fileMap = getFileMap(prodRuleContext.getOrganizeCode(), filterSortFileIdList(unBindList)); + Map fileMap = mediaFileCfgService.getMediaFileCfgMap(prodRuleContext.getOrganizeCode(), filterSortFileIdList(unBindList)); List productionAssemblySortContextList = new ArrayList<>(); @@ -177,7 +181,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { if (CollectionUtils.isEmpty(assemblyNosortCfgList)) return null; //获取非排序FILE文件URL - Map fileMap = getFileMap(prodRuleContext.getOrganizeCode(), filterNosortFileIdList(assemblyNosortCfgList)); + Map fileMap = mediaFileCfgService.getMediaFileCfgMap(prodRuleContext.getOrganizeCode(), filterNosortFileIdList(assemblyNosortCfgList)); List productionAssemblyNosortContextList = new ArrayList<>(); @@ -271,17 +275,6 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { 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)); - } - //根据生产工单装配件清单ID分组 private Map> groupProductionAssembly(List productionAssemblyList) { return CollectionUtils.isEmpty(productionAssemblyList) ? null : diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java index c6011f2..5dcca12 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java @@ -1,35 +1,29 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMediaFileCfgService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdShiftRecordService; 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.api.busi.IMesWorkOrderExtService; -import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function.MesFunctionProductionStatisticsService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseModuleService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; -import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesFile; import cn.estsh.i3plus.pojo.mes.bean.MesStateMachineStatus; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; -import cn.estsh.i3plus.pojo.mes.repository.MesFileRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import com.alibaba.fastjson.JSONObject; -import com.google.common.base.Objects; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -39,7 +33,6 @@ import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.StringJoiner; /** * @Description : 展示组件:非排序生产 @@ -65,7 +58,7 @@ public class MesProductionNoSortModuleService extends BaseModuleService { private IMesWorkOrderExtService workOrderExtService; @Autowired - private MesFileRepository mesFileRepository; + private IMesMediaFileCfgService mediaFileCfgService; @Override public void init(StationRequestBean reqBean) { @@ -165,10 +158,7 @@ public class MesProductionNoSortModuleService extends BaseModuleService { //判断是否配置的是展示文件 String url = null; if (!StringUtils.isEmpty(workCell.getIsShowMsg()) && !StringUtils.isEmpty(MesExtEnumUtil.WORK_FILE_TYPE.valueOfDescription(workCell.getIsShowMsg()))) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(); - DdlPreparedPack.getNumEqualPack(Long.parseLong(workCell.getFileId()), MesPcnExtConstWords.ID, packBean); - MesFile mesFile = mesFileRepository.getByProperty(packBean); - url = (null != mesFile && !StringUtils.isEmpty(mesFile.getFileUrl())) ? mesFile.getFileUrl() : null; + url = mediaFileCfgService.getMediaFileUrl(reqBean.getOrganizeCode(), workCell.getFileId()); if (!StringUtils.isEmpty(url)) { JSONObject reqJson = new JSONObject(); if (workCell.getIsShowMsg().compareTo(MesExtEnumUtil.WORK_FILE_TYPE.WORK_CELL_PICTURE.getValue()) == 0) resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.IMAGE.getValue()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionProductionStatisticsService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionProductionStatisticsService.java index a7a9ced..ea94a17 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionProductionStatisticsService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionProductionStatisticsService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMediaFileCfgService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdShiftRecordService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; @@ -7,17 +8,13 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; -import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesFile; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; -import cn.estsh.i3plus.pojo.mes.repository.MesFileRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,7 +32,7 @@ public class MesFunctionProductionStatisticsService extends BaseSwsService imple private IMesProductionCustomContextStepService productionCustomContextStepService; @Autowired - private MesFileRepository mesFileRepository; + private IMesMediaFileCfgService mediaFileCfgService; @Autowired private IMesProductionProcessContextStepService productionProcessContextStepService; @@ -68,10 +65,7 @@ public class MesFunctionProductionStatisticsService extends BaseSwsService imple //判断是否配置的是展示文件 String url = null; if (!StringUtils.isEmpty(workCell.getIsShowMsg()) && !StringUtils.isEmpty(MesExtEnumUtil.WORK_FILE_TYPE.valueOfDescription(workCell.getIsShowMsg()))) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(); - DdlPreparedPack.getNumEqualPack(Long.parseLong(workCell.getFileId()), MesPcnExtConstWords.ID, packBean); - MesFile mesFile = mesFileRepository.getByProperty(packBean); - url = (null != mesFile && !StringUtils.isEmpty(mesFile.getFileUrl())) ? mesFile.getFileUrl() : null; + url = mediaFileCfgService.getMediaFileUrl(reqBean.getOrganizeCode(), workCell.getFileId()); } //如果不存在文件, 且当前工位配置需要统计加工数的情况下才进行重置加工数