diff --git a/epdc-cloud-custom/pom.xml b/epdc-cloud-custom/pom.xml
index c92c7ad..a12c280 100644
--- a/epdc-cloud-custom/pom.xml
+++ b/epdc-cloud-custom/pom.xml
@@ -189,6 +189,9 @@
organizationGroup
vaccineGroup
vaccineGroup
+
+
+ https://epdc-yushan.elinkservice.cn/familyInfo/
@@ -232,6 +235,9 @@
organizationGroup
vaccineGroup
vaccineGroup
+
+
+ https://epdc-yushan.elinkservice.cn/familyInfo/
@@ -275,6 +281,9 @@
organizationGroup
vaccineGroup
vaccineGroup
+
+
+ https://epdc-yushan.elinkservice.cn/familyInfo/
diff --git a/epdc-cloud-custom/src/main/resources/application.yml b/epdc-cloud-custom/src/main/resources/application.yml
index e85ba0b..007fb7f 100644
--- a/epdc-cloud-custom/src/main/resources/application.yml
+++ b/epdc-cloud-custom/src/main/resources/application.yml
@@ -123,3 +123,7 @@ hystrix:
ribbon:
ReadTimeout: 30000
ConnectTimeout: 30000
+#小程序码生成
+qr:
+ code:
+ pre: @qr.code.pre@
diff --git a/epdc-cloud-vim-yushan/pom.xml b/epdc-cloud-vim-yushan/pom.xml
index 0d9cd56..0e025b4 100644
--- a/epdc-cloud-vim-yushan/pom.xml
+++ b/epdc-cloud-vim-yushan/pom.xml
@@ -60,6 +60,16 @@
rocketmq-spring-boot-starter
2.0.3
+
+ com.google.zxing
+ core
+ 3.4.1
+
+
+ com.google.zxing
+ javase
+ 3.4.1
+
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/config/QrCodeProperties.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/config/QrCodeProperties.java
new file mode 100644
index 0000000..f4213e1
--- /dev/null
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/config/QrCodeProperties.java
@@ -0,0 +1,29 @@
+package com.elink.esua.epdc.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 二维码前缀
+ *
+ * @author zhy
+ * @date 2022/5/20 14:59
+ */
+@Configuration
+@ConfigurationProperties(prefix = "qr.code")
+public class QrCodeProperties {
+
+ /**
+ * 前缀
+ */
+ private String pre;
+
+ public String getPre() {
+ return pre;
+ }
+
+ public void setPre(String pre) {
+ this.pre = pre;
+ }
+
+}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/utils/HouseQRcodeUtils.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/utils/HouseQRcodeUtils.java
new file mode 100644
index 0000000..63fc506
--- /dev/null
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/utils/HouseQRcodeUtils.java
@@ -0,0 +1,171 @@
+package com.elink.esua.epdc.vaccine.epidemic.utils;
+
+
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.MultiFormatWriter;
+import com.google.zxing.WriterException;
+import com.google.zxing.client.j2se.MatrixToImageConfig;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.common.CharacterSetECI;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
+/**
+ * Date: 2022/06/7 10:01
+ * Description:房屋一户一码生成工具类
+ */
+@Slf4j
+public class HouseQRcodeUtils {
+ /**
+ * 二维码颜色 默认是黑色
+ */
+ private static final Color QRCOLOR = Color.black;
+ /**
+ * 背景颜色
+ */
+ private static final Color BGWHITE = Color.white;
+ public static final int WIDTH = 800;
+ public static final int HEIGHT = 800;
+ public static final int MARGIN = 10;
+ public static final int FONTSIZE = 40;
+
+
+
+ /**
+ * 房屋一户一码生成-指定像素
+ *
+ * @param contents 说明
+ * @return BufferedImage
+ * @throws Exception
+ */
+ public static BufferedImage drawHouseQRImage(String pressText, String contents) throws Exception {
+ BufferedImage qRImage = null;
+ if (contents == null || "".equals(contents)) {
+ throw new Exception("content说明不能为空");
+ }
+ // 二维码参数设置
+ HashMap hints = new HashMap<>();
+ hints.put(EncodeHintType.CHARACTER_SET, CharacterSetECI.UTF8); // 编码设置
+ hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 安全等级,最高h
+ hints.put(EncodeHintType.MARGIN, MARGIN); // 设置margin=0-10
+
+ // 二维码图片的生成
+ BarcodeFormat format = BarcodeFormat.QR_CODE;
+ // 创建矩阵容器
+ BitMatrix matrix = null;
+ try {
+ matrix = new MultiFormatWriter().encode(contents, format, WIDTH, HEIGHT, hints);
+ } catch (WriterException e) {
+ log.error("method exception", e);
+ }
+
+ // 设置矩阵转为图片的参数
+ MatrixToImageConfig toImageConfig = new MatrixToImageConfig(QRCOLOR.getRGB(), BGWHITE.getRGB());
+
+ // 矩阵转换图像
+ qRImage = MatrixToImageWriter.toBufferedImage(matrix, toImageConfig);
+ return pressHouseText(pressText, qRImage);
+ }
+
+ /**
+ * @param pressText 二维码下方插入文字
+ * @param image 需要添加文字的图片
+ * @为图片添加文字
+ */
+ private static BufferedImage pressHouseText(String pressText, BufferedImage image) throws Exception {
+
+ BufferedImage outImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
+ //计算文字开始的位置
+ //x开始的位置:(图片宽度-字体大小*字的个数)/2
+ int startX = (WIDTH - (FONTSIZE * pressText.length())) / 2;
+ //y开始的位置:图片高度-(图片高度-图片宽度)/2
+// int startY = HEIGHT - (HEIGHT - WIDTH) / 2 + FONTSIZE;
+ int startY = 740;
+
+ int imageW = outImage.getWidth();
+ int imageH = outImage.getHeight();
+ Graphics2D g = outImage.createGraphics();
+ g.drawImage(image, 0, 0, imageW, imageH, null);
+ g.setColor(QRCOLOR);
+ g.setFont(new Font("Noto Sans SC Light", Font.BOLD, FONTSIZE));
+ g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
+ g.setBackground(Color.white);
+// 获取文字数量 按照字节展示
+ int size = pressText.getBytes("GBK").length;
+// 获取一行最多能容纳多少文字 按照文字字节展示
+ int maxSize = (WIDTH / FONTSIZE - 2) * 2;
+ if (size > maxSize) {
+ int v = size % maxSize;
+ for (int a = 0; a < (size / maxSize); a++) {
+ String s = outStringByByte(pressText, maxSize);
+ g.drawString(s, (WIDTH - (FONTSIZE * (WIDTH / FONTSIZE - 2))) / 2, startY);
+ pressText = pressText.substring(s.length(), pressText.length());
+ startY = startY + 35;
+ }
+ if (v != 0) {
+ g.drawString(pressText, (WIDTH - (FONTSIZE * v)) / 2, startY);
+ }
+ } else {
+ g.drawString(pressText, (WIDTH - ((pressText.getBytes("GBK").length) / 2) * FONTSIZE) / 2, startY);
+ }
+
+ g.dispose();
+ return outImage;
+ }
+
+
+
+ /**
+ * 保存二维码图片到本地
+ *
+ * @param contents
+ * @throws Exception
+ */
+ public static void createImg(String pressText, String contents, String filename, String filePath) throws Exception {
+ BufferedImage qRImageWithLogo = drawHouseQRImage(pressText, contents);
+ // 写入返回
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ImageIO.write(qRImageWithLogo, "jpg", baos);
+ //图片类型
+ String imageType = "jpg";
+ //生成二维码存放文件
+ File file = new File(filePath + filename + ".jpg");
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ ImageIO.write(qRImageWithLogo, imageType, file);
+ baos.close();
+ }
+
+
+ private static String outStringByByte(String str, int len) throws IOException {
+ byte[] btf = str.getBytes("GBK");
+ int count = 0;
+
+ for (int j = len - 1; j >= 0; j--) {
+ if (btf[j] < 0) {
+ count++;
+ } else {
+ break;
+ }
+ }
+
+ if (count % 2 == 0) {
+ return new String(btf, 0, len, "GBK");
+ } else {
+ return new String(btf, 0, len - 1, "GBK");
+ }
+ }
+
+}
+
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/VimAdminFeignClient.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/VimAdminFeignClient.java
index 9846338..02bfa0b 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/VimAdminFeignClient.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/VimAdminFeignClient.java
@@ -3,6 +3,7 @@ package com.elink.esua.epdc.vaccine.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AllDeptDTO;
+import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.dto.house.SysPopulationSimpleDictDTO;
@@ -22,7 +23,7 @@ import java.util.List;
* @date 2019/9/5 14:44
*/
@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = VimAdminFeignClientFallback.class
-// ,url = "http://127.0.0.1:9092"
+ ,url = "http://127.0.0.1:9092"
)
public interface VimAdminFeignClient {
@@ -48,6 +49,9 @@ public interface VimAdminFeignClient {
@GetMapping("/sys/dept/getParentAndAllDept/{deptId}")
Result getParentAndAllDept(@PathVariable("deptId") String deptId);
+ @GetMapping("/sys/dept/getCompleteDept/{gridId}")
+ Result getCompleteDept(@PathVariable("gridId") String gridId);
+
/**
* @return com.elink.esua.epdc.commons.tools.utils.Result>
* @Description 获取多个字典值列表
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/fallback/VimAdminFeignClientFallback.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/fallback/VimAdminFeignClientFallback.java
index 9e5f519..034b99b 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/fallback/VimAdminFeignClientFallback.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/fallback/VimAdminFeignClientFallback.java
@@ -4,6 +4,7 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AllDeptDTO;
+import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.dto.house.SysPopulationSimpleDictDTO;
@@ -31,6 +32,11 @@ public class VimAdminFeignClientFallback implements VimAdminFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getParentAndAllDept", depId);
}
+ @Override
+ public Result getCompleteDept(String gridId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getCompleteDept", gridId);
+ }
+
@Override
public Result> listPopulationSimple(SysPopulationSimpleDictFormDTO sysPopulationSimpleDictFormDTO){
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listPopulationSimple", sysPopulationSimpleDictFormDTO);
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
index 488c525..e5c61be 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
@@ -18,6 +18,8 @@
package com.elink.esua.epdc.vaccine.personroom.controller;
+import com.elink.esua.epdc.commons.tools.constant.StrConstant;
+import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@@ -26,15 +28,26 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
+import com.elink.esua.epdc.config.QrCodeProperties;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
+import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO;
+import com.elink.esua.epdc.vaccine.epidemic.utils.HouseQRcodeUtils;
import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicBuildingUnitExcel;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicBuildingUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import javax.imageio.ImageIO;
+import javax.imageio.stream.ImageOutputStream;
import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
@@ -52,6 +65,9 @@ public class BuildingUnitController {
@Autowired
private EpidemicBuildingUnitService epidemicBuildingUnitService;
+ @Autowired
+ private QrCodeProperties qrCodeProperties;
+
@GetMapping("page")
public Result> page(@RequestParam Map params) {
PageData page = epidemicBuildingUnitService.page(params);
@@ -103,4 +119,48 @@ public class BuildingUnitController {
return epidemicBuildingUnitService.importEpidemicHouse(file, gridId);
}
+ /**
+ * @return void
+ * @describe: 下载房屋编码
+ * @author wangtong
+ * @date 2022/6/1 17:24
+ * @params [formDTO, response]
+ */
+ @PostMapping("createHouseQrcode")
+ public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response) {
+ ValidatorUtils.validateEntity(formDTO);
+ try {
+ EpidemicBuildingUnitDetailResultDTO house = epidemicBuildingUnitService.get(formDTO.getId());
+ if (null == house) {
+ throw new RenException("未查到房屋信息");
+ }
+ //url组成:小程序地址?房屋编码
+ String url = qrCodeProperties.getPre() + house.getRoomCode();
+ BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url);
+ //BufferedImage 转 InputStream
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream);
+ ImageIO.write(image, "png", imageOutput);
+ InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+ long length = imageOutput.length();
+ String fileName = house.getBuildingName() + house.getUnit() + house.getRoomNo() + ".png";
+ response.setContentType("application/octet-stream");
+ response.setContentLength((int) length);
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8));
+
+ //输出流
+ byte[] bytes = new byte[1024];
+ OutputStream outputStream = response.getOutputStream();
+ long count = 0;
+ while (count < length) {
+ int len = inputStream.read(bytes, 0, 1024);
+ count += len;
+ outputStream.write(bytes, 0, len);
+ }
+ outputStream.flush();
+ } catch (Exception e) {
+ throw new RenException("生成房屋码失败");
+ }
+ }
+
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
index 75c6f33..343cd2a 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
@@ -86,4 +86,7 @@ public interface EpidemicBuildingUnitDao extends BaseDao listAllUnitInfo();
+
+ Integer getMaxCode();
+
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java
index 165b491..79fdb18 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java
@@ -141,4 +141,7 @@ public interface EpidemicPlotBuildingDao extends BaseDao listAllBuildingInfo();
+
+ Integer getMaxCode();
+
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingErrorDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingErrorDao.java
index 68ecc5b..b149aba 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingErrorDao.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingErrorDao.java
@@ -42,4 +42,5 @@ public interface EpidemicPlotBuildingErrorDao extends BaseDao
*/
List getErrorExcelList(Map params);
+
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java
index f0d5df2..4ed9b8b 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java
@@ -51,4 +51,14 @@ public interface EpidemicUnitOwnerDao extends BaseDao {
* @date 2022/6/6 10:12
*/
void deletePhysicalByIdCardAndUnitId(@Param("idCard") String idCard, @Param("unitId") Long unitId);
+
+ /**
+ * 根据身份证删除
+ *
+ * @param idCard
+ * @author zhy
+ * @date 2022/6/7 16:02
+ */
+ int deleteByIdCard(@Param("idCard") String idCard);
+
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java
index 06b7752..802b555 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java
@@ -170,4 +170,14 @@ public class EpidemicBuildingUnitEntity extends BasePingyinEntity {
* 街道编码
*/
private String streetId;
+
+ /**
+ * 房屋编码
+ */
+ private String roomCode;
+
+ /**
+ * 房屋码(5位数字自增)
+ */
+ private Integer roomMaCode;
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotBuildingEntity.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotBuildingEntity.java
index d500ae5..e319b03 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotBuildingEntity.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotBuildingEntity.java
@@ -207,4 +207,8 @@ public class EpidemicPlotBuildingEntity extends BasePingyinEntity {
*/
private String emergencyPosition;
+ /**
+ * 楼栋唯一编码五位数自增
+ */
+ private Integer buildingMaCode;
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
index 512407c..82c6df9 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
@@ -106,4 +106,7 @@ public interface EpidemicBuildingUnitService extends CrudService listAllBuildingInfo();
+
+ int getMaxCode();
}
diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicUnitOwnerService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicUnitOwnerService.java
index 40276c5..6d3632e 100644
--- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicUnitOwnerService.java
+++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicUnitOwnerService.java
@@ -104,6 +104,17 @@ public interface EpidemicUnitOwnerService extends BaseService owners, Long unitId) {
List dtoList = owners.stream().filter(item -> StringUtils.isNotBlank(item.getIdCard())).collect(Collectors.toList());
List list = ConvertUtils.sourceToTarget(dtoList, EpidemicUnitOwnerEntity.class);
@@ -335,7 +345,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl addList = new ArrayList<>();
List updateList = new ArrayList<>();
+ Result allDeptInfo = adminVimFeignClient.getCompleteDept(parentAndAllDeptDTO.getGridId().toString());
+ CompleteDeptDTO completeDept = allDeptInfo.getData();
+
List checkList = epidemicUserInfoService.listByIdCards(baseResidentInformationExcels.stream().map(BaseResidentInformationUpdateExcel::getSelfIdentityNo).collect(Collectors.toList()));
for (BaseResidentInformationUpdateExcel baseResidentInformationExcel : baseResidentInformationExcels) {
@@ -401,10 +414,11 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl buildingList = epidemicPlotBuildingService.listAllBuildingInfo();
+ int roomCode = getMaxCode();
List unitList = listAllUnitInfo();
List addOwner = new ArrayList<>();
List addUnit = new ArrayList<>();
- addList.forEach(item -> {
+ for (EpidemicUserInfoEntity item : addList) {
// 只有信息完整的才进行匹配
if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) {
Optional unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit())).findFirst();
@@ -426,6 +440,15 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl {
+ for (EpidemicUserInfoEntity item : updateList) {
// 只有信息完整的才进行匹配
if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) {
- Optional unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit())).findFirst();
+ Optional unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit())&& unit.getRoomNo().equals(item.getRoomNo())).findFirst();
if (unitOptional.isPresent()) {
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard());
entity.setUnitId(unitOptional.get().getUnitId());
entity.setOwnerName(item.getUserName());
entity.setMobile(item.getMobile());
- // todo del?
+ epidemicUnitOwnerService.deleteByIdCard(item.getIdCard());
addOwner.add(entity);
} else {
Optional buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo())).findFirst();
@@ -461,20 +484,34 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl
SELECT
bu.*,
+ pb.BUILDING_NAME,
pb.PLOT_ID,
pc.PLOT_NAME
FROM
@@ -127,6 +128,8 @@
SELECT
u.id AS unitId,
u.UNIT,
+ u.ROOM_NO,
+ u.ROOM_MA_CODE,
b.id AS buildingId,
b.BUILDING_NAME,
p.id AS plotId,
@@ -140,4 +143,12 @@
AND b.DEL_FLAG = '0'
AND p.DEL_FLAG = '0'
+
+
+
diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml
index 4cd5602..1b92632 100644
--- a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml
+++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml
@@ -177,6 +177,7 @@
b.id,
b.BUILDING_NAME,
p.id AS plotId,
+ b.BUILDING_MA_CODE,
p.PLOT_NAME
FROM
epidemic_plot_building b
@@ -185,5 +186,10 @@
b.DEL_FLAG = '0'
AND p.DEL_FLAG = '0'
-
+
diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml
index 3d81f2c..9b6b3be 100644
--- a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml
+++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml
@@ -26,6 +26,14 @@
UNIT_ID = #{unitId}
+
+ DELETE
+ FROM
+ epidemic_unit_owner
+ WHERE
+ ID_CARD = #{idCard}
+
+
DELETE
FROM