Merge branch 'dev-wuhan' into dev-wuhan-temp

tags/yfai-pcn-ext-v2.3
yxw 8 months ago
commit ffbc8c888d

@ -27,5 +27,8 @@ public interface IMesWorkCenterService {
@ApiOperation(value = "查询工单") @ApiOperation(value = "查询工单")
public ListPager<MesWorkCenter> queryMesWorkCenterByPager(MesWorkCenter workCenter, Pager pager); public ListPager<MesWorkCenter> queryMesWorkCenterByPager(MesWorkCenter workCenter, Pager pager);
@ApiOperation(value = "根据产线代码代码集合查询产线信息集合")
List<MesWorkCenter> queryMesWorkCenterList(List<String> workCenterCodeList, String organizeCode);
} }

@ -4,18 +4,22 @@ 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.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesInputDefectRecordService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesInputDefectRecordService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionViewModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionViewModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection; import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail; import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail;
@ -103,6 +107,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
@Autowired @Autowired
private MesProduceSnLogRepository produceSnLogRepository; private MesProduceSnLogRepository produceSnLogRepository;
@Autowired
private MesWorkOrderRepository workOrderRepository;
@Autowired
private IMesWorkOrderExtService workOrderExtService;
@Override @Override
public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel inputModel, String org) { public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel inputModel, String org) {
@ -118,7 +126,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
MesProduceSn produceSn = checkProduceSn(inputModel.getSn(), org); MesProduceSn produceSn = checkProduceSn(inputModel.getSn(), org);
//获取NC-零件检测-单据 //获取NC-零件检测-单据
partInspection = getPartInspection(inputModel, org); partInspection = getPartInspection(produceSn,inputModel, org);
//检查物料 //检查物料
part = checkPart(produceSn, org); part = checkPart(produceSn, org);
@ -214,6 +222,17 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
public void savePartInspection(MesPartInspectionInputModel model, String org) { public void savePartInspection(MesPartInspectionInputModel model, String org) {
MesProduceSn produceSn = getProduceSn(model.getSn(), org); MesProduceSn produceSn = getProduceSn(model.getSn(), org);
//武汉 会输入客户条码
boolean isWorkOrderQcStatus=false;
if (!StringUtil.isEmpty(produceSn)){
model.setCustSn(produceSn.getCustSn());
model.setSn(produceSn.getProductSn());
//排序产线 更新工单的 qcStatus
MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(org, produceSn.getWorkCenterCode());
if (!StringUtil.isEmpty(centerDb)){
isWorkOrderQcStatus= centerDb.getCenterType() == MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue();
}
}
if(!StringUtils.isEmpty(model.getPartInspection())){ if(!StringUtils.isEmpty(model.getPartInspection())){
model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
@ -242,6 +261,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn); produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
} }
@ -289,6 +317,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn); produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
} }
//移库 //移库
String srcLocate; String srcLocate;
@ -349,6 +386,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue()); produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn); produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
//查询条码所在库位 //查询条码所在库位
srcLocateNo = getDestLocateNo(model, org); srcLocateNo = getDestLocateNo(model, org);
} }
@ -398,6 +444,15 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue()); produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
produceSnExtService.update(produceSn); produceSnExtService.update(produceSn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
ConvertBean.serviceModelUpdate(produceSn, AuthUtil.getSessionUser().getUserName());
workOrderRepository.update(workOrder);
}
}
} }
partInspectionDetailRepository.saveAll(resultDetailList); partInspectionDetailRepository.saveAll(resultDetailList);
partInspectionDetailRepository.saveAll(model.getPartInspectionDetailList()); partInspectionDetailRepository.saveAll(model.getPartInspectionDetailList());
@ -411,7 +466,12 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
} }
} }
public MesWorkOrder getWorkOrder(String organizeCode, String workOrderNo) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo)) return null;
return workOrderRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo});
}
private String getDestLocateNo(MesPartInspectionInputModel model, String org) { private String getDestLocateNo(MesPartInspectionInputModel model, String org) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean); DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean);
@ -434,11 +494,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
* @param org * @param org
* @return * @return
*/ */
private MesPartInspection getPartInspection(MesPartInspectionInputModel inputModel, String org) { private MesPartInspection getPartInspection(MesProduceSn produceSn,MesPartInspectionInputModel inputModel, String org) {
//根据条码找最近一条单据 //根据条码找最近一条单据
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(inputModel.getSn(), "sn", packBean); DdlPreparedPack.getStringEqualPack(produceSn.getProductSn(), "sn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
MesPartInspection partInspection = partInspectionRepository.getByProperty(packBean); MesPartInspection partInspection = partInspectionRepository.getByProperty(packBean);
@ -563,7 +623,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
//若不存在则提示条码不存在 //若不存在则提示条码不存在
if (StringUtils.isEmpty(produceSn)) { if (StringUtils.isEmpty(produceSn)) {
throw new ImppBusiException(String.format("【%s】此条码不存在请检查数据", serialNumber)); //再查一下排序查产线
produceSn = (MesProduceSn) workOrderExtService.getWorkOrderSort(org, serialNumber, false);
if (StringUtils.isEmpty(produceSn)) {
throw new ImppBusiException(String.format("【%s】此条码不存在请检查数据", serialNumber));
}
} }
//根据条码状态判断 是不是已下线条码 //根据条码状态判断 是不是已下线条码
@ -582,7 +646,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean); DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
return produceSnRepository.getByProperty(packBean); MesProduceSn produceSn =produceSnRepository.getByProperty(packBean);
if (StringUtil.isEmpty(produceSn)){
produceSn = (MesProduceSn) workOrderExtService.getWorkOrderSort(org, serialNumber, false);
}
return produceSn;
} }
private MesProduceSn checkProduceSn(MesProduceSn produceSn, String serialNumber) { private MesProduceSn checkProduceSn(MesProduceSn produceSn, String serialNumber) {
@ -619,6 +687,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspection.setInspectionStatus(inspectionStatus); partInspection.setInspectionStatus(inspectionStatus);
partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()); partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue());
partInspection.setSn(model.getSn()); partInspection.setSn(model.getSn());
partInspection.setCustSn(StringUtil.isEmpty(model.getCustSn())?"":model.getCustSn());
partInspection.setLotNo(model.getLotNo()); partInspection.setLotNo(model.getLotNo());
partInspection.setQty(model.getQty().intValue()); partInspection.setQty(model.getQty().intValue());
partInspection.setWorkCenterCode(model.getWorkCenterCode()); partInspection.setWorkCenterCode(model.getWorkCenterCode());

