客户条码打印

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,
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) {
log.info("CustSnPrintStrategy --- execute --- 工单信息为空");
@ -57,7 +57,7 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService {
// 客户条码
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);
@ -146,7 +146,8 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService {
log.error("CustSnPrintStrategy --- execute --- 报错:{}", e.getMessage());
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);

@ -83,7 +83,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
/**
*
*/
List<MesProduceSnPrintModel> printModelList = new ArrayList<>();
//List<MesProduceSnPrintModel> printModelList = new ArrayList<>();
//2. 获取条码需要模板、模板代码、打印机 --- 循环遍历条码 封装数据
if (CollectionUtils.isEmpty(productionPartContextList)) return stepResult;
@ -96,14 +96,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
List<MesWorkOrder> needModifyWorkOrderList = new ArrayList<>();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
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;
}
List<Map<String, Object>> resultMap = new ArrayList<>();
for (MesProductionPartContext sn : productionPartContextList) {
@ -112,16 +105,28 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
if (workOrder == null) {
log.error("MesCustSnPrintStepService --- exec --- 工单号:{}无效", sn.getWorkOrderNo());
stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号:{}无效!", sn.getWorkOrderNo()));
continue;
}
if ((partDataContext == null) || (!partDataContext.containsKey(workOrder.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();
@ -156,8 +161,8 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
}
IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode);
// GenSerialNoModel model , MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep
MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, null, stepResult, reqBean, true);
printModelList.add(printModel);
MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, numberRule, stepResult, reqBean, true);
resultMap.addAll(printModel.getPrintContextList());
needModifyWorkOrderList.add(workOrder);
}
@ -165,10 +170,11 @@ public class MesProductSnPrintSortStepService extends BaseStepService {
//前端接收到busiTyep是customComponent并且 dataType是file类型的消息就需要打印后续消息里的数据一个模板对应多个打印数据
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue());
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.FILE.getValue());
resultBean.setResultObj(printModelList);
resultBean.setCustomPageName("SORT_WORK_CENTER_PRINT");
resultBean.setResultObj(resultMap);
//3. 发送数据给到前端
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) {
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_PERFIX = "custPartNoPerfix";
public static final String CUST_PART_NO_PREFIX = "custPartNoPrefix";
//客户零件号 后四位
public static final String CUST_PART_NO_AFTER_FOUR = "custPartNoAfterFour";
//客户条码VPPS
@ -615,4 +615,5 @@ public class MesPcnExtConstWords {
public static final int DATA_MATRIX_CODE_HEIGHT = 80;
// dataMatrix 形式的客户条码
public static final String CUST_SN_DATA_MATRIX = "custSnDataMatrix";
public static final String CUST_SN_DATA_MATRIX_BASE64 = "custSnDataMatrixBase64";
}

Loading…
Cancel
Save