tags/yfai-pcn-ext-v1.0
王杰 11 months ago
parent f5f4560de2
commit 08c5ccdd3c

@ -13,10 +13,10 @@ import java.util.List;
public interface IMesAssemblyExtService {
@ApiOperation(value = "【排序线】获取生产工单装配件绑定记录")
List<MesProductionAssemblySortContext> getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext, List<String> workOrderNoList);
List<MesProductionAssemblySortContext> getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext);
@ApiOperation(value = "【排序线】获取生产工单装配件清单")
List<MesWorkOrderAssembly> getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext, List<String> workOrderNoList);
List<MesWorkOrderAssembly> getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext);
@ApiOperation(value = "获取装配件绑定记录")
List<MesProductionAssembly> getProductionAssemblyList(String organizeCode, Integer dataSource, List<Long> sourceIdList);

@ -1,7 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg;
import io.swagger.annotations.ApiOperation;
@ -9,9 +8,6 @@ import java.util.List;
public interface IMesProdRuleCfgExtService {
@ApiOperation(value = "【排序线】获取产品加工规则(生产工单对应的装配件绑定记录)")
List<MesProdRuleContext> getProdRuleSortContextList(MesProdRuleContext prodRuleContext, List<MesProductionPartContext> productionPartContextList);
@ApiOperation(value = "【非排序线】获取产品加工规则")
List<MesProdRuleNosortCfg> getProdRuleNosortCfgList(MesProdRuleContext prodRuleContext);
@ -21,4 +17,6 @@ public interface IMesProdRuleCfgExtService {
@ApiOperation(value = "【非排序线】获取产品加工规则对应的装配件信息")
MesProdRuleContext getProdRuleContext(MesProdRuleNosortCfg prodRuleNosortCfg, Integer foreignKey);
@ApiOperation(value = "【排序线】获取产品加工规则(条码对应的装配件绑定记录,目前条码等同工单)")
MesProdRuleContext getProdRuleSortContext(MesProdRuleContext prodRuleContext);
}

@ -40,15 +40,15 @@ public class MesAssemblyExtService implements IMesAssemblyExtService {
//【排序线】获取生产工单装配件绑定记录
@Override
public List<MesProductionAssemblySortContext> getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext, List<String> workOrderNoList) {
public List<MesProductionAssemblySortContext> getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext) {
if (null == prodRuleContext || CollectionUtils.isEmpty(workOrderNoList)) return null;
if (null == prodRuleContext) return null;
if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) ||
StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode())) return null;
StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null;
//【排序线】获取生产工单装配件清单
List<MesWorkOrderAssembly> workOrderAssemblyList = getWorkOrderAssemblyList(prodRuleContext, workOrderNoList);
List<MesWorkOrderAssembly> workOrderAssemblyList = getWorkOrderAssemblyList(prodRuleContext);
if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null;
@ -65,19 +65,18 @@ public class MesAssemblyExtService implements IMesAssemblyExtService {
//【排序线】获取生产工单装配件清单
@Override
public List<MesWorkOrderAssembly> getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext, List<String> workOrderNoList) {
public List<MesWorkOrderAssembly> getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext) {
if (null == prodRuleContext || CollectionUtils.isEmpty(workOrderNoList)) return null;
if (null == prodRuleContext) return null;
if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) ||
StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode())) return null;
StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(prodRuleContext.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(prodRuleContext.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringEqualPack(prodRuleContext.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean);
DdlPreparedPack.getStringEqualPack(prodRuleContext.getProcessCode(), MesPcnExtConstWords.PROCESS_CODE, packBean);
if (workOrderNoList.size() == 1) DdlPreparedPack.getStringEqualPack(workOrderNoList.get(0), MesPcnExtConstWords.WORK_ORDER_NO, packBean);
else DdlPreparedPack.getInPackList(workOrderNoList, MesPcnExtConstWords.WORK_ORDER_NO, packBean);
DdlPreparedPack.getStringEqualPack(prodRuleContext.getProductSn(), MesPcnExtConstWords.PRODUCT_SN, packBean);
return workOrderAssemblyRepository.findByHqlWhere(packBean);

@ -3,8 +3,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblySortContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -20,8 +18,6 @@ import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -33,41 +29,6 @@ public class MesProdRuleCfgExtService implements IMesProdRuleCfgExtService {
@Autowired
private MesProdRuleNoSortCfgRepository prodRuleNoSortCfgRepository;
//【排序线】获取加工规则(生产工单对应的装配件绑定记录)
@Override
public List<MesProdRuleContext> getProdRuleSortContextList(MesProdRuleContext prodRuleContext, List<MesProductionPartContext> productionPartContextList) {
//【排序线】获取生产工单装配件绑定记录
List<MesProductionAssemblySortContext> productionAssemblySortContextList = assemblyExtService.getProductionAssemblySortContextList(prodRuleContext, productionPartContextList.stream().filter(o -> null != o).map(MesProductionPartContext::getWorkOrderNo).collect(Collectors.toList()));
//装配件绑定记录根据生产工单分组
Map<String, List<MesProductionAssemblySortContext>> assemblyDataMap = groupProductionAssemblySortContextList(productionAssemblySortContextList);
//实例化排序线加工规则与装配件数据记录
List<MesProdRuleContext> prodRuleContextList = new ArrayList<>();
//实例化排序线加工规则与装配件数据记录
for (int i = 0; i < productionPartContextList.size(); i ++) {
prodRuleContextList.add(createSortProdRuleContext(productionPartContextList.get(i).foreignKey(i + 1), assemblyDataMap));
}
return prodRuleContextList;
}
//装配件绑定记录根据生产工单分组
private Map<String, List<MesProductionAssemblySortContext>> groupProductionAssemblySortContextList(List<MesProductionAssemblySortContext> productionAssemblySortContextList) {
return CollectionUtils.isEmpty(productionAssemblySortContextList) ? null :
productionAssemblySortContextList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesProductionAssemblySortContext::getWorkOrderNo));
}
//实例化排序线加工规则与装配件数据记录
private MesProdRuleContext createSortProdRuleContext(MesProductionPartContext productionPartContext, Map<String, List<MesProductionAssemblySortContext>> assemblyDataMap) {
MesProdRuleContext prodRuleContext = new MesProdRuleContext(productionPartContext.getOrganizeCode()).foreignKey(productionPartContext.getForeignKey());
if (!CollectionUtils.isEmpty(assemblyDataMap)) prodRuleContext.assemblyDataJson(assemblyDataMap.get(productionPartContext.getWorkOrderNo()));
return prodRuleContext;
}
//【非排序线】获取产品加工规则
@Override
public List<MesProdRuleNosortCfg> getProdRuleNosortCfgList(MesProdRuleContext prodRuleContext) {
@ -120,4 +81,11 @@ public class MesProdRuleCfgExtService implements IMesProdRuleCfgExtService {
return prodRuleContext;
}
//【排序线】获取产品加工规则(条码对应的装配件绑定记录,目前条码等同工单)
@Override
public MesProdRuleContext getProdRuleSortContext(MesProdRuleContext prodRuleContext) {
return prodRuleContext.assemblyDataJson(assemblyExtService.getProductionAssemblySortContextList(prodRuleContext));
}
}

@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.util.PojoAttrUtil;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
@ -25,6 +26,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@ -82,6 +84,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
if (CollectionUtils.isEmpty(prodRuleContextList)) prodRuleContextList = new ArrayList<>();
Integer initSize = prodRuleContextList.size();
//封装非排序加工规则
doHandleProdRuleData(reqBean, resultBean, stepResult, workCenter, cellEquipContext, prodRuleContextList, productionPartContextList, productionPsInContextList);
if (prodRuleContextList.size() != initSize) {
@ -144,7 +147,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
for (MesProductionPartContext productionPartContext : productionPartContextList) {
//foreignKey有值代表已经匹配过产品加工规则
if (null == productionPartContext || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue;
if (null == productionPartContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue;
List<MesProdRuleNosortCfg> filterList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo()) : null;
if (CollectionUtils.isEmpty(prodRuleNosortCfgList)) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查非排序产品加工规则信息,未查询到设备[%s]产出零件[%s]进料零件[空]进料零件规则[空]的配置信息", cellEquipContext.getEquipmentCode(), productionPartContext.getPartNo()));
@ -172,7 +175,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
//foreignKey有值代表已经匹配过产品加工规则
if (null == productionPsInContext || !StringUtils.isEmpty(productionPsInContext.getForeignKey())) continue;
if (null == productionPsInContext || productionPsInContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPsInContext.getForeignKey())) continue;
List<MesProdRuleNosortCfg> filterList;
//搜集进料零件号匹配的产品加工规则
@ -215,7 +218,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
for (MesProductionPartContext productionPartContext : productionPartContextList) {
//foreignKey有值代表已经匹配过产品加工规则
if (null == productionPartContext || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue;
if (null == productionPartContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue;
//获取匹配产出零件的所有加工规则
List<MesProdRuleNosortCfg> outPartNoProdRuleList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo()) : null;
@ -228,7 +231,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
//foreignKey有值代表已经匹配过产品加工规则
if (null == productionPsInContext || !StringUtils.isEmpty(productionPsInContext.getForeignKey())) continue;
if (null == productionPsInContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPsInContext.getForeignKey())) continue;
List<MesProdRuleNosortCfg> innerfilterList;
//搜集进料零件号匹配的产品加工规则
@ -310,12 +313,16 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
private List<MesAssemblyShowContext> getAssemblyShowContextList(MesCellEquipContext cellEquipContext, List<MesProductionAssemblyContext> productionAssemblyContextList, MesProdRuleContext prodRuleContext, String workOrderNo) {
if (CollectionUtils.isEmpty(productionAssemblyContextList)) return null;
List<MesAssemblyShowContext> assemblyShowContextList = new ArrayList<>();
Integer index = 0;
for (MesProductionAssemblyContext item : productionAssemblyContextList) {
if (null == item) continue;
assemblyShowContextList.add(assemblyShowContext(item, prodRuleContext, workOrderNo).index(index += 1));
assemblyShowContextList.add(assemblyShowContext(item, prodRuleContext, workOrderNo));
}
assemblyShowContextList = assemblyShowContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList());
AtomicReference<Integer> index = new AtomicReference<>(0);
assemblyShowContextList.forEach(o -> o.index(index.updateAndGet(v -> v + 1)));
return assemblyShowContextList;
}

@ -7,6 +7,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.util.PojoAttrUtil;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.model.AttrBean;
@ -24,6 +25,8 @@ import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@ -68,8 +71,27 @@ public class MesAssemblyShowSortStepService extends BaseStepService {
//获取上下文加工规则数据信息集合
List<MesProdRuleContext> prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean);
//不存在加工规则数据信息则进行查询
if (CollectionUtils.isEmpty(prodRuleContextList)) prodRuleContextList = doHandleProdRuleData(reqBean, resultBean, stepResult, cellEquipContext);
//获取上下文产出零件数据信息集合
List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
//获取上下文进料零件条码信息集合
List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean);
//根据现有数据【产出零件数据】【进料零件条码信息】比对上下文中已经存在的加工规则数据信息集合, 没有加工规则的数据进行查询
if (CollectionUtils.isEmpty(prodRuleContextList)) prodRuleContextList = new ArrayList<>();
Integer initSize = prodRuleContextList.size();
//封装排序加工规则
doHandleProdRuleData(reqBean, resultBean, stepResult, workCenter, cellEquipContext, prodRuleContextList, productionPartContextList, productionPsInContextList);
if (prodRuleContextList.size() != initSize) {
//保存上下文产品加工规则信息集合
productionDispatchContextStepService.saveProdRuleDataContext(reqBean, prodRuleContextList);
//保存上下文产出零件信息
if (!CollectionUtils.isEmpty(productionPartContextList)) productionDispatchContextStepService.saveProductionPartContext(reqBean, productionPartContextList);
//保存进料主条码数据
if (!CollectionUtils.isEmpty(productionPsInContextList)) productionDispatchContextStepService.saveProductionPsInContext(reqBean, productionPsInContextList);
}
if (!stepResult.isCompleted()) return stepResult;
@ -77,29 +99,33 @@ public class MesAssemblyShowSortStepService extends BaseStepService {
if (!showProductionAssembly(reqBean, resultBean, workCenter, cellEquipContext, prodRuleContextList))
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前未查询到相关的装配件清单");
//保存上下文产品加工规则信息集合
productionDispatchContextStepService.saveProdRuleDataContext(reqBean, prodRuleContextList);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "显示装配件扫描项成功!");
}
//查询排序线加工规则装配件数据信息
private List<MesProdRuleContext> doHandleProdRuleData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesCellEquipContext cellEquipContext) {
private void doHandleProdRuleData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkCenter workCenter, MesCellEquipContext cellEquipContext,
List<MesProdRuleContext> prodRuleContextList, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> productionPsInContextList) {
//从上下文中取出生产工单数据信息集合
List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
//上下文中不存在进料主条码数据信息
if (CollectionUtils.isEmpty(productionPsInContextList) || CollectionUtils.isEmpty(productionPartContextList))
execNonCompleteAndSendMsg(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在加工单或条码数据信息,请重置工序!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//上下文中不存在生产工单数据信息集合
if (CollectionUtils.isEmpty(productionPartContextList)) execNonCompleteAndSendMsg(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在生产工单数据信息,请重新扫描加工单!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//拿到当前最大的foreignKey
Optional<MesProductionPsInContext> maxForeignKeyOptional = productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).max(Comparator.comparing(MesProductionPsInContext::getForeignKey));
Integer foreignKey = (null != maxForeignKeyOptional && maxForeignKeyOptional.isPresent()) ? maxForeignKeyOptional.get().getForeignKey() : MesPcnExtConstWords.ZERO;
//获取排序线的装配件清单
List<MesProdRuleContext> prodRuleContextList = prodRuleCfgExtService.getProdRuleSortContextList(new MesProdRuleContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode()), productionPartContextList);
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
//保存设备当前一轮工序的装配件清单信息
if (!CollectionUtils.isEmpty(prodRuleContextList)) productionDispatchContextStepService.saveProdRuleDataContext(reqBean, prodRuleContextList);
//foreignKey有值代表已经匹配过产品加工规则
if (null == productionPsInContext || productionPsInContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPsInContext.getForeignKey())) continue;
return prodRuleContextList;
//【排序线】获取产品加工规则(条码对应的装配件绑定记录,目前条码等同工单)
prodRuleContextList.add(prodRuleCfgExtService.getProdRuleSortContext(new MesProdRuleContext(
reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionPsInContext.getProductSn()).foreignKey(
productionPartContextList.stream().filter(o -> (null != o && o.getWorkOrderNo().equals(productionPsInContext.getWorkOrderNo()))).findFirst().get().foreignKey(productionPsInContext.foreignKey(foreignKey += 1).getForeignKey()).getForeignKey())));
}
}
@ -142,6 +168,10 @@ public class MesAssemblyShowSortStepService extends BaseStepService {
assemblyShowContextList.add(assemblyShowContext(item));
}
assemblyShowContextList = assemblyShowContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList());
AtomicReference<Integer> index = new AtomicReference<>(0);
assemblyShowContextList.forEach(o -> o.index(index.updateAndGet(v -> v + 1)));
return assemblyShowContextList;
}