@ -4,6 +4,7 @@ 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.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNcProcessingService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNcProcessingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesNcProcessingDao; import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesNcProcessingDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingInputModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingInputModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingModel;
@ -105,6 +106,12 @@ public class MesNcProcessingService implements IMesNcProcessingService {
@Autowired @Autowired
private IMesProduceSnExtService produceSnExtService; private IMesProduceSnExtService produceSnExtService;
@Autowired
private IMesWorkOrderExtService workOrderExtService;
@Autowired
private MesWorkOrderRepository workOrderRepository;
@Override @Override
public ListPager<MesPartInspection> queryPartInspectionByPager(MesPartInspection partInspection, Pager pager) { public ListPager<MesPartInspection> queryPartInspectionByPager(MesPartInspection partInspection, Pager pager) {
@ -327,6 +334,17 @@ public class MesNcProcessingService implements IMesNcProcessingService {
assert model.getPartInspection() != null; assert model.getPartInspection() != null;
model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
MesProduceSn sn = getProduceSn(model.getSn(), org); MesProduceSn sn = getProduceSn(model.getSn(), org);
//武汉 会输入客户条码 todo 更新工单对应qcStatus
boolean isWorkOrderQcStatus=false;
if (!StringUtil.isEmpty(sn)){
model.setCustSn(sn.getCustSn());
model.setSn(sn.getProductSn());
//排序产线 更新工单的 qcStatus
MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(org, sn.getWorkCenterCode());
if (!StringUtil.isEmpty(centerDb)){
isWorkOrderQcStatus= centerDb.getCenterType() == MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue();
}
}
String source = configService.getCfgValue(org, "LGORT"); String source = configService.getCfgValue(org, "LGORT");
if (!StringUtils.isEmpty(model.getProductVersion())) { if (!StringUtils.isEmpty(model.getProductVersion())) {
@ -350,6 +368,15 @@ public class MesNcProcessingService implements IMesNcProcessingService {
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue()); sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName()); ConvertBean.serviceModelUpdate(sn, model.getUserName());
produceSnExtService.update(sn); produceSnExtService.update(sn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,sn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
workOrderRepository.update(workOrder);
}
}
} }
//更新检验单 //更新检验单
@ -427,6 +454,15 @@ public class MesNcProcessingService implements IMesNcProcessingService {
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue()); sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName()); ConvertBean.serviceModelUpdate(sn, model.getUserName());
produceSnExtService.update(sn); produceSnExtService.update(sn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,sn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
workOrderRepository.update(workOrder);
}
}
} }
//更新检验单 //更新检验单
@ -459,6 +495,15 @@ public class MesNcProcessingService implements IMesNcProcessingService {
sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName()); ConvertBean.serviceModelUpdate(sn, model.getUserName());
produceSnExtService.update(sn); produceSnExtService.update(sn);
//更新工单对应qcStatus
if(isWorkOrderQcStatus){
MesWorkOrder workOrder = getWorkOrder(org,sn.getWorkOrderNo());
if (!StringUtil.isEmpty(workOrder)){
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
ConvertBean.serviceModelUpdate(sn, model.getUserName());
workOrderRepository.update(workOrder);
}
}
} }
//更新检验单 //更新检验单
@ -479,7 +524,12 @@ public class MesNcProcessingService implements IMesNcProcessingService {
} }
} }
public MesWorkOrder getWorkOrder(String organizeCode, String workOrderNo) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo)) return null;
return workOrderRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo});
}
private int disassembleType(MesNcProcessingInputModel model, String org, MesProduceSn sn) { private int disassembleType(MesNcProcessingInputModel model, String org, MesProduceSn sn) {
if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue() == model.getPartInspection().getSourceType()) { if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue() == model.getPartInspection().getSourceType()) {
if (Objects.isNull(sn)) { if (Objects.isNull(sn)) {
@ -521,7 +571,11 @@ public class MesNcProcessingService implements IMesNcProcessingService {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean); DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
return produceSnRepository.getByProperty(packBean); MesProduceSn produceSn =produceSnRepository.getByProperty(packBean);
if (StringUtil.isEmpty(produceSn)){
produceSn = (MesProduceSn) workOrderExtService.getWorkOrderSort(org, serialNumber, false);
}
return produceSn;
} }
private MesProduceSn checkProduceSn(MesProduceSn produceSn, String serialNumber) { private MesProduceSn checkProduceSn(MesProduceSn produceSn, String serialNumber) {

@ -1,15 +1,18 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCenterService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCenterService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -58,9 +61,21 @@ public class MesWorkCenterService implements IMesWorkCenterService {
return new ListPager<>(resultList, pager); return new ListPager<>(resultList, pager);
} }
@Override
public List<MesWorkCenter> queryMesWorkCenterList(List<String> workCenterCodeList, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workCenterCodeList, MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
return workCenterRepository.findByHqlWhere(packBean);
}
private DdlPackBean getDdlPackBean(MesWorkCenter workCenter) { private DdlPackBean getDdlPackBean(MesWorkCenter workCenter) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(workCenter.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(workCenter.getOrganizeCode());
if (!StringUtil.isEmpty(workCenter.getCenterType()) && 0 != workCenter.getCenterType()) {
DdlPreparedPack.getNumEqualPack(workCenter.getCenterType(), "centerType", packBean);
}
DdlPreparedPack.getStringLikerPack(workCenter.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getStringLikerPack(workCenter.getWorkCenterCode(), "workCenterCode", packBean);
return packBean; return packBean;
} }

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.printqueue.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.printqueue.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCenterService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.printqueue.IPrintQueueStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.printqueue.IPrintQueueStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
@ -53,6 +54,9 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
@Autowired @Autowired
private MesWorkOrderAssemblyRepository workOrderAssemblyRepository; private MesWorkOrderAssemblyRepository workOrderAssemblyRepository;
@Autowired
private IMesWorkCenterService workCenterService;
@Override @Override
public List<MesPrintQueue> execute(MesPrintQueue model) { public List<MesPrintQueue> execute(MesPrintQueue model) {
@ -65,6 +69,15 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
// 获取工单信息 // 获取工单信息
List<MesWorkOrder> workOrderList = getMesWorkOrders(model, printQueueList); List<MesWorkOrder> workOrderList = getMesWorkOrders(model, printQueueList);
// 产线代码集合
List<String> workCenterCodeList = workOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList());
// 根据产线代码节后获取产线信息集合
List<MesWorkCenter> mesWorkCenters = workCenterService.queryMesWorkCenterList(workCenterCodeList, model.getOrganizeCode());
// 产线名称集合
Map<String, String> workCenterNameMap = mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y));
// 根据工单号对工单分组 // 根据工单号对工单分组
Map<String, MesWorkOrder> workOrderMapByWorkOrderNo = workOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); Map<String, MesWorkOrder> workOrderMapByWorkOrderNo = workOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y));
@ -89,6 +102,8 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
continue; continue;
} }
mesWorkOrder.setWorkCenterName(workCenterNameMap.get(printQueue.getWorkCenterCode()));
printQueue.setWorkOrderTypeName(MesExtEnumUtil.ORDER_TYPE.valueOfDescription(mesWorkOrder.getWorkOrderType())); printQueue.setWorkOrderTypeName(MesExtEnumUtil.ORDER_TYPE.valueOfDescription(mesWorkOrder.getWorkOrderType()));
MesPartProdGroup mesPartProdGroup = partProdGroupMap.get(printQueue.getPartProdGroupCode()); MesPartProdGroup mesPartProdGroup = partProdGroupMap.get(printQueue.getPartProdGroupCode());
@ -207,6 +222,7 @@ public class WorkOrderAssemblyPrintQueueStrategyService implements IPrintQueueSt
DdlPreparedPack.getInPackList(Arrays.asList(model.getPartProdGroupCodeQuery().split(MesPcnExtConstWords.COMMA)), MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean); DdlPreparedPack.getInPackList(Arrays.asList(model.getPartProdGroupCodeQuery().split(MesPcnExtConstWords.COMMA)), MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean);
DdlPreparedPack.getIsNull(MesPcnExtConstWords.REMARK, packBean); DdlPreparedPack.getIsNull(MesPcnExtConstWords.REMARK, packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue(), MesPcnExtConstWords.PRINT_QUEUE_TYPE, packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue(), MesPcnExtConstWords.PRINT_QUEUE_TYPE, packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue(), MesPcnExtConstWords.PRINT_STATUS, packBean);
return printQueueRepository.findByHqlWherePage(packBean, pager); return printQueueRepository.findByHqlWherePage(packBean, pager);
} }

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
@ -13,6 +14,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @Description : * @Description :
@ -50,11 +52,14 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null; MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null;
// 工单装配件信息 // 工单装配件信息
List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : null; List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : null;
workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq)); if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq));
// 返回的结果集合 // 返回的结果集合
List<Map<String, Object>> printDataMapList = new ArrayList<>(); List<Map<String, Object>> printDataMapList = new ArrayList<>();
// 单个标签参数值 // 单个标签参数值
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
// 产线名称
resultMap.put(MesPcnExtConstWords.WORK_CENTER_NAME, workOrder.getWorkCenterName());
// 车型名称 // 车型名称
resultMap.put(MesPcnExtConstWords.CAR_MODEL_NAME, customerCarModel == null ? "" : customerCarModel.getCarModelName()); resultMap.put(MesPcnExtConstWords.CAR_MODEL_NAME, customerCarModel == null ? "" : customerCarModel.getCarModelName());
// vinCode // vinCode
@ -77,6 +82,8 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
resultMap.put(MesPcnExtConstWords.REPRINT, ""); resultMap.put(MesPcnExtConstWords.REPRINT, "");
// EDI接口时间 取工单plan_start_time // EDI接口时间 取工单plan_start_time
resultMap.put(MesPcnExtConstWords.EDI_REC_TIME, workOrder.getPlanStartTime()); resultMap.put(MesPcnExtConstWords.EDI_REC_TIME, workOrder.getPlanStartTime());
// 打印时间
resultMap.put(MesPcnExtConstWords.PRINT_TIME, TimeTool.getNowTime("yyyyMMdd HH:mm:ss"));
// 总个数 // 总个数
Integer totalCount = partProdGroup.getTotalCount(); Integer totalCount = partProdGroup.getTotalCount();

