裁片工步修改:

1、加工规则匹配时,对进料条件封装foreignKey
2、保存裁片条码工步取消引用保存条码工步,改为在本工步实现根据是否存在进料条码保存条码逻辑
3、裁片工单号存值改为产出零件上下文中
tags/yfai-pcn-ext-v2.3
yxw 8 months ago
parent 51bf7e01ec
commit 30082cc4ae

@ -92,7 +92,7 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService {
if (CollectionUtils.isEmpty(equipVariableCollectContextList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前缺失待验证的裁片工单信息!");
//清除本次已获取得到的裁片工单信息
//productionDispatchContextStepService.removeScanWorkOrderNoContext(reqBean);
productionDispatchContextStepService.removeScanWorkOrderNoContext(reqBean);
//从上下文中取出生产线对象
MesWorkCenter workCenter = productionProcessContext.getWorkCenter();
@ -147,9 +147,8 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService {
//保存扫描的工单信息上下文
if (MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() == equipVariableCollectContextList.get(0).getMessageSource()) {
productionProcessContextStepService.dispatchFunctionChooseCavityOrderContext(reqBean, StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(),
new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", String.valueOf(productionPartContextList.size())),
new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", String.valueOf(productionPartContextList.stream().collect(Collectors.groupingBy(MesProductionPartContext::getPartNo)).size())),
new StationKvBean(MesPcnExtConstWords.CELL_MESSAGE_SOURCE, "工位信息来源", MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ.getValueStr()),
new StationKvBean(MesPcnExtConstWords.CRAFT_JUMP_CODE, "是否已验证顺序防错", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr()),
new StationKvBean(MesPcnExtConstWords.WORK_ORDER_NO, "裁片工单", productionPartContextList.stream().filter(o -> null != o).map(MesProductionPartContext::getWorkOrderNo).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)))));
}
@ -323,14 +322,17 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService {
}
List<MesProduceSn> produceSnList = produceSnExtService.getProduceSnList(reqBean.getOrganizeCode(), cutWorkOrderNo);
// 如果裁片工单明细 productSn存在值则表名已 经过上道工位
if (!StringUtils.isEmpty(mesWorkOrderCutDetailList.stream().findFirst().get().getProductSn())) {
List<MesProduceSn> produceSnList = produceSnExtService.getProduceSnList(reqBean.getOrganizeCode(), cutWorkOrderNo);
// 获取上道工艺生产的条码并封装到进料上下文中
if (!CollectionUtils.isEmpty(produceSnList))
produceSnList.stream().filter(o -> null != o).forEach(o -> {
productionPsInContextList.add(new MesProductionPsInContext(workCell, o).cutCode(cutScheme.getCutCode()));
productionPsOutContextList.add(new MesProductionPsOutContext().copy(o));
});
// 获取上道工艺生产的条码并封装到进料上下文中
if (!CollectionUtils.isEmpty(produceSnList))
produceSnList.stream().filter(o -> null != o).forEach(o -> {
productionPsInContextList.add(new MesProductionPsInContext(workCell, o).cutCode(cutScheme.getCutCode()));
productionPsOutContextList.add(new MesProductionPsOutContext().copy(o).cutWorkOrderNo(cutWorkOrderNo));
});
}
return stepResult;

@ -27,6 +27,7 @@ import org.springframework.util.StringUtils;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -84,7 +85,7 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
//获取上下文进料零件条码信息集合
//List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean);
List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean);
//根据现有数据【产出零件数据】【进料零件条码信息】比对上下文中已经存在的加工规则数据信息集合, 没有加工规则的数据进行查询
if (CollectionUtils.isEmpty(prodRuleContextList)) prodRuleContextList = new ArrayList<>();
@ -92,7 +93,7 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
//封装非排序加工规则
if (!doHandleProdRuleData(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext,
prodRuleContextList, productionPartContextList).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg());
prodRuleContextList, productionPartContextList, productionPsInContextList).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg());
//匹配失败需要清除本次扫描/读取信息
//if (!stepResult.isCompleted() && doBusiCheckToDelete(reqBean, stepResult, productionPartContextList, productionPsInContextList))
@ -104,7 +105,9 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
//保存上下文产品加工规则信息集合
productionDispatchContextStepService.dispatchProdRuleDataContext(reqBean, prodRuleContextList);
//保存上下文产出零件信息
//if (!CollectionUtils.isEmpty(productionPartContextList)) productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList);
if (!CollectionUtils.isEmpty(productionPartContextList)) productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList);
//保存进料主条码数据
if (!CollectionUtils.isEmpty(productionPsInContextList)) productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList);
}
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "匹配完成!");
@ -113,11 +116,12 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
private StepResult doHandleProdRuleData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult,
MesProductionProcessContext productionProcessContext,
MesCellEquipContext cellEquipContext, List<MesProdRuleContext> prodRuleContextList,
List<MesProductionPartContext> productionPartContextList) {
List<MesProductionPartContext> productionPartContextList,
List<MesProductionPsInContext> productionPsInContextList) {
//根据是否存在【产出零件数据】获取剩余待匹配的加工规则数据 (只能查询到一条,否则报错)
return doHandleProdRuleDataByProductionPart(reqBean, resultBean, stepResult, productionProcessContext,
cellEquipContext, prodRuleContextList, productionPartContextList);
cellEquipContext, prodRuleContextList, productionPartContextList, productionPsInContextList);
}
@ -127,7 +131,8 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
MesProductionProcessContext productionProcessContext,
MesCellEquipContext cellEquipContext,
List<MesProdRuleContext> prodRuleContextList,
List<MesProductionPartContext> productionPartContextList) {
List<MesProductionPartContext> productionPartContextList,
List<MesProductionPsInContext> productionPsInContextList) {
//加工规则的数据已与产出零件的数量一致
//if (!CollectionUtils.isEmpty(prodRuleContextList) && prodRuleContextList.size() == productionPartContextList.size()) return stepResult;
@ -149,9 +154,9 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
log.info("doHandleProdRuleDataByProductionPart --- outPartNoList:{}", foreignKey);
//没有【进料零件条码信息】信息, 根据进料[NULL]条件获取匹配当前产出零件的加工规则数据(只能查询到一条,否则报错)
//根据产出零件条件获取匹配当前产出零件的加工规则数据(只能查询到一条,否则报错)
return doHandleProdRuleDataByProductionPartAndEmptyProductSn(reqBean, resultBean, stepResult, productionProcessContext,
cellEquipContext, prodRuleContextList, productionPartContextList, outPartNoList, foreignKey);
cellEquipContext, prodRuleContextList, productionPartContextList, productionPsInContextList, outPartNoList, foreignKey);
//存在【产出零件数据】信息, 存在【进料零件条码信息】 获取匹配当前产出零件的加工规则数据 (只能查询到一条,否则报错)
//else return doHandleProdRuleDataByProductionPartAndProductSn(reqBean, resultBean, stepResult, workCenter, productionProcessContext, cellEquipContext, prodRuleContextList, productionPartContextList, productionPsInContextList, outPartNoList, foreignKey);
@ -159,7 +164,8 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
//没有【进料零件条码信息】信息, 根据进料[NULL]条件获取匹配当前产出零件的加工规则数据(只能查询到一条,否则报错)
private StepResult doHandleProdRuleDataByProductionPartAndEmptyProductSn(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext,
MesCellEquipContext cellEquipContext, List<MesProdRuleContext> prodRuleContextList, List<MesProductionPartContext> productionPartContextList, List<String> outPartNoList, Integer foreignKey) {
MesCellEquipContext cellEquipContext, List<MesProdRuleContext> prodRuleContextList, List<MesProductionPartContext> productionPartContextList,
List<MesProductionPsInContext> productionPsInContextList, List<String> outPartNoList, Integer foreignKey) {
//【非排序线】获取产品加工规则 ; 条件进料[NULL]
List<MesProdRuleNosortCfg> prodRuleNosortCfgList = prodRuleCfgExtService.getProdRuleNosortCfgList(new MesProdRuleContext(reqBean.getOrganizeCode()).equipmentCode(cellEquipContext.getEquipmentCode()).outPartNos(outPartNoList).inPartIsEmpty(true));
@ -175,6 +181,9 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format(
"未维护裁片方案代码[%s]设备[%s]的裁片设备配置信息!", cutCode, cellEquipContext.getEquipmentName()));
// 根据工单分组进料条码
Map<String, MesProductionPsInContext> productionPsInContextMapByWorkOrder = CollectionUtils.isEmpty(productionPsInContextList) ? null : productionPsInContextList.stream().collect(Collectors.toMap(MesProductionPsInContext::getWorkOrderNo, Function.identity(), (x, y) -> y));
for (MesProductionPartContext productionPartContext : productionPartContextList) {
log.info("doHandleProdRuleDataByProductionPartAndEmptyProductSn --- 是否找加工规则:{}", null == productionPartContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPartContext.getForeignKey()));
@ -193,9 +202,12 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService
MesProdRuleContext prodRuleContext = prodRuleCfgExtService.getProdRuleNosortContext(
new MesProdRuleContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionProcessContext.getCraftCode())
.copy(filterList.get(0)).workOrderNo(productionPartContext.getWorkOrderNo()).foreignKey(productionPartContext.foreignKey(foreignKey += 1).getForeignKey()));
prodRuleContext.setIsPrint(cutSchemeEquipment.getIsPrint());
//prodRuleContext.setIsPrint(cutSchemeEquipment.getIsPrint());
prodRuleContextList.add(prodRuleContext);
if (!CollectionUtils.isEmpty(productionPsInContextMapByWorkOrder) && productionPsInContextMapByWorkOrder.containsKey(productionPartContext.getWorkOrderNo()))
productionPsInContextMapByWorkOrder.get(productionPartContext.getWorkOrderNo()).foreignKey(productionPartContext.getForeignKey());
log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- 设备:{} 产出零件信息:{} 产品加工规则:{} ---", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(),
StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), cellEquipContext.getEquipmentCode(), JSONObject.toJSONString(productionPartContext), JSONObject.toJSONString(prodRuleContext));

