通用顺序防错工步

tags/yfai-pcn-ext-v2.3
王杰 8 months ago
parent 428e0bdce6
commit 59fc125885

@ -23,6 +23,9 @@ public interface IMesWorkOrderExtService {
@ApiOperation(value = "根据生产工单顺序号,生产线代码, 零件生产组代码查询上一个生产工单信息【排序】") @ApiOperation(value = "根据生产工单顺序号,生产线代码, 零件生产组代码查询上一个生产工单信息【排序】")
MesWorkOrder getWorkOrder(String organizeCode, String workCenterCode, Long produceSeq, String partProdGroupCode); MesWorkOrder getWorkOrder(String organizeCode, String workCenterCode, Long produceSeq, String partProdGroupCode);
@ApiOperation(value = "根据生产线代码, 零件生产组代码查询生产工单信息【排序】")
List<MesWorkOrder> getWorkOrderList(String organizeCode, String workCenterCode, String partProdGroupCode);
MesWorkOrder insert(MesWorkOrder item); MesWorkOrder insert(MesWorkOrder item);
void update(MesWorkOrder item); void update(MesWorkOrder item);

@ -85,11 +85,22 @@ public class MesWorkOrderExtService implements IMesWorkOrderExtService {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(partProdGroupCode) || StringUtils.isEmpty(produceSeq) || produceSeq.compareTo(0L) == 0) return null; if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(partProdGroupCode) || StringUtils.isEmpty(produceSeq) || produceSeq.compareTo(0L) == 0) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringEqualPack(partProdGroupCode, MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean);
DdlPreparedPack.getNumberSmallerPack(produceSeq, MesPcnExtConstWords.PRODUCE_SEQ, packBean); DdlPreparedPack.getNumberSmallerPack(produceSeq, MesPcnExtConstWords.PRODUCE_SEQ, packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.PRODUCE_SEQ}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.PRODUCE_SEQ}, packBean);
return workOrderRepository.getByProperty(packBean); return workOrderRepository.getByProperty(packBean);
} }
//根据生产线代码, 零件生产组代码查询生产工单信息【排序】
@Override
public List<MesWorkOrder> getWorkOrderList(String organizeCode, String workCenterCode, String partProdGroupCode) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(partProdGroupCode)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringEqualPack(partProdGroupCode, MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean);
return workOrderRepository.findByHqlWhere(packBean);
}
@Override @Override
@MonitorLog @MonitorLog
public MesWorkOrder insert(MesWorkOrder item) { public MesWorkOrder insert(MesWorkOrder item) {

@ -19,10 +19,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -75,12 +72,12 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单客户订单号顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单客户订单号顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//验证是否存在工艺强过码, 存在则保存 并返回强过的加工单 //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单
List<String> workOrderNoList2Jump = doHandleCraftJumpCode(reqBean, productionPartContextList); List<String> workOrderNoList2Jump = doHandleCraftJumpCode2Custom(reqBean, productionPartContextList);
if (!CollectionUtils.isEmpty(workOrderNoList2Jump)) if (!CollectionUtils.isEmpty(workOrderNoList2Jump))
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList2Jump.toString()), stepResult, String.format("加工单%s跳过顺序防错验证成功!", workOrderNoList2Jump.toString())); return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList2Jump.toString()), stepResult, String.format("加工单%s跳过客户订单号顺序防错验证成功!", workOrderNoList2Jump.toString()));
//验证是否已经全部通过 //验证是否已经全部通过
if (!isExistNeedCheckProduceSeq(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "加工单均已通过顺序防错验证!"); if (!isExistNeedCheckProduceSeq2Custom(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "加工单均已通过客户订单号顺序防错验证!");
//顺序防错验证处理 //顺序防错验证处理
doHandleProduceSeqCheck(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList); doHandleProduceSeqCheck(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList);
@ -90,19 +87,20 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck
} }
//验证是否存在工艺强过码, 存在则保存 并返回强过的加工单 //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单
public List<String> doHandleCraftJumpCode(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList) { private List<String> doHandleCraftJumpCode2Custom(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList) {
List<String> workOrderNoList2Jump = null; List<String> workOrderNoList2Jump = null;
for (MesProductionPartContext productionPartContext : productionPartContextList) { for (MesProductionPartContext productionPartContext : productionPartContextList) {
if (null == productionPartContext || productionPartContext.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue; if (null == productionPartContext || productionPartContext.getCustomCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue;
if (CollectionUtils.isEmpty(workOrderNoList2Jump)) workOrderNoList2Jump = new ArrayList<>(); if (CollectionUtils.isEmpty(workOrderNoList2Jump)) workOrderNoList2Jump = new ArrayList<>();
workOrderNoList2Jump.add(productionPartContext.getWorkOrderNo()); workOrderNoList2Jump.add(productionPartContext.getWorkOrderNo());
productionPartContext.checkSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); //验证成功不需要标记【checkSeqResult】
productionPartContext.customCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
} }
@ -113,6 +111,13 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck
} }
//验证是否已经全部通过
private Boolean isExistNeedCheckProduceSeq2Custom(List<MesProductionPartContext> productionPartContextList) {
Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o &&
o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 && !StringUtils.isEmpty(o.getCustOrderNo()) && o.getCustomCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0)).findFirst();
return (null == optional || !optional.isPresent()) ? false : true;
}
//顺序防错验证处理 //顺序防错验证处理
private void doHandleProduceSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) { private void doHandleProduceSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) {
@ -125,8 +130,9 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck
//顺序防错验证 //顺序防错验证
Boolean result = doProduceSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext); Boolean result = doProduceSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext);
if (!result) productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); //验证失败需要同时标记【checkSeqResult】,但验证成功不需要标记【checkSeqResult】
else productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); if (result) productionPartContext.customCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
else productionPartContext.customCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()).checkSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
workOrderNoList.add(productionPartContext.getWorkOrderNo()); workOrderNoList.add(productionPartContext.getWorkOrderNo());
@ -135,24 +141,31 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck
//保存上下文产出零件信息 //保存上下文产出零件信息
productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList); productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList);
if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList.toString()), String.format("加工单%s顺序防错验证成功!", workOrderNoList.toString()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList.toString()), String.format("加工单%s客户订单号顺序防错验证成功!", workOrderNoList.toString()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
else this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList.toString()), stepResult.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); else this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList.toString()), stepResult.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
} }
//前道工艺防错验证 【排序 //前道工艺防错验证 【排序客户订单号
private Boolean doProduceSeqCheckSort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPartContext productionPartContext) { private Boolean doProduceSeqCheckSort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPartContext productionPartContext) {
String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON; if (StringUtils.isEmpty(productionPartContext.getCustOrderNo()) || productionPartContext.getCustOrderNo().length() <= 3) return true;
//根据生产工单顺序号,生产线代码,零件生产组代码查询上一个生产工单信息 String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON;
MesWorkOrder workOrder = workOrderExtService.getWorkOrder(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), productionPartContext.getProduceSeq(), productionPartContext.getPartProdGroupCode());
if (null == workOrder) return true; //根据生产线代码,零件生产组代码查询产工单信息
List<MesWorkOrder> workOrderList = workOrderExtService.getWorkOrderList(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), productionPartContext.getPartProdGroupCode());
//1GA2752364 【1GA=客户工厂号; 2752364 = 客户订单号】 根据固定的前三位分组, 基于同一个零件生产组下相同前缀判断客户订单的流水号
Map<String, List<MesWorkOrder>> custOrderNoMap = CollectionUtils.isEmpty(workOrderList) ? null : workOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCustOrderNo()) && o.getCustOrderNo().length() > 3)).collect(Collectors.groupingBy(o -> o.getCustOrderNo().substring(0, 3)));
workOrderList = CollectionUtils.isEmpty(custOrderNoMap) ? null : custOrderNoMap.get(productionPartContext.getCustOrderNo().substring(0, 3));
workOrderList = CollectionUtils.isEmpty(workOrderList) ? null : workOrderList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesWorkOrder::getCustOrderNo).reversed()).collect(Collectors.toList());
Optional<MesWorkOrder> workOrderOp = CollectionUtils.isEmpty(workOrderList) ? null : workOrderList.stream().filter(o -> (null != o && o.getCustOrderNo().compareTo(productionPartContext.getCustOrderNo()) <= 0)).findFirst();
if (null == workOrderOp || !workOrderOp.isPresent()) return true;
MesWorkOrder workOrder = workOrderOp.get();
if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) < 0) if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) < 0)
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]工单状态[%s]", return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]客户订单号[%s]顺序防错验证失败,前一个加工单[%s]客户订单号[%s]工单状态[%s]",
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProduceSeq(), workOrder.getWorkOrderNo(), workOrder.getProduceSeq(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))).isCompleted(); message, productionPartContext.getWorkOrderNo(), productionPartContext.getCustOrderNo(), workOrder.getWorkOrderNo(), workOrder.getCustOrderNo(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))).isCompleted();
if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()) >= 0) return true; if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()) >= 0) return true;
@ -167,8 +180,8 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck
Map<String, List<MesWorkOrderAssembly>> productSnMap = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getProductSn)); Map<String, List<MesWorkOrderAssembly>> productSnMap = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getProductSn));
if (CollectionUtils.isEmpty(productSnMap)) return true; if (CollectionUtils.isEmpty(productSnMap)) return true;
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]在当前工位[%s]存在未完成队列条码%s", return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]客户订单号[%s]顺序防错验证失败,前一个加工单[%s]客户订单号[%s]在当前工位存在未完成队列条码%s",
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProduceSeq(), workOrder.getWorkOrderNo(), workOrder.getProduceSeq(), reqBean.getWorkCellCode(), productSnMap.keySet().toString())).isCompleted(); message, productionPartContext.getWorkOrderNo(), productionPartContext.getCustOrderNo(), workOrder.getWorkOrderNo(), workOrder.getCustOrderNo(), productSnMap.keySet().toString())).isCompleted();
} }

