tags/yfai-pcn-ext-v1.0
王杰 12 months ago
parent 21211cba9d
commit 374eb511fa

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import io.swagger.annotations.ApiOperation;
@ -18,7 +19,10 @@ public interface IMesProductionProcessContextStepService {
Boolean doCacheContext(StationRequestBean reqBean, String item, Object o);
@ApiOperation(value = "获取上下文对象")
Object getCachedContext(StationRequestBean reqBean, String item);
String getCachedContext(StationRequestBean reqBean, String item);
@ApiOperation(value = "获取展示组件MODULE_CONTENT内容")
List<List<StationKvBean>> getCachedModuleContext(StationRequestBean reqBean);
@ApiOperation(value = "存储生产过程上下文对象【工步根据业务实际情况执行,配置错误等情况无需执行】")
Boolean doCacheProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext);

@ -112,7 +112,7 @@ public class MesAssemblyReadStepService extends BaseStepService {
if (CollectionUtils.isEmpty(equipVariableCollectContextList))
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]装配件条码,持续监听中...", cellEquipContext.getEquipmentCode()));
//保存设备当前一轮工序的装配件信息
//保存设备当前一轮工序待验证的装配件条码信息
productionProcessContext.assemblySnJson(equipVariableCollectContextList);
return stepResult;

@ -1,14 +1,20 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @Description :
@ -22,23 +28,36 @@ public class MesAssemblyScanStepService extends BaseStepService {
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Override
public StepResult guide(StationRequestBean reqBean) {
return execSuccessCompleteAndSendGuideReturn(reqBean, new StationResultBean(), "请扫描装配件条码!");
}
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
if (StringUtils.isEmpty(reqBean.getScanInfo())) execSendGuideAndThrowEx(reqBean, resultBean, "请扫描装配件条码!");
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
//保存设备当前一轮工序待验证的装配件条码信息
productionProcessContext.assemblySnJson(getAssemblySnJson(reqBean));
return stepResult;
}
private List<MesEquipVariableCollectContext> getAssemblySnJson(StationRequestBean reqBean) {
List<MesEquipVariableCollectContext> equipVariableCollectContextList = new ArrayList<>();
equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), reqBean.getScanInfo(), TimeTool.getNowTime(true)));
return equipVariableCollectContextList;
}
}

@ -0,0 +1,35 @@
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.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesAssemblyShowStepService")
public class MesAssemblyShowStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
return stepResult;
}
}