@ -1,10 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderCutService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPartContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;

@ -15,19 +15,16 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
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.repository.MesProductionAssemblyRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -74,6 +71,9 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
@Autowired
private MesProductionAssemblyRepository productionAssemblyRepository;
@Autowired
private MesWorkOrderCutDetailRepository workOrderCutDetailRepository;
@Override
public StepResult execute(StationRequestBean reqBean) {
@ -88,10 +88,10 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
//存储生产过程上下文对象
productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext);
//获取上下文生产扫/读信息:加工单
List<MesEquipVariableCollectContext> equipVariableCollectContextList = productionDispatchContextStepService.getScanWorkOrderNoContext(reqBean);
String cutWorkOrderNo = equipVariableCollectContextList.get(0).getEquipVariableValue();
////获取上下文生产扫/读信息:加工单
//List<MesEquipVariableCollectContext> equipVariableCollectContextList = productionDispatchContextStepService.getScanWorkOrderNoContext(reqBean);
//
//String cutWorkOrderNo = equipVariableCollectContextList.get(0).getEquipVariableValue();
//看是否修改裁片工单状态
//获取上下文进料零件条码信息集合
@ -103,6 +103,9 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
//获取上下文产出零件数据信息集合
List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
// 从产出零件上下文中获取裁片工单号
String cutWorkOrderNo = productionPartContextList.stream().findFirst().get().getCutWorkOrderNo();
//获取上下文产品加工规则数据信息集合
List<MesProdRuleContext> prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean);
@ -117,14 +120,14 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
//从上下文中取出工位对象
MesWorkCell workCell = productionProcessContext.getWorkCell();
//获取生产线的当前班组班次信息
MesProdShiftContext prodShiftContext = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
// 无进料条码则生成条码
if (CollectionUtils.isEmpty(productionPsInContextList)) {
productionPsOutContextList = new ArrayList<>();
//获取生产线的当前班组班次信息
MesProdShiftContext prodShiftContext = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
if (null == prodShiftContext) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在生产开班记录,请重新开班!");
for (MesProductionPartContext mesProductionPartContext : productionPartContextList) {
@ -183,6 +186,13 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
productionPsOutContextList.add(productionPsOutContext);
// 裁片工单明细 条码赋值 作用:多工位情况下 判定productSn是否有值无值则无需查条码表
workOrderCutDetailRepository.updateByProperties(
new String[]{MesPcnExtConstWords.CUT_WORK_ORDER_NO, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED},
new Object[]{cutWorkOrderNo, reqBean.getOrganizeCode(), CommonEnumUtil.VALID, CommonEnumUtil.FALSE},
new String[]{MesPcnExtConstWords.PRODUCT_SN, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME},
new Object[]{cutWorkOrderNo, reqBean.getUserInfo(), TimeTool.getNowTime(true)});
// 新增装配件加工记录
//saveProductionAssembly(reqBean, productionProcessContext, cellEquipContext, mesProdRuleContext, productionPsOutContext);
@ -193,10 +203,11 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
} else {
if (CollectionUtils.isEmpty(prodRuleContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在加工规则信息,请重置工序解决!");
// 保存零件条码
productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> o.copy(saveProduceSnData(reqBean, resultBean, productionProcessContext, o, prodShiftContext, workCell)));
//保存零件条码信息工步
((IStepService) SpringContextsUtil.getBean("mesProductSnSaveStepService")).executeInState(reqBean);
//保存上下文产出条码数据信息集合
productionDispatchContextStepService.dispatchProductionPsOutContext(reqBean, productionPsOutContextList);
for (MesProductionPartContext mesProductionPartContext : productionPartContextList) {
@ -219,6 +230,44 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService {
}
private MesProduceSn saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext,
MesProdShiftContext prodShiftContext, MesWorkCell workCell) {
//根据零件条码ID查询零件条码信息
MesProduceSn produceSn = produceSnExtService.getProduceSn(reqBean.getOrganizeCode(), productionPsOutContext.getId());
if (null == produceSn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件条码信息,产出零件条码[%s]ID[%s]信息不存在!", productionPsOutContext.getProductSn(), productionPsOutContext.getId()));
produceSn.setAreaCode(workCell.getAreaCode());
produceSn.setWorkCenterCode(workCell.getWorkCenterCode());
produceSn.setWorkCellCode(workCell.getWorkCellCode());
produceSn.setRouteCode(reqBean.getRouteCode());
produceSn.setProcessCode(reqBean.getProcessCode());
produceSn.setCraftCode(productionProcessContext.getCraftCode());
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
produceSn.setShiftCode(prodShiftContext.getShiftCode());
produceSn.setShiftGroup(prodShiftContext.getShiftGroup());
ConvertBean.serviceModelUpdate(produceSn, reqBean.getUserInfo());
produceSn.setLotNo(produceSn.getModifyDatetime().substring(0, 10));
if (StringUtils.isEmpty(produceSn.getInWorkCenterTime())) produceSn.setInWorkCenterTime(produceSn.getModifyDatetime());
produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.PROCESSING.getValue());
produceSnExtService.update(produceSn);
log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- MesProductionPsOutContext:{} --- MesProduceSn:{}",
reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(),
StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), JSONObject.toJSONString(productionPsOutContext), JSONObject.toJSONString(produceSn));
return produceSn;
}
private void saveProductionAssembly(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext,
MesCellEquipContext cellEquipContext, MesProdRuleContext mesProdRuleContext,
MesProductionPsOutContext productionPsOutContext) {

@ -22,6 +22,9 @@ public class MesProductionPsOutContext extends MesProduceSn implements Serializa
@ApiParam(name = "是否计算工单完成数量")
private Integer isCalcCompleteQty = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue();
@ApiParam(name = "裁片工单号")
private String cutWorkOrderNo;
public MesProductionPsOutContext() {}
public MesProductionPsOutContext copy(MesProduceSn produceSn, Integer foreignKey) {
@ -41,6 +44,11 @@ public class MesProductionPsOutContext extends MesProduceSn implements Serializa
return this;
}
public MesProductionPsOutContext cutWorkOrderNo(String cutWorkOrderNo) {
this.setCutWorkOrderNo(cutWorkOrderNo);
return this;
}
public MesProductionPsOutContext isCalcCompleteQty(Boolean isCalcCompleteQty) {
if (isCalcCompleteQty) this.isCalcCompleteQty = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue();
return this;

Loading…
Cancel
Save