@ -27,6 +27,9 @@ public class MesProdRuleContext implements Serializable {
@ApiParam(name = "数据关联键")
private Integer foreignKey;
@ApiParam(name = "读/扫主条码信息(内制件/外协件/排序条码即工单号),不一定有值")
private String productSn;
@ApiParam("装配件绑定清单 [JSON]List<MesProductionAssemblyContext>")
public String assemblyDataJson;
@ -43,9 +46,6 @@ public class MesProdRuleContext implements Serializable {
//-------以下非排序属性-------------
@ApiParam(name = "读/扫主条码信息(内制件/外协件),不一定有值")
private String productSn;
@ApiParam("非排序产品加工规则ID")
public Long pid;
@ -107,11 +107,12 @@ public class MesProdRuleContext implements Serializable {
this.organizeCode = organizeCode;
}
public MesProdRuleContext(String organizeCode, String workCenterCode, String workCellCode, String processCode) {
public MesProdRuleContext(String organizeCode, String workCenterCode, String workCellCode, String processCode, String productSn) {
this.organizeCode = organizeCode;
this.workCenterCode = workCenterCode;
this.workCellCode = workCellCode;
this.processCode = processCode;
this.productSn = productSn;
}
public MesProdRuleContext foreignKey(Integer foreignKey) {

@ -31,7 +31,10 @@ public class MesProductionPsInContext implements Serializable {
@ApiParam("未知条码ID/队列ID")
private Long relateId;
@ApiParam("非排序进料零件条码/排序工单号")
@ApiParam("工单号")
private String workOrderNo;
@ApiParam("零件条码")
private String productSn;
@ApiParam("过程条码")

Loading…
Cancel
Save