feat:标签打印功能

This commit is contained in:
yanshikui 2024-11-25 12:03:29 +08:00
parent b09ddaee31
commit 7f830deebf
2 changed files with 79 additions and 9 deletions

View File

@ -115,7 +115,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.antMatchers("/*/api-docs").anonymous() .antMatchers("/*/api-docs").anonymous()
.antMatchers("/druid/**").anonymous() .antMatchers("/druid/**").anonymous()
.antMatchers("/websocket/**").anonymous() .antMatchers("/websocket/**").anonymous()
.antMatchers("/barcodePrint/printing/**").anonymous()
.antMatchers("/system/autocode/get/**").permitAll() .antMatchers("/system/autocode/get/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证 // 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated() .anyRequest().authenticated()

View File

@ -1,5 +1,6 @@
package com.ktg.print.controller; package com.ktg.print.controller;
import cn.hutool.core.collection.CollectionUtil;
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;
@ -7,6 +8,13 @@ import com.ktg.mes.dv.domain.DvMachinery;
import com.ktg.mes.dv.service.IDvMachineryService; import com.ktg.mes.dv.service.IDvMachineryService;
import com.ktg.mes.md.domain.MdItem; import com.ktg.mes.md.domain.MdItem;
import com.ktg.mes.md.service.IMdItemService; import com.ktg.mes.md.service.IMdItemService;
import com.ktg.mes.pro.domain.ProCard;
import com.ktg.mes.pro.domain.ProRouteProcess;
import com.ktg.mes.pro.domain.ProRouteProduct;
import com.ktg.mes.pro.mapper.ProRouteMapper;
import com.ktg.mes.pro.mapper.ProRouteProductMapper;
import com.ktg.mes.pro.service.IProCardService;
import com.ktg.mes.pro.service.IProRouteProcessService;
import com.ktg.mes.wm.domain.WmBarcode; import com.ktg.mes.wm.domain.WmBarcode;
import com.ktg.mes.wm.service.IWmBarcodeService; import com.ktg.mes.wm.service.IWmBarcodeService;
import com.ktg.print.domain.PrintBarcodeModel; import com.ktg.print.domain.PrintBarcodeModel;
@ -25,6 +33,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/** /**
* @author yanshikui * @author yanshikui
@ -41,6 +50,14 @@ public class PrintController {
private IWmBarcodeService wmBarcodeService; private IWmBarcodeService wmBarcodeService;
@Autowired @Autowired
private IDvMachineryService iDvMachineryService; private IDvMachineryService iDvMachineryService;
@Autowired
private IProCardService iProCardService;
@Autowired
private ProRouteProductMapper proRouteProductMapper;
@Autowired
private ProRouteMapper proRouteMapper;
@Autowired
private IProRouteProcessService iProRouteProcessService;
/** /**
@ -136,7 +153,7 @@ public class PrintController {
case UserConstants.BARCODE_TYPE_MACHINERY: case UserConstants.BARCODE_TYPE_MACHINERY:
//设备标签打印 //设备标签打印
//封装模板数据 //封装模板数据
DvMachinery dvMachinery = null; DvMachinery dvMachinery = null;
if (Optional.ofNullable(bussinessId).isPresent()) { if (Optional.ofNullable(bussinessId).isPresent()) {
dvMachinery = iDvMachineryService.selectDvMachineryByMachineryId(bussinessId); dvMachinery = iDvMachineryService.selectDvMachineryByMachineryId(bussinessId);
if (dvMachinery == null) { if (dvMachinery == null) {
@ -162,13 +179,12 @@ public class PrintController {
if (CollectionUtils.isEmpty(mBarcodes)) { if (CollectionUtils.isEmpty(mBarcodes)) {
return AjaxResult.error("未查询到二维码信息!" + "(" + bussinessCode + ")"); 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(dvMachinery.getMachineryCode()).
setEquipmentName(dvMachinery.getMachineryName()).
setSpecificationAndModel(dvMachinery.getMachinerySpec()).
setParam(mBarcodes.get(0).getBarcodeUrl()).build();
// 构造对应的消息对象 // 构造对应的消息对象
msg = PrintMessageProto.Printer.newBuilder().setEquipment(equipment).setDataType(dataType).setPrintInfo(printInfo).build(); msg = PrintMessageProto.Printer.newBuilder().setEquipment(equipment).setDataType(dataType).setPrintInfo(printInfo).build();
break; break;
@ -186,7 +202,62 @@ public class PrintController {
break; break;
case UserConstants.BARCODE_TYPE_PROCARD: case UserConstants.BARCODE_TYPE_PROCARD:
//流转卡标签打印 //流转卡标签打印
//封装模板数据
ProCard proCard = null;
if (Optional.ofNullable(bussinessId).isPresent()) {
proCard = iProCardService.selectProCardByCardId(bussinessId);
if (proCard == null) {
return AjaxResult.error("条码内容数据为空!" + "(" + bussinessId + ")");
}
} else if (StringUtils.isNotEmpty(bussinessCode)) {
ProCard pcParam = new ProCard();
pcParam.setCardCode(bussinessCode);
List<ProCard> mList = iProCardService.selectProCardList(pcParam);
if (CollectionUtils.isEmpty(mList)) {
return AjaxResult.error("条码内容数据为空!" + "(" + bussinessCode + ")");
}
proCard = mList.get(0);
} else {
return AjaxResult.error("缺少业务参数!");
}
//二维码信息查询
WmBarcode pcBarcode = new WmBarcode();
pcBarcode.setBussinessId(proCard.getCardId());
pcBarcode.setBussinessCode(proCard.getCardCode());
pcBarcode.setBarcodeType(UserConstants.BARCODE_TYPE_PROCARD);
List<WmBarcode> pcBarcodes = wmBarcodeService.selectWmBarcodeList(pcBarcode);
if (CollectionUtils.isEmpty(pcBarcodes)) {
return AjaxResult.error("未查询到二维码信息!" + "(" + bussinessCode + ")");
}
//TODO
Long routeId =-1L,processId = -1L;
ProRouteProduct proRouteProduct = new ProRouteProduct();
proRouteProduct.setItemId(proCard.getItemId());
List<ProRouteProduct> products = proRouteProductMapper.selectProRouteProductList(proRouteProduct);
if(CollectionUtil.isNotEmpty(products)){
products = products.stream().filter(i -> proRouteMapper.selectProRouteByRouteId(i.getRouteId()).getEnableFlag().equals(UserConstants.YES)).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(products)){
routeId = products.get(0).getRouteId();
}
}
ProRouteProcess proRouteProcess =new ProRouteProcess();
proRouteProcess.setRouteId(routeId);
String processingProcedure = "";
List<ProRouteProcess> proList = iProRouteProcessService.selectProRouteProcessList(proRouteProcess);
for (ProRouteProcess process:proList) {
processingProcedure = processingProcedure + "," + process.getProcessName();
}
dataType = PrintMessageProto.Printer.DataType.Printing_OfCirculation;
PrintMessageProto.Printer.PrintingOfCirculation printingOfCirculation = PrintMessageProto.Printer.PrintingOfCirculation.newBuilder().
setWorkOrderNumber(proCard.getWorkorderCode()).
setMaterialCode(proCard.getItemCode()).
setMaterialName(proCard.getItemName()).
setSpecificationAndModel(proCard.getSpecification()==null?"":proCard.getSpecification()).
setProcessingProcedure(processingProcedure).
setParam(pcBarcodes.get(0).getBarcodeUrl()).build();
// 构造对应的消息对象
msg = PrintMessageProto.Printer.newBuilder().setPrintingOfCirculation(printingOfCirculation).setDataType(dataType).setPrintInfo(printInfo).build();
break;
case UserConstants.BARCODE_TYPE_WAREHOUSE: case UserConstants.BARCODE_TYPE_WAREHOUSE:
// 仓库标签打印 // 仓库标签打印
//封装模板数据 //封装模板数据