From c5987d3bd847e9c9e28a14a4681586cd65a11106 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 3 Dec 2024 18:33:24 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=AD=A6=E6=B1=89cockpit=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=98=B2=E9=94=99=E6=8C=89=E7=85=A7=E6=95=A3=E4=BB=B6=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E5=86=99=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/estsh/i3plus/ext/mes/api/base/IMesMoveRuleService.java | 4 +++- .../mes/apiservice/serviceimpl/base/MesMoveRuleServiceImpl.java | 7 ++++++- .../ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesMoveRuleService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesMoveRuleService.java index 14ac0a5..dceabd6 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesMoveRuleService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesMoveRuleService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesMoveRule; +import io.swagger.annotations.ApiOperation; import java.util.List; @@ -13,5 +14,6 @@ import java.util.List; **/ public interface IMesMoveRuleService extends IBaseMesService { - List findMesMoveRuleByPartProdGroupCode(String code,String organizeCode); + @ApiOperation("根据组代码加code查询移库规则信息") + List findMesMoveRuleByPartProdGroupCode(String code,String organizeCode,Integer groupType); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesMoveRuleServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesMoveRuleServiceImpl.java index 1f0a210..c453cb5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesMoveRuleServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesMoveRuleServiceImpl.java @@ -25,6 +25,7 @@ public class MesMoveRuleServiceImpl extends BaseMesService implemen @Override protected void setPackQueryBean(MesMoveRule bean, DdlPackBean packBean) { + DdlPreparedPack.getNumEqualPack(bean.getGroupType(), "groupType", packBean); DdlPreparedPack.getStringEqualPack(bean.getCode(), "code", packBean); DdlPreparedPack.getStringEqualPack(bean.getSrcType(), "srcType", packBean); } @@ -35,6 +36,7 @@ public class MesMoveRuleServiceImpl extends BaseMesService implemen checkNotNull(item); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(item.getGroupType(), "groupType", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getCode(), "code", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getSrcType(), "srcType", ddlPackBean); @@ -50,6 +52,7 @@ public class MesMoveRuleServiceImpl extends BaseMesService implemen checkNotNull(item); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(item.getGroupType(), "groupType", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getCode(), "code", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getSrcType(), "srcType", ddlPackBean); DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", ddlPackBean); @@ -60,8 +63,9 @@ public class MesMoveRuleServiceImpl extends BaseMesService implemen } @Override - public List findMesMoveRuleByPartProdGroupCode(String code, String organizeCode) { + public List findMesMoveRuleByPartProdGroupCode(String code, String organizeCode,Integer groupType) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(groupType, "groupType", ddlPackBean); DdlPreparedPack.getStringEqualPack(code, "code", ddlPackBean); List moveRules = baseRDao.findByHqlWhere(ddlPackBean); if (CollectionUtils.isEmpty(moveRules)) { @@ -76,5 +80,6 @@ public class MesMoveRuleServiceImpl extends BaseMesService implemen ValidatorBean.checkNotNull(item.getErpDestLocateNo(), "ERP目的库位不能为空"); ValidatorBean.checkNotNull(item.getSrcType(), "来源类型不能为空"); ValidatorBean.checkNotNull(item.getReportType(), "汇报类型不能为空"); + ValidatorBean.checkNotNull(item.getGroupType(), "组类型不能为空"); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 25f475f..0972ea1 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -1463,7 +1463,7 @@ public class MesWorkOrderService extends BaseMesService implements MesMoveRule moveRule; MesPart itemPart; //查询零件生产组的移库规则 - List moveRules = mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(mesWorkOrder.getPartProdGroupCode(), mesWorkOrder.getOrganizeCode()); + List moveRules = mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(mesWorkOrder.getPartProdGroupCode(), mesWorkOrder.getOrganizeCode(), MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_20.getValue()); Map> mesMoveRuleMap = moveRules.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.groupingBy(MesMoveRule::getSrcType)); List itemPartNoList = mesBoms.stream().map(MesBom::getItemPartNo).collect(Collectors.toList()); //子物料SAP下发信息 From 215b62a60173c911d20ba1e20f4e0be830cd104b Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 3 Dec 2024 18:34:10 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Mes2Pisces/MesToPiscesMesJisShipping.groovy | 1 - .../Mes2Pisces/MesToPiscesMesJisShippingWh.groovy | 2 +- .../MesToPiscesMesJisShippingWuhu.groovy | 83 ++++++++++++++++++++++ .../src/groovy/MesProductionRecordToPisces.groovy | 7 +- 4 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWuhu.groovy diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShipping.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShipping.groovy index 823cc81..f516713 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShipping.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShipping.groovy @@ -1,4 +1,3 @@ -import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService import cn.estsh.i3plus.platform.common.tool.MathOperation import cn.estsh.i3plus.pojo.base.bean.DdlPackBean diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWh.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWh.groovy index 4a8363b..95e8472 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWh.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWh.groovy @@ -8,7 +8,7 @@ import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired /** - * @Description : MES2PISCES-发运单武汉工厂 + * @Description : MES2PISCES-发运结果回传武汉工厂 * @Reference : * @Author : junsheng.li * @CreateDate 2024/11/18 20:37 diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWuhu.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWuhu.groovy new file mode 100644 index 0000000..e2c0de1 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesJisShippingWuhu.groovy @@ -0,0 +1,83 @@ +import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService +import cn.estsh.i3plus.platform.common.tool.MathOperation +import cn.estsh.i3plus.platform.common.tool.TimeTool +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement +import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper +import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel +import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.util.StringUtils + +/** + * @Description : MES2PISCES-发运结果回传芜湖工厂 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/29 15:18 + * @Modify: + **/ +class MesToPiscesMesJisShippingWuhu { + + public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesMesJisShippingWuhu.class) + + @Autowired + private MesShippingOrderManagementRepository mesShippingOrderManagementRepository; + + @Autowired + private ISyncFuncService syncFuncService; + + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { + if (srcData == null || srcData.size() == 0) { + return srcData + } + Map mesPartShippingGroupMap = new HashMap<>(); + String organizeCode = mapper.getOrganizeCode(); + Map> destData = new HashMap<>(); + for (Map rowMap : srcData) { + if (!StringUtils.isEmpty(rowMap.get("shipping_order_code"))) { + MesShippingOrderManagement mesShipping = getMesShipping(organizeCode, String.valueOf(rowMap.get("shipping_order_code")), mesPartShippingGroupMap) + if (!Objects.isNull(mesShipping)) { + rowMap.put("HANDLE_FID", mesShipping.getFid()) + } else { + LOGGER.info("shipping_order_code:{}信息不存在", String.valueOf(rowMap.get("shipping_order_code"))) + } + } + //数据汇总 + String key = String.valueOf(rowMap.get("HANDLE_FID")) + String.valueOf(rowMap.get("part_no")) + if (destData.containsKey(key)) { + destData.get(key).put("quantity_per_car", MathOperation.add(Double.valueOf(destData.get(key).get("quantity_per_car") + ""), Double.valueOf(rowMap.get("quantity_per_car") + ""))) + } else { + destData.put(key, rowMap) + } + } + //TRANS_ID赋值 + if(mapper.getDestColumnMapping().contains("TRANS_ID")){ + Date date = new Date(); + GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel("JIS_SHIPPING_TRANS_ID"); + orderSeqSerialNoModel.setYear(MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date)))) + orderSeqSerialNoModel.setMonth(MesExtEnumUtil.MONTH_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getMonth(date)))) + orderSeqSerialNoModel.setDay(TimeTool.getDay(date)) + List resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel.organizeCode(organizeCode), "MES2PISCES发运单", organizeCode, srcData.size()).getResultList(); + int index = 0; + for (Map rowMap : srcData) { + rowMap.put("TRANS_ID", resultList.get(index)); + index++; + } + } + return new ArrayList<>(destData.values()); + } + + private MesShippingOrderManagement getMesShipping(String organizeCode, String shippingCode, Map mesPartShippingGroupMap) { + if (Objects.isNull(mesPartShippingGroupMap) || !mesPartShippingGroupMap.containsKey(shippingCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(shippingCode, "shippingCode", ddlPackBean); + mesPartShippingGroupMap.put(shippingCode, mesShippingOrderManagementRepository.getByProperty(ddlPackBean)) + } + return mesPartShippingGroupMap.get(shippingCode); + } + +} \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy index f116c5c..6d02089 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy @@ -29,7 +29,7 @@ class MesProductionRecordToPisces { public static final Logger LOGGER = LoggerFactory.getLogger(MesProductionRecordToPisces.class) - private static final String[] workCenterCodeList = ["B19CK01A", "B15CK01A", "C06CK01A", "C06CK01B", "C09CK01A", "C12CK01A"] as String[]; + private static final String[] workCenterCodeList = ["B19C901A", "B15C901A", "C06C901A", "C06C901B", "C09C901A", "C12C901A"] as String[]; @Autowired private MesEquipmentRepository equipmentRepository; @@ -40,7 +40,7 @@ class MesProductionRecordToPisces { @Autowired private MesWorkOrderRepository workOrderRepository; - @Resource(name = "piscesDataSource") + @Resource(name = "pisces3DataSource") private DynamicDataSourceProxy piscesDataSource; @Resource(name = "mesDataSource") @@ -71,6 +71,7 @@ class MesProductionRecordToPisces { List> destData = new ArrayList<>(); for (Map rowMap : srcData) { + //条码信息 Map params = new HashMap<>(); params.put("partNo", rowMap.get("part_no")) params.put("productSn", rowMap.get("product_sn")) @@ -81,7 +82,7 @@ class MesProductionRecordToPisces { rowMap.put("BARCODE_ID", dataMap.iterator().next().get("ID")) idList.add(rowMap.get("id").toString()); } else { - LOGGER.info("条码{}物料{}条码信息未同步,信息不存在", rowMap.get("product_sn"),rowMap.get("part_no")) + LOGGER.info("条码{}物料{}条码信息未同步,信息不存在", rowMap.get("product_sn"), rowMap.get("part_no")) continue } String workCenterCode = String.valueOf(rowMap.get("work_center_code")); From 68be6deb156f1152c7383f77b415b97b8065f986 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 3 Dec 2024 18:42:58 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E7=82=B9=E6=A3=80=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=85=B3=E8=81=94=E9=9B=B6=E4=BB=B6=E6=98=8E=E7=BB=86=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A6=82=E6=9E=9C=E9=80=89=E6=8B=A9=E5=90=8C?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E7=89=A9=E6=96=99=E4=BC=9A=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesEquipmentSpotCheckPartService.java | 63 ++++++++++------------ 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java index e045ae2..7b03982 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java @@ -1,7 +1,10 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckPartService; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -9,7 +12,6 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheck; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart; import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentSpotCheckRepository; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -21,79 +23,70 @@ import java.util.List; @Slf4j public class MesEquipmentSpotCheckPartService extends BaseMesService implements IMesEquipmentSpotCheckPartService { - @Autowired private MesEquipmentSpotCheckRepository equipmentSpotCheckRepository; + + @Override protected void setPackQueryBean(MesEquipmentSpotCheckPart bean, DdlPackBean packBean) { DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); } + @Override public void validateImport(List beanList) { for (MesEquipmentSpotCheckPart item : beanList) { // 数据校验 - if(StringUtil.isEmpty(item.getPid())){ + if (StringUtil.isEmpty(item.getPid())) { ValidatorBean.checkNotNull(item.getSpotCheckCode(), "点检项目代码不能为空"); DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(item.getSpotCheckCode(), "spotCheckCode", seriesPackBean); - MesEquipmentSpotCheckPart itemFlg = baseRDao.getByProperty(seriesPackBean); + MesEquipmentSpotCheck itemFlg = equipmentSpotCheckRepository.getByProperty(seriesPackBean); if (StringUtil.isEmpty(itemFlg)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】点检项目代码不存在,请检查数据", item.getSpotCheckCode()) - .build(); + MesException.throwMesBusiException("点检项目代码【%s】不存在,请检查数据", item.getSpotCheckCode()); } - item.setPid(itemFlg.getPid()); - }else { - ValidatorBean.checkNotNull(item.getId(), "点检项目id不能为空"); + item.setPid(itemFlg.getId()); + } else { + ValidatorBean.checkNotNull(item.getPid(), "点检项目id不能为空"); DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean); + DdlPreparedPack.getNumEqualPack(item.getPid(), "id", seriesPackBean); - if (!baseRDao.isExitByHql(seriesPackBean)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】点检项目id不存在,请检查数据", item.getPid()) - .build(); + if (!equipmentSpotCheckRepository.isExitByHql(seriesPackBean)) { + MesException.throwMesBusiException("点检项目id【%s】不存在,请检查数据", item.getPid()); } } + item.setId(null); + item.setSystemSyncStatus(CommonEnumUtil.FALSE); + item.setSystemSyncDatetime(""); + ConvertBean.serviceModelInitialize(item, AuthUtilExt.getUserName()); } } + @Override public List validateReturnImport(List beanList) { for (MesEquipmentSpotCheckPart item : beanList) { // 数据校验 - if(StringUtil.isEmpty(item.getPid())){ + if (StringUtil.isEmpty(item.getPid())) { ValidatorBean.checkNotNull(item.getSpotCheckCode(), "点检项目代码不能为空"); DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(item.getSpotCheckCode(), "spotCheckCode", seriesPackBean); MesEquipmentSpotCheck itemFlg = equipmentSpotCheckRepository.getByProperty(seriesPackBean); if (StringUtil.isEmpty(itemFlg)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】点检项目代码不存在,请检查数据", item.getSpotCheckCode()) - .build(); + MesException.throwMesBusiException("点检项目代码【%s】不存在,请检查数据", item.getSpotCheckCode()); } item.setPid(itemFlg.getId()); - }else { - ValidatorBean.checkNotNull(item.getId(), "点检项目id不能为空"); + } else { + ValidatorBean.checkNotNull(item.getPid(), "点检项目id不能为空"); DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean); + DdlPreparedPack.getNumEqualPack(item.getPid(), "id", seriesPackBean); - if (!baseRDao.isExitByHql(seriesPackBean)) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】点检项目id不存在,请检查数据", item.getPid()) - .build(); + if (!equipmentSpotCheckRepository.isExitByHql(seriesPackBean)) { + MesException.throwMesBusiException("点检项目id【%s】不存在,请检查数据", item.getPid()); } } } From 709cd4abb4f4f83cf24e4cabeedfb727cb6cd655 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 3 Dec 2024 19:00:39 +0800 Subject: [PATCH 4/8] =?UTF-8?q?MES=E5=B7=A5=E5=8D=95=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E7=BB=99WMS=E6=97=A5=E5=BF=97=E6=8F=90=E7=A4=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/schedulejob/MesWorkOrderSendToWmsJob.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderSendToWmsJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderSendToWmsJob.java index 09565bf..5bc1317 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderSendToWmsJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderSendToWmsJob.java @@ -48,12 +48,12 @@ public class MesWorkOrderSendToWmsJob extends BaseMesScheduleJob { for (WmsJobParamModel wmsJobParamModel : wmsJobParamModelList) { try { long startTime = System.currentTimeMillis(); - LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB --- start", wmsJobParamModel.getOrganizeCode()); + LOGGER.info("工厂{}MES工单推送给WMSJOB --- start", wmsJobParamModel.getOrganizeCode()); mesWorkOrderService.doSendMesWorkOrderToWms(wmsJobParamModel.getOrganizeCode(), wmsJobParamModel.getPageSize(), MesExtConstWords.JOB); long endTime = System.currentTimeMillis(); - LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB --- end --- 耗时: {} ms", wmsJobParamModel.getOrganizeCode(), endTime - startTime); + LOGGER.info("工厂{}MES工单推送给WMSJOB --- end --- 耗时: {} ms", wmsJobParamModel.getOrganizeCode(), endTime - startTime); } catch (Exception e) { - LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB 执行失败{}", wmsJobParamModel.getOrganizeCode(), e); + LOGGER.info("工厂{}MES工单推送给WMSJOB 执行失败{}", wmsJobParamModel.getOrganizeCode(), e); } } } From 13c8d904374583d1f2bc954ea06226ae8b176f0f Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 3 Dec 2024 19:07:12 +0800 Subject: [PATCH 5/8] =?UTF-8?q?MES=E5=B7=A5=E5=8D=95=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E7=BB=99WMSJOB=20=E6=9C=AA=E6=9F=A5=E8=AF=A2=E5=88=B0=E6=9C=AA?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=95=B0=E6=8D=AE=E7=9B=B4=E6=8E=A5=E8=BF=94?= =?UTF-8?q?=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 6f6352e..2c02a0c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -1997,6 +1997,7 @@ public class MesWorkOrderService extends BaseMesService implements List mesWorkOrderListToWms = getMesWorkOrderListToWms(organizeCode, pageSize); if (CollectionUtils.isEmpty(mesWorkOrderListToWms)) { log.info("工厂:{}不存在未推送的工单", organizeCode); + return; } //获取物料信息 Map partMap = BeanMapUtilsExt.getBeanMap(mesPartRDao, MesExtConstWords.PART_NO, organizeCode, mesWorkOrderListToWms.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), "物料信息"); From 5b4afbfaa81ae4da5cc2387f9d5f4179859ab261 Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 5 Dec 2024 12:43:24 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E7=82=B9=E6=A3=80=E5=8D=95=E7=94=9F?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E5=8D=95=E5=8F=B7=E8=A7=84=E5=88=99=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesSpotCheckOrderService.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index c767428..c659681 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.mes.api.iservice.base.IStateMachineRouteDesignService; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; @@ -15,8 +16,6 @@ import cn.estsh.i3plus.mes.apiservice.util.DateUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.platform.common.util.WmsConstWords; -import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -126,18 +125,10 @@ public class MesSpotCheckOrderService extends BaseMesService } //生成单据号 -// GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); -// List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); - - String orderNo=""; - BaseResultBean orderResutlBean = sysOrderNoRuleCloud.getOrderNo(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); - if (orderResutlBean != null && orderResutlBean.isSuccess()) { - orderNo = orderResutlBean.getResultObject().get(WmsConstWords.CORE_ORDER_NO).toString(); - } else { - orderNo = TimeTool.getDateTime().replaceAll("-", "") + String.valueOf((int) (Math.random() * 9000) + 1000); - } + GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); + String orderNo = (String) syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), AuthUtil.getOrganizeCode(), MesExtConstWords.ONE).getResultList().iterator().next(); //保存单据 - BeanUtils.copyProperties(equipmentSpotCheck, bean, "id"); + BeanUtils.copyProperties(equipmentSpotCheck, bean, MesExtConstWords.ID); bean.setSpotCheckOrderNo(orderNo); bean.setSystemSyncStatus(CommonEnumUtil.FALSE); From 4f6d9e68ceb08f1f376b4675d1a114e99dd3bcdb Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 5 Dec 2024 13:20:09 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E5=8F=91=E8=BF=90=E6=98=8E=E7=BB=86=20?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daoimpl/report/ShipmentDetailReportDaoImpl.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java index 9278513..374fe89 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java @@ -32,6 +32,7 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { StringBuilder dataQueryHql = new StringBuilder(); StringBuilder countQueryHql = new StringBuilder(); StringBuilder commonQueryHql = new StringBuilder(); + StringBuilder orderByHql = new StringBuilder(); dataQueryHql.append("select new ").append(ShippingReportModel.class.getName()).append(" ( "); @@ -117,6 +118,9 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { if (!StringUtils.isEmpty(model.getCustCode())) { commonQueryHql.append("AND ms.custCode like :custCode "); } + if (!StringUtils.isEmpty(model.getCustOrganizeCode())) { + commonQueryHql.append("AND ms.custOrganizeCode = :custOrganizeCode "); + } if (!StringUtils.isEmpty(model.getStartScanTimeStart()) && !StringUtils.isEmpty(model.getStartScanTimeEnd())) { commonQueryHql.append("AND ms.startScanTime between :startScanTimeStart and :startScanTimeEnd "); } @@ -127,7 +131,10 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { commonQueryHql.append("AND ms.publishTime between :publishTimeStart and :publishTimeEnd "); } - Query dataQuery = entityManager.createQuery(dataQueryHql.append(commonQueryHql).toString(), ShippingReportModel.class); + //按照结束扫描时间倒叙 + orderByHql.append(" ORDER BY endScanTime DESC "); + + Query dataQuery = entityManager.createQuery(dataQueryHql.append(commonQueryHql).append(orderByHql).toString(), ShippingReportModel.class); setQueryParams(dataQuery, model); Query countQuery = entityManager.createQuery(countQueryHql.append(commonQueryHql).toString()); setQueryParams(countQuery, model); @@ -160,6 +167,9 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { if (!StringUtils.isEmpty(model.getCustCode())) { dataQuery.setParameter("custCode", model.getCustCode() + "%"); } + if (!StringUtils.isEmpty(model.getCustOrganizeCode())) { + dataQuery.setParameter("custOrganizeCode", model.getCustOrganizeCode()); + } if (!StringUtils.isEmpty(model.getStartScanTimeStart()) && !StringUtils.isEmpty(model.getStartScanTimeEnd())) { dataQuery.setParameter("startScanTimeStart", model.getStartScanTimeStart()); dataQuery.setParameter("startScanTimeEnd", model.getStartScanTimeEnd()); From 831b8cf8153de8283c8acd683353d59649c58e49 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 5 Dec 2024 14:17:10 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BA=A7=E7=BA=BF=E7=9C=8B=E6=9D=BF=20?= =?UTF-8?q?=E5=89=94=E9=99=A4P=E5=8D=95=E6=95=B0=E6=8D=AE=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BA=862=E4=B8=AA=E6=8E=A5=E5=8F=A3,?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java index 5aa106f..4744d53 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java @@ -468,7 +468,12 @@ public class IMesYfBoardServiceImpl implements IMesYfBoardService { //计划开始时间 DdlPreparedPack.timeBuilder(timeZoneMap.get(workCenterCode).get(START_TIME), timeZoneMap.get(workCenterCode).get(END_TIME), "planStartTime", ddlPackBean, true); - return mesWorkOrderRepository.findByHqlWhere(ddlPackBean); + List workOrderList = mesWorkOrderRepository.findByHqlWhere(ddlPackBean); + //剔除P单数据 + workOrderList = CollectionUtils.isEmpty(workOrderList) ? null : + workOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getOrderFlag()) && + !o.getOrderFlag().equals(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()))).collect(Collectors.toList()); + return workOrderList; } /**