@ -9,12 +9,13 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCfgCollectContex
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
@ -26,9 +27,11 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* @Description :
@ -50,6 +53,9 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
@Autowired
private IMesMouldMultiCavityService mouldMultiCavityService;
@Autowired
private IPartService partService;
@Override
public StepResult execute(StationRequestBean reqBean) {
@ -115,15 +121,63 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
String firstMouldNo = equipVariableCollectContextList.get(0).getEquipVariableValue();
List<MesMouldMultiCavity> mouldMultiCavityList = mouldMultiCavityService.getMouldMultiCavityList(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode(), firstMouldNo);
//验证一模多腔信息
List<MesMouldMultiCavity> mouldMultiCavityList = getMouldMultiCavityList(reqBean, resultBean, productionProcessContext, cellEquipContext.getEquipmentCode(), firstMouldNo, true);
if (CollectionUtils.isEmpty(mouldMultiCavityList)) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("当前设备[%s]与读取到的头道模具号[%s]未维护有效的一模多腔信息!", cellEquipContext.getEquipmentCode(), firstMouldNo));
//获取物料信息
Map<String, MesPart> partDataMap = getPartDataMap(reqBean, resultBean, productionProcessContext, mouldMultiCavityList);
//保存设备当前一轮工序的头道模具号与一模多腔信息
productionProcessContext.firstMouldNo(equipVariableCollectContextList.get(0)).mouldCavityJson(mouldMultiCavityList);
//保存设备当前一轮工序的头道模具号,一模多腔信息,物料信息
productionProcessContext.firstMouldNo(equipVariableCollectContextList.get(0)).mouldCavityJson(mouldMultiCavityList).partDataJson(partDataMap);
//更新展示组件MODULE_CONTENT内容
productionProcessContextStepService.doCacheContext(reqBean, MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue(), getModuleContextData(reqBean, mouldMultiCavityList, true));
return stepResult;
}
public List<MesMouldMultiCavity> getMouldMultiCavityList(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, String equipmentCode, String mouldNo, Boolean isFirstMouldNo) {
List<MesMouldMultiCavity> mouldMultiCavityList = productionProcessContext.getMouldCavityList();
if (!checkCachedMouldMultiCavityValid(mouldMultiCavityList, equipmentCode, mouldNo)) mouldMultiCavityList = mouldMultiCavityService.getMouldMultiCavityList(reqBean.getOrganizeCode(), equipmentCode, mouldNo);
//配置错误 抛出异常
if (CollectionUtils.isEmpty(mouldMultiCavityList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("当前设备[%s]与读取到的%s模具号[%s]未维护有效的一模多腔信息!", equipmentCode, isFirstMouldNo ? "头道" : MesPcnExtConstWords.EMPTY, mouldNo));
return mouldMultiCavityList;
}
private Boolean checkCachedMouldMultiCavityValid(List<MesMouldMultiCavity> mouldMultiCavityList, String equipmentCode, String firstMouldNo) {
return (!CollectionUtils.isEmpty(mouldMultiCavityList) && mouldMultiCavityList.get(0).getEquipmentCode().equals(equipmentCode) && mouldMultiCavityList.get(0).getMouldNo().equals(firstMouldNo)) ? true : false;
}
public Map<String, MesPart> getPartDataMap(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, List<MesMouldMultiCavity> mouldMultiCavityList) {
Map<String, MesPart> partDataMap = productionProcessContext.getPartDataMap();
List<String> partNoList = (mouldMultiCavityList.stream().filter(o -> (null != o)).map(MesMouldMultiCavity::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
if (!CollectionUtils.isEmpty(partDataMap) && partDataMap.keySet().containsAll(partNoList) && partNoList.containsAll(partDataMap.keySet())) return partDataMap;
Map<String, MesPart> finalPartDataMap = partService.getPartMap(reqBean.getOrganizeCode(), partNoList);
//物料信息缺失 抛出异常
List<String> filterList = CollectionUtils.isEmpty(finalPartDataMap) ? null : partNoList.stream().filter(o -> (null != o && !finalPartDataMap.containsKey(o))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(partDataMap) || !CollectionUtils.isEmpty(filterList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("请检查物料信息,物料编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString()));
return finalPartDataMap;
}
public List<List<StationKvBean>> getModuleContextData(StationRequestBean reqBean, List<MesMouldMultiCavity> mouldMultiCavityList, Boolean isFirstMouldNo) {
List<List<StationKvBean>> moduleContextData = new ArrayList<>();
mouldMultiCavityList.forEach(o -> StationKvBeanUtil.addStationKvBeanList(moduleContextData,
new ArrayList<>(), new StationKvBean(MesPcnExtConstWords.MOULD_NO, isFirstMouldNo ? "头道模具号" : "模具号", o.getMouldNo()), new StationKvBean(MesPcnConstWords.PART_NO, "物料编码", o.getPartNo()), new StationKvBean(MesPcnConstWords.PART_NAME, "物料名称", o.getPartName())));
return moduleContextData;
}
}

@ -11,10 +11,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
@ -50,6 +47,9 @@ public class MesMouldNoReadStepService extends BaseStepService {
@Autowired
private IMesMouldMultiCavityService mouldMultiCavityService;
@Autowired
private MesFirstMouldNoReadStepService firstMouldNoReadStepService;
@Override
public StepResult execute(StationRequestBean reqBean) {
@ -97,6 +97,9 @@ public class MesMouldNoReadStepService extends BaseStepService {
//验证模具号的有效性
if (stepResult.isCompleted()) checkMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList);
//保存设备当前一轮工序的模具号
if (stepResult.isCompleted()) productionProcessContext.mouldNo((MesEquipVariableCollectContext) stepResult.getObj());
productionProcessContextStepService.doCacheProductionProcessContext(reqBean, productionProcessContext);
if (!stepResult.isCompleted()) threadSleep(stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, MesPcnExtConstWords.READ_FAILURE_SLEEP_DEFAULT_TIME);
@ -115,23 +118,21 @@ public class MesMouldNoReadStepService extends BaseStepService {
String mouldNo = equipVariableCollectContextList.get(0).getEquipVariableValue();
if (StringUtils.isEmpty(productionProcessContext.getFirstMouldNo()) && !checkMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, mouldNo).isCompleted()) return stepResult;
stepResult.obj(equipVariableCollectContextList.get(0));
//保存设备当前一轮工序的模具号
productionProcessContext.mouldNo(equipVariableCollectContextList.get(0));
return stepResult;
}
if (!StringUtils.isEmpty(productionProcessContext.getFirstMouldNo()) || !StringUtils.isEmpty(productionProcessContext.getWorkOrderDataJson())) return stepResult;
private StepResult checkMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, String mouldNo) {
//磨具号当头道模具号的使用
List<MesMouldMultiCavity> mouldMultiCavityList = firstMouldNoReadStepService.getMouldMultiCavityList(reqBean, resultBean, productionProcessContext, cellEquipContext.getEquipmentCode(), mouldNo, false);
List<MesMouldMultiCavity> mouldMultiCavityList = mouldMultiCavityService.getMouldMultiCavityList(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode(), mouldNo);
//获取物料信息
Map<String, MesPart> partDataMap = firstMouldNoReadStepService.getPartDataMap(reqBean, resultBean, productionProcessContext, mouldMultiCavityList);
if (CollectionUtils.isEmpty(mouldMultiCavityList)) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("当前设备[%s]与读取到的模具号[%s]未维护有效的一模多腔信息!", cellEquipContext.getEquipmentCode(), mouldNo));
//保存设备当前一轮工序的一模多腔信息,物料信息
productionProcessContext.mouldCavityJson(mouldMultiCavityList).partDataJson(partDataMap);
//保存设备当前一轮工序的一模多腔信息
productionProcessContext.mouldCavityJson(mouldMultiCavityList);
//更新展示组件MODULE_CONTENT内容
productionProcessContextStepService.doCacheContext(reqBean, MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue(), firstMouldNoReadStepService.getModuleContextData(reqBean, mouldMultiCavityList, false));
return stepResult;

@ -112,7 +112,7 @@ public class MesProductSnReadStepService extends BaseStepService {
if (CollectionUtils.isEmpty(equipVariableCollectContextList))
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]主条码,持续监听中...", cellEquipContext.getEquipmentCode()));
//保存设备当前一轮工序的主信息
//保存设备当前一轮工序的待验证的条码信息
productionProcessContext.productSnJson(equipVariableCollectContextList);
return stepResult;

@ -10,10 +10,12 @@ import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -56,6 +58,12 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
}
@Override
public List<List<StationKvBean>> getCachedModuleContext(StationRequestBean reqBean) {
String moduleContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue());
return StringUtils.isEmpty(moduleContent) ? null : JSONObject.parseObject(moduleContent, new TypeReference<List<List<StationKvBean>>>() {});
}
@Override
public Boolean doCacheProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesProductionProcessContext.class.getSimpleName(), JSONObject.toJSONString(productionProcessContext));
}
@ -75,7 +83,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
if (StringUtils.isEmpty(productionProcessContext.getWorkCenterJson())) productionProcessContext.workCenterJson(prodOrgExtService.getWorkCenterDb(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()));
//生产过程上下文对象赋值工位信息
if (StringUtils.isEmpty(productionProcessContext.getWorkCenterJson())) productionProcessContext.workCellJson(prodOrgExtService.getWorkCellDb(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
if (StringUtils.isEmpty(productionProcessContext.getWorkCellJson())) productionProcessContext.workCellJson(prodOrgExtService.getWorkCellDb(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//生产过程上下文对象赋值工序工艺信息
if (StringUtils.isEmpty(productionProcessContext.getProcessCode()) || !productionProcessContext.getProcessCode().equals(reqBean.getProcessCode())) processContext(reqBean, productionProcessContext);

@ -6,7 +6,7 @@ import lombok.Data;
import org.springframework.beans.BeanUtils;
/**
* -LOG
* -LOG
*/
@Data
public class MesEquipVariableCollectContext {
@ -89,6 +89,12 @@ public class MesEquipVariableCollectContext {
this.equipVariableId = equipVariableId;
}
public MesEquipVariableCollectContext(String organizeCode, String equipVariableValue, String equipVariableReadtime) {
this.organizeCode = organizeCode;
this.equipVariableValue = equipVariableValue;
this.equipVariableReadtime = equipVariableReadtime;
}
public void copyValue(MesEquipmentLog equipmentLog, String equipVariableReadtime) {
if (null == equipmentLog) return;
BeanUtils.copyProperties(equipmentLog, this);

@ -2,15 +2,13 @@ package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import cn.estsh.i3plus.pojo.mes.bean.*;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -80,7 +78,7 @@ public class MesProductionProcessContext {
private String mouldCavityJson;
@ApiParam("零件信息")
private String partJson;
private String partDataJson;
@ApiParam("扫描信息:生产工单号")
private String workOrderNoJson;
@ -335,19 +333,22 @@ public class MesProductionProcessContext {
}
//从上下文中取出零件信息集合
public List<MesPart> getPartList() {
return StringUtils.isEmpty(this.partJson) ? null : JSONObject.parseArray(this.partJson, MesPart.class);
public Map<String, MesPart> getPartDataMap() {
// Map<String, String> partMap = StringUtils.isEmpty(this.partDataJson) ? null : JSONObject.parseObject(this.partDataJson, Map.class);
// return CollectionUtils.isEmpty(partMap) ? null : partMap.entrySet().stream().filter(o -> null != o).collect(Collectors.toMap(Map.Entry::getKey, o -> JSONObject.parseObject(o.getValue(), MesPart.class)));
return StringUtils.isEmpty(this.partDataJson) ? null : JSONObject.parseObject(this.partDataJson, new TypeReference<Map<String, MesPart>>() {});
}
//上下文赋值零件信息集合
public MesProductionProcessContext partJson(List<MesPart> partList) {
this.partJson = !CollectionUtils.isEmpty(partList) ? JSONObject.toJSONString(partList) : null;
public MesProductionProcessContext partDataJson(Map<String, MesPart> partDataMap) {
// Map<String, String> partDataMap = partMap.entrySet().stream().filter(o -> null != o).collect(Collectors.toMap(Map.Entry::getKey, o -> JSONObject.toJSONString(o.getValue())));
this.partDataJson = !CollectionUtils.isEmpty(partDataMap) ? JSONObject.toJSONString(partDataMap) : null;
return this;
}
//上下文清除零件信息
public MesProductionProcessContext partJsonClear() {
this.partJson = null;
public MesProductionProcessContext partDataJsonClear() {
this.partDataJson = null;
return this;
}

@ -81,6 +81,8 @@ public class MesPcnExtConstWords {
public static final String SQUARE_BRACKETS = "[]";
// &
public static final String AND = "&";
// 空
public static final String EMPTY = "";
//生产过程控制上下文
public static final String PRODUCTION_PROCESS_CONTEXT = "PRODUCTION_PROCESS_CONTEXT";

Loading…
Cancel
Save