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