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/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")); 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()); 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); } } } 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()); } } } 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 87fe3cc..b2d624b 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 @@ -1475,7 +1475,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下发信息 @@ -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()), "物料信息"); 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; } /** 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);