diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index 2c0fc380e6..8ddbea5066 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -1077,4 +1077,39 @@ public class DateUtils { calendar.add(Calendar.DAY_OF_MONTH, day); return calendar.getTime(); } + + + /** + * @Description 获取自定义周几对应的日期 + * 例:num=7,str="1,2" 表示获取未来周天周一出现的日期,两个总共出现七次, + * 比如今天1号是周一则得到的值是1号7号8号14号15号21号22号7次的日期 + */ + public static List getCustomDay(Date startDate, int num, String str) { + List result = new ArrayList<>(); + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(startDate); + rightNow.add(Calendar.DATE,-1); + startDate = rightNow.getTime(); + Date tomorrow; + Integer tag = 1; + while (tag <= num){ + tomorrow = getTomorrow(startDate); + // 返回周末 + if (isContain(tomorrow, str)) { + result.add(new SimpleDateFormat(DATE_PATTERN).format(tomorrow)); + tag++; + } + startDate = tomorrow; + } + return result; + } + /** + * @Description 判断日期对应的周几在字符串是否包含 + * 例:当前时间为22.11.28为周一对应是一周的第二天,判断2在str字符串是否包含 + */ + private static boolean isContain(Date date, String str) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + return str.contains(String.valueOf(cal.get(Calendar.DAY_OF_WEEK))); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2DetailResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2DetailResultDTO.java index f77d349ccb..8f7ccafd45 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2DetailResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2DetailResultDTO.java @@ -21,6 +21,11 @@ public class ServiceRecordV2DetailResultDTO implements Serializable { private String serviceName; private String policyId; + /** + * 政策标题 + * 详情接口返回 + */ + private String policyTitle; /** * 服务组织类型 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java index 7738a3f38e..fe3200df2b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java @@ -31,4 +31,6 @@ public interface IcPolicyDao extends BaseDao { @Param("title")String title, @Param("content")String content, @Param("expiredFlag")String expiredFlag); + + String selectTitle(String policyId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordV2ServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordV2ServiceImpl.java index 8eca6b07e9..c261588910 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordV2ServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordV2ServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +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; @@ -16,10 +17,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.constant.SmsTemplateConstant; -import com.epmet.dao.IcServiceFeedbackV2Dao; -import com.epmet.dao.IcServiceRecordV2Dao; -import com.epmet.dao.IcServiceScopeDao; -import com.epmet.dao.IcServiceScopeV2Dao; +import com.epmet.dao.*; import com.epmet.dto.IcServiceFeedbackV2DTO; import com.epmet.dto.IcServiceRecordV2DTO; import com.epmet.dto.IcServiceScopeV2DTO; @@ -72,6 +70,9 @@ public class IcServiceRecordV2ServiceImpl extends BaseServiceImpl page(Map params) { @@ -271,6 +272,7 @@ public class IcServiceRecordV2ServiceImpl extends BaseServiceImpl order by ip.CREATED_TIME desc + + \ No newline at end of file diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcNatClearTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcNatClearTask.java new file mode 100644 index 0000000000..761c1a3d0a --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcNatClearTask.java @@ -0,0 +1,39 @@ +package com.epmet.task.ic; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.task.ITask; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName IcNatClearTask + * @Description 核酸检测定时清理 + * @Author wangxianzhang + * @Date 2022/11/29 13:41 + */ +@Slf4j +@Component("icNatClearTask") +public class IcNatClearTask implements ITask { + + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + + @Override + public void run(String jsonParams) { + Map paramMap; + if (StringUtils.isNotBlank(jsonParams)) { + paramMap = JSON.parseObject(jsonParams, new TypeReference>(){}); + } else { + paramMap = new HashMap<>(); + } + epmetUserOpenFeignClient.clearNatRecords(paramMap); + } +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java index dcb9febc59..351b92e707 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java @@ -50,10 +50,15 @@ public class IcPartyServiceCenterMatterDTO implements Serializable { private String matterName; /** - * 预约类型,每天:everyDay,工作日:workDay,周末:weekend + * 预约类型,每天:everyDay,工作日:workDay,周末:weekend 自定义:custom */ private String appointmentType; + /** + * 类型为自定义时选择的周一~周末的时间(1-7逗号分割) + */ + private String customDay; + /** * 可预约开始时间 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java index d3497bacd1..d7c397c374 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java @@ -40,6 +40,8 @@ public class MatterListDTO implements Serializable { private String matterImg; + private String customDay; + public MatterListDTO() { this.sort = NumConstant.ZERO; this.matterName = ""; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AllMattersResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AllMattersResultDTO.java index f229cc1d37..a1eea7289d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AllMattersResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AllMattersResultDTO.java @@ -52,6 +52,11 @@ public class AllMattersResultDTO implements Serializable { */ private String appointmentType; + /** + * 类型为自定义时选择的周一~周末的时间(1-7逗号分割) + */ + private String customDay; + public AllMattersResultDTO() { this.matterName = ""; this.allowTime = ""; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AppointmentRecordResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AppointmentRecordResultDTO.java index f7189534a4..373bff906c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AppointmentRecordResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AppointmentRecordResultDTO.java @@ -45,6 +45,11 @@ public class AppointmentRecordResultDTO implements Serializable { */ private String matterImg; + /** + * 类型为自定义时选择的周一~周末的时间(1-7逗号分割) + */ + private String customDay; + /** * 是否能取消预约 true:能,false:不能 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java index 50f6baed7e..67e25ee3f9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java @@ -16,5 +16,6 @@ public interface PartyServiceCenterConstant { String APPOINTMENT_TYPE_EVERY_DAY = "everyDay"; String APPOINTMENT_TYPE_WORK_DAY = "workDay"; String APPOINTMENT_TYPE_WEEKEND = "weekend"; + String APPOINTMENT_TYPE_CUSTOM = "custom"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java index 9248d827f2..07360e4bca 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java @@ -46,10 +46,15 @@ public class IcPartyServiceCenterMatterEntity extends BaseEpmetEntity { private String matterName; /** - * 预约类型,每天:everyDay,工作日:workDay,周末:weekend + * 预约类型,每天:everyDay,工作日:workDay,周末:weekend 自定义:custom */ private String appointmentType; + /** + * 类型为自定义时选择的周一~周末的时间(1-7逗号分割) + */ + private String customDay; + /** * 可预约开始时间 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java index 14dac11c00..d07ece36b9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java @@ -327,7 +327,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl dateList = getDateList(entity.getAppointmentType()); + List dateList = getDateList(entity.getAppointmentType(), entity.getCustomDay()); Boolean s = false; for (String d : dateList) { if (d.equals(formDTO.getAppointmentDate())){ @@ -388,7 +388,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl dateList = getDateList(entity.getAppointmentType()); + List dateList = getDateList(entity.getAppointmentType(), entity.getCustomDay()); Boolean s = false; for (String d : dateList) { if (d.equals(formDTO.getAppointmentDate())){ @@ -499,7 +499,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl l = new LambdaQueryWrapper<>(); l.eq(IcMatterAppointmentRecordEntity::getMatterId,formDTO.getMatterId()) .eq(IcMatterAppointmentRecordEntity::getAppointmentDate,formDTO.getDate()) @@ -564,14 +564,16 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl getDateList(String type) { + public List getDateList(String type, String customDay) { List result = new ArrayList<>(); if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_EVERY_DAY)){ result = DateUtils.getEveryDayList(new Date(),NumConstant.SEVEN); }else if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_WORK_DAY)){ result = DateUtils.getWorkDayList(new Date(),NumConstant.SEVEN); - }else { + }else if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_WEEKEND)){ result = DateUtils.getWeekendDayList(new Date(),NumConstant.SEVEN); + }else if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_CUSTOM)){ + result = DateUtils.getCustomDay(new Date(),NumConstant.SEVEN, customDay); } return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql new file mode 100644 index 0000000000..778637134c --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql @@ -0,0 +1,7 @@ + +ALTER TABLE `ic_party_service_center_matter` +MODIFY COLUMN `APPOINTMENT_TYPE` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '预约类型,每天:everyDay,工作日:workDay,周末:weekend , 自定义:custom' AFTER `MATTER_NAME`, +ADD COLUMN `CUSTOM_DAY` varchar(32) NULL COMMENT '类型为自定义时选择的周一~周末的时间(1-7逗号分割)周日:1;周一2;周二3;周三4;周四5;周五6;周六7' AFTER `APPOINTMENT_TYPE`; + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcMatterAppointmentRecordDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcMatterAppointmentRecordDao.xml index 8f1677d3ed..240d8e0b97 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcMatterAppointmentRecordDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcMatterAppointmentRecordDao.xml @@ -63,7 +63,8 @@ ar.MATTER_ID as matterId, c.CENTER_NAME, c.ADDRESS, - cm.MATTER_IMG + cm.MATTER_IMG, + cm.CUSTOM_DAY as customDay FROM ic_matter_appointment_record ar LEFT JOIN ic_party_service_center_matter cm ON (cm.ID = ar.MATTER_ID AND cm.DEL_FLAG = 0) LEFT JOIN ic_party_service_center c ON (c.ID = cm.PARTY_SERVICE_CENTER_ID AND c.DEL_FLAG = 0) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml index 51fa3a720c..daad3eb3e3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml @@ -27,8 +27,10 @@ case when cm.APPOINTMENT_TYPE = 'everyDay' THEN CONCAT('每天',' ', cm.START_TIME,'-',cm.END_TIME) when cm.APPOINTMENT_TYPE = 'workDay' THEN CONCAT('工作日',' ', cm.START_TIME,'-',cm.END_TIME) when cm.APPOINTMENT_TYPE = 'weekend' THEN CONCAT('周末',' ', cm.START_TIME,'-',cm.END_TIME) + when cm.APPOINTMENT_TYPE = 'custom' THEN CONCAT('自定义',' ', cm.START_TIME,'-',cm.END_TIME) ELSE CONCAT(cm.START_TIME,'-',cm.END_TIME) END AS allowTime, - IFNULL(cm.MATTER_IMG,'') AS matterImg + IFNULL(cm.MATTER_IMG,'') AS matterImg, + cm.custom_day AS customDay from ic_party_service_center_matter cm where del_flag = 0 and PARTY_SERVICE_CENTER_ID = #{partyServiceCenterId} @@ -60,12 +62,14 @@ case when cm.APPOINTMENT_TYPE = 'everyDay' THEN CONCAT('每天',' ', cm.START_TIME,'-',cm.END_TIME) when cm.APPOINTMENT_TYPE = 'workDay' THEN CONCAT('工作日',' ', cm.START_TIME,'-',cm.END_TIME) when cm.APPOINTMENT_TYPE = 'weekend' THEN CONCAT('周末',' ', cm.START_TIME,'-',cm.END_TIME) + when cm.APPOINTMENT_TYPE = 'custom' THEN CONCAT('自定义',' ', cm.START_TIME,'-',cm.END_TIME) ELSE CONCAT(cm.START_TIME,'-',cm.END_TIME) END AS allowTime, IFNULL(cm.MATTER_IMG,'') AS matterImg, c.ADDRESS, c.WORK_PHONE, c.CENTER_NAME, - cm.APPOINTMENT_TYPE as appointmentType + cm.APPOINTMENT_TYPE as appointmentType, + cm.CUSTOM_DAY as customDay FROM ic_party_service_center c INNER JOIN ic_party_service_center_matter cm ON (cm.PARTY_SERVICE_CENTER_ID = c.ID AND cm.DEL_FLAG = 0) AND c.DEL_FLAG = 0 diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java index c471734d6b..8c8d695d51 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java @@ -1846,6 +1846,7 @@ public class ArticleServiceImpl extends BaseServiceImpl individualCategoryAllList(TokenDto tokenDto) { IcResiCategoryStatsConfigFormDTO formDTO = new IcResiCategoryStatsConfigFormDTO(); + //只查状态展示的 + formDTO.setStatus("show"); Result> listResult = operCustomizeOpenFeignClient.resiCategoryStatsListShowd(formDTO); if (!listResult.success()){ throw new EpmetException("查询客户下的人员类别失败..."); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcIndividualCategoryManageDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcIndividualCategoryManageDao.xml index 47df855e0a..272b3097cb 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcIndividualCategoryManageDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcIndividualCategoryManageDao.xml @@ -22,6 +22,7 @@ INNER JOIN ic_resi_category_warn_config wc ON (sc.COLUMN_NAME = wc.COLUMN_NAME AND wc.DEL_FLAG = '0' AND wc.CUSTOMER_ID = sc.CUSTOMER_ID) WHERE cm.DEL_FLAG = 0 AND cm.USER_ID = #{userId} + AND sc.STATUS = 'show' ORDER BY cm.sort \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java index d4d3cbe812..bf93b3b225 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java @@ -21,6 +21,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -45,12 +46,12 @@ public class IcResiUserDTO implements Serializable { private String customerId; /** - * + * */ private String agencyId; /** - * + * */ private String pids; @@ -505,6 +506,12 @@ public class IcResiUserDTO implements Serializable { */ private Date updatedTime; + // 租房审核数据同步使用 + /** + * 疫苗接种记录 + */ + private List vaccineLog; + /** * 预留字段1 */ @@ -555,4 +562,4 @@ public class IcResiUserDTO implements Serializable { */ private String field10; -} \ No newline at end of file +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/VaccineLogDetailDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/VaccineLogDetailDTO.java new file mode 100644 index 0000000000..90757a0d66 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/VaccineLogDetailDTO.java @@ -0,0 +1,46 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 2021-10-26 + */ +@Data +public class VaccineLogDetailDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 接种时间 + */ + private String vacTime; + /** + * 接种地点 + */ + private String vacSite; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index f8f29142a7..f8edd1a77e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -959,4 +959,14 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/icresiuser/rhzkList") Result> renHuCondition(@RequestBody RHZKStatisticsFormDTO formDTO); + /** + * 清楚核酸检测记录(只保留近n天) + * @author wxz + * @date 2022/11/28 下午5:36 + * * @param map 接受json反序列化,简单传递参数,避免定义过多dto + * k:retentionDays v:保留最近多少天(Integer) + * * @return Result + */ + @PostMapping("/epmetuser/icNat/clearNatRecords") + Result clearNatRecords(@RequestBody Map map); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index e9103269aa..4d3d56b76c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -751,4 +751,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> renHuCondition(RHZKStatisticsFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "renHuCondition", formDTO); } + + @Override + public Result clearNatRecords(Map map) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "clearNatRecords", map); + } } 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 index 2ea3ea881b..512a43f7e9 100644 --- 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 @@ -45,6 +45,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.nio.file.Path; import java.util.List; +import java.util.Map; import java.util.UUID; @@ -329,4 +330,25 @@ public class IcNatController implements ResultDataResolver { return new Result(); } + /** + * 清楚核酸检测记录(只保留近n天) + * @author wxz + * @date 2022/11/28 下午5:36 + * * @param map 接受json反序列化,简单传递参数,避免定义过多dto + * k:retentionDays v:保留最近多少天(Integer) + * * @return Result + */ + @PostMapping("clearNatRecords") + public Result clearNatRecords(@RequestBody Map map) { + // 保留天数 + Integer retentionDays = (Integer) map.get("retentionDays"); + + // 如果是非正数直接不做任何操作 + if (retentionDays != null && retentionDays > 0) { + icNucleinService.clearNatRecords(retentionDays); + } + + return new Result(); + } + } 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 index 7b8b0a0ab7..ba20fdcc8b 100644 --- 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 @@ -12,6 +12,7 @@ import com.epmet.entity.IcResiUserEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -86,4 +87,6 @@ public interface IcNatDao extends BaseDao { * @Date 2022/10/25 11:13 */ void updateRelationOther(); + + void deleteNatRecordsBeforeRetentionDays(Date criticleTime); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java index 0b37f87121..aa9395f9cc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java @@ -5,6 +5,8 @@ import com.epmet.entity.IcNatRelationEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; + /** * 核酸记录关系表 * @@ -19,4 +21,6 @@ public interface IcNatRelationDao extends BaseDao { * @Description 关系数据删除--物理删除 **/ int delRelation(@Param("icNatId") String icNatId, @Param("agencyId") String agencyId); + + void deleteBeforeRetentionDays(Date criticleTime); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/AbstractDataSyncJobProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/AbstractDataSyncJobProcessor.java index 950c397c2d..2f3062448b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/AbstractDataSyncJobProcessor.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/AbstractDataSyncJobProcessor.java @@ -80,6 +80,10 @@ public abstract class AbstractDataSyncJobProcessor { RLock lock = null; try { lock = distributedLock.getLock(getDistributeLockKey(), getDistributeLockLeaseTime(), getDistributeLockWaitTime(), TimeUnit.SECONDS); + if (lock == null) { + log.warn("【异步数据更新】{}获取锁为空", getJobType()); + return; + } // 查询可执行的任务列表,并且异步执行 List icSyncJobToExec = icSyncJobDao.selectJobListByStatus("waiting", getJobType(), null, leftCount); if (!CollectionUtils.isEmpty(icSyncJobToExec)) { @@ -89,9 +93,7 @@ public abstract class AbstractDataSyncJobProcessor { } catch (Exception e) { log.error("【异步数据更新】出错:{}", ExceptionUtils.getErrorStackTrace(e)); } finally { - if (lock != null) { - lock.unlock(); - } + distributedLock.unLock(lock); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiNatSyncProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiNatSyncProcessor.java index f4baf4914e..e7069da1eb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiNatSyncProcessor.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiNatSyncProcessor.java @@ -51,11 +51,11 @@ public class YanTaiNatSyncProcessor extends AbstractDataSyncJobProcessor { @Override protected long getDistributeLockLeaseTime() { - return 60; + return 5; } @Override protected long getDistributeLockWaitTime() { - return 60; + return 6; } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiResiComparisonSyncProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiResiComparisonSyncProcessor.java index f164093290..abdc0d3f35 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiResiComparisonSyncProcessor.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiResiComparisonSyncProcessor.java @@ -50,11 +50,11 @@ public class YanTaiResiComparisonSyncProcessor extends AbstractDataSyncJobProces @Override protected long getDistributeLockLeaseTime() { - return 60; + return 5; } @Override protected long getDistributeLockWaitTime() { - return 60; + return 6; } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiTripReportSyncProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiTripReportSyncProcessor.java index 91d253ed68..6b1d4a028d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiTripReportSyncProcessor.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiTripReportSyncProcessor.java @@ -50,11 +50,11 @@ public class YanTaiTripReportSyncProcessor extends AbstractDataSyncJobProcessor @Override protected long getDistributeLockLeaseTime() { - return 60; + return 5; } @Override protected long getDistributeLockWaitTime() { - return 60; + return 6; } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiVaccineSyncProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiVaccineSyncProcessor.java index aa9b561949..77fadd9149 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiVaccineSyncProcessor.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiVaccineSyncProcessor.java @@ -49,11 +49,11 @@ public class YanTaiVaccineSyncProcessor extends AbstractDataSyncJobProcessor { @Override protected long getDistributeLockLeaseTime() { - return 60; + return 5; } @Override protected long getDistributeLockWaitTime() { - return 60; + return 6; } } 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 index b9f89d921e..72c0ab6a82 100644 --- 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 @@ -97,4 +97,12 @@ public interface IcNatService extends BaseService { void initNatLocal(); + /** + * 清理nat记录,目前不区分客户,后期需要区分可以再加 + * @author wxz + * @date 2022/11/28 下午5:39 + * * @param retentionDays 保留的天数(最近) + * + */ + void clearNatRecords(Integer retentionDays); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java index 934132b517..ae9abc8daf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java @@ -1126,26 +1126,26 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl resiInfos.stream().filter(r ->r.getIdCard().equals(e.getIdCard())).forEach(r -> { - e.setGridId(r.getGridId()); - e.setCustomerId(r.getCustomerId()); - e.setAgencyId(r.getAgencyId()); - e.setPids(r.getPids()); - e.setName(r.getName()); - e.setMobile(r.getMobile()); - e.setUserId(r.getUserId()); - e.setUserType("ytPull"); - })); - icTripReportRecordService.insertBatch(entities); - } - if (CollectionUtils.isNotEmpty(needUpdate)){ - // 因为更新字段较多,所以分批操作 - List> needs = ListUtils.partition(needUpdate, NumConstant.TWENTY); - needs.forEach(n -> { - updateTripReportList(n); - }); - } + } + if (CollectionUtils.isNotEmpty(entities)){ + entities.forEach(e -> resiInfos.stream().filter(r ->r.getIdCard().equals(e.getIdCard())).forEach(r -> { + e.setGridId(r.getGridId()); + e.setCustomerId(r.getCustomerId()); + e.setAgencyId(r.getAgencyId()); + e.setPids(r.getPids()); + e.setName(r.getName()); + e.setMobile(r.getMobile()); + e.setUserId(r.getUserId()); + e.setUserType("ytPull"); + })); + icTripReportRecordService.insertBatch(entities); + } + if (CollectionUtils.isNotEmpty(needUpdate)){ + // 因为更新字段较多,所以分批操作 + List> needs = ListUtils.partition(needUpdate, NumConstant.TWENTY); + needs.forEach(n -> { + updateTripReportList(n); + }); } }); }else { 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 index 78c935c4ca..cbcbaf427f 100644 --- 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 @@ -733,4 +733,15 @@ public class IcNatServiceImpl extends BaseServiceImpl imp icNatRelationDao.insert(relation); } + @Override + public void clearNatRecords(Integer retentionDays) { + Date criticleTime = DateUtils.addDateDays(new Date(), 0 - retentionDays); + + // 1。删除nat核酸检测信息。NatTime建索引 + baseDao.deleteNatRecordsBeforeRetentionDays(criticleTime); + + // 2.删除关系信息 + // 没有记录业务时间,只能暂且按照创建时间来了,大不了多些脏数据。createdTime建索引! + icNatRelationDao.deleteBeforeRetentionDays(criticleTime); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 2486b306f0..05e7b81853 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -373,13 +373,25 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res c.setImportTag(importTag); newlyOrChangedResi.set(c); - List resiCategoryItems = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listResiCategoryItems(customerId), + // 查询居民类别的字段->中文的map + //List resiCategoryItems = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listResiCategoryItems(customerId), + // ServiceConstant.OPER_CUSTOMIZE_SERVER, + // EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + // String.format("【居民信息导入】查询居民类别items失败,customerId:%s", customerId), + // "居民信息导入失败"); + // + //Map columnNameAndLabel = resiCategoryItems.stream().collect(Collectors.toMap((o) -> o.getColumnName(), (o) -> o.getLabel())); + + IcResiCategoryStatsConfigDTO sfdto = new IcResiCategoryStatsConfigDTO(); + sfdto.setCustomerId(customerId); + + List categoryListResult = getResultDataOrThrowsException(operCustomizeOpenFeignClient.getCategoryList(sfdto), ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), - String.format("【居民信息导入】查询居民类别items失败,customerId:%s", customerId), + String.format("【居民信息导入】初始化居民类别items失败,customerId:%s", customerId), "居民信息导入失败"); - Map columnNameAndLabel = resiCategoryItems.stream().collect(Collectors.toMap((o) -> o.getColumnName(), (o) -> o.getLabel())); + Map columnNameAndLabel = categoryListResult.stream().collect(Collectors.toMap((o) -> o.getColumnName(), (o) -> o.getLabel())); resiCategoryColumnNameAndLabel.set(columnNameAndLabel); } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml index 7b0e96f023..ea80141610 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml @@ -31,26 +31,26 @@ 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 index 4a5872efd2..049a806b55 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml @@ -49,14 +49,19 @@ b.nat_address natAddress, b.test_tube_code testTubeCode FROM - ic_nat_relation a + ( + select IC_NAT_ID, AGENCY_ID, USER_TYPE, IS_LOCAL_RESI_USER + from ic_nat_relation + WHERE AGENCY_ID = #{agencyId} + and DEL_FLAG = '0' + and customer_id = #{customerId} + + AND is_local_resi_user = #{isResiUser} + + ) a INNER JOIN ic_nat b ON a.IC_NAT_ID = b.ID WHERE - a.DEL_FLAG = '0' - AND b.DEL_FLAG = '0' - AND a.customer_id = #{customerId} - - AND a.AGENCY_ID = #{agencyId} + b.DEL_FLAG = '0' AND b.name like concat('%', #{name}, '%') @@ -78,9 +83,6 @@ AND b.sample_time #{sampleEndTime} - - AND a.is_local_resi_user = #{isResiUser} - ORDER BY b.nat_time DESC, b.id ASC @@ -176,17 +178,17 @@ - +