feat:标签打印功能
This commit is contained in:
parent
3ca40878da
commit
b09ddaee31
@ -41,5 +41,9 @@
|
|||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ktg</groupId>
|
||||||
|
<artifactId>ktg-mes</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -3,6 +3,12 @@ package com.ktg.print.controller;
|
|||||||
import com.ktg.common.constant.UserConstants;
|
import com.ktg.common.constant.UserConstants;
|
||||||
import com.ktg.common.core.domain.AjaxResult;
|
import com.ktg.common.core.domain.AjaxResult;
|
||||||
import com.ktg.common.utils.StringUtils;
|
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.PrintBarcodeModel;
|
||||||
import com.ktg.print.domain.PrintPrinterConfig;
|
import com.ktg.print.domain.PrintPrinterConfig;
|
||||||
import com.ktg.print.protocol.PrintMessageProto;
|
import com.ktg.print.protocol.PrintMessageProto;
|
||||||
@ -11,25 +17,35 @@ import com.ktg.print.server.PrintServerDefaultHandler;
|
|||||||
import com.ktg.print.service.IPrintPrinterConfigService;
|
import com.ktg.print.service.IPrintPrinterConfigService;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author yanshikui
|
* @author yanshikui
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/barcodePrint")
|
@RequestMapping("/print/barcodePrint")
|
||||||
public class PrintController {
|
public class PrintController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPrintPrinterConfigService printPrinterConfigService;
|
private IPrintPrinterConfigService printPrinterConfigService;
|
||||||
|
@Autowired
|
||||||
|
private IMdItemService iMdItemService;
|
||||||
|
@Autowired
|
||||||
|
private IWmBarcodeService wmBarcodeService;
|
||||||
|
@Autowired
|
||||||
|
private IDvMachineryService iDvMachineryService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 条码打印公共接口
|
* 条码打印公共接口
|
||||||
|
*
|
||||||
* @param printBarcodeModel
|
* @param printBarcodeModel
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -38,7 +54,9 @@ public class PrintController {
|
|||||||
String printCode = printBarcodeModel.getPrintCode();
|
String printCode = printBarcodeModel.getPrintCode();
|
||||||
String printTemplate = printBarcodeModel.getPrintTemplate();
|
String printTemplate = printBarcodeModel.getPrintTemplate();
|
||||||
Map<String, String> params = printBarcodeModel.getParams();
|
Map<String, String> params = printBarcodeModel.getParams();
|
||||||
PrintPrinterConfig printPrinterConfig = printPrinterConfigService.selectPrintPrinterConfigByPrinterId(Long.parseLong(printCode));
|
Long bussinessId = printBarcodeModel.getBussinessId();
|
||||||
|
String bussinessCode = printBarcodeModel.getBussinessCode();
|
||||||
|
PrintPrinterConfig printPrinterConfig = printPrinterConfigService.selectPrintPrinterConfigByPrinterCode(printCode);
|
||||||
String ip = printPrinterConfig.getPrinterIp();
|
String ip = printPrinterConfig.getPrinterIp();
|
||||||
String printPort = printPrinterConfig.getPrinterPort().toString();
|
String printPort = printPrinterConfig.getPrinterPort().toString();
|
||||||
String printName = printPrinterConfig.getPrinterName();
|
String printName = printPrinterConfig.getPrinterName();
|
||||||
@ -57,10 +75,38 @@ public class PrintController {
|
|||||||
case UserConstants.BARCODE_TYPE_ITEM:
|
case UserConstants.BARCODE_TYPE_ITEM:
|
||||||
//物料标签打印
|
//物料标签打印
|
||||||
//封装模板数据
|
//封装模板数据
|
||||||
String materialCode = params.get("materialCode");
|
MdItem item = null;
|
||||||
String materialName = params.get("materialName");
|
if (Optional.ofNullable(bussinessId).isPresent()) {
|
||||||
String specificationAndModel = params.get("specificationAndModel");
|
item = iMdItemService.selectMdItemById(bussinessId);
|
||||||
String param = params.get("param");
|
if (item == null) {
|
||||||
|
return AjaxResult.error("条码内容数据为空!" + "(" + bussinessId + ")");
|
||||||
|
}
|
||||||
|
} else if (StringUtils.isNotEmpty(bussinessCode)) {
|
||||||
|
MdItem itemParam = new MdItem();
|
||||||
|
itemParam.setItemCode(bussinessCode);
|
||||||
|
List<MdItem> 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<WmBarcode> 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;
|
dataType = PrintMessageProto.Printer.DataType.Material_Products;
|
||||||
PrintMessageProto.Printer.MaterialProducts materialProducts = PrintMessageProto.Printer.MaterialProducts.newBuilder().setMaterialCode(materialCode).setMaterialName(materialName).setSpecificationAndModel(specificationAndModel).setParam(param).build();
|
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:
|
case UserConstants.BARCODE_TYPE_MACHINERY:
|
||||||
//设备标签打印
|
//设备标签打印
|
||||||
//封装模板数据
|
//封装模板数据
|
||||||
String equipmentCode = params.get("equipmentCode");
|
DvMachinery dvMachinery = null;
|
||||||
String equipmentName = params.get("equipmentName");
|
if (Optional.ofNullable(bussinessId).isPresent()) {
|
||||||
String specificationAndModel_1 = params.get("specificationAndModel");
|
dvMachinery = iDvMachineryService.selectDvMachineryByMachineryId(bussinessId);
|
||||||
String param1 = params.get("param");
|
if (dvMachinery == null) {
|
||||||
|
return AjaxResult.error("条码内容数据为空!" + "(" + bussinessId + ")");
|
||||||
|
}
|
||||||
|
} else if (StringUtils.isNotEmpty(bussinessCode)) {
|
||||||
|
DvMachinery mParam = new DvMachinery();
|
||||||
|
mParam.setMachineryCode(bussinessCode);
|
||||||
|
List<DvMachinery> 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<WmBarcode> 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_;
|
dataType = PrintMessageProto.Printer.DataType.Equipment_;
|
||||||
PrintMessageProto.Printer.Equipment equipment = PrintMessageProto.Printer.Equipment.newBuilder().setEquipmentCode(equipmentCode).setEquipmentName(equipmentName).setSpecificationAndModel(specificationAndModel_1).setParam(param1).build();
|
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();
|
msg = PrintMessageProto.Printer.newBuilder().setWorkstation(workstation).setDataType(dataType).setPrintInfo(printInfo).build();
|
||||||
break;
|
break;
|
||||||
|
case UserConstants.BARCODE_TYPE_PROCARD:
|
||||||
|
//流转卡标签打印
|
||||||
|
|
||||||
case UserConstants.BARCODE_TYPE_WAREHOUSE:
|
case UserConstants.BARCODE_TYPE_WAREHOUSE:
|
||||||
// 仓库标签打印
|
// 仓库标签打印
|
||||||
//封装模板数据
|
//封装模板数据
|
||||||
|
@ -4,9 +4,14 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author yanshikui
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PrintBarcodeModel {
|
public class PrintBarcodeModel {
|
||||||
private Map<String, String> params;
|
private Map<String, String> params;
|
||||||
private String printCode;
|
private String printCode;
|
||||||
private String printTemplate;
|
private String printTemplate;
|
||||||
|
private Long bussinessId;
|
||||||
|
private String bussinessCode;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user