diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java index 3a2c7a4..9a46397 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; +import io.swagger.annotations.ApiOperation; /** * @Description: @@ -10,5 +11,10 @@ import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; */ public interface IMesWorkCenterService extends IBaseMesService { + @ApiOperation(value = "根据生产线代码查询生产线信息") + MesWorkCenter getWorkCenterDb(String organizeCode, String workCenterCode); + + @ApiOperation(value = "根据生产线代码查询生产线信息的ERP生产线代码") + String getErpWorkCenterCode(String organizeCode, String workCenterCode); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java index 073c931..4b848e3 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java @@ -1,16 +1,24 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkCenterService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; 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.MesWorkCenter; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; @Service @Slf4j public class MesWorkCenterService extends BaseMesService implements IMesWorkCenterService { + @Autowired + private MesWorkCenterRepository workCenterRepository; + @Override protected void setPackQueryBean(MesWorkCenter bean, DdlPackBean packBean) { DdlPreparedPack.getStringLikerPack(bean.getErpWorkCenter(), "erpWorkCenter", packBean); @@ -19,4 +27,18 @@ public class MesWorkCenterService extends BaseMesService implemen DdlPreparedPack.getNumEqualPack(bean.getCenterType(), "centerType", packBean); } + @Override + public MesWorkCenter getWorkCenterDb(String organizeCode, String workCenterCode) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode)) return null; + return workCenterRepository.getByProperty( + new String[]{MesExtConstWords.ORGANIZE_CODE, MesExtConstWords.IS_DELETED, MesExtConstWords.IS_VALID, MesExtConstWords.WORK_CENTER_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode}); + } + + @Override + public String getErpWorkCenterCode(String organizeCode, String workCenterCode) { + MesWorkCenter workCenterDb = getWorkCenterDb(organizeCode, workCenterCode); + return null != workCenterDb ? workCenterDb.getErpWorkCenter() : null; + } + } 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 87edbd9..40de38e 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 @@ -2,8 +2,8 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.*; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; -import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.apiservice.util.DateUtil; @@ -108,6 +108,9 @@ public class MesWorkOrderService extends BaseMesService implements private MesPartRepository mesPartRDao; @Autowired + private IMesWorkCenterService workCenterService; + + @Autowired private MesWorkCenterPartRelationRepository partRelationRao; @Override public MesWorkOrder insert(MesWorkOrder bean) { @@ -990,7 +993,7 @@ public class MesWorkOrderService extends BaseMesService implements } //成品移库 if (isMove) { - MesMove move = createMove(mesPartSap, mesProdRuleSortCfg.getSrcErpLocation(), mesProdRuleSortCfg.getDestErpLocation(), mesWorkOrder.getOrganizeCode(), mesWorkOrderNew.getNum(), sn, MesExtEnumUtil.MOVE_TYPE.FINISH_PRODUCTS_MOVE.getValue()); + MesMove move = createMove(mesPartSap, mesProdRuleSortCfg.getSrcErpLocation(), mesProdRuleSortCfg.getDestErpLocation(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getWorkCenterCode(), mesWorkOrderNew.getNum(), sn, MesExtEnumUtil.MOVE_TYPE.FINISH_PRODUCTS_MOVE.getValue()); move.setMatnr(mesWorkOrder.getPartNo()); mesMoveList.add(move); } @@ -1136,7 +1139,7 @@ public class MesWorkOrderService extends BaseMesService implements if (mesPartSapMap.containsKey(mesBom.getItemPartNo())) { mesPartSap = mesPartSapMap.get(mesBom.getItemPartNo()).iterator().next(); } - MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesBom.getItemQty(), "", MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue()); + MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesWorkOrder.getWorkCenterCode(), mesBom.getItemQty(), "", MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue()); move.setMatnr(mesBom.getItemPartNo()); mesMoveList.add(move); } @@ -1237,7 +1240,7 @@ public class MesWorkOrderService extends BaseMesService implements return mesWorkOrderRDao.findByHqlWhere(packBean); } - private MesMove createMove(MesPartSap mesPart, String source, String target, String org, double qty, String sn, Integer moveType) { + private MesMove createMove(MesPartSap mesPart, String source, String target, String org, String workCenterCode, double qty, String sn, Integer moveType) { MesMove move = new MesMove(); if (!Objects.isNull(mesPart)) { move.setMeins(mesPart.getUnit()); @@ -1251,6 +1254,7 @@ public class MesWorkOrderService extends BaseMesService implements move.setProductSn(sn); move.setMoveType(moveType); move.setPostTime(TimeTool.getTimeShortWithColon()); + move.setWorkCenter(workCenterService.getErpWorkCenterCode(org, workCenterCode)); ConvertBean.serviceModelInitialize(move, AuthUtil.getSessionUser().getUserName()); return move; } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesInputDefectRecordServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesInputDefectRecordServiceImpl.java index 595617a..b23f189 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesInputDefectRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesInputDefectRecordServiceImpl.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.base.IMesPartSapService; +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkCenterService; import cn.estsh.i3plus.ext.mes.api.busi.IMesInputDefectRecordService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; @@ -61,6 +62,9 @@ public class MesInputDefectRecordServiceImpl implements IMesInputDefectRecordSer @Autowired private IMesPartSapService mesPartSapService; + @Autowired + private IMesWorkCenterService workCenterService; + @Override public void savePartInspection(MesProduceSn mesProduceSn, String userName, MesDefectType mesDefect,String defectLocation) { MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesProduceSn.getPartNo(), mesProduceSn.getOrganizeCode()); @@ -134,6 +138,7 @@ public class MesInputDefectRecordServiceImpl implements IMesInputDefectRecordSer move.setPartInspectionId(partInspectionId); move.setMoveType(MesExtEnumUtil.MOVE_TYPE.SUSPICIOUS_MOVE.getValue()); move.setProductSn(mesProduceSn.getProductSn()); + move.setWorkCenter(workCenterService.getErpWorkCenterCode(mesProduceSn.getOrganizeCode(), mesProduceSn.getWorkCenterCode())); ConvertBean.serviceModelInitialize(move, AuthUtil.getSessionUser().getUserName()); moveRepository.insert(move); }