diff --git a/wms-api/src/main/java/com/foreverwin/nlv/wms/dto/PrintPortDTO.java b/wms-api/src/main/java/com/foreverwin/nlv/wms/dto/PrintPortDTO.java new file mode 100644 index 0000000..ee5dedf --- /dev/null +++ b/wms-api/src/main/java/com/foreverwin/nlv/wms/dto/PrintPortDTO.java @@ -0,0 +1,12 @@ +package com.foreverwin.nlv.wms.dto; + +import lombok.Data; + +@Data +public class PrintPortDTO { + private String site; + private String printName; + private String batchNumber; + private String tenantId; + private String userName; +} diff --git a/wms-api/src/main/java/com/foreverwin/nlv/wms/feign/RemotePrintService.java b/wms-api/src/main/java/com/foreverwin/nlv/wms/feign/RemotePrintService.java new file mode 100644 index 0000000..dfd1584 --- /dev/null +++ b/wms-api/src/main/java/com/foreverwin/nlv/wms/feign/RemotePrintService.java @@ -0,0 +1,19 @@ +package com.foreverwin.nlv.wms.feign; + +import com.foreverwin.mom.common.core.constant.SecurityConstants; +import com.foreverwin.nlv.wms.dto.PrintPortDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; + +/** + * 打印微服务调用接口 + */ +@FeignClient(contextId = "remotePrintService", value = "nlv-wms") +public interface RemotePrintService { + + @PostMapping("/print-pda-bind/print") + void remotePrint(@RequestBody PrintPortDTO printPortDTO, + @RequestHeader(SecurityConstants.FROM) String from); +} diff --git a/wms-core/src/main/java/com/foreverwin/nlv/wms/controller/PrintPdaBindController.java b/wms-core/src/main/java/com/foreverwin/nlv/wms/controller/PrintPdaBindController.java index 8d7e75f..49ed6ce 100644 --- a/wms-core/src/main/java/com/foreverwin/nlv/wms/controller/PrintPdaBindController.java +++ b/wms-core/src/main/java/com/foreverwin/nlv/wms/controller/PrintPdaBindController.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.foreverwin.mom.common.core.util.R; import com.foreverwin.mom.common.excel.annotation.ResponseExcel; import com.foreverwin.mom.common.log.annotation.SysLog; +import com.foreverwin.mom.common.security.annotation.Inner; +import com.foreverwin.nlv.wms.dto.PrintPortDTO; import com.foreverwin.nlv.wms.entity.PrintPdaBind; import com.foreverwin.nlv.wms.service.PrintPdaBindService; import io.swagger.annotations.Api; @@ -119,4 +121,17 @@ public class PrintPdaBindController { public R getPrintList(@PathVariable String site) { return R.ok(printPdaBindService.getPrintList(site)); } + + /** + * 打印接口用 + * @param printPortDTO 打印DTO + * @return R + */ + @ApiOperation(value = "打印接口用", notes = "打印接口用") + @SysLog("打印接口用" ) + @PostMapping("/print") + @Inner(value = false) + public void print(@RequestBody PrintPortDTO printPortDTO) { + printPdaBindService.print(printPortDTO); + } } diff --git a/wms-core/src/main/java/com/foreverwin/nlv/wms/service/PrintPdaBindService.java b/wms-core/src/main/java/com/foreverwin/nlv/wms/service/PrintPdaBindService.java index 881b27d..661d1f3 100644 --- a/wms-core/src/main/java/com/foreverwin/nlv/wms/service/PrintPdaBindService.java +++ b/wms-core/src/main/java/com/foreverwin/nlv/wms/service/PrintPdaBindService.java @@ -1,6 +1,7 @@ package com.foreverwin.nlv.wms.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.nlv.wms.dto.PrintPortDTO; import com.foreverwin.nlv.wms.entity.PrintPdaBind; import java.util.List; @@ -9,4 +10,6 @@ import java.util.Map; public interface PrintPdaBindService extends IService { List> getPrintList(String site); + + void print(PrintPortDTO printPortDTO); } diff --git a/wms-core/src/main/java/com/foreverwin/nlv/wms/service/impl/PrintPdaBindServiceImpl.java b/wms-core/src/main/java/com/foreverwin/nlv/wms/service/impl/PrintPdaBindServiceImpl.java index 34347ba..20640da 100644 --- a/wms-core/src/main/java/com/foreverwin/nlv/wms/service/impl/PrintPdaBindServiceImpl.java +++ b/wms-core/src/main/java/com/foreverwin/nlv/wms/service/impl/PrintPdaBindServiceImpl.java @@ -1,13 +1,20 @@ package com.foreverwin.nlv.wms.service.impl; +import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.foreverwin.mom.common.core.exception.BusinessException; +import com.foreverwin.nlv.wms.domain.PrintRequest; +import com.foreverwin.nlv.wms.dto.PrintPortDTO; import com.foreverwin.nlv.wms.entity.PrintPdaBind; import com.foreverwin.nlv.wms.mapper.PrintPdaBindMapper; import com.foreverwin.nlv.wms.service.PrintPdaBindService; +import com.foreverwin.nlv.wms.service.PrintService; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -19,8 +26,11 @@ import java.util.stream.Collectors; * @description */ @Service +@AllArgsConstructor public class PrintPdaBindServiceImpl extends ServiceImpl implements PrintPdaBindService { - + + private final PrintService printService; + @Override public List> getPrintList(String site) { List list = this.list(Wrappers.lambdaQuery().eq(PrintPdaBind::getSite, site).orderByAsc(PrintPdaBind::getPrintName)); @@ -33,4 +43,30 @@ public class PrintPdaBindServiceImpl extends ServiceImpl> mapList = new ArrayList<>(); + if (StrUtil.isBlank(printPortDTO.getPrintName())) { + throw BusinessException.build("打印机名称不能为空"); + } + Map dataMap = new HashMap<>(16); + dataMap.put("batchNumber", printPortDTO.getBatchNumber()); + mapList.add(dataMap); + PrintRequest printRequest = new PrintRequest(); + printRequest.setSite(printPortDTO.getSite()); + printRequest.setPrintData(mapList); + printRequest.setPrintName(printPortDTO.getPrintName()); + printRequest.setUser(printPortDTO.getUserName()); + printRequest.setPrintServer(""); + printRequest.setLabelQty(Math.toIntExact(1)); + printRequest.setTemplateName("TPBatcuNumber01"); + printRequest.setTemplatePath("TPBatcuNumber01.lab"); + printRequest.setTransactionId(UUID.randomUUID().toString()); + printRequest.setShopOrder(null); + printRequest.setBarcodeNumber(null); + printRequest.setBarcodeType(null); + String printContent = printService.savePrintLog(printRequest, 1, 1, null); + printService.processAndSendPrintData(printPortDTO.getSite(), printContent, printPortDTO.getPrintName(), null); + } }