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;
}