diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/QrParam.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/QrParam.java
new file mode 100644
index 0000000..c97051f
--- /dev/null
+++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/QrParam.java
@@ -0,0 +1,19 @@
+package com.njcn.csdevice.pojo.param;
+
+import lombok.Data;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/8/21 16:00
+ */
+@Data
+public class QrParam {
+
+ private String type = "NDID";
+
+ private String data;
+
+}
diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java
index 2c800eb..3ad4bd9 100644
--- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java
+++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentDeliveryPO.java
@@ -138,5 +138,10 @@ public class CsEquipmentDeliveryPO extends BaseEntity {
@TableField(value = "module_number")
private Integer moduleNumber;
+ /**
+ * 二维码文件路径
+ */
+ @TableField(value = "qr_path")
+ private String qrPath;
}
\ No newline at end of file
diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java
index f8cfaf4..df6ba48 100644
--- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java
+++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsEquipmentDeliveryVO.java
@@ -114,4 +114,7 @@ public class CsEquipmentDeliveryVO extends BaseEntity {
@ApiModelProperty(value="设备软件信息")
private String softinfoId ;
+
+ @ApiModelProperty(value="二维码路径")
+ private String qrPath ;
}
\ No newline at end of file
diff --git a/cs-device/cs-device-boot/pom.xml b/cs-device/cs-device-boot/pom.xml
index 03bec44..ca39ed8 100644
--- a/cs-device/cs-device-boot/pom.xml
+++ b/cs-device/cs-device-boot/pom.xml
@@ -95,6 +95,20 @@
1.0.0
compile
+
+
+
+ com.google.zxing
+ core
+ 3.3.3
+
+
+
+ com.google.zxing
+ javase
+ 3.3.3
+
+
diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java
index 34e1328..92d8692 100644
--- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java
+++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java
@@ -2,6 +2,7 @@ package com.njcn.csdevice.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -13,16 +14,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper;
-import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAddParm;
-import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm;
-import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryQueryParm;
-import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm;
+import com.njcn.csdevice.pojo.param.*;
import com.njcn.csdevice.pojo.po.*;
import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO;
import com.njcn.csdevice.pojo.vo.DeviceManagerVO;
import com.njcn.csdevice.pojo.vo.ProjectEquipmentVO;
import com.njcn.csdevice.service.*;
+import com.njcn.csdevice.util.QRCodeUtil;
import com.njcn.db.constant.DbConstant;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.web.factory.PageFactory;
@@ -32,6 +33,12 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.*;
/**
@@ -61,9 +68,11 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
+ Page page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
+ page.getRecords().forEach(item->{
+ if (!Objects.isNull(item.getQrPath())){
+ item.setQrPath(fileStorageUtil.getFileUrl(item.getQrPath()));
+ }
+ });
+ return page;
}
@Override
@@ -261,4 +288,15 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl hints = new HashMap();
+
+ //EncodeHintType.CHARACTER_SET:设置字符编码类型
+ hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
+
+ //EncodeHintType.ERROR_CORRECTION:设置误差校正
+ //ErrorCorrectionLevel:误差校正等级,L = ~7% correction、M = ~15% correction、Q = ~25% correction、H = ~30% correction
+ //不设置时,默认为 L 等级,等级不一样,生成的图案不同,但扫描的结果是一样的
+ hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
+
+ //EncodeHintType.MARGIN:设置二维码边距,单位像素,值越小,二维码距离四周越近
+ hints.put(EncodeHintType.MARGIN, 1);
+
+ MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
+ BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, CODE_WIDTH, CODE_HEIGHT, hints);
+ BufferedImage bufferedImage = new BufferedImage(CODE_WIDTH, CODE_HEIGHT, BufferedImage.TYPE_INT_BGR);
+ for (int x = 0; x < CODE_WIDTH; x++) {
+ for (int y = 0; y < CODE_HEIGHT; y++) {
+ bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? FRONT_COLOR : BACKGROUND_COLOR);
+ }
+ }
+ return bufferedImage;
+ }
+}
+