diff --git a/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.23__party_publish_Time.sql b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.23__party_publish_Time.sql new file mode 100644 index 0000000000..a2ad1f1ef8 --- /dev/null +++ b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.23__party_publish_Time.sql @@ -0,0 +1,8 @@ +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1560458000894500866', 'icpartyact_auto_publish_time', '党组织活动自动发布时间', '党组织活动自动发布时间', 35, 0, 0, '1', '2022-08-19 10:45:54', '1', '2022-08-19 10:46:11'); + + +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1560458233091170305', 1560458000894500866, '活动开始前1天', '1', '0', '活动开始前1天', 1, 0, 0, '1', '2022-08-19 10:46:49', '1', '2022-08-19 10:46:49'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1560458276439302146', 1560458000894500866, '活动开始前3天', '3', '0', '活动开始前3天', 2, 0, 0, '1', '2022-08-19 10:47:00', '1', '2022-08-19 10:47:00'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1560458332076744705', 1560458000894500866, '活动开始前5天', '5', '0', '活动开始前5天', 3, 0, 0, '1', '2022-08-19 10:47:13', '1', '2022-08-19 10:47:13'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1560458388007788545', 1560458000894500866, '活动开始前7天', '7', '0', '活动开始前7天', 4, 0, 0, '1', '2022-08-19 10:47:26', '1', '2022-08-19 10:47:26'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1561627442626142210', 1560458000894500866, '现在发布', '0', '0', '', 5, 0, 0, '1', '2022-08-22 16:12:51', '1', '2022-08-22 16:12:51'); diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java index 2aadd34cb4..6bc618a01b 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java @@ -98,4 +98,14 @@ public interface ConsomerGroupConstants { * 创建党员居民信息消费者组,将user库的党员信息同步到partymember库的党员表。 */ String CREATE_RESI_PARTYMEMBER_SYNC_GROUP = "create_resi_sync_group"; + + /** + * 党建小助手监听器分组 + */ + String PARTY_MEETING_MESSAGE = "party_meeting_message"; + + /** + * 党建积分操作消费组 + */ + String PARTY_BUILDING_GROUP = "party_building_group"; } diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java index cea27769bc..23bfd628a4 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java @@ -84,4 +84,11 @@ public interface TopicConstants { * 居民的党员信息 */ String PARTYMEMBER_RESI = "partymember_resi"; + + /** + * 消息-党建小助手 + */ + String IC_MESSAGE = "ic_message"; + + String PARTY_BUILDING = "party_building"; } diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/PartyMeetingMessageMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/PartyMeetingMessageMQMsg.java new file mode 100644 index 0000000000..af8792ea1c --- /dev/null +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/PartyMeetingMessageMQMsg.java @@ -0,0 +1,23 @@ +package com.epmet.commons.rocketmq.messages; + +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 党建小助手发布活动、活动到期提醒、活动发布提醒推送MQ + * @author sun + */ +@Data +public class PartyMeetingMessageMQMsg extends MqBaseFormDTO implements Serializable { + + //客户Id + private String customerId; + //活动/日程Id + private String icPartyActId; + //动作类型 发布活动:publish 提前提醒:remind 日程通知:notify + private String type; + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java index 3cccd74d7a..09e5b55db8 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java @@ -19,6 +19,12 @@ public enum EventEnum { TOPIC_SHIFTED_TO_PROJECT("topic_to_project","resi_group","话题被转为项目"), LEADER_RESOLVE_TOPIC("leader_resolve_topic","resi_group","组长解决组内话题"), FINISH_USER_DEMAND("finish_user_demand","community_service","服务完成"), + ZBWYH("参加支部委员会","part_member", "支部委员会活动签到"), + ZBDYDH("参加支部党员大会","part_member", "支部党员大会活动签到"), + DXZH("参加党小组会","part_member", "党小组会活动签到"), + DANGKE ("参加党课","part_member", "党课活动签到"), + ZTDR("参加主题党日","part_member", "主题党日活动签到"), + WMFWHD("参加为民服务活动","part_member", "为民服务活动活动签到"), ; private String eventClass; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 163dee5e2f..405d84d4ae 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -85,6 +85,7 @@ public enum EpmetErrorCode { BUILDING_NAME_EXITED(8215,"楼栋名称已存在"), DOOR_NAME_EXITED(8216,"门牌号已存在"), NEIGHBOOR_NAME_EXITED(8217,"小区名称已存在"), + BUILDING_NAME_EXITED_IN_GRID(8218,"小区下该楼栋已存在于其他网格"), REQUIRE_PERMISSION(8301, "您没有足够的操作权限"), THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"), 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 d5e6be9ab4..2c0fc380e6 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 @@ -55,6 +55,7 @@ public class DateUtils { public final static String DATE_TIME_PATTERN_END_WITH_MINUTE = "yyyy-MM-dd HH:mm"; public static final String DATE_PATTERN_YYYYMMDD = "yyyyMMdd"; + public static final String DATE_PATTERN_YYYYMMDDHHMM = "yyyyMMddHHmm"; public static final String DATE_NAME_PATTERN = "yyyy年MM月dd日"; public static final String MONTH_NAME_PATTERN = "yyyy年MM月"; public static final String DATE_PATTERN_YYYY = "yyyy"; @@ -1070,4 +1071,10 @@ public class DateUtils { return cal.getTime(); } + public static Date calDateBaseDay(Date date, int day) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DAY_OF_MONTH, day); + return calendar.getTime(); + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java index 96d7d02a62..ff1f0b0549 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java @@ -1,10 +1,15 @@ package com.epmet.commons.tools.utils; import com.epmet.commons.tools.enums.IdCardTypeEnum; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.DateTimeException; +import java.time.LocalDate; +import java.time.Period; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -50,6 +55,7 @@ public class IdCardRegexUtils { private String birthdayMonth; private String birthdayDay; private String sex; + private Integer age; } /** @@ -116,7 +122,17 @@ public class IdCardRegexUtils { String month = matcher.group("month"); String day = matcher.group("day"); String sex = matcher.group("sex"); - return new ParsedContent(year, month, day, sex); + + // ------- 年龄Start---------- + Integer age; + try { + LocalDate birthday = LocalDate.of(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day)); + age = Period.between(birthday, LocalDate.now()).getYears(); + } catch (DateTimeException e) { + throw new EpmetException("身份证号解析年龄失败:" + ExceptionUtils.getErrorStackTrace(e)); + } + // ------- 年龄End---------- + return new ParsedContent(year, month, day, sex, age); } // 其他类型暂时不可解析 @@ -130,4 +146,10 @@ public class IdCardRegexUtils { public IdCardTypeEnum getTypeEnum() { return idCardType; } + + public static void main(String[] args) { + IdCardRegexUtils parse = IdCardRegexUtils.parse("370282198801303017"); + ParsedContent parsedResult = parse.getParsedResult(); + System.out.println(parsedResult); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java index 13a9afdfdd..7aa4089643 100755 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.poi.excel.converter.EasyExcelDateConverter; import com.epmet.dto.result.WorkdiaryServiceRecordDTO; +import com.epmet.excel.converter.WorkDiaryServiceEasyExcelDateConverter; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.NoArgsConstructor; @@ -63,10 +64,8 @@ public class WorkdiaryServiceRecordExcel { @NotNull(message = "服务时间必填") @ColumnWidth(20) - @ExcelProperty(value = "服务时间") - //@DateTimeFormat("yyyy-MM-dd") - //@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private String serviceTime; + @ExcelProperty(value = "服务时间", converter = WorkDiaryServiceEasyExcelDateConverter.class) + private Date serviceTime; @ColumnWidth(20) @ExcelProperty(value = "备注") @@ -74,6 +73,6 @@ public class WorkdiaryServiceRecordExcel { public WorkdiaryServiceRecordExcel(WorkdiaryServiceRecordDTO dto) { BeanUtil.copyProperties(dto, this); - this.serviceTime = DateUtils.format(dto.getServiceTime()); + //this.serviceTime = DateUtils.format(dto.getServiceTime()); } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/converter/WorkDiaryServiceEasyExcelDateConverter.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/converter/WorkDiaryServiceEasyExcelDateConverter.java new file mode 100644 index 0000000000..3c5e99b00c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/converter/WorkDiaryServiceEasyExcelDateConverter.java @@ -0,0 +1,59 @@ +package com.epmet.excel.converter; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; +import java.util.Date; + +/** + * 框架:easyexcel + * 目的:工作日志(服务),对服务时间日期类型的转换 + */ +public class WorkDiaryServiceEasyExcelDateConverter implements Converter { + + private static final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd"; + + /** + * excel内容转化为java时间 + * @param cellData + * @param contentProperty + * @param globalConfiguration + * @return + * @throws Exception + */ + public Date convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + if (cellData.getType() == CellDataTypeEnum.NUMBER) { + // 数字类型,是1900-01-03到excel中数据日期的天数差值 + LocalDateTime localDate = LocalDateTime.of(1900, 1, 1, 0, 0, 0) + // 不知为何,这个日期差值,多了2天,需要减去 + .minus(2L, ChronoUnit.DAYS) + .plus(cellData.getNumberValue().longValue(), ChronoUnit.DAYS); + return Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant()); + } else { + // 字符串,正常格式化 + Date dateData = new SimpleDateFormat(PATTERN_YYYY_MM_DD).parse(cellData.getStringValue()); + return dateData; + } + } + + /** + * java日期转为excel内容 + * @param value + * @param contentProperty + * @param globalConfiguration + * @return + * @throws Exception + */ + public WriteCellData convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + String dataStr = new SimpleDateFormat(PATTERN_YYYY_MM_DD).format(value); + return new WriteCellData(dataStr); + } +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 9ecec05fa1..86ad54bec4 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -1394,8 +1394,8 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl> icUserInfoRes = epmetUserOpenFeignClient.getListIcResiUserDTO(new ArrayList<>(icUserIdList)); if (!icUserInfoRes.success() || CollectionUtils.isEmpty(icUserInfoRes.getData())) { - throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询居民信息志愿者信息异常"); + // throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询居民信息志愿者信息异常"); + log.warn("查询居民信息志愿者信息异常:icUserIdList:"+JSON.toJSONString(icUserIdList)); + return icUserInfoMap; } icUserInfoMap = icUserInfoRes.getData().stream().collect(Collectors.toMap(IcResiUserDTO::getId, o -> o, (o1, o2) -> o1)); } @@ -1522,8 +1524,8 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl icUserInfoMap = getIcVolunteerMap(new HashSet<>(Arrays.asList(resDto.getServerId()))); resDto.setServiceUnitName(StrConstant.EPMETY_STR); - resDto.setServiceUserName(icUserInfoMap.get(resDto.getServerId()).getName()); - resDto.setServiceUserMobile(icUserInfoMap.get(resDto.getServerId()).getMobile()); + resDto.setServiceUserName(MapUtils.isNotEmpty(icUserInfoMap) && icUserInfoMap.containsKey(resDto.getServerId()) ? icUserInfoMap.get(resDto.getServerId()).getName() : StrConstant.EPMETY_STR); + resDto.setServiceUserMobile(MapUtils.isNotEmpty(icUserInfoMap) && icUserInfoMap.containsKey(resDto.getServerId()) ? icUserInfoMap.get(resDto.getServerId()).getMobile() : StrConstant.EPMETY_STR); break; default: log.warn("serviceType 错误"); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java index 7534b9a918..6128631c8a 100755 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java @@ -480,26 +480,26 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImplepmet-message-client 2.0.0 - - com.epmet - pli-power-base-client - 2.0.0 - org.springframework.boot spring-boot-starter-web diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java deleted file mode 100644 index 4fb990d033..0000000000 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.epmet.service; - -import com.epmet.commons.tools.utils.Result; -import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; - -public interface PliPowerService { - - /** - * 访客登出 - * - * @param formDTO - * @return com.epmet.commons.tools.utils.Result - * @author zhy - * @date 2022/5/30 10:25 - */ - Result visitorLogout(VisitorLogoutFormDTO formDTO); -} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java deleted file mode 100644 index ed54b7e6d9..0000000000 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.epmet.service.impl; - -import com.epmet.commons.tools.utils.Result; -import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; -import com.epmet.plugin.power.feign.PliPowerFeignClient; -import com.epmet.service.PliPowerService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - - -/** - * @Description - * @ClassName StatsUserServiceImpl - * @Auth wangc - * @Date 2020-06-29 09:41 - */ -@Service -public class PliPowerServiceImpl implements PliPowerService { - - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Autowired - private PliPowerFeignClient pliPowerFeignClient; - - @Override - public Result visitorLogout(VisitorLogoutFormDTO formDTO) { - return pliPowerFeignClient.visitorLogout(formDTO); - } -} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/AutoPublishIcPartyActTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/AutoPublishIcPartyActTask.java new file mode 100644 index 0000000000..d1a9c7a250 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/AutoPublishIcPartyActTask.java @@ -0,0 +1,36 @@ +package com.epmet.task; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description + * @Author yzm + * @Date 2022/8/22 15:13 + */ +@Slf4j +@Component("autoPublishIcPartyActTask") +public class AutoPublishIcPartyActTask implements ITask { + @Autowired + private ResiPartyMemberOpenFeignClient resiPartyMemberOpenFeignClient; + /** + * 活动时间2022-08-15 10:30 选择的是提前3天自动发布 + * 本任务是自动发布活动 + * //2022-8-9号 8:00 收到一个:您有一个活动3天后即将自动发布 + * + * @param params 参数,多参数使用JSON数据 + */ + @Override + public void run(String params) { + Result result=resiPartyMemberOpenFeignClient.autoPublishIcPartyAct(); + if(result.success()){ + log.info("autoPublishIcPartyActTask执行成功"); + }else{ + log.info("autoPublishIcPartyActTask执行失败"); + } + } +} + diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/EnterprisePatrolRemindTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/EnterprisePatrolRemindTask.java new file mode 100644 index 0000000000..5cfaddd714 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/EnterprisePatrolRemindTask.java @@ -0,0 +1,31 @@ +package com.epmet.task; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.GovOrgOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/9/6 17:35 + */ +@Component("enterprisePatrolRemindTask") +@Slf4j +public class EnterprisePatrolRemindTask implements ITask { + @Resource + private GovOrgOpenFeignClient govOrgOpenFeignClient; + + @Override + public void run(String params) { + log.info("EnterprisePatrolRemindTask定时任务正在执行,参数为:{}", params); + Result result = govOrgOpenFeignClient.sendEnterprisePatrolRemindMessage(); + if (result.success()) { + log.info("EnterprisePatrolRemindTask定时任务执行成功"); + } else { + log.error("EnterprisePatrolRemindTask定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/NoticePartyActAutoPublishTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/NoticePartyActAutoPublishTask.java new file mode 100644 index 0000000000..c0bbf5fcb8 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/NoticePartyActAutoPublishTask.java @@ -0,0 +1,37 @@ +package com.epmet.task; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description + * @Author yzm + * @Date 2022/8/22 15:07 + */ +@Slf4j +@Component("noticePartyActAutoPublishTask") +public class NoticePartyActAutoPublishTask implements ITask { + @Autowired + private ResiPartyMemberOpenFeignClient resiPartyMemberOpenFeignClient; + + /** + * 活动时间2022-08-15 10:30 选择的是提前3天自动发布 + * //2022-8-12 10:30自动发布,收到消息:您有一个活动已经发布 + * 本任务是通知:2022-8-9号 8:00 收到一个:您有一个活动3天后即将自动发布 + * + * @param params 参数,多参数使用JSON数据 + */ + @Override + public void run(String params) { + Result result=resiPartyMemberOpenFeignClient.noticePartyActAutoPublishTask(); + if(result.success()){ + log.info("noticePartyActAutoPublishTask执行成功"); + }else{ + log.info("noticePartyActAutoPublishTask执行失败"); + } + } +} + diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java deleted file mode 100644 index 41ffa19ecc..0000000000 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.epmet.task; - -import com.alibaba.fastjson.JSON; -import com.epmet.commons.tools.utils.Result; -import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; -import com.epmet.service.PliPowerService; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * 访客登出 - * - * @author zhy - * @date 2022/5/30 10:23 - */ -@Component("pliVisitorLogoutTask") -public class PliVisitorLogoutTask implements ITask { - - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Autowired - private PliPowerService pliPowerService; - - @Override - public void run(String params) { - logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params); - VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO(); - if (StringUtils.isNotBlank(params)) { - formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class); - } - Result result = pliPowerService.visitorLogout(formDTO); - if (result.success()) { - logger.info("VisitorLogoutTask定时任务执行成功"); - } else { - logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg()); - } - } -} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcUpdateYlfnTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcUpdateYlfnTask.java new file mode 100644 index 0000000000..b7a1ffb6ea --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcUpdateYlfnTask.java @@ -0,0 +1,35 @@ +package com.epmet.task.ic; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.task.ITask; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * desc:定时弥补数据 保证数据的一致性 + */ +@Slf4j +@Component("icUpdateYlfnTask") +public class IcUpdateYlfnTask implements ITask { + + @Resource + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + + /** + * 执行定时任务接口 + * + * @param params 参数,多参数使用JSON数据 + */ + @Override + public void run(String params) { + Result result = epmetUserOpenFeignClient.updateYlfn(); + if (result.success()) { + log.info("icUpdateYlfnTask定时任务正在执行定时任务执行成功"); + } else { + log.warn("icUpdateYlfnTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java index 3f1ec288ac..00ad39d895 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java @@ -57,4 +57,11 @@ public interface SmsTemplateConstant { * ${name}给您指派了一个新的需求,请服务完成后尽快反馈,谢谢合作。 */ String DEMAND_SERVICE_TEM="SMS_247645013"; + + /** + * 模板名称: 数字社区-企事业单位复巡查消息提醒模板 + * 模板CODE: SMS_251056077 + * 模板内容: ${name}最近一次巡查结果不合格,请在${date}再次巡查。 + */ + String ENTERPRISE_PATROL_TEM="SMS_251056077"; } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java index b60b3b8fe1..9920eb019a 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java @@ -170,4 +170,16 @@ public interface SystemMessageType { */ String PARTYMEMBER_RESI_IMPORT = "partymember_resi_import"; + /** + * 党建小助手消息 + */ + String PARTY_MEETING_MESSAGE = "party_meeting_message"; + + String ZBWYH = "参加支部委员会"; + String ZBDYDH = "参加支部党员大会"; + String DXZH = "参加党小组会"; + String DANGKE = "参加党课"; + String ZTDR = "参加主题党日"; + String WMFWHD = "参加为民服务活动"; + } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/IcMessageDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/IcMessageDTO.java new file mode 100644 index 0000000000..1c7e9e9785 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/IcMessageDTO.java @@ -0,0 +1,104 @@ +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-08-19 + */ +@Data +public class IcMessageDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * app=resi时,此列为gridId,其他情况暂定 * + */ + private String gridId; + + /** + * 被通知的用户id + */ + private String userId; + + /** + * 消息通知对象:居民端用户resi、政府端工作人员gov、运营端工作人员oper + */ + private String app; + + /** + * 消息分类 党建活动:party_act 党建日程:party_schedule + */ + private String messageType; + + /** + * 消息类型对应的业务Id + */ + private String targetId; + + /** + * 消息标题 + */ + private String title; + + /** + * 消息通知内容 + */ + private String messageContent; + + /** + * read已读、unread未读 + */ + private String readFlag; + + /** + * 删除标记 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人(发布消息的人) + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 调用者 + */ + private String referer; + +} \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/IcMessageFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/IcMessageFormDTO.java new file mode 100644 index 0000000000..679621c430 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/IcMessageFormDTO.java @@ -0,0 +1,66 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class IcMessageFormDTO implements Serializable { + private static final long serialVersionUID = 2697079163476964749L; + + /** + * 客户id + */ + @NotBlank(message = "客户id不能为空") + private String customerId; + + /** + * app=resi时,此列为gridId,其他情况暂定 * + */ + private String gridId; + + /** + * 对应用户id + */ + @NotBlank(message = "通知用户id为空") + private String userId; + + /** + * 消息通知对象:居民端用户resi、政府端工作人员gov、运营端工作人员oper + */ + @NotBlank(message = "消息通知对象不能为空") + private String app; + + /** + * 消息标题 + */ + @NotBlank(message = "消息标题不能为空") + private String title; + + /** + * 消息通知内容 + */ + @NotBlank(message = "通知内容不能为空") + private String messageContent; + + /** + * read已读、unread未读 + */ + @NotBlank(message = "readFlag不能为空") + private String readFlag; + + /** + * 调用者 【分内部调用和外部调用,内部调用值为空,外部默认为:外挂-站内信】 + */ + private String referer; + + /** + * 消息分类:info-上传下达消息 详见UserMessageTypeConstant + */ + private String messageType; + /** + * 消息对应的业务id,比如message_type=info时,此列存储的是消息id,可跳转到消息详情 + */ + private String targetId; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/IcMessageListFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/IcMessageListFormDTO.java new file mode 100644 index 0000000000..685fd340ad --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/IcMessageListFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class IcMessageListFormDTO implements Serializable { + private static final long serialVersionUID = 2697079163476964749L; + + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; + //token中信息 + private String customerId; + private String userId; + +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/ReadIcMessageFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/ReadIcMessageFormDTO.java new file mode 100644 index 0000000000..d5c875bd87 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/ReadIcMessageFormDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ReadIcMessageFormDTO implements Serializable { + private static final long serialVersionUID = 2697079163476964749L; + + /** + * 消息Id + */ + private String id; + //token中信息 + private String customerId; + private String userId; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java index 8b9f06198f..1083526f67 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java @@ -1,6 +1,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.*; @@ -127,4 +128,15 @@ public interface EpmetMessageOpenFeignClient { @PostMapping(value = "message/sms/send-msg", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) Result sendMsg(@RequestBody List formDTO); + + /** + * @Author sun + * @Description 党建小助手-批量插入未读消息 + **/ + @PostMapping(value = "message/icMessage/saveicmessagelist", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result saveIcMessageList(List msgList); + + @PostMapping(value = "message/icMessage/unreadcount/{userId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result unReadCount(@PathVariable("userId") String userId); + } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java index 2d5c0d9073..9538233fe2 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java @@ -78,4 +78,15 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig public Result sendMsg(List formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendMsg",formDTO); } + + @Override + public Result saveIcMessageList(List msgList) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "saveIcMessageList", msgList); + } + + @Override + public Result unReadCount(String userId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "unReadCount", userId); + } + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/IcMessageController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/IcMessageController.java new file mode 100644 index 0000000000..3824123ace --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/IcMessageController.java @@ -0,0 +1,105 @@ +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.IcMessageDTO; +import com.epmet.dto.form.IcMessageFormDTO; +import com.epmet.dto.form.IcMessageListFormDTO; +import com.epmet.dto.form.ReadIcMessageFormDTO; +import com.epmet.service.IcMessageService; +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-08-19 + */ +@RestController +@RequestMapping("icMessage") +public class IcMessageController { + + @Autowired + private IcMessageService icMessageService; + + @RequestMapping("list") + public Result> list(@LoginUser TokenDto tokenDto, @RequestBody IcMessageListFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(icMessageService.list(formDTO)); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcMessageDTO data = icMessageService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcMessageDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icMessageService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcMessageDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icMessageService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icMessageService.delete(ids); + return new Result(); + } + + /** + * @Author sun + * @Description 批量插入未读消息 + **/ + @PostMapping("saveicmessagelist") + public Result saveIcMessageList(@RequestBody List msgList) { + icMessageService.saveIcMessageList(msgList); + return new Result(); + } + + /** + * @Author sun + * @Description 单条或批量修改已读 + **/ + @PostMapping("read") + public Result read(@LoginUser TokenDto tokenDto, @RequestBody ReadIcMessageFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + icMessageService.read(formDTO); + return new Result(); + } + + @PostMapping("unreadcount/{userId}") + public Result unReadCount(@PathVariable ("userId") String userId) { + return new Result().ok(icMessageService.unReadCount(userId)); + } + + +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/IcMessageDao.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/IcMessageDao.java new file mode 100644 index 0000000000..9c1ca666b8 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/IcMessageDao.java @@ -0,0 +1,27 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcMessageDTO; +import com.epmet.dto.form.IcMessageListFormDTO; +import com.epmet.dto.form.ReadIcMessageFormDTO; +import com.epmet.entity.IcMessageEntity; +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-08-19 + */ +@Mapper +public interface IcMessageDao extends BaseDao { + + List selectMessageList(IcMessageListFormDTO formDTO); + + void upByUserId(ReadIcMessageFormDTO formDTO); + + Integer selectUnReadCount(@Param("userId") String userId); +} \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/IcMessageEntity.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/IcMessageEntity.java new file mode 100644 index 0000000000..e13ee49b0a --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/IcMessageEntity.java @@ -0,0 +1,74 @@ +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-08-19 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_message") +public class IcMessageEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * app=resi时,此列为gridId,其他情况暂定 * + */ + private String gridId; + + /** + * 被通知的用户id + */ + private String userId; + + /** + * 消息通知对象:居民端用户resi、政府端工作人员gov、运营端工作人员oper + */ + private String app; + + /** + * 消息分类 党建活动:party_act 党建日程:party_schedule + */ + private String messageType; + + /** + * 消息类型对应的业务Id + */ + private String targetId; + + /** + * 消息标题 + */ + private String title; + + /** + * 消息通知内容 + */ + private String messageContent; + + /** + * read已读、unread未读 + */ + private String readFlag; + + /** + * 调用者 + */ + private String referer; + +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/IcMessageService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/IcMessageService.java new file mode 100644 index 0000000000..d0547f4bbd --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/IcMessageService.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.commons.tools.utils.Result; +import com.epmet.dto.IcMessageDTO; +import com.epmet.dto.form.IcMessageFormDTO; +import com.epmet.dto.form.IcMessageListFormDTO; +import com.epmet.dto.form.ReadIcMessageFormDTO; +import com.epmet.entity.IcMessageEntity; + +import java.util.List; +import java.util.Map; + +/** + * 用户消息表(党建小助手) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-19 + */ +public interface IcMessageService extends BaseService { + + /** + * 默认查询 + * + * @param formDTO + * @return java.util.List + * @author generator + * @date 2022-08-19 + */ + PageData list(IcMessageListFormDTO formDTO); + + /** + * 单条查询 + * + * @param id + * @return IcMessageDTO + * @author generator + * @date 2022-08-19 + */ + IcMessageDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-19 + */ + void save(IcMessageDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-19 + */ + void update(IcMessageDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-08-19 + */ + void delete(String[] ids); + + void saveIcMessageList(List msgList); + + void read(ReadIcMessageFormDTO formDTO); + + Integer unReadCount(String userId); +} \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/IcMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/IcMessageServiceImpl.java new file mode 100644 index 0000000000..b50ad37940 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/IcMessageServiceImpl.java @@ -0,0 +1,116 @@ +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.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.DictTypeEnum; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.IcMessageDao; +import com.epmet.dto.IcMessageDTO; +import com.epmet.dto.form.IcMessageFormDTO; +import com.epmet.dto.form.IcMessageListFormDTO; +import com.epmet.dto.form.IcMoveInListFormDTO; +import com.epmet.dto.form.ReadIcMessageFormDTO; +import com.epmet.dto.result.AllGridsByUserIdResultDTO; +import com.epmet.dto.result.HouseInfoDTO; +import com.epmet.dto.result.IcMoveInListResultDTO; +import com.epmet.entity.IcMessageEntity; +import com.epmet.service.IcMessageService; +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.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 用户消息表(党建小助手) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-19 + */ +@Service +public class IcMessageServiceImpl extends BaseServiceImpl implements IcMessageService { + + + @Override + public PageData list(IcMessageListFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.selectMessageList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + 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 IcMessageDTO get(String id) { + IcMessageEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcMessageDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcMessageDTO dto) { + IcMessageEntity entity = ConvertUtils.sourceToTarget(dto, IcMessageEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcMessageDTO dto) { + IcMessageEntity entity = ConvertUtils.sourceToTarget(dto, IcMessageEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + public void saveIcMessageList(List msgList) { + List entityList = ConvertUtils.sourceToTarget(msgList, IcMessageEntity.class); + insertBatch(entityList); + } + + @Override + public void read(ReadIcMessageFormDTO formDTO) { + //id入参有值就按id修改,没值就按用户修改 + if(StringUtils.isNotBlank(formDTO.getId())){ + IcMessageEntity entity = new IcMessageEntity(); + entity.setId(formDTO.getId()); + entity.setReadFlag("read"); + updateById(entity); + return; + } + //批量修改某个人消息列表 + baseDao.upByUserId(formDTO); + } + + @Override + public Integer unReadCount(String userId) { + return baseDao.selectUnReadCount(userId); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java index d43fc223dc..3eea1f03d8 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java @@ -237,6 +237,17 @@ public class SystemMessageServiceImpl implements SystemMessageService { case SystemMessageType.PARTYMEMBER_RESI_IMPORT: topic=TopicConstants.PARTYMEMBER_RESI; break; + case SystemMessageType.PARTY_MEETING_MESSAGE: + topic=TopicConstants.IC_MESSAGE; + break; + case SystemMessageType.ZBWYH: + case SystemMessageType.ZBDYDH: + case SystemMessageType.DXZH: + case SystemMessageType.DANGKE: + case SystemMessageType.ZTDR: + case SystemMessageType.WMFWHD: + topic=TopicConstants.PARTY_BUILDING; + break; default: logger.error("getTopicByMsgType msgType:{} is not support for any topic", msgType); } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.19__create_ic_message.sql b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.19__create_ic_message.sql new file mode 100644 index 0000000000..7c9804fa70 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.19__create_ic_message.sql @@ -0,0 +1,20 @@ +CREATE TABLE `ic_message` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `customer_id` varchar(64) NOT NULL COMMENT '客户id', + `grid_id` varchar(64) NOT NULL DEFAULT '*' COMMENT '暂定 *', + `user_id` varchar(64) NOT NULL COMMENT '被通知的用户id', + `app` varchar(32) NOT NULL COMMENT '消息通知对象:居民端用户resi、政府端工作人员gov、运营端工作人员oper', + `message_type` varchar(32) DEFAULT NULL COMMENT '消息分类 党建小助手:party', + `target_id` varchar(64) DEFAULT NULL COMMENT '消息类型对应的业务Id', + `title` varchar(255) NOT NULL COMMENT '消息标题', + `message_content` varchar(3096) NOT NULL COMMENT '消息通知内容', + `read_flag` varchar(32) NOT NULL DEFAULT 'unread' COMMENT 'read已读、unread未读', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) DEFAULT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人(发布消息的人)', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + `REFERER` varchar(20) DEFAULT NULL COMMENT '调用者', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='用户消息表(党建小助手)'; \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.20__alter_ic_message.sql b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.20__alter_ic_message.sql new file mode 100644 index 0000000000..d962d2763e --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.20__alter_ic_message.sql @@ -0,0 +1,2 @@ +ALTER TABLE epmet_message.`ic_message` +MODIFY COLUMN `message_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息分类 \r\n党建活动:party_act \r\n党建日程:party_schedule \r\n' AFTER `app`; diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/IcMessageDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/IcMessageDao.xml new file mode 100644 index 0000000000..f8b8e8b286 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/IcMessageDao.xml @@ -0,0 +1,40 @@ + + + + + + + + + UPDATE ic_message + SET read_flag = 'read', + updated_by = #{userId}, + updated_time = NOW() + WHERE + del_flag = '0' + AND customer_id = #{customerId} + AND user_id = #{userId} + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/PointAdditiveRuleDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/PointAdditiveRuleDTO.java index 750bdaf71b..6d0f830117 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/PointAdditiveRuleDTO.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/PointAdditiveRuleDTO.java @@ -98,5 +98,5 @@ public class PointAdditiveRuleDTO implements Serializable { * 更新时间 */ private Date updatedTime; - + private String editFlag; } diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PartyPointFormDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PartyPointFormDTO.java new file mode 100644 index 0000000000..8082e71192 --- /dev/null +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PartyPointFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/8/22 15:57 + */ +@Data +public class PartyPointFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -4811220825653023328L; + private String customerId; + private String userId; + private String year; + private String quarter; + private String month; + private String type; + private String dateType; + private String startDate; + private String endDate; +} diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointModifyFormDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointModifyFormDTO.java index 71cff835cd..72dc80773c 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointModifyFormDTO.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointModifyFormDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.List; /** * @program: epmet-cloud @@ -59,5 +60,7 @@ public class PointModifyFormDTO implements Serializable { */ private Integer pointValue; + List customerIdList; + } diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PartyPointRecordResultDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PartyPointRecordResultDTO.java new file mode 100644 index 0000000000..df87b12e14 --- /dev/null +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PartyPointRecordResultDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/8/25 9:20 + */ +@Data +public class PartyPointRecordResultDTO implements Serializable { + private static final long serialVersionUID = -1480768520576719171L; + /** + * 日期 yyyy-MM-dd 字符串 + * */ + private String date; + private List dailyList; +} diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PartyPointResultDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PartyPointResultDTO.java new file mode 100644 index 0000000000..7449b9cc9d --- /dev/null +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PartyPointResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/8/22 15:59 + */ +@Data +public class PartyPointResultDTO implements Serializable { + private static final long serialVersionUID = -3208641116926725011L; + private String title; + /** + * 日期yyyy-MM-dd + */ + private String date; + /** + * 时间hh:mm + */ + private String time; + private String point; + private String actId; + private String actTopic; + private String actType; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date actDate; + private String actAddress; +} diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java index 3f780d3ff9..0a461d1486 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointAdditiveRuleController.java @@ -185,4 +185,10 @@ public class PointAdditiveRuleController { dto.setCustomerId(tokenDto.getCustomerId()); return pointAdditiveRuleService.modify(dto); } + + @PostMapping("initPartyRole") + public Result initPartyBuilidingRole(@RequestBody PointModifyFormDTO dto) { + pointAdditiveRuleService.initPartyBuilidingRole(dto.getCustomerIdList()); + return new Result(); + } } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java index 885910a843..e37fb2055e 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java @@ -255,4 +255,19 @@ public class ResiPointController { ValidatorUtils.validateEntity(pageUserParam, CommonPageUserFormDTO.PageUserGroup.class); return new Result>().ok(pointAdditiveRecordService.getRecords(pageUserParam)); } + + /** + * 党建积分 + * @Param tokenDto + * @Param formDTO + * @Return {@link Result< PageData< PartyPointResultDTO>>} + * @Author zhaoqifeng + * @Date 2022/8/23 14:12 + */ + @PostMapping("pagePartyPoint") + public Result> pagePartyPoint(@LoginUser TokenDto tokenDto, @RequestBody PartyPointFormDTO formDTO ){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(pointActionLogService.pagePartyPoint(formDTO)); + } } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java index 8b39e7d65b..5d99197d02 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java @@ -8,6 +8,7 @@ import com.epmet.dto.form.List4treeFormDTO; import com.epmet.dto.form.SubmitRewardFormDTO; import com.epmet.dto.result.List4ApplyResultDTO; import com.epmet.entity.PointAdditiveRuleEntity; +import com.epmet.entity.PointRuleEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -87,4 +88,6 @@ public interface PointAdditiveRuleDao extends BaseDao { * @return com.epmet.dto.PointAdditiveRuleDTO */ PointAdditiveRuleDTO selectRuledetail(@Param("ruleId") String ruleId); + + PointRuleEntity selectByRoleName(@Param("customerId") String customerId, @Param("roleName") String roleName); } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java index ae9cb21307..bbf57d8c27 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java @@ -19,7 +19,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.IcResiPointPageFormDTO; +import com.epmet.dto.form.PartyPointFormDTO; import com.epmet.dto.result.MyPointTaskResultDTO; +import com.epmet.dto.result.PartyPointResultDTO; import com.epmet.dto.result.ResiPointLogPeriodResultDTO; import com.epmet.dto.result.ResiPointPageResDTO; import com.epmet.entity.UserPointActionLogEntity; @@ -73,4 +75,6 @@ public interface UserPointActionLogDao extends BaseDao @Param("dateId")String dateId); List selectPageResiPoin(IcResiPointPageFormDTO formDTO); + + List getPagePartyPoint(PartyPointFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java index 500f4bb632..bab9146143 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java @@ -22,6 +22,7 @@ public class RocketMQConsumerRegister extends MQAbstractRegister { register(consumerProperties, ConsomerGroupConstants.RESI_GROUP_POINT_OPERATION_GROUP, MessageModel.CLUSTERING, TopicConstants.RESI_GROUP, "*", new PointListener(userPointActionLogService)); register(consumerProperties, ConsomerGroupConstants.EPMET_HEART_POINT_OPERATION_GROUP, MessageModel.CLUSTERING, TopicConstants.EPMET_HEART, "*", new PointListener(userPointActionLogService)); register(consumerProperties, ConsomerGroupConstants.COMMUNITY_SERVICE_POINT_OPERATION_GROUP, MessageModel.CLUSTERING, TopicConstants.COMMUNITY_SERVICE, "*", new PointListener(userPointActionLogService)); + register(consumerProperties, ConsomerGroupConstants.PARTY_BUILDING_GROUP, MessageModel.CLUSTERING, TopicConstants.PARTY_BUILDING, "*", new PointListener(userPointActionLogService)); // ...其他监听器类似 } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/listener/PointListener.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/listener/PointListener.java index 63b4c44e2b..2204d7c7e2 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/listener/PointListener.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/listener/PointListener.java @@ -113,6 +113,15 @@ public class PointListener implements MessageListenerConcurrently { //给需求服务方(志愿者)发放积分 grantServerPoint(msg); break; + case SystemMessageType.ZBWYH: + case SystemMessageType.ZBDYDH: + case SystemMessageType.DXZH: + case SystemMessageType.DANGKE: + case SystemMessageType.ZTDR: + case SystemMessageType.WMFWHD: + partyAct(msg); + default: + break; } } catch (RenException e) { @@ -218,6 +227,14 @@ public class PointListener implements MessageListenerConcurrently { }); } + private void partyAct(String msg) { + List formList = JSON.parseArray(msg, BasePointEventMsg.class); + + formList.forEach(obj -> { + userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj); + }); + } + /** * 需求完成,给志愿者发放积分 * @param msg diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java index 4f9995158e..f067064af5 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdditiveRuleService.java @@ -151,4 +151,13 @@ public interface PointAdditiveRuleService extends BaseService customerIdList); } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java index 360edcb9cb..9e6ec53a68 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java @@ -24,9 +24,8 @@ import com.epmet.dto.UserPointActionLogDTO; import com.epmet.dto.form.CommonPageUserFormDTO; import com.epmet.dto.form.IcResiPointPageFormDTO; import com.epmet.dto.form.MyPointTaskFormDTO; -import com.epmet.dto.result.MyPointTaskResultDTO; -import com.epmet.dto.result.ResiPointLogListResultDTO; -import com.epmet.dto.result.ResiPointPageResDTO; +import com.epmet.dto.form.PartyPointFormDTO; +import com.epmet.dto.result.*; import com.epmet.entity.UserPointActionLogEntity; import dto.form.SendPointFormDTO; @@ -159,4 +158,14 @@ public interface UserPointActionLogService extends BaseService pageUserPoint(IcResiPointPageFormDTO formDTO); + + /** + * 党建积分 + * + * @Param formDTO + * @Return {@link PageData< PartyPointResultDTO>} + * @Author zhaoqifeng + * @Date 2022/8/22 16:04 + */ + List pagePartyPoint(PartyPointFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java index 9c0942d574..a5ceb74a93 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java @@ -17,6 +17,7 @@ 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; @@ -127,11 +128,10 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("BIZ_TYPE", type) - .eq("OBJECT_ID", objectId) - .eq("USER_ID", userId) - .eq("DEL_FLAG", NumConstant.ZERO_STR); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BizPointUserTotalDetailEntity::getBizType, type) + .eq(StringUtils.isNotBlank(objectId), BizPointUserTotalDetailEntity::getObjectId, objectId) + .eq(BizPointUserTotalDetailEntity::getUserId, userId); BizPointUserTotalDetailEntity entity = baseDao.selectOne(wrapper); return ConvertUtils.sourceToTarget(entity, BizPointUserTotalDetailDTO.class); } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java index 7146f105f1..1e7fecf8ce 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdditiveRuleServiceImpl.java @@ -1,16 +1,19 @@ 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.common.enu.PointAddRuleEnum; 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.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; 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.SystemMessageType; import com.epmet.dao.PointAdditiveRuleDao; import com.epmet.dao.PointApplyDao; import com.epmet.dto.CategorydetailResultDTO; @@ -27,7 +30,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.Arrays; +import java.util.List; +import java.util.Map; /** * 附加积分规则 @@ -200,7 +205,25 @@ public class PointAdditiveRuleServiceImpl extends BaseServiceImpl> list4tree(List4treeFormDTO dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, dto.getCustomerId()); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, "党建活动"); + PointAdditiveRuleEntity rule = baseDao.selectOne(wrapper); + List result = baseDao.selectList4tree(dto); + if (CollectionUtils.isNotEmpty(result)) { + result.forEach(item -> { + if (null != rule) { + if (item.getId().equals(rule.getId()) || item.getPid().equals(rule.getId())) { + item.setEditFlag(NumConstant.ZERO_STR); + } else { + item.setEditFlag(NumConstant.ONE_STR); + } + } else { + item.setEditFlag(NumConstant.ONE_STR); + } + }); + } return new Result>().ok(result); } @@ -267,4 +290,161 @@ public class PointAdditiveRuleServiceImpl extends BaseServiceImpl customerIdList) { + customerIdList.forEach(customerId -> { + //党建积分 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, "党建积分"); + PointAdditiveRuleEntity djjf = baseDao.selectOne(wrapper); + if (null == djjf) { + djjf = new PointAdditiveRuleEntity(); + djjf.setCustomerId(customerId); + djjf.setType("category"); + djjf.setApplyFlag(NumConstant.ONE_STR); + djjf.setCategoryCode("party_building"); + djjf.setCategoryName("党建积分"); + djjf.setPid(NumConstant.ZERO_STR); + djjf.setPids(""); + baseDao.insert(djjf); + } + //党建活动 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, "党建活动"); + PointAdditiveRuleEntity djhd = baseDao.selectOne(wrapper); + if (null == djhd) { + djhd = new PointAdditiveRuleEntity(); + djhd.setCustomerId(customerId); + djhd.setType("category"); + djhd.setApplyFlag(NumConstant.ONE_STR); + djhd.setCategoryCode("party_building"); + djhd.setCategoryName("党建活动"); + djhd.setPid(djjf.getId()); + djhd.setPids(djjf.getId()); + baseDao.insert(djhd); + } + //支部委员会 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, SystemMessageType.ZBWYH); + PointAdditiveRuleEntity zbdyh = baseDao.selectOne(wrapper); + if (null == zbdyh) { + zbdyh = new PointAdditiveRuleEntity(); + zbdyh.setCustomerId(customerId); + zbdyh.setType("rule"); + zbdyh.setApplyFlag(NumConstant.ONE_STR); + zbdyh.setCategoryCode("party_building"); + zbdyh.setRuleName(SystemMessageType.ZBWYH); + zbdyh.setPid(djhd.getId()); + zbdyh.setPids(djhd.getPids().concat(StrConstant.COLON).concat(djhd.getId())); + zbdyh.setPointValue(10); + baseDao.insert(zbdyh); + } + //支部党员大会 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, SystemMessageType.ZBDYDH); + PointAdditiveRuleEntity zbdydh = baseDao.selectOne(wrapper); + if (null == zbdydh) { + zbdydh = new PointAdditiveRuleEntity(); + zbdydh.setCustomerId(customerId); + zbdydh.setType("rule"); + zbdydh.setApplyFlag(NumConstant.ONE_STR); + zbdydh.setCategoryCode("party_building"); + zbdydh.setRuleName(SystemMessageType.ZBDYDH); + zbdydh.setPid(djhd.getId()); + zbdydh.setPids(djhd.getPids().concat(StrConstant.COLON).concat(djhd.getId())); + zbdydh.setPointValue(20); + baseDao.insert(zbdydh); + } + //党小组会 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, SystemMessageType.DXZH); + PointAdditiveRuleEntity dxzh = baseDao.selectOne(wrapper); + if (null == dxzh) { + dxzh = new PointAdditiveRuleEntity(); + dxzh.setCustomerId(customerId); + dxzh.setType("rule"); + dxzh.setApplyFlag(NumConstant.ONE_STR); + dxzh.setCategoryCode("party_building"); + dxzh.setRuleName(SystemMessageType.DXZH); + dxzh.setPid(djhd.getId()); + dxzh.setPids(djhd.getPids().concat(StrConstant.COLON).concat(djhd.getId())); + dxzh.setPointValue(10); + baseDao.insert(dxzh); + } + //党课 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, SystemMessageType.DANGKE); + PointAdditiveRuleEntity dk = baseDao.selectOne(wrapper); + if (null == dk) { + dk = new PointAdditiveRuleEntity(); + dk.setCustomerId(customerId); + dk.setType("rule"); + dk.setApplyFlag(NumConstant.ONE_STR); + dk.setCategoryCode("party_building"); + dk.setRuleName(SystemMessageType.DANGKE); + dk.setPid(djhd.getId()); + dk.setPids(djhd.getPids().concat(StrConstant.COLON).concat(djhd.getId())); + dk.setPointValue(15); + baseDao.insert(dk); + } + //主题党日 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, SystemMessageType.ZTDR); + PointAdditiveRuleEntity ztdr = baseDao.selectOne(wrapper); + if (null == ztdr) { + ztdr = new PointAdditiveRuleEntity(); + ztdr.setCustomerId(customerId); + ztdr.setType("rule"); + ztdr.setApplyFlag(NumConstant.ONE_STR); + ztdr.setCategoryCode("party_building"); + ztdr.setRuleName(SystemMessageType.ZTDR); + ztdr.setPid(djhd.getId()); + ztdr.setPids(djhd.getPids().concat(StrConstant.COLON).concat(djhd.getId())); + ztdr.setPointValue(15); + baseDao.insert(ztdr); + } + //为民服务活动 + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PointAdditiveRuleEntity::getCustomerId, customerId); + wrapper.eq(PointAdditiveRuleEntity::getCategoryCode, "party_building"); + wrapper.eq(PointAdditiveRuleEntity::getCategoryName, SystemMessageType.WMFWHD); + PointAdditiveRuleEntity wmfwhd = baseDao.selectOne(wrapper); + if (null == wmfwhd) { + wmfwhd = new PointAdditiveRuleEntity(); + wmfwhd.setCustomerId(customerId); + wmfwhd.setType("rule"); + wmfwhd.setApplyFlag(NumConstant.ONE_STR); + wmfwhd.setCategoryCode("party_building"); + wmfwhd.setRuleName(SystemMessageType.WMFWHD); + wmfwhd.setPid(djhd.getId()); + wmfwhd.setPids(djhd.getPids().concat(StrConstant.COLON).concat(djhd.getId())); + wmfwhd.setPointValue(15); + baseDao.insert(wmfwhd); + } + }); + } + } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java index 0fbb19a3d8..d8717a5313 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java @@ -30,6 +30,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dao.PointAdditiveRuleDao; import com.epmet.dao.UserPointActionLogDao; import com.epmet.dto.BizPointTotalDetailDTO; import com.epmet.dto.BizPointUserTotalDetailDTO; @@ -38,15 +39,15 @@ import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.CommonPageUserFormDTO; import com.epmet.dto.form.IcResiPointPageFormDTO; import com.epmet.dto.form.MyPointTaskFormDTO; -import com.epmet.dto.result.MyPointTaskResultDTO; -import com.epmet.dto.result.ResiPointLogListResultDTO; -import com.epmet.dto.result.ResiPointLogPeriodResultDTO; -import com.epmet.dto.result.ResiPointPageResDTO; +import com.epmet.dto.form.PartyPointFormDTO; +import com.epmet.dto.result.*; import com.epmet.entity.PointRuleEntity; import com.epmet.entity.UserPointActionLogEntity; import com.epmet.entity.UserPointStatisticalDailyEntity; import com.epmet.entity.UserPointTotalEntity; import com.epmet.feign.EpmetHeartOpenFeignClient; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.*; import com.epmet.utils.DimIdGenerator; import com.epmet.utils.ModuleConstant; @@ -56,14 +57,15 @@ import com.github.pagehelper.PageInfo; import com.google.common.collect.Maps; import dto.form.SendPointFormDTO; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -89,6 +91,10 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl page(Map params) { @@ -207,6 +213,9 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); wrapper.select("IFNULL(SUM(POINT), 0) as POINT") .eq("BIZ_TYPE", type) - .eq("OBJECT_ID", objectId) + .eq(StringUtils.isNotBlank(objectId), "OBJECT_ID", objectId) .eq("USER_ID", userId) .eq("ACTION_FLAG", "plus") .eq("DEL_FLAG", NumConstant.ZERO_STR); @@ -579,6 +611,86 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl(pageInfo.getList(), pageInfo.getTotal()); } + /** + * 党建积分 + * + * @param formDTO + * @Param formDTO + * @Return {@link List< PartyPointRecordResultDTO >} + * @Author zhaoqifeng + * @Date 2022/8/22 16:04 + */ + @Override + public List pagePartyPoint(PartyPointFormDTO formDTO) { + List result = new LinkedList<>(); + if (StringUtils.isNotBlank(formDTO.getYear())) { + if (StringUtils.isNotBlank(formDTO.getQuarter())) { + if (StringUtils.isNotBlank(formDTO.getMonth())) { + formDTO.setStartDate(formDTO.getYear().concat(formDTO.getMonth())); + formDTO.setDateType(NumConstant.TWO_STR); + } else { + switch (formDTO.getQuarter()) { + case NumConstant.ONE_STR: + formDTO.setStartDate(formDTO.getYear().concat("01")); + formDTO.setEndDate(formDTO.getYear().concat("03")); + break; + case NumConstant.TWO_STR: + formDTO.setStartDate(formDTO.getYear().concat("04")); + formDTO.setEndDate(formDTO.getYear().concat("06")); + break; + case NumConstant.THREE_STR: + formDTO.setStartDate(formDTO.getYear().concat("07")); + formDTO.setEndDate(formDTO.getYear().concat("09")); + break; + case NumConstant.FOUR_STR: + formDTO.setStartDate(formDTO.getYear().concat("10")); + formDTO.setEndDate(formDTO.getYear().concat("12")); + break; + default: + break; + } + formDTO.setDateType(NumConstant.THREE_STR); + } + } else if (StringUtils.isNotBlank(formDTO.getMonth())) { + formDTO.setStartDate(formDTO.getYear().concat(formDTO.getMonth())); + formDTO.setDateType(NumConstant.TWO_STR); + } else { + formDTO.setStartDate(formDTO.getYear()); + formDTO.setDateType(NumConstant.ONE_STR); + } + } else { + formDTO.setDateType(NumConstant.FOUR_STR); + } + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list =baseDao.getPagePartyPoint(formDTO); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(item -> { + Result actInfo = resiPartyMemberOpenFeignClient.actDetail(item.getActId()); + if (actInfo.success() && null != actInfo.getData()) { + item.setActType(actInfo.getData().getActTypeName()); + item.setActAddress(actInfo.getData().getAddress()); + item.setActDate(actInfo.getData().getHoldTime()); + item.setActTopic(actInfo.getData().getTopic()); + } + }); + + Map> map = + list.stream().collect(Collectors.groupingBy(PartyPointResultDTO::getDate)); + + Map> sortedMap = Maps.newLinkedHashMap(); + map.entrySet().stream().sorted(Map.Entry.>comparingByKey().reversed()) + .forEachOrdered(e -> sortedMap.put(e.getKey(), e.getValue())); + sortedMap.forEach((key, value) -> { + PartyPointRecordResultDTO o = new PartyPointRecordResultDTO(); + o.setDate(key); + o.setDailyList(value); + result.add(o); + }); + + } + return result; + } + /** * 需求完成,给志愿者发放积分 * @param list diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml index 84a26d63e7..0cb0a8b1a5 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml +++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml @@ -122,6 +122,31 @@ WHERE DEL_FLAG='0' AND ID=#{ruleId} + diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml index c6136f2202..9797bd676f 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml +++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml @@ -157,5 +157,47 @@ ORDER BY temp.sort ASC + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java index 6d3d8f433a..fec4b2d209 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java @@ -21,6 +21,14 @@ public class HouseChartFormDTO implements Serializable { * 组织、网格、小区类型 agency grid village */ private String orgType; + /** + * 数据类型【1:出租 0:自住 2:闲置 3:未售出】 + */ + private String rentType; + + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; //token这信息 private String customerId; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java index aed43f1b0c..61bee2a9cc 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java @@ -47,6 +47,14 @@ public class HouseChartResultDTO implements Serializable { * 房屋闲置总数占比(保留两位小数,带百分号的) */ private Double xzHouseRatio = 0.0; + /** + * 房屋未售出总数 + */ + private Integer wscHouseTotal = 0; + /** + * 房屋未售出总数占比(保留两位小数,带百分号的) + */ + private Double wscHouseRatio = 0.0; @JsonIgnore private Integer num; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java index 905dca051f..45ded6601b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java @@ -50,6 +50,14 @@ public class SubUserHouseListResultDTO implements Serializable { * 房屋闲置总数占比(保留两位小数,带百分号的) */ private Double xzHouseRatio = 0.0; + /** + * 房屋未售出总数 + */ + private Integer wscHouseTotal = 0; + /** + * 房屋未售出总数占比(保留两位小数,带百分号的) + */ + private Double wscHouseRatio = 0.0; /** * 居民总数 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 7aa747a910..cc90ddbc2f 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -712,4 +712,7 @@ public interface GovOrgOpenFeignClient { @PostMapping("/gov/org/department/notsyncdept") Result notSyncDept(@RequestBody CheckStaffInfoFormDTO formDTO); + + @PostMapping("/gov/org/enterprise/sendEnterprisePatrolRemindMessage") + Result sendEnterprisePatrolRemindMessage(); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 82af2caade..befef36cf5 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -464,6 +464,11 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "notSyncDept", formDTO); } + @Override + public Result sendEnterprisePatrolRemindMessage() { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "sendEnterprisePatrolRemindMessage", null); + } + @Override public Result> gridStaff(CustomerGridStaffListFormDTO dto) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "gridStaffList", dto); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java index 85f0d846f7..50d0b7931c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java @@ -25,5 +25,6 @@ public interface ImportErrorMsgConstants { String HOUSE_ERROR_NAME = "导入失败的列表-房屋"; String BUILDING_ERROR_NAME = "导入失败的列表-楼栋"; String NEIGHBORHOOD_ERROR_NAME = "导入失败的列表-小区"; + String BUILDING_NAME_EXITED_IN_GRID = "小区下该楼栋已存在于其他网格"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index ecf6b0056a..35b3bc0e6f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -617,4 +617,16 @@ public class HouseController implements ResultDataResolver { return new Result(); } + /** + * @Author sun + * @Description 【人房概览】房屋统计数点击查询列表/详情 + **/ + @PostMapping("housestatislistdetail") + @MaskResponse(fieldNames = {"ownerIdCard", "ownerPhone"}, fieldsMaskType = {MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE}) + public Result> houseStatisListDetail(@LoginUser TokenDto tokenDto, @RequestBody HouseChartFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(houseService.houseStatisListDetail(formDTO)); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java index 244711596d..dba64a0964 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java @@ -301,4 +301,18 @@ public class IcEnterpriseController implements ResultDataResolver { icEnterpriseService.execAsyncExcelImport(fileSavePath, rstData.getTaskId(),tokenDto.getCustomerId(),tokenDto.getUserId()); return new Result(); } + + /** + * 复查消息提醒 + * + * @Param + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/9/6 17:31 + */ + @PostMapping("sendEnterprisePatrolRemindMessage") + public Result sendEnterprisePatrolRemindMessage() { + icEnterpriseService.sendEnterprisePatrolRemindMessage(); + return new Result(); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java index 4e963af722..46f0041e8d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java @@ -67,6 +67,15 @@ public interface IcBuildingDao extends BaseDao { List baseInfoFamilyBuilding(@Param("neighborHoodId")String neighborHoodId); Integer checkBuildName(@Param("neighborHoodId") String neighborHoodId,@Param("buildingName")String buildingName, @Param("buildingId")String buildingId); + Integer checkBuildNameV2(@Param("agencyId") String agencyId, + @Param("neighborHoodName") String neighborHoodName, + @Param("buildingName")String buildingName, + @Param("buildingId")String buildingId); + Integer checkBuildNameV3(@Param("agencyId") String agencyId, + @Param("gridId") String gridId, + @Param("neighborHoodName") String neighborHoodName, + @Param("buildingName")String buildingName, + @Param("buildingId")String buildingId); List buildingListByIds(@Param("buildingIdList") List buildingIdList); IPage buildingListByIds(IPage page,@Param("buildingIdList") List buildingIdList); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index e8e8157256..4d5c986eff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.CheckHouseInfoFormDTO; import com.epmet.dto.form.GetHouseInfoToCollectFormDTO; +import com.epmet.dto.form.HouseChartFormDTO; import com.epmet.dto.form.IcHouseListFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.CustomerOrgParameterEntity; @@ -209,4 +210,5 @@ public interface IcHouseDao extends BaseDao { */ IcHouseEntity getHouseInfoByName(CheckHouseInfoFormDTO formDTO); + List houseStatisListDetail(HouseChartFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java index e567bf017d..38f8e3b494 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java @@ -210,6 +210,13 @@ public class ImportBuildingInfoListener extends AnalysisEventListener 0){ + // 说明数据库已存在此楼栋,不需添加 + nums.add(num); + disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_NAME_EXITED_IN_GRID); + return; + } if (orgType.equals(CustomerGridConstant.GRID) || orgType.equals(CustomerGridConstant.AGENCY)){ List gridIds = new ArrayList<>(); if (orgType.equals(CustomerGridConstant.GRID)){ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index 812792b964..b8f1c41ce2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -3,12 +3,12 @@ package com.epmet.model; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; 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.constant.CustomerGridConstant; +import com.epmet.constant.ImportErrorMsgConstants; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.IcHouseDTO; @@ -489,6 +489,13 @@ public class ImportHouseInfoListener extends AnalysisEventListener 0){ + // 说明数据库已存在此楼栋,不需添加 + nums.add(num); + disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_NAME_EXITED_IN_GRID); + return; + } if (orgType.equals(CustomerGridConstant.GRID) || orgType.equals(CustomerGridConstant.AGENCY)){ List gridIds = new ArrayList<>(); if (orgType.equals(CustomerGridConstant.GRID)){ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 31b1d3f36c..239e844523 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -195,4 +195,6 @@ public interface HouseService { Result getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO); PageData listHouses4ReportTest(String houseId, Integer pageNo, Integer pageSize); + + PageData houseStatisListDetail(HouseChartFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java index 82057fb0cd..3f06567ca8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java @@ -68,4 +68,14 @@ public interface IcEnterpriseService extends BaseService { PageData list(EnterprisePageFormDTO formDTO); void execAsyncExcelImport(Path fileSavePath, String taskId, String customerId, String userId); + + /** + * 复查消息提醒 + * + * @Param + * @Return + * @Author zhaoqifeng + * @Date 2022/9/6 17:30 + */ + void sendEnterprisePatrolRemindMessage(); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 86e54b4356..36dde00dfe 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -102,9 +102,15 @@ public class BuildingServiceImpl implements BuildingService { public void addBuilding(String customerId, IcBulidingAddFormDTO formDTO) { //同一小区下不能存在楼栋名字一样的 Integer count = icBuildingDao.checkBuildName(formDTO.getNeighborHoodId(), formDTO.getBuildingName(), null); + if (null != count && count > 0) { throw new RenException(EpmetErrorCode.BUILDING_NAME_EXITED.getCode(), EpmetErrorCode.BUILDING_NAME_EXITED.getMsg()); } + IcNeighborHoodEntity neighborHood = icNeighborHoodDao.selectById(formDTO.getNeighborHoodId()); + count = icBuildingDao.checkBuildNameV2(formDTO.getAgencyId(), neighborHood.getNeighborHoodName(), formDTO.getBuildingName(), null); + if (null != count && count > 0) { + throw new EpmetException(EpmetErrorCode.BUILDING_NAME_EXITED_IN_GRID.getCode()); + } //楼栋编码不可重复 if(org.apache.commons.lang3.StringUtils.isNotBlank(formDTO.getCoding())){ IcBuildingEntity isHaveCoding = icBuildingDao.selectByCoding(formDTO.getCoding(),null); @@ -475,6 +481,11 @@ public class BuildingServiceImpl implements BuildingService { if (null != count && count > 0) { throw new RenException(EpmetErrorCode.BUILDING_NAME_EXITED.getCode(), EpmetErrorCode.BUILDING_NAME_EXITED.getMsg()); } + IcNeighborHoodEntity neighborHood = icNeighborHoodDao.selectById(formDTO.getNeighborHoodId()); + count = icBuildingDao.checkBuildNameV2(formDTO.getAgencyId(), neighborHood.getNeighborHoodName(), formDTO.getBuildingName(), formDTO.getBuildingId()); + if (null != count && count > 0) { + throw new EpmetException(EpmetErrorCode.BUILDING_NAME_EXITED_IN_GRID.getCode()); + } IcBuildingDTO icBuilding = icBuildingService.get(formDTO.getBuildingId()); if (!icBuilding.getNeighborHoodId().equals(formDTO.getNeighborHoodId())) { //更新对应房屋小区id diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 933a07daeb..bea7a77501 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -703,14 +703,17 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { resultDTO.setZzHouseTotal(l.getNum()); } else if (l.getRentFlag() == 1) { resultDTO.setCzHouseTotal(l.getNum()); - } else { + } else if (l.getRentFlag() == 2) { resultDTO.setXzHouseTotal(l.getNum()); + } else if (l.getRentFlag() == 3) { + resultDTO.setWscHouseTotal(l.getNum()); } }); resultDTO.setHouseTotal(houseTotal.get()); resultDTO.setZzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getZzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getZzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100))); resultDTO.setCzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getCzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getCzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100))); resultDTO.setXzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getXzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getXzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100))); + resultDTO.setWscHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getWscHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getWscHouseTotal() / (float) resultDTO.getHouseTotal()) * 100))); resultDTO.setOrgId(formDTO.getOrgId()); resultDTO.setOrgType(formDTO.getOrgType()); return resultDTO; @@ -946,6 +949,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { dto.setCzHouseRatio(h.getCzHouseRatio()); dto.setXzHouseTotal(h.getXzHouseTotal()); dto.setXzHouseRatio(h.getXzHouseRatio()); + dto.setWscHouseTotal(h.getWscHouseTotal()); + dto.setWscHouseRatio(h.getWscHouseRatio()); } } for (UserChartResultDTO u : userResult.getData()) { @@ -1330,4 +1335,33 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { return new PageData<>(houseDtos, pi.getTotal()); } + + @Override + public PageData houseStatisListDetail(HouseChartFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + //1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息 + if (StringUtils.isEmpty(formDTO.getOrgId())) { + //获取工作人员缓存信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType("agency"); + } + + //2.按条件查询房屋信息数据 + List list = icHouseDao.houseStatisListDetail(formDTO); + + //3.封装数据并返回 + list.forEach(item -> { + item.setHouseType(HouseTypeEnums.getTypeValue(item.getHouseTypeKey())); + item.setPurpose(HousePurposeEnums.getTypeValue(item.getPurposeKey())); + }); + + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java index a0feee5fba..88de234e7d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java @@ -19,15 +19,14 @@ 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.DateUtils; import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.SmsTemplateConstant; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.*; import com.epmet.dto.SysDictDataDTO; -import com.epmet.dto.form.EnterpriseFormDTO; -import com.epmet.dto.form.EnterprisePageFormDTO; -import com.epmet.dto.form.EnterprisePatrolFormDTO; -import com.epmet.dto.form.ImportTaskCommonFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IcEnterpriseEntity; import com.epmet.entity.IcEnterprisePatrolAttachmentEntity; @@ -36,6 +35,7 @@ import com.epmet.excel.EnterpriseImportExcelDTO; import com.epmet.excel.handler.IcEnterpriseExcelImportListener; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.OssFeignClient; import com.epmet.service.CoverageService; import com.epmet.service.IcEnterpriseService; @@ -55,14 +55,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.commons.CommonsMultipartFile; +import javax.annotation.Resource; import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -90,6 +88,8 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.apply("DATE_FORMAT(REVIEW_TIME,'%Y%m%d') = " + dateId); + List list = enterprisePatrolRecordDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(list)) { + List smsList=new ArrayList<>(); + list.forEach(item -> { + IcEnterpriseEntity enterprise = baseDao.selectById(item.getEnterpriseId()); + if (null != enterprise) { + SendSmsFormDTO sms = new SendSmsFormDTO(); + sms.setCustomerId(item.getCustomerId()); + sms.setMobile(item.getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.ENTERPRISE_PATROL_TEM); + Map paramMap = new HashMap<>(); + paramMap.put("name",enterprise.getPlaceOrgName()); + paramMap.put("date",DateUtils.format(item.getReviewTime(),DateUtils.DATE_PATTERN)); + sms.setParamMap(paramMap); + smsList.add(sms); + } + }); + messageOpenFeignClient.sendMsg(smsList); + } + } + private CustomerStaffInfoCacheResult queryCurrentStaff(String customerId, String userId) { CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); if (null == staffInfo) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index 8e6b5dd039..1512e7b23e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -247,6 +247,41 @@ + + + + + + diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java index d2db4b070e..41e42f0d0b 100755 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java @@ -79,6 +79,12 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl07网格 + // 2.封装数据 List gridInfoList = new ArrayList<>(); result.getData().forEach(ag -> { @@ -176,6 +182,12 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl07网格 + // 2.封装数据 List gridInfoList = new ArrayList<>(); result.getData().forEach(ag -> { diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerParaResDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerParaResDTO.java new file mode 100644 index 0000000000..7c7954d9a4 --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerParaResDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/9/8 10:44 + */ +@Data +public class CustomerParaResDTO implements Serializable { + /** + * 开启:open + * 关闭:closed + * 没有数据默认开启 + */ + private String govPartyHelper; +} + diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerParameterController.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerParameterController.java index 006080bd6b..f31cd52346 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerParameterController.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerParameterController.java @@ -1,9 +1,12 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.CrmParameterFormDTO; import com.epmet.dto.result.CrmParameterResultDTO; +import com.epmet.dto.result.CustomerParaResDTO; import com.epmet.service.CustomerParameterService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -50,4 +53,14 @@ public class CustomerParameterController { return new Result(); } + /** + * 查询客户定制化参数 + * 比如党建小助手是否开启 + * @param tokenDto + * @return + */ + @PostMapping("customize") + public Result queryCustomerCustomize(@LoginUser TokenDto tokenDto){ + return new Result().ok(parameterService.queryCustomerCustomize(tokenDto.getCustomerId())); + } } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerParameterService.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerParameterService.java index 4ff8119c79..ba8055f90e 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerParameterService.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerParameterService.java @@ -4,6 +4,7 @@ import com.epmet.dto.form.CrmParameterFormDTO; import com.epmet.dto.form.FootBarPatternFormDTO; import com.epmet.dto.form.FootBarPatternQueryFormDTO; import com.epmet.dto.result.CrmParameterResultDTO; +import com.epmet.dto.result.CustomerParaResDTO; import com.epmet.dto.result.FootBarPatternQueryResultDTO; import java.util.List; @@ -49,4 +50,12 @@ public interface CustomerParameterService { * @date 2021/7/27 17:24 */ void saveFootBarPattern(FootBarPatternFormDTO formDTO); + + /** + * 查询客户定制化参数 + * 比如党建小助手是否开启 + * @param customerId + * @return + */ + CustomerParaResDTO queryCustomerCustomize(String customerId); } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java index fc7cd29f80..e00e1b54ac 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.Result; @@ -10,6 +11,7 @@ import com.epmet.dto.form.FootBarPatternFormDTO; import com.epmet.dto.form.FootBarPatternQueryFormDTO; import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.CrmParameterResultDTO; +import com.epmet.dto.result.CustomerParaResDTO; import com.epmet.dto.result.FootBarPatternQueryResultDTO; import com.epmet.entity.CustomerParameterEntity; import com.epmet.feign.OperCustomizeOpenFeignClient; @@ -146,5 +148,27 @@ public class CustomerParameterServiceImpl implements CustomerParameterService { } } + /** + * 查询客户定制化参数 + * 比如党建小助手是否开启 + * + * @param customerId + * @return + */ + @Override + public CustomerParaResDTO queryCustomerCustomize(String customerId) { + CustomerParaResDTO resDTO = new CustomerParaResDTO(); + resDTO.setGovPartyHelper("open"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CustomerParameterEntity::getCustomerId, customerId) + .eq(CustomerParameterEntity::getParameterKey, "gov_party_helper") + .last("limit 1"); + CustomerParameterEntity customerParameterEntity = parameterDao.selectOne(queryWrapper); + if (null != customerParameterEntity) { + resDTO.setGovPartyHelper(customerParameterEntity.getParameterValue()); + } + return resDTO; + } + } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/db/migration/V0.0.9__party_helper_param.sql b/epmet-module/oper-crm/oper-crm-server/src/main/resources/db/migration/V0.0.9__party_helper_param.sql new file mode 100644 index 0000000000..5cc11e5f73 --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/db/migration/V0.0.9__party_helper_param.sql @@ -0,0 +1,3 @@ +INSERT INTO `epmet_oper_crm`.`customer_parameter` ( `ID`, `CUSTOMER_ID`, `PARAMETER_KEY`, `PARAMETER_NAME`, `PARAMETER_SWITCH`, `PARAMETER_VALUE`, `DESCRIPTION`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME` ) +VALUES + ( '5ce6f22c-2f22-11ed-bb6b-0050568f8cf7', 'default', 'gov_party_helper', '工作端党建小助手是否开启?', 'on', 'open', '开启:open;关闭:closed;不配置,默认是开启', 0, 0, 'APP_USER', '2022-09-08 11:03:35', 'APP_USER', '2022-09-08 11:03:45' ); \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcResiCategoryStatsConfigFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcResiCategoryStatsConfigFormDTO.java index 7d10474443..c5af9dc2c1 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcResiCategoryStatsConfigFormDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcResiCategoryStatsConfigFormDTO.java @@ -74,5 +74,12 @@ public class IcResiCategoryStatsConfigFormDTO implements Serializable { private Integer level2; private Integer level3; - + /** + * 自动匹配:开启1;不匹配:0 + */ + private String autoMatching; + /** + * 育龄妇女年龄范围,英文逗号隔开的数字例如:18,49 + */ + private String ylfnValue; } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcResiCategoryStatsConfigResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcResiCategoryStatsConfigResultDTO.java index e161b60f6d..45ee8f8ce3 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcResiCategoryStatsConfigResultDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcResiCategoryStatsConfigResultDTO.java @@ -44,7 +44,10 @@ public class IcResiCategoryStatsConfigResultDTO implements Serializable { */ private String label; - + /** + * 列名 + */ + private String columnName; /** * 管理平台分类图标 @@ -84,4 +87,13 @@ public class IcResiCategoryStatsConfigResultDTO implements Serializable { * 等级3阈值 */ private Integer level3; + + /** + * 自动匹配:开启1;不匹配:0 + */ + private String autoMatching; + /** + * 育龄妇女年龄范围,英文逗号隔开的数字例如:18,49 + */ + private String ylfnValue; } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/YlfnValueResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/YlfnValueResultDTO.java new file mode 100644 index 0000000000..9056944c83 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/YlfnValueResultDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/9/8 15:43 + */ +@Data +public class YlfnValueResultDTO implements Serializable { + private static final long serialVersionUID = -1416102274320519092L; + private String customerId; + private Integer min; + private Integer max; +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java index e93d9badaa..ce2063c361 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java @@ -178,5 +178,6 @@ public interface OperCustomizeOpenFeignClient { */ @PostMapping("/oper/customize/icformitemoptions/getItemConditions") Result> getOptionsMap(@RequestBody IcFormOptionsQueryFormDTO input); - + @PostMapping("/oper/customize/icresicategorystatsconfig/getYlfnValue") + Result> getYlfnValue(); } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java index e59af2b818..70debfecf3 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java @@ -142,4 +142,9 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getOptionsMap", input); } + @Override + public Result> getYlfnValue() { + return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getYlfnValue", null); + } + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcResiCategoryStatsConfigController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcResiCategoryStatsConfigController.java index 775001770f..e8dbf8b1af 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcResiCategoryStatsConfigController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcResiCategoryStatsConfigController.java @@ -26,6 +26,7 @@ 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.IcResiCategoryStatsConfigDTO; +import com.epmet.dto.result.YlfnValueResultDTO; import com.epmet.excel.IcResiCategoryStatsConfigExcel; import com.epmet.service.IcResiCategoryStatsConfigService; import org.springframework.beans.factory.annotation.Autowired; @@ -96,4 +97,9 @@ public class IcResiCategoryStatsConfigController { return new Result>().ok(icResiCategoryStatsConfigService.getCategoryList(dto)); } + @PostMapping("getYlfnValue") + public Result> getYlfnValue() { + return new Result>().ok(icResiCategoryStatsConfigService.getYlfnValue()); + } + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcResiCategoryStatsConfigEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcResiCategoryStatsConfigEntity.java index d0201db93d..4a292260b9 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcResiCategoryStatsConfigEntity.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcResiCategoryStatsConfigEntity.java @@ -80,4 +80,12 @@ public class IcResiCategoryStatsConfigEntity extends BaseEpmetEntity { */ private Integer sort; + /** + * 自动匹配:开启1;不匹配:0 + */ + private String autoMatching; + /** + * 育龄妇女年龄范围,英文逗号隔开的数字例如:18,49 + */ + private String ylfnValue; } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcResiCategoryStatsConfigService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcResiCategoryStatsConfigService.java index f9092491aa..6f151130dd 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcResiCategoryStatsConfigService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcResiCategoryStatsConfigService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.result.CustomerCategoryShowAndWarnListResultDTO; +import com.epmet.dto.result.YlfnValueResultDTO; import com.epmet.entity.IcResiCategoryStatsConfigEntity; import java.util.List; @@ -111,4 +112,14 @@ public interface IcResiCategoryStatsConfigService extends BaseService getCustomerCategoryShowAndWarnList(String customerId); + /** + * 获取育龄妇女配置 + * + * @Param + * @Return {@link List< YlfnValueResultDTO>} + * @Author zhaoqifeng + * @Date 2022/9/8 15:50 + */ + List getYlfnValue(); + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcResiCategoryStatsConfigServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcResiCategoryStatsConfigServiceImpl.java index d5bfdbd521..a00f800733 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcResiCategoryStatsConfigServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcResiCategoryStatsConfigServiceImpl.java @@ -22,11 +22,14 @@ 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.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcResiCategoryStatsConfigDao; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.result.CustomerCategoryShowAndWarnListResultDTO; +import com.epmet.dto.result.YlfnValueResultDTO; import com.epmet.entity.IcResiCategoryStatsConfigEntity; import com.epmet.redis.IcResiCategoryStatsConfigRedis; import com.epmet.service.IcResiCategoryStatsConfigService; @@ -37,6 +40,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; /** * 居民类别配置表 @@ -137,4 +141,33 @@ public class IcResiCategoryStatsConfigServiceImpl extends BaseServiceImpl(); } + /** + * 获取育龄妇女配置 + * + * @Param + * @Return {@link List< YlfnValueResultDTO >} + * @Author zhaoqifeng + * @Date 2022/9/8 15:50 + */ + @Override + public List getYlfnValue() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiCategoryStatsConfigEntity::getAutoMatching, NumConstant.ONE_STR); + wrapper.eq(IcResiCategoryStatsConfigEntity::getColumnName, "IS_YLFN"); + wrapper.isNotNull(IcResiCategoryStatsConfigEntity::getYlfnValue); + wrapper.ne(IcResiCategoryStatsConfigEntity::getYlfnValue,StrConstant.EPMETY_STR); + List list = baseDao.selectList(wrapper); + if(CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + return list.stream().map(item -> { + YlfnValueResultDTO dto = new YlfnValueResultDTO(); + dto.setCustomerId(item.getCustomerId()); + String[] ages = item.getYlfnValue().split(StrConstant.COMMA); + dto.setMin(Integer.valueOf(ages[0])); + dto.setMax(Integer.valueOf(ages[1])); + return dto; + }).collect(Collectors.toList()); + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.38__ylfnv.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.38__ylfnv.sql new file mode 100644 index 0000000000..4ff1496be2 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.38__ylfnv.sql @@ -0,0 +1,4 @@ +alter table ic_resi_category_stats_config + add COLUMN `AUTO_MATCHING` varchar(1) NOT NULL DEFAULT '0' COMMENT '自动匹配:开启1;不匹配:0' after SORT; + +alter table ic_resi_category_stats_config add COLUMN `YLFN_VALUE` varchar(32) DEFAULT NULL COMMENT '育龄妇女年龄范围,英文逗号隔开的数字例如:18,49' after AUTO_MATCHING; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcResiCategoryStatsConfigDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcResiCategoryStatsConfigDao.xml index f138b59d0d..49ec2d3bbd 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcResiCategoryStatsConfigDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcResiCategoryStatsConfigDao.xml @@ -26,6 +26,7 @@ select a.ID as id, a.LABEL as label, + a.COLUMN_NAME as columnName, a.MANAGEMENT_ICON as managementIcon, a.DATA_ICON as dataIcon, a.HOUSE_SHOW_ICON as houseShowIcon, @@ -34,7 +35,9 @@ b.LEVEL_1 as level1, b.LEVEL_2 as level2, b.LEVEL_3 as level3, - b.WARN + b.WARN, + a.AUTO_MATCHING as autoMatching, + a.YLFN_VALUE as ylfnValue from ic_resi_category_stats_config a left join ic_resi_category_warn_config b on a.TABLE_NAME = b.TABLE_NAME and a.COLUMN_NAME = b.COLUMN_NAME and b.DEL_FLAG =0 and b.CUSTOMER_ID = #{customerId} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java index 7994bf7d8d..d409b089b6 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java @@ -66,6 +66,12 @@ public class ResiGroupDTO implements Serializable { */ private String gridId; + /** + * 所属党组织 + */ + private String partyOrgId; + private String partyOrgPids; + /** * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed) Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过” diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java index bdfd703f91..404fc0d7e6 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java @@ -17,6 +17,8 @@ public class ApplyCreateGroupFormDTO implements Serializable { private static final long serialVersionUID = 1570620480398949075L; public interface AddUserInternalGroup { } + public interface AddPartyOrgGroup { + } /** * 添加用户操作的用户可见异常分组 * 该分组用于校验需要返回给前端错误信息提示的列,需要继承CustomerClientShowGroup @@ -69,6 +71,10 @@ public class ApplyCreateGroupFormDTO implements Serializable { @NotBlank(message = "app不能为空",groups ={AddUserInternalGroup.class}) private String app; + @NotBlank(message = "所属党组织不能为空",groups ={AddPartyOrgGroup.class}) + private String partyOrgId; + private String partyOrgPids; + /** * 小组是否允许参观:允许:open;不允许:closed */ diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java index ed56de167a..ccf51fe58c 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java @@ -35,5 +35,6 @@ public class EditGroupFormDTO { @NotBlank(message = "组介绍不能为空", groups = { SubmitGroupEditVG.class }) @Length(max = 500, message = "组介绍长度不能超过500个字", groups = { SubmitGroupEditVG.class }) private String groupIntroduction; + private String partyOrgId; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java index bb48e14b91..d3d1e38ddf 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java @@ -67,5 +67,6 @@ public class ApplyingGroupDetailResult2DTO implements Serializable { * 未读已读标识 unread read * */ private String readFlag; + private String partyOrgName; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java index 205d2d433c..c528e049d6 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java @@ -77,4 +77,6 @@ public class ApplyingGroupDetailResultDTO implements Serializable { * */ private String operationId; + private String partyOrgId; + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupDetailResultDTO.java index 7d08176f31..f7444bdc17 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupDetailResultDTO.java @@ -26,4 +26,8 @@ public class GroupDetailResultDTO { private String leaderId; /** 当前用户是否是群主 */ private String groupLeaderFlag; + /** + * 所属党组织 + */ + private String partyOrgId; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java index 0cf88d6802..08e2bb91ee 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java @@ -39,4 +39,5 @@ public class GroupEditionDetailResultDTO implements Serializable { * 群主的昵称 xx路-xx先生/女士 */ private String groupLeaderName; + private String partyOrgName; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java index 9244410c3b..bc092e7205 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java @@ -43,6 +43,8 @@ public class ResiGroupMemberDTO implements Serializable { * 用户id,来源于customer_user.id */ private String customerUserId; + private String customerUserName; + private String customerUserMobile; /** * 小组id: 来源于resi_group表id diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 6f0ae98c44..2adf4c9ddc 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.*; @@ -13,12 +14,14 @@ import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallbackFactory; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -320,4 +323,29 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("/resi/group/group/list-groups-by-member") Result> listGroupsByMember(@RequestBody GroupsByMemberFormDTO formDTO); + + /** + * 获取客户下支部小组,根据所属党组织分组 + * + * @Param + * @Return {@link Result>>} + * @Author zhaoqifeng + * @Date 2022/8/16 14:04 + */ + @PostMapping("/resi/group/group/getBranchGroupList") + Result>> getBranchGroupList(); + + /** + * @Author sun + * @Description 查询小组成员列表 + **/ + @PostMapping("/resi/group/member/groupmemberlist") + Result> groupMemberList(@RequestBody List groupIdList); + + /** + * @Author sun + * @Description 查询支部下党小组列表 + **/ + @PostMapping("/resi/group/group/partygrouplist/{partyOrgId}") + Result> partyGroupList(@PathVariable String partyOrgId); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 9e228b2dce..e3c6b08c47 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.*; @@ -13,9 +14,11 @@ import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -234,4 +237,20 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result> listGroupsByMember(GroupsByMemberFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listGroupsByMember", formDTO); } + + @Override + public Result>> getBranchGroupList() { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getBranchGroupList", null); + } + + @Override + public Result> groupMemberList(List groupIdList) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupMemberList", groupIdList); + } + + @Override + public Result> partyGroupList(String partyOrgId) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "partyGroupList", partyOrgId); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index e374a32136..94da912a7b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java @@ -34,12 +34,14 @@ import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO; import com.epmet.resi.group.dto.member.form.ResiIdentityFormDTO; import com.epmet.resi.group.dto.member.result.AchievementResultDTO; import com.epmet.resi.group.enums.SearchScopeTypeEnum; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; +import java.util.Map; /** @@ -399,7 +401,7 @@ public class ResiGroupController { @PostMapping("submit-edit") public Result submitGroupEdit(@RequestBody EditGroupFormDTO form, @LoginUser TokenDto tokenDto){ ValidatorUtils.validateEntity(form, EditGroupFormDTO.SubmitGroupEditVG.class); - resiGroupService.submitGroupEdit(form.getGroupId(), form.getGroupName(), form.getGroupHeadPhoto(), form.getGroupIntroduction(), tokenDto.getUserId()); + resiGroupService.submitGroupEdit(form.getGroupId(), form.getGroupName(), form.getGroupHeadPhoto(), form.getGroupIntroduction(), tokenDto.getUserId(), form.getPartyOrgId()); return new Result(); } @@ -649,4 +651,28 @@ public class ResiGroupController { List groups = resiGroupService.listGroupsByMember(userId, gridId); return new Result>().ok(groups); } + + /** + * 获取客户下支部小组,根据所属党组织分组 + * + * @Param tokenDto + * @Return {@link Result< Map< String, List< IcPartyOrgTreeDTO>>>} + * @Author zhaoqifeng + * @Date 2022/8/16 14:02 + */ + @PostMapping("getBranchGroupList") + public Result>> getBranchGroupList(@LoginUser TokenDto tokenDto) { + return new Result>>().ok(resiGroupService.getBranchGroupList(tokenDto.getCustomerId())); + } + + /** + * @Author sun + * @Description 查询支部下党小组列表 + **/ + @PostMapping("partygrouplist/{partyOrgId}") + Result> partyGroupList(@PathVariable String partyOrgId){ + return new Result>().ok(resiGroupService.partyGroupList(partyOrgId)); + } + + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java index 6b12507ce9..4675312559 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java @@ -346,4 +346,6 @@ public interface ResiGroupDao extends BaseDao { * @date 2021.09.08 14:00:52 */ List listGroupsByMember(@Param("memberUserId") String memberUserId, @Param("gridId") String gridId); + + List getMembersByGroup(@Param("ids")List ids); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java index a40c7b2d1f..ba6f29f424 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java @@ -52,6 +52,12 @@ public class GroupEditSubmitRecordEntity extends BaseEpmetEntity { */ private String gridId; + /** + * 所属党组织 + */ + private String partyOrgId; + private String partyOrgPids; + /** * 头像 */ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java index da522bfcab..cc35c91b5b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java @@ -62,6 +62,12 @@ public class ResiGroupEntity extends BaseEpmetEntity { */ private String gridId; + /** + * 所属党组织 + */ + private String partyOrgId; + private String partyOrgPids; + /** * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed) Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过” diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index 3aaab6e4d4..e03178d06b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java @@ -30,6 +30,7 @@ import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO; import com.epmet.resi.group.dto.member.result.AchievementResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import java.util.HashMap; import java.util.List; @@ -310,7 +311,7 @@ public interface ResiGroupService extends BaseService { GroupDetailResultDTO getGroupDetail(String groupId); - void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId); + void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId, String partyOrgId); /** * @Description 工作端 查询组变更待审核列表 @@ -471,4 +472,15 @@ public interface ResiGroupService extends BaseService { * @date 2021.09.08 13:59:31 */ List listGroupsByMember(String memberUserId, String gridId); + + /** + * 获取客户下支部小组,根据所属党组织分组 + * @Param customerId + * @Return {@link Map< String, List>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:49 + */ + Map> getBranchGroupList(String customerId); + + List partyGroupList(String partyOrgId); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 8d502c339d..95b136c9ac 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg; import com.epmet.commons.tools.constant.*; import com.epmet.commons.tools.enums.AchievementTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.scan.param.ImgScanParamDTO; @@ -43,6 +44,7 @@ import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dto.form.*; +import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.UserInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserRoleResultDTO; @@ -83,6 +85,9 @@ import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO; import com.epmet.resi.group.dto.member.result.AchievementResultDTO; import com.epmet.resi.group.dto.member.result.GroupAchievementDTO; import com.epmet.resi.group.enums.SearchScopeTypeEnum; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; @@ -97,6 +102,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionSynchronizationAdapter; import org.springframework.transaction.support.TransactionSynchronizationManager; +import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; @@ -120,7 +126,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl page(Map params) { @@ -457,6 +465,19 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(applyCreateGroupFormDTO.getPartyOrgId())) { + applyCreateGroupFormDTO.setPartyOrgPids(partyOrgResult.getData().get(applyCreateGroupFormDTO.getPartyOrgId()).getOrgPids().concat(StrConstant.COLON).concat(applyCreateGroupFormDTO.getPartyOrgId())); + } else { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选党组织不存在", "所选党组织不存在"); + } + } + String roleName = ""; if(NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag())){ roleName = ModuleConstant.PARTYMEMBER; @@ -586,6 +607,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl().ok(ConvertUtils.sourceToTarget(detail, ApplyingGroupDetailResult2DTO.class)); + ApplyingGroupDetailResult2DTO result = ConvertUtils.sourceToTarget(detail, ApplyingGroupDetailResult2DTO.class); + + if (StringUtils.isNotBlank(detail.getPartyOrgId())) { + Result> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(detail.getPartyOrgId())) { + result.setPartyOrgName(partyOrgResult.getData().get(detail.getPartyOrgId()).getPartyOrgName()); + } + } + + + return new Result().ok(result); } @Override @@ -1438,6 +1474,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(partyOrgId)) { + partyOrgPids = partyOrgResult.getData().get(partyOrgId).getOrgPids().concat(StrConstant.COLON).concat(partyOrgId); + } else { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选党组织不存在", "所选党组织不存在"); + } + } // 3.内容检查 scanGroupEditContent(groupName, groupIntroduction, groupHeadPhoto); @@ -1537,6 +1590,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(edit.getPartyOrgId())) { + result.setPartyOrgName(partyOrgResult.getData().get(edit.getPartyOrgId()).getPartyOrgName()); + } + } + return result; } @@ -1863,4 +1928,64 @@ public class ResiGroupServiceImpl extends BaseServiceImpl listGroupsByMember(String memberUserId, String gridId) { return baseDao.listGroupsByMember(memberUserId, gridId); } + + /** + * 获取客户下支部小组,根据所属党组织分组 + * + * @param customerId + * @Param customerId + * @Return {@link Map< String, List>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:49 + */ + @Override + public Map> getBranchGroupList(String customerId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ResiGroupEntity::getCustomerId, customerId); + wrapper.eq(ResiGroupEntity::getGroupType, ModuleConstant.GROUP_TYPE_BRANCH); + List entityList = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(entityList)) { + return Collections.emptyMap(); + } + List groupIds = entityList.stream().map(m -> m.getId()).collect(Collectors.toList()); + List membersByGroup = baseDao.getMembersByGroup(groupIds); + Result> listResult = epmetUserOpenFeignClient.queryUserBaseInfo(membersByGroup.stream().map(m -> m.getCustomerUserId()).collect(Collectors.toList())); + if (!listResult.success()){ + throw new EpmetException("查询居民信息失败..."); + } + membersByGroup.stream().forEach(m -> listResult.getData().stream().filter(u -> u.getUserId().equals(m.getCustomerUserId())).forEach(u -> { + m.setCustomerUserMobile(u.getMobile()); + m.setCustomerUserName(u.getRealName()); + })); + List list = entityList.stream().filter(i -> StringUtils.isNotBlank(i.getPartyOrgId())).map(item -> { + IcPartyOrgTreeDTO dto = new IcPartyOrgTreeDTO(); + dto.setId(item.getId()); + dto.setOrgPids(item.getPartyOrgPids()); + dto.setPid(item.getPartyOrgId()); + dto.setPartyOrgType(NumConstant.SIX_STR); + dto.setPartyOrgName(item.getGroupName()); + return dto; + }).collect(Collectors.toList()); + list.stream().forEach(l -> membersByGroup.stream().filter(m -> m.getResiGroupId().equals(l.getId())).forEach(m -> { + l.setPrincipal(m.getCustomerUserName()); + l.setPrincipalMobile(m.getCustomerUserMobile()); + })); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.groupingBy(IcPartyOrgTreeDTO::getPid)); + } + + @Override + public List partyGroupList(String partyOrgId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ResiGroupEntity::getPartyOrgId, partyOrgId); + wrapper.eq(ResiGroupEntity::getDelFlag, NumConstant.ZERO_STR); + List entityList = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(entityList)) { + return new ArrayList<>(); + } + return ConvertUtils.sourceToTarget(entityList, ResiGroupDTO.class); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java index c3d7547d07..cf99c5a61b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java @@ -24,16 +24,14 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.ResiGroupMemberService; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.form.*; import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO; import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO; import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO; import com.epmet.resi.group.dto.member.result.JoinGroupApplyRealTimeResultDTO; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -206,4 +204,10 @@ public class ResiGroupMemberController { ValidatorUtils.validateEntity(param); return new Result().ok(operationService.applyEnterByLink(param)); } + + @PostMapping("groupmemberlist") + public Result> groupMemberList(@RequestBody List groupIdList){ + return new Result>().ok(resiGroupMemberService.groupMemberList(groupIdList)); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java index daf4e23248..c6c5501de7 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java @@ -181,4 +181,6 @@ public interface ResiGroupMemberDao extends BaseDao { int countAllMembers(@Param("customerId") String customerId, @Param("groupId") String groupId); int exitGroupById(@Param("id") String id, @Param("updatedBy") String updatedBy); + + List groupMemberList(@Param("groupIdList") List groupIdList); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java index 8027971cb6..2355fd5a2a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java @@ -262,4 +262,6 @@ public interface ResiGroupMemberService extends BaseService groupMemberList(List groupIdList); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index a933306cb2..773bf9ebf1 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -1036,4 +1036,9 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl groupMemberList(List groupIdList) { + return baseDao.groupMemberList(groupIdList); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.26__add_party_org_.sql b/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.26__add_party_org_.sql new file mode 100644 index 0000000000..1747c6c553 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.26__add_party_org_.sql @@ -0,0 +1,8 @@ +ALTER TABLE `epmet_resi_group`.`resi_group` + ADD COLUMN `PARTY_ORG_ID` varchar(64) NULL COMMENT '党支部ID' AFTER `CUSTOMER_ID`, + ADD COLUMN `PARTY_ORG_PIDS` varchar(255) NULL COMMENT '党支部的所有上级ID' AFTER `PARTY_ORG_ID`; + + +ALTER TABLE `epmet_resi_group`.`group_edit_submit_record` + ADD COLUMN `PARTY_ORG_ID` varchar(64) NULL COMMENT '党支部ID' AFTER `GRID_ID`, + ADD COLUMN `PARTY_ORG_PIDS` varchar(255) NULL COMMENT '党支部的所有上级ID' AFTER `PARTY_ORG_ID`; \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.27__update_partygroupdesc.sql b/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.27__update_partygroupdesc.sql new file mode 100644 index 0000000000..a8660c417c --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.27__update_partygroupdesc.sql @@ -0,0 +1,6 @@ +update resi_group_setup s +set s.`NAME`='党小组', + s.`DESCRIBE`='党小组是党支部的组成部分,党小组长可以申请创建线上党小组,从而便于组织线上思想学习、工作交流、党小组生活会等各类事项活动。' , + s.UPDATED_TIME=NOW() +where s.DEL_FLAG='0' + and s.`NAME`='支部小组'; \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml index d282690dea..0504e248d1 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml @@ -8,6 +8,7 @@ group_id, customer_id, grid_id, + PARTY_ORG_ID, group_head_photo, group_name, group_introduction, @@ -95,6 +96,7 @@ GROUP_NAME, GROUP_HEAD_PHOTO, GROUP_INTRODUCTION, + PARTY_ORG_ID, CREATED_BY, GRID_ID FROM diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index a9a11ac36f..c235a5826a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -354,6 +354,7 @@ gro.GROUP_NAME AS groupName, gro.GROUP_HEAD_PHOTO AS groupHeadPhoto, gro.GROUP_INTRODUCTION AS groupIntroduction, + gro.PARTY_ORG_ID AS partyOrgId, oper.READ_FLAG AS readFlag, oper.MESSAGE_TEXT AS messageText, oper.CREATED_TIME AS createdTime, @@ -1071,4 +1072,15 @@ and resi_group.STATE = 'approved' order by resi_group.CREATED_TIME desc + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml index ff7060f839..af37ca8cc6 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml @@ -250,4 +250,19 @@ WHERE id = #{id} + + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActDTO.java new file mode 100644 index 0000000000..15094578aa --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActDTO.java @@ -0,0 +1,180 @@ +package com.epmet.resi.partymember.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 党建组织活动 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Data +public class IcPartyActDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 组织ID:当前工作人员所属组织id + */ + private String orgId; + + /** + * 组织ID的上级;如果org_id是根组织,那此列=0 + */ + private String pid; + + /** + * ORG_ID全路径,包含自身 + */ + private String orgIdPath; + + /** + * 发布活动党组织 + */ + private String publishPartyOrgId; + + /** + * 发布活动党组织名称 + */ + private String publishPartyOrgName; + + /** + * 参加活动党组织ID的上级节点 + */ + private String publishOrgPid; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + private String publishOrgType; + + /** + * PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + private String publishOrgPath; + + /** + * 活动类型,0:支部党员大会;1:支部委员会;2:党小组会;3:党课;4:主题党日;5:为民服务活动; + */ + private String actType; + + /** + * 活动举办时间:yyyy + */ + private String holdYearId; + + /** + * 活动举办时间:yyyyMM + */ + private String holdMonthId; + + /** + * 举办活动时间 + */ + private Date holdTime; + + /** + * 活动主题 + */ + private String topic; + + /** + * 活动地点 + */ + private String address; + + /** + * 活动地点纬度 + */ + private String latitude; + + /** + * 活动地点经度 + */ + private String longitude; + + /** + * 活动开始前几天 + */ + private Integer autoPublicType; + + /** + * 自动发布时间,保存时算好时间存在这里 + */ + private Date autoPublicTime; + + /** + * 参加人员类型,0:全体党员;1:支部委员 + */ + private String joinUserType; + + /** + * 是否自动通知参加人员,0否;1是 + */ + private String isAutoInform; + + /** + * 活动介绍 + */ + private String introduce; + + /** + * 是否发布,0未发布;1已发布; + */ + private String isPublish; + + /** + * 活动发布人 + */ + private String publishStaffId; + + /** + * 活动发布人姓名 + */ + private String publishStaffName; + + /** + * 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-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActOrgDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActOrgDTO.java new file mode 100644 index 0000000000..0bfc7c123b --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActOrgDTO.java @@ -0,0 +1,84 @@ +package com.epmet.resi.partymember.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 参加活动党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Data +public class IcPartyActOrgDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private String id; + + /** + * 活动id + */ + private String icPartyActId; + + /** + * 客户ID + */ + private String customerId; + + /** + * 参加活动党组织ID,groupId + */ + private String joinOrgId; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + private String orgType; + + /** + * 参加活动党组织ID的上级节点 + */ + private String pid; + + /** + * PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + private String joinOrgPath; + + /** + * 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-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActSignInRecordDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActSignInRecordDTO.java new file mode 100644 index 0000000000..8800ba1170 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcPartyActSignInRecordDTO.java @@ -0,0 +1,94 @@ +package com.epmet.resi.partymember.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 党组织活动签到记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Data +public class IcPartyActSignInRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 活动id + */ + private String icPartyActId; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 签到用户id + */ + private String epmetUserId; + + /** + * 签到用户姓名 + */ + private String userRealName; + + /** + * 签到地点 + */ + private String address; + + /** + * 签到地点纬度 + */ + private String latitude; + + /** + * 签到地点经度 + */ + private String longitude; + + /** + * 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-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcScheduleDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcScheduleDTO.java new file mode 100644 index 0000000000..c96a47b194 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/IcScheduleDTO.java @@ -0,0 +1,105 @@ +package com.epmet.resi.partymember.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 日程表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Data +public class IcScheduleDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 所属行政组织ID:当前工作人员所属组织id + */ + private String orgId; + + /** + * 组织ID的上级;如果org_id是根组织,那此列=0 + */ + private String pid; + + /** + * ORG_ID全路径,包含自身 + */ + private String orgIdPath; + + /** + * 当前登录用户userId + */ + private String staffId; + + /** + * 日程标题(35字) + */ + private String title; + + /** + * 提醒时间;其实就是日程所属日期 + */ + private Date remindTime; + + /** + * 发生时间 + */ + private Date happenedTime; + + /** + * 是否公开,0:仅自己可见;1:组织内其他人可见 + */ + private String isPublic; + + /** + * 备注(500字) + */ + private String remark; + + /** + * 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-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/BatchAddPartyActFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/BatchAddPartyActFormDTO.java new file mode 100644 index 0000000000..128eaaae3a --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/BatchAddPartyActFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.resi.partymember.dto.icpartyact.form; + +import lombok.Data; + +import javax.validation.Valid; +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/8/22 12:25 + */ +@Data +public class BatchAddPartyActFormDTO implements Serializable { + private static final long serialVersionUID = 2616937693642413548L; + private List delActIds; + @Valid + private List actList; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/IcPartyActAddOrUpdateFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/IcPartyActAddOrUpdateFormDTO.java new file mode 100644 index 0000000000..bb1b090fe7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/IcPartyActAddOrUpdateFormDTO.java @@ -0,0 +1,172 @@ +package com.epmet.resi.partymember.dto.icpartyact.form; + +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +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.Date; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/8/19 9:58 + */ +@Data +public class IcPartyActAddOrUpdateFormDTO implements Serializable { + private static final long serialVersionUID = -2554822505755122067L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + public interface UpdateUserInternalGroup { + } + + public interface UpdateUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "customerId不能为空", groups = {AddUserInternalGroup.class, UpdateUserInternalGroup.class}) + private String customerId; + + @NotBlank(message = "publishStaffId不能为空", groups = {AddUserInternalGroup.class, UpdateUserInternalGroup.class}) + private String publishStaffId; + + @NotBlank(message = "icPartyActId不能为空", groups = {UpdateUserInternalGroup.class}) + private String icPartyActId; + + /** + * 活动类型,来源于ic_party_act_type_dict + */ + @NotBlank(message = "活动类型不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String actType; + + /** + * 活动举办时间:yyyy + */ + @NotBlank(message = "holdYearId不能为空", groups = {AddUserInternalGroup.class, UpdateUserInternalGroup.class}) + private String holdYearId; + + /** + * 活动举办时间:yyyyMM + */ + @NotBlank(message = "holdMonthId不能为空", groups = {AddUserInternalGroup.class, UpdateUserInternalGroup.class}) + private String holdMonthId; + + /** + * 举办活动时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "活动举办时间不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private Date holdTime; + + /** + * 活动主题 + */ + @NotBlank(message = "活动主题不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + @Length(max = 35, message = "活动主题最多输入35个字", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String topic; + + /** + * 活动地点 + */ + @NotBlank(message = "活动地点不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + @Length(max = 100, message = "活动地点最多输入100字", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String address; + + /** + * 活动地点纬度 + */ + private String latitude; + + /** + * 活动地点经度 + */ + private String longitude; + + /** + * 活动开始前几天,字典接口返回的 + * 0,1,3,5,7天 + */ + @NotNull(message = "自动发布时间不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private Integer autoPublicType; + /** + * 发布活动党组织 + */ + @NotBlank(message = "发布活动党组织不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String publishPartyOrgId; + + /** + * 发布活动党组织名称 + */ + @NotBlank(message = "发布活动党组织名称不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String publishPartyOrgName; + + /** + * 发布活动党组织ID的上级节点 + */ + @NotBlank(message = "参加活动党组织ID的上级节点不能为空", groups = {AddUserInternalGroup.class, UpdateUserInternalGroup.class}) + private String publishOrgPid; + + /** + * 发布活动党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + @NotBlank(message = "发布活动党组织类型不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String publishOrgType; + + /** + * 发布活动党组织PUBLISH_PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + // 后端接口内部去赋值,无需前端传入了 + private String publishOrgPath; + + /** + * 发布活动党组织路径,前端用此列 + * 先放开不限制必填 + */ + // @NotBlank(message = "publishOrgPathShow不能为空", groups = {AddUserInternalGroup.class, UpdateUserInternalGroup.class}) + private String publishOrgPathShow; + + /** + * 参加人员类型,0:全体党员;1:支部委员 + */ + @NotBlank(message = "参加人员类型不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String joinUserType; + + /** + * 是否自动通知参加人员,0否;1是 + */ + @NotBlank(message = "自动通知参加人员不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String isAutoInform; + + /** + * 活动介绍 + */ + // @NotBlank(message = "活动介绍不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + @Length(max = 1000, message = "活动介绍最多输入1000字", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private String introduce; + + /** + * 参加活动党组织 + */ + @Valid + @NotEmpty(message = "参加活动党组织不能为空", groups = {AddUserShowGroup.class, UpdateUserShowGroup.class}) + private List joinOrgList; + + + /** + * 附件表 + */ + private List attachmentList; + +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/IcPartyActPageFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/IcPartyActPageFormDTO.java new file mode 100644 index 0000000000..7e35c92f39 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/IcPartyActPageFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.resi.partymember.dto.icpartyact.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/8/19 10:02 + */ +@Data +public class IcPartyActPageFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -8171649039313981541L; + // tokenDto取值 + @NotBlank(message = "customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; + @NotBlank(message = "publishStaffId不能为空",groups = AddUserInternalGroup.class) + private String publishStaffId; + /** + * 接口内部查询 + * 当前登录用户所属的行政组织id + */ + private String staffAgencyId; + // 界面传参数 + private String publishPartyOrgId; + private String startDate; + private String endDate; + private String address; + private String topic; + private String isPublish; + private String actType; + + /** + * 工作端小程序用yyyy + */ + private String holdYearId; + /** + * 工作端小程序用yyyyMM + */ + private String holdMonthId; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/JoinOrgDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/JoinOrgDTO.java new file mode 100644 index 0000000000..81b141c93e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/form/JoinOrgDTO.java @@ -0,0 +1,71 @@ +package com.epmet.resi.partymember.dto.icpartyact.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/8/19 10:31 + */ +@Data +public class JoinOrgDTO implements Serializable { + private static final long serialVersionUID = 6994576136698569857L; + + //前端传入 + /** + * 参加活动党组织ID,groupId + */ + @NotBlank(message = "参加活动党组织不能为空", groups = {IcPartyActAddOrUpdateFormDTO.AddUserShowGroup.class, IcPartyActAddOrUpdateFormDTO.UpdateUserShowGroup.class}) + private String joinOrgId; + /** + * 参加党组织名称 + */ + @NotBlank(message = "参加党组织名称不能为空", groups = {IcPartyActAddOrUpdateFormDTO.AddUserShowGroup.class, IcPartyActAddOrUpdateFormDTO.UpdateUserShowGroup.class}) + private String joinOrgName; + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + @NotBlank(message = "参加活动党组织类型不能为空", groups = {IcPartyActAddOrUpdateFormDTO.AddUserShowGroup.class, IcPartyActAddOrUpdateFormDTO.UpdateUserShowGroup.class}) + private String orgType; + + /** + * 参加活动党组织ID的上级节点 + */ + @NotBlank(message = "参加活动党组织不能为空", groups = {IcPartyActAddOrUpdateFormDTO.AddUserInternalGroup.class, IcPartyActAddOrUpdateFormDTO.UpdateUserInternalGroup.class}) + private String pid; + + /** + * PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + // 后端接口内部去赋值,无需前端传入了 + private String joinOrgPath; + + /** + * PARTY_ORG_ID的全路径,前端用 + * 先放开不限制必填 + */ + // @NotBlank(message = "joinOrgPathShow不能为空", groups = {IcPartyActAddOrUpdateFormDTO.AddUserInternalGroup.class, IcPartyActAddOrUpdateFormDTO.UpdateUserInternalGroup.class}) + private String joinOrgPathShow; + + //接口内部赋值 + /** + * 活动id + */ + private String icPartyActId; + + /** + * 客户ID + */ + private String customerId; + + /** + * ic_party_act_org.id + * 详情接口返回 + */ + private String icPartyActOrgRecId; + +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartActTypeDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartActTypeDTO.java new file mode 100644 index 0000000000..5242b94d7b --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartActTypeDTO.java @@ -0,0 +1,17 @@ +package com.epmet.resi.partymember.dto.icpartyact.result; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/8/18 18:45 + */ +@Data +public class IcPartActTypeDTO { + private String label; + private String value; + private Integer yearCount; + private String frequencyDesc; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartyActDetailResDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartyActDetailResDTO.java new file mode 100644 index 0000000000..564f101fb9 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartyActDetailResDTO.java @@ -0,0 +1,142 @@ +package com.epmet.resi.partymember.dto.icpartyact.result; + +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import com.epmet.resi.partymember.dto.icpartyact.form.JoinOrgDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/8/19 10:08 + */ +@Data +public class IcPartyActDetailResDTO implements Serializable { + private static final long serialVersionUID = -8102085878449811977L; + private String customerId; + + private String publishStaffId; + + private String icPartyActId; + + /** + * 活动类型,来源于ic_party_act_type_dict + */ + private String actType; + private String actTypeName; + + /** + * 活动举办时间:yyyy + */ + private String holdYearId; + + /** + * 活动举办时间:yyyyMM + */ + private String holdMonthId; + + /** + * 举办活动时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date holdTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date autoPublicTime; + + /** + * 活动主题 + */ + private String topic; + + /** + * 活动地点 + */ + private String address; + + /** + * 活动地点纬度 + */ + private String latitude; + + /** + * 活动地点经度 + */ + private String longitude; + + /** + * 活动开始前几天 + */ + private Integer autoPublicType; + + private String autoPublicTypeDesc; + /** + * 发布活动党组织 + */ + private String publishPartyOrgId; + + /** + * 发布活动党组织名称 + */ + private String publishPartyOrgName; + + /** + * 发布活动党组织ID的上级节点 + */ + private String publishOrgPid; + + /** + * 发布活动党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + private String publishOrgType; + + /** + * 发布活动党组织PUBLISH_PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + private String publishOrgPath; + + /** + *发布活动党组织路径,前端用此列 + */ + private String publishOrgPathShow; + + /** + * 参加人员类型,0:全体党员;1:支部委员 + */ + private String joinUserType; + private String joinUserTypeName; + + + /** + * 是否自动通知参加人员,0否;1是 + */ + private String isAutoInform; + + /** + * 活动介绍 + */ + private String introduce; + + /** + * 参加活动党组织 + */ + private List joinOrgList; + + /** + * 附件表 + */ + private List attachmentList; + + private Boolean isSignIn; + + private String publishStaffName; + /** + * 是否发布,0未发布;1已发布; + */ + private String isPublish; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartyActPageResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartyActPageResultDTO.java new file mode 100644 index 0000000000..f28f8a0083 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/icpartyact/result/IcPartyActPageResultDTO.java @@ -0,0 +1,83 @@ +package com.epmet.resi.partymember.dto.icpartyact.result; + +import com.epmet.resi.partymember.dto.icpartyact.form.JoinOrgDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/8/19 10:06 + */ +@Data +public class IcPartyActPageResultDTO implements Serializable { + private static final long serialVersionUID = 1414832133227703667L; + + private String icPartyActId; + /** + * 活动主题 + */ + private String topic; + + /** + * 发布活动党组织名称 + */ + private String publishPartyOrgName; + + /** + * 活动发布人姓名 + */ + private String publishStaffName; + + /** + * 活动类型,来源于ic_party_act_type_dict + */ + private String actType; + + /** + * 活动类型,来源于ic_party_act_type_dict + */ + private String actTypeName; + + /** + * 举办活动时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date holdTime; + + /** + * 活动地点 + */ + private String address; + + /** + * 是否发布,0未发布;1已发布; + */ + private String isPublish; + + /** + * 活动发布人 + */ + private String publishStaffId; + + //以下返参,用于导出 + /** + * 是否发布,0未发布;1已发布; + * 返回名称 + */ + private String isPublishName; + /** + * 参加人员类型,0:全体党员;1:支部委员 + */ + private String joinUserType; + private String joinUserTypeName; + + private List joinOrgList; + //导出用 + private String joinOrgNameStr; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyActTypeDictDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyActTypeDictDTO.java new file mode 100644 index 0000000000..bfcc4d97a2 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyActTypeDictDTO.java @@ -0,0 +1,77 @@ +package com.epmet.resi.partymember.dto.partyOrg; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 党组织活动类型字典表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-22 + */ +@Data +public class IcPartyActTypeDictDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 活动类型key + */ + private String typeKey; + + /** + * 活动名称 + */ + private String typeName; + + /** + * 每年几次 + */ + private Integer yearCount; + + /** + * 频次单位 + */ + private String frequencyUnit; + + /** + * 频次数量 + */ + private Integer frequencyCount; + + /** + * 频率描述 + */ + private String frequencyDesc; + + /** + * 排序 + */ + private Integer sort; + + /** + * 0未删除;1:已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + private String label; + private String value; + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java index b5d26e1ee6..a6ee2e449e 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java @@ -84,6 +84,21 @@ public class IcPartyOrgDTO implements Serializable { */ private String address; + /** + * 负责人 + */ + private String principal; + + /** + * 负责人staffId + */ + private String principalStaffId; + + /** + * 联系电话 + */ + private String principalMobile; + /** * 党组织介绍 */ diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/ActAndScheduleListFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/ActAndScheduleListFormDTO.java new file mode 100644 index 0000000000..46ee2bdaed --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/ActAndScheduleListFormDTO.java @@ -0,0 +1,43 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/19 13:52 + * @DESC + */ +@Data +public class ActAndScheduleListFormDTO implements Serializable { + + private static final long serialVersionUID = -6776882545589530612L; + + private String startDate; + private String endDate; + private String dateId; + private String yearId = ""; + + /** + * 是否本人创建的活动,1:是;0:否 + */ + private String isSelf; + + /** + * 党组织ID + */ + private String orgId; + + private String customerId; + private String staffId; + private String agencyId; + private String path; + + /** + * 当seachType = 'yearSearch'时,不需要查询党组织 + */ + private String searchType = ""; + + private String type = ""; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/AddOrEditScheduleFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/AddOrEditScheduleFormDTO.java new file mode 100644 index 0000000000..c1e50df6c7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/AddOrEditScheduleFormDTO.java @@ -0,0 +1,51 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2022/8/18 16:23 + * @DESC + */ +@Data +public class AddOrEditScheduleFormDTO implements Serializable { + + private static final long serialVersionUID = 6290505458783549828L; + + public interface AddScheduleForm{} + + private String scheduleId; + private String staffId; + private String customerId; + + /** + * 日程标题(35字) + */ + @NotBlank(message = "title不能为空",groups = AddScheduleForm.class) + private String title; + + /** + * 提醒时间;其实就是日程所属日期 + */ + @NotNull(message = "remindTime不能为空",groups = AddScheduleForm.class) + private Date remindTime; + + /** + * 是否公开,0:仅自己可见;1:组织内其他人可见 + */ + @NotBlank(message = "isPublic不能为空",groups = AddScheduleForm.class) + private String isPublic; + + @NotNull(message = "happenedTime不能为空",groups = AddScheduleForm.class) + private Date happenedTime; + + /** + * 备注(500字) + */ + private String remark; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java new file mode 100644 index 0000000000..c518b0ef7e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java @@ -0,0 +1,36 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/9/7 15:02 + * @DESC + */ +@Data +public class EditPrincipalFormDTO implements Serializable { + + private static final long serialVersionUID = -1006713792388125512L; + + /** + * 负责人 + */ + @NotBlank(message = "principal不能为空",groups = AddGroup.class) + private String principal; + + @NotBlank(message = "partyOrgId不能为空",groups = AddGroup.class) + private String partyOrgId; + + /** + * 联系电话 + */ + @NotBlank(message = "principalMobile不能为空",groups = AddGroup.class) + private String principalMobile; + + @NotBlank(message = "principalStaffId不能为空",groups = AddGroup.class) + private String principalStaffId; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/HomeMonthTotalFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/HomeMonthTotalFormDTO.java new file mode 100644 index 0000000000..cc9f2cdd8d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/HomeMonthTotalFormDTO.java @@ -0,0 +1,48 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/19 08:59 + * @DESC + */ +@Data +public class HomeMonthTotalFormDTO implements Serializable { + + private static final long serialVersionUID = 1128815856169903825L; + + public interface HomeMonthTotalForm{} + + /** + * 年份ID + */ + @NotBlank(message = "yearId不能为空",groups = HomeMonthTotalForm.class) + private String yearId; + + /** + * 党支部ID + */ + @NotBlank(message = "orgId不能为空",groups = HomeMonthTotalForm.class) + private String orgId; + + /** + * 是否本人创建的活动,1:是;0:否 + */ + @NotBlank(message = "isSelf不能为空",groups = HomeMonthTotalForm.class) + private String isSelf; + + private String staffId; + + private String customerId; + + /** + * 工作人员所属组织ID + */ + private String agencyId; + + // private String path; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/IcPartyActListFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/IcPartyActListFormDTO.java new file mode 100644 index 0000000000..e9095b546f --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/IcPartyActListFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class IcPartyActListFormDTO implements Serializable { + /** + * 活动类型,0:支部党员大会;1:支部委员会;2:党小组会;3:党课;4:主题党日;5:为民服务活动; + */ + private String actType; + /** + * 签到状态[已签到:signIn 未签到:unSignIn] + */ + private String signIn; + /** + * 标题内容 模糊检索 + */ + private String topic; + + //参加活动党组织ID,groupId + private String joinOrgId; + + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; + + //token中信息 + private String customerId; + private String userId; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/IcScheduleFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/IcScheduleFormDTO.java new file mode 100644 index 0000000000..859a8634fd --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/IcScheduleFormDTO.java @@ -0,0 +1,38 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class IcScheduleFormDTO implements Serializable { + /** + * 日程标题 + */ + private String title; + /** + * 是否公开,0:仅自己可见;1:组织内其他人可见 + */ + private String isPublic; + /** + * 提醒开始时间 + */ + private String startTime; + /** + * 提醒结束时间 + */ + private String endTime; + + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; + private String agencyId; + + //token中信息 + private String customerId; + private String staffId; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyActSignFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyActSignFormDTO.java new file mode 100644 index 0000000000..96c28eda43 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyActSignFormDTO.java @@ -0,0 +1,47 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Data +public class PartyActSignFormDTO implements Serializable { + /** + * 活动Id + */ + @NotBlank(message = "活动Id不能为空",groups = {UpdateGroup.class}) + private String icPartyActId; + /** + * 网格Id + */ + @NotBlank(message = "网格Id不能为空",groups = {AddGroup.class}) + private String gridId; + /** + * 签到地点 + */ + @NotBlank(message = "签到地点不能为空",groups = {AddGroup.class}) + private String address; + /** + * 签到地点纬度 + */ + @NotBlank(message = "签到地点纬度不能为空",groups = {AddGroup.class}) + private String latitude; + /** + * 签到地点经度 + */ + @NotBlank(message = "签到地点经度不能为空",groups = {AddGroup.class}) + private String longitude; + + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; + + //token中信息 + private String customerId; + private String userId; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyActStatisFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyActStatisFormDTO.java new file mode 100644 index 0000000000..b2206cf169 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyActStatisFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +@Data +public class PartyActStatisFormDTO implements Serializable { + + /** + * 参加活动党组织ID,groupId + */ + @NotBlank(message = "党组织Id不能为空", groups = AddGroup.class) + private String joinOrgId; + + /** + * 活动开始时间 【yyyy-MM-dd】 + */ + private String startTime; + + /** + * 活动结束时间 【yyyy-MM-dd】 + */ + private String endTime; + + //党组织Id集合 + private List partyOrgIdList; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgListFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgListFormDTO.java new file mode 100644 index 0000000000..4314e566c2 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgListFormDTO.java @@ -0,0 +1,17 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Data +public class PartyOrgListFormDTO implements Serializable { + /** + * 网格Id + */ + @NotNull(message = "网格Id不能为空", groups = AddGroup.class) + private String gridId; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgTreeListDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgTreeListDTO.java index 862d5e6c58..cdf2d7a80d 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgTreeListDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgTreeListDTO.java @@ -23,7 +23,7 @@ public class PartyOrgTreeListDTO implements Serializable { * 客户Id (customer.id) */ private String customerId; - + private String staffId; /** * 党组织pid */ diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/YearSearchFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/YearSearchFormDTO.java new file mode 100644 index 0000000000..5f92c375de --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/YearSearchFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/22 09:26 + * @DESC + */ +@Data +public class YearSearchFormDTO implements Serializable { + + private static final long serialVersionUID = 4557112229519696741L; + + public interface YearSearchForm{} + + @NotBlank(message = "yearId不能为空",groups = YearSearchForm.class) + private String yearId; + + private String type; + + /** + * 是否本人创建的活动,1:是;0:否 + */ + private String isSelf = NumConstant.ONE_STR; + + private String staffId; + private String customerId; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/ActAndScheduleListResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/ActAndScheduleListResultDTO.java new file mode 100644 index 0000000000..bc320d7a8c --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/ActAndScheduleListResultDTO.java @@ -0,0 +1,87 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/19 13:41 + * @DESC + */ +@Data +public class ActAndScheduleListResultDTO implements Serializable { + + private static final long serialVersionUID = 7378300105829566449L; + + private Integer scheduleTotal; + private Integer activityTotal; + private String dateId; + + private List activityList; + + private List scheduleList; + + + @Data + public static class ActivityListDTO implements Serializable{ + + private static final long serialVersionUID = -9050507457068805831L; + + private String activityId; + private String staffId; + private String dateId; + private String topic; + private String address; + private String holdTime; + private String autoPublicTime; + private String isAutoInformValue; + private String isAutoInform; + private String autoInformDay; + private String type; + private String actTypeName; + private String isPublicValue; + private String isPublish; + private String joinTypeValue; + private String joinUserType; + private List joinOrgList; + private List joinOrgs; + private Boolean isMe = false; + + } + + @Data + public static class ScheduleListDTO implements Serializable{ + + private static final long serialVersionUID = 5372167729733804267L; + + private String scheduleId; + private String title; + private String remindTime; + private String happenedTime; + private String remark; + private Boolean isMe = false; + private String staffId; + private String dateId; + } + + @Data + public static class JoinOrgDTO implements Serializable{ + + private static final long serialVersionUID = -981758371558960097L; + + private String partyOrgId; + private String partyOrgName; + } + + public ActAndScheduleListResultDTO() { + this.scheduleTotal = NumConstant.ZERO; + this.activityTotal = NumConstant.ZERO; + this.dateId = ""; + this.activityList = new ArrayList<>(); + this.scheduleList = new ArrayList<>(); + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/DefaultPartyOrgResDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/DefaultPartyOrgResDTO.java new file mode 100644 index 0000000000..5474c78ba3 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/DefaultPartyOrgResDTO.java @@ -0,0 +1,39 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/8/22 10:25 + */ +@Data +public class DefaultPartyOrgResDTO implements Serializable { + private static final long serialVersionUID = -7563161453372080189L; + /** + * 当前登录用户所属的组织 + */ + private String staffAgencyId; + /** + * 当前登录用户所属的组织名称 + */ + private String staffAgencyName; + /** + * 当前登录用户所属的行政组织下,默认的党组织名称 + */ + private String defaultPartyOrgId; + private String defaultPartyOrgPid; + /** + * 党组织名称 + */ + private String defaultPartyOrgName; + /** + * 党组织路径 + */ + private String defaultPartyOrgPath; + + private String orgType; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/HomeMonthTotalResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/HomeMonthTotalResultDTO.java new file mode 100644 index 0000000000..f3ba554fd6 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/HomeMonthTotalResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/19 08:57 + * @DESC + */ +@Data +public class HomeMonthTotalResultDTO implements Serializable { + + private static final long serialVersionUID = -4647982500373510830L; + + private String monthId; + + private Integer count; + + public HomeMonthTotalResultDTO() { + this.monthId = ""; + this.count = NumConstant.ZERO; + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyActListResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyActListResultDTO.java new file mode 100644 index 0000000000..8644aa81c2 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyActListResultDTO.java @@ -0,0 +1,47 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import com.epmet.resi.partymember.dto.partymember.result.AdditionalInfoDTO; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@NoArgsConstructor +@Data +public class IcPartyActListResultDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 活动Id + */ + private String icPartyActId; + /** + * 活动主题 + */ + private String topic; + /** + * 活动类型,0:支部党员大会;1:支部委员会;2:党小组会;3:党课;4:主题党日;5:为民服务活动; + */ + private String actType; + /** + * 活动类型,0:支部党员大会;1:支部委员会;2:党小组会;3:党课;4:主题党日;5:为民服务活动; + */ + private String actTypeName; + /** + * 活动时间 + */ + private String holdTime; + /** + * 活动地点 + */ + private String address; + /** + * 签到状态[已签到:signIn 未签到:unSignIn] + */ + private String signIn; + /** + * 签到状态名 + */ + private String signInName; + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgInfo.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgInfo.java new file mode 100644 index 0000000000..5aba21de9a --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgInfo.java @@ -0,0 +1,33 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/8/23 13:10 + */ +@Data +public class IcPartyOrgInfo implements Serializable { + /** + * 党组织ID + */ + private String id; + /** + * 党组织的上级ID,没有上级时为0 + */ + private String orgPid; + /** + * 党组织名称 + */ + private String partyOrgName; + + /** + * 党组织的id全路径(包含自身) + */ + private String partyOrgIdPath; + private String partyOrgNamePath; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java index cb5bf1b927..7888f71899 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java @@ -53,6 +53,16 @@ public class IcPartyOrgTreeDTO implements Serializable { */ private String partyOrgName; + /** + * 负责人 + */ + private String principal; + + /** + * 联系电话 + */ + private String principalMobile; + private List children = new ArrayList<>(); diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcScheduleListDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcScheduleListDTO.java new file mode 100644 index 0000000000..8f6b83bd33 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcScheduleListDTO.java @@ -0,0 +1,71 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 日程表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Data +public class IcScheduleListDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 当前登录用户userId + */ + private String staffId; + + /** + * 日程标题(35字) + */ + private String title; + + /** + * 提醒时间;其实就是日程所属日期 + */ + private Date remindTime; + private Date happenedTime; + + /** + * 提醒时间;其实就是日程所属日期 + */ + private String remindTimeName; + + /** + * 是否公开,0:仅自己可见;1:组织内其他人可见 + */ + private String isPublic; + + /** + * 是否公开,0:是 1:否 + */ + private String isPublicName; + + /** + * 备注(500字) + */ + private String remark; + + /** + * 创建时间 + */ + private Date createdTime; + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/PartyActStatisResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/PartyActStatisResultDTO.java new file mode 100644 index 0000000000..5f87fa3fb7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/PartyActStatisResultDTO.java @@ -0,0 +1,45 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@NoArgsConstructor +@Data +public class PartyActStatisResultDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 党组织Id + */ + private String joinOrgId = ""; + /** + * 党组织名称 + */ + private String joinOrgName = ""; + /** + * 支部党员大会次数 + */ + private Integer dydhNum = 0; + /** + * 支部委员会次数 + */ + private Integer wyhNum = 0; + /** + * 党小组会次数 + */ + private Integer dxzhNum = 0; + /** + * 党课次数 + */ + private Integer dkNum = 0; + /** + * 主题党日次数 + */ + private Integer ztdrNum = 0; + /** + * 为民服务活动次数 + */ + private Integer wmfwNum = 0; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/PartyOrgListResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/PartyOrgListResultDTO.java new file mode 100644 index 0000000000..cca225416d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/PartyOrgListResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@NoArgsConstructor +@Data +public class PartyOrgListResultDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 党组织Id + */ + private String partyOrgId = ""; + /** + * 党支部IdPath + */ + private String partyOrgPath = ""; + /** + * 党组织名称 + */ + private String partyOrgName = ""; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/YearSearchDetailResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/YearSearchDetailResultDTO.java new file mode 100644 index 0000000000..ef6c80ed65 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/YearSearchDetailResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/22 09:27 + * @DESC + */ +@Data +public class YearSearchDetailResultDTO implements Serializable { + + private static final long serialVersionUID = 8961924457475202790L; + + private String type; + private String typeValue; + private String frequency; + private List activityList; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/YearSearchResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/YearSearchResultDTO.java new file mode 100644 index 0000000000..e03e53c13b --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/YearSearchResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/22 09:27 + * @DESC + */ +@Data +public class YearSearchResultDTO implements Serializable { + + private static final long serialVersionUID = 8961924457475202790L; + + private String type; + private String frequency; + private List activityList; + + @Data + public static class YearSearchActivityListDTO implements Serializable{ + + private static final long serialVersionUID = -9050507457068805831L; + + private String activityId; + private String staffId; + private String dateId; + private String topic; + private String address; + private String holdTime; + private String type; + private String isPublicValue; + private String isPublish; + private String joinTypeValue; + private String joinUserType; + private String isAutoInformValue; + private String autoInformDay; + private String autoPublicTime; + private List joinOrgList; + private List joinOrgs; + private Boolean isMe = false; + + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/IcPartyInfoResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/IcPartyInfoResultDTO.java new file mode 100644 index 0000000000..78207b0293 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/IcPartyInfoResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.resi.partymember.dto.partymember.result; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class IcPartyInfoResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 所属支部Id + */ + private String id = ""; + + /** + * 所属支部名称 + */ + private String partOrgName = ""; + + /** + * 未读消息数 + */ + private Integer count; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java index 0098acd036..03cac6e6f7 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java @@ -1,11 +1,10 @@ package com.epmet.resi.partymember.feign; -import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; @@ -20,6 +19,7 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -135,4 +135,40 @@ public interface ResiPartyMemberOpenFeignClient { @PostMapping("/resi/partymember/icPartyOrg/branchlist") public Result> branchlist(); + + /** + * 获取客户下支部列表 + * @Param tokenDto + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:00 + */ + @PostMapping("/resi/partymember/icPartyOrg/getPartyOrgList") + Result> getPartyOrgList(); + + /** + * 您有一个活动3天后即将自动发布 + * @return + */ + @PostMapping("/resi/partymember/icPartyAct/noticePartyActAutoPublish") + Result noticePartyActAutoPublishTask(); + + /** + * 自动发布党组织活动 + * @return + */ + @PostMapping("/resi/partymember/icPartyAct/autoPublishIcPartyAct") + Result autoPublishIcPartyAct(); + + @PostMapping("/resi/partymember/icPartyAct/act-detail/{icPartyActId}") + Result actDetail(@PathVariable("icPartyActId")String icPartyActId); + + /** + * 更新partymember_info.ID_CARD + * @param userId + * @param idNum + * @return + */ + @PostMapping("/resi/partymember/partymemberinfo/updatePartyMemberIdCard") + Result updatePartyMemberIdCard(@RequestParam("userId") String userId, @RequestParam("idNum")String idNum); } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java index 57ce87c1e4..f6d5c20813 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java @@ -2,10 +2,10 @@ package com.epmet.resi.partymember.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; @@ -17,6 +17,7 @@ import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResult import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -101,4 +102,44 @@ public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOp public Result> branchlist() { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "branchlist", null); } + + /** + * 获取客户下支部列表 + * + * @Param tokenDto + * @Return {@link Result< Map>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:00 + */ + @Override + public Result> getPartyOrgList() { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "getPartyOrgList", null); + } + + @Override + public Result noticePartyActAutoPublishTask() { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "noticePartyActAutoPublish"); + } + + @Override + public Result autoPublishIcPartyAct() { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "autoPublishIcPartyAct"); + } + + @Override + public Result actDetail(String icPartyActId) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "actDetail"); + } + + /** + * 更新partymember_info.ID_CARD + * + * @param userId + * @param idNum + * @return + */ + @Override + public Result updatePartyMemberIdCard(String userId, String idNum) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "updatePartyMemberIdCard",userId,idNum); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index d03215171c..194ec74de1 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -123,6 +123,12 @@ epmet-commons-rocketmq 2.0.0 + + com.epmet + resi-group-client + 2.0.0 + compile + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActController.java new file mode 100644 index 0000000000..6b0d27503e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActController.java @@ -0,0 +1,360 @@ +package com.epmet.modules.partyOrg.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; +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.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.modules.partyOrg.excel.IcPartyActExpoprtExcel; +import com.epmet.modules.partyOrg.excel.PartyActStatisExcel; +import com.epmet.modules.partyOrg.service.IcPartyActService; +import com.epmet.resi.partymember.dto.icpartyact.form.BatchAddPartyActFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActAddOrUpdateFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActPageFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartActTypeDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActPageResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.*; +import com.epmet.resi.partymember.dto.partyOrg.result.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + + +/** + * 党建组织活动 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Slf4j +@RestController +@RequestMapping("icPartyAct") +public class IcPartyActController { + + @Autowired + private IcPartyActService icPartyActService; + + /** + * 添加、修改活动各端通用 + * @param tokenDto + * @param formDTO + * @return + */ + @NoRepeatSubmit + @PostMapping("addOrUpdate") + public Result> addOrUpdate(@LoginUser TokenDto tokenDto,@RequestBody IcPartyActAddOrUpdateFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setPublishStaffId(tokenDto.getUserId()); + if(StringUtils.isNotBlank(formDTO.getIcPartyActId())){ + //修改活动 + ValidatorUtils.validateEntity(formDTO,IcPartyActAddOrUpdateFormDTO.UpdateUserShowGroup.class,IcPartyActAddOrUpdateFormDTO.UpdateUserInternalGroup.class); + }else{ + //添加活动 + ValidatorUtils.validateEntity(formDTO,IcPartyActAddOrUpdateFormDTO.AddUserShowGroup.class,IcPartyActAddOrUpdateFormDTO.AddUserInternalGroup.class); + } + Map map=icPartyActService.addOrUpdate(formDTO); + return new Result>().ok(map); + } + + /** + * 生成年度计划 + * @param tokenDto + * @param formDTO + * @return + */ + @NoRepeatSubmit + @PostMapping("batch-add") + public Result batchAdd(@LoginUser TokenDto tokenDto,@RequestBody BatchAddPartyActFormDTO formDTO){ + formDTO.getActList().forEach(dto->{ + dto.setCustomerId(tokenDto.getCustomerId()); + dto.setPublishStaffId(tokenDto.getUserId()); + if(StringUtils.isNotBlank(dto.getIcPartyActId())){ + //修改活动 + ValidatorUtils.validateEntity(dto,IcPartyActAddOrUpdateFormDTO.UpdateUserShowGroup.class,IcPartyActAddOrUpdateFormDTO.UpdateUserInternalGroup.class); + }else{ + //添加活动 + ValidatorUtils.validateEntity(dto,IcPartyActAddOrUpdateFormDTO.AddUserShowGroup.class,IcPartyActAddOrUpdateFormDTO.AddUserInternalGroup.class); + } + icPartyActService.addOrUpdate(dto); + }); + icPartyActService.deleteIcPartyAct(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getDelActIds()); + return new Result(); + } + + /** + * 【活动列表】分页查询(工作端小程序通用) + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("page-list") + public Result> pageList(@LoginUser TokenDto tokenDto, @RequestBody IcPartyActPageFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setPublishStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icPartyActService.pageList(formDTO)); + } + + /** + * 活动列表活动详情 + * 居民端小程序活动详情、工作端小程序活动详情通用 + * @param tokenDto + * @param icPartyActId + * @return + */ + @PostMapping("act-detail/{icPartyActId}") + public Result actDetail(@LoginUser TokenDto tokenDto, @PathVariable("icPartyActId")String icPartyActId){ + if(StringUtils.isBlank(icPartyActId)){ + return new Result<>(); + } + return new Result().ok(icPartyActService.queryActDetail(tokenDto.getCustomerId(),tokenDto.getUserId(),icPartyActId)); + } + + + /** + * 活动类型 + * @param tokenDto + * @return + */ + @PostMapping("/acttypelist") + public com.epmet.commons.tools.utils.Result> actTypeList(@LoginUser TokenDto tokenDto){ + List list=icPartyActService.actTypeList(tokenDto.getCustomerId()); + return new Result>().ok(list); + } + + /** + * Desc: 【党建日历】首页-获取每月总数 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/8/19 09:05 + */ + @PostMapping("homeMonthTotal") + public Result> getHomeMonthTotal(@LoginUser TokenDto tokenDto,@RequestBody HomeMonthTotalFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, HomeMonthTotalFormDTO.HomeMonthTotalForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + return new Result>().ok(icPartyActService.getHomeMonthTotal(formDTO)); + } + + /** + * Desc:【党建日历】活动、日程列表 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2022/8/19 13:57 + */ + @PostMapping("actAndScheduleList") + public Result getActAndScheduleList(@RequestBody ActAndScheduleListFormDTO formDTO, @LoginUser TokenDto tokenDto){ + formDTO.setStaffId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(icPartyActService.getActAndScheduleList(formDTO)); + } + + /** + * Desc:【党建日历】某月/天数据搜索列表 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2022/8/19 14:00 + */ + @PostMapping("homeSearch") + public Result> homeSearch(@RequestBody ActAndScheduleListFormDTO formDTO, @LoginUser TokenDto tokenDto){ + formDTO.setStaffId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icPartyActService.homeSearch(formDTO)); + } + + /** + * pc活动列表-发布活动 + * pc党建日历左下角列表,点击发布 + * 工作端小程序点击发布 + * @param tokenDto + * @param icPartyActId + * @return + */ + @NoRepeatSubmit + @PostMapping("publish/{icPartyActId}") + public Result publicshIcPartyAct(@LoginUser TokenDto tokenDto,@PathVariable("icPartyActId")String icPartyActId){ + icPartyActService.publicshIcPartyAct(tokenDto.getUserId(),icPartyActId); + return new Result(); + } + + /** + * pc活动列表-发布活动 + * pc党建日历左下角列表,点击删除 + * pc生成年度记录,删除活动 + * 工作端小程序-详情页面,删除 + * @param tokenDto + * @param icPartyActIds + * @return + */ + @NoRepeatSubmit + @PostMapping("del") + public Result deleteIcPartyAct(@LoginUser TokenDto tokenDto,@RequestBody List icPartyActIds){ + if(CollectionUtils.isNotEmpty(icPartyActIds)){ + icPartyActService.deleteIcPartyAct(tokenDto.getCustomerId(),tokenDto.getUserId(),icPartyActIds); + } + return new Result(); + } + + /** + * Desc:【党建日历】生成年度活动计划查询 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/8/22 09:33 + */ + @PostMapping("yearSearch01") + public Result> yearSearch01(@LoginUser TokenDto tokenDto, @RequestBody YearSearchFormDTO formDTO){ + formDTO.setStaffId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icPartyActService.yearSearch01(formDTO)); + } + + /** + * 【党建日历】生成年度活动计划查询 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("yearSearch") + public Result> yearSearch(@LoginUser TokenDto tokenDto, @RequestBody YearSearchFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, YearSearchFormDTO.YearSearchForm.class); + formDTO.setStaffId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icPartyActService.yearSearch(formDTO)); + } + + @NoRepeatSubmit + @PostMapping("/export-act") + public void export(@LoginUser TokenDto tokenDto, @RequestBody IcPartyActPageFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setPublishStaffId(tokenDto.getUserId()); + formDTO.setIsPage(false); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "党组织活动" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyActExpoprtExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = icPartyActService.pageList(formDTO); + data.getList().forEach(l->{ + List orgNameList = l.getJoinOrgList().stream().map(m -> m.getJoinOrgName()).distinct().collect(Collectors.toList()); + l.setJoinOrgNameStr(orgNameList.stream().map(String::valueOf).collect(Collectors.joining(","))); + }); + list = ConvertUtils.sourceToTarget(data.getList(), IcPartyActExpoprtExcel.class); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + @RequestMapping("list") + public Result> list(@LoginUser TokenDto tokenDto, @RequestBody IcPartyActListFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(icPartyActService.list(formDTO)); + } + + /** + * 通知:您有一个活动3天后即将自动发布 + * @return + */ + @PostMapping("noticePartyActAutoPublish") + public Result noticePartyActAutoPublish(){ + icPartyActService.noticePartyActAutoPublish(); + return new Result(); + } + + /** + * 自动发布活动 + * @return + */ + @PostMapping("autoPublishIcPartyAct") + public Result autoPublishIcPartyAct(){ + icPartyActService.autoPublishIcPartyAct(); + return new Result(); + } + + /** + * Desc: 统计各党组织参与各种党活动的次数 + */ + @RequestMapping("patryactstatis") + public Result> patryActStatis(@RequestBody PartyActStatisFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + return new Result>().ok(icPartyActService.patryActStatis(formDTO)); + } + + @PostMapping("export") + public void export(@RequestBody PartyActStatisFormDTO formDTO, HttpServletResponse response) throws IOException { + ExcelWriter excelWriter = null; + try { + String fileName = "党建数据统计" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), PartyActStatisExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + List data = icPartyActService.patryActStatis(formDTO); + List list = ConvertUtils.sourceToTarget(data, PartyActStatisExcel.class); + excelWriter.write(list, writeSheet); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActOrgController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActOrgController.java new file mode 100644 index 0000000000..a42a752523 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActOrgController.java @@ -0,0 +1,31 @@ +package com.epmet.modules.partyOrg.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.modules.partyOrg.service.IcPartyActOrgService; +import com.epmet.resi.partymember.dto.IcPartyActOrgDTO; +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-08-18 + */ +@RestController +@RequestMapping("icPartyActOrg") +public class IcPartyActOrgController { + + @Autowired + private IcPartyActOrgService icPartyActOrgService; +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActSignInRecordController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActSignInRecordController.java new file mode 100644 index 0000000000..9a4b16fda7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyActSignInRecordController.java @@ -0,0 +1,84 @@ +package com.epmet.modules.partyOrg.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.IcMessageDTO; +import com.epmet.dto.form.IcMessageListFormDTO; +import com.epmet.modules.partyOrg.service.IcPartyActSignInRecordService; +import com.epmet.resi.partymember.dto.IcPartyActSignInRecordDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.PartyActSignFormDTO; +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-08-18 + */ +@RestController +@RequestMapping("icPartyActSignInRecord") +public class IcPartyActSignInRecordController { + + @Autowired + private IcPartyActSignInRecordService icPartyActSignInRecordService; + + @RequestMapping("list") + public Result> list(@RequestBody PartyActSignFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, UpdateGroup.class); + return new Result>().ok(icPartyActSignInRecordService.list(formDTO)); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcPartyActSignInRecordDTO data = icPartyActSignInRecordService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcPartyActSignInRecordDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icPartyActSignInRecordService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcPartyActSignInRecordDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icPartyActSignInRecordService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icPartyActSignInRecordService.delete(ids); + return new Result(); + } + + @PostMapping("sign") + public Result sign(@LoginUser TokenDto tokenDto, @RequestBody PartyActSignFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + icPartyActSignInRecordService.sign(formDTO); + return new Result(); + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java index 499c2a1d70..2279fd3ca2 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java @@ -14,10 +14,14 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.partyOrg.excel.IcPartyOrgExcel; import com.epmet.modules.partyOrg.service.IcPartyOrgService; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.EditPrincipalFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.GetParentOrgFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgListFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgTreeListDTO; import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.DefaultPartyOrgResDTO; import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.PartyOrgListResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -110,6 +114,13 @@ public class IcPartyOrgController { return icPartyOrgService.getSearchTreelist(formDTO); } + @PostMapping("getOrgTreeHaveGroup") + public Result> getOrgTreeHaveGroup(@LoginUser TokenDto tokenDto,PartyOrgTreeListDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + return new Result>().ok(icPartyOrgService.getOrgTreeHaveGroup(formDTO)); + } + /** * @describe: 当前登录用户所属行政组织,及下级的党组织(只限支部) * @author wangtong @@ -137,4 +148,59 @@ public class IcPartyOrgController { return icPartyOrgService.getParentOrgList(formDTO); } + /** + * 获取客户下支部列表 + * @Param tokenDto + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:00 + */ + @PostMapping("getPartyOrgList") + public Result> getPartyOrgList(@LoginUser TokenDto tokenDto){ + return new Result>().ok(icPartyOrgService.getPartyOrgList(tokenDto)); + } + + /** + * 党组织活动发布时, + * 查询当前登录用户所属行政组织下,默认的党组织,取第一个 + * @param tokenDto + * @return + */ + @PostMapping("defaultpartyorg") + public Result defaultPartyOrg(@LoginUser TokenDto tokenDto){ + return new Result().ok(icPartyOrgService.defaultPartyOrg(tokenDto.getCustomerId(), tokenDto.getUserId())); + } + + /** + * 调整历史数据 ORG_PIDS + * @return + */ + @PostMapping("adjustOrgPath") + public Result adjustOrgPath(@RequestBody List customerIds){ + icPartyOrgService.adjustOrgPath(customerIds); + return new Result(); + } + + /** + * 查询当前组织及下级党支部列表,供新增编辑党小组使用 + */ + @PostMapping("partorglist") + public Result> partOrgList(@RequestBody PartyOrgListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + return new Result>().ok(icPartyOrgService.partOrgList(formDTO.getGridId())); + } + + /** + * Desc: 党组织修改负责人 + * @param formDTO + * @author zxc + * @date 2022/9/7 15:04 + */ + @PostMapping("editPrincipal") + public Result editPrincipal(@RequestBody EditPrincipalFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + icPartyOrgService.editPrincipal(formDTO); + return new Result(); + } + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcScheduleController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcScheduleController.java new file mode 100644 index 0000000000..cc45d2e7bf --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcScheduleController.java @@ -0,0 +1,160 @@ +package com.epmet.modules.partyOrg.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; +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.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; +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.modules.partyOrg.excel.IcScheduleListExcel; +import com.epmet.modules.partyOrg.service.IcScheduleService; +import com.epmet.resi.partymember.dto.IcScheduleDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.AddOrEditScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.IcScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcScheduleListDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Date; +import java.util.List; + + +/** + * 日程表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@RestController +@RequestMapping("icSchedule") +@Slf4j +public class IcScheduleController { + + @Autowired + private IcScheduleService icScheduleService; + + @RequestMapping(value = "list",method = {RequestMethod.POST,RequestMethod.GET}) + public Result> list(@LoginUser TokenDto tokenDto, @RequestBody IcScheduleFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + return new Result>().ok(icScheduleService.list(formDTO)); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcScheduleDTO data = icScheduleService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcScheduleDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icScheduleService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcScheduleDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icScheduleService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icScheduleService.delete(ids); + return new Result(); + } + + /** + * Desc: 新增或编辑日程 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/8/18 16:31 + */ + @PostMapping("addOrEdit") + public Result addOrEditSchedule(@LoginUser TokenDto tokenDto,@RequestBody AddOrEditScheduleFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AddOrEditScheduleFormDTO.AddScheduleForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + icScheduleService.addOrEditSchedule(formDTO); + return new Result(); + } + + /** + * Desc: 删除日程 + * @param scheduleIds + * @author zxc + * @date 2022/8/18 17:00 + */ + @PostMapping("del") + public Result delSchedule(@RequestBody List scheduleIds){ + icScheduleService.delSchedule(scheduleIds); + return new Result(); + } + + @PostMapping("export") + public void export(@LoginUser TokenDto tokenDto, @RequestBody IcScheduleFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + formDTO.setIsPage(false); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "日程列表" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcScheduleListExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = icScheduleService.list(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), IcScheduleListExcel.class); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActDao.java new file mode 100644 index 0000000000..d3bdd9d957 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActDao.java @@ -0,0 +1,55 @@ +package com.epmet.modules.partyOrg.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partyOrg.entity.IcPartyActEntity; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActPageFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActPageResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyActTypeDictDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.ActAndScheduleListFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.IcPartyActListFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.PartyActStatisFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.ActAndScheduleListResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyActListResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.PartyActStatisResultDTO; +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-08-18 + */ +@Mapper +public interface IcPartyActDao extends BaseDao { + + /** + * 活动类型列表 + * @param customerId + * @return + */ + List actTypeList(String customerId); + + List getActivityList(ActAndScheduleListFormDTO formDTO); + + /** + * pc活动列表分页 + * @param formDTO + * @return + */ + List selectPageList(IcPartyActPageFormDTO formDTO); + + String selectActTypeName(@Param("customerId") String customerId,@Param("actType")String actType); + + int deleteIcPartyAct(@Param("customerId") String customerId, @Param("userId")String userId, @Param("icPartyActId")String icPartyActId); + + List selectresiPartyActList(IcPartyActListFormDTO formDTO); + + List selectNeedRemindAutoPublishAct(String dateId); + + List selectNoPublishList(String dateId); + + List getPartActStatis(PartyActStatisFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActOrgDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActOrgDao.java new file mode 100644 index 0000000000..9351804f7c --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActOrgDao.java @@ -0,0 +1,36 @@ +package com.epmet.modules.partyOrg.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partyOrg.entity.IcPartyActOrgEntity; +import com.epmet.resi.partymember.dto.icpartyact.form.JoinOrgDTO; +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-08-18 + */ +@Mapper +public interface IcPartyActOrgDao extends BaseDao { + + /** + * 删除活动时,同时删除,参与活动党组织表 + * @param customerId + * @param icPartyActIds + * @return + */ + int deleteByPartyActId(@Param("customerId") String customerId, @Param("icPartyActIds")List icPartyActIds); + + /** + * 查询活动的参与活动党组织列表 + * @param icPartyActId + * @return + */ + List selectJoinOrgList(String icPartyActId); + + int updateToDel(@Param("userId") String userId, @Param("icPartyActId") String icPartyActId); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActSignInRecordDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActSignInRecordDao.java new file mode 100644 index 0000000000..72e00ccdc1 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActSignInRecordDao.java @@ -0,0 +1,22 @@ +package com.epmet.modules.partyOrg.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partyOrg.entity.IcPartyActSignInRecordEntity; +import com.epmet.resi.partymember.dto.IcPartyActSignInRecordDTO; +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-08-18 + */ +@Mapper +public interface IcPartyActSignInRecordDao extends BaseDao { + + List selectSignList(@Param("icPartyActId") String icPartyActId); + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActTypeDictDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActTypeDictDao.java new file mode 100644 index 0000000000..58eda1e4b2 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyActTypeDictDao.java @@ -0,0 +1,16 @@ +package com.epmet.modules.partyOrg.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partyOrg.entity.IcPartyActTypeDictEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 党组织活动类型字典表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-22 + */ +@Mapper +public interface IcPartyActTypeDictDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java index 93fa4d8a64..88fe00f0ad 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java @@ -2,9 +2,13 @@ package com.epmet.modules.partyOrg.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.EditPrincipalFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgTreeListDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.ActAndScheduleListResultDTO; import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeSubDTO; import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.PartyOrgListResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -104,4 +108,22 @@ public interface IcPartyOrgDao extends BaseDao { * @return com.epmet.modules.partyOrg.entity.IcPartyOrgEntity */ IcPartyOrgEntity selectByCustomerIdAndFirstOrg(@Param("customerId") String customerId); + + List getPartyOrg(@Param("orgIds")List orgIds); + + IcPartyOrgEntity selectDefaultPartyOrg(@Param("agencyId") String agencyId, @Param("level") String level); + + List getUserIdByPartyOrgIds(@Param("partyOrgIdList") List partyOrgIdList); + + List getSelfAndSub(@Param("joinOrgId") String joinOrgId); + + List partOrgList(@Param("agencyId") String agencyId); + + /** + * Desc: 党组织修改负责人 + * @param formDTO + * @author zxc + * @date 2022/9/7 15:04 + */ + void editPrincipal(EditPrincipalFormDTO formDTO); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcScheduleDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcScheduleDao.java new file mode 100644 index 0000000000..996d46c361 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcScheduleDao.java @@ -0,0 +1,34 @@ +package com.epmet.modules.partyOrg.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partyOrg.entity.IcScheduleEntity; +import com.epmet.resi.partymember.dto.partyOrg.form.ActAndScheduleListFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.AddOrEditScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.HomeMonthTotalFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.IcScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.ActAndScheduleListResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.HomeMonthTotalResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcScheduleListDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 日程表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Mapper +public interface IcScheduleDao extends BaseDao { + + void editSchedule(AddOrEditScheduleFormDTO formDTO); + + List getScheduleAndActCount(HomeMonthTotalFormDTO formDTO); + + List getScheduleList(ActAndScheduleListFormDTO formDTO); + + List selectScheduleList(IcScheduleFormDTO formDTO); + + List selectNeedNotice(String dateId); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/ResiPartymemberAttachmentDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/ResiPartymemberAttachmentDao.java new file mode 100644 index 0000000000..f068318861 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/ResiPartymemberAttachmentDao.java @@ -0,0 +1,27 @@ +package com.epmet.modules.partyOrg.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import com.epmet.modules.partyOrg.entity.ResiPartymemberAttachmentEntity; +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-08-19 + */ +@Mapper +public interface ResiPartymemberAttachmentDao extends BaseDao { + /** + * + * @param businessIds + * @return + */ + int deleteByBusinessId(@Param("customerId")String customerId,@Param("businessIds") List businessIds); + + List selectListByBusinessId(String businessId); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActEntity.java new file mode 100644 index 0000000000..3764f8d223 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActEntity.java @@ -0,0 +1,152 @@ +package com.epmet.modules.partyOrg.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-08-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_act") +public class IcPartyActEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 组织ID:当前工作人员所属组织id + */ + private String orgId; + + /** + * 组织ID的上级;如果org_id是根组织,那此列=0 + */ + private String pid; + + /** + * ORG_ID全路径,包含自身 + */ + private String orgIdPath; + + /** + * 发布活动党组织 + */ + private String publishPartyOrgId; + + /** + * 发布活动党组织名称 + */ + private String publishPartyOrgName; + + /** + * 发布活动党组织ID的上级节点 + */ + private String publishOrgPid; + + /** + * 发布活动党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + private String publishOrgType; + + /** + * 发布活动党组织PUBLISH_PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + private String publishOrgPath; + /** + *发布活动党组织路径,前端用此列 + */ + private String publishOrgPathShow; + /** + * 活动类型,来源于ic_party_act_type_dict + */ + private String actType; + + /** + * 活动举办时间:yyyy + */ + private String holdYearId; + + /** + * 活动举办时间:yyyyMM + */ + private String holdMonthId; + + /** + * 举办活动时间 + */ + private Date holdTime; + + /** + * 活动主题 + */ + private String topic; + + /** + * 活动地点 + */ + private String address; + + /** + * 活动地点纬度 + */ + private String latitude; + + /** + * 活动地点经度 + */ + private String longitude; + + /** + * 活动开始前几天 + */ + private Integer autoPublicType; + + /** + * 自动发布时间,保存时算好时间存在这里 + */ + private Date autoPublicTime; + + /** + * 参加人员类型,0:全体党员;1:支部委员 + */ + private String joinUserType; + + /** + * 是否自动通知参加人员,0否;1是 + */ + private String isAutoInform; + + /** + * 活动介绍 + */ + private String introduce; + + /** + * 是否发布,0未发布;1已发布; + */ + private String isPublish; + + /** + * 活动发布人 + */ + private String publishStaffId; + + /** + * 活动发布人姓名 + */ + private String publishStaffName; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActOrgEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActOrgEntity.java new file mode 100644 index 0000000000..23c131028a --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActOrgEntity.java @@ -0,0 +1,57 @@ +package com.epmet.modules.partyOrg.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-08-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_act_org") +public class IcPartyActOrgEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 活动id + */ + private String icPartyActId; + + /** + * 客户ID + */ + private String customerId; + + /** + * 参加活动党组织ID,groupId + */ + private String joinOrgId; + + private String joinOrgName; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组 + */ + private String orgType; + + /** + * 参加活动党组织ID的上级节点 + */ + private String pid; + + /** + * PARTY_ORG_ID的全路径,包含自身。方便前端回显 + */ + private String joinOrgPath; + + /** + * PARTY_ORG_ID的全路径,前端用 + */ + private String joinOrgPathShow; +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActSignInRecordEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActSignInRecordEntity.java new file mode 100644 index 0000000000..52b44ffaf6 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActSignInRecordEntity.java @@ -0,0 +1,64 @@ +package com.epmet.modules.partyOrg.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-08-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_act_sign_in_record") +public class IcPartyActSignInRecordEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 活动id + */ + private String icPartyActId; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 签到用户id + */ + private String epmetUserId; + + /** + * 签到用户姓名 + */ + private String userRealName; + + /** + * 签到地点 + */ + private String address; + + /** + * 签到地点纬度 + */ + private String latitude; + + /** + * 签到地点经度 + */ + private String longitude; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActTypeDictEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActTypeDictEntity.java new file mode 100644 index 0000000000..715a79cd39 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyActTypeDictEntity.java @@ -0,0 +1,64 @@ +package com.epmet.modules.partyOrg.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-08-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_act_type_dict") +public class IcPartyActTypeDictEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 活动类型key + */ + private String typeKey; + + /** + * 活动名称 + */ + private String typeName; + + /** + * 每年几次 + */ + private Integer yearCount; + + /** + * 频次单位 + */ + private String frequencyUnit; + + /** + * 频次数量 + */ + private Integer frequencyCount; + + /** + * 频率描述 + */ + private String frequencyDesc; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java index e9ea2f210c..bc8be3d038 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java @@ -73,6 +73,21 @@ public class IcPartyOrgEntity extends BaseEpmetEntity { */ private String address; + /** + * 负责人 + */ + private String principal; + + /** + * 负责人staffId + */ + private String principalStaffId; + + /** + * 联系电话 + */ + private String principalMobile; + /** * 党组织介绍 */ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcScheduleEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcScheduleEntity.java new file mode 100644 index 0000000000..9f3191a33f --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcScheduleEntity.java @@ -0,0 +1,74 @@ +package com.epmet.modules.partyOrg.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-08-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_schedule") +public class IcScheduleEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 所属行政组织ID:当前工作人员所属组织id + */ + private String orgId; + + /** + * 组织ID的上级;如果org_id是根组织,那此列=0 + */ + private String pid; + + /** + * ORG_ID全路径,包含自身 + */ + private String orgIdPath; + + /** + * 当前登录用户userId + */ + private String staffId; + + /** + * 日程标题(35字) + */ + private String title; + + /** + * 提醒时间;其实就是日程所属日期 + */ + private Date remindTime; + + /** + * 发生时间 + */ + private Date happenedTime; + + /** + * 是否公开,0:仅自己可见;1:组织内其他人可见 + */ + private String isPublic; + + /** + * 备注(500字) + */ + private String remark; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/ResiPartymemberAttachmentEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/ResiPartymemberAttachmentEntity.java new file mode 100644 index 0000000000..aa190b4ea9 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/ResiPartymemberAttachmentEntity.java @@ -0,0 +1,82 @@ +package com.epmet.modules.partyOrg.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-08-19 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("resi_partymember_attachment") +public class ResiPartymemberAttachmentEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 业务id + */ + private String businessId; + + /** + * 党组织活动:ic_party_act + */ + private String attachTo; + + /** + * 附件名 + */ + private String name; + + /** + * 文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS) + */ + private String format; + + /** + * 附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc)) + */ + private String type; + + /** + * 附件地址 + */ + private String url; + + /** + * 排序字段 + */ + private Integer sort; + + /** + * 附件状态(审核中:auditing; +auto_passed: 自动通过; +review:结果不确定,需要人工审核; +block: 结果违规; +rejected:人工审核驳回; +approved:人工审核通过) +现在图片是同步审核的,所以图片只有auto_passed一种状态 + */ + private String status; + + /** + * 失败原因 + */ + private String reason; + + /** + * 语音或视频时长,秒 + */ + private Integer duration; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcPartyActExpoprtExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcPartyActExpoprtExcel.java new file mode 100644 index 0000000000..995682ec4e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcPartyActExpoprtExcel.java @@ -0,0 +1,75 @@ +package com.epmet.modules.partyOrg.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.util.Date; + +/** + * @Description + * @Author yzm + * @Date 2022/8/22 12:48 + */ +@Data +public class IcPartyActExpoprtExcel { + /** + * 活动主题 + */ + @ExcelProperty(value = "活动主题11") + @ColumnWidth(20) + private String topic; + + /** + * 发布活动党组织名称 + */ + @ExcelProperty(value = "所属组织") + @ColumnWidth(20) + private String publishPartyOrgName; + + /** + * 活动发布人姓名 + */ + @ExcelProperty(value = "发布人") + @ColumnWidth(10) + private String publishStaffName; + + /** + * 活动类型,来源于ic_party_act_type_dict + */ + @ExcelProperty(value = "活动类型") + @ColumnWidth(15) + private String actTypeName; + + /** + * 举办活动时间 + */ + @ExcelProperty(value = "活动开始时间") + @ColumnWidth(20) + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private Date holdTime; + + /** + * 活动地点 + */ + @ExcelProperty(value = "活动地点") + @ColumnWidth(25) + private String address; + + /** + * 是否发布,0未发布;1已发布; + */ + @ExcelProperty(value = "发布状态") + @ColumnWidth(8) + private String isPublishName; + + @ExcelProperty(value = "参加人员") + @ColumnWidth(12) + private String joinUserTypeName; + + @ExcelProperty(value = "参加活动党组织") + @ColumnWidth(80) + private String joinOrgNameStr; +} + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcScheduleListExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcScheduleListExcel.java new file mode 100644 index 0000000000..72e0a4002b --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcScheduleListExcel.java @@ -0,0 +1,26 @@ +package com.epmet.modules.partyOrg.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +@Data +public class IcScheduleListExcel { + + @ExcelProperty(value = "日程标题") + @ColumnWidth(20) + private String title; + + @ExcelProperty(value = "提醒时间") + @ColumnWidth(20) + private String remindTimeName; + + @ExcelProperty(value = "是否公开") + @ColumnWidth(20) + private String isPublicName; + + @ExcelProperty(value = "备注") + @ColumnWidth(25) + private String remark; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/PartyActStatisExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/PartyActStatisExcel.java new file mode 100644 index 0000000000..1614a61c51 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/PartyActStatisExcel.java @@ -0,0 +1,43 @@ +package com.epmet.modules.partyOrg.excel; + +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 lombok.Data; + +import java.io.Serializable; + +/** + * 党建数据统计 + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class PartyActStatisExcel implements Serializable { + + private static final long serialVersionUID = -12110233388005838L; + + @ExcelProperty(value = "党组织名称") + @ColumnWidth(20) + private String joinOrgName; + @ExcelProperty(value = "支部党员大会(次)") + @ColumnWidth(30) + private Integer dydhNum = 0; + @ExcelProperty(value = "支部委员会(次)") + @ColumnWidth(20) + private Integer wyhNum = 0; + @ExcelProperty(value = "党小组会(次)") + @ColumnWidth(20) + private Integer dxzhNum = 0; + @ExcelProperty(value = "党课(次)") + @ColumnWidth(20) + private Integer dkNum = 0; + @ExcelProperty(value = "主题党日(次)") + @ColumnWidth(20) + private Integer ztdrNum = 0; + @ExcelProperty(value = "为民服务活动(次)") + @ColumnWidth(30) + private Integer wmfwNum = 0; + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActOrgService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActOrgService.java new file mode 100644 index 0000000000..9e5a6e2be2 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActOrgService.java @@ -0,0 +1,16 @@ +package com.epmet.modules.partyOrg.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.modules.partyOrg.entity.IcPartyActOrgEntity; + +import java.util.List; + +/** + * 参加活动党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +public interface IcPartyActOrgService extends BaseService { + int deleteByPartyActId(String customerId, List icPartyActIds); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java new file mode 100644 index 0000000000..dbfde1274e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java @@ -0,0 +1,122 @@ +package com.epmet.modules.partyOrg.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.rocketmq.messages.PartyMeetingMessageMQMsg; +import com.epmet.commons.tools.page.PageData; +import com.epmet.modules.partyOrg.entity.IcPartyActEntity; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActAddOrUpdateFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActPageFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartActTypeDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActPageResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.*; +import com.epmet.resi.partymember.dto.partyOrg.result.*; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * 党建组织活动 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +public interface IcPartyActService extends BaseService { + + /** + * 活动类型列表 + * @param customerId + * @return + */ + List actTypeList(String customerId); + + /** + * Desc: 【党建日历】首页-获取每月总数 + * @param formDTO + * @author zxc + * @date 2022/8/19 09:05 + */ + List getHomeMonthTotal(HomeMonthTotalFormDTO formDTO); + + /** + * 添加、修改活动 + * @param formDTO + * @return + */ + Map addOrUpdate(IcPartyActAddOrUpdateFormDTO formDTO); + + /** + * 【活动列表】分页查询(工作端小程序通用) + * @param formDTO + * @return + */ + PageData pageList(IcPartyActPageFormDTO formDTO); + + /** + * 活动列表活动详情 + * @param customerId + * @param userId + * @param icPartyActId + * @return + */ + IcPartyActDetailResDTO queryActDetail(String customerId, String userId, String icPartyActId); + + void partyMeetingMessage(PartyMeetingMessageMQMsg dto); + + /** + * Desc: 【党建日历】活动、日程列表 + * @param formDTO + * @author zxc + * @date 2022/8/19 13:57 + */ + ActAndScheduleListResultDTO getActAndScheduleList(ActAndScheduleListFormDTO formDTO); + + /** + * Desc: 【党建日历】某月/天数据搜索列表 + * @param formDTO + * @author zxc + * @date 2022/8/19 14:01 + */ + List homeSearch(ActAndScheduleListFormDTO formDTO); + + /** + * * pc活动列表-发布活动 + * pc党建日历左下角列表,点击发布 + * 工作端小程序点击发布 + * @param userId + * @param icPartyActId + */ + void publicshIcPartyAct(String userId, String icPartyActId); + + /** + * 删除活动 + * @param userId + * @param icPartyActIds + */ + void deleteIcPartyAct(String customerId,String userId, List icPartyActIds); + + /** + * Desc: 【党建日历】生成年度活动计划查询 + * @param formDTO + * @author zxc + * @date 2022/8/22 09:33 + */ + List yearSearch01(YearSearchFormDTO formDTO); + + List yearSearch(YearSearchFormDTO formDTO); + + PageData list(IcPartyActListFormDTO formDTO); + + /** + * 通知:您有一个活动3天后即将自动发布 + */ + void noticePartyActAutoPublish(); + + /** + * 自动发布活动 + */ + void autoPublishIcPartyAct(); + + LinkedList patryActStatis(PartyActStatisFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActSignInRecordService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActSignInRecordService.java new file mode 100644 index 0000000000..bb1f91a727 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActSignInRecordService.java @@ -0,0 +1,77 @@ +package com.epmet.modules.partyOrg.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.modules.partyOrg.entity.IcPartyActSignInRecordEntity; +import com.epmet.resi.partymember.dto.IcPartyActSignInRecordDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.PartyActSignFormDTO; + +/** + * 党组织活动签到记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +public interface IcPartyActSignInRecordService extends BaseService { + + /** + * 默认查询 + * + * @param formDTO + * @return java.util.List + * @author generator + * @date 2022-08-18 + */ + PageData list(PartyActSignFormDTO formDTO); + + /** + * 单条查询 + * + * @param id + * @return IcPartyActSignInRecordDTO + * @author generator + * @date 2022-08-18 + */ + IcPartyActSignInRecordDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-18 + */ + void save(IcPartyActSignInRecordDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-18 + */ + void update(IcPartyActSignInRecordDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-08-18 + */ + void delete(String[] ids); + + /** + * 判断该用户是否已经签到 + * TRUE:已签到 + * @param icPartyActId + * @param userId + * @return + */ + Boolean checkSignIn(String icPartyActId, String userId); + + void sign(PartyActSignFormDTO dto); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActTypeDictService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActTypeDictService.java new file mode 100644 index 0000000000..a74118179c --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActTypeDictService.java @@ -0,0 +1,14 @@ +package com.epmet.modules.partyOrg.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.modules.partyOrg.entity.IcPartyActTypeDictEntity; + +/** + * 党组织活动类型字典表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-22 + */ +public interface IcPartyActTypeDictService extends BaseService { + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java index 6397916cc6..aa13fbfec8 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java @@ -6,10 +6,10 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.EditPrincipalFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.GetParentOrgFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgTreeListDTO; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; -import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.*; import java.util.List; import java.util.Map; @@ -108,7 +108,7 @@ public interface IcPartyOrgService extends BaseService { * @return com.epmet.commons.tools.utils.Result> */ Result> getSearchTreelist(PartyOrgTreeListDTO formDTO); - + List getOrgTreeHaveGroup(PartyOrgTreeListDTO formDTO); /** * @describe: 上级党组织列表 * @author wangtong @@ -117,4 +117,45 @@ public interface IcPartyOrgService extends BaseService { * @return com.epmet.commons.tools.utils.Result> */ Result> getParentOrgList(GetParentOrgFormDTO formDTO); + + /** + * 获取客户下支部列表 + * + * @Param tokenDto + * @Return {@link Map} + * @Author zhaoqifeng + * @Date 2022/8/15 15:52 + */ + Map getPartyOrgList(TokenDto tokenDto); + + /** + * 党组织活动发布时, + * 查询当前登录用户所属行政组织下,默认的党组织,取第一个 + * @param tokenDto + * @return + */ + DefaultPartyOrgResDTO defaultPartyOrg(String customerId, String userId); + + /** + * 查询党组织partyOrgIdPath + * @param icPartyOrgId + * @return + */ + IcPartyOrgInfo queryIcPartyOrgInfo(String icPartyOrgId); + + /** + * 调整历史数据 ORG_PIDS + */ + void adjustOrgPath(List customerIds); + + List partOrgList(String gridId); + + /** + * Desc: 党组织修改负责人 + * @param formDTO + * @author zxc + * @date 2022/9/7 15:04 + */ + void editPrincipal(EditPrincipalFormDTO formDTO); + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcScheduleService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcScheduleService.java new file mode 100644 index 0000000000..ebd7f6f6dd --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcScheduleService.java @@ -0,0 +1,86 @@ +package com.epmet.modules.partyOrg.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.modules.partyOrg.entity.IcScheduleEntity; +import com.epmet.resi.partymember.dto.IcScheduleDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.AddOrEditScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.IcScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcScheduleListDTO; + +import java.util.List; + +/** + * 日程表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +public interface IcScheduleService extends BaseService { + + /** + * 默认查询 + * + * @param formDTO + * @return java.util.List + * @author generator + * @date 2022-08-18 + */ + PageData list(IcScheduleFormDTO formDTO); + + /** + * 单条查询 + * + * @param id + * @return IcScheduleDTO + * @author generator + * @date 2022-08-18 + */ + IcScheduleDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-18 + */ + void save(IcScheduleDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-18 + */ + void update(IcScheduleDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-08-18 + */ + void delete(String[] ids); + + /** + * Desc: 新增或编辑日程 + * @param formDTO + * @author zxc + * @date 2022/8/18 16:31 + */ + void addOrEditSchedule(AddOrEditScheduleFormDTO formDTO); + + /** + * Desc: 删除日程 + * @param scheduleIds + * @author zxc + * @date 2022/8/18 17:00 + */ + void delSchedule(List scheduleIds); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/ResiPartymemberAttachmentService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/ResiPartymemberAttachmentService.java new file mode 100644 index 0000000000..6c70b77d3f --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/ResiPartymemberAttachmentService.java @@ -0,0 +1,16 @@ +package com.epmet.modules.partyOrg.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.modules.partyOrg.entity.ResiPartymemberAttachmentEntity; + +import java.util.List; + +/** + * 本库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-19 + */ +public interface ResiPartymemberAttachmentService extends BaseService { + int deleteByBusinessId(String customerId, List businessIds); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActOrgServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActOrgServiceImpl.java new file mode 100644 index 0000000000..dc767f47e0 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActOrgServiceImpl.java @@ -0,0 +1,31 @@ +package com.epmet.modules.partyOrg.service.impl; + +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.modules.partyOrg.dao.IcPartyActOrgDao; +import com.epmet.modules.partyOrg.entity.IcPartyActOrgEntity; +import com.epmet.modules.partyOrg.service.IcPartyActOrgService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 参加活动党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Service +public class IcPartyActOrgServiceImpl extends BaseServiceImpl implements IcPartyActOrgService { + + @Override + public int deleteByPartyActId(String customerId, List icPartyActIds) { + if (CollectionUtils.isEmpty(icPartyActIds)) { + return 0; + } + return baseDao.deleteByPartyActId(customerId, icPartyActIds); + } + + +} + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java new file mode 100644 index 0000000000..c5d1d7244b --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java @@ -0,0 +1,817 @@ +package com.epmet.modules.partyOrg.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.rocketmq.messages.PartyMeetingMessageMQMsg; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.Constant; +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; +import com.epmet.commons.tools.exception.RenException; +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.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.constant.ReadFlagConstant; +import com.epmet.constant.SystemMessageType; +import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.modules.partyOrg.dao.*; +import com.epmet.modules.partyOrg.entity.*; +import com.epmet.modules.partyOrg.service.*; +import com.epmet.modules.partymember.dao.IcPartyMemberDao; +import com.epmet.resi.group.dto.group.ResiGroupDTO; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActAddOrUpdateFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActPageFormDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartActTypeDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActDetailResDTO; +import com.epmet.resi.partymember.dto.icpartyact.result.IcPartyActPageResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyActTypeDictDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.*; +import com.epmet.resi.partymember.dto.partyOrg.result.*; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyInfoResultDTO; +import com.epmet.send.SendMqMsgUtil; +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.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 党建组织活动 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Slf4j +@Service +public class IcPartyActServiceImpl extends BaseServiceImpl implements IcPartyActService { + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; + @Autowired + private IcScheduleDao scheduleDao; + @Autowired + private IcPartyOrgService partyOrgService; + @Autowired + private IcPartyActOrgDao icPartyActOrgDao; + @Autowired + private IcPartyOrgDao partyOrgDao; + @Autowired + private ResiPartymemberAttachmentDao resiPartymemberAttachmentDao; + @Autowired + private EpmetMessageOpenFeignClient messageOpenFeignClient; + @Autowired + private IcPartyActTypeDictService partyActTypeDictService; + @Autowired + private IcPartyMemberDao icPartyMemberDao; + @Autowired + private IcPartyActSignInRecordDao icPartyActSignInRecordDao; + @Autowired + private IcScheduleDao icScheduleDao; + /** + * 活动类型列表 + * + * @param customerId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List actTypeList(String customerId) { + List list= baseDao.actTypeList(customerId); + if(CollectionUtils.isEmpty(list)){ + List icPartActTypeDTOS = baseDao.actTypeList(Constant.DEFAULT_CUSTOMER); + List entities = ConvertUtils.sourceToTarget(icPartActTypeDTOS, IcPartyActTypeDictEntity.class); + entities.forEach(e -> { + e.setId(IdWorker.getIdStr()); + e.setCustomerId(customerId); + }); + partyActTypeDictService.insertBatch(entities); + list = icPartActTypeDTOS; + } + return ConvertUtils.sourceToTarget(list,IcPartActTypeDTO.class); + } + + + + /** + * Desc: 【党建日历】首页-获取每月总数 = 日程总数 + 活动总数 + * 活动总数查询:支部下的 + 是不是本人条件 + * 日程查询:当前组织下 本人的 + 其他人公开的 + * @param formDTO + * @author zxc + * @date 2022/8/19 09:05 + */ + @Override + public List getHomeMonthTotal(HomeMonthTotalFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = queryStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + formDTO.setAgencyId(staffInfo.getAgencyId()); + // IcPartyOrgDTO icPartyOrgDTO = partyOrgService.get(formDTO.getOrgId()); + // if (null == icPartyOrgDTO){ + // throw new EpmetException("未查询到党组织信息:"+formDTO.getOrgId()); + // } + // formDTO.setPath(icPartyOrgDTO.getOrgPids().equals("") || icPartyOrgDTO.getOrgPids().equals(NumConstant.ZERO_STR) ? icPartyOrgDTO.getId() : icPartyOrgDTO.getOrgPids().concat(":").concat(icPartyOrgDTO.getId())); + List result = constructMonthData(formDTO.getYearId()); + List countList = scheduleDao.getScheduleAndActCount(formDTO); + if (CollectionUtils.isNotEmpty(countList)){ + countList.forEach(c -> result.stream().filter(r -> c.getMonthId().equals(r.getMonthId())).forEach(r -> r.setCount(c.getCount()))); + } + return result; + } + + /** + * Desc: 构造结果集 + * @param yearId + * @author zxc + * @date 2022/8/19 09:31 + */ + public List constructMonthData(String yearId){ + List result = new ArrayList<>(); + if (StringUtils.isNotBlank(yearId)){ + String[] array = new String[NumConstant.TWELVE]; + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR,Integer.parseInt(yearId)); + cal.set(Calendar.MONTH, NumConstant.ZERO); + for(int i=NumConstant.ZERO; i addOrUpdate(IcPartyActAddOrUpdateFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo=queryStaffInfo(formDTO.getCustomerId(),formDTO.getPublishStaffId()); + IcPartyActEntity icPartyActEntity= ConvertUtils.sourceToTarget(formDTO,IcPartyActEntity.class); + //计算好自动发布的时间 + icPartyActEntity.setAutoPublicTime(DateUtils.calDateBaseDay(formDTO.getHoldTime(),formDTO.getAutoPublicType()*-1)); + icPartyActEntity.setPublishStaffName(staffInfo.getRealName()); + icPartyActEntity.setOrgId(staffInfo.getAgencyId()); + + //!!!!!!!不用前端传的了。 我自己查询吧 + IcPartyOrgInfo icPartyOrgInfo=SpringContextUtils.getBean(IcPartyOrgService.class).queryIcPartyOrgInfo(formDTO.getPublishPartyOrgId()); + if (null == icPartyOrgInfo || StringUtils.isBlank(icPartyOrgInfo.getPartyOrgIdPath())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党组织信息查询异常publishPartyOrgId="+formDTO.getPublishPartyOrgId(), "党组织信息查询异常"); + } + icPartyActEntity.setPublishOrgPath(icPartyOrgInfo.getPartyOrgIdPath()); + + AgencyInfoCache agencyInfoCache= CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId()); + icPartyActEntity.setPid(agencyInfoCache.getPid()); + if(StringUtils.isBlank(agencyInfoCache.getPid())||NumConstant.ZERO_STR.equals(agencyInfoCache.getPid())){ + // 根组织 + icPartyActEntity.setOrgIdPath(agencyInfoCache.getId()); + }else{ + icPartyActEntity.setOrgIdPath(agencyInfoCache.getPids().concat(StrConstant.COLON).concat(agencyInfoCache.getId())); + } + Boolean sendMsg=false; + if(StringUtils.isNotBlank(formDTO.getIcPartyActId())){ + icPartyActEntity.setId(formDTO.getIcPartyActId()); + //删除附件、删除参加组织 + SpringContextUtils.getBean(ResiPartymemberAttachmentService.class).deleteByBusinessId(formDTO.getCustomerId(), Arrays.asList(formDTO.getIcPartyActId())); + SpringContextUtils.getBean(IcPartyActOrgService.class).deleteByPartyActId(formDTO.getCustomerId(), Arrays.asList(formDTO.getIcPartyActId())); + //保留原来的发布状态 + IcPartyActEntity origin=baseDao.selectById(formDTO.getIcPartyActId()); + icPartyActEntity.setIsPublish(origin.getIsPublish()); + //修改活动 + baseDao.updateById(icPartyActEntity); + + //已发布,在编辑的时候,需要发送消息 + if(NumConstant.ONE_STR.equals(icPartyActEntity.getIsPublish())&&NumConstant.ONE_STR.equals(icPartyActEntity.getIsAutoInform())){ + sendMsg=true; + } + }else{ + //默认是未发布 + if(NumConstant.ZERO==formDTO.getAutoPublicType()){ + //选择立即发布,状态:已发布 + icPartyActEntity.setIsPublish(NumConstant.ONE_STR); + //立即发布的需要发送消息 + sendMsg=true; + }else{ + icPartyActEntity.setIsPublish(NumConstant.ZERO_STR); + } + //新增活动 + baseDao.insert(icPartyActEntity); + } + //新增参加参加活动党组织 + List orgList=ConvertUtils.sourceToTarget(formDTO.getJoinOrgList(),IcPartyActOrgEntity.class); + orgList.forEach(joinOrg->{ + joinOrg.setCustomerId(formDTO.getCustomerId()); + joinOrg.setIcPartyActId(icPartyActEntity.getId()); + //!!!!!!!不用前端传的了。 我自己查询吧 + IcPartyOrgInfo joinPartyOrgInfo=SpringContextUtils.getBean(IcPartyOrgService.class).queryIcPartyOrgInfo(joinOrg.getJoinOrgId()); + if (null == joinPartyOrgInfo || StringUtils.isBlank(joinPartyOrgInfo.getPartyOrgIdPath())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党组织信息查询异常joinOrgId="+joinOrg.getJoinOrgId(), "党组织信息查询异常"); + } + joinOrg.setJoinOrgPath(joinPartyOrgInfo.getPartyOrgIdPath()); + icPartyActOrgDao.insert(joinOrg); + }); + + //批量新增附件 + List attachmentEntityList=CollectionUtils.isNotEmpty(formDTO.getAttachmentList())?ConvertUtils.sourceToTarget(formDTO.getAttachmentList(),ResiPartymemberAttachmentEntity.class):new ArrayList<>(); + int attSort = 1; + for (ResiPartymemberAttachmentEntity att : attachmentEntityList) { + att.setCustomerId(formDTO.getCustomerId()); + att.setBusinessId(icPartyActEntity.getId()); + att.setAttachTo("ic_party_act"); + att.setSort(attSort); + attSort++; + resiPartymemberAttachmentDao.insert(att); + } + + //已经发布的活动+且活动未开始的,编辑后需要发消息 + boolean flag=icPartyActEntity.getHoldTime().compareTo(new Date()) >0; + if (sendMsg && flag) { + PartyMeetingMessageMQMsg msg = new PartyMeetingMessageMQMsg(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setIcPartyActId(icPartyActEntity.getId()); + msg.setType("publish"); + SendMqMsgUtil.build() + .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + .sendRocketMqMsg(SystemMessageType.PARTY_MEETING_MESSAGE, msg); + } + + Map map=new HashMap<>(); + map.put("icPartyActId",icPartyActEntity.getId()); + return map; + } + + private CustomerStaffInfoCacheResult queryStaffInfo(String customerId, String staffId) { + CustomerStaffInfoCacheResult staffInfo=CustomerStaffRedis.getStaffInfo(customerId,staffId); + if (null == staffInfo) { + String msg = "查询工作人员信息异常"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } + return staffInfo; + } + + + /** + * 【活动列表】分页查询(工作端小程序通用) + * + * @param formDTO + * @return + */ + @Override + public PageData pageList(IcPartyActPageFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = queryStaffInfo(formDTO.getCustomerId(), formDTO.getPublishStaffId()); + formDTO.setStaffAgencyId(staffInfo.getAgencyId()); + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> baseDao.selectPageList(formDTO)); + if(!formDTO.getIsPage()){ + pageInfo.getList().forEach(l->{ + l.setJoinOrgList(icPartyActOrgDao.selectJoinOrgList(l.getIcPartyActId())); + }); + } + return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); + } + + /** + * 活动列表活动详情 + * + * @param customerId + * @param userId + * @param icPartyActId + * @return + */ + @Override + public IcPartyActDetailResDTO queryActDetail(String customerId, String userId, String icPartyActId) { + IcPartyActEntity icPartyActEntity = baseDao.selectById(icPartyActId); + if (null == icPartyActEntity) { + String msg = "活动已删除"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } + IcPartyActDetailResDTO resDTO=ConvertUtils.sourceToTarget(icPartyActEntity,IcPartyActDetailResDTO.class); + resDTO.setAutoPublicTypeDesc(icPartyActEntity.getAutoPublicType().compareTo(NumConstant.ZERO) != NumConstant.ZERO ? "活动开始前"+icPartyActEntity.getAutoPublicType()+"天" : "立即发布"); + resDTO.setIcPartyActId(icPartyActEntity.getId()); + resDTO.setActTypeName(baseDao.selectActTypeName(customerId,icPartyActEntity.getActType())); + //参加人员类型,0:全体党员;1:支部委员 + resDTO.setJoinUserTypeName(NumConstant.ZERO_STR.equals(resDTO.getJoinUserType()) ? "全体党员" : "支部委员"); + resDTO.setAttachmentList(resiPartymemberAttachmentDao.selectListByBusinessId(icPartyActId)); + resDTO.setIsSignIn(SpringContextUtils.getBean(IcPartyActSignInRecordService.class).checkSignIn(icPartyActId,userId)); + resDTO.setJoinOrgList(icPartyActOrgDao.selectJoinOrgList(icPartyActId)); + return resDTO; + } + + /** + * Desc: 【党建日历】活动、日程列表 + * @param formDTO + * @author zxc + * @date 2022/8/19 13:57 + */ + @Override + public ActAndScheduleListResultDTO getActAndScheduleList(ActAndScheduleListFormDTO formDTO) { + disposeActAndScheduleListFormDTO(formDTO); + List activityList = baseDao.getActivityList(formDTO); + if (CollectionUtils.isNotEmpty(activityList)){ + disposeActivityList(formDTO,activityList); + } + List scheduleList = scheduleDao.getScheduleList(formDTO); + if (CollectionUtils.isNotEmpty(scheduleList)){ + scheduleList.forEach(s -> { + s.setIsMe(formDTO.getStaffId().equals(s.getStaffId())); + }); + } + ActAndScheduleListResultDTO result = new ActAndScheduleListResultDTO(); + result.setActivityList(activityList); + result.setScheduleList(scheduleList); + return result; + } + + /** + * Desc: 【党建日历】某月/天数据搜索列表 + * @param formDTO + * @author zxc + * @date 2022/8/19 14:01 + */ + @Override + public List homeSearch(ActAndScheduleListFormDTO formDTO) { + disposeActAndScheduleListFormDTO(formDTO); + List result = constructHomeSearchData(formDTO.getStartDate(), formDTO.getEndDate()); + List activityList = baseDao.getActivityList(formDTO); + if (CollectionUtils.isNotEmpty(activityList)){ + disposeActivityList(formDTO,activityList); + Map> groupByDateId = activityList.stream().collect(Collectors.groupingBy(ActAndScheduleListResultDTO.ActivityListDTO::getDateId)); + result.forEach(r -> { + groupByDateId.forEach((dateId,list) -> { + if (r.getDateId().equals(dateId)){ + r.setActivityList(list); + r.setActivityTotal(list.size()); + } + }); + }); + } + List scheduleList = scheduleDao.getScheduleList(formDTO); + if (CollectionUtils.isNotEmpty(scheduleList)){ + scheduleList.forEach(s -> { + s.setIsMe(formDTO.getStaffId().equals(s.getStaffId())); + }); + Map> groupByDateId = scheduleList.stream().collect(Collectors.groupingBy(ActAndScheduleListResultDTO.ScheduleListDTO::getDateId)); + result.forEach(r -> { + groupByDateId.forEach((dateId,list) -> { + if (r.getDateId().equals(dateId)){ + r.setScheduleList(list); + r.setScheduleTotal(list.size()); + } + }); + }); + } + return result; + } + + /** + * Desc: 【党建日历】生成年度活动计划查询 + * @param formDTO + * @author zxc + * @date 2022/8/22 09:33 + */ + @Override + public List yearSearch01(YearSearchFormDTO formDTO) { + ActAndScheduleListFormDTO secondForm = ConvertUtils.sourceToTarget(formDTO, ActAndScheduleListFormDTO.class); + secondForm.setSearchType("yearSearch"); + disposeActAndScheduleListFormDTO(secondForm); + List activityList = baseDao.getActivityList(secondForm); + List activityTypeList = actTypeList(formDTO.getCustomerId()); + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(activityList)) { + disposeActivityList(secondForm, activityList); + Map> groupByType = activityList.stream().collect(Collectors.groupingBy(ActAndScheduleListResultDTO.ActivityListDTO::getType)); + groupByType.forEach((type,list) -> { + YearSearchResultDTO dto = new YearSearchResultDTO(); + activityTypeList.forEach(at -> { + if (at.getValue().equals(type)){ + dto.setType(at.getLabel()); + dto.setFrequency(at.getFrequencyDesc()); + } + }); + dto.setActivityList(ConvertUtils.sourceToTarget(list, YearSearchResultDTO.YearSearchActivityListDTO.class)); + result.add(dto); + }); + } + return result; + } + + @Override + public List yearSearch(YearSearchFormDTO formDTO) { + ActAndScheduleListFormDTO secondForm = ConvertUtils.sourceToTarget(formDTO, ActAndScheduleListFormDTO.class); + secondForm.setSearchType("yearSearch"); + disposeActAndScheduleListFormDTO(secondForm); + List activityList = baseDao.getActivityList(secondForm); + List activityDetailList = new ArrayList<>(); + if (CollectionUtils.isEmpty(activityList)){ + return new ArrayList<>(); + } + activityList.forEach(al -> { + IcPartyActDetailResDTO icPartyActDetailResDTO = queryActDetail(formDTO.getCustomerId(), formDTO.getStaffId(), al.getActivityId()); + activityDetailList.add(icPartyActDetailResDTO); + }); + List result = new ArrayList<>(); + List activityTypeList = actTypeList(formDTO.getCustomerId()); + Map> groupByType = activityDetailList.stream().collect(Collectors.groupingBy(IcPartyActDetailResDTO::getActType)); + groupByType.forEach((type,list) -> { + YearSearchDetailResultDTO dto = new YearSearchDetailResultDTO(); + activityTypeList.forEach(at -> { + if (at.getValue().equals(type)){ + dto.setType(type); + dto.setTypeValue(at.getLabel()); + dto.setFrequency(at.getFrequencyDesc()); + } + }); + dto.setActivityList(list); + result.add(dto); + }); + return result; + } + + /** + * Desc: + * @param formDTO + * @author zxc + * @date 2022/8/19 17:26 + */ + public void disposeActAndScheduleListFormDTO(ActAndScheduleListFormDTO formDTO){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo){ + throw new EpmetException("查询工作人员失败:"+formDTO.getStaffId()); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + if (!formDTO.getSearchType().equals("yearSearch")){ + if (StringUtils.isNotBlank(formDTO.getOrgId())){ + IcPartyOrgDTO icPartyOrgDTO = partyOrgService.get(formDTO.getOrgId()); + if (null == icPartyOrgDTO){ + throw new EpmetException("未查询到党组织信息:"+formDTO.getOrgId()); + } + formDTO.setPath(StringUtils.isBlank(icPartyOrgDTO.getOrgPid()) || icPartyOrgDTO.getOrgPid().equals(NumConstant.ZERO_STR) ? icPartyOrgDTO.getId() : icPartyOrgDTO.getOrgPids().concat(":").concat(icPartyOrgDTO.getId())); + } + } + + } + + /** + * Desc: 组装activityList + * @param formDTO + * @param activityList + * @author zxc + * @date 2022/8/19 17:19 + */ + public void disposeActivityList(ActAndScheduleListFormDTO formDTO,List activityList){ + List partyOrgIdsNoDistinct = new ArrayList<>(); + activityList.forEach(a -> { + partyOrgIdsNoDistinct.addAll(a.getJoinOrgList().stream().map(m -> m.getPartyOrgId()).collect(Collectors.toList())); + }); + List partyOrgIds = partyOrgIdsNoDistinct.stream().distinct().collect(Collectors.toList()); + List partyOrg = partyOrgDao.getPartyOrg(partyOrgIds); + if (CollectionUtils.isNotEmpty(activityList)) { + activityList.forEach(a -> { + a.setIsMe(formDTO.getStaffId().equals(a.getStaffId())); + a.getJoinOrgList().forEach(po -> partyOrg.stream().filter(p -> p.getPartyOrgId().equals(po.getPartyOrgId())).forEach(p -> po.setPartyOrgName(p.getPartyOrgName()))); + a.setJoinOrgs(a.getJoinOrgList().stream().map(m -> m.getPartyOrgName()).collect(Collectors.toList())); + }); + } + } + + public static List constructHomeSearchData(String startDate,String endDate){ + List result = new ArrayList<>(); + if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){ + List days = DateUtils.getDaysBetween(startDate, endDate); + days.forEach(d -> { + ActAndScheduleListResultDTO dto = new ActAndScheduleListResultDTO(); + dto.setDateId(d); + result.add(dto); + }); + } + return result; + } + + /** + * 党建小助手活动触发为用户推送消息 + */ + @Override + public void partyMeetingMessage(PartyMeetingMessageMQMsg formDTO) { + //1.校验活动/日程数据是否存在 + IcPartyActEntity entity = null; + IcScheduleEntity schedule = null; + if (!"notify".equals(formDTO.getType())) { + entity = baseDao.selectById(formDTO.getIcPartyActId()); + if (null == entity) { + // String msg = "活动信息不存在,活动Id:" + formDTO.getIcPartyActId(); + // throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + return; + } + } else { + schedule = scheduleDao.selectById(formDTO.getIcPartyActId()); + if (null == schedule) { + // String msg = "日程信息不存在,活动Id:" + formDTO.getIcPartyActId(); + // throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + return; + } + } + + List msgList = new ArrayList<>(); + //2.根据不同类型消息触发不同处理逻辑 + //2-1.发布活动给居民端涉及党员已经工作端活动发布站推送党建活动消息 + if ("publish".equals(formDTO.getType())) { + //查询活动对应的发布范围信息 + LambdaQueryWrapper orgWrapper = new LambdaQueryWrapper<>(); + orgWrapper.eq(IcPartyActOrgEntity::getDelFlag, NumConstant.ZERO_STR); + orgWrapper.eq(IcPartyActOrgEntity::getIcPartyActId, formDTO.getIcPartyActId()); + List list = icPartyActOrgDao.selectList(orgWrapper); + List groupIdList = list.stream().filter(ca -> ca.getOrgType().equals("6")).map(m -> m.getJoinOrgId()).collect(Collectors.toList()); + List partyOrgIdList = list.stream().filter(ca -> !ca.getOrgType().equals("6")).map(m -> m.getJoinOrgId()).collect(Collectors.toList()); + //分别查询党组织、党小组下的人 + List userIdList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(groupIdList)) { + Result> result = resiGroupOpenFeignClient.groupMemberList(groupIdList); + if (!result.success()) { + throw new RenException("调用common service查询secret失败"); + } + userIdList = result.getData().stream().map(ResiGroupMemberDTO::getCustomerUserId).collect(Collectors.toList()); + } + if (!CollectionUtils.isEmpty(partyOrgIdList)) { + List partyIdList = partyOrgDao.getUserIdByPartyOrgIds(partyOrgIdList); + userIdList.addAll(partyIdList); + } + userIdList = userIdList.stream().distinct().collect(Collectors.toList()); + + //组装消息 + for (String id : userIdList){ + UserMessageFormDTO msg = new UserMessageFormDTO(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setApp(AppClientConstant.APP_RESI); + msg.setTitle("您收到一个新的活动通知"); + msg.setReadFlag(ReadFlagConstant.UN_READ); + StringBuffer str = new StringBuffer(); + str.append("主题:").append(entity.getTopic()).append("\n").append("时间:").append(DateUtils.format(entity.getHoldTime(), "yyyy年MM月dd日 HH:mm:ss")).append("\n").append("地点:").append(entity.getAddress()); + msg.setMessageContent(str.toString()); + msg.setMessageType("party_act"); + msg.setTargetId(formDTO.getIcPartyActId()); + msg.setUserId(id); + msgList.add(msg); + } + //工作人员 + UserMessageFormDTO msg = new UserMessageFormDTO(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setApp(AppClientConstant.APP_GOV); + msg.setTitle("您有一个活动已经发布"); + msg.setReadFlag(ReadFlagConstant.UN_READ); + StringBuffer str = new StringBuffer(); + str.append("主题:").append(entity.getTopic()).append("\n").append("时间:").append(DateUtils.format(entity.getHoldTime(), "yyyy年MM月dd日 HH:mm:ss")).append("\n").append("地点:").append(entity.getAddress()); + msg.setMessageContent(str.toString()); + msg.setMessageType("party_act"); + msg.setTargetId(formDTO.getIcPartyActId()); + msg.setUserId(entity.getPublishStaffId()); + msgList.add(msg); + } + //2-2.活动开始前三天给工作人员推送提醒类消息 + if ("remind".equals(formDTO.getType())) { + UserMessageFormDTO msg = new UserMessageFormDTO(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setApp(AppClientConstant.APP_GOV); + msg.setTitle("您有一个活动3天后即将自动发布"); + msg.setReadFlag(ReadFlagConstant.UN_READ); + StringBuffer str = new StringBuffer(); + str.append("主题:").append(entity.getTopic()).append("\n").append("时间:").append(DateUtils.format(entity.getHoldTime(), "yyyy年MM月dd日 HH:mm:ss")).append("\n").append("地点:").append(entity.getAddress()); + msg.setMessageContent(str.toString()); + msg.setMessageType("party_act"); + msg.setTargetId(formDTO.getIcPartyActId()); + msg.setUserId(entity.getPublishStaffId()); + msgList.add(msg); + } + //2-2.给工作人员推送日程消息 + if ("notify".equals(formDTO.getType())) { + UserMessageFormDTO msg = new UserMessageFormDTO(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setApp(AppClientConstant.APP_GOV); + msg.setTitle("您有一个日程提醒"); + msg.setReadFlag(ReadFlagConstant.UN_READ); + StringBuffer str = new StringBuffer(); + str.append("日程:").append(schedule.getTitle()).append("\n").append("时间:").append(DateUtils.format(schedule.getHappenedTime(), "yyyy年MM月dd日 HH:mm:ss")); + msg.setMessageContent(str.toString()); + msg.setMessageType("party_schedule"); + msg.setTargetId(formDTO.getIcPartyActId()); + msg.setUserId(schedule.getStaffId()); + msgList.add(msg); + } + + //3.推送消息 + Result sendMessageRes = messageOpenFeignClient.saveIcMessageList(msgList); + if (!sendMessageRes.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党建小助手推送消息失败"); + } + } + + /** + * * pc活动列表-发布活动 + * pc党建日历左下角列表,点击发布 + * 工作端小程序点击发布 + * + * @param userId + * @param icPartyActId + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void publicshIcPartyAct(String userId, String icPartyActId) { + //谁发布的活动谁编辑 + IcPartyActEntity icPartyActEntity = baseDao.selectById(icPartyActId); + if (null == icPartyActEntity) { + String msg = "未找到活动详情"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } + if(!userId.equals(icPartyActEntity.getCreatedBy())){ + String msg = String.format("当前活动是%s发布的,您无权操作",icPartyActEntity.getPublishStaffName()); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } + icPartyActEntity.setIsPublish(NumConstant.ONE_STR); + icPartyActEntity.setUpdatedBy(userId); + baseDao.updateById(icPartyActEntity); + //发送消息:自动通知参加人员+活动未开始的 + if (NumConstant.ONE_STR.equals(icPartyActEntity.getIsAutoInform()) && icPartyActEntity.getHoldTime().compareTo(new Date()) >0) { + PartyMeetingMessageMQMsg msg = new PartyMeetingMessageMQMsg(); + msg.setCustomerId(icPartyActEntity.getCustomerId()); + msg.setIcPartyActId(icPartyActEntity.getId()); + msg.setType("publish"); + SendMqMsgUtil.build().openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)).sendRocketMqMsg(SystemMessageType.PARTY_MEETING_MESSAGE, msg); + } + } + + /** + * 删除活动 + * + * @param userId + * @param icPartyActIds + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void deleteIcPartyAct(String customerId,String userId, List icPartyActIds) { + if(CollectionUtils.isEmpty(icPartyActIds)){ + return; + } + icPartyActIds.forEach(icPartyActId->{ + //删除活动主表和参与活动党组织关系表记录 + //只有本人发布的活动才可以删除 + baseDao.deleteIcPartyAct(customerId,userId,icPartyActId); + icPartyActOrgDao.updateToDel(userId,icPartyActId); + //删除签到记录 + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(IcPartyActSignInRecordEntity::getIcPartyActId,icPartyActId); + icPartyActSignInRecordDao.delete(queryWrapper); + }); + + } + + @Override + public PageData list(IcPartyActListFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + //1.查询当前用户所属党支部信息 + IcPartyInfoResultDTO dto = icPartyMemberDao.selectByUserId(formDTO.getUserId()); + if(null == dto){ + return new PageData<>(new ArrayList<>(), 0); + } + formDTO.setJoinOrgId(dto.getId()); + + //2.根据所属支部及查询条件筛选数据 + List list = baseDao.selectresiPartyActList(formDTO); + + //3.封装数据 + List dict = actTypeList(formDTO.getCustomerId()); + list.forEach(u -> dict.stream().filter(r -> u.getActType().equals(r.getValue())).forEach(d -> u.setActTypeName(d.getLabel()))); + + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + /** + * 通知:您有一个活动3天后即将自动发布 + */ + @Override + public void noticePartyActAutoPublish() { + Date nowDate=new Date(); + Date afterThreeDayDate=DateUtils.calDateBaseDay(nowDate,3); + // log.info("现在时间:"+DateUtils.format(nowDate,"yyyy-MM-dd HH:mm:ss")+";3天后="+DateUtils.format(afterThreeDayDate,"yyyy-MM-dd HH:mm:ss")); + //现在时间:2022-08-22 17:11:49;3天后=2022-08-25 17:11:49 + //dateId:20220825 + String dateId=DateUtils.format(afterThreeDayDate,DateUtils.DATE_PATTERN_YYYYMMDD); + List list=baseDao.selectNeedRemindAutoPublishAct(dateId); + for(IcPartyActEntity act:list){ + PartyMeetingMessageMQMsg msg = new PartyMeetingMessageMQMsg(); + msg.setCustomerId(act.getCustomerId()); + msg.setIcPartyActId(act.getId()); + msg.setType("remind"); + SendMqMsgUtil.build() + .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + .sendRocketMqMsg(SystemMessageType.PARTY_MEETING_MESSAGE, msg); + } + //日程又增加了一个提醒时间 + String nowDateId=DateUtils.format(new Date(),DateUtils.DATE_PATTERN_YYYYMMDD); + List scheduleEntityList=icScheduleDao.selectNeedNotice(nowDateId); + for(IcScheduleEntity icScheduleEntity:scheduleEntityList){ + PartyMeetingMessageMQMsg msg = new PartyMeetingMessageMQMsg(); + msg.setCustomerId(icScheduleEntity.getCustomerId()); + msg.setIcPartyActId(icScheduleEntity.getId()); + msg.setType("notify"); + SendMqMsgUtil.build() + .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + .sendRocketMqMsg(SystemMessageType.PARTY_MEETING_MESSAGE, msg); + } + } + + /** + * 自动发布活动 + */ + @Override + public void autoPublishIcPartyAct() { + Date nowDate = new Date(); + String dateId = DateUtils.format(nowDate, DateUtils.DATE_PATTERN_YYYYMMDDHHMM); + String min = dateId.substring(0, dateId.length() - 1); + log.info("自动发布活动开始,当前时间dateId=" + dateId + ";sql入参:" + min); + List list = baseDao.selectNoPublishList(min); + if (CollectionUtils.isNotEmpty(list)) { + log.info("自动发布" + list.size() + "个活动"); + for (IcPartyActEntity act : list) { + // 置为已发布 + act.setIsPublish(NumConstant.ONE_STR); + baseDao.updateById(act); + // 选择了自动通知参加人员的,需要发送消息 + if (NumConstant.ONE_STR.equals(act.getIsAutoInform())) { + PartyMeetingMessageMQMsg msg = new PartyMeetingMessageMQMsg(); + msg.setCustomerId(act.getCustomerId()); + msg.setIcPartyActId(act.getId()); + msg.setType("publish"); + SendMqMsgUtil.build() + .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + .sendRocketMqMsg(SystemMessageType.PARTY_MEETING_MESSAGE, msg); + } + } + } + } + + + /** + * Desc: 统计各党组织参与各种党活动的次数 + */ + @Override + public LinkedList patryActStatis(PartyActStatisFormDTO formDTO) { + LinkedList resultList = new LinkedList<>(); + //1.查询当前党组织及直属下级基础数据 + List orgDTOList = partyOrgDao.getSelfAndSub(formDTO.getJoinOrgId()); + if (CollectionUtils.isEmpty(orgDTOList)) { + return resultList; + } + List partyOrgIdList = orgDTOList.stream().map(IcPartyOrgDTO::getId).collect(Collectors.toList()); + //如果党组织是支部类型,则直属下级是党小组 + if ("5".equals(orgDTOList.get(0).getPartyOrgType())) { + Result> result = resiGroupOpenFeignClient.partyGroupList(formDTO.getJoinOrgId()); + if (!result.success()) { + throw new RenException("获取党支部下党小组列表失败:" + result.getInternalMsg()); + } + List groupIdList = result.getData().stream().map(ResiGroupDTO::getId).collect(Collectors.toList()); + partyOrgIdList.addAll(groupIdList); + } + formDTO.setPartyOrgIdList(partyOrgIdList); + + //2.按党组织统计查询各类型活动参与次数 + List partActStatis = baseDao.getPartActStatis(formDTO); + Map map = partActStatis.stream().collect(Collectors.toMap(PartyActStatisResultDTO::getJoinOrgId, m -> m, (k1, k2) -> k1)); + + //3.封装数据并返回 + orgDTOList.forEach(org -> { + PartyActStatisResultDTO dto = new PartyActStatisResultDTO(); + if (map.containsKey(org.getId())) { + dto = ConvertUtils.sourceToTarget(map.get(org.getId()), PartyActStatisResultDTO.class); + } + dto.setJoinOrgName(org.getPartyOrgName()); + resultList.add(dto); + }); + return resultList; + } + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActSignInRecordServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActSignInRecordServiceImpl.java new file mode 100644 index 0000000000..14e22242e7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActSignInRecordServiceImpl.java @@ -0,0 +1,193 @@ +package com.epmet.modules.partyOrg.service.impl; + +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.rocketmq.constants.TopicConstants; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.MqConstant; +import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +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.constant.SystemMessageType; +import com.epmet.dto.form.IssueInitiatorFormDTO; +import com.epmet.dto.form.SystemMsgFormDTO; +import com.epmet.dto.result.CustomerUserDetailResultDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.modules.partyOrg.dao.IcPartyActSignInRecordDao; +import com.epmet.modules.partyOrg.entity.IcPartyActEntity; +import com.epmet.modules.partyOrg.entity.IcPartyActSignInRecordEntity; +import com.epmet.modules.partyOrg.service.IcPartyActService; +import com.epmet.modules.partyOrg.service.IcPartyActSignInRecordService; +import com.epmet.resi.partymember.dto.IcPartyActSignInRecordDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.PartyActSignFormDTO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +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; + +/** + * 党组织活动签到记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-18 + */ +@Service +@Slf4j +public class IcPartyActSignInRecordServiceImpl extends BaseServiceImpl implements IcPartyActSignInRecordService { + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private IcPartyActService icPartyActService; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + + + @Override + public PageData list(PartyActSignFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.selectSignList(formDTO.getIcPartyActId()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + 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 IcPartyActSignInRecordDTO get(String id) { + IcPartyActSignInRecordEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPartyActSignInRecordDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPartyActSignInRecordDTO dto) { + IcPartyActSignInRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyActSignInRecordEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPartyActSignInRecordDTO dto) { + IcPartyActSignInRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyActSignInRecordEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 判断该用户是否已经签到 + * TRUE:已签到 + * + * @param icPartyActId + * @param userId + * @return + */ + @Override + public Boolean checkSignIn(String icPartyActId, String userId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyActSignInRecordEntity::getIcPartyActId,icPartyActId).eq(IcPartyActSignInRecordEntity::getEpmetUserId,userId); + if(baseDao.selectCount(wrapper)>0){ + return true; + } + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void sign(PartyActSignFormDTO formDTO) { + //1.查询用户居民信息 + IssueInitiatorFormDTO user = new IssueInitiatorFormDTO(); + user.setUserId(formDTO.getUserId()); + Result result = epmetUserOpenFeignClient.customerUserDetail(user); + if (!result.success() && null == result.getData()) { + throw new RenException("获取当前登录人居民信息失败"); + } + //二次签到不给积分 + boolean bl = true; + //2.判断新增/修改签到记录数据 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyActSignInRecordEntity::getIcPartyActId, formDTO.getIcPartyActId()); + wrapper.eq(IcPartyActSignInRecordEntity::getEpmetUserId, formDTO.getUserId()); + IcPartyActSignInRecordEntity entityOne = baseDao.selectOne(wrapper); + if (null == entityOne) { + IcPartyActSignInRecordEntity entity = ConvertUtils.sourceToTarget(formDTO, IcPartyActSignInRecordEntity.class); + entity.setEpmetUserId(formDTO.getUserId()); + entity.setIdCard(result.getData().getIdNum()); + entity.setUserRealName(result.getData().getName()); + insert(entity); + } else { + entityOne.setAddress(formDTO.getAddress()); + entityOne.setLatitude(formDTO.getLatitude()); + entityOne.setLongitude(formDTO.getLongitude()); + baseDao.updateById(entityOne); + bl = false; + } + + //3.推送mq加积分 + if (bl) { + IcPartyActEntity actEntity = icPartyActService.selectById(formDTO.getIcPartyActId()); + String actType = actEntity.getActType(); + String eventTag = ("dangke".equals(actType) ? SystemMessageType.DANGKE : ("dxzh".equals(actType) ? SystemMessageType.DXZH : ( + "wmfwhd".equals(actType) ? SystemMessageType.WMFWHD : ("zbdydh".equals(actType) ? SystemMessageType.ZBDYDH : ( + "zbwyh".equals(actType) ? SystemMessageType.ZBWYH : ("ztdr".equals(actType) ? SystemMessageType.ZTDR : "") + )) + ))); + //网格缓存信息 + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getGridId()); + if (null == gridInfo) { + throw new EpmetException(String.format("未查询到网格{%s}信息", formDTO.getGridId())); + } + List pointEventMsgList = new ArrayList<>(); + BasePointEventMsg pointEventMsg = new BasePointEventMsg(); + pointEventMsg.setOpAgencyId(gridInfo.getPid()); + pointEventMsg.setOperatorId(formDTO.getUserId()); + pointEventMsg.setAgencyId(gridInfo.getPid()); + pointEventMsg.setCustomerId(formDTO.getCustomerId()); + pointEventMsg.setGridId(gridInfo.getId()); + pointEventMsg.setUserId(formDTO.getUserId()); + pointEventMsg.setActionFlag(MqConstant.PLUS); + pointEventMsg.setIsCommon(false); + pointEventMsg.setSourceType(actType); + pointEventMsg.setSourceId(formDTO.getIcPartyActId()); + pointEventMsg.setEventTag(eventTag); + pointEventMsg.setEventClass(TopicConstants.PARTY_BUILDING); + pointEventMsgList.add(pointEventMsg); + + SystemMsgFormDTO msgFormDTO = new SystemMsgFormDTO(); + msgFormDTO.setMessageType(eventTag); + msgFormDTO.setContent(pointEventMsgList); + Result sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgFormDTO); + if (!sendMsgResult.success()) { + log.error("党建活动签到发送积分失败,活动Id->" + formDTO.getIcPartyActId() + " 用户->" + formDTO.getUserId()); + } + } + } + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActTypeDictServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActTypeDictServiceImpl.java new file mode 100644 index 0000000000..220b5c7e1d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActTypeDictServiceImpl.java @@ -0,0 +1,18 @@ +package com.epmet.modules.partyOrg.service.impl; + +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.modules.partyOrg.dao.IcPartyActTypeDictDao; +import com.epmet.modules.partyOrg.entity.IcPartyActTypeDictEntity; +import com.epmet.modules.partyOrg.service.IcPartyActTypeDictService; +import org.springframework.stereotype.Service; + +/** + * 党组织活动类型字典表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-22 + */ +@Service +public class IcPartyActTypeDictServiceImpl extends BaseServiceImpl implements IcPartyActTypeDictService { + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java index 70cb443864..8862404285 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java @@ -1,9 +1,12 @@ package com.epmet.modules.partyOrg.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.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.enums.PartyOrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -12,6 +15,7 @@ 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.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; @@ -23,22 +27,23 @@ import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; import com.epmet.modules.partyOrg.service.IcPartyOrgService; import com.epmet.modules.partymember.dao.IcPartyMemberDao; import com.epmet.modules.partymember.entity.IcPartyMemberEntity; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.EditPrincipalFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.GetParentOrgFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgTreeListDTO; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeSubDTO; -import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.*; +import lombok.extern.slf4j.Slf4j; 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 org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import javax.annotation.Resource; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 党组织表 @@ -46,6 +51,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-05-17 */ +@Slf4j @Service public class IcPartyOrgServiceImpl extends BaseServiceImpl implements IcPartyOrgService { @@ -54,6 +60,8 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl>> groupResult = resiGroupOpenFeignClient.getBranchGroupList(); + if (!groupResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询支部小组错误", "查询支部小组错误"); + } for (String id : ids) { //判断该组织是否有下级党组织 List orgList = baseDao.selectAllByOrgId(id); @@ -210,6 +220,10 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl> getTreelist(PartyOrgTreeListDTO formDTO) { List list = baseDao.getTreelist(formDTO); + Result>> groupResult = resiGroupOpenFeignClient.getBranchGroupList(); + if (!groupResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询支部小组错误", "查询支部小组错误"); + } + for (IcPartyOrgTreeDTO org : list) { + getChildren(org, groupResult.getData()); + } return new Result>().ok(build(list)); } + private void getChildren(IcPartyOrgTreeDTO dto, Map> map) { + if (NumConstant.FIVE_STR.equals(dto.getPartyOrgType())) { + if (map.containsKey(dto.getId())) { + dto.setChildren(map.get(dto.getId())); + dto.getChildren().forEach(item -> { + item.setAgencyId(dto.getAgencyId()); + item.setAgencyPids(dto.getAgencyPids()); + }); + } + } else { + for (IcPartyOrgTreeDTO org : dto.getChildren()) { + getChildren(org, map); + } + } + } + @Override public Result> branchlist(TokenDto tokenDto) { CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); @@ -244,6 +281,28 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl>().ok(build(list)); } + @Override + public List getOrgTreeHaveGroup(PartyOrgTreeListDTO formDTO) { + if (StringUtils.isBlank(formDTO.getAgencyId())) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + List list = baseDao.getSearchTreelist(formDTO); + + Result>> groupResult = resiGroupOpenFeignClient.getBranchGroupList(); + if (!groupResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询支部小组错误", "查询支部小组错误"); + } + for (IcPartyOrgTreeDTO org : list) { + getChildren(org, groupResult.getData()); + } + + return list; + } + @Override public Result> getParentOrgList(GetParentOrgFormDTO formDTO) { Result agencyDTOResult = govOrgOpenFeignClient.getAgencyById(formDTO.getAgencyId()); @@ -270,6 +329,29 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl>().ok(list); } + /** + * 获取客户下支部列表 + * + * @param tokenDto + * @Param tokenDto + * @Return {@link Map} + * @Author zhaoqifeng + * @Date 2022/8/15 15:52 + */ + @Override + public Map getPartyOrgList(TokenDto tokenDto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyOrgEntity::getCustomerId, tokenDto.getCustomerId()); + wrapper.eq(IcPartyOrgEntity::getPartyOrgType, NumConstant.FIVE_STR); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + List result = ConvertUtils.sourceToTarget(list, IcPartyOrgDTO.class); + + return result.stream().collect(Collectors.toMap(IcPartyOrgDTO::getId, Function.identity())); + } + /** * 构建树节点 */ @@ -295,4 +377,130 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl pids=new ArrayList<>(); + pids.add(icPartyOrgId); + + List names=new ArrayList<>(); + names.add(orgEntity.getPartyOrgName()); + + Map map=getPartyOrgIdPath(pids,names,orgEntity.getOrgPid()); + String partyOrgIdPath = map.containsKey("idPath") ? map.get("idPath") : StrConstant.EPMETY_STR; + String partyOrgNamePath = map.containsKey("namePath") ? map.get("namePath") : StrConstant.EPMETY_STR; + orgInfo.setPartyOrgIdPath(partyOrgIdPath); + orgInfo.setPartyOrgNamePath(partyOrgNamePath); + return orgInfo; + } + + private Map getPartyOrgIdPath(List pids,List names,String pid) { + Map map=new HashMap<>(); + IcPartyOrgEntity orgEntity=baseDao.selectById(pid); + if(null==orgEntity){ + return map; + } + pids.add(pid); + names.add(orgEntity.getPartyOrgName()); + if(StringUtils.isNotBlank(orgEntity.getOrgPid())&&!NumConstant.ZERO_STR.equals(orgEntity.getOrgPid())){ + return getPartyOrgIdPath(pids,names,orgEntity.getOrgPid()); + } + //倒序排列 + Collections.reverse(pids); + Collections.reverse(names); + + map.put("idPath", StringUtils.join(pids.toArray(),StrConstant.COLON)); + map.put("namePath", StringUtils.join(names.toArray(),StrConstant.HYPHEN)); + return map; + } + + /** + * 调整历史数据 ORG_PIDS + */ + @Override + public void adjustOrgPath(List customerIds) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.in(org.apache.commons.collections4.CollectionUtils.isNotEmpty(customerIds),IcPartyOrgEntity::getCustomerId,customerIds); + List list=baseDao.selectList(queryWrapper); + int num=1; + for(IcPartyOrgEntity entity:list){ + List pids=new ArrayList<>(); + List names=new ArrayList<>(); + Map map=getPartyOrgIdPath(pids,names,entity.getOrgPid()); + String partyOrgIdPath = map.containsKey("idPath") ? map.get("idPath") : StrConstant.EPMETY_STR; + String partyOrgNamePath = map.containsKey("namePath") ? map.get("namePath") : StrConstant.EPMETY_STR; + log.info(num+":::"+entity.getId()+entity.getPartyOrgName()+";path="+partyOrgIdPath+";"+partyOrgNamePath); + entity.setOrgPids(partyOrgIdPath); + baseDao.updateById(entity); + num++; + } + } + + @Override + public List partOrgList(String gridId) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(gridId); + if (null == gridInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存信息失败,网格Id->"+gridId, "获取网格缓存信息失败,网格Id->"+gridId); + } + return baseDao.partOrgList(gridInfo.getPid()); + } + + /** + * Desc: 党组织修改负责人 + * @param formDTO + * @author zxc + * @date 2022/9/7 15:04 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void editPrincipal(EditPrincipalFormDTO formDTO) { + baseDao.editPrincipal(formDTO); + } + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcScheduleServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcScheduleServiceImpl.java new file mode 100644 index 0000000000..87fe5d0dfa --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcScheduleServiceImpl.java @@ -0,0 +1,142 @@ +package com.epmet.modules.partyOrg.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +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.modules.partyOrg.dao.IcScheduleDao; +import com.epmet.modules.partyOrg.entity.IcScheduleEntity; +import com.epmet.modules.partyOrg.service.IcScheduleService; +import com.epmet.resi.partymember.dto.IcScheduleDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.AddOrEditScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.IcScheduleFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcScheduleListDTO; +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.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-08-18 + */ +@Service +public class IcScheduleServiceImpl extends BaseServiceImpl implements IcScheduleService { + + + @Override + public PageData list(IcScheduleFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + //获取工作人员所属组织信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getStaffId())); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + + List list = baseDao.selectScheduleList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + 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 IcScheduleDTO get(String id) { + IcScheduleEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcScheduleDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcScheduleDTO dto) { + IcScheduleEntity entity = ConvertUtils.sourceToTarget(dto, IcScheduleEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcScheduleDTO dto) { + IcScheduleEntity entity = ConvertUtils.sourceToTarget(dto, IcScheduleEntity.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/8/18 16:31 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void addOrEditSchedule(AddOrEditScheduleFormDTO formDTO) { + if (StringUtils.isNotBlank(formDTO.getScheduleId())){ + baseDao.editSchedule(formDTO); + return; + } + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo){ + throw new EpmetException("查询工作人员信息失败:"+formDTO.getStaffId()); + } + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId()); + if (null == agencyInfo){ + throw new EpmetException("查询组织信息失败:"+staffInfo.getAgencyId()); + } + IcScheduleEntity e = ConvertUtils.sourceToTarget(formDTO, IcScheduleEntity.class); + e.setOrgId(staffInfo.getAgencyId()); + e.setPid(agencyInfo.getPid()); + e.setOrgIdPath("".equals(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids().concat(":").concat(agencyInfo.getId())); + baseDao.insert(e); + + // PartyMeetingMessageMQMsg msg = new PartyMeetingMessageMQMsg(); + // msg.setCustomerId(formDTO.getCustomerId()); + // msg.setIcPartyActId(e.getId()); + // msg.setType("notify"); + // SendMqMsgUtil.build() + // .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + // .sendRocketMqMsg(SystemMessageType.PARTY_MEETING_MESSAGE, msg); + } + + /** + * Desc: 删除日程 + * @param scheduleIds + * @author zxc + * @date 2022/8/18 17:00 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void delSchedule(List scheduleIds) { + if (CollectionUtils.isNotEmpty(scheduleIds)){ + baseDao.deleteBatchIds(scheduleIds); + } + } + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/ResiPartymemberAttachmentServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/ResiPartymemberAttachmentServiceImpl.java new file mode 100644 index 0000000000..df42c273c0 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/ResiPartymemberAttachmentServiceImpl.java @@ -0,0 +1,29 @@ +package com.epmet.modules.partyOrg.service.impl; + +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.modules.partyOrg.dao.ResiPartymemberAttachmentDao; +import com.epmet.modules.partyOrg.entity.ResiPartymemberAttachmentEntity; +import com.epmet.modules.partyOrg.service.ResiPartymemberAttachmentService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 本库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-19 + */ +@Service +public class ResiPartymemberAttachmentServiceImpl extends BaseServiceImpl implements ResiPartymemberAttachmentService { + + + @Override + public int deleteByBusinessId(String customerId, List businessIds) { + if(CollectionUtils.isEmpty(businessIds)){ + return 0; + } + return baseDao.deleteByBusinessId(customerId,businessIds); + } +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java index 2059c84f4b..fbddc60fb1 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java @@ -30,6 +30,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.form.IcPartyMemberFormDTO; import com.epmet.dto.form.IcPartyMemberListFormDTO; +import com.epmet.dto.form.ReadIcMessageFormDTO; import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.dto.result.PartyMemberAgeResultDTO; import com.epmet.dto.result.PartyMemberEducationResultDTO; @@ -39,6 +40,7 @@ import com.epmet.modules.partymember.excel.IcPartyMemberExcel; import com.epmet.modules.partymember.service.IcPartyMemberService; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberFromDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; import com.epmet.utils.ImportTaskUtils; import lombok.extern.slf4j.Slf4j; @@ -341,4 +343,15 @@ public class IcPartyMemberController implements ResultDataResolver { } } + + /** + * @Author sun + * @Description 消息】未读消息数[居民/工作端共用] + **/ + @PostMapping("partyinfo") + public Result partyInfo(@LoginUser TokenDto tokenDto) { + return new Result().ok(icPartyMemberService.partyInfo(tokenDto)); + } + + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberInfoController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberInfoController.java index 98b56b8475..d5c257c114 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberInfoController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberInfoController.java @@ -168,4 +168,15 @@ public class PartymemberInfoController { public Result> getPartyMemberInfoByCustomerId(@RequestParam("customerId")String customerId){ return new Result>().ok(partymemberInfoService.getPartyMemberInfoByCustomerId(customerId)); } + /** + * 更新partymember_info.ID_CARD + * @param userId + * @param idNum + * @return + */ + @PostMapping("updatePartyMemberIdCard") + public Result updatePartyMemberIdCard(@RequestParam("userId") String userId, @RequestParam("idNum")String idNum){ + partymemberInfoService.updatePartyMemberIdCard(userId,idNum); + return new Result(); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java index 00ea198d81..0f18a60ac5 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java @@ -6,6 +6,7 @@ import com.epmet.dto.result.PartyMemberAgeResultDTO; import com.epmet.dto.result.PartyMemberEducationResultDTO; import com.epmet.modules.partymember.entity.IcPartyMemberEntity; import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberFromDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -74,4 +75,6 @@ public interface IcPartyMemberDao extends BaseDao { * @return java.util.List */ List getPartyMemberAgeStatistics(@Param("agencyId") String agencyId,@Param("orgId") String orgId); + + IcPartyInfoResultDTO selectByUserId(@Param("userId") String userId); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java index 20373c3ca5..c88113ae6a 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java @@ -11,6 +11,7 @@ import com.epmet.dto.result.PartyMemberEducationResultDTO; import com.epmet.modules.partymember.entity.IcPartyMemberEntity; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberFromDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; import java.nio.file.Path; @@ -147,4 +148,6 @@ public interface IcPartyMemberService extends BaseService { * @param filePath */ void execAsyncExcelImport(Path filePath, String importTaskId); + + IcPartyInfoResultDTO partyInfo(TokenDto tokenDto); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java index eed9482da3..8e8d5f295d 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java @@ -178,4 +178,11 @@ public interface PartymemberInfoService extends BaseService getPartyMemberInfoByCustomerId(String customerId); + + /** + * 更新partymember_info.ID_CARD + * @param userId + * @param idNum + */ + void updatePartyMemberIdCard(String userId, String idNum); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java index e6e8fd9c44..9685adfdd6 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java @@ -13,12 +13,14 @@ import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.enums.IcFormCodeEnum; import com.epmet.commons.tools.enums.PartyPostEnum; 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.CustomerStaffRedis; @@ -31,10 +33,7 @@ import com.epmet.dto.form.IcPartyMemberListFormDTO; import com.epmet.dto.result.PartyMemberAgeResultDTO; import com.epmet.dto.result.PartyMemberEducationResultDTO; import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.feign.EpmetAdminOpenFeignClient; -import com.epmet.feign.EpmetUserOpenFeignClient; -import com.epmet.feign.OperCustomizeOpenFeignClient; -import com.epmet.feign.OssFeignClient; +import com.epmet.feign.*; import com.epmet.modules.partyOrg.dao.IcPartyOrgDao; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; import com.epmet.modules.partyOrg.service.IcPartyOrgService; @@ -49,6 +48,7 @@ import com.epmet.modules.partymember.excel.handler.IcPartyMemberImportListener; import com.epmet.modules.partymember.service.IcPartyMemberService; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberFromDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; import com.epmet.utils.ImportTaskUtils; import com.github.pagehelper.PageHelper; @@ -60,6 +60,7 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.lang3.StringUtils; import org.apache.http.entity.ContentType; import org.apache.poi.util.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -101,6 +102,8 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl page(TokenDto tokenDto, IcPartyMemberFromDTO formDTO) { @@ -706,4 +709,27 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl result = epmetMessageOpenFeignClient.unReadCount(tokenDto.getUserId()); + if (!result.success()) { + throw new RenException("获取用户未读消息数据失败"); + } + resultDTO.setCount(result.getData()); + return resultDTO; + } + + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index 961197076d..a980778c64 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.modules.partymember.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; import com.epmet.commons.tools.constant.NumConstant; @@ -21,6 +22,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.GovOrgFeignClient; import com.epmet.modules.feign.ResiGroupFeignClient; +import com.epmet.modules.partymember.dao.IcPartyMemberDao; import com.epmet.modules.partymember.entity.*; import com.epmet.modules.partymember.redis.PartymemberInfoRedis; import com.epmet.modules.partymember.service.*; @@ -86,6 +88,8 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService private PartymemberAuthRecordService partymemberAuthRecordService; @Autowired private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private IcPartyMemberDao icPartyMemberDao; @Override @Transactional(rollbackFor = Exception.class) @@ -191,8 +195,8 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService } //获取党员基本信息(匹配) - PartymemberConfirmAutoDTO confirmAutoDTO = - partymemberBaseInfoService.getPartyMemberBaseInfo(partyMemberInfoDTO); + //PartymemberConfirmAutoDTO confirmAutoDTO = partymemberBaseInfoService.getPartyMemberBaseInfo(partyMemberInfoDTO); + PartymemberConfirmAutoDTO confirmAutoDTO = partyAuth(partyMemberInfoDTO); //判断是否已注册居民,如果没有则注册居民 isResiRegister(partyMemberInfoDTO); @@ -294,6 +298,30 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService return result; } + /** + * 居民点党员提交认证校验逻辑调整改查数字平台党员信息库, + * 切只按身份证号查询 + */ + public PartymemberConfirmAutoDTO partyAuth(PartymemberInfoDTO dto) { + PartymemberConfirmAutoDTO resultDTO = new PartymemberConfirmAutoDTO(); + if (StringUtils.isBlank(dto.getIdCard())) { + resultDTO.setComparisonResults(false); + return resultDTO; + } + LambdaQueryWrapper tWrapper = new LambdaQueryWrapper<>(); + tWrapper.eq(IcPartyMemberEntity::getCustomerId, dto.getCustomerId()); + tWrapper.eq(IcPartyMemberEntity::getIdCard, dto.getIdCard()); + tWrapper.last("limit 1"); + IcPartyMemberEntity entity = icPartyMemberDao.selectOne(tWrapper); + if (null == entity) { + resultDTO.setComparisonResults(false); + return resultDTO; + } + resultDTO.setComparisonResults(true); + resultDTO.setPatryMemberBaseInfoId(entity.getId()); + return resultDTO; + } + @Override @Transactional(rollbackFor = Exception.class) public Result partyMemberInfoExtra(PartymemberInfoDTO infoDTO) { diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java index dc592a254d..354236fe49 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java @@ -19,6 +19,7 @@ package com.epmet.modules.partymember.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; @@ -35,9 +36,7 @@ import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.GovOrgFeignClient; import com.epmet.modules.partymember.dao.PartymemberInfoDao; import com.epmet.modules.partymember.entity.PartymemberInfoEntity; -import com.epmet.modules.partymember.redis.PartymemberInfoRedis; import com.epmet.modules.partymember.service.PartymemberInfoService; -import com.epmet.redis.ResiPartyMemberRedis; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import com.epmet.resi.partymember.dto.partymember.form.CertifiedDetailFormDTO; import com.epmet.resi.partymember.dto.partymember.form.CertifiedFormDTO; @@ -60,8 +59,6 @@ import java.util.*; @Service public class PartymemberInfoServiceImpl extends BaseServiceImpl implements PartymemberInfoService { - @Autowired - private PartymemberInfoRedis partymemberInfoRedis; @Autowired private PartymemberInfoDao partyMemberInfoDao; @@ -70,8 +67,6 @@ public class PartymemberInfoServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -258,4 +253,19 @@ public class PartymemberInfoServiceImpl extends BaseServiceImpl getPartyMemberInfoByCustomerId(String customerId) { return baseDao.selectListPartyMemberInfoByCustomerId(customerId); } + + /** + * 更新partymember_info.ID_CARD + * + * @param userId + * @param idNum + */ + @Override + public void updatePartyMemberIdCard(String userId, String idNum) { + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(PartymemberInfoEntity::getUserId,userId); + updateWrapper.set(PartymemberInfoEntity::getIdCard,idNum); + updateWrapper.set(PartymemberInfoEntity::getUpdatedTime,new Date()); + baseDao.update(null,updateWrapper); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java index 67ceeb7651..6761e5685f 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java @@ -4,6 +4,8 @@ import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.register.MQAbstractRegister; import com.epmet.commons.rocketmq.register.MQConsumerProperties; +import com.epmet.constant.SystemMessageType; +import com.epmet.mq.listener.PartyMeetingMessageListener; import com.epmet.mq.listener.ResiPartyMemberSyncListener; import org.apache.rocketmq.common.protocol.heartbeat.MessageModel; import org.springframework.stereotype.Component; @@ -15,5 +17,8 @@ public class RocketMQConsumerRegister extends MQAbstractRegister { public void registerAllListeners(String env, MQConsumerProperties consumerProperties) { register(consumerProperties, ConsomerGroupConstants.CREATE_RESI_PARTYMEMBER_SYNC_GROUP, MessageModel.CLUSTERING, TopicConstants.PARTYMEMBER_RESI, "*", new ResiPartyMemberSyncListener()); + + register(consumerProperties, ConsomerGroupConstants.PARTY_MEETING_MESSAGE, MessageModel.CLUSTERING, + TopicConstants.IC_MESSAGE, SystemMessageType.PARTY_MEETING_MESSAGE, new PartyMeetingMessageListener()); } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java new file mode 100644 index 0000000000..d968dac4a1 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java @@ -0,0 +1,100 @@ +package com.epmet.mq.listener; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.rocketmq.constants.MQUserPropertys; +import com.epmet.commons.rocketmq.messages.PartyMeetingMessageMQMsg; +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.modules.partyOrg.service.IcPartyActService; +import org.apache.commons.lang.StringUtils; +import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; +import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; +import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; +import org.apache.rocketmq.common.message.MessageExt; +import org.redisson.api.RLock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * @author sun + * @Description 党建小助手发布活动、活动提前提醒、活动发布提醒通知 + */ +public class PartyMeetingMessageListener implements MessageListenerConcurrently { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + private RedisUtils redisUtils; + + @Override + public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { + + if (redisUtils == null) { + redisUtils = SpringContextUtils.getBean(RedisUtils.class); + } + + try { + msgs.forEach(msg -> consumeMessage(msg)); + } catch (Exception e) { + logger.error(ExceptionUtils.getErrorStackTrace(e)); + return ConsumeConcurrentlyStatus.RECONSUME_LATER; + } + return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; + } + + /** + * 逐条消费 + * @param messageExt + */ + private void consumeMessage(MessageExt messageExt) { + // msg即为消息体 + String msg = new String(messageExt.getBody()); + logger.info("msg is {}",msg); + String tags = messageExt.getTags(); + String pendingMsgLabel = messageExt.getUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL); + + logger.info("【党建小助手消息】-活动消息-收到消息内容:{},操作:{}", msg, tags); + PartyMeetingMessageMQMsg obj = JSON.parseObject(msg, PartyMeetingMessageMQMsg.class); + logger.info("obj is {}",JSON.toJSONString(obj)); + + DistributedLock distributedLock = null; + RLock lock = null; + try { + distributedLock = SpringContextUtils.getBean(DistributedLock.class); + lock = distributedLock.getLock(String.format("lock:ic_warn_stats:%s", obj.getCustomerId()), + 30L, 30L, TimeUnit.SECONDS); + //待执行方法 + SpringContextUtils.getBean(IcPartyActService.class).partyMeetingMessage(obj); + + } catch (EpmetException e) { + // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 + logger.error("【党建小助手消息】-活动消息MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e))); + } catch (Exception e) { + // 不是我们自己抛出的异常,可以让MQ重试 + logger.error("【党建小助手消息】-活动消息MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e))); + throw e; + } finally { + assert distributedLock != null; + distributedLock.unLock(lock); + } + + if (StringUtils.isNotBlank(pendingMsgLabel)) { + try { + removePendingMqMsgCache(pendingMsgLabel); + } catch (Exception e) { + logger.error("【党建小助手消息】-删除mq阻塞消息缓存失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + } + + private void removePendingMqMsgCache(String pendingMsgLabel) { + String key = RedisKeys.blockedMqMsgKey(pendingMsgLabel); + Boolean rst = redisUtils.delete(key); + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.10__add_principal.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.10__add_principal.sql new file mode 100644 index 0000000000..f586c2fd44 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.10__add_principal.sql @@ -0,0 +1,2 @@ +ALTER TABLE ic_party_org ADD COLUMN PRINCIPAL VARCHAR(30) not null DEFAULT '' COMMENT '负责人' AFTER ADDRESS; +ALTER TABLE ic_party_org ADD COLUMN PRINCIPAL_MOBILE VARCHAR(30) not null DEFAULT '' COMMENT '联系方式' AFTER PRINCIPAL; \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.11__add_principal_staff_id.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.11__add_principal_staff_id.sql new file mode 100644 index 0000000000..6530fb1923 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.11__add_principal_staff_id.sql @@ -0,0 +1,3 @@ +ALTER TABLE ic_party_org ADD COLUMN PRINCIPAL_STAFF_ID VARCHAR(32) DEFAULT '' COMMENT '负责人staffId' AFTER PRINCIPAL_MOBILE; +alter table ic_party_org modify PRINCIPAL_MOBILE VARCHAR(30) DEFAULT '' COMMENT '联系方式'; +alter table ic_party_org modify PRINCIPAL VARCHAR(30) DEFAULT '' COMMENT '负责人'; \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.6__party_helper.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.6__party_helper.sql new file mode 100644 index 0000000000..984eda6608 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.6__party_helper.sql @@ -0,0 +1,122 @@ +CREATE TABLE `ic_schedule` ( + `ID` varchar(64) NOT NULL COMMENT 'ID', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `ORG_ID` varchar(64) NOT NULL COMMENT '所属行政组织ID:当前工作人员所属组织id', + `PID` varchar(64) NOT NULL COMMENT '组织ID的上级;如果org_id是根组织,那此列=0', + `ORG_ID_PATH` varchar(255) NOT NULL COMMENT 'ORG_ID全路径,包含自身', + `STAFF_ID` varchar(64) NOT NULL COMMENT '当前登录用户userId', + `TITLE` varchar(35) NOT NULL COMMENT '日程标题(35字)', + `REMIND_TIME` datetime NOT NULL COMMENT '提醒时间;其实就是日程所属日期', + `IS_PUBLIC` varchar(10) NOT NULL COMMENT '是否公开,0:仅自己可见;1:组织内其他人可见', + `REMARK` varchar(500) DEFAULT NULL COMMENT '备注(500字)', + `DEL_FLAG` int(11) NOT NULL COMMENT '0:未删除;1已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='日程表'; + + +CREATE TABLE `ic_party_act` ( + `ID` varchar(64) NOT NULL COMMENT 'ID', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `ORG_ID` varchar(64) NOT NULL COMMENT '组织ID:当前工作人员所属组织id', + `PID` varchar(64) NOT NULL COMMENT '组织ID的上级;如果org_id是根组织,那此列=0', + `ORG_ID_PATH` varchar(255) NOT NULL COMMENT 'ORG_ID全路径,包含自身', + `PUBLISH_PARTY_ORG_ID` varchar(64) NOT NULL COMMENT '发布活动党组织', + `PUBLISH_PARTY_ORG_NAME` varchar(20) NOT NULL COMMENT '发布活动党组织名称', + `PUBLISH_ORG_PID` varchar(64) DEFAULT NULL COMMENT '发布活动党组织ID的上级节点', + `PUBLISH_ORG_TYPE` varchar(10) NOT NULL COMMENT '发布活动党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组', + `PUBLISH_ORG_PATH` varchar(255) NOT NULL COMMENT '发布活动党组织PUBLISH_PARTY_ORG_ID的全路径,包含自身。方便前端回显', + `ACT_TYPE` varchar(10) NOT NULL COMMENT '活动类型,来源于ic_party_act_type_dict', + `HOLD_YEAR_ID` varchar(10) NOT NULL COMMENT '活动举办时间:yyyy', + `HOLD_MONTH_ID` varchar(10) NOT NULL COMMENT '活动举办时间:yyyyMM', + `HOLD_TIME` datetime NOT NULL COMMENT '举办活动时间', + `TOPIC` varchar(255) NOT NULL COMMENT '活动主题', + `ADDRESS` varchar(255) NOT NULL COMMENT '活动地点', + `LATITUDE` varchar(32) DEFAULT NULL COMMENT '活动地点纬度', + `LONGITUDE` varchar(32) DEFAULT NULL COMMENT '活动地点经度', + `AUTO_PUBLIC_TYPE` int(11) NOT NULL COMMENT '活动开始前几天', + `AUTO_PUBLIC_TIME` datetime DEFAULT NULL COMMENT '自动发布时间,保存时算好时间存在这里', + `JOIN_USER_TYPE` varchar(10) DEFAULT NULL COMMENT '参加人员类型,0:全体党员;1:支部委员', + `IS_AUTO_INFORM` varchar(1) DEFAULT NULL COMMENT '是否自动通知参加人员,0否;1是', + `INTRODUCE` varchar(1024) DEFAULT NULL COMMENT '活动介绍', + `IS_PUBLISH` varchar(10) NOT NULL COMMENT '是否发布,0未发布;1已发布;', + `PUBLISH_STAFF_ID` varchar(64) NOT NULL COMMENT '活动发布人', + `PUBLISH_STAFF_NAME` varchar(64) NOT NULL COMMENT '活动发布人姓名', + `DEL_FLAG` int(11) NOT NULL COMMENT '0未删除;1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='党建组织活动'; + + +CREATE TABLE `ic_party_act_org` ( + `ID` varchar(64) NOT NULL COMMENT 'ID', + `IC_PARTY_ACT_ID` varchar(64) NOT NULL COMMENT '活动id', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `JOIN_ORG_ID` varchar(64) NOT NULL COMMENT '参加活动党组织ID,groupId', + `JOIN_ORG_NAME` varchar(128) NOT NULL COMMENT '参加党组织名称', + `ORG_TYPE` varchar(10) NOT NULL COMMENT '党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部;6党小组', + `PID` varchar(64) NOT NULL COMMENT '参加活动党组织ID的上级节点', + `JOIN_ORG_PATH` varchar(255) NOT NULL COMMENT 'PARTY_ORG_ID的全路径,包含自身。方便前端回显', + `DEL_FLAG` int(11) NOT NULL COMMENT '0:未删除;1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='参加活动党组织表'; + +CREATE TABLE `ic_party_act_sign_in_record` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `IC_PARTY_ACT_ID` varchar(64) NOT NULL COMMENT '活动id', + `ID_CARD` varchar(32) NOT NULL COMMENT '身份证号', + `EPMET_USER_ID` varchar(64) NOT NULL COMMENT '签到用户id', + `USER_REAL_NAME` varchar(64) NOT NULL COMMENT '签到用户姓名', + `ADDRESS` varchar(255) NOT NULL COMMENT '签到地点', + `LATITUDE` varchar(32) NOT NULL COMMENT '签到地点纬度', + `LONGITUDE` varchar(32) NOT NULL COMMENT '签到地点经度', + `DEL_FLAG` int(11) NOT NULL COMMENT '0:未删除;1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='党组织活动签到记录表'; + + +CREATE TABLE `ic_party_act_type_dict` ( + `ID` varchar(64) NOT NULL, + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `TYPE_KEY` varchar(32) NOT NULL COMMENT '活动类型key', + `TYPE_NAME` varchar(32) NOT NULL COMMENT '活动名称', + `YEAR_COUNT` int(11) NOT NULL COMMENT '每年几次', + `FREQUENCY_UNIT` varchar(32) NOT NULL COMMENT '频次单位', + `FREQUENCY_COUNT` int(11) NOT NULL COMMENT '频次数量', + `FREQUENCY_DESC` varchar(63) NOT NULL COMMENT '频率描述', + `SORT` int(11) NOT NULL COMMENT '排序', + `DEL_FLAG` int(11) NOT NULL COMMENT '0未删除;1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='党组织活动类型字典表'; + + +INSERT INTO `epmet_resi_partymember`.`ic_party_act_type_dict` (`ID`, `CUSTOMER_ID`, `TYPE_KEY`, `TYPE_NAME`, `YEAR_COUNT`, `FREQUENCY_UNIT`, `FREQUENCY_COUNT`, `FREQUENCY_DESC`, `SORT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1', 'default', 'zbdydh', '支部党员大会', 4, 'quarter', 1, '每季度1次', 1, 0, 0, 'APP_USER', '2022-08-18 17:43:46', 'APP_USER', '2022-08-18 17:43:54'); +INSERT INTO `epmet_resi_partymember`.`ic_party_act_type_dict` (`ID`, `CUSTOMER_ID`, `TYPE_KEY`, `TYPE_NAME`, `YEAR_COUNT`, `FREQUENCY_UNIT`, `FREQUENCY_COUNT`, `FREQUENCY_DESC`, `SORT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('2', 'default', 'zbwyh', '支部委员会', 12, 'month', 1, '每月1次', 2, 0, 0, 'APP_USER', '2022-08-18 17:43:46', 'APP_USER', '2022-08-18 17:43:54'); +INSERT INTO `epmet_resi_partymember`.`ic_party_act_type_dict` (`ID`, `CUSTOMER_ID`, `TYPE_KEY`, `TYPE_NAME`, `YEAR_COUNT`, `FREQUENCY_UNIT`, `FREQUENCY_COUNT`, `FREQUENCY_DESC`, `SORT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3', 'default', 'dxzh', '党小组会', 12, 'month', 1, '每月一次', 3, 0, 0, 'APP_USER', '2022-08-18 17:43:46', 'APP_USER', '2022-08-18 17:43:54'); +INSERT INTO `epmet_resi_partymember`.`ic_party_act_type_dict` (`ID`, `CUSTOMER_ID`, `TYPE_KEY`, `TYPE_NAME`, `YEAR_COUNT`, `FREQUENCY_UNIT`, `FREQUENCY_COUNT`, `FREQUENCY_DESC`, `SORT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('4', 'default', 'dangke', '党课', 4, 'quarter', 1, '每季度1次', 4, 0, 0, 'APP_USER', '2022-08-18 17:43:46', 'APP_USER', '2022-08-18 17:43:54'); +INSERT INTO `epmet_resi_partymember`.`ic_party_act_type_dict` (`ID`, `CUSTOMER_ID`, `TYPE_KEY`, `TYPE_NAME`, `YEAR_COUNT`, `FREQUENCY_UNIT`, `FREQUENCY_COUNT`, `FREQUENCY_DESC`, `SORT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('5', 'default', 'ztdr', '主题党日', 12, 'month', 1, '每月1次', 5, 0, 0, 'APP_USER', '2022-08-18 17:43:46', 'APP_USER', '2022-08-18 17:43:54'); +INSERT INTO `epmet_resi_partymember`.`ic_party_act_type_dict` (`ID`, `CUSTOMER_ID`, `TYPE_KEY`, `TYPE_NAME`, `YEAR_COUNT`, `FREQUENCY_UNIT`, `FREQUENCY_COUNT`, `FREQUENCY_DESC`, `SORT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('6', 'default', 'wmfwhd', '为民服务活动', 12, 'month', 1, '每月1次', 6, 0, 0, 'APP_USER', '2022-08-18 17:43:46', 'APP_USER', '2022-08-18 17:43:54'); diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.7__party_att.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.7__party_att.sql new file mode 100644 index 0000000000..d31f3050db --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.7__party_att.sql @@ -0,0 +1,21 @@ +CREATE TABLE `resi_partymember_attachment` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `BUSINESS_ID` varchar(64) NOT NULL COMMENT '业务id', + `ATTACH_TO` varchar(32) DEFAULT NULL COMMENT '党组织活动:ic_party_act', + `NAME` varchar(64) DEFAULT NULL COMMENT '附件名', + `FORMAT` varchar(64) DEFAULT NULL COMMENT '文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS)', + `TYPE` varchar(64) NOT NULL COMMENT '附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))', + `URL` varchar(255) NOT NULL COMMENT '附件地址', + `SORT` int(1) NOT NULL COMMENT '排序字段', + `STATUS` varchar(32) NOT NULL DEFAULT 'auto_passed' COMMENT '附件状态(审核中:auditing; \r\nauto_passed: 自动通过;\r\nreview:结果不确定,需要人工审核;\r\nblock: 结果违规;\r\nrejected:人工审核驳回;\r\napproved:人工审核通过)\r\n现在图片是同步审核的,所以图片只有auto_passed一种状态', + `REASON` varchar(255) DEFAULT NULL COMMENT '失败原因', + `DURATION` int(11) DEFAULT NULL COMMENT '语音或视频时长,秒', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='本库附件表'; \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.8__party_act_path.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.8__party_act_path.sql new file mode 100644 index 0000000000..072be997c1 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.8__party_act_path.sql @@ -0,0 +1,6 @@ +ALTER TABLE ic_party_act ADD COLUMN PUBLISH_ORG_PATH_SHOW VARCHAR ( 255 ) COMMENT '发布活动党组织路径,前端用此列' AFTER PUBLISH_ORG_PATH; +ALTER TABLE ic_party_act_org ADD COLUMN JOIN_ORG_PATH_SHOW VARCHAR ( 255 ) COMMENT 'PARTY_ORG_ID的全路径,前端用' AFTER JOIN_ORG_PATH; + +alter table ic_party_act MODIFY COLUMN PUBLISH_ORG_PATH VARCHAR(255) not null COMMENT'发布活动党组织PUBLISH_PARTY_ORG_ID的全路径,包含自身'; + +alter table ic_party_act_org MODIFY COLUMN JOIN_ORG_PATH VARCHAR(255) not null COMMENT 'PARTY_ORG_ID的全路径,包含自身'; \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.9__schedule_time.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.9__schedule_time.sql new file mode 100644 index 0000000000..9a9cb3f6b3 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.9__schedule_time.sql @@ -0,0 +1 @@ +ALTER TABLE ic_schedule ADD COLUMN HAPPENED_TIME datetime not null COMMENT '发生时间' AFTER REMIND_TIME; diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml index f4fc5a99ea..b8b3161188 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml @@ -160,11 +160,12 @@ - + + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActDao.xml new file mode 100644 index 0000000000..a1517327d7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActDao.xml @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update ic_party_act + set del_flag='1', + UPDATED_BY=#{userId}, + UPDATED_TIME=now() + where customer_id=#{customerId} + and id=#{icPartyActId} + and PUBLISH_STAFF_ID=#{userId} + + + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActOrgDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActOrgDao.xml new file mode 100644 index 0000000000..a71ce93d84 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActOrgDao.xml @@ -0,0 +1,39 @@ + + + + + + delete from ic_party_act_org + where customer_id = #{customerId} + + IC_PARTY_ACT_ID = #{icPartyActId} + + + + + + + update ic_party_act_org + set del_flag='1', + UPDATED_BY=#{userId}, + UPDATED_TIME=now() + where IC_PARTY_ACT_ID=#{icPartyActId} + and CREATED_BY=#{userId} + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActSignInRecordDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActSignInRecordDao.xml new file mode 100644 index 0000000000..aac80bfbe7 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActSignInRecordDao.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActTypeDictDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActTypeDictDao.xml new file mode 100644 index 0000000000..3c57ca3243 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyActTypeDictDao.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml index 1af1738da2..410a074121 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml @@ -24,6 +24,17 @@ + + + + update ic_party_org + set PRINCIPAL_MOBILE = #{principalMobile}, + PRINCIPAL = #{principal}, + PRINCIPAL_STAFF_ID = #{principalStaffId}, + UPDATED_TIME = NOW() + where id = #{partyOrgId} + + + + + + + + + + + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcScheduleDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcScheduleDao.xml new file mode 100644 index 0000000000..5367439c04 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcScheduleDao.xml @@ -0,0 +1,124 @@ + + + + + + + UPDATE ic_schedule + SET UPDATED_TIME = NOW(), + title = #{title}, + remind_time = #{remindTime}, + + REMARK = #{remark}, + + is_public = #{isPublic} + WHERE ID = #{scheduleId} + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/ResiPartymemberAttachmentDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/ResiPartymemberAttachmentDao.xml new file mode 100644 index 0000000000..adbfeeaa0d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/ResiPartymemberAttachmentDao.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete from resi_partymember_attachment + where customer_id=#{customerId} + + BUSINESS_ID = #{businessId} + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml index 21ea480cca..3cbb077a50 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml @@ -267,5 +267,17 @@ GROUP BY ageGroup + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java index 3a29fb0afc..08f51a1e5e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java @@ -66,6 +66,11 @@ public class IcPointNucleicMonitoringDTO implements Serializable { */ private String address; + /** + * 未禁用enable,已禁用disabled + */ + private String enableFlag; + /** * 经度 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java index ff71263f95..7d357089f6 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java @@ -22,6 +22,14 @@ public class UserChartFormDTO implements Serializable { * 组织、网格、小区类型 agency grid village */ private String orgType; + /** + * 数据类型【居民总数: all 常住: cz 流动: ld】 + */ + private String type; + + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; //id集合 private List idList; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java index 896d1195fc..12d9cf0db4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java @@ -77,6 +77,11 @@ public class MapInfoResultDTO implements Serializable { */ private String latitude; + /** + * 未禁用enable,已禁用disabled + */ + private String enableFlag; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java index 68ad326637..5e739016b3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java @@ -47,6 +47,8 @@ public class PersonDataResultDTO implements Serializable { * 姓名 */ private String name; + private String mobile; + private String isTenant; /** * 经济状况:包括 月收入:monthlyIncome 和 退休金额:retirementAmount 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 47a67e5fbd..73d770a411 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 @@ -882,4 +882,7 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/icresiuser/nonDynamic/listResi") Result> listResiNonDynamic(@RequestBody IcResiPageNonDynamicFormDTO input); + + @PostMapping("/epmetuser/icresiuser/updateYlfn") + Result updateYlfn(); } 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 7c9cc3b2a4..2de7371623 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 @@ -678,4 +678,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> listResiNonDynamic(IcResiPageNonDynamicFormDTO input) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "listResiNonDynamic", input); } + + @Override + public Result updateYlfn() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "updateYlfn", null); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java index b6f3edb0a7..c5c6ca64c3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java @@ -43,7 +43,17 @@ public class IcPointAppController { return icPointAppService.getMapInfoByPointType(formDTO); } - + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + @PostMapping("enableOrDisabled/{id}") + public Result enableOrDisabled(@PathVariable("id") String id){ + icPointAppService.enableOrDisabled(id); + return new Result(); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index a62980703a..d24e66db07 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -1411,4 +1411,28 @@ public class IcResiUserController implements ResultDataResolver { return new Result>().ok(page); } + /** + * @Author sun + * @Description 【人房概览】居民统计数点击查询列表 + **/ + @PostMapping("icuserstatislist") + public Result> icUserStatisList(@LoginUser TokenDto tokenDto, @RequestBody UserChartFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(icResiUserService.icUserStatisList(formDTO)); + } + + /** + * 更新育龄妇女状态定时任务 + * @Param + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/9/8 17:19 + */ + @PostMapping("updateYlfn") + public Result updateYlfn() { + icResiUserService.updateYlfn(); + return new Result(); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java index eae4085362..908cf46e44 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java @@ -49,4 +49,12 @@ public interface IcPointNucleicMonitoringDao extends BaseDao getMapInfoList(MapInfoFormDTO formDTO); + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + void enableOrDisabled(@Param("id") String id); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 1fedc84df4..dd9e97bbae 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -428,4 +428,6 @@ public interface IcResiUserDao extends BaseDao { * @Date 2022/6/29 17:37 */ List getIcUserCount(IcUserCountFormDTO formDTO); + + List icUserStatisList(UserChartFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java index 4a05b5d850..e9e54456cc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java @@ -1,13 +1,10 @@ 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; - /** * 核酸监测点 * @@ -66,6 +63,11 @@ public class IcPointNucleicMonitoringEntity extends BaseEpmetEntity { */ private String address; + /** + * 未禁用enable,已禁用disabled + */ + private String enableFlag; + /** * 经度 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java index 6d6f7626d9..f626bc4e01 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java @@ -1,18 +1,10 @@ package com.epmet.service; -import com.epmet.commons.mybatis.service.BaseService; -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.dto.IcPointNucleicMonitoringDTO; import com.epmet.dto.form.MapInfoFormDTO; import com.epmet.dto.result.MapInfoResultDTO; -import com.epmet.entity.IcPointNucleicMonitoringEntity; -import org.springframework.web.bind.annotation.RequestBody; -import java.io.InputStream; import java.util.List; -import java.util.Map; /** * 地图信息 @@ -29,5 +21,11 @@ public interface IcPointAppService { */ Result> getMapInfoByPointType(MapInfoFormDTO formDTO); - + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + void enableOrDisabled(String id); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java index 70d92655a5..3d862dd627 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java @@ -105,4 +105,12 @@ public interface IcPointNucleicMonitoringService extends BaseService getMapInfoList(MapInfoFormDTO formDTO); + + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + void enableOrDisabled(String id); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 8975e06443..87dcd4cba3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -507,4 +507,15 @@ public interface IcResiUserService extends BaseService { IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO); PageData listResiNonDynamic(Boolean fuzzy, String gridId, String name, String mobile, Integer pageNo, Integer pageSize); + + PageData icUserStatisList(UserChartFormDTO formDTO); + + /** + * 更新育龄妇女状态定时任务 + * @Param + * @Return + * @Author zhaoqifeng + * @Date 2022/9/8 15:45 + */ + void updateYlfn(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java index 7927aea977..16d73ed457 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java @@ -1,58 +1,17 @@ package com.epmet.service.impl; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -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.dto.result.CustomerStaffInfoCacheResult; -import com.epmet.commons.tools.exception.EpmetException; -import com.epmet.commons.tools.exception.ExceptionUtils; -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.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.constants.ImportTaskConstants; -import com.epmet.dao.IcPointVaccinesInoculationDao; -import com.epmet.dto.IcPointVaccinesInoculationDTO; -import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.form.MapInfoFormDTO; import com.epmet.dto.result.MapInfoResultDTO; -import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.entity.IcPointVaccinesInoculationEntity; -import com.epmet.excel.IcPointVaccinesInoculationImportExcel; -import com.epmet.excel.error.PointVaccinesInoculationErrorModel; -import com.epmet.feign.EpmetCommonServiceOpenFeignClient; -import com.epmet.feign.GovOrgFeignClient; -import com.epmet.feign.OssFeignClient; -import com.epmet.redis.IcPointVaccinesInoculationRedis; import com.epmet.service.IcPointAppService; import com.epmet.service.IcPointNucleicMonitoringService; import com.epmet.service.IcPointVaccinesInoculationService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -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.apache.poi.ss.usermodel.Workbook; 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.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.List; /** * 地图信息 @@ -85,4 +44,15 @@ public class IcPointAppServiceImpl implements IcPointAppService { } return new Result>().ok(mapInfoResultDTO); } + + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + @Override + public void enableOrDisabled(String id) { + icPointNucleicMonitoringService.enableOrDisabled(id); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java index cb2b516b13..df2214249c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java @@ -5,7 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; 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.constant.FieldConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -16,7 +16,6 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constants.ImportTaskConstants; @@ -28,10 +27,8 @@ import com.epmet.dto.form.OrgInfoPointFormDTO; import com.epmet.dto.result.CommunityInfoResultDTO; import com.epmet.dto.result.MapInfoResultDTO; import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.entity.IcEpidemicSpecialAttentionEntity; import com.epmet.entity.IcPointNucleicMonitoringEntity; import com.epmet.excel.IcPointNucleicMonitoringImportExcel; -import com.epmet.excel.error.EpidemicSpecialAttentionErrorModel; import com.epmet.excel.error.PointNucleicMonitoringErrorModel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; @@ -373,5 +370,17 @@ public class IcPointNucleicMonitoringServiceImpl extends BaseServiceImpl { - if (StringUtils.isNotBlank(item.getFaceImg())) { - VisitVisitorFormDTO visitor = new VisitVisitorFormDTO(); - visitor.setIdCard(item.getIdNum()); - visitor.setMobile(item.getMobile()); - visitor.setName(item.getName()); - visitor.setFaceImg(item.getFaceImg()); - dhDeviceUtil.sendAuth(visitor); - } - }); + try { + formDTO.getMemberList().forEach(item -> { + if (StringUtils.isNotBlank(item.getFaceImg())) { + VisitVisitorFormDTO visitor = new VisitVisitorFormDTO(); + visitor.setIdCard(item.getIdNum()); + visitor.setMobile(item.getMobile()); + visitor.setName(item.getName()); + visitor.setFaceImg(item.getFaceImg()); + dhDeviceUtil.sendAuth(visitor); + } + }); + return new Result().ok("今日您可通过人脸设备便捷出入小区,明天及后续进入请再次登记,谢谢!"); + } catch (Exception e) { + return new Result().ok("访客信息登记成功"); + } } return new Result().ok("提交成功"); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java index a73d022548..34c56f8928 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java @@ -165,7 +165,12 @@ public class IcResiCollectVisitorServiceImpl extends BaseServiceImpl list = baseDao.selectList(query).stream().map((e) -> ConvertUtils.sourceToTarget(e, IcResiNonDynamicResultDTO.class)).collect(Collectors.toList()); return new PageData(list, new PageInfo<>(list).getTotal(), pageSize); } + + @Override + public PageData icUserStatisList(UserChartFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + //1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息 + if (StringUtils.isEmpty(formDTO.getOrgId())) { + //2.获取工作人员缓存信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType("agency"); + } + //获取无效组织网格Id列表 + if("agency".equals(formDTO.getOrgType())){ + //查询组织数据时排除掉当前组织及下级无效组织列表 + Result result = govOrgOpenFeignClient.getDelAgencyGridIdList(formDTO.getOrgId()); + if (!result.success()) { + throw new EpmetException(String.format("获取当前组织及下级已删除组织、网格列表失败,组织Id->%s", formDTO.getUserId())); + } + formDTO.setAgencyIdList(result.getData().getAgencyIdList()); + formDTO.setGridIdList(result.getData().getGridIdList()); + } + + //2.按条件查询业务数据 + List list = baseDao.icUserStatisList(formDTO); + if (CollectionUtils.isEmpty(list)) { + return new PageData(new ArrayList<>(), NumConstant.ZERO); + } + + //3.封装数据 + //查询小区,楼号,网格 + Result> gridResult = govOrgOpenFeignClient.getGridListByGridIds(list.stream().map(SearchByNameResultDTO::getGridId).collect(Collectors.toList())); + if (!gridResult.success()) { + throw new RenException(gridResult.getCode(), gridResult.getMsg()); + } + Map gridMap = gridResult.getData().stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, AllGridsByUserIdResultDTO::getGridName)); + Result> neighborHoodResult = govOrgOpenFeignClient.getListByIds(list.stream().map(SearchByNameResultDTO::getNeighborHoodId).collect(Collectors.toList())); + if (!neighborHoodResult.success()) { + throw new RenException(neighborHoodResult.getCode(), neighborHoodResult.getMsg()); + } + Map neighborHoodMap = neighborHoodResult.getData().stream().collect(Collectors.toMap(IcNeighborHoodDTO::getId, IcNeighborHoodDTO::getNeighborHoodName)); + Result> buildResult = govOrgOpenFeignClient.buildingListByIds(list.stream().map(SearchByNameResultDTO::getBuildId).collect(Collectors.toList())); + if (!buildResult.success()) { + throw new RenException(buildResult.getCode(), buildResult.getMsg()); + } + Map buildMap = buildResult.getData().stream().collect(Collectors.toMap(BuildingResultDTO::getBuildingId, BuildingResultDTO::getBuildingName)); + AtomicInteger i = new AtomicInteger(NumConstant.ONE); + list.forEach(item -> { + item.setGridName(gridMap.get(item.getGridId())); + item.setNeighborHoodName(neighborHoodMap.get(item.getNeighborHoodId())); + item.setBuildNum(buildMap.get(item.getBuildId())); + item.setSort(i.getAndIncrement()); + }); + + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + + + /** + * 更新育龄妇女状态定时任务 + * + * @Param + * @Return + * @Author zhaoqifeng + * @Date 2022/9/8 15:45 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void updateYlfn() { + //获取育龄妇女配置 + Result> value = operCustomizeOpenFeignClient.getYlfnValue(); + if(!value.success()) { + throw new EpmetException(value.getCode(), value.getMsg()); + } + value.getData().forEach(item -> { + //查询客户下的非育龄妇女的女性居民 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getCustomerId, item.getCustomerId()); + wrapper.eq(IcResiUserEntity::getGender, NumConstant.TWO_STR); + wrapper.eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(user -> { + IdCardRegexUtils pares = IdCardRegexUtils.parse(user.getIdCard()); + if (null != pares && NumConstant.ONE_STR.equals(pares.getTypeEnum().getType())) { + if (!NumConstant.ONE_STR.equals(user.getIsYlfn())) { + //将不是育龄妇女的变为育龄妇女 + if (pares.getParsedResult().getAge() >= item.getMin() && pares.getParsedResult().getAge() <= item.getMax()) { + //更新育龄妇女状态 + IcResiUserEntity icResiUserEntity = new IcResiUserEntity(); + icResiUserEntity.setId(user.getId()); + icResiUserEntity.setIsYlfn(NumConstant.ONE_STR); + baseDao.updateById(icResiUserEntity); + + //添加居民变更记录 + IcUserChangeRecordEntity record = new IcUserChangeRecordEntity(); + record.setCustomerId(user.getCustomerId()); + record.setOperatorId("APP_USER"); + record.setOperatorName("自动匹配"); + record.setIcUserId(user.getId()); + record.setIcUserName(user.getName()); + record.setType("category"); + record.setTypeName("类别"); + record.setBeforeChangeName("育龄妇女:否;"); + record.setAfterChangeName("育龄妇女:是;"); + record.setChangeTime(new Date()); + icUserChangeRecordDao.insert(record); + //添加变更明细 + IcUserChangeDetailedEntity detail = new IcUserChangeDetailedEntity(); + detail.setCustomerId(user.getCustomerId()); + detail.setIcUserChangeRecordId(record.getId()); + detail.setPids(user.getPids()); + detail.setAgencyId(user.getAgencyId()); + detail.setGridId(user.getGridId()); + detail.setNeighborHoodId(user.getVillageId()); + detail.setBuildingId(user.getBuildId()); + detail.setBuildingUnitId(user.getUnitId()); + detail.setHouseId(user.getHomeId()); + detail.setIcUserId(user.getId()); + detail.setType("category"); + detail.setTypeName("类别"); + detail.setFieldName("IS_YLFN"); + detail.setValue(NumConstant.ONE); + icUserChangeDetailedDao.insert(detail); + } + } else { + //将是育龄妇女的变为非育龄妇女 + if (pares.getParsedResult().getAge() < item.getMin() || pares.getParsedResult().getAge() > item.getMax()) { + //更新育龄妇女状态 + IcResiUserEntity icResiUserEntity = new IcResiUserEntity(); + icResiUserEntity.setId(user.getId()); + icResiUserEntity.setIsYlfn(NumConstant.ZERO_STR); + baseDao.updateById(icResiUserEntity); + //添加居民变更记录 + IcUserChangeRecordEntity record = new IcUserChangeRecordEntity(); + record.setCustomerId(user.getCustomerId()); + record.setOperatorId("APP_USER"); + record.setOperatorName("自动匹配"); + record.setIcUserId(user.getId()); + record.setIcUserName(user.getName()); + record.setType("category"); + record.setTypeName("类别"); + record.setBeforeChangeName("育龄妇女:是;"); + record.setAfterChangeName("育龄妇女:否;"); + record.setChangeTime(new Date()); + icUserChangeRecordDao.insert(record); + //添加变更明细 + IcUserChangeDetailedEntity detail = new IcUserChangeDetailedEntity(); + detail.setCustomerId(user.getCustomerId()); + detail.setIcUserChangeRecordId(record.getId()); + detail.setPids(user.getPids()); + detail.setAgencyId(user.getAgencyId()); + detail.setGridId(user.getGridId()); + detail.setNeighborHoodId(user.getVillageId()); + detail.setBuildingId(user.getBuildId()); + detail.setBuildingUnitId(user.getUnitId()); + detail.setHouseId(user.getHomeId()); + detail.setIcUserId(user.getId()); + detail.setType("category"); + detail.setTypeName("类别"); + detail.setFieldName("IS_YLFN"); + detail.setValue(NumConstant.ONE_NEG); + icUserChangeDetailedDao.insert(detail); + } + } + } + }); + } + }); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java index f6395793e7..5e7d901f6c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java @@ -56,6 +56,7 @@ import com.epmet.redis.UserBaseInfoRedis; import com.epmet.redis.UserResiInfoRedis; import com.epmet.resi.group.dto.topic.form.SharableTopicAndInviteeFormDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.*; import com.epmet.util.ModuleConstant; import org.apache.commons.collections4.CollectionUtils; @@ -102,6 +103,10 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -436,6 +441,10 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl + + + update ic_point_nucleic_monitoring + set UPDATED_TIME = now(), + ENABLE_FLAG = case when ENABLE_FLAG = 'enable' then 'disabled' else 'enable' end + where id = #{id} + + + + +