客户条码打印

tags/yfai-pcn-ext-v2.3
yxw 8 months ago
parent 78fb82c88a
commit 1cf4524daf

@ -33,10 +33,10 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService {
MesNumberRule numberRule , StepResult stepResult, StationRequestBean reqBean, MesNumberRule numberRule , StepResult stepResult, StationRequestBean reqBean,
Boolean isStep) { Boolean isStep) {
Map<String, Object> modelMap = (Map<String, Object>) model.getSourceData(); MesWorkOrder workOrder = (MesWorkOrder) model.getSourceData();
// 工单信息 // 工单信息
MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder"); //MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder");
if (workOrder == null) { if (workOrder == null) {
log.info("CustSnPrintStrategy --- execute --- 工单信息为空"); log.info("CustSnPrintStrategy --- execute --- 工单信息为空");
@ -57,7 +57,7 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService {
// 客户条码 // 客户条码
resultMap.put(MesPcnExtConstWords.CUST_SN, workOrder.getCustSn()); resultMap.put(MesPcnExtConstWords.CUST_SN, workOrder.getCustSn());
// 客户零件号 前缀 排除后四位 // 客户零件号 前缀 排除后四位
resultMap.put(MesPcnExtConstWords.CUST_PART_NO_PERFIX, custPartNoPrefix); resultMap.put(MesPcnExtConstWords.CUST_PART_NO_PREFIX, custPartNoPrefix);
// 客户零件号 后四位 // 客户零件号 后四位
resultMap.put(MesPcnExtConstWords.CUST_PART_NO_AFTER_FOUR, custPartNoAfterFour); resultMap.put(MesPcnExtConstWords.CUST_PART_NO_AFTER_FOUR, custPartNoAfterFour);
@ -146,7 +146,8 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService {
log.error("CustSnPrintStrategy --- execute --- 报错:{}", e.getMessage()); log.error("CustSnPrintStrategy --- execute --- 报错:{}", e.getMessage());
return model; return model;
} }
resultMap.put(MesPcnExtConstWords.CUST_SN_DATA_MATRIX, dataMatrixCode); resultMap.put(MesPcnExtConstWords.CUST_SN_DATA_MATRIX, Base64.getEncoder().encodeToString(dataMatrixCode.toByteArray()));
//resultMap.put(MesPcnExtConstWords.CUST_SN_DATA_MATRIX_BASE64, );
printDataMapList.add(resultMap); printDataMapList.add(resultMap);

@ -83,7 +83,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
/** /**
* *
*/ */
List<MesProduceSnPrintModel> printModelList = new ArrayList<>(); //List<MesProduceSnPrintModel> printModelList = new ArrayList<>();
//2. 获取条码需要模板、模板代码、打印机 --- 循环遍历条码 封装数据 //2. 获取条码需要模板、模板代码、打印机 --- 循环遍历条码 封装数据
if (CollectionUtils.isEmpty(productionPartContextList)) return stepResult; if (CollectionUtils.isEmpty(productionPartContextList)) return stepResult;
@ -96,14 +96,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
List<MesWorkOrder> needModifyWorkOrderList = new ArrayList<>(); List<MesWorkOrder> needModifyWorkOrderList = new ArrayList<>();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); List<Map<String, Object>> resultMap = new ArrayList<>();
DdlPreparedPack.getStringEqualPack("WH_CUST_SN_RULE", MesPcnExtConstWords.RULE_CODE, packBean);
MesNumberRule numberRule = numberRuleRepository.getByProperty(packBean);
if (numberRule == null) {
log.error("MesCustSnPrintStepService --- exec --- 客户条码编码规则[WH_CUST_SN_RULE]无效");
return stepResult;
}
for (MesProductionPartContext sn : productionPartContextList) { for (MesProductionPartContext sn : productionPartContextList) {
@ -112,16 +105,28 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
if (workOrder == null) { if (workOrder == null) {
log.error("MesCustSnPrintStepService --- exec --- 工单号:{}无效", sn.getWorkOrderNo()); log.error("MesCustSnPrintStepService --- exec --- 工单号:{}无效", sn.getWorkOrderNo());
stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号:{}无效!", sn.getWorkOrderNo()));
continue; continue;
} }
if ((partDataContext == null) || (!partDataContext.containsKey(workOrder.getPartNo()))) { if ((partDataContext == null) || (!partDataContext.containsKey(workOrder.getPartNo()))) {
log.error("MesCustSnPrintStepService --- exec --- 工单号:{}零件{}丢失缓存", sn.getWorkOrderNo(), sn.getPartNo()); log.error("MesCustSnPrintStepService --- exec --- 工单号:{}零件{}丢失缓存", sn.getWorkOrderNo(), sn.getPartNo());
continue; stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号[%s]零件号[%s]丢失零件信息缓存!", sn.getWorkOrderNo(), sn.getPartNo()));
}
MesPart mesPart = partDataContext.get(sn.getPartNo());
String custMatchRule = StringUtils.isEmpty(mesPart.getCustMatchRule()) ? "WH_CUST_SN_RULE" : mesPart.getCustMatchRule();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(custMatchRule, MesPcnExtConstWords.RULE_CODE, packBean);
MesNumberRule numberRule = numberRuleRepository.getByProperty(packBean);
if (numberRule == null) {
log.error("MesCustSnPrintStepService --- exec --- 客户条码编码规则[WH_CUST_SN_RULE]无效");
stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号[%s]零件号[%s]客户条码编码规则[%s]无效!", sn.getWorkOrderNo(), sn.getPartNo(), custMatchRule));
} }
// 从物料信息中获取标签模板 // 从物料信息中获取标签模板
String labelTemplateCode = partDataContext.get(sn.getPartNo()).getProductLabelTemplate(); String labelTemplateCode = partDataContext.get(sn.getPartNo()).getCustLabelTemplate();
// 从物料信息中获取打印机 // 从物料信息中获取打印机
String productPrinterCode = partDataContext.get(sn.getPartNo()).getProductPrinterCode(); String productPrinterCode = partDataContext.get(sn.getPartNo()).getProductPrinterCode();
@ -156,8 +161,8 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
} }
IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode); IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode);
// GenSerialNoModel model , MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep // GenSerialNoModel model , MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep
MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, null, stepResult, reqBean, true); MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, numberRule, stepResult, reqBean, true);
printModelList.add(printModel); resultMap.addAll(printModel.getPrintContextList());
needModifyWorkOrderList.add(workOrder); needModifyWorkOrderList.add(workOrder);
} }
@ -165,10 +170,11 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
//前端接收到busiTyep是customComponent并且 dataType是file类型的消息就需要打印后续消息里的数据一个模板对应多个打印数据 //前端接收到busiTyep是customComponent并且 dataType是file类型的消息就需要打印后续消息里的数据一个模板对应多个打印数据
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue()); resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue());
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.FILE.getValue()); resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.FILE.getValue());
resultBean.setResultObj(printModelList); resultBean.setCustomPageName("SORT_WORK_CENTER_PRINT");
resultBean.setResultObj(resultMap);
//3. 发送数据给到前端 //3. 发送数据给到前端
this.sendMessage(reqBean, resultBean); this.sendMessage(reqBean, resultBean);
List<MesPrintedSnLog> snLogList = printModelList.stream().map(MesProduceSnPrintModel::getMesPrintedSnLogList).flatMap(List::stream).collect(Collectors.toList()); List<MesPrintedSnLog> snLogList = new ArrayList<>();
//更新打印状态 //更新打印状态
for (MesWorkOrder workOrder : needModifyWorkOrderList) { for (MesWorkOrder workOrder : needModifyWorkOrderList) {
MesPrintedSnLog snLog = new MesPrintedSnLog(); MesPrintedSnLog snLog = new MesPrintedSnLog();

@ -515,7 +515,7 @@ public class MesPcnExtConstWords {
//客户零件号 //客户零件号
public static final String CUST_PART_NO = "custPartNo"; public static final String CUST_PART_NO = "custPartNo";
//客户零件号 前缀 排除后四位 //客户零件号 前缀 排除后四位
public static final String CUST_PART_NO_PERFIX = "custPartNoPerfix"; public static final String CUST_PART_NO_PREFIX = "custPartNoPrefix";
//客户零件号 后四位 //客户零件号 后四位
public static final String CUST_PART_NO_AFTER_FOUR = "custPartNoAfterFour"; public static final String CUST_PART_NO_AFTER_FOUR = "custPartNoAfterFour";
//客户条码VPPS //客户条码VPPS
@ -615,4 +615,5 @@ public class MesPcnExtConstWords {
public static final int DATA_MATRIX_CODE_HEIGHT = 80; public static final int DATA_MATRIX_CODE_HEIGHT = 80;
// dataMatrix 形式的客户条码 // dataMatrix 形式的客户条码
public static final String CUST_SN_DATA_MATRIX = "custSnDataMatrix"; public static final String CUST_SN_DATA_MATRIX = "custSnDataMatrix";
public static final String CUST_SN_DATA_MATRIX_BASE64 = "custSnDataMatrixBase64";
} }

Loading…
Cancel
Save