@ -110,8 +110,7 @@ public class MesProduceSeqCheckNosortStepService extends MesProduceSeqCheckStepS
//顺序防错验证 //顺序防错验证
Boolean result = doProduceSeqCheckNosort(reqBean, stepResult, productionProcessContext, productionPartContext); Boolean result = doProduceSeqCheckNosort(reqBean, stepResult, productionProcessContext, productionPartContext);
if (!result) productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); productionPartContext.checkSeqResult(!result ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
else productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
workOrderNoList.add(productionPartContext.getWorkOrderNo()); workOrderNoList.add(productionPartContext.getWorkOrderNo());

@ -101,8 +101,7 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
//顺序防错验证 //顺序防错验证
Boolean result = doProduceSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext); Boolean result = doProduceSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext);
if (!result) productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); productionPartContext.checkSeqResult(!result ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
else productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
workOrderNoList.add(productionPartContext.getWorkOrderNo()); workOrderNoList.add(productionPartContext.getWorkOrderNo());
@ -143,8 +142,8 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
Map<String, List<MesWorkOrderAssembly>> productSnMap = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getProductSn)); Map<String, List<MesWorkOrderAssembly>> productSnMap = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getProductSn));
if (CollectionUtils.isEmpty(productSnMap)) return true; if (CollectionUtils.isEmpty(productSnMap)) return true;
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]在当前工位[%s]存在未完成队列条码%s", return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]在当前工位存在未完成队列条码%s",
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProduceSeq(), workOrder.getWorkOrderNo(), workOrder.getProduceSeq(), reqBean.getWorkCellCode(), productSnMap.keySet().toString())).isCompleted(); message, productionPartContext.getWorkOrderNo(), productionPartContext.getProduceSeq(), workOrder.getWorkOrderNo(), workOrder.getProduceSeq(), productSnMap.keySet().toString())).isCompleted();
} }

