From 669d2cc679fbb5beb734b70ab3e5f9c6a57f34b8 Mon Sep 17 00:00:00 2001 From: "0.0" <1092404103.qq.com> Date: Thu, 17 Aug 2023 18:57:39 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=89=98=E7=9B=98=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IBasicPrintTemplateClient.java | 10 +++ .../warehouse/vo/WarehouseTrayQRCode.java | 31 +++++++++ .../warehouse/vo/WarehouseTraybarCode.java | 21 ++++++ .../basic/feign/BasicPrintTemplateClient.java | 8 +++ .../controller/BasicdataTrayController.java | 9 +++ .../basicdata/mapper/BasicdataTrayMapper.java | 6 ++ .../basicdata/mapper/BasicdataTrayMapper.xml | 8 +++ .../service/IBasicdataTrayService.java | 5 ++ .../impl/BasicdataTrayServiceImpl.java | 69 +++++++++++++++++++ 9 files changed, 167 insertions(+) create mode 100644 blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayQRCode.java create mode 100644 blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTraybarCode.java diff --git a/blade-service-api/logpm-basic-api/src/main/java/com/logpm/basic/feign/IBasicPrintTemplateClient.java b/blade-service-api/logpm-basic-api/src/main/java/com/logpm/basic/feign/IBasicPrintTemplateClient.java index 05f73ac05..1f41ade4f 100644 --- a/blade-service-api/logpm-basic-api/src/main/java/com/logpm/basic/feign/IBasicPrintTemplateClient.java +++ b/blade-service-api/logpm-basic-api/src/main/java/com/logpm/basic/feign/IBasicPrintTemplateClient.java @@ -39,6 +39,7 @@ public interface IBasicPrintTemplateClient { String TOP = API_PREFIX + "/top"; String TOPPRINTTEMPLATE = API_PREFIX + "/printTemplate"; + /** * 获取打印模板信息列表 * @@ -66,6 +67,15 @@ public interface IBasicPrintTemplateClient { BasicPrintTemplateEntity getPrintTemplate(); + /** + * 根据获取托盘模板信息 + * @param + * @return + */ + @GetMapping(API_PREFIX+"/getTrayCode") + BasicPrintTemplateEntity getTrayCode(); + + diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayQRCode.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayQRCode.java new file mode 100644 index 000000000..902b8f56a --- /dev/null +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayQRCode.java @@ -0,0 +1,31 @@ +package com.logpm.warehouse.vo; + + +import lombok.Data; + +import java.lang.reflect.Field; +import java.util.HashMap; + +import java.util.Map; + +@Data +public class WarehouseTrayQRCode { + + private String warehouseName; + + private String trayCode; + + + public Map toMap() throws IllegalAccessException { + Map map = new HashMap<>(); + // 使用反射获取所有字段 + Field[] fields = this.getClass().getDeclaredFields(); + for (Field field : fields) { + field.setAccessible(true); // 设置可以访问私有字段 + String fieldName = field.getName(); + Object value = field.get(this); + map.put(fieldName, value); + } + return map; + } +} diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTraybarCode.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTraybarCode.java new file mode 100644 index 000000000..acb1ddfc2 --- /dev/null +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTraybarCode.java @@ -0,0 +1,21 @@ +package com.logpm.warehouse.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class WarehouseTraybarCode { + + @ApiModelProperty(value = "模板ID") + private Long templateId; + @ApiModelProperty(value = "模板内容") + private String templateHtml; + + @ApiModelProperty(value = "模板填充内容") + private List dataList; + + +} diff --git a/blade-service/logpm-basic/src/main/java/com/logpm/basic/feign/BasicPrintTemplateClient.java b/blade-service/logpm-basic/src/main/java/com/logpm/basic/feign/BasicPrintTemplateClient.java index 6e9a98139..7c1a5bb3a 100644 --- a/blade-service/logpm-basic/src/main/java/com/logpm/basic/feign/BasicPrintTemplateClient.java +++ b/blade-service/logpm-basic/src/main/java/com/logpm/basic/feign/BasicPrintTemplateClient.java @@ -73,5 +73,13 @@ public class BasicPrintTemplateClient implements IBasicPrintTemplateClient { ); } + @Override + public BasicPrintTemplateEntity getTrayCode() { + return basicPrintTemplateService.getOne(Wrappers.query().lambda() + .eq(BasicPrintTemplateEntity::getKnifeSwitch,true) + .eq(BasicPrintTemplateEntity::getTemplateType, PrintTemplateStatusConstant.daiqueren_7.getValue()) + ); + } + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTrayController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTrayController.java index 0358e8fa2..847765076 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTrayController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTrayController.java @@ -219,6 +219,15 @@ public class BasicdataTrayController extends BladeController { return R.status(trayService.deleteLogic(Func.toLongList(ids))); } + /** + * 托盘 打印条形码 + */ + @PostMapping("/barCode") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "托盘 打印条形码", notes = "传入ids") + public R barCode(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) throws Exception { + return R.data(trayService.printCode(Func.toLongList(ids))); + } /** * 导出数据 diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.java index 439bb2179..b201832e3 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.java @@ -25,6 +25,8 @@ import com.logpm.basicdata.vo.BasicdataTrayVO; import com.logpm.basicdata.vo.BasicdataStockArticleVO; import com.logpm.basicdata.vo.WarehouseParcelListVO; import com.logpm.basicdata.vo.WarehouseStockListVO; +import com.logpm.distribution.vo.DistributionStockArticleQRCodeVO; +import com.logpm.warehouse.vo.WarehouseTrayQRCode; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -80,4 +82,8 @@ public interface BasicdataTrayMapper extends BaseMapper { * 托盘 零担历史记录 */ List selectlclListhistory(IPage page, @Param("param") BasicdataTrayVO basicdataTray); + /** + * 托盘 零担历史记录 + */ + WarehouseTrayQRCode getTray(@Param("id") Long id); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml index c9443183a..22e2b71dc 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml @@ -217,4 +217,12 @@ + + + + + + diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTrayService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTrayService.java index 18180281e..1f9a90bcc 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTrayService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTrayService.java @@ -25,6 +25,7 @@ import com.logpm.basicdata.vo.BasicdataTrayVO; import com.logpm.basicdata.vo.BasicdataStockArticleVO; import com.logpm.basicdata.vo.WarehouseParcelListVO; import com.logpm.basicdata.vo.WarehouseStockListVO; +import com.logpm.warehouse.vo.WarehouseTraybarCode; import org.springblade.core.mp.base.BaseService; import java.util.List; import java.util.Map; @@ -97,4 +98,8 @@ public interface IBasicdataTrayService extends BaseService * 托盘 一键空闲 */ Boolean vacantById(BasicdataTrayEntity basicdataTray); + /** + * 托盘 打印包条 + */ + WarehouseTraybarCode printCode(List ids) throws Exception; } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java index cd2f36ca1..8cf06fdc2 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java @@ -16,7 +16,13 @@ */ package com.logpm.basicdata.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.logpm.basic.entity.BasicPrintTemplateEntity; +import com.logpm.basic.feign.IBasicPrintTemplateClient; import com.logpm.basic.feign.IBasicTenantCodeClient; import com.logpm.basicdata.dto.BasicdataTrayDTO; import com.logpm.basicdata.entity.BasicdataTrayEntity; @@ -31,12 +37,18 @@ import com.logpm.basicdata.vo.BasicdataTrayVO; import com.logpm.basicdata.vo.BasicdataStockArticleVO; import com.logpm.basicdata.vo.WarehouseParcelListVO; import com.logpm.basicdata.vo.WarehouseStockListVO; +import com.logpm.distribution.vo.DistributionStockArticleQRCodeVO; import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient; import com.logpm.warehouse.feign.IWarehouseTrayTypeClient; +import com.logpm.warehouse.vo.WarehouseTrayQRCode; +import com.logpm.warehouse.vo.WarehouseTraybarCode; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j2; import org.springblade.common.constant.CodeNumConstant; +import org.springblade.common.utils.QRCodeUtil; +import org.springblade.common.utils.TemplateUtil; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.Func; @@ -46,7 +58,11 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; +import sun.misc.BASE64Encoder; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.*; /** @@ -73,6 +89,8 @@ public class BasicdataTrayServiceImpl extends BaseServiceImpl selectBasicdataTrayPage(IPage page, BasicdataTrayVO BasicdataTray) { @@ -185,6 +203,57 @@ public class BasicdataTrayServiceImpl extends BaseServiceImpl ids) throws Exception { + WarehouseTraybarCode warehouseTraybarCode = new WarehouseTraybarCode(); + List data = new ArrayList<>(); + BasicPrintTemplateEntity template = basicPrintTemplateClient.getPrintTemplate(); + if (ObjectUtil.isEmpty(template)) { + throw new ServiceException("模板内容未找到"); + } + String html = TemplateUtil.getTemplateByUrl2(template.getTemplateUrl()); + warehouseTraybarCode.setTemplateHtml(html); + warehouseTraybarCode.setTemplateId(template.getId()); + if(ObjectUtils.isNull(ids)){ + throw new ServiceException("参数错误"); + } + + for (Long id : ids) { + WarehouseTrayQRCode trayQRCode = baseMapper.getTray(id); + Map map = JSONObject.parseObject(JSONObject.toJSONString(trayQRCode), Map.class); + String filename = QRCodeUtil.createCodeToFile(trayQRCode.getTrayCode()); + map.put("img", getEmpAutograph(filename)); + String fileTypeName = QRCodeUtil.createCodeToFileType(trayQRCode.getTrayCode()); + map.put("imgType", getEmpAutograph(fileTypeName)); + data.add(map); + } + + return warehouseTraybarCode; + } + + private String getEmpAutograph(String filePath) { + String img = null; + if (StringUtils.isNotEmpty(filePath)) { + InputStream in = null; + byte[] picdata = null; + try { + in = new FileInputStream(filePath); + picdata = new byte[in.available()]; + in.read(picdata); + BASE64Encoder encoder = new BASE64Encoder(); + img = encoder.encode(picdata); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return "data:image/png;base64," + img; + } }