非排序打印 增加打印机配置, 是否取物料的打印机

uat-temp-wj-chongqingdaqu-dev
王杰 2 months ago
parent d36ada5454
commit 8f7a6ad150

@ -3,21 +3,20 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
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.MesLabelTemplate;
import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
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;
@ -54,6 +53,12 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
@Autowired
private MesProduceSnRepository mesProduceSnRao;
@Autowired
private IConfigService configService;
@Autowired
private MesPartDataMapSaveStepService partDataMapSaveStepService;
@Override
public StepResult execute(StationRequestBean reqBean) {
// /**
@ -78,8 +83,14 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, String.format("打印失败:%s!", MesExtEnumUtil.PRODUCT_RESULT_EQUIP_PARAM.codeOfDescription(productResult)));
// 根据foreign找出加工规则对应的上下文判断是否需要打印
List<MesProdRuleContext> prodRuleDataContext = productionDispatchContextStepService.getProdRuleDataContext(reqBean);
Map<Integer, List<MesProdRuleContext>> prodRuleContextMap = prodRuleDataContext.stream().collect(Collectors.groupingBy(MesProdRuleContext::getForeignKey));
List<MesProdRuleContext> prodRuleDataContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean);
Map<Integer, List<MesProdRuleContext>> prodRuleContextMap = prodRuleDataContextList.stream().collect(Collectors.groupingBy(MesProdRuleContext::getForeignKey));
//生产过程控制非排序打印机配置【物料级别=1, 默认打印机=2】
Boolean pcNosortPrinterCfg = getPcNosortPrinterCfg(reqBean.getOrganizeCode());
//保存零件数据信息
Map<String, MesPart> partDataMap = savePartDataMap(reqBean, resultBean, stepResult, prodRuleDataContextList, pcNosortPrinterCfg);
//需要打印的数据 String 是打印模板code
Map<String, List<MesProduceSnPrintDataModel>> resultData = new HashMap<>();
//用于保存客户模板代码 和 模板信息关系
@ -117,6 +128,11 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
mesProduceSnPrintModel.setCustPartNo(sn.getCustPartNo());
mesProduceSnPrintModel.setOrganizeCode(organizeCode);
mesProduceSnPrintModel.setUserName(reqBean.getUserInfo());
if (pcNosortPrinterCfg) {
//赋值打印机
String printer = filterPrinter(partDataMap, sn.getPartNo());
if (!StringUtils.isEmpty(printer)) mesProduceSnPrintModel.setPrinter(printer);
}
List<MesProduceSn> snList = new ArrayList<>();
snList.add(sn);
mesProduceSnPrintModel.getMesProduceSnList().addAll(snList);
@ -172,6 +188,30 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "打印成功!");
}
//获取打印机
private String filterPrinter(Map<String, MesPart> partDataMap, String partNo) {
if (CollectionUtils.isEmpty(partDataMap) || !partDataMap.containsKey(partNo)) return null;
String priter = partDataMap.get(partNo).getProductPrinterCode();
return !StringUtils.isEmpty(priter) ? priter : null;
}
//保存零件数据信息
private Map<String, MesPart> savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesProdRuleContext> prodRuleDataContextList, Boolean pcNosortPrinterCfg) {
if (!pcNosortPrinterCfg) return null;
//获取上下文零件数据信息
List<String> partNoList = (prodRuleDataContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getOutPartNo()))).map(MesProdRuleContext::getOutPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
//保存零件数据信息
partDataMapSaveStepService.savePartDataMap(reqBean, resultBean, stepResult, partNoList, true, false);
return stepResult.isCompleted() ? (Map<String, MesPart>) stepResult.getObj() : null;
}
//生产过程控制非排序打印机配置【物料级别=1, 默认打印机=2】
private Boolean getPcNosortPrinterCfg(String organizeCode) {
List<MesConfig> config = configService.doCachedConfigList(MesPcnExtConstWords.PRODUCTION_CONTROL_NOSORT_PRINTER_CFG, organizeCode);
if (CollectionUtils.isEmpty(config) || StringUtils.isEmpty(config.get(0).getCfgValue())) return false;
return config.get(0).getCfgValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()) ? true : false;
}
//验证加工结果是否满足参数条件: 可疑/报废是否打印
private Boolean checkIsMatchProdResult(StationRequestBean reqBean, String productResult, MesExtEnumUtil.PRODUCT_RESULT_EQUIP_PARAM prodResultEnum) {

@ -908,4 +908,7 @@ public class MesPcnExtConstWords {
//由前端直接渲染模版的标志
public static final String TEMPLATE_CUSTOM_HTML = "TEMPLATE_CUSTOM_HTML";
//生产过程控制非排序打印机配置【物料级别=1, 默认打印机=2】
public static final String PRODUCTION_CONTROL_NOSORT_PRINTER_CFG = "PRODUCTION_CONTROL_NOSORT_PRINTER_CFG";
}

Loading…
Cancel
Save