@ -0,0 +1,46 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesProductionDataSaveNosortStepService")
public class MesProductionDataSaveNosortStepService extends BaseStepService {
@Override
public StepResult execute(StationRequestBean reqBean) {
//保存开模记录工步
((IStepService) SpringContextsUtil.getBean("mesMouldRecordGenerateStepService")).executeInState(reqBean);
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//加工异常处理工步
((IStepService) SpringContextsUtil.getBean("mesProductResultErrorHandleStepService")).executeInState(reqBean);
//生成加工记录工步
((IStepService) SpringContextsUtil.getBean("mesProductionRecordGenerateStepService")).executeInState(reqBean);
//保存装配记录工步
((IStepService) SpringContextsUtil.getBean("mesAssemblySaveStepService")).executeInState(reqBean);
//保存工单信息工步
((IStepService) SpringContextsUtil.getBean("mesWorkOrderSaveStepService")).executeInState(reqBean);
return stepSuccessCompleteAndSendMsgReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "保存加工结果成功!");
}
}

@ -0,0 +1,46 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesProductionDataSaveSortStepService")
public class MesProductionDataSaveSortStepService extends BaseStepService {
@Override
public StepResult execute(StationRequestBean reqBean) {
//保存开模记录工步
((IStepService) SpringContextsUtil.getBean("mesMouldRecordGenerateStepService")).executeInState(reqBean);
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//加工异常处理工步
((IStepService) SpringContextsUtil.getBean("mesProductResultErrorHandleStepService")).executeInState(reqBean);
//生成加工记录工步
((IStepService) SpringContextsUtil.getBean("mesProductionRecordGenerateStepService")).executeInState(reqBean);
//保存装配记录工步
((IStepService) SpringContextsUtil.getBean("mesAssemblySaveStepService")).executeInState(reqBean);
//保存工单信息工步
((IStepService) SpringContextsUtil.getBean("mesWorkOrderSaveStepService")).executeInState(reqBean);
return stepSuccessCompleteAndSendMsgReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "保存加工结果成功!");
}
}

