|
|
|
@ -145,24 +145,25 @@ public class MesProductSnGenerateStepService extends BaseStepService {
|
|
|
|
|
MesPart part = partMap.get(prodRuleContext.getOutPartNo());
|
|
|
|
|
|
|
|
|
|
//加工规则中进料零件与产出零件是否一致
|
|
|
|
|
Boolean isSamePart = isSamePart(prodRuleContext.getInPartNo(), prodRuleContext.getOutPartNo());
|
|
|
|
|
|
|
|
|
|
//进出一致, 无需生成
|
|
|
|
|
if (isSamePart) return new MesProductionPsOutContext().copy(produceSnExtService.getProduceSn(reqBean.getOrganizeCode(), null != productionPsInContext ? productionPsInContext.getId() : null), prodRuleContext.getForeignKey());
|
|
|
|
|
|
|
|
|
|
//判断存在主条码的时候是否此前已生成当前工位的未知条码
|
|
|
|
|
MesProduceSn produceSn = (null == productionPsInContext || StringUtils.isEmpty(productionPsInContext.getRelateId())) ? null : produceSnExtService.getProduceSn(reqBean.getOrganizeCode(), productionPsInContext.getRelateId());
|
|
|
|
|
if (null == produceSn) produceSn = new MesProduceSn();
|
|
|
|
|
|
|
|
|
|
produceSn.setProductSn((null != productionPsInContext && !StringUtils.isEmpty(productionPsInContext.getProductSn())) ? productionPsInContext.getProductSn() : doGererateSerialNo(reqBean, resultBean, getProduceSnNumberRule(reqBean, resultBean, part), part));
|
|
|
|
|
|
|
|
|
|
produceSn.setSerialNumber(doGererateSerialNo(reqBean, resultBean, MesPcnExtConstWords.DEFAULT_SERIAL_NUMBER_RULE, part));
|
|
|
|
|
Boolean isSamePart = isSamePart(productionPsInContext, productionPartContext);
|
|
|
|
|
|
|
|
|
|
MesProduceSn produceSn;
|
|
|
|
|
//进出一致, 不累计工单完成数量 在显示装配件工步中已经验证了 进出一致 进出存在工单则必须一致
|
|
|
|
|
if (isSamePart) produceSn = produceSnExtService.getProduceSn(reqBean.getOrganizeCode(), productionPsInContext.getId());
|
|
|
|
|
//未知条码
|
|
|
|
|
else if (null != productionPsInContext && !StringUtils.isEmpty(productionPsInContext.getRelateId())) produceSn = produceSnExtService.getProduceSn(reqBean.getOrganizeCode(), productionPsInContext.getRelateId());
|
|
|
|
|
//生成新条码
|
|
|
|
|
else produceSn = new MesProduceSn();
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getProductSn())) {
|
|
|
|
|
produceSn.setProductSn((null != productionPsInContext && !StringUtils.isEmpty(productionPsInContext.getProductSn())) ? productionPsInContext.getProductSn() : doGererateSerialNo(reqBean, resultBean, getProduceSnNumberRule(reqBean, resultBean, part), part));
|
|
|
|
|
produceSn.setCustSn(produceSn.getProductSn());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
produceSn.setCustSn(produceSn.getProductSn());
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getSerialNumber())) produceSn.setSerialNumber(doGererateSerialNo(reqBean, resultBean, MesPcnExtConstWords.DEFAULT_SERIAL_NUMBER_RULE, part));
|
|
|
|
|
|
|
|
|
|
produceSn.setQty(new Double(1));
|
|
|
|
|
|
|
|
|
|
//未知状态的需要重置工单相关字段
|
|
|
|
|
produceSn.setWorkOrderNo((null != productionPartContext && !StringUtils.isEmpty(productionPartContext.getWorkOrderNo())) ? productionPartContext.getWorkOrderNo() : null);
|
|
|
|
|
produceSn.setCustCode((null != productionPartContext && !StringUtils.isEmpty(productionPartContext.getWorkOrderNo())) ? productionPartContext.getCustCode() : null);
|
|
|
|
|
produceSn.setCustPartNo((null != productionPartContext && !StringUtils.isEmpty(productionPartContext.getWorkOrderNo())) ? productionPartContext.getCustPartNo() : null);
|
|
|
|
@ -184,21 +185,21 @@ public class MesProductSnGenerateStepService extends BaseStepService {
|
|
|
|
|
produceSn.setShiftCode(prodShiftContext.getShiftCode());
|
|
|
|
|
produceSn.setShiftGroup(prodShiftContext.getShiftGroup());
|
|
|
|
|
|
|
|
|
|
produceSn.setPrintCount(MesPcnExtConstWords.ZERO);
|
|
|
|
|
produceSn.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue());
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getPrintCount())) produceSn.setPrintCount(MesPcnExtConstWords.ZERO);
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getPrintStatus())) produceSn.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue());
|
|
|
|
|
|
|
|
|
|
produceSn.setOrganizeCode(reqBean.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getId())) ConvertBean.serviceModelInitialize(produceSn, reqBean.getUserInfo());
|
|
|
|
|
else ConvertBean.serviceModelUpdate(produceSn, reqBean.getUserInfo());
|
|
|
|
|
|
|
|
|
|
produceSn.setInWorkCenterTime(produceSn.getModifyDatetime());
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getInWorkCenterTime())) produceSn.setInWorkCenterTime(produceSn.getModifyDatetime());
|
|
|
|
|
produceSn.setLotNo(produceSn.getModifyDatetime().substring(0, 10));
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(produceSn.getId())) produceSn = produceSnRepository.insert(produceSn);
|
|
|
|
|
else produceSnRepository.save(produceSn);
|
|
|
|
|
|
|
|
|
|
return new MesProductionPsOutContext().copy(produceSn, prodRuleContext.getForeignKey()).isCalcCompleteQty(produceSn.getWorkOrderNo());
|
|
|
|
|
return new MesProductionPsOutContext().copy(produceSn, prodRuleContext.getForeignKey()).isCalcCompleteQty(!StringUtils.isEmpty(produceSn.getWorkOrderNo()) && !isSamePart);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -220,9 +221,12 @@ public class MesProductSnGenerateStepService extends BaseStepService {
|
|
|
|
|
return part.getProductMatchRule();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Boolean isSamePart(String inPartNo, String outPartNo) {
|
|
|
|
|
if (!StringUtils.isEmpty(inPartNo) && inPartNo.equals(outPartNo)) return true;
|
|
|
|
|
else return false;
|
|
|
|
|
private Boolean isSamePart(MesProductionPsInContext productionPsInContext, MesProductionPartContext productionPartContext) {
|
|
|
|
|
if (null == productionPsInContext) return false;
|
|
|
|
|
if (StringUtils.isEmpty(productionPsInContext.getPartNo())) return false;
|
|
|
|
|
if (null == productionPartContext) return false;
|
|
|
|
|
if (!productionPsInContext.getPartNo().equals(productionPartContext.getPartNo())) return false;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|