@ -169,10 +169,7 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi
//验证扫描信息属于工艺强过码 并且支持跳过,进行数据变更 //验证扫描信息属于工艺强过码 并且支持跳过,进行数据变更
private void updateProductionPartAndPsInContextList(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> cachedProductionPsInContextList, String craftJumpCode) { private void updateProductionPartAndPsInContextList(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> cachedProductionPsInContextList, String craftJumpCode) {
productionPartContextList.forEach(o -> { productionPartContextList.forEach(o -> {
if (o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) { if (o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode);
o.setCraftJumpCode(craftJumpCode);
}
}); });
cachedProductionPsInContextList.forEach(o -> { cachedProductionPsInContextList.forEach(o -> {
if (o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode); if (o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode);

@ -174,4 +174,9 @@ public class MesProductionPartContext implements Serializable {
return this; return this;
} }
public MesProductionPartContext customCheckSeqResult(Integer customCheckSeqResult) {
this.customCheckSeqResult = customCheckSeqResult;
return this;
}
} }

@ -185,6 +185,8 @@ public class MesPcnExtConstWords {
public static final String PACKAGE_SN = "packageSn"; public static final String PACKAGE_SN = "packageSn";
//包类型 //包类型
public static final String PACKAGE_TYPE_CODE = "packageTypeCode"; public static final String PACKAGE_TYPE_CODE = "packageTypeCode";
//零件生产组代码
public static final String PART_PROD_GROUP_CODE = "partProdGroupCode";
// 客制化条码长度:通用 // 客制化条码长度:通用

Loading…
Cancel
Save