@ -1,13 +1,14 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -18,28 +19,17 @@ import org.springframework.stereotype.Service;
@Service("mesProductionDataSaveStepService") @Service("mesProductionDataSaveStepService")
public class MesProductionDataSaveStepService extends BaseStepService { public class MesProductionDataSaveStepService extends BaseStepService {
@Autowired
public IMesProductionProcessContextStepService productionProcessContextStepService;
@Override @Override
public StepResult execute(StationRequestBean reqBean) { public StepResult execute(StationRequestBean reqBean) {
//保存开模记录工步 //排序线 保存加工结果工步
((IStepService) SpringContextsUtil.getBean("mesMouldRecordGenerateStepService")).executeInState(reqBean); if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == productionProcessContextStepService.getCenterType(reqBean)) return ((IStepService) SpringContextsUtil.getBean("mesProductionDataSaveSortStepService")).executeInState(reqBean);
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//加工异常处理工步
((IStepService) SpringContextsUtil.getBean("mesProductResultErrorHandleStepService")).executeInState(reqBean);
//生成加工记录工步
((IStepService) SpringContextsUtil.getBean("mesProductionRecordGenerateStepService")).executeInState(reqBean);
//保存装配记录工步
((IStepService) SpringContextsUtil.getBean("mesAssemblySaveStepService")).executeInState(reqBean);
//保存工单信息工步
((IStepService) SpringContextsUtil.getBean("mesWorkOrderSaveStepService")).executeInState(reqBean);
return stepSuccessCompleteAndSendMsgReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "保存加工结果成功!"); //非排序线 保存加工结果工步
return ((IStepService) SpringContextsUtil.getBean("mesProductionDataSaveNosortStepService")).executeInState(reqBean);
} }

@ -26,6 +26,9 @@ public class MesNcProcessingInputModel {
@ApiParam("条码") @ApiParam("条码")
private String sn; private String sn;
@ApiParam("客户条码")
private String custSn;
@ApiParam("责任人") @ApiParam("责任人")
private String onlyPerson; private String onlyPerson;

@ -42,6 +42,9 @@ public class MesPartInspectionInputModel {
@ApiParam("条码") @ApiParam("条码")
private String sn; private String sn;
@ApiParam("客户条码")
private String custSn;
@ApiParam("正反面") @ApiParam("正反面")
private Integer frontBack; private Integer frontBack;

@ -570,4 +570,7 @@ public class MesPcnExtConstWords {
// 装配件参数 // 装配件参数
public static final String ASSEMBLY_PARAM = "assemblyParam"; public static final String ASSEMBLY_PARAM = "assemblyParam";
// 产线名称
public static final String WORK_CENTER_NAME = "workCenterName";
} }

Loading…
Cancel
Save