diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/LabelController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/LabelController.java index ce7a226..27b7a15 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/LabelController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/LabelController.java @@ -69,6 +69,25 @@ public class LabelController { return JsonResponse.success(); } + @RequestMapping(value = "/storagePrint", method = RequestMethod.POST) + public AjaxResult storagePrint(@RequestBody JSONObject in) throws CustomException { + // 获取信息 + String printName = in.get("PRINTNAME").toString(); + // 数据 + List> dataList = (List) in.get("LIST"); + // 打印 + List resList = new ArrayList<>(); + for (Map data : dataList) { + StoragePrintDto storagePrintDto = new StoragePrintDto(); + storagePrintDto.setPrinterName(printName); + storagePrintDto.setSiteName(data.get("SITENAME").toString()); + storagePrintDto.setStorageName(data.get("STORAGENAME").toString()); + String urlInfo = labelService.storagePrint(storagePrintDto); + resList.add(urlInfo); + } + return AjaxResult.me().setResultObj(resList); + } + @RequestMapping(value = "/labelPrintTest", method = RequestMethod.POST) //@Operation(summary = "标签打印测试, 测试只能打印 标签模板没有参数的标签. ") public AjaxResult labelPrintTest(@RequestBody JSONObject in) throws CustomException { diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/StorageObject.java b/zi-wms-pda/src/main/java/com/cim/idm/model/StorageObject.java new file mode 100644 index 0000000..99995e2 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/StorageObject.java @@ -0,0 +1,9 @@ +package com.cim.idm.model; + +import lombok.Data; + +@Data +public class StorageObject { + private String CODE; + private String NAME; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/StoragePrintDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/StoragePrintDto.java new file mode 100644 index 0000000..f801fcf --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/StoragePrintDto.java @@ -0,0 +1,18 @@ +package com.cim.idm.model; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +public class StoragePrintDto { + + // sdk + private String siteName; + + // 货位名称 + private String storageName; + + // 打印机名称 + private String printerName; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java index 58f948c..c483c7a 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java @@ -1,5 +1,6 @@ package com.cim.idm.service.Impl; +import cn.hutool.core.text.CharSequenceUtil; import com.cim.idm.constants.CustomExceptionCode; import com.cim.idm.constants.MsgConstants; import com.cim.idm.constants.PolicyDef; @@ -10,13 +11,13 @@ import com.cim.idm.framework.exception.IDMFrameDBErrorSignal; import com.cim.idm.framework.orm.info.KeyInfo; import com.cim.idm.framework.orm.service.CommonServiceDAO; import com.cim.idm.framework.util.time.TimeStampUtil; -import com.cim.idm.model.BSLabel; -import com.cim.idm.model.BSLabelKey; -import com.cim.idm.model.LabelParameterObject; -import com.cim.idm.model.PrintRequest; +import com.cim.idm.model.*; import com.cim.idm.mwmsextend.generic.util.CommonUtil; import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import com.cim.idm.wmsextend.generic.util.ObjectUtil; +import com.cim.idm.wmspackage.storage.StorageServiceProxy; +import com.cim.idm.wmspackage.storage.management.data.StorageSpec; +import com.cim.idm.wmspackage.storage.management.data.StorageSpecKey; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; @@ -848,6 +849,47 @@ public class BSLabelServiceImpl extends CommonServiceDAO im // // labelPrint(pgData, requestUrl, pr, params); // } + + /** + * 货位打印 + */ + public String storagePrint(StoragePrintDto data) throws IllegalArgumentException, CustomException { + // 获取数据 + StorageSpecKey storageSpecKey = new StorageSpecKey(); + storageSpecKey.setStorageName(data.getStorageName()); + storageSpecKey.setSiteName(data.getSiteName()); + StorageSpec storageSpec = null; + try { + storageSpec = StorageServiceProxy.getStorageSpecService().selectByKey(storageSpecKey); + } catch (Exception e) { + throw new CustomException("未找到该货位!"); + } + StorageObject storageObject = new StorageObject(); + storageObject.setCODE(storageSpec.getKey().getStorageName()); + storageObject.setNAME(storageSpec.getDescription()); + + // 打印机数据 + // 名称 + String printer = CharSequenceUtil.isEmpty(data.getPrinterName()) + ? getDefaultPrinter() : data.getPrinterName(); + // 地址 + String requestUrl = getRequestUrlByServer("LabelRequestURL"); + // 参数(BSLABELASSIGNPARAMETER 表中映射关系) + List params = getLabelAssignParameter("storageLabel001"); + // 模板 + String labelPath = "D:\\storage.btw"; + + // 打印请求 + PrintRequest pr = new PrintRequest(); + pr.setLibraryID(UUID.randomUUID().toString()); + pr.setAbsolutePath(labelPath); + pr.setCopies(1); + pr.setSerialNumbers(0); + pr.setStartingPosition(0); + pr.setPrinter(printer); + pr.setPrintRequestID(UUID.randomUUID().toString()); + return labelPrint(storageObject, requestUrl, pr, params); + } /** * rePrintArriveMaterial diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/LabelServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/LabelServiceImpl.java index 3b55873..a718ac6 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/LabelServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/LabelServiceImpl.java @@ -61,6 +61,18 @@ public class LabelServiceImpl implements LabelService { } return urlFull; } + + @Override + public String storagePrint(StoragePrintDto data) throws CustomException { + String urlFull = ""; + try { + urlFull = bsLabelService.storagePrint(data); + } catch (Exception e) { + e.printStackTrace(); + throw new CustomException( "标签打印异常... " + e.getMessage()); + } + return urlFull; + } @Override public void labelPrintTest1(LabelPrintDto1 data) throws CustomException { diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/LabelService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/LabelService.java index eac1393..b913d38 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/LabelService.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/LabelService.java @@ -44,6 +44,12 @@ public interface LabelService { * @throws IllegalArgumentException 如果data为null。 */ String labelPrintTest(LabelPrintDto data) throws CustomException; + + /** + * 货位打印 + */ + String storagePrint(StoragePrintDto data) throws CustomException; + /** * 标签存量打印修改品名 */