diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml
index 7f1fb8e728..e516c5fba7 100644
--- a/epmet-commons/epmet-commons-tools/pom.xml
+++ b/epmet-commons/epmet-commons-tools/pom.xml
@@ -24,6 +24,7 @@
2.8.6
1.11.3
1.18.4
+ 3.0.3
@@ -177,6 +178,25 @@
javase
3.4.1
+
+ com.alibaba
+ easyexcel
+ ${easyexcel.version}
+
+
+ poi
+ org.apache.poi
+
+
+ poi-ooxml
+ org.apache.poi
+
+
+ poi-ooxml-schemas
+ org.apache.poi
+
+
+
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java
new file mode 100644
index 0000000000..389338f717
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java
@@ -0,0 +1,57 @@
+package com.epmet.commons.tools.enums;
+
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+
+/**
+ * @author Administrator
+ */
+public enum ChannelEnum {
+ //通知渠道 0小程序通知,1短信通知
+ APP("0", "小程序通知"),
+ MESSAGE("1", "短信通知"),
+ ALL("2", "小程序通知,短信通知");
+ private String code;
+ private String name;
+
+
+ ChannelEnum(String code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public static String getName(String code) {
+ ChannelEnum[] houseTypeEnums = values();
+ for (ChannelEnum houseTypeEnum : houseTypeEnums) {
+ if (houseTypeEnum.getCode() == code) {
+ return houseTypeEnum.getName();
+ }
+ }
+ return EpmetErrorCode.SERVER_ERROR.getMsg();
+ }
+
+ public static String getCode(String name) {
+ ChannelEnum[] houseTypeEnums = values();
+ for (ChannelEnum houseTypeEnum : houseTypeEnums) {
+ if (houseTypeEnum.getName().equals(name)) {
+ return houseTypeEnum.getCode();
+ }
+ }
+ return null;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java
index 70307f6551..ce92400ae0 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java
@@ -1,11 +1,9 @@
package com.epmet.commons.tools.security.user;
import com.epmet.commons.tools.constant.AppClientConstant;
-import com.epmet.commons.tools.utils.HttpContextUtils;
-import org.apache.commons.lang3.StringUtils;
+import com.epmet.commons.tools.utils.EpmetRequestHolder;
import org.springframework.stereotype.Component;
-import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -14,24 +12,21 @@ import java.util.List;
@Component
public class LoginUserUtil {
- //@Autowired
- //private
-
/**
* 查询登录用户的id
* @return
*/
public String getLoginUserId() {
- HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
- if (request == null) {
- return null;
- }
-
- String userId = request.getHeader(AppClientConstant.USER_ID);
- if (StringUtils.isBlank(userId)) {
- return null;
- }
- return userId;
+ //HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+ //if (request == null) {
+ // return null;
+ //}
+ //
+ //String userId = request.getHeader(AppClientConstant.USER_ID);
+ //if (StringUtils.isBlank(userId)) {
+ // return null;
+ //}
+ return EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
}
/**
@@ -39,16 +34,16 @@ public class LoginUserUtil {
* @return
*/
public String getLoginUserApp() {
- HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
- if (request == null) {
- return null;
- }
-
- String app = request.getHeader(AppClientConstant.APP);
- if (StringUtils.isBlank(app)) {
- return null;
- }
- return app;
+ //HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+ //if (request == null) {
+ // return null;
+ //}
+ //
+ //String app = request.getHeader(AppClientConstant.APP);
+ //if (StringUtils.isBlank(app)) {
+ // return null;
+ //}
+ return EpmetRequestHolder.getHeader(AppClientConstant.APP);
}
/**
@@ -56,16 +51,16 @@ public class LoginUserUtil {
* @return
*/
public String getLoginUserClient() {
- HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
- if (request == null) {
- return null;
- }
-
- String client = request.getHeader(AppClientConstant.CLIENT);
- if (StringUtils.isBlank(client)) {
- return null;
- }
- return client;
+ //HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+ //if (request == null) {
+ // return null;
+ //}
+ //
+ //String client = request.getHeader(AppClientConstant.CLIENT);
+ //if (StringUtils.isBlank(client)) {
+ // return null;
+ //}
+ return EpmetRequestHolder.getHeader(AppClientConstant.CLIENT);
}
/**
@@ -73,16 +68,16 @@ public class LoginUserUtil {
* @return
*/
public String getLoginUserCustomerId() {
- HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
- if (request == null) {
- return null;
- }
-
- String client = request.getHeader(AppClientConstant.CUSTOMER_ID);
- if (StringUtils.isBlank(client)) {
- return null;
- }
- return client;
+ //HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+ //if (request == null) {
+ // return null;
+ //}
+ //
+ //String client = request.getHeader(AppClientConstant.CUSTOMER_ID);
+ //if (StringUtils.isBlank(client)) {
+ // return null;
+ //}
+ return EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID);
}
/**
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java
index b8a12015bb..00784bc7db 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java
@@ -15,6 +15,47 @@ import java.nio.file.Paths;
@Slf4j
public class FileUtils {
+ /**
+ * epmet文件根路径
+ */
+ private static Path epmetFilePath;
+
+ static {
+ // linux || mac
+ epmetFilePath = Paths.get("/opt/epmet_files");
+ // windows
+ }
+
+ /**
+ * 获取在epmetfiles下的文件路径,输入相对路径即可获取完整绝对路径
+ * @param pathParts 目录片段,可以是文件夹或者文件名
+ * @return
+ */
+ public static Path getPathUnderEpmetFilesDir(String... pathParts) {
+ Path path;
+ if (pathParts == null || pathParts.length == 0) {
+ path = epmetFilePath.resolve("temp");
+ } else {
+ path = Paths.get(epmetFilePath.toString(), pathParts);
+ }
+ return path;
+ }
+
+ /**
+ * 创建并且返回epmet_files下的文件夹
+ * @param dirParts 文件夹列表
+ * @return
+ * @throws IOException
+ */
+ public static Path getAndCreateDirUnderEpmetFilesDir(String... dirParts) throws IOException {
+ Path pathUnderEpmetFilesDir = getPathUnderEpmetFilesDir(dirParts);
+ if (Files.notExists(pathUnderEpmetFilesDir)) {
+ Files.createDirectories(pathUnderEpmetFilesDir);
+ }
+
+ return pathUnderEpmetFilesDir;
+ }
+
/**
* 创建临时文件
*
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index 472525e5e7..cf8312e897 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -100,12 +100,6 @@
2.0.0
compile
-
- com.alibaba
- easyexcel
- 3.0.3
- compile
-
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java
index 6212a35cb6..8e7ef7eedb 100644
--- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java
@@ -15,6 +15,10 @@ public interface ImportTaskConstants {
String BIZ_TYPE_COMMUNITY_SELF_ORG = "community_self_org";
String BIZ_TYPE_PARTY_UNIT = "party_unit";
String BIZ_TYPE_PARTY_ACTIVITY = "party_activity";
+ /**
+ * 核酸检测
+ */
+ String BIZ_TYPE_IC_NAT = "ic_nat";
/**
* 处理状态:处理中
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java
index 9eea1fe6c2..08fc2f0995 100644
--- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java
@@ -2,10 +2,14 @@ package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.QueryGroup;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
+@AllArgsConstructor
+@NoArgsConstructor
@Data
public class ImportTaskCommonFormDTO extends PageFormDTO {
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java
index c4f703049c..57ac759211 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java
@@ -164,6 +164,10 @@ public interface UserMessageTypeConstant {
*/
String PROJECT_REMIND="project_remind";
+ /**
+ * 防疫通知
+ */
+ String ANTIEPIDEMIC="antiepidemic";
/**
diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/InitInfoResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/InitInfoResultDTO.java
index 6ee30a91e4..36b860a3e9 100644
--- a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/InitInfoResultDTO.java
+++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/InitInfoResultDTO.java
@@ -45,4 +45,12 @@ public class InitInfoResultDTO implements Serializable {
* 身份证号
*/
private String idNum;
+ /**
+ * 姓名
+ */
+ private String realName;
+ /**
+ * 手机号
+ */
+ private String mobile;
}
diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java
index d3ba9d2b22..a508fffe31 100644
--- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java
+++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java
@@ -28,8 +28,8 @@ public class PersonalCenterServiceImpl implements PersonalCenterService {
@Override
public InitInfoResultDTO initInfo(TokenDto tokenDto) {
- Result baseInfoResult = epmetUserOpenFeignClient.selectUserBaseInfo(tokenDto);
- if (!baseInfoResult.success()) {
+ Result baseInfoResult = epmetUserOpenFeignClient.selectUserBaseInfo(tokenDto);
+ if (!baseInfoResult.success() || null == baseInfoResult.getData()) {
throw new RenException(baseInfoResult.getCode(), baseInfoResult.getMsg());
}
InitInfoResultDTO resultDTO = new InitInfoResultDTO();
@@ -41,6 +41,8 @@ public class PersonalCenterServiceImpl implements PersonalCenterService {
resultDTO.setBuildingAddress(baseInfoResult.getData().getBuildingAddress());
resultDTO.setNickname(baseInfoResult.getData().getNickname());
resultDTO.setIdNum(baseInfoResult.getData().getIdNum());
+ resultDTO.setMobile(baseInfoResult.getData().getMobile());
+ resultDTO.setRealName(baseInfoResult.getData().getRealName());
return resultDTO;
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcEpidemicSpecialAttentionDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcEpidemicSpecialAttentionDTO.java
new file mode 100644
index 0000000000..43a40b0d90
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcEpidemicSpecialAttentionDTO.java
@@ -0,0 +1,131 @@
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 疫情特别关注
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Data
+public class IcEpidemicSpecialAttentionDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ public interface IcEpidemicSpecialAttentionUpdate{}
+ public interface IcEpidemicSpecialAttentionAdd{}
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 当前工作人员所属组织ID
+ */
+ private String orgId;
+
+ /**
+ * 组织ID上级
+ */
+ private String pid;
+
+ /**
+ * 组织ID所有上级
+ */
+ private String pids;
+
+ /**
+ * 是否关注 1:关注,0:取消关注
+ */
+ private Integer isAttention;
+
+ /**
+ * 关注类型,核酸检测:2,疫苗接种:1
+ */
+ @NotNull(message = "attentionType不能为空",groups = {IcEpidemicSpecialAttentionAdd.class,IcEpidemicSpecialAttentionUpdate.class})
+ private Integer attentionType;
+
+ /**
+ * 姓名
+ */
+ @NotBlank(message = "name不能为空",groups = IcEpidemicSpecialAttentionAdd.class)
+ private String name;
+
+ /**
+ * 手机号
+ */
+ @NotBlank(message = "mobile不能为空",groups = IcEpidemicSpecialAttentionAdd.class)
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ @NotBlank(message = "idCard不能为空",groups = {IcEpidemicSpecialAttentionAdd.class,IcEpidemicSpecialAttentionUpdate.class})
+ private String idCard;
+
+ /**
+ * 原因
+ */
+ private String reason;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ *
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 通知渠道 0小程序通知,1短信通知
+ */
+ private List channel;
+
+ /**
+ * 通知内容
+ */
+ private String content;
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcFollowUpRecordDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcFollowUpRecordDTO.java
new file mode 100644
index 0000000000..ae5c05bede
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcFollowUpRecordDTO.java
@@ -0,0 +1,89 @@
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+public class IcFollowUpRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 0行程上报,1疫苗接种,2核酸检测
+ */
+ private String origin;
+
+ /**
+ * 随访时间
+ */
+ private Date visitTime;
+
+ /**
+ * 随访内容
+ */
+ private String content;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java
new file mode 100644
index 0000000000..9c98833ed4
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java
@@ -0,0 +1,139 @@
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+
+/**
+ * 核酸上报记录
+
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+public class IcNatDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户Id CUSTOMER.id
+ */
+ private String customerId;
+
+ /**
+ * 居民端上报时存储用户所在网格的组织id.居民信息的人存储居民所在组织id.单个新增或者导入的存储登录用户所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 组织pids
+ */
+ private String pids;
+
+ /**
+ * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值
+ */
+ private String userId;
+
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;导入的:import;同步的:synchro
+ */
+ private String userType;
+
+ /**
+ * 人员姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 检测时间,精确到分钟
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date natTime;
+
+ /**
+ * 检测结果(0:阴性 1:阳性)
+ */
+ private String natResult;
+
+ /**
+ * 检测地点
+ */
+ private String natAddress;
+
+ /**
+ * 文件名
+ */
+ private String fileName;
+
+ /**
+ * 文件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))
+ */
+ private String attachmentType;
+
+ /**
+ * url地址
+ */
+ private String attachmentUrl;
+
+ /**
+ * 删除标识
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 通知渠道 0小程序通知,1短信通知,多选是数组
+ */
+ private List channel = new ArrayList<>();
+ /**
+ * 通知内容
+ */
+ private String content = "";
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java
new file mode 100644
index 0000000000..72520ef800
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java
@@ -0,0 +1,109 @@
+package com.epmet.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 防疫通知
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Data
+public class IcNoticeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ @JsonIgnore
+ private String id;
+
+ /**
+ * 客户Id customer.id
+ */
+ @JsonIgnore
+ private String customerId;
+
+ /**
+ * 通知渠道 0小程序通知,1短信通知
+ */
+ private String channel;
+ private List channelList;
+ /**
+ * 通知来源 0行程上报,1疫苗接种,2核酸检测
+ */
+ @JsonIgnore
+ private String origin;
+
+ /**
+ * 用户ID
+ */
+ @JsonIgnore
+ private String userId;
+ /**
+ * 手机号
+ */
+ @JsonIgnore
+ private String mobile;
+
+ /**
+ * 被通知人身份证号
+ */
+ @JsonIgnore
+ private String idCard;
+
+ /**
+ * 通知内容
+ */
+ private String content;
+
+ /**
+ * 发送通知的社区
+ */
+ private String orgName;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ @JsonIgnore
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ @JsonIgnore
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ @JsonIgnore
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ @JsonIgnore
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ @JsonIgnore
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiVaccineDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiVaccineDTO.java
new file mode 100644
index 0000000000..57ea1109e3
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiVaccineDTO.java
@@ -0,0 +1,109 @@
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 居民疫苗情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Data
+public class IcResiVaccineDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id customer.id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 接种时间
+ */
+ private Date inoculateTime;
+
+ /**
+ * 接种地点
+ */
+ private String inoculateAddress;
+
+ /**
+ * 疫苗厂家
+ */
+ private String manufacturer;
+
+ /**
+ * 预留字段1
+ */
+ private String field1;
+
+ /**
+ * 预留字段2
+ */
+ private String field2;
+
+ /**
+ * 预留字段3
+ */
+ private String field3;
+
+ /**
+ * 备注
+ */
+ private String remaek;
+
+ /**
+ * 删除标识 0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java
new file mode 100644
index 0000000000..dd9c513896
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java
@@ -0,0 +1,125 @@
+package com.epmet.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+public class IcTripReportRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 用户id
+ */
+ private String userId;
+
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other
+ */
+ private String userType;
+
+ /**
+ * 现居地编码
+ */
+ private String presentAddressCode;
+
+ /**
+ * 现居地名称eg:山东省青岛市黄岛区玫瑰山路社区
+ */
+ private String presentAddress;
+
+ /**
+ * 详细地址
+ */
+ private String detailAddress;
+
+ /**
+ * 来源地区编码
+ */
+ private String sourceAddressCode;
+
+ /**
+ * 来源地区地址
+ */
+ private String sourceAddress;
+
+ /**
+ * 到达日期
+ */
+ private Date arriveDate;
+
+ /**
+ * 离开日期
+ */
+ private Date leaveDate;
+
+ /**
+ * 备注信息
+ */
+ private String remark;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java
new file mode 100644
index 0000000000..73928633fb
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java
@@ -0,0 +1,97 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description 核酸检测-上报核酸记录
+ * @Author sun
+ */
+@Data
+public class AddIcNatFormDTO implements Serializable {
+ private static final long serialVersionUID = 9156247659994638103L;
+
+ public interface Nat extends CustomerClientShowGroup {
+ }
+
+ /**
+ * 核酸记录Id,修改时使用
+ */
+ private String icNatId;
+ /**
+ * 当前网格所属组织Id
+ */
+ @NotBlank(message = "组织Id不能为空", groups = Nat.class)
+ private String agencyId;
+ /**
+ * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值
+ */
+ private String userId;
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other
+ */
+ @NotBlank(message = "居民来源不能为空", groups = Nat.class)
+ private String userType;
+ /**
+ * 姓名
+ */
+ @NotBlank(message = "姓名不能为空", groups = Nat.class)
+ private String name;
+ /**
+ * 手机号
+ */
+ @NotBlank(message = "手机号不能为空", groups = Nat.class)
+ private String mobile;
+ /**
+ * 身份证号
+ */
+ @NotBlank(message = "身份证号不能为空", groups = Nat.class)
+ private String idCard;
+ /**
+ * 检测时间
+ */
+ //@NotBlank(message = "检测时间不能为空", groups = Nat.class)
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm")
+ private Date natTime;
+ /**
+ * 检测结果
+ */
+ private String natResult;
+ /**
+ * 检测地点
+ */
+ private String natAddress;
+ /**
+ * 文件名
+ */
+ private String fileName;
+ /**
+ * 附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))
+ */
+ private String attachmentType;
+
+ /**
+ * 附件地址
+ */
+ private String attachmentUrl;
+ /**
+ * 通知渠道 0小程序通知,1短信通知,多选是数组
+ */
+ private List channel = new ArrayList<>();
+ /**
+ * 通知内容
+ */
+ private String content = "";
+
+ //token中信息
+ private String customerId;
+
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java
new file mode 100644
index 0000000000..f0c8f9a900
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java
@@ -0,0 +1,35 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/28 16:48
+ * @DESC
+ */
+@Data
+public class CancelAttentionPackageFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 2198470055930997870L;
+
+ public interface CancelAttentionPackageForm{}
+
+
+ /**
+ * 身份证
+ */
+ @NotNull(message = "idCard不能为空",groups = CancelAttentionPackageForm.class)
+ private List idCards;
+
+ /**
+ * 关注类型,核酸检测:2,疫苗接种:1
+ */
+ @NotNull(message = "attentionType不能为空",groups = CancelAttentionPackageForm.class)
+ private Integer attentionType ;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java
new file mode 100644
index 0000000000..057ee17921
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java
@@ -0,0 +1,21 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.dto.form.PageFormDTO;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2022/3/28 16:13
+ */
+@Data
+public class IcNoticeFormDTO extends PageFormDTO implements Serializable {
+ private static final long serialVersionUID = 7392894573654015338L;
+ private String customerId;
+ @NotBlank(message = "身份证号不能为空", groups = DefaultGroup.class)
+ private String idCard;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectFormDTO.java
index 21f2244129..9acd851ab3 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectFormDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectFormDTO.java
@@ -82,9 +82,9 @@ public class IcResiCollectFormDTO implements Serializable {
private String address;
/**
- * 1自由0租住
+ * 1自有0租住
*/
- @NotBlank(message = "房子属于自由还是组织?", groups = {InternalShowGroup.class, ExternalShowGroup.class})
+ @NotBlank(message = "房子属于自有还是租住?", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private String houseType;
/**
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java
index 2dccf23b59..a3fca9b02b 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java
@@ -2,6 +2,7 @@ package com.epmet.dto.form;
import lombok.Data;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
@@ -17,13 +18,13 @@ public class IcResiCollectMemFormDTO implements Serializable {
/**
* 居住成员1姓名
*/
- // @NotBlank(message = "姓名不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
+ @NotBlank(message = "姓名不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String name;
/**
* 居住成员1身份证号
*/
- // @NotBlank(message = "身份证号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
+ @NotBlank(message = "身份证号不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String idNum;
/**
@@ -43,4 +44,9 @@ public class IcResiCollectMemFormDTO implements Serializable {
*/
// @NotNull(message = "疫苗接种情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private Integer ymjz;
+
+ /**
+ * 社区居民信息登记-查询返参用
+ */
+ private String id;
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestSubmitCollectFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestSubmitCollectFormDTO.java
new file mode 100644
index 0000000000..547e469085
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestSubmitCollectFormDTO.java
@@ -0,0 +1,22 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 社区居民信息登记-查询
+ */
+@Data
+public class LatestSubmitCollectFormDTO implements Serializable {
+ public interface AddUserInternalGroup {
+ }
+
+ @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
+ private String userId;
+ @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
+ private String customerId;
+ @NotBlank(message = "gridId不能为空", groups = AddUserInternalGroup.class)
+ private String gridId;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java
index 7c1af89a00..76e5c31d4d 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java
@@ -1,8 +1,12 @@
package com.epmet.dto.form;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
@Data
+@AllArgsConstructor
+@NoArgsConstructor
public class LoginUserDetailsFormDTO {
private String app;
private String client;
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java
new file mode 100644
index 0000000000..e9620dc5d2
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java
@@ -0,0 +1,65 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.dto.form.PageFormDTO;
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description 核酸检测-我的上报记录
+ * @Author sun
+ */
+@Data
+public class MyNatListFormDTO extends PageFormDTO {
+ private static final long serialVersionUID = 9156247659994638103L;
+
+ public interface MyNat extends CustomerClientShowGroup {
+ }
+ public interface Detail extends CustomerClientShowGroup {
+ }
+ public interface Del extends CustomerClientShowGroup {
+ }
+ public interface Synchro extends CustomerClientShowGroup {
+ }
+
+ /**
+ * 身份证号
+ */
+ @NotBlank(message = "身份证号不能为空", groups = MyNat.class)
+ private String idCard;
+ /**
+ * 当前组织:current 根组织:all
+ */
+ private String orgType;
+ private String agencyId;
+ /**
+ * 姓名
+ */
+ private String name;
+ /**
+ * 手机号
+ */
+ private String mobile;
+ /**
+ * 检测开始时间yyyy-MM-dd HH:mm
+ */
+ private String startTime;
+ /**
+ * 检测结束时间yyyy-MM-dd HH:mm间yy-mm-dd
+ */
+ private String endTime;
+
+ /**
+ * 核酸记录Id
+ */
+ @NotBlank(message = "核酸记录Id不能为空", groups = { Detail.class, Del.class, Synchro.class})
+ private String icNatId;
+
+ /**
+ * token里设置
+ */
+ private String customerId;
+ private String userId;
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/NatListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/NatListFormDTO.java
new file mode 100644
index 0000000000..85b56ecb29
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/NatListFormDTO.java
@@ -0,0 +1,52 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.dto.form.PageFormDTO;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/28 10:30
+ * @DESC
+ */
+@Data
+public class NatListFormDTO extends PageFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -498378123902522370L;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 名字
+ */
+ private String name;
+
+ /**
+ * 身份证
+ */
+ private String idCard;
+
+ /**
+ * 关注原因
+ */
+ private String reason;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ private String userId;
+
+ private String customerId;
+
+ /**
+ * user所属组织ID
+ */
+ private String orgId;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiCollectFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiCollectFormDTO.java
new file mode 100644
index 0000000000..fdd712970f
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiCollectFormDTO.java
@@ -0,0 +1,105 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 社区居民信息登记-提交 入参
+ */
+@Data
+public class ResiCollectFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -4026681095438180447L;
+
+ public interface AddUserInternalGroup {
+ }
+
+ public interface InternalShowGroup extends CustomerClientShowGroup {
+ }
+
+ /**
+ * 客户Id customer.id
+ */
+ @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
+ private String customerId;
+
+ /**
+ * 网格ID_后端接口赋值
+ */
+ @NotBlank(message = "gridId不能为空", groups = AddUserInternalGroup.class)
+ private String gridId;
+
+ /**
+ * 组织Id_后端接口赋值
+ */
+ @NotBlank(message = "agencyId不能为空", groups = AddUserInternalGroup.class)
+ private String agencyId;
+
+ /**
+ * 组织的pid_后端接口赋值
+ */
+ private String pids;
+
+ /**
+ * 所属小区ID
+ */
+ @NotBlank(message = "小区不能为空", groups = InternalShowGroup.class)
+ private String villageId;
+
+ /**
+ * 所属楼宇Id
+ */
+ @NotBlank(message = "楼栋不能为空", groups = InternalShowGroup.class)
+ private String buildId;
+
+ /**
+ * 单元id
+ */
+ @NotBlank(message = "单元不能为空", groups = InternalShowGroup.class)
+ private String unitId;
+
+ /**
+ * 所属家庭Id
+ */
+ @NotBlank(message = "家庭不能为空", groups = InternalShowGroup.class)
+ private String homeId;
+
+ /**
+ * 详细地址
+ */
+ @NotBlank(message = "家庭地址不能为空", groups = {InternalShowGroup.class})
+ private String address;
+
+ /**
+ * 1自有0租住
+ */
+ @NotBlank(message = "房子属于自有还是租住?", groups = {InternalShowGroup.class})
+ private String houseType;
+
+ /**
+ * 户主姓名
+ */
+ @NotBlank(message = "户主姓名不能为空", groups = {InternalShowGroup.class})
+ private String houseHolderName;
+
+ /**
+ * 居住成员人数
+ */
+ @NotNull(message = "居住成员人数不能为空", groups = {InternalShowGroup.class})
+ private Integer totalResi;
+
+ @Valid
+ @NotEmpty(message = "成员信息不能为空", groups = {InternalShowGroup.class})
+ private List memberList;
+
+ @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
+ private String userId;
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java
new file mode 100644
index 0000000000..0d038cf71a
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java
@@ -0,0 +1,63 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2022/3/28 14:14
+ */
+@NoArgsConstructor
+@Data
+public class SendNoticeFormDTO implements Serializable {
+ private static final long serialVersionUID = 4800907725063604885L;
+ private String customerId;
+ /**
+ * 用户列表
+ */
+ @NotNull(message = "用户列表不能为空", groups = DefaultGroup.class)
+ private List userList;
+ /**
+ * 通知渠道通知渠道 0小程序通知,1短信通知
+ */
+ @NotNull(message = "通知渠道不能为空", groups = DefaultGroup.class)
+ private List channel;
+ /**
+ * 通知来源 0 行程上报,1 疫苗接种,2 核酸检测
+ */
+ @NotNull(message = "通知来源不能为空", groups = DefaultGroup.class)
+ private String origin;
+ /**
+ * 通知内容
+ */
+ @NotNull(message = "通知内容不能为空", groups = DefaultGroup.class)
+ private String content;
+ /**
+ * 组织名
+ */
+ @NotNull(message = "组织名不能为空", groups = DefaultGroup.class)
+ private String orgName;
+
+ @NoArgsConstructor
+ @Data
+ public static class UserListBean {
+ /**
+ * 用户ID
+ */
+ private String userId;
+ /**
+ * 手机号
+ */
+ private String mobile;
+ /**
+ * 身份证
+ */
+ private String idCard;
+ }
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationAddFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationAddFormDTO.java
new file mode 100644
index 0000000000..9206dbac24
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationAddFormDTO.java
@@ -0,0 +1,30 @@
+package com.epmet.dto.form;
+
+import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.Valid;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/28 10:46
+ * @DESC
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class VaccinationAddFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -4786942219804246138L;
+
+ @Valid
+ private List list;
+
+ private String userId;
+
+ private String customerId;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationListFormDTO.java
new file mode 100644
index 0000000000..ec8d2a3932
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationListFormDTO.java
@@ -0,0 +1,66 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.dto.form.PageFormDTO;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/28 10:30
+ * @DESC
+ */
+@Data
+public class VaccinationListFormDTO extends PageFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -498378993902522370L;
+
+ public interface VaccinationListForm{}
+
+ /**
+ * 关注类型,核酸检测:2,疫苗接种:1
+ */
+ @NotNull(message = "attentionType不能为空",groups = VaccinationListForm.class)
+ private Integer attentionType;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 名字
+ */
+ private String name;
+
+ /**
+ * 身份证
+ */
+ private String idCard;
+
+ /**
+ * 疫苗接种次数,疫苗接种关注名单,此字段可填可不填
+ */
+ private Integer vaccinationCount;
+
+ /**
+ * 原因,核酸检测关注名单,此字段可填可不填
+ */
+ private String reason;
+
+ /**
+ * 备注,核酸检测关注名单,此字段可填可不填
+ */
+ private String remark;
+
+ private String userId;
+
+ private String customerId;
+
+ /**
+ * user所属组织ID
+ */
+ private String orgId;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestCollectResDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestCollectResDTO.java
new file mode 100644
index 0000000000..f7d698badd
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestCollectResDTO.java
@@ -0,0 +1,82 @@
+package com.epmet.dto.result;
+
+import com.epmet.dto.form.IcResiCollectMemFormDTO;
+import lombok.Data;
+
+import javax.validation.Valid;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 社区居民信息登记-返参
+ */
+@Data
+public class LatestCollectResDTO implements Serializable {
+ private String resiCollectId;
+ private String agencyId;
+ private String agencyName;
+ private String pids;
+ private String gridId;
+ private String customerId;
+ /**
+ * 所属小区ID
+ */
+ private String villageId;
+
+ /**
+ * 所属楼宇Id
+ */
+ private String buildId;
+
+ /**
+ * 单元id
+ */
+ private String unitId;
+
+ /**
+ * 所属家庭Id
+ */
+ private String homeId;
+
+ /**
+ * 详细地址
+ */
+ private String address;
+
+ /**
+ * 1自有0租住
+ */
+ private String houseType;
+
+ /**
+ * 户主姓名
+ */
+ private String houseHolderName;
+
+ /**
+ * 居住成员人数
+ */
+ private Integer totalResi;
+
+ @Valid
+ private List memberList;
+
+ public LatestCollectResDTO() {
+ this.resiCollectId = "";
+ this.agencyId = "";
+ this.agencyName = "";
+ this.pids = "";
+ this.gridId = "";
+ this.customerId = "";
+ this.villageId = "";
+ this.buildId = "";
+ this.unitId="";
+ this.homeId="";
+ this.address="";
+ this.houseType="";
+ this.houseHolderName="";
+ this.totalResi=0;
+ this.memberList=new ArrayList<>();
+ }
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyNatListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyNatListResultDTO.java
new file mode 100644
index 0000000000..feb97d97f5
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyNatListResultDTO.java
@@ -0,0 +1,70 @@
+package com.epmet.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 核酸检测-我的上报记录
+ * @Author sun
+ */
+@Data
+public class MyNatListResultDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 核酸记录Id
+ */
+ private String icNatId;
+ /**
+ * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值
+ */
+ private String userId;
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other
+ */
+ private String userType;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 检测时间,yyyy-MM-dd HH:mm
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date natTime;
+
+ /**
+ * 检测结果
+ */
+ private String natResult;
+
+ /**
+ * 检测地点
+ */
+ private String natAddress;
+
+ /**
+ * 附件名
+ */
+ private String fileName;
+
+ /**
+ * 附件地址
+ */
+ private String attachmentUrl;
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java
new file mode 100644
index 0000000000..a65563bb5b
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java
@@ -0,0 +1,88 @@
+package com.epmet.dto.result;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.HeadStyle;
+import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 核酸检测-我的上报记录
+ * @Author sun
+ */
+@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44)
+@Data
+public class NatListResultDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 核酸记录Id
+ */
+ @ExcelIgnore
+ private String icNatId;
+ /**
+ * 组织Id
+ */
+ @ExcelIgnore
+ private String agencyId;
+ /**
+ * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值
+ */
+ @ExcelIgnore
+ private String userId;
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other
+ */
+ @ExcelIgnore
+ private String userType;
+
+ /**
+ * 姓名
+ */
+ @ColumnWidth(20)
+ @ExcelProperty("姓名")
+ private String name;
+
+ /**
+ * 手机号
+ */
+ @ColumnWidth(20)
+ @ExcelProperty("手机号")
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ @ColumnWidth(25)
+ @ExcelProperty("身份证号")
+ private String idCard;
+
+ /**
+ * 检测时间,yyyy-MM-dd HH:mm
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ @ColumnWidth(25)
+ @ExcelProperty("检测时间")
+ private Date natTime;
+
+ /**
+ * 检测结果
+ */
+ @ColumnWidth(20)
+ @ExcelProperty("检测结果")
+ private String natResult;
+
+ /**
+ * 检测地点
+ */
+ @ColumnWidth(30)
+ @ExcelProperty("检测地点")
+ private String natAddress;
+
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java
new file mode 100644
index 0000000000..a0b10a13d3
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java
@@ -0,0 +1,67 @@
+package com.epmet.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/28 14:14
+ * @DESC
+ */
+@Data
+public class VaccinationListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -4368151917259903449L;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+ /**
+ * 接种针次
+ */
+ private Integer vaccinationCount;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 电话
+ */
+ private String mobile;
+
+ /**
+ * 身份证
+ */
+ private String idCard;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 原因
+ */
+ private String reason;
+
+ /**
+ * 最后一次通知时间
+ */
+ private String lastInformTime;
+
+ public VaccinationListResultDTO() {
+ this.vaccinationCount = NumConstant.ZERO;
+ this.name = "";
+ this.mobile = "";
+ this.idCard = "";
+ this.remark = "";
+ this.lastInformTime = "";
+ this.reason = "";
+ }
+}
diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
index b5421e4e4e..154960f1db 100644
--- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
+++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
@@ -8,6 +8,7 @@ services:
network_mode: host # 不会创建新的网络
volumes:
- "/opt/epmet-cloud-logs/dev:/logs"
+ - "/opt/epmet_files/:/opt/epmet_files"
environment:
RUN_INSTRUCT: "java -Xms32m -Xmx512m -jar ./epmet-user.jar"
restart: "unless-stopped"
diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml b/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml
index bc63091248..1fbe59593f 100644
--- a/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml
+++ b/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml
@@ -8,6 +8,7 @@ services:
network_mode: host # 不会创建新的网络
volumes:
- "/opt/epmet-cloud-logs/prod:/logs"
+ - "/opt/epmet_files/:/opt/epmet_files"
environment:
RUN_INSTRUCT: "java -Xms256m -Xmx1024m -jar ./epmet-user.jar"
restart: "unless-stopped"
diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml
index 5537d14081..c880913294 100644
--- a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml
+++ b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml
@@ -8,6 +8,7 @@ services:
network_mode: host # 不会创建新的网络
volumes:
- "/opt/epmet-cloud-logs/test:/logs"
+ - "/opt/epmet_files/:/opt/epmet_files"
environment:
RUN_INSTRUCT: "java -Xms32m -Xmx512m -jar ./epmet-user.jar"
restart: "unless-stopped"
diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml
index 0189ee8ce0..fb8ea8e9b4 100644
--- a/epmet-user/epmet-user-server/pom.xml
+++ b/epmet-user/epmet-user-server/pom.xml
@@ -18,25 +18,6 @@
epmet-admin-client
2.0.0
-
- com.alibaba
- easyexcel
- 3.0.3
-
-
- poi
- org.apache.poi
-
-
- poi-ooxml
- org.apache.poi
-
-
- poi-ooxml-schemas
- org.apache.poi
-
-
-
com.epmet
epmet-user-client
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java
new file mode 100644
index 0000000000..8035d509b3
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java
@@ -0,0 +1,134 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.dto.form.PageFormDTO;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.ExcelPoiUtils;
+import com.epmet.commons.tools.utils.ExcelUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
+import com.epmet.dto.form.*;
+import com.epmet.excel.NatExportExcel;
+import com.epmet.excel.UserResiRegisterVisitExcel;
+import com.epmet.excel.VaccinationExportExcel;
+import com.epmet.service.IcEpidemicSpecialAttentionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * 疫情特别关注
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@RestController
+@RequestMapping("icEpidemicSpecialAttention")
+public class IcEpidemicSpecialAttentionController {
+
+ @Autowired
+ private IcEpidemicSpecialAttentionService icEpidemicSpecialAttentionService;
+
+ /**
+ * Desc: 【疫苗接种关注名单,疫苗接种关注名单】列表
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 10:29
+ */
+ @PostMapping("list")
+ public Result vaccinationList(@RequestBody VaccinationListFormDTO formDTO, @LoginUser TokenDto tokenDto){
+ ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class, VaccinationListFormDTO.VaccinationListForm.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ return new Result().ok(icEpidemicSpecialAttentionService.vaccinationList(formDTO));
+ }
+
+ /**
+ * Desc:【疫苗接种关注名单,核酸检测关注名单】新增
+ * @param formDTO
+ * @param tokenDto
+ * @author zxc
+ * @date 2022/3/28 13:35
+ */
+ @PostMapping("vaccination-add")
+ @NoRepeatSubmit
+ public Result vaccinationAdd(@RequestBody VaccinationAddFormDTO formDTO,@LoginUser TokenDto tokenDto){
+ ValidatorUtils.validateEntity(formDTO, IcEpidemicSpecialAttentionDTO.IcEpidemicSpecialAttentionAdd.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ icEpidemicSpecialAttentionService.vaccinationAdd(formDTO);
+ return new Result();
+ }
+
+ /**
+ * Desc:【疫苗接种关注名单,核酸检测关注名单】修改
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:45
+ */
+ @PostMapping("vaccination-update")
+ @NoRepeatSubmit
+ public Result vaccinationUpdate(@RequestBody IcEpidemicSpecialAttentionDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO, IcEpidemicSpecialAttentionDTO.IcEpidemicSpecialAttentionUpdate.class);
+ icEpidemicSpecialAttentionService.vaccinationUpdate(formDTO);
+ return new Result();
+ }
+
+ /**
+ * Desc: 取消关注
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:51
+ */
+ @PostMapping("cancel-attention")
+ @NoRepeatSubmit
+ public Result cancelAttention(@RequestBody CancelAttentionPackageFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO, CancelAttentionPackageFormDTO.CancelAttentionPackageForm.class);
+ icEpidemicSpecialAttentionService.cancelAttention(formDTO);
+ return new Result();
+ }
+
+ /**
+ * Desc: 【疫苗接种关注名单,核酸检测关注名单】导入
+ * @param
+ * @author zxc
+ * @date 2022/3/28 13:40
+ */
+ @PostMapping("vaccination-import")
+ public Result vaccinationImport(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file,@RequestParam("attentionType")Integer attentionType){
+
+ return new Result();
+ }
+
+ /**
+ * Desc: 【疫苗接种关注名单,核酸检测关注名单】导出
+ * @param response
+ * @param formDTO
+ * @param tokenDto
+ * @author zxc
+ * @date 2022/3/28 13:57
+ */
+ @PostMapping("vaccination-export")
+ public void vaccinationExport(HttpServletResponse response,@RequestBody VaccinationListFormDTO formDTO, @LoginUser TokenDto tokenDto) throws Exception {
+ ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ formDTO.setPage(false);
+ PageData pageData = icEpidemicSpecialAttentionService.vaccinationList(formDTO);
+ // 关注类型,核酸检测:2,疫苗接种:1
+ if (formDTO.getAttentionType().equals(NumConstant.ONE)){
+ ExcelUtils.exportExcelToTarget(response, null, pageData.getList(), VaccinationExportExcel.class);
+ }else {
+ ExcelUtils.exportExcelToTarget(response, null, pageData.getList(), NatExportExcel.class);
+ }
+
+ }
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java
new file mode 100644
index 0000000000..2e717fbe8d
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java
@@ -0,0 +1,72 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.dto.IcFollowUpRecordDTO;
+import com.epmet.service.IcFollowUpRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@RestController
+@RequestMapping("followup")
+public class IcFollowUpRecordController {
+
+ @Autowired
+ private IcFollowUpRecordService icFollowUpRecordService;
+
+ @RequestMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = icFollowUpRecordService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
+ public Result get(@PathVariable("id") String id){
+ IcFollowUpRecordDTO data = icFollowUpRecordService.get(id);
+ return new Result().ok(data);
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("save")
+ public Result save(@RequestBody IcFollowUpRecordDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ icFollowUpRecordService.save(dto);
+ return new Result();
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("update")
+ public Result update(@RequestBody IcFollowUpRecordDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ icFollowUpRecordService.update(dto);
+ return new Result();
+ }
+
+ @PostMapping("delete")
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ icFollowUpRecordService.delete(ids);
+ return new Result();
+ }
+
+
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java
new file mode 100644
index 0000000000..30e3461ae0
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java
@@ -0,0 +1,281 @@
+package com.epmet.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.constant.AppClientConstant;
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import com.epmet.commons.tools.feign.ResultDataResolver;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.EpmetRequestHolder;
+import com.epmet.commons.tools.utils.FileUtils;
+import com.epmet.commons.tools.utils.ExcelUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.constants.ImportTaskConstants;
+import com.epmet.dto.IcNatDTO;
+import com.epmet.dto.form.AddIcNatFormDTO;
+import com.epmet.dto.form.ImportTaskCommonFormDTO;
+import com.epmet.dto.form.MyNatListFormDTO;
+import com.epmet.dto.result.ImportTaskCommonResultDTO;
+import com.epmet.dto.result.MyNatListResultDTO;
+import com.epmet.dto.result.NatListResultDTO;
+import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
+import com.epmet.service.IcNatService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.io.IOUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+
+/**
+ * 核酸上报记录
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Slf4j
+@RestController
+@RequestMapping("icNat")
+public class IcNatController implements ResultDataResolver {
+
+ @Autowired
+ private IcNatService icNucleinService;
+
+ @Autowired
+ private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
+
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-上报核酸记录
+ **/
+ //@NoRepeatSubmit
+ @PostMapping("add")
+ public Result add(@LoginUser TokenDto tokenDto, @RequestBody AddIcNatFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, AddIcNatFormDTO.Nat.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ icNucleinService.add(formDTO);
+ return new Result();
+ }
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-居民端我的上报
+ **/
+ @NoRepeatSubmit
+ @PostMapping("mynatlist")
+ public Result> myNatList(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.MyNat.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ return new Result>().ok(icNucleinService.myNatList(formDTO));
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息列表
+ **/
+ @NoRepeatSubmit
+ @PostMapping("natlist")
+ public Result> natList(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ return new Result>().ok(icNucleinService.natList(formDTO));
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息详情
+ **/
+ @NoRepeatSubmit
+ @PostMapping("detail")
+ public Result detail(@RequestBody MyNatListFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.Detail.class);
+ return new Result().ok(icNucleinService.detail(formDTO));
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息修改
+ **/
+ @NoRepeatSubmit
+ @PostMapping("edit")
+ public Result edit(@LoginUser TokenDto tokenDto, @RequestBody AddIcNatFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ icNucleinService.edit(formDTO);
+ return new Result();
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息删除/取消同步
+ **/
+ @NoRepeatSubmit
+ @PostMapping("del")
+ public Result del(@RequestBody MyNatListFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.Del.class);
+ icNucleinService.del(formDTO);
+ return new Result<>();
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息同步
+ **/
+ @NoRepeatSubmit
+ @PostMapping("synchro")
+ public Result synchro(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.Synchro.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ icNucleinService.synchro(formDTO);
+ return new Result();
+ }
+
+ /**
+ * 导入excel
+ * @return
+ */
+ @PostMapping("import")
+ public Result importExcel(MultipartFile file) {
+ String userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
+
+ // 1.暂存文件
+ String originalFilename = file.getOriginalFilename();
+ String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
+
+ Path fileSavePath;
+ try {
+ Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_nat", "import");
+ fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName));
+ } catch (IOException e) {
+ String errorMsg = ExceptionUtils.getErrorStackTrace(e);
+ log.error("【核酸检测导入】创建临时存储文件失败:{}", errorMsg);
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败");
+ }
+
+ InputStream is = null;
+ FileOutputStream os = null;
+
+ try {
+ is = file.getInputStream();
+ os = new FileOutputStream(fileSavePath.toString());
+ IOUtils.copy(is, os);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ org.apache.poi.util.IOUtils.closeQuietly(is);
+ org.apache.poi.util.IOUtils.closeQuietly(os);
+ }
+
+ // 2.生成导入任务记录
+ ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO();
+ importTaskForm.setOperatorId(userId);
+ importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_IC_NAT);
+ importTaskForm.setOriginFileName(originalFilename);
+
+ ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm),
+ ServiceConstant.EPMET_COMMON_SERVICE,
+ EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
+ "excel导入核酸检测信息错误",
+ "导入居民核酸检测信息失败");
+
+ // 3.执行导入
+ icNucleinService.execAsyncExcelImport(fileSavePath, rstData.getTaskId());
+
+ return new Result();
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息下载模板
+ **/
+ @RequestMapping(value = "import-template-download", method = {RequestMethod.GET, RequestMethod.POST})
+ public void downloadTemplate(HttpServletResponse response) throws IOException {
+ response.setCharacterEncoding("UTF-8");
+ response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition");
+ //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel");
+ response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("社区自组织导入模板", "UTF-8") + ".xlsx");
+
+ InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/ic_nat.xlsx");
+ try {
+ ServletOutputStream os = response.getOutputStream();
+ IOUtils.copy(is, os);
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
+
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息列表
+ **/
+ @NoRepeatSubmit
+ @PostMapping("export")
+ public void export(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO, HttpServletResponse response) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+
+ //formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");
+ //formDTO.setUserId("73ae6280e46a6653a5605d51d5462725");
+
+ formDTO.setPage(false);
+
+ ExcelWriter excelWriter = null;
+ formDTO.setPageSize(NumConstant.TEN_THOUSAND);
+ int pageNo = formDTO.getPageNo();
+ try {
+ // 这里 需要指定写用哪个class去写
+ String fileName = "核酸检测信息.xlsx";
+ excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response),NatListResultDTO.class).build();
+ WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build();
+ PageData data = null;
+ do {
+ data = icNucleinService.natList(formDTO);
+ formDTO.setPageNo(++pageNo);
+ excelWriter.write(data.getList(), writeSheet);
+ } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size()==formDTO.getPageSize());
+
+ }catch (Exception e){
+ log.error("export exception", e);
+ }finally {
+ // 千万别忘记finish 会帮忙关闭流
+ if (excelWriter != null) {
+ excelWriter.finish();
+ }
+ }
+ }
+
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java
new file mode 100644
index 0000000000..f7cb128fc4
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java
@@ -0,0 +1,81 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.dto.IcNoticeDTO;
+import com.epmet.dto.form.IcNoticeFormDTO;
+import com.epmet.dto.form.SendNoticeFormDTO;
+import com.epmet.service.IcNoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 防疫通知
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@RestController
+@RequestMapping("icNotice")
+public class IcNoticeController {
+
+ @Autowired
+ private IcNoticeService icNoticeService;
+
+ @RequestMapping("page")
+ public Result> page(@LoginUser TokenDto tokenDto, @RequestBody IcNoticeFormDTO formDTO){
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ PageData page = icNoticeService.page(formDTO);
+ return new Result>().ok(page);
+ }
+
+ @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
+ public Result get(@PathVariable("id") String id){
+ IcNoticeDTO data = icNoticeService.get(id);
+ return new Result().ok(data);
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("save")
+ public Result save(@RequestBody IcNoticeDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ icNoticeService.save(dto);
+ return new Result();
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("update")
+ public Result update(@RequestBody IcNoticeDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ icNoticeService.update(dto);
+ return new Result();
+ }
+
+ @PostMapping("delete")
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ icNoticeService.delete(ids);
+ return new Result();
+ }
+
+ @PostMapping("sendNotice")
+ public Result sendNotice(@LoginUser TokenDto tokenDto, @RequestBody SendNoticeFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, DefaultGroup.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ icNoticeService.sendNotice(formDTO);
+ return new Result();
+ }
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java
index 7b8df6ad1d..ccf831e0aa 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java
@@ -11,9 +11,12 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectFormDTO;
+import com.epmet.dto.form.LatestSubmitCollectFormDTO;
+import com.epmet.dto.form.ResiCollectFormDTO;
import com.epmet.dto.result.CollectListExcelResultDTO;
import com.epmet.dto.result.CollectListMemberExcelResultDTO;
import com.epmet.dto.result.CollectListResultDTO;
+import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.service.IcResiCollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -108,4 +111,33 @@ public class IcResiCollectController {
ExcelUtils.exportExcelToTarget(response, null, list, CollectListExcelResultDTO.class);
}
+ /**
+ * 居民端小程序:社区居民信息登记-提交
+ *
+ * @param tokenDto
+ * @param formDTO
+ * @return
+ */
+ @PostMapping("save-resi")
+ public Result saveResi(@LoginUser TokenDto tokenDto, @RequestBody ResiCollectFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ ValidatorUtils.validateEntity(formDTO, ResiCollectFormDTO.InternalShowGroup.class, ResiCollectFormDTO.AddUserInternalGroup.class);
+ icResiCollectService.saveResi(formDTO);
+ return new Result();
+ }
+
+ /**
+ * 居民端小程序:社区居民信息登记-查询
+ * @param tokenDto
+ * @param formDTO
+ * @return
+ */
+ @PostMapping("latest-submit")
+ public Result latestSubmit(@LoginUser TokenDto tokenDto, @RequestBody LatestSubmitCollectFormDTO formDTO){
+ formDTO.setUserId(tokenDto.getUserId());
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ ValidatorUtils.validateEntity(formDTO,LatestSubmitCollectFormDTO.AddUserInternalGroup.class);
+ return new Result().ok(icResiCollectService.latestSubmit(formDTO));
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiVaccineController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiVaccineController.java
new file mode 100644
index 0000000000..722c2966eb
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiVaccineController.java
@@ -0,0 +1,73 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.dto.IcResiVaccineDTO;
+import com.epmet.service.IcResiVaccineService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 居民疫苗情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@RestController
+@RequestMapping("icResiVaccine")
+public class IcResiVaccineController {
+
+ @Autowired
+ private IcResiVaccineService icResiVaccineService;
+
+ @RequestMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = icResiVaccineService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
+ public Result get(@PathVariable("id") String id){
+ IcResiVaccineDTO data = icResiVaccineService.get(id);
+ return new Result().ok(data);
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("save")
+ public Result save(@RequestBody IcResiVaccineDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ icResiVaccineService.save(dto);
+ return new Result();
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("update")
+ public Result update(@RequestBody IcResiVaccineDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ icResiVaccineService.update(dto);
+ return new Result();
+ }
+
+ @PostMapping("delete")
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ icResiVaccineService.delete(ids);
+ return new Result();
+ }
+
+
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
new file mode 100644
index 0000000000..9e3faa4bd2
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
@@ -0,0 +1,72 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.dto.IcTripReportRecordDTO;
+import com.epmet.service.IcTripReportRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@RestController
+@RequestMapping("triprecord")
+public class IcTripReportRecordController {
+
+ @Autowired
+ private IcTripReportRecordService icTripReportRecordService;
+
+ @RequestMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = icTripReportRecordService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
+ public Result get(@PathVariable("id") String id){
+ IcTripReportRecordDTO data = icTripReportRecordService.get(id);
+ return new Result().ok(data);
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("save")
+ public Result save(@RequestBody IcTripReportRecordDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ icTripReportRecordService.save(dto);
+ return new Result();
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("update")
+ public Result update(@RequestBody IcTripReportRecordDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ icTripReportRecordService.update(dto);
+ return new Result();
+ }
+
+ @PostMapping("delete")
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ icTripReportRecordService.delete(ids);
+ return new Result();
+ }
+
+
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java
new file mode 100644
index 0000000000..11b6b3ab09
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java
@@ -0,0 +1,55 @@
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.form.VaccinationListFormDTO;
+import com.epmet.dto.result.VaccinationListResultDTO;
+import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 疫情特别关注
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Mapper
+public interface IcEpidemicSpecialAttentionDao extends BaseDao {
+
+ /**
+ * Desc: 疫苗接种关注名单
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 14:19
+ */
+ List vaccinationList(VaccinationListFormDTO formDTO);
+
+ /**
+ * Desc: 核酸检测关注名单
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 15:23
+ */
+ List natList(VaccinationListFormDTO formDTO);
+
+ /**
+ * Desc: 取消关注
+ * @param list
+ * @param attentionType
+ * @author zxc
+ * @date 2022/3/28 16:59
+ */
+ void cancelAttention(@Param("list")List list,@Param("attentionType")Integer attentionType);
+
+ /**
+ * Desc: 查询已经存在的关注
+ * @param attentionType
+ * @param list
+ * @author zxc
+ * @date 2022/3/28 17:29
+ */
+ List getExistList(@Param("attentionType")Integer attentionType,@Param("list")List list);
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcFollowUpRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcFollowUpRecordDao.java
new file mode 100644
index 0000000000..0117f48651
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcFollowUpRecordDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.IcFollowUpRecordEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Mapper
+public interface IcFollowUpRecordDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java
new file mode 100644
index 0000000000..4ac7359f2e
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java
@@ -0,0 +1,39 @@
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.form.MyNatListFormDTO;
+import com.epmet.dto.result.MyNatListResultDTO;
+import com.epmet.dto.result.NatListResultDTO;
+import com.epmet.entity.IcNatEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 核酸上报记录
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Mapper
+public interface IcNatDao extends BaseDao {
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-按条件查询核酸记录
+ **/
+ List getMyNatList(MyNatListFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息列表
+ **/
+ List getNatList(MyNatListFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 删除/取消同步操作--物理删除业务数据
+ **/
+ int delById(@Param("icNatId") String icNatId);
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNoticeDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNoticeDao.java
new file mode 100644
index 0000000000..a5f035887d
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNoticeDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.IcNoticeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 防疫通知
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Mapper
+public interface IcNoticeDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java
index f70f0e04ff..2602b5858a 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java
@@ -23,7 +23,8 @@ public interface IcResiCollectDao extends BaseDao {
int updateRec(@Param("id") String id,
@Param("houseType") String houseType,
@Param("houseHolderName") String houseHolderName,
- @Param("totalResi") Integer totalResi);
+ @Param("totalResi") Integer totalResi,
+ @Param("updatedBy") String updatedBy);
/**
* Desc: 查询采集居民信息
@@ -33,4 +34,11 @@ public interface IcResiCollectDao extends BaseDao {
*/
List getCollectList(CollectListFormDTO formDTO);
+ /**
+ * 我上次提交的主表记录
+ * @param customerId
+ * @param userId
+ * @return
+ */
+ String selectLastSubmitId(@Param("customerId") String customerId, @Param("userId") String userId);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java
index e4748e01b2..e61539e1da 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java
@@ -1,8 +1,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.form.IcResiCollectMemFormDTO;
import com.epmet.entity.IcResiMemberEntity;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* 居民信息成员表
@@ -12,5 +16,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface IcResiMemberDao extends BaseDao {
-
+
+ List selectMySubmit(@Param("latestResiCollectId") String latestResiCollectId, @Param("userId")String userId);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiVaccineDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiVaccineDao.java
new file mode 100644
index 0000000000..4679c59587
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiVaccineDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.IcResiVaccineEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 居民疫苗情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Mapper
+public interface IcResiVaccineDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcTripReportRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcTripReportRecordDao.java
new file mode 100644
index 0000000000..f6e54e8100
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcTripReportRecordDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.IcTripReportRecordEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Mapper
+public interface IcTripReportRecordDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcEpidemicSpecialAttentionEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcEpidemicSpecialAttentionEntity.java
new file mode 100644
index 0000000000..3ade140ffa
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcEpidemicSpecialAttentionEntity.java
@@ -0,0 +1,79 @@
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 疫情特别关注
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ic_epidemic_special_attention")
+public class IcEpidemicSpecialAttentionEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 当前工作人员所属组织ID
+ */
+ private String orgId;
+
+ /**
+ * 组织ID上级
+ */
+ private String pid;
+
+ /**
+ * 组织ID所有上级
+ */
+ private String pids;
+
+ /**
+ * 是否关注 1:关注,0:取消关注
+ */
+ private Integer isAttention;
+
+ /**
+ * 关注类型,核酸检测:2,疫苗接种:1
+ */
+ private Integer attentionType;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 原因
+ */
+ private String reason;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcFollowUpRecordEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcFollowUpRecordEntity.java
new file mode 100644
index 0000000000..4d9e6de99e
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcFollowUpRecordEntity.java
@@ -0,0 +1,59 @@
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ic_follow_up_record")
+public class IcFollowUpRecordEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 0行程上报,1疫苗接种,2核酸检测
+ */
+ private String origin;
+
+ /**
+ * 随访时间
+ */
+ private Date visitTime;
+
+ /**
+ * 随访内容
+ */
+ private String content;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java
new file mode 100644
index 0000000000..1fee4076a4
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java
@@ -0,0 +1,97 @@
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 核酸上报记录
+
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ic_nat")
+public class IcNatEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id CUSTOMER.id
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private String customerId;
+
+ /**
+ * 居民端上报时存储用户所在网格的组织id.居民信息的人存储居民所在组织id.单个新增或者导入的存储登录用户所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 组织pids
+ */
+ private String pids;
+
+ /**
+ * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值
+ */
+ private String userId;
+
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;导入的:import;同步的:synchro
+ */
+ private String userType;
+
+ /**
+ * 人员姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 检测时间,精确到分钟
+ */
+ private Date natTime;
+
+ /**
+ * 检测结果(0:阴性 1:阳性)
+ */
+ private String natResult;
+
+ /**
+ * 检测地点
+ */
+ private String natAddress;
+
+ /**
+ * 文件名
+ */
+ private String fileName;
+
+ /**
+ * 文件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))
+ */
+ private String attachmentType;
+
+ /**
+ * url地址
+ */
+ private String attachmentUrl;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java
new file mode 100644
index 0000000000..133d56dfcd
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java
@@ -0,0 +1,60 @@
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 防疫通知
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ic_notice")
+public class IcNoticeEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id customer.id
+ */
+ private String customerId;
+
+ /**
+ * 通知渠道 0小程序通知,1短信通知
+ */
+ private String channel;
+
+ /**
+ * 通知来源 0行程上报,1疫苗接种,2核酸检测
+ */
+ private String origin;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 被通知人身份证号
+ */
+ private String idCard;
+
+ /**
+ * 通知内容
+ */
+ private String content;
+
+ /**
+ * 发送通知的社区
+ */
+ private String orgName;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiVaccineEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiVaccineEntity.java
new file mode 100644
index 0000000000..f26abbe525
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiVaccineEntity.java
@@ -0,0 +1,79 @@
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 居民疫苗情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ic_resi_vaccine")
+public class IcResiVaccineEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id customer.id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 接种时间
+ */
+ private Date inoculateTime;
+
+ /**
+ * 接种地点
+ */
+ private String inoculateAddress;
+
+ /**
+ * 疫苗厂家
+ */
+ private String manufacturer;
+
+ /**
+ * 预留字段1
+ */
+ private String field1;
+
+ /**
+ * 预留字段2
+ */
+ private String field2;
+
+ /**
+ * 预留字段3
+ */
+ private String field3;
+
+ /**
+ * 备注
+ */
+ private String remaek;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java
new file mode 100644
index 0000000000..ee0e00b81f
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java
@@ -0,0 +1,94 @@
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ic_trip_report_record")
+public class IcTripReportRecordEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号
+ */
+ private String idCard;
+
+ /**
+ * 用户id
+ */
+ private String userId;
+
+ /**
+ * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other
+ */
+ private String userType;
+
+ /**
+ * 现居地编码
+ */
+ private String presentAddressCode;
+
+ /**
+ * 现居地名称eg:山东省青岛市黄岛区玫瑰山路社区
+ */
+ private String presentAddress;
+
+ /**
+ * 详细地址
+ */
+ private String detailAddress;
+
+ /**
+ * 来源地区编码
+ */
+ private String sourceAddressCode;
+
+ /**
+ * 来源地区地址
+ */
+ private String sourceAddress;
+
+ /**
+ * 到达日期
+ */
+ private Date arriveDate;
+
+ /**
+ * 离开日期
+ */
+ private Date leaveDate;
+
+ /**
+ * 备注信息
+ */
+ private String remark;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcFollowUpRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcFollowUpRecordExcel.java
new file mode 100644
index 0000000000..8f3eb1ecc0
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcFollowUpRecordExcel.java
@@ -0,0 +1,60 @@
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+public class IcFollowUpRecordExcel {
+
+ @Excel(name = "主键ID")
+ private String id;
+
+ @Excel(name = "客户Id")
+ private String customerId;
+
+ @Excel(name = "姓名")
+ private String name;
+
+ @Excel(name = "手机号")
+ private String mobile;
+
+ @Excel(name = "身份证号")
+ private String idCard;
+
+ @Excel(name = "0行程上报,1疫苗接种,2核酸检测")
+ private String origin;
+
+ @Excel(name = "随访时间")
+ private Date visitTime;
+
+ @Excel(name = "随访内容")
+ private String content;
+
+ @Excel(name = "删除标识 1删除;0未删除")
+ private String delFlag;
+
+ @Excel(name = "乐观锁")
+ private Integer revision;
+
+ @Excel(name = "创建人")
+ private String createdBy;
+
+ @Excel(name = "创建时间")
+ private Date createdTime;
+
+ @Excel(name = "更新人")
+ private String updatedBy;
+
+ @Excel(name = "更新时间")
+ private Date updatedTime;
+
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcTripReportRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcTripReportRecordExcel.java
new file mode 100644
index 0000000000..446ba0075a
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcTripReportRecordExcel.java
@@ -0,0 +1,81 @@
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Data
+public class IcTripReportRecordExcel {
+
+ @Excel(name = "主键ID")
+ private String id;
+
+ @Excel(name = "客户Id")
+ private String customerId;
+
+ @Excel(name = "姓名")
+ private String name;
+
+ @Excel(name = "手机号")
+ private String mobile;
+
+ @Excel(name = "身份证号")
+ private String idCard;
+
+ @Excel(name = "用户id")
+ private String userId;
+
+ @Excel(name = "居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other")
+ private String userType;
+
+ @Excel(name = "现居地编码")
+ private String presentAddressCode;
+
+ @Excel(name = "现居地名称eg:山东省青岛市黄岛区玫瑰山路社区")
+ private String presentAddress;
+
+ @Excel(name = "详细地址")
+ private String detailAddress;
+
+ @Excel(name = "来源地区编码")
+ private String sourceAddressCode;
+
+ @Excel(name = "来源地区地址")
+ private String sourceAddress;
+
+ @Excel(name = "到达日期")
+ private Date arriveDate;
+
+ @Excel(name = "离开日期")
+ private Date leaveDate;
+
+ @Excel(name = "备注信息")
+ private String remark;
+
+ @Excel(name = "删除标识 1删除;0未删除")
+ private String delFlag;
+
+ @Excel(name = "乐观锁")
+ private Integer revision;
+
+ @Excel(name = "创建人")
+ private String createdBy;
+
+ @Excel(name = "创建时间")
+ private Date createdTime;
+
+ @Excel(name = "更新人")
+ private String updatedBy;
+
+ @Excel(name = "更新时间")
+ private Date updatedTime;
+
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/NatExportExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/NatExportExcel.java
new file mode 100644
index 0000000000..cc3d827af0
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/NatExportExcel.java
@@ -0,0 +1,35 @@
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/29 10:24
+ * @DESC
+ */
+@Data
+public class NatExportExcel {
+
+ @Excel(name = "排序",width = 10)
+ private Integer sort;
+
+ @Excel(name = "姓名",width = 20)
+ private String name;
+
+ @Excel(name = "电话",width = 20)
+ private String mobile;
+
+ @Excel(name = "身份证",width = 30)
+ private String idCard;
+
+ @Excel(name = "备注",width = 40)
+ private String remark;
+
+ @Excel(name = "关注原因",width = 40)
+ private String reason;
+
+ @Excel(name = "最近一次通知时间",width = 20)
+ private String lastInformTime;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/VaccinationExportExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/VaccinationExportExcel.java
new file mode 100644
index 0000000000..65534756cd
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/VaccinationExportExcel.java
@@ -0,0 +1,35 @@
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/3/29 10:24
+ * @DESC
+ */
+@Data
+public class VaccinationExportExcel {
+
+ @Excel(name = "排序",width = 10)
+ private Integer sort;
+
+ @Excel(name = "姓名",width = 20)
+ private String name;
+
+ @Excel(name = "电话",width = 20)
+ private String mobile;
+
+ @Excel(name = "身份证",width = 30)
+ private String idCard;
+
+ @Excel(name = "备注",width = 40)
+ private String remark;
+
+ @Excel(name = "接种针次",width = 10)
+ private Integer vaccinationCount;
+
+ @Excel(name = "最近一次通知时间",width = 20)
+ private String lastInformTime;
+
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java
new file mode 100644
index 0000000000..6e8d252c1f
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java
@@ -0,0 +1,61 @@
+package com.epmet.excel.data;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.epmet.dto.form.AddIcNatFormDTO;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 核酸检测信息导入excel数据
+ */
+@Data
+public class IcNatImportExcelData {
+
+ @NotBlank(message = "姓名为必填项")
+ @ExcelProperty("姓名")
+ private String name;
+
+ @NotBlank(message = "手机号为必填项")
+ @ExcelProperty("手机号")
+ private String mobile;
+
+ @NotBlank(message = "身份证号为必填项")
+ @ExcelProperty("身份证号")
+ private String idCard;
+
+ @NotNull(message = "检测时间为必填项")
+ @ExcelProperty("检测时间")
+ private Date natTime;
+
+ @NotBlank(message = "检测地点为必填项")
+ @ExcelProperty("检测地点")
+ private String natAddress;
+
+ @NotBlank(message = "检测结果为必填项")
+ @ExcelProperty("检测结果")
+ private String natResultZh;
+
+ @Data
+ public static class ErrorRow {
+
+ @ExcelProperty("姓名")
+ @ColumnWidth(20)
+ private String name;
+
+ @ExcelProperty("手机号")
+ @ColumnWidth(20)
+ private String mobile;
+
+ @ColumnWidth(20)
+ @ExcelProperty("身份证号")
+ private String idCard;
+
+ @ColumnWidth(60)
+ @ExcelProperty("错误信息")
+ private String errorInfo;
+ }
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java
new file mode 100644
index 0000000000..f6c83e9440
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java
@@ -0,0 +1,126 @@
+package com.epmet.excel.handler;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.read.listener.ReadListener;
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import com.epmet.commons.tools.exception.ValidateException;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.entity.IcNatEntity;
+import com.epmet.excel.data.IcNatImportExcelData;
+import com.epmet.service.impl.IcNatServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 核酸检测excel导入监听器
+ */
+@Slf4j
+public class IcNatExcelImportListener implements ReadListener {
+
+ /**
+ * 最大条数阈值
+ */
+ public static final int MAX_THRESHOLD = 2;
+
+ private String currentUserId;
+ /**
+ * 当前组织ID
+ */
+ private String currentAgencyId;
+
+ private String currentAgencyPids;
+
+ /**
+ * 数据
+ */
+ private List datas = new ArrayList<>();
+
+ /**
+ * 错误项列表
+ */
+ private List errorRows = new ArrayList<>();
+
+ private IcNatServiceImpl icNatService;
+
+ public IcNatExcelImportListener(String currentUserId, String currentAgencyId, String currentAgencyPids, IcNatServiceImpl icNatService) {
+ this.currentUserId = currentUserId;
+ this.currentAgencyId = currentAgencyId;
+ this.currentAgencyPids = currentAgencyPids;
+ this.icNatService = icNatService;
+ }
+
+ @Override
+ public void invoke(IcNatImportExcelData data, AnalysisContext context) {
+
+ try {
+ // 先校验数据
+ ValidatorUtils.validateEntity(data);
+
+ String natResult = "0";
+ String natResultZh = data.getNatResultZh();
+ if (StringUtils.isNotBlank(natResultZh)) {
+ natResult = natResultZh.equals("阴性") ? "0" : "1";
+ }
+
+ IcNatEntity icNatEntity = ConvertUtils.sourceToTarget(data, IcNatEntity.class);
+ icNatEntity.setAgencyId(currentAgencyId);
+ icNatEntity.setPids(currentAgencyPids);
+ icNatEntity.setUserId(currentUserId);
+ icNatEntity.setUserType("other");
+ icNatEntity.setNatResult(natResult);
+ icNatEntity.setAttachmentType("");
+ icNatEntity.setAttachmentUrl("");
+ datas.add(icNatEntity);
+
+ if (datas.size() == MAX_THRESHOLD) {
+ execPersist();
+ }
+ } catch (Exception e) {
+ String errorMsg = null;
+ if (e instanceof ValidateException) {
+ errorMsg = ((ValidateException) e).getMsg();
+ } else {
+ errorMsg = "未知错误";
+ log.error("【核酸检测信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
+ }
+
+ IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow();
+ errorRow.setName(data.getName());
+ errorRow.setMobile(data.getMobile());
+ errorRow.setIdCard(data.getIdCard());
+ errorRow.setErrorInfo(errorMsg);
+ errorRows.add(errorRow);
+ }
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext context) {
+ // 最后几条达不到阈值,这里必须再调用一次
+ execPersist();
+ }
+
+ /**
+ * 执行持久化
+ */
+ private void execPersist() {
+ try {
+ if (datas != null && datas.size() > 0) {
+ icNatService.batchPersist(datas);
+ }
+ } finally {
+ datas.clear();
+ }
+ }
+
+ /**
+ * 获取错误行
+ * @return
+ */
+ public List getErrorRows() {
+ return errorRows;
+ }
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java
new file mode 100644
index 0000000000..3690df2640
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java
@@ -0,0 +1,114 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
+import com.epmet.dto.form.CancelAttentionPackageFormDTO;
+import com.epmet.dto.form.VaccinationAddFormDTO;
+import com.epmet.dto.form.VaccinationListFormDTO;
+import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 疫情特别关注
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+public interface IcEpidemicSpecialAttentionService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2022-03-28
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2022-03-28
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return IcEpidemicSpecialAttentionDTO
+ * @author generator
+ * @date 2022-03-28
+ */
+ IcEpidemicSpecialAttentionDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void save(IcEpidemicSpecialAttentionDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void update(IcEpidemicSpecialAttentionDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void delete(String[] ids);
+
+ /**
+ * Desc: 【疫苗接种关注名单,疫苗接种关注名单】列表
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 10:29
+ */
+ PageData vaccinationList(VaccinationListFormDTO formDTO);
+
+
+ /**
+ * Desc:【疫苗接种关注名单,核酸检测关注名单】新增
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:35
+ */
+ void vaccinationAdd(VaccinationAddFormDTO formDTO);
+
+ /**
+ * Desc:【疫苗接种关注名单,核酸检测关注名单】修改
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:45
+ */
+ void vaccinationUpdate(IcEpidemicSpecialAttentionDTO formDTO);
+
+ /**
+ * Desc: 取消关注
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:51
+ */
+ void cancelAttention(CancelAttentionPackageFormDTO formDTO);
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcFollowUpRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcFollowUpRecordService.java
new file mode 100644
index 0000000000..7183ae1e4d
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcFollowUpRecordService.java
@@ -0,0 +1,78 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.IcFollowUpRecordDTO;
+import com.epmet.entity.IcFollowUpRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+public interface IcFollowUpRecordService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2022-03-25
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2022-03-25
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return IcFollowUpRecordDTO
+ * @author generator
+ * @date 2022-03-25
+ */
+ IcFollowUpRecordDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-25
+ */
+ void save(IcFollowUpRecordDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-25
+ */
+ void update(IcFollowUpRecordDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2022-03-25
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java
new file mode 100644
index 0000000000..c460d99906
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java
@@ -0,0 +1,71 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.IcNatDTO;
+import com.epmet.dto.form.AddIcNatFormDTO;
+import com.epmet.dto.form.MyNatListFormDTO;
+import com.epmet.dto.result.MyNatListResultDTO;
+import com.epmet.dto.result.NatListResultDTO;
+import com.epmet.entity.IcNatEntity;
+
+import java.nio.file.Path;
+import java.util.List;
+
+/**
+ * 核酸上报记录
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+public interface IcNatService extends BaseService {
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-上报核酸记录
+ **/
+ void add(AddIcNatFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-居民端我的上报
+ **/
+ List myNatList(MyNatListFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息列表
+ *
+ * @return*/
+ PageData natList(MyNatListFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息详情
+ **/
+ IcNatDTO detail(MyNatListFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息修改
+ **/
+ void edit(AddIcNatFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息删除/取消同步
+ **/
+ void del(MyNatListFormDTO formDTO);
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息同步
+ **/
+ void synchro(MyNatListFormDTO formDTO);
+
+ /**
+ * 执行Excel导入
+ * @param filePath
+ */
+ void execAsyncExcelImport(Path filePath, String importTaskId);
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java
new file mode 100644
index 0000000000..937cca916a
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java
@@ -0,0 +1,99 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.IcNoticeDTO;
+import com.epmet.dto.form.IcNoticeFormDTO;
+import com.epmet.dto.form.SendNoticeFormDTO;
+import com.epmet.entity.IcNoticeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 防疫通知
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+public interface IcNoticeService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param dto
+ * @return PageData
+ * @author generator
+ * @date 2022-03-28
+ */
+ PageData page(IcNoticeFormDTO formDTO);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2022-03-28
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return IcNoticeDTO
+ * @author generator
+ * @date 2022-03-28
+ */
+ IcNoticeDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void save(IcNoticeDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void update(IcNoticeDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void delete(String[] ids);
+
+ /**
+ * 发送通知
+ *
+ * @Param formDTO
+ * @Return
+ * @Author zhaoqifeng
+ * @Date 2022/3/28 14:19
+ */
+ void sendNotice(SendNoticeFormDTO formDTO);
+
+ /**
+ * 获取人员最新一条通知
+ * @Param idCard
+ * @Return {@link IcNoticeDTO}
+ * @Author zhaoqifeng
+ * @Date 2022/3/28 15:43
+ */
+ IcNoticeDTO getNotice(String customerId, String idCard);
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java
index 4c0bca4fa5..9129b34675 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java
@@ -4,11 +4,12 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectFormDTO;
+import com.epmet.dto.form.LatestSubmitCollectFormDTO;
+import com.epmet.dto.form.ResiCollectFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
+import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.entity.IcResiCollectEntity;
-import java.util.List;
-
/**
* 居民信息采集表
*
@@ -36,4 +37,16 @@ public interface IcResiCollectService extends BaseService {
*/
PageData getCollectList(CollectListFormDTO formDTO);
+ /**
+ * 居民端小程序:社区居民信息登记-提交
+ * @param formDTO
+ */
+ void saveResi(ResiCollectFormDTO formDTO);
+
+ /**
+ * 居民端小程序:社区居民信息登记-查询
+ * @param formDTO
+ * @return
+ */
+ LatestCollectResDTO latestSubmit(LatestSubmitCollectFormDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiVaccineService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiVaccineService.java
new file mode 100644
index 0000000000..44207d875f
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiVaccineService.java
@@ -0,0 +1,78 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.IcResiVaccineDTO;
+import com.epmet.entity.IcResiVaccineEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 居民疫苗情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+public interface IcResiVaccineService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2022-03-28
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2022-03-28
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return IcResiVaccineDTO
+ * @author generator
+ * @date 2022-03-28
+ */
+ IcResiVaccineDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void save(IcResiVaccineDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void update(IcResiVaccineDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2022-03-28
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java
new file mode 100644
index 0000000000..3949fed1bc
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java
@@ -0,0 +1,78 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.IcTripReportRecordDTO;
+import com.epmet.entity.IcTripReportRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+public interface IcTripReportRecordService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2022-03-25
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2022-03-25
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return IcTripReportRecordDTO
+ * @author generator
+ * @date 2022-03-25
+ */
+ IcTripReportRecordDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-25
+ */
+ void save(IcTripReportRecordDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2022-03-25
+ */
+ void update(IcTripReportRecordDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2022-03-25
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java
new file mode 100644
index 0000000000..dc72e683ea
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java
@@ -0,0 +1,219 @@
+package com.epmet.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
+import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
+import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
+import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.dao.IcEpidemicSpecialAttentionDao;
+import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.VaccinationListResultDTO;
+import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
+import com.epmet.service.IcEpidemicSpecialAttentionService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 疫情特别关注
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Service
+public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl implements IcEpidemicSpecialAttentionService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, IcEpidemicSpecialAttentionDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, IcEpidemicSpecialAttentionDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public IcEpidemicSpecialAttentionDTO get(String id) {
+ IcEpidemicSpecialAttentionEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, IcEpidemicSpecialAttentionDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(IcEpidemicSpecialAttentionDTO dto) {
+ IcEpidemicSpecialAttentionEntity entity = ConvertUtils.sourceToTarget(dto, IcEpidemicSpecialAttentionEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(IcEpidemicSpecialAttentionDTO dto) {
+ IcEpidemicSpecialAttentionEntity entity = ConvertUtils.sourceToTarget(dto, IcEpidemicSpecialAttentionEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+ /**
+ * Desc: 【疫苗接种关注名单,疫苗接种关注名单】列表
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 10:29
+ */
+ @Override
+ public PageData vaccinationList(VaccinationListFormDTO formDTO) {
+ PageData result = new PageData(new ArrayList(), NumConstant.ZERO_L);
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
+ if (null == staffInfo){
+ throw new EpmetException("未查询到工作人员信息"+formDTO.getUserId());
+ }
+ formDTO.setOrgId(staffInfo.getAgencyId());
+ // 关注类型,核酸检测:2,疫苗接种:1
+ if (formDTO.getAttentionType().equals(NumConstant.ONE)){
+ if (formDTO.isPage()){
+ PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.vaccinationList(formDTO));
+ result.setList(pageInfo.getList());
+ result.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal())));
+ }else {
+ List list = baseDao.vaccinationList(formDTO);
+ result.setList(list);
+ result.setTotal(list.size());
+ }
+ }else if (formDTO.getAttentionType().equals(NumConstant.TWO)){
+ if (formDTO.isPage()){
+ PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.natList(formDTO));
+ result.setList(pageInfo.getList());
+ result.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal())));
+ }else {
+ List list = baseDao.natList(formDTO);
+ result.setList(list);
+ result.setTotal(list.size());
+ }
+ }
+ int i = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
+ for (VaccinationListResultDTO v : result.getList()) {
+ i += 1;
+ v.setSort(i);
+ }
+ return result;
+ }
+
+ /**
+ * Desc:【疫苗接种关注名单,核酸检测关注名单】新增
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:35
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void vaccinationAdd(VaccinationAddFormDTO formDTO) {
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
+ if (null == staffInfo){
+ throw new EpmetException("未查询到工作人员信息"+formDTO.getUserId());
+ }
+ AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId());
+ if (null == agencyInfo){
+ throw new EpmetException("未查询到组织信息"+staffInfo.getAgencyId());
+ }
+ List entities = ConvertUtils.sourceToTarget(formDTO.getList(), IcEpidemicSpecialAttentionEntity.class);
+ List idCards = entities.stream().map(m -> m.getIdCard()).collect(Collectors.toList());
+ Integer attentionType = entities.get(NumConstant.ZERO).getAttentionType();
+ List existList = baseDao.getExistList(attentionType, idCards);
+ if (CollectionUtils.isNotEmpty(existList)){
+ for (String s : existList) {
+ for (int i = NumConstant.ZERO; i < entities.size(); i++) {
+ if (s.equals(entities.get(i).getIdCard())){
+ entities.remove(i);
+ continue;
+ }
+ }
+ }
+ }
+ entities.forEach(e -> {
+ e.setIsAttention(NumConstant.ONE);
+ e.setOrgId(agencyInfo.getId());
+ e.setPid(agencyInfo.getPid());
+ e.setPids(agencyInfo.getPids());
+ e.setCustomerId(formDTO.getCustomerId());
+ });
+ insertBatch(entities);
+ //TODO 发送通知
+ }
+
+ /**
+ * Desc:【疫苗接种关注名单,核酸检测关注名单】修改
+ * 修改的时候通知渠道和通知内容是空的,如果他再次写了就是再次发送一条通知 不是修改之前发过的通知
+ * 除了 姓名 身份证 都能修改
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:45
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void vaccinationUpdate(IcEpidemicSpecialAttentionDTO formDTO) {
+ LambdaQueryWrapper w = new LambdaQueryWrapper<>();
+ IcEpidemicSpecialAttentionEntity e = new IcEpidemicSpecialAttentionEntity();
+ w.eq(IcEpidemicSpecialAttentionEntity::getIdCard,formDTO.getIdCard())
+ .eq(IcEpidemicSpecialAttentionEntity::getAttentionType,formDTO.getAttentionType());
+ e.setMobile(formDTO.getMobile());
+ e.setReason(formDTO.getReason());
+ e.setRemark(formDTO.getRemark());
+ update(e,w);
+ //TODO 通知
+ }
+
+ /**
+ * Desc: 取消关注
+ * @param formDTO
+ * @author zxc
+ * @date 2022/3/28 13:51
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void cancelAttention(CancelAttentionPackageFormDTO formDTO) {
+ if (CollectionUtils.isNotEmpty(formDTO.getIdCards())){
+ baseDao.cancelAttention(formDTO.getIdCards(), formDTO.getAttentionType());
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcFollowUpRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcFollowUpRecordServiceImpl.java
new file mode 100644
index 0000000000..40d380278a
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcFollowUpRecordServiceImpl.java
@@ -0,0 +1,83 @@
+package com.epmet.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dao.IcFollowUpRecordDao;
+import com.epmet.dto.IcFollowUpRecordDTO;
+import com.epmet.entity.IcFollowUpRecordEntity;
+import com.epmet.service.IcFollowUpRecordService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 随访记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Service
+public class IcFollowUpRecordServiceImpl extends BaseServiceImpl implements IcFollowUpRecordService {
+
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, IcFollowUpRecordDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, IcFollowUpRecordDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public IcFollowUpRecordDTO get(String id) {
+ IcFollowUpRecordEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, IcFollowUpRecordDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(IcFollowUpRecordDTO dto) {
+ IcFollowUpRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcFollowUpRecordEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(IcFollowUpRecordDTO dto) {
+ IcFollowUpRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcFollowUpRecordEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java
new file mode 100644
index 0000000000..2df0bd7017
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java
@@ -0,0 +1,354 @@
+package com.epmet.service.impl;
+
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.AppClientConstant;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import com.epmet.commons.tools.exception.RenException;
+import com.epmet.commons.tools.feign.ResultDataResolver;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
+import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
+import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.utils.EpmetRequestHolder;
+import com.epmet.commons.tools.utils.FileUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.constants.ImportTaskConstants;
+import com.epmet.dao.IcNatDao;
+import com.epmet.dto.IcNatDTO;
+import com.epmet.dto.IcNoticeDTO;
+import com.epmet.dto.form.AddIcNatFormDTO;
+import com.epmet.dto.form.ImportTaskCommonFormDTO;
+import com.epmet.dto.form.LoginUserDetailsFormDTO;
+import com.epmet.dto.form.MyNatListFormDTO;
+import com.epmet.dto.result.LoginUserDetailsResultDTO;
+import com.epmet.dto.form.SendNoticeFormDTO;
+import com.epmet.dto.result.MyNatListResultDTO;
+import com.epmet.dto.result.NatListResultDTO;
+import com.epmet.dto.result.UploadImgResultDTO;
+import com.epmet.entity.IcNatEntity;
+import com.epmet.excel.data.IcNatImportExcelData;
+import com.epmet.excel.handler.IcNatExcelImportListener;
+import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
+import com.epmet.feign.EpmetUserOpenFeignClient;
+import com.epmet.feign.OssFeignClient;
+import com.epmet.service.IcNatService;
+import com.epmet.service.IcNoticeService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.entity.ContentType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
+
+import java.util.ArrayList;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 核酸上报记录
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Service
+@Slf4j
+public class IcNatServiceImpl extends BaseServiceImpl implements IcNatService, ResultDataResolver {
+
+ @Autowired
+ private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
+
+ @Autowired
+ private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
+
+ @Autowired
+ private IcNoticeService icNoticeService;
+
+ @Autowired
+ private OssFeignClient ossFeignClient;
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-上报核酸记录
+ **/
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void add(AddIcNatFormDTO formDTO) {
+ //1.获取所填居民所属组织缓存信息
+ AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId());
+ if (null == agencyInfo) {
+ throw new RenException(String.format("获取组织缓存信息失败%s", formDTO.getAgencyId()));
+ }
+ //2.新增核酸记录表数据
+ IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class);
+ entity.setPids(agencyInfo.getPids());
+ insert(entity);
+
+ //3.新增通知表信息
+ if (formDTO.getChannel().size() > NumConstant.ZERO) {
+ SendNoticeFormDTO dto = new SendNoticeFormDTO();
+ List userList = new ArrayList<>();
+ userList.add(ConvertUtils.sourceToTarget(formDTO, SendNoticeFormDTO.UserListBean.class));
+ dto.setCustomerId(formDTO.getCustomerId());
+ dto.setUserList(userList);
+ dto.setChannel(formDTO.getChannel());
+ dto.setOrigin("2");
+ dto.setContent(formDTO.getContent());
+ dto.setOrgName(agencyInfo.getOrganizationName());
+ icNoticeService.sendNotice(dto);
+ }
+
+ }
+
+ /**
+ * @Author sun
+ * @Description 核酸检测-居民端我的上报
+ **/
+ @Override
+ public List myNatList(MyNatListFormDTO formDTO) {
+ //1.根据身份证号查询该人员所有核酸记录(居民端录入、数字平台录入、数字平台导入)
+ List resultList = baseDao.getMyNatList(formDTO);
+ return resultList;
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息列表
+ *
+ * @return*/
+ @Override
+ public PageData natList(MyNatListFormDTO formDTO) {
+ //1.根据orgType值判断是查询当前组织下还是整个客户下数据
+ if ("current".equals(formDTO.getOrgType())) {
+ //获取工作人员缓存信息
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
+ if (null == staffInfo) {
+ throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
+ }
+ formDTO.setAgencyId(staffInfo.getAgencyId());
+ }
+
+ //2.按条件查询业务数据
+ PageInfo data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.isPage())
+ .doSelectPageInfo(() -> baseDao.getNatList(formDTO));
+ return new PageData(data.getList(),data.getTotal());
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息详情
+ **/
+ @Override
+ public IcNatDTO detail(MyNatListFormDTO formDTO) {
+ IcNatDTO resultDTO = new IcNatDTO();
+ //1.查询核酸记录信息
+ IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId());
+ if (null == resultDTO) {
+ return resultDTO;
+ }
+ resultDTO = ConvertUtils.sourceToTarget(entity, IcNatDTO.class);
+
+ //2.查询对应的通知记录信息
+ IcNoticeDTO dto = icNoticeService.getNotice(entity.getCustomerId(), entity.getIdCard());
+ if (null != dto) {
+ resultDTO.setChannel(dto.getChannelList());
+ resultDTO.setContent(dto.getContent());
+ }
+
+ return resultDTO;
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息修改
+ **/
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void edit(AddIcNatFormDTO formDTO) {
+ //1.更新核酸记录表数据
+ IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class);
+ entity.setId(formDTO.getIcNatId());
+ if (!updateById(entity)) {
+ log.error(String.format("数据修改失败,核酸记录Id->%s", formDTO.getIcNatId()));
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "核酸记录修改失败");
+ }
+
+ //3.新增通知表信息
+ if (CollectionUtils.isNotEmpty(formDTO.getChannel())) {
+ IcNatEntity icNatEntity = baseDao.selectById(formDTO.getIcNatId());
+ //1.获取所填居民所属组织缓存信息
+ AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(icNatEntity.getAgencyId());
+ if (null == agencyInfo) {
+ throw new RenException(String.format("获取组织缓存信息失败%s", icNatEntity.getAgencyId()));
+ }
+ SendNoticeFormDTO dto = new SendNoticeFormDTO();
+ List userList = new ArrayList<>();
+ userList.add(ConvertUtils.sourceToTarget(formDTO, SendNoticeFormDTO.UserListBean.class));
+ dto.setCustomerId(formDTO.getCustomerId());
+ dto.setUserList(userList);
+ dto.setChannel(formDTO.getChannel());
+ dto.setOrigin("2");
+ dto.setContent(formDTO.getContent());
+ dto.setOrgName(agencyInfo.getOrganizationName());
+ icNoticeService.sendNotice(dto);
+ }
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息删除/取消同步
+ **/
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void del(MyNatListFormDTO formDTO) {
+ //1.物理删除业务数据
+ if (baseDao.delById(formDTO.getIcNatId()) < NumConstant.ONE) {
+ log.error(String.format("数据删除/取消同步失败,核酸记录Id->%s", formDTO.getIcNatId()));
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据操作失败");
+ }
+ }
+
+ /**
+ * @Author sun
+ * @Description 【核酸】核酸检测信息同步
+ **/
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void synchro(MyNatListFormDTO formDTO) {
+ //1.获取工作人员缓存数据
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
+ if (null == staffInfo) {
+ throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
+ }
+ //1.根据核酸记录Id查询业务数据并进行必要校验
+ IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId());
+ if (null == entity || staffInfo.getAgencyId().equals(entity.getAgencyId())
+ || (!"import".equals(entity.getUserType()) && !"synchro".equals(entity.getUserType()))) {
+ log.error(String.format("数据同步失败,核酸记录Id->%s", formDTO.getIcNatId()));
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据同步失败,不是导入数据或非本组织数据");
+ }
+
+ //3.待同步组织新增业务数据
+ entity.setId("");
+ entity.setAgencyId(staffInfo.getAgencyId());
+ entity.setPids(staffInfo.getAgencyPIds());
+ entity.setUserType("synchro");
+ insert(entity);
+ }
+
+ @Async
+ @Override
+ public void execAsyncExcelImport(Path filePath, String importTaskId) {
+ String userId = null;
+
+ try {
+ userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
+ String app = EpmetRequestHolder.getHeader(AppClientConstant.APP);
+ String client = EpmetRequestHolder.getHeader(AppClientConstant.CLIENT);
+
+ LoginUserDetailsFormDTO ludf = new LoginUserDetailsFormDTO(app, client, userId);
+ LoginUserDetailsResultDTO loginUserDetails = getResultDataOrThrowsException(epmetUserOpenFeignClient.getLoginUserDetails(ludf), ServiceConstant.EPMET_USER_SERVER,
+ EpmetErrorCode.SERVER_ERROR.getCode(), "调用user出错", "");
+
+ IcNatExcelImportListener listener = new IcNatExcelImportListener(userId, loginUserDetails.getAgencyId(), loginUserDetails.getOrgIdPath(), this);
+
+ EasyExcel.read(filePath.toFile(), IcNatImportExcelData.class, listener).headRowNumber(2).sheet(0).doRead();
+
+ Path errorDescFile = null;
+ String errorDesFileUrl = null;
+ List errorRows = listener.getErrorRows();
+
+ // 生成并上传错误文件
+ try {
+ // 文件生成
+ Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_nat", "import", "error_des");
+ String fileName = UUID.randomUUID().toString().concat(".xlsx");
+ errorDescFile = errorDescDir.resolve(fileName);
+
+ FileItemFactory factory = new DiskFileItemFactory(16, errorDescDir.toFile());
+ FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName);
+ OutputStream os = fileItem.getOutputStream();
+
+ EasyExcel.write(os, IcNatImportExcelData.ErrorRow.class).sheet("导入失败列表").doWrite(errorRows);
+
+ // 文件上传oss
+ Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
+ if (errorDesFileUploadResult.success()) {
+ errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
+ }
+ } finally {
+ if (Files.exists(errorDescFile)) {
+ Files.delete(errorDescFile);
+ }
+ }
+
+ ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
+ importFinishTaskForm.setTaskId(importTaskId);
+ importFinishTaskForm.setProcessStatus(errorRows.size() <= 0 ? ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS : ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
+ importFinishTaskForm.setOperatorId(userId);
+ importFinishTaskForm.setResultDesc("");
+ importFinishTaskForm.setResultDescFilePath(errorDesFileUrl);
+
+ Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
+ if (!result.success()) {
+ log.error("【核酸检测导入】finishImportTask失败");
+ }
+ } catch (Exception e) {
+ String errorMsg = ExceptionUtils.getErrorStackTrace(e);
+ log.error("【核酸检测导入】出错:{}", errorMsg);
+
+ ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
+ importFinishTaskForm.setTaskId(importTaskId);
+ importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
+ importFinishTaskForm.setOperatorId(userId);
+ importFinishTaskForm.setResultDesc("导入失败");
+
+ Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
+ if (!result.success()) {
+ log.error("【核酸检测导入】导入记录状态修改为'完成'失败");
+ }
+ } finally {
+ // 删除临时文件
+ if (Files.exists(filePath)) {
+ try {
+ Files.delete(filePath);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+
+ /**
+ * 批量持久化
+ * @param entities
+ */
+ public void batchPersist(List entities) {
+ insertBatch(entities);
+ }
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java
new file mode 100644
index 0000000000..64fe1016c2
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java
@@ -0,0 +1,205 @@
+package com.epmet.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.*;
+import com.epmet.commons.tools.enums.ChannelEnum;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.constant.SmsTemplateConstant;
+import com.epmet.constant.UserMessageTypeConstant;
+import com.epmet.dao.IcNoticeDao;
+import com.epmet.dto.IcNoticeDTO;
+import com.epmet.dto.form.IcNoticeFormDTO;
+import com.epmet.dto.form.ProjectSendMsgFormDTO;
+import com.epmet.dto.form.SendNoticeFormDTO;
+import com.epmet.dto.form.UserMessageFormDTO;
+import com.epmet.entity.IcNoticeEntity;
+import com.epmet.feign.MessageFeignClient;
+import com.epmet.service.IcNoticeService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 防疫通知
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Slf4j
+@Service
+public class IcNoticeServiceImpl extends BaseServiceImpl implements IcNoticeService {
+
+ @Resource
+ private MessageFeignClient messageFeignClient;
+
+ @Override
+ public PageData page(IcNoticeFormDTO formDTO) {
+ PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(IcNoticeEntity::getCustomerId, formDTO.getCustomerId());
+ wrapper.eq(IcNoticeEntity::getIdCard, formDTO.getIdCard());
+ wrapper.orderByDesc(IcNoticeEntity::getCreatedTime);
+ List list = baseDao.selectList(wrapper);
+ PageInfo pageInfo = new PageInfo<>(list);
+ List dtoList = ConvertUtils.sourceToTarget(list, IcNoticeDTO.class);
+
+ if (CollectionUtils.isNotEmpty(dtoList)) {
+ dtoList.forEach(item -> {
+ List channelList = Arrays.asList(item.getChannel().split(StrConstant.COMMA));
+ if (channelList.size() == NumConstant.ONE) {
+ item.setChannel(ChannelEnum.getName(channelList.get(0)));
+ } else {
+ item.setChannel(ChannelEnum.getName(NumConstant.TWO_STR));
+ }
+ });
+ }
+ return new PageData<>(dtoList, pageInfo.getTotal());
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, IcNoticeDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public IcNoticeDTO get(String id) {
+ IcNoticeEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, IcNoticeDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(IcNoticeDTO dto) {
+ IcNoticeEntity entity = ConvertUtils.sourceToTarget(dto, IcNoticeEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(IcNoticeDTO dto) {
+ IcNoticeEntity entity = ConvertUtils.sourceToTarget(dto, IcNoticeEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+ /**
+ * 发送通知
+ *
+ * @param formDTO
+ * @Param formDTO
+ * @Return
+ * @Author zhaoqifeng
+ * @Date 2022/3/28 14:19
+ */
+ @Override
+ public void sendNotice(SendNoticeFormDTO formDTO) {
+ //保存消息
+ String channel = StringUtils.join(formDTO.getChannel(), StrConstant.COMMA);
+ List entityList = formDTO.getUserList().stream().map(item -> {
+ IcNoticeEntity entity = new IcNoticeEntity();
+ entity.setCustomerId(formDTO.getCustomerId());
+ entity.setChannel(channel);
+ entity.setContent(formDTO.getContent());
+ entity.setOrigin(formDTO.getOrigin());
+ entity.setUserId(item.getUserId());
+ entity.setMobile(item.getMobile());
+ entity.setIdCard(item.getIdCard());
+ entity.setOrgName(formDTO.getOrgName());
+ return entity;
+ }).collect(Collectors.toList());
+ insertBatch(entityList);
+
+ //通知
+ List msgList = new ArrayList<>();
+ //短信消息
+ List smsList = new ArrayList<>();
+
+ entityList.forEach(item -> {
+ if (StringUtils.isNotBlank(item.getUserId())) {
+ UserMessageFormDTO messageFormDTO = new UserMessageFormDTO();
+ messageFormDTO.setCustomerId(item.getCustomerId());
+ messageFormDTO.setApp(AppClientConstant.APP_GOV);
+ messageFormDTO.setGridId(StrConstant.STAR);
+ messageFormDTO.setUserId(item.getUserId());
+ messageFormDTO.setTitle("您有一条通知消息!");
+ messageFormDTO.setMessageContent(item.getContent());
+ messageFormDTO.setReadFlag(Constant.UNREAD);
+ messageFormDTO.setMessageType(UserMessageTypeConstant.ANTIEPIDEMIC);
+ messageFormDTO.setTargetId(item.getId());
+ msgList.add(messageFormDTO);
+ }
+ //TODO
+ if (StringUtils.isNotBlank(item.getMobile())) {
+ ProjectSendMsgFormDTO sms = new ProjectSendMsgFormDTO();
+ sms.setCustomerId(item.getCustomerId());
+ sms.setMobile(item.getMobile());
+ sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_OVERDUE);
+ sms.setParameterKey("send_msg");
+ smsList.add(sms);
+ }
+ });
+
+ Result result = messageFeignClient.saveUserMessageList(msgList);
+ if (!result.success()) {
+ log.error("发送小程序消息失败" + JSON.toJSONString(result));
+ }
+ }
+
+ /**
+ * 获取人员最新一条通知
+ *
+ * @param idCard
+ * @Param idCard
+ * @Return {@link IcNoticeDTO}
+ * @Author zhaoqifeng
+ * @Date 2022/3/28 15:43
+ */
+ @Override
+ public IcNoticeDTO getNotice(String customerId, String idCard) {
+ IcNoticeDTO result = new IcNoticeDTO();
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(IcNoticeEntity::getCustomerId, customerId);
+ wrapper.eq(IcNoticeEntity::getIdCard, idCard);
+ wrapper.orderByDesc(IcNoticeEntity::getCreatedTime);
+ List list = baseDao.selectList(wrapper);
+ if (CollectionUtils.isNotEmpty(list)) {
+ result = ConvertUtils.sourceToTarget(list.get(NumConstant.ZERO), IcNoticeDTO.class);
+ result.setChannelList(Arrays.asList(result.getChannel().split(StrConstant.COMMA)));
+ }
+ return result;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
index b1895b608a..3343e5c4fc 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
@@ -2,26 +2,30 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
+import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
+import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcResiCollectDao;
import com.epmet.dao.IcResiMemberDao;
import com.epmet.dto.IcNeighborHoodDTO;
-import com.epmet.dto.form.CollectListFormDTO;
-import com.epmet.dto.form.IcResiCollectFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.CollectListResultDTO;
+import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.entity.IcResiCollectEntity;
import com.epmet.entity.IcResiMemberEntity;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.IcResiCollectService;
-import org.apache.commons.collections4.MapUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -71,7 +75,7 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map memMap = queryOriginMem(origin.getId());
@@ -145,4 +149,85 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl memberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
+ memberList.forEach(mem -> {
+ if (StringUtils.isNotBlank(mem.getName()) || StringUtils.isNotBlank(mem.getIdNum())) {
+ mem.setCustomerId(formDTO.getCustomerId());
+ //姓名或份身份证号不为空时插入
+ mem.setIcResiCollectId(insert.getId());
+ icResiMemberDao.insert(mem);
+ }
+ });
+ } else {
+ //更新主表
+ baseDao.updateRec(origin.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi(),formDTO.getUserId());
+ List newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
+ //查询之前录入的成员表
+ Map memMap = queryOriginMem(origin.getId());
+ saveOrUpdateMem(newMemberList, memMap,origin.getId());
+ }
+ }
+
+ /**
+ * 居民端小程序:社区居民信息登记-查询
+ *
+ * @param formDTO
+ * @return
+ */
+ @Override
+ public LatestCollectResDTO latestSubmit(LatestSubmitCollectFormDTO formDTO) {
+ //张三、李四都住101房间
+ //张三先登记了填写了2个成员的信息
+ //李四登记后,会更新这2个成员的信息
+ //李四下次进入页面,展示这2个成员。
+ LatestCollectResDTO resDTO = new LatestCollectResDTO();
+ GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(formDTO.getGridId());
+ if (null == gridInfoCache) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询网格信息异常", EpmetErrorCode.SERVER_ERROR.getMsg());
+ }
+
+ resDTO.setCustomerId(gridInfoCache.getCustomerId());
+ resDTO.setGridId(formDTO.getGridId());
+ AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(gridInfoCache.getPid());
+ resDTO.setAgencyId(gridInfoCache.getPid());
+ resDTO.setPids(null != agencyInfoCache ? agencyInfoCache.getPids() : StrConstant.EPMETY_STR);
+ resDTO.setAgencyName(gridInfoCache.getAgencyName());
+ String latestResiCollectId = baseDao.selectLastSubmitId(formDTO.getCustomerId(), formDTO.getUserId());
+ if (StringUtils.isNotBlank(latestResiCollectId)) {
+ resDTO.setResiCollectId(latestResiCollectId);
+ //之前提交过
+ IcResiCollectEntity entity = baseDao.selectById(latestResiCollectId);
+ if (null != entity) {
+ setCollectValue(resDTO, entity);
+ }
+ List memberList = icResiMemberDao.selectMySubmit(latestResiCollectId, formDTO.getUserId());
+ resDTO.setMemberList(memberList);
+ }
+ return resDTO;
+ }
+
+ private void setCollectValue(LatestCollectResDTO resDTO, IcResiCollectEntity entity) {
+ resDTO.setVillageId(entity.getVillageId());
+ resDTO.setBuildId(entity.getBuildId());
+ resDTO.setUnitId(entity.getUnitId());
+ resDTO.setHomeId(entity.getHomeId());
+ resDTO.setAddress(entity.getAddress());
+ resDTO.setHouseType(entity.getHouseType());
+ resDTO.setHouseHolderName(entity.getHouseHolderName());
+ resDTO.setTotalResi(entity.getTotalResi());
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiVaccineServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiVaccineServiceImpl.java
new file mode 100644
index 0000000000..c8c586137a
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiVaccineServiceImpl.java
@@ -0,0 +1,83 @@
+package com.epmet.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.dao.IcResiVaccineDao;
+import com.epmet.dto.IcResiVaccineDTO;
+import com.epmet.entity.IcResiVaccineEntity;
+import com.epmet.service.IcResiVaccineService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 居民疫苗情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-28
+ */
+@Service
+public class IcResiVaccineServiceImpl extends BaseServiceImpl implements IcResiVaccineService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, IcResiVaccineDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, IcResiVaccineDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public IcResiVaccineDTO get(String id) {
+ IcResiVaccineEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, IcResiVaccineDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(IcResiVaccineDTO dto) {
+ IcResiVaccineEntity entity = ConvertUtils.sourceToTarget(dto, IcResiVaccineEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(IcResiVaccineDTO dto) {
+ IcResiVaccineEntity entity = ConvertUtils.sourceToTarget(dto, IcResiVaccineEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java
new file mode 100644
index 0000000000..c9d2c0326e
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java
@@ -0,0 +1,83 @@
+package com.epmet.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dao.IcTripReportRecordDao;
+import com.epmet.dto.IcTripReportRecordDTO;
+import com.epmet.entity.IcTripReportRecordEntity;
+import com.epmet.service.IcTripReportRecordService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 行程上报信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-03-25
+ */
+@Service
+public class IcTripReportRecordServiceImpl extends BaseServiceImpl implements IcTripReportRecordService {
+
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, IcTripReportRecordDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, IcTripReportRecordDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public IcTripReportRecordDTO get(String id) {
+ IcTripReportRecordEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, IcTripReportRecordDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(IcTripReportRecordDTO dto) {
+ IcTripReportRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcTripReportRecordEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(IcTripReportRecordDTO dto) {
+ IcTripReportRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcTripReportRecordEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_nat.xlsx b/epmet-user/epmet-user-server/src/main/resources/excel/ic_nat.xlsx
new file mode 100644
index 0000000000..4d7df5944a
Binary files /dev/null and b/epmet-user/epmet-user-server/src/main/resources/excel/ic_nat.xlsx differ
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml
new file mode 100644
index 0000000000..ef7660a3c4
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+ UPDATE ic_epidemic_special_attention
+ SET UPDATED_TIME = NOW(),
+ IS_ATTENTION = 0
+ WHERE del_flag = 0
+ AND attention_type = #{attentionType}
+ AND id_card IN (
+
+ #{l}
+
+ )
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcFollowUpRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcFollowUpRecordDao.xml
new file mode 100644
index 0000000000..a8710f4094
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcFollowUpRecordDao.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml
new file mode 100644
index 0000000000..a16f593941
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+ DELETE FROM ic_nat WHERE id = #{icNatId}
+
+
+
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNoticeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNoticeDao.xml
new file mode 100644
index 0000000000..dab4ffd739
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNoticeDao.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml
index 0be0e43c13..98725fa04e 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml
@@ -55,11 +55,35 @@
UPDATE ic_resi_collect
- SET UPDATED_TIME = NOW(),
- HOUSE_TYPE = #{houseType},
- HOUSE_HOLDER_NAME = #{houseHolderName},
- TOTAL_RESI = #{totalResi}
+ SET
+
+ HOUSE_TYPE = #{houseType},
+
+
+ HOUSE_HOLDER_NAME = #{houseHolderName},
+
+
+ TOTAL_RESI = #{totalResi},
+
+
+ UPDATED_BY = #{updatedBy},
+
+ UPDATED_TIME = NOW()
WHERE
id = #{id}
+
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml
index 6423f7ecff..b76345774c 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml
@@ -4,5 +4,20 @@
-
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiVaccineDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiVaccineDao.xml
new file mode 100644
index 0000000000..a330bccba9
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiVaccineDao.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcTripReportRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcTripReportRecordDao.xml
new file mode 100644
index 0000000000..c4e619b1ec
--- /dev/null
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcTripReportRecordDao.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file