mesmove 增加 erp生产线值

tags/yfai-pcn-ext-v1.0
王杰 10 months ago
parent 55027bac6b
commit 44d11aef0e

@ -12,6 +12,9 @@ public interface IMesProdOrgExtService {
@ApiOperation(value = "根据生产线代码查询生产线信息")
MesWorkCenter getWorkCenterDb(String organizeCode, String workCenterCode);
@ApiOperation(value = "根据生产线代码查询生产线信息的ERP生产线代码")
String getErpWorkCenterCode(String organizeCode, String workCenterCode);
@ApiOperation(value = "根据生产线代码,工位代码查询工位信息")
MesWorkCell getWorkCellDb(String organizeCode, String workCenterCode, String workCellCode);

@ -42,6 +42,12 @@ public class MesProdOrgExtService implements IMesProdOrgExtService {
}
@Override
public String getErpWorkCenterCode(String organizeCode, String workCenterCode) {
MesWorkCenter workCenterDb = getWorkCenterDb(organizeCode, workCenterCode);
return null != workCenterDb ? workCenterDb.getErpWorkCenter() : null;
}
@Override
public MesWorkCell getWorkCellDb(String organizeCode, String workCenterCode, String workCellCode) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(workCellCode)) return null;
return workCellRepository.getByProperty(

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesInputDefectRecordService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
@ -52,6 +53,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
private MesProduceSnRepository produceSnRepository;
@Autowired
private IMesProdOrgExtService prodOrgExtService;
@Autowired
private MesPartRepository partRepository;
@Autowired
@ -202,6 +206,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
@Override
public void savePartInspection(MesPartInspectionInputModel model, String org) {
MesProduceSn produceSn = checkProduceSn(model.getSn(), org);
//零件检测详情为空,则代表本次校验为合格。
if (CollectionUtils.isEmpty(model.getPartInspectionDetailList())) {
@ -210,7 +215,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
if (model.isTransferFlg() && model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
//移库
MesMove move = createMove(model,getDestLocateNo(model, org),configService.getCfgValue(org, "LGORT"), org);
MesMove move = createMove(model,getDestLocateNo(model, org),configService.getCfgValue(org, "LGORT"), org, produceSn.getWorkCenterCode());
moveRepository.save(move);
}
@ -223,7 +228,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspectionRepository.save(partInspection);
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
MesProduceSn produceSn = checkProduceSn(model.getSn(), org);
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
@ -270,7 +275,6 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspectionDetailRepository.saveAll(model.getPartInspectionDetailList());
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
MesProduceSn produceSn = checkProduceSn(model.getSn(), org);
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
@ -285,7 +289,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
}
//移库
MesMove move = createMove(model,srcLocate,configService.getCfgValue(org, "LGORT"), org);
MesMove move = createMove(model,srcLocate,configService.getCfgValue(org, "LGORT"), org, produceSn.getWorkCenterCode());
moveRepository.save(move);
}
}
@ -330,7 +334,6 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
String srcLocateNo = null;
//若是扫描条码 则判定条码可疑
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
MesProduceSn produceSn = checkProduceSn(model.getSn(), org);
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
@ -341,7 +344,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
srcLocateNo = configService.getCfgValue(org, "LGORT");
}
//移库
MesMove move = createMove(model,srcLocateNo, configService.getCfgValue(org, "UMLGO"), org);
MesMove move = createMove(model,srcLocateNo, configService.getCfgValue(org, "UMLGO"), org, produceSn.getWorkCenterCode());
moveRepository.save(move);
} else {
@ -380,7 +383,6 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
//若是扫描条码 则判定条码可疑
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
MesProduceSn produceSn = checkProduceSn(model.getSn(), org);
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn);
@ -390,7 +392,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspectionDetailRepository.saveAll(model.getPartInspectionDetailList());
//移库
MesMove move = createMove(model, configService.getCfgValue(org, "LGORT"), configService.getCfgValue(org, "UMLGO"), org);
MesMove move = createMove(model, configService.getCfgValue(org, "LGORT"), configService.getCfgValue(org, "UMLGO"), org, produceSn.getWorkCenterCode());
moveRepository.save(move);
@ -604,7 +606,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
* @param org
* @return
*/
private MesMove createMove(MesPartInspectionInputModel model, String source, String target, String org) {
private MesMove createMove(MesPartInspectionInputModel model, String source, String target, String org, String workCenterCode) {
GenSerialNoModel serialNoModel = new GenSerialNoModel("INPUT_DEFECT_ZRSUM");
serialNoModel.setPartNo(model.getPart().getPartNo());
ResultBean rb = syncFuncService.syncSerialNo(serialNoModel, AuthUtil.getSessionUser().getUserName(), org, 1);
@ -627,6 +629,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
move.setPartInspectionId(Objects.isNull(model.getPartInspection()) ? 0 : model.getPartInspection().getId());
move.setMoveType(MesExtEnumUtil.MOVE_TYPE.SUSPICIOUS_MOVE.getValue());
move.setProductSn(model.getSn());
move.setWorkCenter(prodOrgExtService.getErpWorkCenterCode(org, workCenterCode));
ConvertBean.serviceModelInitialize(move, AuthUtil.getSessionUser().getUserName());
return move;
}
@ -816,7 +819,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
@Override
public void saveSusPartInspection(MesPartInspectionInputModel model, String org) {
//
MesPartInspection partInspection = new MesPartInspection();
BeanUtils.copyProperties(model, partInspection);
partInspection.setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue());
@ -842,7 +845,8 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
source = version.getShipInventoryPoint();
}
}
MesMove move = createMove(model, source, configService.getCfgValue(org, "UMLGO"), org);
MesMove move = createMove(model, source, configService.getCfgValue(org, "UMLGO"), org, model.getWorkCenterCode());
moveRepository.save(move);
}
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNcProcessingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
@ -50,6 +51,9 @@ import java.util.stream.Collectors;
public class MesNcProcessingService implements IMesNcProcessingService {
@Autowired
private IMesProdOrgExtService prodOrgExtService;
@Autowired
private MesDefectRecordRepository defectRecordRepository;
@Autowired
@ -321,8 +325,9 @@ public class MesNcProcessingService implements IMesNcProcessingService {
* @param person
* @param org
*/
private void saveDate(MesNcProcessingInputModel model, MesPartSap part, Integer type, MesDefectType person, String org,String areaCode, boolean
isOrder) {
private void saveDate(MesNcProcessingInputModel model, MesPartSap part, Integer type, MesDefectType person, String org,String areaCode, boolean isOrder) {
MesProduceSn sn = checkProduceSn(model.getSn(), org);
String source = configService.getCfgValue(org, "LGORT");
if (!StringUtils.isEmpty(model.getProductVersion())) {
@ -340,7 +345,6 @@ public class MesNcProcessingService implements IMesNcProcessingService {
if (type == MesExtEnumUtil.NC_TYPE.NORMAL.getValue()) {
//更新条码质量状态
MesProduceSn sn = checkProduceSn(model.getSn(), org);
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getPartInspection().getModifyUser());
produceSnExtService.update(sn);
@ -356,7 +360,7 @@ public class MesNcProcessingService implements IMesNcProcessingService {
//移库 转正常、放行8000移至2000
// MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org);
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "LGORT"), org,MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE);
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "LGORT"), org, sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE);
moveRepository.save(move);
} else if (type == MesExtEnumUtil.NC_TYPE.REWORK.getValue()) {
@ -406,13 +410,12 @@ public class MesNcProcessingService implements IMesNcProcessingService {
model.getPartInspection().setReworkTaskId(reworkTask.getId());
partInspectionRepository.save(model.getPartInspection());
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org,MesExtEnumUtil.MOVE_TYPE.RETURN_MOVE);
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org, sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.RETURN_MOVE);
moveRepository.save(move);
} else if (type == MesExtEnumUtil.NC_TYPE.SCRAP.getValue()) {
//更新条码质量状态
MesProduceSn sn = checkProduceSn(model.getSn(), org);
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
ConvertBean.serviceModelUpdate(sn, model.getPartInspection().getModifyUser());
produceSnExtService.update(sn);
@ -429,11 +432,11 @@ public class MesNcProcessingService implements IMesNcProcessingService {
ConvertBean.serviceModelUpdate(sn, model.getPartInspection().getModifyUser());
partInspectionRepository.save(model.getPartInspection());
if (isOrder) {
MesMove move = createMove(model, source, configService.getCfgValue(org, "SCRAP"), org,MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE);
MesMove move = createMove(model, source, configService.getCfgValue(org, "SCRAP"), org, sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE);
moveRepository.save(move);
} else {
//移库 转报废 根据责任方库区对应关系的主数据选择哪个责任方就移动到哪个库区8000移至8002/8003
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org, MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE);
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org, sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.SCRAP_MOVE);
// MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "SCRAP"), org);
moveRepository.save(move);
}
@ -441,7 +444,6 @@ public class MesNcProcessingService implements IMesNcProcessingService {
} else if (type == MesExtEnumUtil.NC_TYPE.RELEASE.getValue()) {
//更新条码质量状态
MesProduceSn sn = checkProduceSn(model.getSn(), org);
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getPartInspection().getModifyUser());
produceSnExtService.update(sn);
@ -458,7 +460,7 @@ public class MesNcProcessingService implements IMesNcProcessingService {
//移库 转正常、放行8000移至2000
// MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), areaCode, org);
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "LGORT"), org,MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE);
MesMove move = createMove(model, configService.getCfgValue(org, "UMLGO"), configService.getCfgValue(org, "LGORT"), org, sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE);
moveRepository.save(move);
}
@ -480,7 +482,7 @@ public class MesNcProcessingService implements IMesNcProcessingService {
return produceSn;
}
private MesMove createMove(MesNcProcessingInputModel model, String source, String target, String org,MesExtEnumUtil.MOVE_TYPE moveType) {
private MesMove createMove(MesNcProcessingInputModel model, String source, String target, String org, String workCenterCode, MesExtEnumUtil.MOVE_TYPE moveType) {
GenSerialNoModel serialNoModel = new GenSerialNoModel("INPUT_DEFECT_ZRSUM");
serialNoModel.setPartNo(model.getPart().getPartNo());
ResultBean rb = syncFuncService.syncSerialNo(serialNoModel, model.getPartInspection().getModifyUser(), org, 1);
@ -503,6 +505,7 @@ public class MesNcProcessingService implements IMesNcProcessingService {
move.setMoveType(moveType.getValue());
move.setPartInspectionId(model.getPartInspection().getId());
move.setProductSn(model.getSn());
move.setWorkCenter(prodOrgExtService.getErpWorkCenterCode(org, workCenterCode));
ConvertBean.serviceModelInitialize(move, model.getPartInspection().getModifyUser());
return move;
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
@ -73,6 +74,9 @@ public class MesReportSortStepService extends BaseStepService {
@Autowired
private MesMoveRepository mesMoveRDao;
@Autowired
private IMesProdOrgExtService prodOrgExtService;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
@ -177,7 +181,7 @@ public class MesReportSortStepService extends BaseStepService {
isReport = true;
isMove = true;
}else if (MesExtEnumUtil.MES_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == mesProdRuleSortCfg.getReportType()) {
partSapMap = customerSupplyMove(oldMesWorkOrder, mesProductVersion, mesBoms, snList, mesProductOffLineList, mesMoveList);
partSapMap = customerSupplyMove(oldMesWorkOrder, mesProductVersion, mesBoms, snList, mesProductOffLineList, mesMoveList, reqBean.getWorkCenterCode());
}else{
log.info("工单{}排序加工规则报工类型未维护",oldMesWorkOrder.getWorkOrderNo());
return;
@ -198,7 +202,7 @@ public class MesReportSortStepService extends BaseStepService {
}
//成品移库
if(isMove){
MesMove move = createMove(mesPartSap, mesProdRuleSortCfg.getSrcErpLocation(), mesProdRuleSortCfg.getDestErpLocation(), oldMesWorkOrder.getOrganizeCode(), 1d,sn,MesExtEnumUtil.MOVE_TYPE.FINISH_PRODUCTS_MOVE.getValue());
MesMove move = createMove(mesPartSap, mesProdRuleSortCfg.getSrcErpLocation(), mesProdRuleSortCfg.getDestErpLocation(), oldMesWorkOrder.getOrganizeCode(), reqBean.getWorkCenterCode(), 1d,sn,MesExtEnumUtil.MOVE_TYPE.FINISH_PRODUCTS_MOVE.getValue());
move.setMatnr(oldMesWorkOrder.getPartNo());
mesMoveList.add(move);
}
@ -285,7 +289,7 @@ public class MesReportSortStepService extends BaseStepService {
}
private Map<String, List<MesPartSap>> customerSupplyMove(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List<MesBom> mesBoms, List<String> resultList, List<MesProductOffLine> mesProductOffLineList, List<MesMove> mesMoveList) {
private Map<String, List<MesPartSap>> customerSupplyMove(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List<MesBom> mesBoms, List<String> resultList, List<MesProductOffLine> mesProductOffLineList, List<MesMove> mesMoveList, String workCenterCode) {
boolean isItemMove;
boolean isItemReport;
MesMoveRule moveRule;
@ -326,7 +330,7 @@ public class MesReportSortStepService extends BaseStepService {
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(), workCenterCode, mesBom.getItemQty(),"",MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue());
move.setMatnr(mesBom.getItemPartNo());
mesMoveList.add(move);
}
@ -391,7 +395,7 @@ public class MesReportSortStepService extends BaseStepService {
return newMesProductOffLine;
}
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());
@ -405,6 +409,7 @@ public class MesReportSortStepService extends BaseStepService {
move.setProductSn(sn);
move.setMoveType(moveType);
move.setPostTime(TimeTool.getTimeShortWithColon());
move.setWorkCenter(prodOrgExtService.getErpWorkCenterCode(org, workCenterCode));
ConvertBean.serviceModelInitialize(move, AuthUtil.getSessionUser().getUserName());
return move;
}

Loading…
Cancel
Save