From b09ddaee3147c905278cb4ad08eee05109a837ac Mon Sep 17 00:00:00 2001 From: yanshikui Date: Mon, 25 Nov 2024 11:25:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=A0=87=E7=AD=BE=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ktg-print/pom.xml | 4 + .../ktg/print/controller/PrintController.java | 98 ++++++++++++++++--- .../ktg/print/domain/PrintBarcodeModel.java | 5 + 3 files changed, 96 insertions(+), 11 deletions(-) diff --git a/ktg-print/pom.xml b/ktg-print/pom.xml index 553bb3d..a76e118 100644 --- a/ktg-print/pom.xml +++ b/ktg-print/pom.xml @@ -41,5 +41,9 @@ org.projectlombok lombok + + com.ktg + ktg-mes + diff --git a/ktg-print/src/main/java/com/ktg/print/controller/PrintController.java b/ktg-print/src/main/java/com/ktg/print/controller/PrintController.java index b8dbb8e..5a63421 100644 --- a/ktg-print/src/main/java/com/ktg/print/controller/PrintController.java +++ b/ktg-print/src/main/java/com/ktg/print/controller/PrintController.java @@ -3,6 +3,12 @@ package com.ktg.print.controller; import com.ktg.common.constant.UserConstants; import com.ktg.common.core.domain.AjaxResult; import com.ktg.common.utils.StringUtils; +import com.ktg.mes.dv.domain.DvMachinery; +import com.ktg.mes.dv.service.IDvMachineryService; +import com.ktg.mes.md.domain.MdItem; +import com.ktg.mes.md.service.IMdItemService; +import com.ktg.mes.wm.domain.WmBarcode; +import com.ktg.mes.wm.service.IWmBarcodeService; import com.ktg.print.domain.PrintBarcodeModel; import com.ktg.print.domain.PrintPrinterConfig; import com.ktg.print.protocol.PrintMessageProto; @@ -11,25 +17,35 @@ import com.ktg.print.server.PrintServerDefaultHandler; import com.ktg.print.service.IPrintPrinterConfigService; import io.netty.channel.Channel; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.net.SocketAddress; +import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** * @author yanshikui */ @RestController -@RequestMapping("/barcodePrint") +@RequestMapping("/print/barcodePrint") public class PrintController { @Autowired private IPrintPrinterConfigService printPrinterConfigService; + @Autowired + private IMdItemService iMdItemService; + @Autowired + private IWmBarcodeService wmBarcodeService; + @Autowired + private IDvMachineryService iDvMachineryService; /** * 条码打印公共接口 + * * @param printBarcodeModel * @return */ @@ -37,8 +53,10 @@ public class PrintController { public AjaxResult printBarcodeLabel(@RequestBody PrintBarcodeModel printBarcodeModel) { String printCode = printBarcodeModel.getPrintCode(); String printTemplate = printBarcodeModel.getPrintTemplate(); - Map params = printBarcodeModel.getParams(); - PrintPrinterConfig printPrinterConfig = printPrinterConfigService.selectPrintPrinterConfigByPrinterId(Long.parseLong(printCode)); + Map params = printBarcodeModel.getParams(); + Long bussinessId = printBarcodeModel.getBussinessId(); + String bussinessCode = printBarcodeModel.getBussinessCode(); + PrintPrinterConfig printPrinterConfig = printPrinterConfigService.selectPrintPrinterConfigByPrinterCode(printCode); String ip = printPrinterConfig.getPrinterIp(); String printPort = printPrinterConfig.getPrinterPort().toString(); String printName = printPrinterConfig.getPrinterName(); @@ -57,10 +75,38 @@ public class PrintController { case UserConstants.BARCODE_TYPE_ITEM: //物料标签打印 //封装模板数据 - String materialCode = params.get("materialCode"); - String materialName = params.get("materialName"); - String specificationAndModel = params.get("specificationAndModel"); - String param = params.get("param"); + MdItem item = null; + if (Optional.ofNullable(bussinessId).isPresent()) { + item = iMdItemService.selectMdItemById(bussinessId); + if (item == null) { + return AjaxResult.error("条码内容数据为空!" + "(" + bussinessId + ")"); + } + } else if (StringUtils.isNotEmpty(bussinessCode)) { + MdItem itemParam = new MdItem(); + itemParam.setItemCode(bussinessCode); + List itemList = iMdItemService.selectMdItemList(itemParam); + if (CollectionUtils.isEmpty(itemList)) { + return AjaxResult.error("条码内容数据为空!" + "(" + bussinessCode + ")"); + } + item = itemList.get(0); + } else { + return AjaxResult.error("缺少业务参数!"); + } + //二维码信息查询 + WmBarcode bacode = new WmBarcode(); + bacode.setBussinessId(item.getItemId()); + bacode.setBussinessCode(item.getItemCode()); + bacode.setBarcodeType(UserConstants.BARCODE_TYPE_ITEM); + List wmBarcodes = wmBarcodeService.selectWmBarcodeList(bacode); + if (CollectionUtils.isEmpty(wmBarcodes)) { + return AjaxResult.error("未查询到二维码信息!" + "(" + bussinessCode + ")"); + } + WmBarcode wmBarcode = wmBarcodes.get(0); + String materialCode = item.getItemCode();//物料编码 + String materialName = item.getItemName();//物料名称 + String specificationAndModel = item.getSpecification();//物料规格类型 + + String param = wmBarcode.getBarcodeUrl();//物料二维码 dataType = PrintMessageProto.Printer.DataType.Material_Products; PrintMessageProto.Printer.MaterialProducts materialProducts = PrintMessageProto.Printer.MaterialProducts.newBuilder().setMaterialCode(materialCode).setMaterialName(materialName).setSpecificationAndModel(specificationAndModel).setParam(param).build(); // 构造对应的消息对象 @@ -90,10 +136,37 @@ public class PrintController { case UserConstants.BARCODE_TYPE_MACHINERY: //设备标签打印 //封装模板数据 - String equipmentCode = params.get("equipmentCode"); - String equipmentName = params.get("equipmentName"); - String specificationAndModel_1 = params.get("specificationAndModel"); - String param1 = params.get("param"); + DvMachinery dvMachinery = null; + if (Optional.ofNullable(bussinessId).isPresent()) { + dvMachinery = iDvMachineryService.selectDvMachineryByMachineryId(bussinessId); + if (dvMachinery == null) { + return AjaxResult.error("条码内容数据为空!" + "(" + bussinessId + ")"); + } + } else if (StringUtils.isNotEmpty(bussinessCode)) { + DvMachinery mParam = new DvMachinery(); + mParam.setMachineryCode(bussinessCode); + List mList = iDvMachineryService.selectDvMachineryList(mParam); + if (CollectionUtils.isEmpty(mList)) { + return AjaxResult.error("条码内容数据为空!" + "(" + bussinessCode + ")"); + } + dvMachinery = mList.get(0); + } else { + return AjaxResult.error("缺少业务参数!"); + } + //二维码信息查询 + WmBarcode mcode = new WmBarcode(); + mcode.setBussinessId(dvMachinery.getMachineryId()); + mcode.setBussinessCode(dvMachinery.getMachineryCode()); + mcode.setBarcodeType(UserConstants.BARCODE_TYPE_MACHINERY); + List mBarcodes = wmBarcodeService.selectWmBarcodeList(mcode); + if (CollectionUtils.isEmpty(mBarcodes)) { + return AjaxResult.error("未查询到二维码信息!" + "(" + bussinessCode + ")"); + } + WmBarcode mBarcode = mBarcodes.get(0); + String equipmentCode = dvMachinery.getMachineryCode(); + String equipmentName = dvMachinery.getMachineryName(); + String specificationAndModel_1 = dvMachinery.getMachinerySpec(); + String param1 = mBarcode.getBarcodeUrl(); dataType = PrintMessageProto.Printer.DataType.Equipment_; PrintMessageProto.Printer.Equipment equipment = PrintMessageProto.Printer.Equipment.newBuilder().setEquipmentCode(equipmentCode).setEquipmentName(equipmentName).setSpecificationAndModel(specificationAndModel_1).setParam(param1).build(); // 构造对应的消息对象 @@ -111,6 +184,9 @@ public class PrintController { // 构造对应的消息对象 msg = PrintMessageProto.Printer.newBuilder().setWorkstation(workstation).setDataType(dataType).setPrintInfo(printInfo).build(); break; + case UserConstants.BARCODE_TYPE_PROCARD: + //流转卡标签打印 + case UserConstants.BARCODE_TYPE_WAREHOUSE: // 仓库标签打印 //封装模板数据 diff --git a/ktg-print/src/main/java/com/ktg/print/domain/PrintBarcodeModel.java b/ktg-print/src/main/java/com/ktg/print/domain/PrintBarcodeModel.java index 65bc861..cf7a365 100644 --- a/ktg-print/src/main/java/com/ktg/print/domain/PrintBarcodeModel.java +++ b/ktg-print/src/main/java/com/ktg/print/domain/PrintBarcodeModel.java @@ -4,9 +4,14 @@ import lombok.Data; import java.util.Map; +/** + * @author yanshikui + */ @Data public class PrintBarcodeModel { private Map params; private String printCode; private String printTemplate; + private Long bussinessId; + private String bussinessCode; }