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 9bbd564ea2..1a4b303c3c 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 @@ -88,4 +88,9 @@ public interface ConsomerGroupConstants { * 需求完成,如果服务方是区域化党建单位,重新计算这个单位的满意度 */ String USER_DEMAND_FINISH_GROUP = "user_demand_finish_group"; + + /** + * 志愿者变更 + */ + String VOLUNTEER_CHANGE_EVENT_LISTENER_GROUP = "volunteer_change_event_listener_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 f4c2d45e89..66d04ff05f 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 @@ -74,4 +74,9 @@ public interface TopicConstants { * 社区服务,原居民需求 */ String COMMUNITY_SERVICE="community_service"; + + /** + * 志愿者 + */ + String VOLUNTEER ="volunteer"; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/IcHouseFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/IcHouseFormDTO.java new file mode 100644 index 0000000000..5caca05c88 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/IcHouseFormDTO.java @@ -0,0 +1,38 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.commons.tools.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +/** + * epmet-user端调用gov-org端的入参 + * @author sun + */ +@Data +public class IcHouseFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + private String customerId; + private String houseId; + + +} \ No newline at end of file diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/MqBaseFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/MqBaseFormDTO.java new file mode 100644 index 0000000000..fc436b5b29 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/MqBaseFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.commons.tools.dto.form.mq; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * desc:rocketmq 基础参数 + * + * @author zhaoqifeng + * @dscription + * @date 2021/6/7 16:23 + */ +@NoArgsConstructor +@Data +public class MqBaseFormDTO implements Serializable { + private static final long serialVersionUID = -6616119263736477518L; + + /** + * 客户Id + */ + private String customerId; + + /** + * 对象id 没有则查询全部 + */ + private String objectId; + + /** + * 对象id 没有则查询全部 + */ + private List objectIdList; + + public MqBaseFormDTO(String customerId, String objectId) { + this.customerId = customerId; + this.objectId = objectId; + } + + public MqBaseFormDTO(String customerId, List objectIdList) { + this.customerId = customerId; + this.objectIdList = objectIdList; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java new file mode 100644 index 0000000000..a0d1520e43 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyOrgTypeEnum.java @@ -0,0 +1,37 @@ +package com.epmet.commons.tools.enums; + +public enum PartyOrgTypeEnum { + + PROVINCIAL("0", "省委"), + MUNICIPAL("1", "市委"), + DISTRICT("2", "区委"), + WORKING("3", "党工委"), + PARTY("4", "党委"), + BRANCH("5", "支部"); + + + private String code; + private String name; + + + PartyOrgTypeEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyPostEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyPostEnum.java new file mode 100644 index 0000000000..3985bc8f3b --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/PartyPostEnum.java @@ -0,0 +1,61 @@ +package com.epmet.commons.tools.enums; + +import java.util.Objects; + +/** + * @author Administrator + */ +public enum PartyPostEnum { + //党员职务 + PTDY("0", "普通党员"), + ZBSJ("1", "支部书记"), + ZBWY("2", "支部委员"), + DWWY("3", "党委委员"), + + UN_KNOWN("8", "未知"); + + private String code; + private String name; + + + PartyPostEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static String getName(String code) { + PartyPostEnum[] partyPostEnums = values(); + for (PartyPostEnum partyPostEnum : partyPostEnums) { + if (Objects.equals(partyPostEnum.getCode(), code)) { + return partyPostEnum.getName(); + } + } + return null; + } + + public static String getCode(String name) { + PartyPostEnum[] partyPostEnums = values(); + for (PartyPostEnum partyPostEnum : partyPostEnums) { + if (partyPostEnum.getName().equals(name)) { + return partyPostEnum.getCode(); + } + } + return null; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java index bb6bfe423b..da09442ea8 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java @@ -2,8 +2,10 @@ package com.epmet.commons.tools.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; +import com.epmet.commons.tools.dto.form.IcHouseFormDTO; import com.epmet.commons.tools.feign.fallback.CommonGovOrgFeignClientFallBackFactory; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; import com.epmet.commons.tools.utils.Result; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -26,4 +28,13 @@ public interface CommonGovOrgFeignClient { @PostMapping("/gov/org/grid/getbaseinfo") Result getGridInfo(@RequestBody CustomerGridFormDTO customerGridFormDTO); + /** + * @Description 查询房屋信息 + * @Param houseInfo + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/18 14:29 + */ + @PostMapping("/gov/org/house/getHouseInfoCache") + Result getHouseInfoCache(@RequestBody IcHouseFormDTO houseInfo); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java index c54567c350..7f5097fd20 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java @@ -2,8 +2,10 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; +import com.epmet.commons.tools.dto.form.IcHouseFormDTO; import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import org.springframework.stereotype.Component; @@ -22,5 +24,18 @@ public class CommonGovOrgFeignClientFallback implements CommonGovOrgFeignClient return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", customerGridFormDTO); } + /** + * @param houseInfo + * @Description 查询房屋信息 + * @Param houseInfo + * @Return {@link Result< HouseInfoCache >} + * @Author zhaoqifeng + * @Date 2022/5/18 14:29 + */ + @Override + public Result getHouseInfoCache(IcHouseFormDTO houseInfo) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getHouseInfoCache", houseInfo); + } + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java index 6f2e4959e0..81cd3dd878 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java @@ -1,11 +1,14 @@ package com.epmet.commons.tools.redis.common; import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.dto.form.IcHouseFormDTO; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; +import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import lombok.extern.slf4j.Slf4j; @@ -28,6 +31,8 @@ public class CustomerIcHouseRedis { private RedisUtils redisUtils; @Autowired private CommonAggFeignClient commonAggFeignClient; + @Autowired + private CommonGovOrgFeignClient govOrgFeignClient; private static CustomerIcHouseRedis customerIcHouseRedis; @PostConstruct @@ -62,6 +67,35 @@ public class CustomerIcHouseRedis { return buildInfoResult.getData(); } + /** + * @Description 获取房屋信息 + * @Param customerId + * @Param houseId + * @Return {@link HouseInfoCache} + * @Author zhaoqifeng + * @Date 2022/5/18 14:37 + */ + public static HouseInfoCache getHouseInfo(String customerId, String houseId){ + String key = RedisKeys.getHouseInfoCacheKey(houseId,customerId); + Map house = customerIcHouseRedis.redisUtils.hGetAll(key); + if (!MapUtils.isEmpty(house)) { + return ConvertUtils.mapToEntity(house, HouseInfoCache.class); + } + IcHouseFormDTO formDTO = new IcHouseFormDTO(); + formDTO.setCustomerId(customerId); + formDTO.setHouseId(houseId); + Result houseInfoResult = customerIcHouseRedis.govOrgFeignClient.getHouseInfoCache(formDTO); + if (!houseInfoResult.success()){ + throw new RenException("查询房屋信息失败..."); + } + if (null == houseInfoResult.getData()){ + return null; + } + Map map = BeanUtil.beanToMap(houseInfoResult.getData(), false, true); + customerIcHouseRedis.redisUtils.hMSet(key, map); + return houseInfoResult.getData(); + } + public static void delBuildingInfo(String buildingId){ String key = RedisKeys.getBuildingInfoKey(buildingId); customerIcHouseRedis.redisUtils.delete(key); diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java new file mode 100644 index 0000000000..4c6551b881 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java @@ -0,0 +1,92 @@ +package com.epmet.commons.tools.redis.common.bean; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 房屋信息缓存 + * @author Administrator + */ +@Data +public class HouseInfoCache implements Serializable { + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 小区详细地址 + */ + private String neighborAddress; + /** + * 小区id + */ + private String neighborHoodId; + /** + * 小区名称 + */ + private String neighborHoodName; + + + /** + * 所属楼栋id + */ + private String buildingId; + /** + * 楼栋名称 + */ + private String buildingName; + + + /** + * 所属单元id + */ + private String buildingUnitId; + /** + * 单元名 + */ + private String unitName; + + + /** + * 门牌号 + */ + private String doorName; + + /** + * 房屋类型,1楼房,2平房,3别墅 + */ + private String houseType; + + private String houseName; + + /** + * 楼的经度 + */ + private String buildingLongitude; + /** + * 楼的纬度 + */ + private String buildingLatitude; + + /** + * 小区名+楼栋名+单元名+房屋名 + */ + private String allName; + + private String customerId; + + /** + * 小区所在的组织id + */ + private String agencyId; + /** + * eg:市北区-阜新路街道-南宁社区 + */ + private String agencyPathName; + /** + * 组织的area_code + */ + private String areaCode; +} diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java index e6e567c43b..8c439aa218 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java @@ -18,6 +18,7 @@ public interface ImportTaskConstants { String BIZ_TYPE_ATTENTION_NAT = "attention_nat"; String BIZ_TYPE_ATTENTION_VACCINATION = "attention_vaccination"; String BIZ_TYPE_ATTENTION_TRIP_REPORT = "attention_vaccination"; + String BIZ_TYPE_IC_PARTY_MEMBER = "ic_party_member"; /** * 核酸检测 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyTypepercentFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyTypepercentFormDTO.java new file mode 100644 index 0000000000..2ef86fc61c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyTypepercentFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyTypepercentFormDTO { + + private static final long serialVersionUID = -3833404131164761022L; + + /** + * 组织id + */ + @NotBlank(message = "组织id不能为空") + private String agencyId; + + private String customerId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitListbriefFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitListbriefFormDTO.java new file mode 100644 index 0000000000..f57e73479c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitListbriefFormDTO.java @@ -0,0 +1,73 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyUnitListbriefFormDTO implements Serializable { + + private static final long serialVersionUID = -2776705671944626707L; + + /** + * 页码 + */ + @NotNull + @Min(1) + private Integer pageNo; + + /** + * 每页记录数 + */ + @NotNull + private Integer pageSize; + + /** + * 网格id + */ +// private String gridId; + + /** + * 组织id + */ + @NotBlank(message = "组织id不能为空") + private String agencyId; + + /** + * 单位名称 + */ + private String unitName; + + /** + * 服务事项 + */ + private String serviceMatter; + + /** + * 分类 + */ + private String type; + + /** + * 联系人 + */ + private String contact; + + /** + * 联系人电话 + */ + private String contactMobile; + + private String customerId; + + +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyTypepercentResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyTypepercentResultDTO.java new file mode 100644 index 0000000000..5a5112a4a8 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyTypepercentResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PartyTypepercentResultDTO { + + private static final long serialVersionUID = -5256798094892121661L; + + /** + * 联建单位类型 + */ + private String label; + + /** + * 数量 + */ + private Integer value; + + /** + * 联建单位编码 + */ + private String code; + + /** + * 联建单位数量占比(%) + */ + private String percent; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitListbrieResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitListbrieResultDTO.java new file mode 100644 index 0000000000..87ecc54bcb --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitListbrieResultDTO.java @@ -0,0 +1,56 @@ +package com.epmet.dto.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyUnitListbrieResultDTO implements Serializable { + + private static final long serialVersionUID = -300315089751537091L; + + /** + * id + */ + private String id; + + /** + * 所属网格 + */ +// private String gridName; + + /** + * 所属网格id + */ +// private String gridId; + + /** + * 分类 + */ + private String type; + + /** + * 服务事项 + */ + private String serviceMatter; + + /** + * 单位名称 + */ + private String unitName; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 8c9c514a47..755a5d881d 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ActInfoDTO; +import com.epmet.dto.IcVolunteerPolyDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.AutoEvaluateDemandFormDTO; import com.epmet.dto.form.CommonCustomerFormDTO; @@ -12,6 +13,7 @@ import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.demand.DemandRecId; import com.epmet.dto.form.demand.IcEventCommentToDemandFromDTO; import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; +import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; @@ -134,4 +136,25 @@ public interface EpmetHeartOpenFeignClient { @PostMapping("/heart/userdemand/iceventcomment") Result icEventComment(@RequestBody IcEventCommentToDemandFromDTO formDTO); + + /** + * 获取客户下志愿者列表 + * + * @Param customerId + * @Return {@link Result< List< IcVolunteerPolyDTO>>} + * @Author zhaoqifeng + * @Date 2022/5/19 11:14 + */ + @PostMapping("/heart/resi/volunteer/getVolunteerList/{customerId}") + Result> getVolunteerList(@PathVariable("customerId") String customerId); + + /** + * 添加志愿者 + * @Param formDTO + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/30 11:10 + */ + @PostMapping("/heart/resi/volunteer/addVolunteer") + Result addVolunteer(@RequestBody ResiVolunteerAuthenticateFormDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index de7669bba9..e818a49b04 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ActInfoDTO; +import com.epmet.dto.IcVolunteerPolyDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.AutoEvaluateDemandFormDTO; import com.epmet.dto.form.CommonCustomerFormDTO; @@ -13,6 +14,7 @@ import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.demand.DemandRecId; import com.epmet.dto.form.demand.IcEventCommentToDemandFromDTO; import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; +import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; @@ -128,4 +130,32 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result icEventComment(IcEventCommentToDemandFromDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "icEventComment", formDTO); } + + /** + * 获取客户下志愿者列表 + * + * @param customerId + * @Param customerId + * @Return {@link Result< List< IcVolunteerPolyDTO >>} + * @Author zhaoqifeng + * @Date 2022/5/19 11:14 + */ + @Override + public Result> getVolunteerList(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "getVolunteerList", customerId); + } + + /** + * 添加志愿者 + * + * @param formDTO + * @Param formDTO + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/30 11:10 + */ + @Override + public Result addVolunteer(ResiVolunteerAuthenticateFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "addVolunteer", formDTO); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index e4e507ee25..236e0d3b99 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -20,10 +20,13 @@ import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.ImportTaskCommonResultDTO; +import com.epmet.dto.result.PartyTypepercentResultDTO; import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; +import com.epmet.dto.result.PartyUnitListbrieResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyUnitExcel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -38,6 +41,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; @@ -71,14 +75,14 @@ public class IcPartyUnitController { @PostMapping("list") - public Result> search(@LoginUser TokenDto tokenDto, @RequestBody PartyUnitFormDTO formDTO){ + public Result> search(@LoginUser TokenDto tokenDto, @RequestBody PartyUnitFormDTO formDTO) { formDTO.setCustomerId(tokenDto.getCustomerId()); PageData page = icPartyUnitService.search(formDTO); return new Result>().ok(page); } @PostMapping("detail") - public Result get(@RequestBody IcPartyUnitDTO formDTO){ + public Result get(@RequestBody IcPartyUnitDTO formDTO) { AssertUtils.isBlank(formDTO.getId(), "id"); IcPartyUnitDTO data = icPartyUnitService.get(formDTO.getId()); return new Result().ok(data); @@ -86,7 +90,7 @@ public class IcPartyUnitController { @PostMapping("save") @NoRepeatSubmit - public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcPartyUnitDTO dto){ + public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcPartyUnitDTO dto) { //效验数据 dto.setCustomerId(tokenDto.getCustomerId()); ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); @@ -95,7 +99,7 @@ public class IcPartyUnitController { } @PostMapping("delete") - public Result delete(@RequestBody IcPartyUnitDTO dto){ + public Result delete(@RequestBody IcPartyUnitDTO dto) { //效验数据 AssertUtils.isBlank(dto.getId(), "id"); icPartyUnitService.delete(dto.getId()); @@ -135,21 +139,22 @@ public class IcPartyUnitController { * @return */ @PostMapping("servicelist") - public Result> queryServiceList(@LoginUser TokenDto tokenDto, @RequestBody ServiceQueryFormDTO formDTO){ + public Result> queryServiceList(@LoginUser TokenDto tokenDto, @RequestBody ServiceQueryFormDTO formDTO) { formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setStaffId(tokenDto.getUserId()); - ValidatorUtils.validateEntity(formDTO,ServiceQueryFormDTO.AddUserInternalGroup.class); + ValidatorUtils.validateEntity(formDTO, ServiceQueryFormDTO.AddUserInternalGroup.class); return new Result>().ok(icPartyUnitService.queryServiceList(formDTO)); } @PostMapping("option") - public Result> option(@RequestBody IcPartyUnitDTO dto){ + public Result> option(@RequestBody IcPartyUnitDTO dto) { AssertUtils.isBlank(dto.getAgencyId(), "agencyId"); return new Result>().ok(icPartyUnitService.option(dto)); } /** * 数据导入 + * * @Param tokenDto * @Param response * @Param file @@ -201,7 +206,7 @@ public class IcPartyUnitController { * @Date 2021/12/8 14:52 */ @PostMapping("typestatistics") - public Result> typeStatistics(@RequestBody PartyActivityFormDTO formDTO){ + public Result> typeStatistics(@RequestBody PartyActivityFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); return new Result>().ok(icPartyUnitService.typeStatistics(formDTO)); } @@ -214,11 +219,42 @@ public class IcPartyUnitController { * @Date 2021/12/9 10:11 */ @PostMapping("distribution") - public Result> distribution(@RequestBody PartyActivityFormDTO formDTO){ + public Result> distribution(@RequestBody PartyActivityFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); return new Result>().ok(icPartyUnitService.distribution(formDTO)); } + /** + * 联建单位-简要信息列表 + * + * @param form + * @return com.epmet.commons.tools.utils.Result + * @author LZN + * @date 2022/5/18 13:54 + */ + @PostMapping("/listbrief") + public Result getListbrief(@RequestBody PartyUnitListbriefFormDTO form, @LoginUser TokenDto tokenDto) { + form.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(form); + PageData data = icPartyUnitService.getListbrief(form); + return new Result().ok(data); + } + + /** + * 联建单位-按分类统计数量及占比 + * + * @param form + * @return com.epmet.commons.tools.utils.Result> + * @author LZN + * @date 2022/5/18 16:42 + */ + @PostMapping("/statistics/typepercent") + public Result> getTypepercent(@RequestBody PartyTypepercentFormDTO form,@LoginUser TokenDto tokenDto) { + form.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(form); + List dto = icPartyUnitService.getTypepercent(form); + return new Result>().ok(dto); + } /** * 计算区域化党建单位的群众满意度 @@ -227,8 +263,8 @@ public class IcPartyUnitController { * @return */ @PostMapping("cal-partyunit-satisfation") - public Result calPartyUnitSatisfation(@RequestBody ServerSatisfactionCalFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO,ServerSatisfactionCalFormDTO.AddUserInternalGroup.class); + public Result calPartyUnitSatisfation(@RequestBody ServerSatisfactionCalFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ServerSatisfactionCalFormDTO.AddUserInternalGroup.class); icPartyUnitService.calPartyUnitSatisfation(formDTO); return new Result(); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java index 410cbdf981..b54acc67ec 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java @@ -18,9 +18,14 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; 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.constant.SystemMessageType; +import com.epmet.dto.IcVolunteerPolyDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; @@ -30,6 +35,8 @@ import com.epmet.dto.form.resi.VolunteerCommonFormDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.VolunteerInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -49,6 +56,8 @@ public class ResiVolunteerController { @Autowired private VolunteerInfoService volunteerInfoService; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; /** * 志愿者认证 @@ -64,6 +73,19 @@ public class ResiVolunteerController { formDTO.setCustomerId(tokenDto.getCustomerId()); ValidatorUtils.validateEntity(formDTO, ResiVolunteerAuthenticateFormDTO.AddUserShowGroup.class, ResiVolunteerAuthenticateFormDTO.AddUserInternalGroup.class); volunteerInfoService.authenticate(formDTO); + + //发送志愿者人员消息变动 + boolean flag = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendRocketMqMsg(SystemMessageType.VOLUNTEER_CHANGED, new MqBaseFormDTO(tokenDto.getCustomerId(), tokenDto.getUserId())); + if (!flag){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"发送志愿者变动消息失败","发送志愿者变动消息失败"); + } + + return new Result(); + } + + @PostMapping("addVolunteer") + public Result addVolunteer(@RequestBody ResiVolunteerAuthenticateFormDTO formDTO) { + volunteerInfoService.addVolunteer(formDTO); return new Result(); } @@ -170,4 +192,9 @@ public class ResiVolunteerController { volunteerInfoService.modifyVolunteerGrid(volunteerInfoDTO); return new Result(); } + + @PostMapping("getVolunteerList/{customerId}") + public Result> getVolunteerList(@PathVariable("customerId") String customerId) { + return new Result>().ok(volunteerInfoService.getVolunteerList(customerId)); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java index a144e3f69d..fd36187bd8 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java @@ -19,8 +19,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +import com.epmet.dto.form.PartyTypepercentFormDTO; +import com.epmet.dto.form.PartyUnitListbriefFormDTO; +import com.epmet.dto.result.PartyTypepercentResultDTO; import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; +import com.epmet.dto.result.PartyUnitListbrieResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.apache.ibatis.annotations.Mapper; @@ -41,22 +45,24 @@ public interface IcPartyUnitDao extends BaseDao { /** * 需求指派,选择区域化党建单位,调用此接口 + * * @param agencyIds * @param unitName * @return */ List selectListByAgencyId(@Param("agencyIds") List agencyIds, @Param("unitName") String unitName, - @Param("customerId")String customerId); + @Param("customerId") String customerId); /** * 单位分类统计 + * * @Param agencyId * @Return {@link java.util.List} * @Author zhaoqifeng * @Date 2021/12/8 15:25 */ - List getTypeStatistics(@Param("agencyId")String agencyId); + List getTypeStatistics(@Param("agencyId") String agencyId); /** * @Description 联建单位分布 @@ -65,7 +71,7 @@ public interface IcPartyUnitDao extends BaseDao { * @Author zhaoqifeng * @Date 2021/12/9 14:24 */ - List getDistribution(@Param("agencyId")String agencyId); + List getDistribution(@Param("agencyId") String agencyId); int updateSatisfaction(@Param("partyUnitId") String serverId, @Param("satisfaction") BigDecimal satisfaction); @@ -92,4 +98,22 @@ public interface IcPartyUnitDao extends BaseDao { * @date 2022/5/18 13:48 */ List getAssistanceUnitList(@Param("agencyId")String agencyId); -} \ No newline at end of file + + /** + * 联建单位-简要信息列表 + * + * @param form + * @return java.util.List + * @author LZN + * @date 2022/5/18 13:54 + */ + List getListbrief(@Param("form") PartyUnitListbriefFormDTO form, @Param("customerId") String customerId); + + /** + * 联建单位-按分类统计数量及占比 + * + * @param agencyId + */ + List getTypepercent(@Param("agencyId") String agencyId, + @Param("customerId") String customerId); +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 0507b31209..53ddf81e19 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -7,11 +7,15 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.IcPartyUnitDTO; import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.form.PartyTypepercentFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; +import com.epmet.dto.form.PartyUnitListbriefFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; +import com.epmet.dto.result.PartyTypepercentResultDTO; import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; +import com.epmet.dto.result.PartyUnitListbrieResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.springframework.web.multipart.MultipartFile; @@ -67,7 +71,7 @@ public interface IcPartyUnitService extends BaseService { * @author generator * @date 2021-11-19 */ - void save(TokenDto tokenDto, IcPartyUnitDTO dto); + void save(TokenDto tokenDto, IcPartyUnitDTO dto); /** @@ -110,6 +114,7 @@ public interface IcPartyUnitService extends BaseService { /** * 导入数据 + * * @Param tokenDto * @Param response * @Param file @@ -130,6 +135,7 @@ public interface IcPartyUnitService extends BaseService { /** * 联建单位分布 + * * @Param formDTO * @Return {@link List< PartyUnitDistributionResultDTO>} * @Author zhaoqifeng @@ -139,6 +145,7 @@ public interface IcPartyUnitService extends BaseService { /** * 计算区域化党建单位的群众满意度 + * * @param formDTO */ void calPartyUnitSatisfation(ServerSatisfactionCalFormDTO formDTO); @@ -161,4 +168,18 @@ public interface IcPartyUnitService extends BaseService { */ List getAssistanceUnitList(TokenDto tokenDto); -} \ No newline at end of file + + /** + * 联建单位-简要信息列表 + * + * @param form + */ + PageData getListbrief(PartyUnitListbriefFormDTO form); + + /** + * 联建单位-按分类统计数量及占比 + * + * @param form + */ + List getTypepercent(PartyTypepercentFormDTO form); +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java index 7cd4d30769..fefbde5c95 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.IcVolunteerPolyDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO; @@ -48,7 +49,7 @@ public interface VolunteerInfoService extends BaseService { * @Date 10:09 2020-07-23 **/ void authenticate(ResiVolunteerAuthenticateFormDTO formDTO); - + void addVolunteer(ResiVolunteerAuthenticateFormDTO formDTO); /** * 志愿者认证界面,获取用户基础信息+志愿者信息 * @@ -117,4 +118,13 @@ public interface VolunteerInfoService extends BaseService { * @param volunteerInfoDTO */ void modifyVolunteerGrid(VolunteerInfoDTO volunteerInfoDTO); + + /** + * 获取客户下志愿者 + * @Param customerId + * @Return {@link List< IcVolunteerPolyDTO>} + * @Author zhaoqifeng + * @Date 2022/5/19 10:58 + */ + List getVolunteerList(String customerId); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index c878b8f14d..9a7d93fd29 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -39,7 +39,9 @@ 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.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.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ExcelPoiUtils; @@ -52,9 +54,12 @@ import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; +import com.epmet.dto.result.PartyTypepercentResultDTO; import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; +import com.epmet.dto.result.PartyUnitListbrieResultDTO; import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceStatDTO; @@ -128,10 +133,10 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = baseDao.selectList(wrapper); PageInfo pageInfo = new PageInfo<>(list); List dtoList = ConvertUtils.sourceToTarget(list, IcPartyUnitDTO.class); - Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); //服务事项列表从需求分类中抽离出来,改为查询ic_service_item_dict表 - List serviceItemList=icServiceItemDictService.queryDictList(formDTO.getCustomerId()); - Map categoryMap=serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + List serviceItemList = icServiceItemDictService.queryDictList(formDTO.getCustomerId()); + Map categoryMap = serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); //获取单位积分 Map pointMap = icUserDemandRecService.getServicePoint(formDTO.getCustomerId(), UserDemandConstant.PARTY_UNIT); dtoList.forEach(item -> { @@ -142,12 +147,12 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl()); } - if(StringUtils.isBlank(item.getSatisfaction())){ + if (StringUtils.isBlank(item.getSatisfaction())) { item.setSatisfaction(StrConstant.HYPHEN); - }else{ - item.setSatisfaction(new BigDecimal(item.getSatisfaction()).setScale(2,BigDecimal.ROUND_HALF_UP).toString()); + } else { + item.setSatisfaction(new BigDecimal(item.getSatisfaction()).setScale(2, BigDecimal.ROUND_HALF_UP).toString()); } - item.setScore(null == pointMap.get(item.getId())?NumConstant.ZERO:pointMap.get(item.getId())); + item.setScore(null == pointMap.get(item.getId()) ? NumConstant.ZERO : pointMap.get(item.getId())); }); return new PageData<>(dtoList, pageInfo.getTotal()); } @@ -164,10 +169,10 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = baseDao.selectList(wrapper); List dtoList = ConvertUtils.sourceToTarget(list, IcPartyUnitDTO.class); - Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); //服务事项列表从需求分类中抽离出来,改为查询ic_service_item_dict表 - List serviceItemList=icServiceItemDictService.queryDictList(formDTO.getCustomerId()); - Map categoryMap=serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + List serviceItemList = icServiceItemDictService.queryDictList(formDTO.getCustomerId()); + Map categoryMap = serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); //获取单位积分 Map pointMap = icUserDemandRecService.getServicePoint(formDTO.getCustomerId(), UserDemandConstant.PARTY_UNIT); dtoList.forEach(item -> { @@ -178,13 +183,13 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl()); } - item.setScore(null == pointMap.get(item.getId())?NumConstant.ZERO:pointMap.get(item.getId())); + item.setScore(null == pointMap.get(item.getId()) ? NumConstant.ZERO : pointMap.get(item.getId())); }); return dtoList; } - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + 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); @@ -200,14 +205,14 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl pointMap = icUserDemandRecService.getServicePoint(entity.getCustomerId(), UserDemandConstant.PARTY_UNIT); dto.setServiceMatterList(Arrays.asList(dto.getServiceMatter().split(StrConstant.COMMA))); - dto.setScore(null == pointMap.get(id)?NumConstant.ZERO:pointMap.get(id)); + dto.setScore(null == pointMap.get(id) ? NumConstant.ZERO : pointMap.get(id)); } return dto; } @Override @Transactional(rollbackFor = Exception.class) - public void save(TokenDto tokenDto, IcPartyUnitDTO dto) { + public void save(TokenDto tokenDto, IcPartyUnitDTO dto) { IcPartyUnitEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyUnitEntity.class); CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); entity.setAgencyId(staff.getAgencyId()); @@ -219,7 +224,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = baseDao.selectList(wrapper); - if(StringUtils.isBlank(entity.getId())) { + if (StringUtils.isBlank(entity.getId())) { if (CollectionUtils.isNotEmpty(list)) { throw new EpmetException(EpmetErrorCode.PARTY_UNIT_NAME_EXITED.getCode(), EpmetErrorCode.PARTY_UNIT_NAME_EXITED.getMsg(), EpmetErrorCode.PARTY_UNIT_NAME_EXITED.getMsg()); } @@ -258,19 +263,19 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl} * @Author zhaoqifeng * @Date 2021/11/22 14:35 @@ -347,8 +352,8 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl serviceItemList=icServiceItemDictService.queryDictList(tokenDto.getCustomerId()); - Map categoryMap=serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + List serviceItemList = icServiceItemDictService.queryDictList(tokenDto.getCustomerId()); + Map categoryMap = serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); //1.数据校验 Iterator iterator = result.iterator(); while (iterator.hasNext()) { @@ -519,6 +524,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl distribution(PartyActivityFormDTO formDTO) { - Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); List list = baseDao.getDistribution(formDTO.getAgencyId()); if (CollectionUtils.isEmpty(list)) { return Collections.emptyList(); @@ -573,24 +579,25 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = icUserDemandRecService.groupByServer(formDTO.getCustomerId(), formDTO.getServerId(),formDTO.getServiceType()); + List list = icUserDemandRecService.groupByServer(formDTO.getCustomerId(), formDTO.getServerId(), formDTO.getServiceType()); for (ServiceStatDTO serviceStatDTO : list) { if (0 != serviceStatDTO.getDemandCount()) { BigDecimal result = serviceStatDTO.getTotalScore().divide(new BigDecimal(serviceStatDTO.getDemandCount()), 4, BigDecimal.ROUND_HALF_UP); - baseDao.updateSatisfaction(serviceStatDTO.getServerId(),result); + baseDao.updateSatisfaction(serviceStatDTO.getServerId(), result); } } } @Override public List queryListById(List partyUnitIds) { - if(CollectionUtils.isNotEmpty(partyUnitIds)){ + if (CollectionUtils.isNotEmpty(partyUnitIds)) { return baseDao.selectBatchIds(partyUnitIds); } return Collections.EMPTY_LIST; @@ -629,6 +636,55 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + PageHelper.startPage(form.getPageNo(), form.getPageSize()); + List dto = baseDao.getListbrief(form, form.getCustomerId()); + + dto.forEach(item -> { + item.setType(unitTypeMap.getData().get(item.getType())); + }); + + // 获取gridName + /*for (PartyUnitListbrieResultDTO item : dto) { + if (StringUtils.isNotEmpty(item.getGridId())) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); + if (null != gridInfo) { + item.setGridName(gridInfo.getGridName()); + } + } + }*/ + PageInfo info = new PageInfo<>(dto); + return new PageData<>(dto, info.getTotal()); + } + + @Override + public List getTypepercent(PartyTypepercentFormDTO form) { + + DictListFormDTO dictFromDTO = new DictListFormDTO(); + dictFromDTO.setDictType(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFromDTO); + if (!dictResult.success()) { + throw new EpmetException(dictResult.getCode()); + } + + List result = baseDao.getTypepercent(form.getAgencyId(),form.getCustomerId()); + Map map = result.stream().collect(Collectors.toMap(PartyTypepercentResultDTO::getCode, PartyTypepercentResultDTO::getValue)); + + int sum = result.stream().mapToInt(PartyTypepercentResultDTO::getValue).sum(); + + return dictResult.getData().stream().map(item -> { + PartyTypepercentResultDTO dto = new PartyTypepercentResultDTO(); + dto.setLabel(item.getLabel()); + dto.setCode(item.getValue()); + dto.setValue(null == map.get(item.getValue()) ? NumConstant.ZERO : map.get(item.getValue())); + dto.setPercent((Integer.parseInt(item.getValue()) * 100) / sum + "%"); + return dto; + }).collect(Collectors.toList()); + + } + private String getServiceMatter(Map map, String matter) { List matters = Arrays.asList(matter.split(StrConstant.COLON)); List list = matters.stream().map(map::get).collect(Collectors.toList()); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java index 846e342657..b5aab903d0 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java @@ -39,10 +39,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.constant.SmsTemplateConstant; import com.epmet.constant.SystemMessageType; import com.epmet.dao.VolunteerInfoDao; -import com.epmet.dto.CustomerAgencyDTO; -import com.epmet.dto.CustomerGridDTO; -import com.epmet.dto.HeartUserInfoDTO; -import com.epmet.dto.VolunteerInfoDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; @@ -189,6 +186,33 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl gridInfoRes = govOrgOpenFeignClient.getGridBaseInfoByGridId(customerGridFormDTO); + if (!gridInfoRes.success() || null == gridInfoRes.getData()) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询网格信息失败"); + } + insertVolunteer.setGridName(gridInfoRes.getData().getGridName()); + insertVolunteer.setPid(gridInfoRes.getData().getPid()); + insertVolunteer.setPids(gridInfoRes.getData().getPids()); + baseDao.insert(insertVolunteer); + + //更新用户信息表的 是否是志愿者标识 + HeartUserInfoDTO userInfoDTO = new HeartUserInfoDTO(); + userInfoDTO.setUserId(formDTO.getUserId()); + userInfoDTO.setVolunteerFlag(true); + heartUserInfoService.updateHeartUserInfoByUserId(userInfoDTO); + } + } + private void grantActPoints(ResiVolunteerAuthenticateFormDTO formDTO){ //MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO(); //mq的事件类型 @@ -424,4 +448,35 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2022/5/19 10:58 + */ + @Override + public List getVolunteerList(String customerId) { + if (StringUtils.isBlank(customerId)) { + return Collections.emptyList(); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(VolunteerInfoEntity::getCustomerId, customerId); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + return list.stream().map(item -> { + IcVolunteerPolyDTO dto = new IcVolunteerPolyDTO(); + dto.setCustomerId(item.getCustomerId()); + dto.setAgencyId(item.getPid()); + dto.setAgencyPids(item.getPids()); + dto.setUserId(item.getUserId()); + dto.setVolunteerCategory("qita"); + return dto; + }).collect(Collectors.toList()); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml index c3e86c3964..f57d1c7826 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml @@ -73,6 +73,58 @@ ORDER BY ID + + + 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 ce708be3b2..e93d9badaa 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 @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -170,4 +171,12 @@ public interface OperCustomizeOpenFeignClient { @PostMapping("/oper/customize/icExportTemplate/getExcelHeaderAndSqlColumnForExport") Result getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param); + /** + * 使用item相关条件查询关联的options + * @param input + * @return + */ + @PostMapping("/oper/customize/icformitemoptions/getItemConditions") + Result> getOptionsMap(@RequestBody IcFormOptionsQueryFormDTO input); + } 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 555dac052c..e59af2b818 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 @@ -12,6 +12,7 @@ import com.epmet.dto.result.*; import com.epmet.feign.OperCustomizeOpenFeignClient; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -130,4 +131,15 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", param); } + /** + * 使用item相关条件查询关联的options + * + * @param input + * @return + */ + @Override + public Result> getOptionsMap(IcFormOptionsQueryFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getOptionsMap", input); + } + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java index 9f6f68e3a5..9a8f76e302 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java @@ -35,6 +35,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -120,5 +121,19 @@ public class IcFormItemOptionsController { return new Result>().ok(r); } + @PostMapping("getItemConditions") + public Result> getOptionsMap(@RequestBody IcFormOptionsQueryFormDTO input) { + ValidatorUtils.validateEntity(input, IcFormOptionsQueryFormDTO.QueryByLabelAndCustomerIdForForm.class); + String customerId = input.getCustomerId(); + String formCode = input.getFormCode(); + String columnName = input.getColumnName(); + Integer columnNum = input.getColumnNum(); + List list = icFormItemOptionsService.getOptionsByItemConditions(customerId, formCode, columnName, columnNum); + Map map = list.stream() + .collect(Collectors.toMap(IcFormItemOptionsDTO::getOptionValue, IcFormItemOptionsDTO::getOptionLabel, (o1, o2) -> o1)); + return new Result>().ok(map); + } + + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.28__update_ic_form_item.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.28__update_ic_form_item.sql new file mode 100644 index 0000000000..c023b712a7 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.28__update_ic_form_item.sql @@ -0,0 +1,3 @@ +update ic_form_item set OPTION_SOURCE_VALUE='/resi/partymember/icPartyOrg/branchlist',ITEM_TYPE='cascader' +where DEL_FLAG='0' +and LABEL='所属支部'; \ No newline at end of file diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyResiUserInfoResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyResiUserInfoResultDTO.java index 5ffe04836b..56e8dfae95 100644 --- a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyResiUserInfoResultDTO.java +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyResiUserInfoResultDTO.java @@ -56,4 +56,14 @@ public class MyResiUserInfoResultDTO implements Serializable { * 是否录入身份证号,true ,false * */ private Boolean completeIdNum; + + /** + * 是否是志愿者:0否1是 + */ + private String volunteerFlag; + + /** + * 类别【字典表】 + */ + private String volunteerCategory; } 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 new file mode 100644 index 0000000000..b5d26e1ee6 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java @@ -0,0 +1,127 @@ +package com.epmet.resi.partymember.dto.partyOrg; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyOrgDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党组织的上级ID,没有上级时为0 + */ + @NotNull(message = "上级组织不能为空") + private String orgPid; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + + /** + * 行政组织 机关ID + */ + + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部 + */ + @NotNull(message = "组织类型不能为空") + private String partyOrgType; + + /** + * 组织名称 + */ + @NotNull(message = "组织名称不能为空") + private String partyOrgName; + + /** + * 组织编码 + */ + private String partyOrgCode; + + /** + * 经度 + */ + @NotNull(message = "经度不能为空") + private String longitude; + + /** + * 纬度 + */ + @NotNull(message = "纬度不能为空") + private String latitude; + + /** + * 地址 + */ + private String address; + + /** + * 党组织介绍 + */ + private String introduction; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 用户id + */ + private String staffId; + +} 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 new file mode 100644 index 0000000000..862d5e6c58 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/PartyOrgTreeListDTO.java @@ -0,0 +1,32 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-05-20 14:04 + **/ +@Data +public class PartyOrgTreeListDTO implements Serializable { + + /** + * 行政组织 机关ID + */ + + private String agencyId; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党组织pid + */ + + private String orgPid; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/BranchlistTreeDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/BranchlistTreeDTO.java new file mode 100644 index 0000000000..d4e48da213 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/BranchlistTreeDTO.java @@ -0,0 +1,23 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-05-30 10:11 + **/ +@Data +public class BranchlistTreeDTO implements Serializable { + + private String label; + + private String value; + + 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/BranchlistTreeSubDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/BranchlistTreeSubDTO.java new file mode 100644 index 0000000000..2bd1b45953 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/BranchlistTreeSubDTO.java @@ -0,0 +1,22 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-05-30 10:11 + **/ +@Data +public class BranchlistTreeSubDTO implements Serializable { + + private String label; + + private String value; + +} 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 new file mode 100644 index 0000000000..cb5bf1b927 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/result/IcPartyOrgTreeDTO.java @@ -0,0 +1,59 @@ +package com.epmet.resi.partymember.dto.partyOrg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyOrgTreeDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 党组织的上级ID,没有上级时为0(前端展示用) + */ + private String pid; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部 + */ + private String partyOrgType; + + /** + * 组织名称 + */ + private String partyOrgName; + + private List children = new ArrayList<>(); + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberDTO.java new file mode 100644 index 0000000000..9832a35e5e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberDTO.java @@ -0,0 +1,188 @@ +package com.epmet.resi.partymember.dto.partymember; + +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; +import java.util.Date; +import java.util.List; + + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + @NotBlank(message = "当前网格id不能为空",groups ={UpdateGroup.class}) + private String id; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + private String orgName; + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 对应的ic_resi_user主表Id + */ + private String icResiUser; + + /** + * 姓名 + */ + @NotBlank(message = "当前网格id不能为空",groups ={AddGroup.class, UpdateGroup.class}) + private String name; + + /** + * 手机号 + */ + @NotBlank(message = "当前网格id不能为空",groups ={AddGroup.class, UpdateGroup.class}) + private String mobile; + + /** + * 身份证号 + */ + @NotBlank(message = "当前网格id不能为空",groups ={AddGroup.class, UpdateGroup.class}) + private String idCard; + + /** + * 地址 + */ + private String address; + + /** + * 入党时间 + */ + private String rdsj; + + /** + * 所属支部 + */ + private String sszb; + + /** + * 是否流动党员 + */ + private String isLd; + + /** + * 流动党员活动证号 + */ + private String ldzh; + + /** + * 职务 + */ + private String partyZw; + private String postName; + /** + * 是否退休 + */ + private String isTx; + + /** + * 是否党员中心户 + */ + private String isDyzxh; + + /** + * 是否免学习0否,1是 + */ + private String isMxx; + + /** + * 文化程度【字典表】 + */ + private String culture; + private String cultureName; + /** + * 志愿者类型,逗号隔开 + */ + private String volunteerCategory; + private List volunteerCategoryName; + /** + * 备注 + */ + private String remark; + + /** + * 预留字段1 + */ + private String field1; + + /** + * 预留字段2 + */ + private String field2; + + /** + * 预留字段3 + */ + private String field3; + + /** + * 预留字段4 + */ + private String field4; + + /** + * 预留字段5 + */ + private String field5; + + /** + * 删除标识 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/partymember/IcPartyMemberPayRecordDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDTO.java new file mode 100644 index 0000000000..82ae32717d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDTO.java @@ -0,0 +1,92 @@ +package com.epmet.resi.partymember.dto.partymember; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberPayRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 客户Id (customer.id) + */ + @NotBlank(message = "客户Id不能为空") + private String customerId; + + /** + * 党员ID + */ + @NotBlank(message = "党员ID不能为空") + private String partyMemberId; + + /** + * 缴费日期 + */ + @NotBlank(message = "缴费日期不能为空") + private String payDate; + + /** + * 缴费金额 + */ + @NotBlank(message = "缴费金额不能为空") + private BigDecimal money; + + /** + * 缴费开始时间 + */ + @NotBlank(message = "缴费开始时间不能为空") + private String startDate; + + /** + * 缴费结束时间 + */ + @NotBlank(message = "缴费结束时间不能为空") + private String endDate; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDetailDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDetailDTO.java new file mode 100644 index 0000000000..e0537443ce --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDetailDTO.java @@ -0,0 +1,99 @@ +package com.epmet.resi.partymember.dto.partymember; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberPayRecordDetailDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党员ID + */ + private String partyMemberId; + + /** + * 党员缴费记录表ID + */ + private String recordId; + + /** + * 缴费年度 + */ + private String year; + + /** + * 缴费月份 + */ + private String month; + + /** + * 缴费金额 + */ + private BigDecimal money; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + // 姓名 + private String name; + // 手机号 + private String mobile; + // 身份证号 + private String idCard; + // 所属党组织名称 + private String orgName; + // 缴费次数 + private String times; + // 备注 + private String remark; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPointDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPointDTO.java new file mode 100644 index 0000000000..1663f19881 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPointDTO.java @@ -0,0 +1,119 @@ +package com.epmet.resi.partymember.dto.partymember; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 党员量化积分表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberPointDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党员ID + */ + private String partyMemberId; + + /** + * 年 + */ + private String year; + + /** + * 季度 + */ + private String quarter; + + /** + * 基础积分分值 + */ + private Integer basePoint; + + /** + * 基础积分选项 英文逗号隔开 + */ + private String baseOptions; + + /** + * 民主评议积分分值 + */ + private Integer reviewPoint; + + /** + * 民主评议积分选项 + */ + private String reviewOptions; + + /** + * 激励积分分值 + */ + private Integer inspirePoint; + + /** + * 激励积分选项 + */ + private String inspireOptions; + + /** + * 警示扣分分值 + */ + private Integer warnPoint; + + /** + * 警示扣分选项 + */ + private String warnOptions; + + /** + * 总分 + */ + private Integer totalScore; + + /** + * 删除标识: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/partymember/PartyMemberPointListCountDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartyMemberPointListCountDTO.java new file mode 100644 index 0000000000..e3c44992a6 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartyMemberPointListCountDTO.java @@ -0,0 +1,35 @@ +package com.epmet.resi.partymember.dto.partymember; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyMemberPointListCountDTO implements Serializable { + + private static final long serialVersionUID = -8960345656247021278L; + + /** + * 基础积分分值次数 + */ + private Integer basePointCount; + + /** + * 民主评议积分分值次数 + */ + private Integer reviewPointCount; + + /** + * 激励积分分值次数 + */ + private Integer inspirePointCount; + + /** + * 警示扣分分值次数 + */ + private Integer warnPointCount; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/IcPartyMemberFromDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/IcPartyMemberFromDTO.java new file mode 100644 index 0000000000..42da9bdf94 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/IcPartyMemberFromDTO.java @@ -0,0 +1,84 @@ +package com.epmet.resi.partymember.dto.partymember.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/5/18 16:03 + */ +@NoArgsConstructor +@Data +public class IcPartyMemberFromDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -5751720367897462952L; + private String customerId; + /** + * 所属党组织 + */ + private String partyOrgId; + /** + * 姓名 + */ + private String name; + /** + * 手机 + */ + private String mobile; + /** + * 身份证号 + */ + private String idCard; + /** + * 地址 + */ + private String address; + /** + * 流动党员 + */ + private String isLd; + /** + * 流动党员证号 + */ + private String ldzh; + /** + * 职务 + */ + private String partyZw; + /** + * 是否党员中心户 + */ + private String isDyzxh; + /** + * 是否免学习 + */ + private String isMxx; + /** + * 文化程度 + */ + private String culture; + /** + * 是否缴费 + */ + private String isPay; + /** + * 入党时间开始 + */ + private String rdsjStartDate; + /** + * 入党时间结束 + */ + private String rdsjEndDate; + /** + * 最后一次缴费时间开始 + */ + private String payStatrDate; + /** + * 最后一次缴费时间结束 + */ + private String payEndDate; + private String year; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/IcPartyMemberPayRecordDetailFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/IcPartyMemberPayRecordDetailFormDTO.java new file mode 100644 index 0000000000..322fce31c8 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/IcPartyMemberPayRecordDetailFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.resi.partymember.dto.partymember.form; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @Author wgf + * @Date 2022/05/17 19:49 + */ +@NoArgsConstructor +@Data +public class IcPartyMemberPayRecordDetailFormDTO implements Serializable { + private static final long serialVersionUID = 4743261460276449408L; + + private String orgId; + private String name; + private String mobile; + private String idCard; + private String year; + private String month; + + private Integer pageNo; + private Integer pageSize; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberExportFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberExportFormDTO.java new file mode 100644 index 0000000000..42d465463e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberExportFormDTO.java @@ -0,0 +1,48 @@ +package com.epmet.resi.partymember.dto.partymember.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyMemberExportFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = -1193821690622467766L; + + /** + * 客户id + */ + private String customerId; + + /** + * 所属党组织id + */ + private String orgId; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 评分年度 + */ + private String year; + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointEchoFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointEchoFormDTO.java new file mode 100644 index 0000000000..ba52678e75 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointEchoFormDTO.java @@ -0,0 +1,34 @@ +package com.epmet.resi.partymember.dto.partymember.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PartyMemberPointEchoFormDTO implements Serializable { + + private static final long serialVersionUID = 6999955563137801002L; + + /** + * 年份 + */ + @NotBlank(message = "年份不能为空") + private String year; + + /** + * 季度 + */ + @NotBlank(message = "季度不能为空") + private String quarter; + + /** + * 党员id + */ + @NotBlank(message = "党员id不能为空") + private String partyMemberId; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointListFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointListFormDTO.java new file mode 100644 index 0000000000..5055126aec --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointListFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.resi.partymember.dto.partymember.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyMemberPointListFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = 5659445492756209830L; + + /** + * 所属党组织id + */ + private String orgId; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 评分年度 + */ + private String year; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/IcPartyMemberResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/IcPartyMemberResultDTO.java new file mode 100644 index 0000000000..bf4408f5a6 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/IcPartyMemberResultDTO.java @@ -0,0 +1,82 @@ +package com.epmet.resi.partymember.dto.partymember.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/5/18 16:33 + */ +@NoArgsConstructor +@Data +public class IcPartyMemberResultDTO implements Serializable { + + private static final long serialVersionUID = -4964061462850271428L; + /** + * 主键 + */ + private String id; + /** + * 姓名 + */ + private String name; + /** + * 身份证号 + */ + private String idCard; + /** + * 手机号 + */ + private String mobile; + /** + * 入党时间 + */ + private String rdsj; + /** + * 所属党组织 + */ + private String sszb; + /** + * 流动党员 + */ + private String isLd; + /** + * 流动党员证号 + */ + private String ldzh; + /** + * 职务 + */ + private String partyZw; + /** + * 地址 + */ + private String address; + /** + * 是否缴费 + */ + private String isPay; + /** + * 最近一次缴纳党费时间 + */ + private String payDate; + /** + * 文化程度 + */ + private String culture; + /** + * 量化积分 + */ + private String point; + /** + * 志愿者类别 + */ + private String volunteerCategory; + /** + * 备注 + */ + private String remark; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointEchoResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointEchoResultDTO.java new file mode 100644 index 0000000000..42b93cd711 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointEchoResultDTO.java @@ -0,0 +1,57 @@ +package com.epmet.resi.partymember.dto.partymember.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyMemberPointEchoResultDTO implements Serializable { + + private static final long serialVersionUID = 195601506560614702L; + + /** + * 基础积分分值 + */ + private Integer basePoint; + + /** + * 基础积分选项 英文逗号隔开 + */ + private String baseOptions; + + /** + * 民主评议积分分值 + */ + private Integer reviewPoint; + + /** + * 民主评议积分选项 + */ + private String reviewOptions; + + /** + * 激励积分分值 + */ + private Integer inspirePoint; + + /** + * 激励积分选项 + */ + private String inspireOptions; + + /** + * 警示扣分分值 + */ + private Integer warnPoint; + + /** + * 警示扣分选项 + */ + private String warnOptions; + + private String id; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointExportResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointExportResultDTO.java new file mode 100644 index 0000000000..a6f1cbd054 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointExportResultDTO.java @@ -0,0 +1,72 @@ +package com.epmet.resi.partymember.dto.partymember.result; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class PartyMemberPointExportResultDTO implements Serializable { + + private static final long serialVersionUID = -3692594790475696502L; + + + /** + * 党员id + */ + private String partyMemberId; + + /** + * 年 + */ + private String year; + + /** + * 季度 + */ + private String quarter; + + /** + * 基础积分分值 + */ + private Integer basePoint; + + /** + * 基础积分选项 + */ + private String baseOptions; + + /** + * 民主评议积分分值 + */ + private Integer reviewPoint; + + /** + * 民主评议积分选项 + */ + private String reviewOptions; + + /** + * 激励积分分值 + */ + private Integer inspirePoint; + + /** + * 激励积分选项 + */ + private String inspireOptions; + + /** + * 警示扣分分值 + */ + private Integer warnPoint; + + /** + * 警示扣分选项 + */ + private String warnOptions; + + /** + * 总分 + */ + private Integer totalScore; +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointListResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointListResultDTO.java new file mode 100644 index 0000000000..2670024446 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointListResultDTO.java @@ -0,0 +1,102 @@ +package com.epmet.resi.partymember.dto.partymember.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PartyMemberPointListResultDTO implements Serializable { + + private static final long serialVersionUID = 5867583472212661940L; + + /** + * 所属党组织 + */ + private String partyOrg; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 总分 + */ + private Integer totalScore; + + /** + *基础积分分值 + */ + private Integer basePoint; + + /** + * 基础选项 + */ + private String baseOptions; + + /** + * 民主评议积分分值 + */ + private Integer reviewPoint; + + /** + * 民主评议选项 + */ + private String reviewOptions; + + /** + * 激励积分分值 + */ + private Integer inspirePoint; + + /** + * 激励积分选项 + */ + private String inspireOptions; + + /** + * 警示扣分分值 + */ + private Integer warnPoint; + + /** + * 警示扣分选项 + */ + private String warnOptions; + + /** + * 备注 + */ + private String Remark; + + /** + * 年度 + */ + private String year; + + /** + * 季度 + */ + private Integer quarter; + + + /** + * id + */ + private String partyMemberId; + +} 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 63c2674043..d88cd797b3 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 @@ -2,6 +2,7 @@ package com.epmet.resi.partymember.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import com.epmet.resi.partymember.dto.partymember.form.DelPartyMemberBaseInfoFormDTO; @@ -114,4 +115,13 @@ public interface ResiPartyMemberOpenFeignClient { @PostMapping("/resi/partymember/partymemberconfirmmanual/audit-reset") Result partyMemberAuditReset(@RequestParam("gridId")String gridId); + /** + * @Description 同步党员信息 + * @Param dto + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/18 10:41 + */ + @PostMapping("/resi/partymember/icPartyMember/icPartyMemberSync") + Result icPartyMemberSync(@RequestBody IcPartyMemberDTO dto); } 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 2cb889e348..3a10c64914 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 @@ -3,6 +3,7 @@ package com.epmet.resi.partymember.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import com.epmet.resi.partymember.dto.partymember.form.DelPartyMemberBaseInfoFormDTO; @@ -74,4 +75,17 @@ public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOp public Result partyMemberAuditReset(String gridId) { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "partyMemberAuditReset", gridId); } + + /** + * @param dto + * @Description 同步党员信息 + * @Param dto + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/18 10:41 + */ + @Override + public Result icPartyMemberSync(IcPartyMemberDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "icPartyMemberSync", dto); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index 0aa5915d98..a1f564cf47 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -104,6 +104,18 @@ 2.0.0 compile + + com.epmet + epmet-admin-client + 2.0.0 + compile + + + com.epmet + oper-customize-client + 2.0.0 + compile + 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 new file mode 100644 index 0000000000..c0b0af1144 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java @@ -0,0 +1,113 @@ +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.ExcelUtils; +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.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.PartyOrgTreeListDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@RestController +@RequestMapping("icPartyOrg") +public class IcPartyOrgController { + + @Autowired + private IcPartyOrgService icPartyOrgService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = icPartyOrgService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcPartyOrgDTO data = icPartyOrgService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping + public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcPartyOrgDTO dto){ + dto.setCustomerId(tokenDto.getCustomerId()); + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + return icPartyOrgService.save(dto); + } + + @NoRepeatSubmit + @PutMapping + public Result update(@RequestBody IcPartyOrgDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icPartyOrgService.update(dto); + return new Result(); + } + + @DeleteMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icPartyOrgService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = icPartyOrgService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, IcPartyOrgExcel.class); + } + + + /** + * @describe: 获取党组织下拉树 + * @author wangtong + * @date 2022/5/17 17:13 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @GetMapping("getTreelist") + public Result> getTreelist(@LoginUser TokenDto tokenDto,PartyOrgTreeListDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + return icPartyOrgService.getTreelist(formDTO); + } + + /** + * @describe: 当前登录用户所属行政组织,及下级的党组织(只限支部) + * @author wangtong + * @date 2022/5/25 15:24 + * @params [tokenDto] + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("branchlist") + public Result> branchlist(@LoginUser TokenDto tokenDto){ + return icPartyOrgService.branchlist(tokenDto); + } + + + +} 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 new file mode 100644 index 0000000000..3413e87649 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java @@ -0,0 +1,78 @@ +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.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 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-05-17 + */ +@Mapper +public interface IcPartyOrgDao extends BaseDao { + + /** + * @describe: 获取组织列表 + * @author wangtong + * @date 2022/5/17 19:00 + * @params [] + * @return java.util.List + */ + List getTreelist(PartyOrgTreeListDTO formDTO); + + /** + * @describe: 查询跟id相关的所有组织id + * @author wangtong + * @date 2022/5/19 16:14 + * @params [id] + * @return java.util.List + */ + List selectAllByOrgId(@Param("id") String id); + + /** + * @describe: 通过名称或者编码查询 + * @author wangtong + * @date 2022/5/20 10:35 + * @params [partyOrgName, partyOrgCode] + * @return com.epmet.modules.partyOrg.entity.IcPartyOrgEntity + */ + IcPartyOrgEntity selectByCuIdAndNameOrCode(@Param("partyOrgName") String partyOrgName, + @Param("partyOrgCode") String partyOrgCode, + @Param("customerId") String customerId); + + /** + * @describe: 通过行政组织id和类型(不等于)筛选 + * @author wangtong + * @date 2022/5/20 10:40 + * @params [agencyId, partyOrgType] + * @return com.epmet.modules.partyOrg.entity.IcPartyOrgEntity + */ + IcPartyOrgEntity selectByAgencyId(@Param("agencyId") String agencyId,@Param("partyOrgType") String partyOrgType); + + /** + * @describe: 查询当前客户下的一级组织 + * @author wangtong + * @date 2022/5/25 10:47 + * @params [customerId] + * @return com.epmet.modules.partyOrg.entity.IcPartyOrgEntity + */ + IcPartyOrgEntity selectLevelOneOrgByCustomerId(@Param("customerId") String customerId); + + /** + * @describe: 查询行政组织下的所有支部党组织 + * @author wangtong + * @date 2022/5/25 15:30 + * @params [agencyId, customerId] + * @return java.util.List + */ + List selectAllBranchByAgencyId(@Param("agencyId") String agencyId, @Param("customerId") String customerId); +} 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 new file mode 100644 index 0000000000..e9ea2f210c --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java @@ -0,0 +1,81 @@ +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-05-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_org") +public class IcPartyOrgEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党组织的上级ID,没有上级时为0 + */ + private String orgPid; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部 + */ + private String partyOrgType; + + /** + * 组织名称 + */ + private String partyOrgName; + + /** + * 组织编码 + */ + private String partyOrgCode; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 地址 + */ + private String address; + + /** + * 党组织介绍 + */ + private String introduction; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcPartyOrgExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcPartyOrgExcel.java new file mode 100644 index 0000000000..f57f8cb7c5 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/excel/IcPartyOrgExcel.java @@ -0,0 +1,75 @@ +package com.epmet.modules.partyOrg.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyOrgExcel { + + @Excel(name = "唯一标识") + private String id; + + @Excel(name = "客户Id (customer.id)") + private String customerId; + + @Excel(name = "党组织的上级ID,没有上级时为0") + private String orgPid; + + @Excel(name = "党组织的所有上级ID,没有上级时为0") + private String orgPids; + + @Excel(name = "行政组织 机关ID") + private String agencyId; + + @Excel(name = "行政组织 机关ID") + private String agencyPids; + + @Excel(name = "党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部") + private String partyOrgType; + + @Excel(name = "组织名称") + private String partyOrgName; + + @Excel(name = "组织编码") + private String partyOrgCode; + + @Excel(name = "经度") + private String longitude; + + @Excel(name = "纬度") + private String latitude; + + @Excel(name = "地址") + private String address; + + @Excel(name = "党组织介绍") + private String introduction; + + @Excel(name = "删除标识:0.未删除 1.已删除") + private Integer delFlag; + + @Excel(name = "乐观锁") + private Integer revision; + + @Excel(name = "创建人") + private String createdBy; + + @Excel(name = "创建时间") + private Date createdTime; + + @Excel(name = "更新人") + private String updatedBy; + + @Excel(name = "更新时间") + private Date updatedTime; + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/redis/IcPartyOrgRedis.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/redis/IcPartyOrgRedis.java new file mode 100644 index 0000000000..158dc60fcc --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/redis/IcPartyOrgRedis.java @@ -0,0 +1,30 @@ +package com.epmet.modules.partyOrg.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Component +public class IcPartyOrgRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} 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 new file mode 100644 index 0000000000..5405a5b531 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java @@ -0,0 +1,101 @@ +package com.epmet.modules.partyOrg.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.modules.partyOrg.entity.IcPartyOrgEntity; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +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 java.util.List; +import java.util.Map; + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +public interface IcPartyOrgService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-05-17 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPartyOrgDTO + * @author generator + * @date 2022-05-17 + */ + IcPartyOrgDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + Result save(IcPartyOrgDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + void update(IcPartyOrgDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-17 + */ + void delete(String[] ids); + + /** + * @describe: 获取党组织下拉树 + * @author wangtong + * @date 2022/5/17 17:20 + * @params [formDTO] + * @return com.epmet.commons.tools.page.PageData + */ + Result> getTreelist(PartyOrgTreeListDTO formDTO); + + /** + * @describe: 当前登录用户所属行政组织,及下级的党组织(只限支部) + * @author wangtong + * @date 2022/5/25 15:25 + * @params [tokenDto] + * @return com.epmet.commons.tools.utils.Result + */ + Result> branchlist(TokenDto tokenDto); +} 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 new file mode 100644 index 0000000000..b0925ffd7d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java @@ -0,0 +1,253 @@ +package com.epmet.modules.partyOrg.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.PartyOrgTypeEnum; +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.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.enums.OrgLevelEnums; +import com.epmet.modules.partyOrg.dao.IcPartyOrgDao; +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.partymember.dto.partyOrg.IcPartyOrgDTO; +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 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; + +/** + * 党组织表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Service +public class IcPartyOrgServiceImpl extends BaseServiceImpl implements IcPartyOrgService { + + @Autowired + private IcPartyMemberDao icPartyMemberDao; + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPartyOrgDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPartyOrgDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPartyOrgDTO get(String id) { + IcPartyOrgEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPartyOrgDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result save(IcPartyOrgDTO dto) { + //同一个客户下,名称和编码不可重复 + IcPartyOrgEntity repeatName = baseDao.selectByCuIdAndNameOrCode(dto.getPartyOrgName(),null,dto.getCustomerId()); + if(null != repeatName){ + throw new EpmetException("行政组织名称不可重复!"); + } + if(StringUtils.isNotBlank(dto.getPartyOrgCode())){ + IcPartyOrgEntity repeatCode = baseDao.selectByCuIdAndNameOrCode(null,dto.getPartyOrgCode(),dto.getCustomerId()); + if(null != repeatCode){ + throw new EpmetException("行政组织编码不可重复!"); + } + } + IcPartyOrgEntity parentOrg = baseDao.selectById(dto.getOrgPid()); + //判断当前党组织的类型是否是所选上级党组织类型的直接下级 + if("0".equals(dto.getOrgPid())){ + if(PartyOrgTypeEnum.BRANCH.getCode().equals(dto.getPartyOrgType())){ + throw new EpmetException("支部不可设为一级组织!"); + } + //一个客户下只能有一个一级组织 + IcPartyOrgEntity levelOneOrg = baseDao.selectLevelOneOrgByCustomerId(dto.getCustomerId()); + if(null != levelOneOrg){ + throw new EpmetException("当前客户下已存在一级组织,不可重复添加!"); + } + }else{ + checkOrgType(parentOrg.getPartyOrgType(),dto.getPartyOrgType()); + } + //如果不是支部,需要判断行政组织是否重复 + if(!PartyOrgTypeEnum.BRANCH.getCode().equals(dto.getPartyOrgType())){ + IcPartyOrgEntity isAgency = baseDao.selectByAgencyId(dto.getAgencyId(),PartyOrgTypeEnum.BRANCH.getCode()); + if(null != isAgency){ + throw new EpmetException("该行政组织已被关联!"); + } + AgencyInfoCache agency = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId()); + //判断该所选的行政组织类型是否与当前党组织的类型一致 + checnAgencyLevel(agency.getLevel(),dto.getPartyOrgType()); + dto.setAgencyPids(agency.getPids()); + }else{ + //类型为支部时,行政组织信息与上级党组织一致 + dto.setAgencyId(parentOrg.getAgencyId()); + dto.setAgencyPids(parentOrg.getAgencyPids()); + } + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId()); + if (null == agencyInfo){ + throw new EpmetException("组织信息获取失败"); + } + IcPartyOrgEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyOrgEntity.class); + insert(entity); + return new Result(); + } + + /** + * @describe: 判断当前党组织的类型是否是所选上级党组织类型的直接下级 + * @author wangtong + * @date 2022/5/25 10:09 + * @params [parentOrg, partyOrgType] + * @return void + */ + private void checkOrgType(String parentOrgType, String partyOrgType) { + if(PartyOrgTypeEnum.BRANCH.getCode().equals(partyOrgType) && !PartyOrgTypeEnum.PARTY.getCode().equals(parentOrgType)){ + throw new EpmetException("请保持上级党组织的类型与当前党组织类型为直接的上下级关系,选择党委作为上级组织!"); + }else if(PartyOrgTypeEnum.PARTY.getCode().equals(partyOrgType) && !PartyOrgTypeEnum.WORKING.getCode().equals(parentOrgType)){ + throw new EpmetException("请保持上级党组织的类型与当前党组织类型为直接的上下级关系,选择党工委作为上级组织!"); + }else if(PartyOrgTypeEnum.WORKING.getCode().equals(partyOrgType) && !PartyOrgTypeEnum.DISTRICT.getCode().equals(parentOrgType)){ + throw new EpmetException("请保持上级党组织的类型与当前党组织类型为直接的上下级关系,选择区委作为上级组织!"); + }else if(PartyOrgTypeEnum.DISTRICT.getCode().equals(partyOrgType) && !PartyOrgTypeEnum.MUNICIPAL.getCode().equals(parentOrgType)){ + throw new EpmetException("请保持上级党组织的类型与当前党组织类型为直接的上下级关系,选择市委作为上级组织!"); + }else if(PartyOrgTypeEnum.MUNICIPAL.getCode().equals(partyOrgType) && !PartyOrgTypeEnum.PROVINCIAL.getCode().equals(parentOrgType)){ + throw new EpmetException("请保持上级党组织的类型与当前党组织类型为直接的上下级关系,选择省委作为上级组织!"); + } + } + + /** + * @describe: 判断该所选的行政组织类型是否与当前党组织的类型一致 + * @author wangtong + * @date 2022/5/25 9:45 + * @params [agencyLevel, partyOrgType] + * @return void + */ + private void checnAgencyLevel(String agencyLevel, String partyOrgType) { + if(PartyOrgTypeEnum.PROVINCIAL.getCode().equals(partyOrgType) && !OrgLevelEnums.PROVINCE.getLevel().equals(agencyLevel)){ + throw new EpmetException("请保持党组织类型与行政组织类型一致,选择省级的行政组织!"); + }else if(PartyOrgTypeEnum.MUNICIPAL.getCode().equals(partyOrgType) && !OrgLevelEnums.CITY.getLevel().equals(agencyLevel)){ + throw new EpmetException("请保持党组织类型与行政组织类型一致,选择市级的行政组织!"); + }else if(PartyOrgTypeEnum.DISTRICT.getCode().equals(partyOrgType) && !OrgLevelEnums.DISTRICT.getLevel().equals(agencyLevel)){ + throw new EpmetException("请保持党组织类型与行政组织类型一致,选择区级的行政组织!"); + }else if(PartyOrgTypeEnum.WORKING.getCode().equals(partyOrgType) && !OrgLevelEnums.STREET.getLevel().equals(agencyLevel)){ + throw new EpmetException("请保持党组织类型与行政组织类型一致,选择街道级的行政组织!"); + }else if(PartyOrgTypeEnum.PARTY.getCode().equals(partyOrgType) && !OrgLevelEnums.COMMUNITY.getLevel().equals(agencyLevel)){ + throw new EpmetException("请保持党组织类型与行政组织类型一致,选择社区级的行政组织!"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPartyOrgDTO dto) { +// IcPartyOrgEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyOrgEntity.class); + IcPartyOrgEntity entity = baseDao.selectById(dto.getId()); + entity.setPartyOrgName(dto.getPartyOrgName()); + entity.setPartyOrgCode(dto.getPartyOrgCode()); + entity.setIntroduction(dto.getIntroduction()); + entity.setLatitude(dto.getLatitude()); + entity.setLongitude(dto.getLongitude()); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) +// baseDao.deleteBatchIds(Arrays.asList(ids)); + for(String id : ids){ + //判断该组织是否有下级党组织 + List orgList = baseDao.selectAllByOrgId(id); + if(!CollectionUtils.isEmpty(orgList)){ + throw new EpmetException("请先删除下级党组织!"); + } + //判断该组织下是否有党员 + List memberList = icPartyMemberDao.selectAllByOrgId(id); + if(!CollectionUtils.isEmpty(memberList)){ + throw new EpmetException("该组织下有党员信息暂时不可删除!"); + } + baseDao.deleteById(id); + } + } + + @Override + public Result> getTreelist(PartyOrgTreeListDTO formDTO) { + List list = baseDao.getTreelist(formDTO); + return new Result>().ok(build(list)); + } + + @Override + public Result> branchlist(TokenDto tokenDto) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId()); + List resultList = new ArrayList<>(); + BranchlistTreeDTO result = new BranchlistTreeDTO(); + result.setValue(staffInfo.getAgencyId()); +// result.setOrgPids(staffInfo.getAgencyPIds()); + result.setLabel(staffInfo.getAgencyName()); + result.setChildren(baseDao.selectAllBranchByAgencyId(staffInfo.getAgencyId(),tokenDto.getCustomerId())); + resultList.add(result); + return new Result>().ok(resultList); + } + + /** + * 构建树节点 + */ + public static List build(List treeNodes) { + List result = new ArrayList<>(); + + //list转map + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + for(IcPartyOrgTreeDTO treeNode : treeNodes){ + nodeMap.put(treeNode.getId(), treeNode); + } + + for(IcPartyOrgTreeDTO node : nodeMap.values()) { + IcPartyOrgTreeDTO parent = nodeMap.get(node.getPid()); + if(parent != null && !(node.getId().equals(parent.getId()))){ + parent.getChildren().add(node); + continue; + } + + result.add(node); + } + + return result; + } + +} 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 new file mode 100644 index 0000000000..bfd266384f --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java @@ -0,0 +1,311 @@ +package com.epmet.modules.partymember.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.annotation.MaskResponse; +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.*; +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.constants.ImportTaskConstants; +import com.epmet.dto.form.IcPartyMemberFormDTO; +import com.epmet.dto.form.IcPartyMemberListFormDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; +import com.epmet.dto.result.PartyMemberAgeResultDTO; +import com.epmet.dto.result.PartyMemberEducationResultDTO; +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.IcPartyMemberResultDTO; +import com.epmet.utils.ImportTaskUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.nio.file.Path; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Slf4j +@RestController +@RequestMapping("icPartyMember") +public class IcPartyMemberController implements ResultDataResolver { + + @Autowired + private IcPartyMemberService icPartyMemberService; + + @RequestMapping("page") + @MaskResponse(fieldNames = { "mobile", "idCard" }, fieldsMaskType = { MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD }) + public Result> page(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberFromDTO formDTO){ + PageData page = icPartyMemberService.page(tokenDto, formDTO); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcPartyMemberDTO data = icPartyMemberService.get(id); + return new Result().ok(data); + } + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcPartyMemberDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + String id = icPartyMemberService.save(dto); + return new Result().ok(id); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcPartyMemberDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icPartyMemberService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icPartyMemberService.delete(ids); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("export") + public void export(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberFromDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "党员管理.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyMemberExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = icPartyMemberService.page(tokenDto, formDTO); + List list = ConvertUtils.sourceToTarget(page.getList(), IcPartyMemberExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (CollectionUtils.isNotEmpty(page.getList()) && page.getList().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(); + } + } + } + + @PostMapping("icPartyMemberSync") + public Result icPartyMemberSync(@RequestBody IcPartyMemberDTO dto) { + icPartyMemberService.icPartyMemberSync(dto); + return new Result(); + } + + /** + * excel导入 + * @Param file + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/23 16:05 + */ + @PostMapping("import") + public Result importExcel(MultipartFile file) { + String userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID); + + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); + + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_party_member", "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【党员管理导入】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); + } + + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error("method exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + + // 2.生成导入任务记录 + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException( + ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.BIZ_TYPE_IC_PARTY_MEMBER), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "excel导入党员信息错误", + "导入党员信息失败"); + + // 3.执行导入 + icPartyMemberService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); + + return new Result(); + } + + /** + * @describe: 统计分析-党员学历统计 + * @author wangtong + * @date 2022/5/23 10:06 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("partymembereducationstatistics") + public Result> partyMemberEducationStatistics(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberFormDTO formDTO) { + if(StringUtils.isBlank(formDTO.getOrgId()) && StringUtils.isBlank(formDTO.getAgencyId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + return new Result>().ok(icPartyMemberService.partyMemberEducationStatistics(formDTO)); + } + + /** + * @describe: 统计分析-党员年龄列表 + * @author wangtong + * @date 2022/5/23 10:20 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("partymemberagelist") + @MaskResponse(fieldNames = {"mobile"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE}) + public Result> partyMemberAgelist(@LoginUser TokenDto tokenDto,@RequestBody IcPartyMemberListFormDTO formDTO) { + if(StringUtils.isBlank(formDTO.getOrgId()) && StringUtils.isBlank(formDTO.getAgencyId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + return new Result>().ok(icPartyMemberService.getPartyMemberAgeList(formDTO)); + } + + /** + * @describe: 统计分析-党员学历列表 + * @author wangtong + * @date 2022/5/23 10:19 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("partymembereducationlist") + @MaskResponse(fieldNames = {"mobile"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE}) + public Result> partyMemberEducationlist(@LoginUser TokenDto tokenDto,@RequestBody IcPartyMemberListFormDTO formDTO) { + if(StringUtils.isBlank(formDTO.getOrgId()) && StringUtils.isBlank(formDTO.getAgencyId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + return new Result>().ok(icPartyMemberService.getPartyMemberEducationList(formDTO)); + } + + /** + * @describe: 统计分析-党员年龄范围统计 + * @author wangtong + * @date 2022/5/23 10:19 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("partymemberagestatistics") + public Result> partyMemberAgeStatistics(@LoginUser TokenDto tokenDto,@RequestBody IcPartyMemberFormDTO formDTO) { + if(StringUtils.isBlank(formDTO.getOrgId()) && StringUtils.isBlank(formDTO.getAgencyId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + return new Result>().ok(icPartyMemberService.partyMemberAgeStatistics(formDTO)); + } + + + @RequestMapping(value = "downloadTemplate", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("党员信息导入模板", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/ic_party_member.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordController.java new file mode 100644 index 0000000000..f3b91d27dd --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordController.java @@ -0,0 +1,85 @@ +package com.epmet.modules.partymember.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.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.modules.partymember.excel.IcPartyMemberPayRecordExcel; +import com.epmet.modules.partymember.service.IcPartyMemberPayRecordService; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@RestController +@RequestMapping("icPartyMemberPayRecord") +public class IcPartyMemberPayRecordController { + + @Autowired + private IcPartyMemberPayRecordService icPartyMemberPayRecordService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ +// PageData page = icPartyMemberPayRecordService.page(params); + PageData page = icPartyMemberPayRecordService.getPhrasePage(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcPartyMemberPayRecordDTO data = icPartyMemberPayRecordService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberPayRecordDTO dto){ + dto.setCustomerId(tokenDto.getCustomerId()); + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + return icPartyMemberPayRecordService.save(dto); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberPayRecordDTO dto){ + dto.setCustomerId(tokenDto.getCustomerId()); + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + return icPartyMemberPayRecordService.update(dto); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icPartyMemberPayRecordService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = icPartyMemberPayRecordService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, IcPartyMemberPayRecordExcel.class); + } + + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordDetailController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordDetailController.java new file mode 100644 index 0000000000..4c095ac243 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordDetailController.java @@ -0,0 +1,137 @@ +package com.epmet.modules.partymember.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.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.partymember.excel.IcPartyMemberPayRecordDetailExcel; +import com.epmet.modules.partymember.service.IcPartyMemberPayRecordDetailService; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO; +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.PrintWriter; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Slf4j +@RestController +@RequestMapping("icPartyMemberPayRecordDetail") +public class IcPartyMemberPayRecordDetailController { + + @Autowired + private IcPartyMemberPayRecordDetailService icPartyMemberPayRecordDetailService; + + @RequestMapping("page") + public Result> page(@LoginUser TokenDto tokenDto, @RequestParam Map params){ + params.put("customerId",tokenDto.getCustomerId()); +// PageData page = icPartyMemberPayRecordDetailService.page(params); + PageData page = icPartyMemberPayRecordDetailService.getPhrasePage(params); + return new Result>().ok(page); + } + + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcPartyMemberPayRecordDetailDTO data = icPartyMemberPayRecordDetailService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcPartyMemberPayRecordDetailDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icPartyMemberPayRecordDetailService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcPartyMemberPayRecordDetailDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icPartyMemberPayRecordDetailService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icPartyMemberPayRecordDetailService.delete(ids); + return new Result(); + } + + @PostMapping("export") + public void export(@LoginUser TokenDto tokenDto, @RequestBody Map params, HttpServletResponse response) throws Exception { +// List list = icPartyMemberPayRecordDetailService.list(params); +// ExcelUtils.exportExcelToTarget(response, null, list, IcPartyMemberPayRecordDetailExcel.class); + + params.put("customerId",tokenDto.getCustomerId()); + params.put("isPage",false); + params.put("pageSize",NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "缴费记录.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyMemberPayRecordDetailExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = icPartyMemberPayRecordDetailService.getPhrasePage(params); + List list = ConvertUtils.sourceToTarget(page.getList(), IcPartyMemberPayRecordDetailExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); +// formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == NumConstant.TEN_THOUSAND); + } 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/partymember/controller/IcPartyMemberPointController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPointController.java new file mode 100644 index 0000000000..07af853ce1 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPointController.java @@ -0,0 +1,186 @@ +package com.epmet.modules.partymember.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.dto.IcFollowUpRecordDTO; +import com.epmet.dto.result.IcMoveInListResultDTO; +import com.epmet.dto.result.IcVaccineListResultDTO; +import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity; +import com.epmet.modules.partymember.excel.IcPartyMemberExcel; +import com.epmet.modules.partymember.excel.IcPartyMemberPointExcel; +import com.epmet.modules.partymember.service.IcPartyMemberPointService; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPointDTO; +import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointEchoFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointListFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO; +import jdk.nashorn.internal.parser.Token; +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.PrintWriter; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + + +/** + * 党员量化积分表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@RestController +@RequestMapping("icPartyMemberPoint") +@Slf4j +public class IcPartyMemberPointController { + + @Autowired + private IcPartyMemberPointService icPartyMemberPointService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params) { + PageData page = icPartyMemberPointService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET}) + public Result get(@PathVariable("id") String id) { + IcPartyMemberPointDTO data = icPartyMemberPointService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcPartyMemberPointDTO dto, @LoginUser TokenDto tokenDto) { + dto.setCustomerId(tokenDto.getCustomerId()); + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icPartyMemberPointService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcPartyMemberPointDTO dto, @LoginUser TokenDto tokenDto) { + dto.setCustomerId(tokenDto.getCustomerId()); + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icPartyMemberPointService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids) { + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icPartyMemberPointService.delete(ids); + return new Result(); + } + + /** + * 量化积分统计导出 + * + * @param formDto + * @param response + * @return void + * @author LZN + * @date 2022/5/24 14:26 + */ + @PostMapping("export") + public void export(@RequestBody PartyMemberPointListFormDTO formDto, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception { + + formDto.setIsPage(false); + formDto.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + + try { + String fileName = "lhjf.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyMemberPointExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("量化积分").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = icPartyMemberPointService.getExport(formDto, tokenDto); + List list = ConvertUtils.sourceToTarget(page.getList(), IcPartyMemberPointExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); + formDto.setPageNo(formDto.getPageNo() + NumConstant.ONE); + } while (CollectionUtils.isNotEmpty(page.getList()) && page.getList().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(); + } + } + } + + /** + * 量化积分统计 + * + * @param form + * @return com.epmet.commons.tools.utils.Result> + * @author LZN + * @date 2022/5/17 17:19 + */ + @PostMapping("getList") + public Result> getList(@RequestBody PartyMemberPointListFormDTO form, @LoginUser TokenDto tokenDto) { + PageData dto = icPartyMemberPointService.getList(form, tokenDto); + return new Result>().ok(dto); + } + + /** + * 量化积分统计回显 + * + * @param form + * @return com.epmet.commons.tools.utils.Result + * @author LZN + * @date 2022/5/18 18:18 + */ + @PostMapping("echoPartyMemberPoint") + public Result getEchoPartyMemberPoint(@RequestBody PartyMemberPointEchoFormDTO form, @LoginUser TokenDto tokenDto) { + ValidatorUtils.validateEntity(form); + List dto = icPartyMemberPointService.getEchoPartyMemberPoint(form, tokenDto.getCustomerId()); + return new Result().ok(dto); + } + +} 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 new file mode 100644 index 0000000000..00ea198d81 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java @@ -0,0 +1,77 @@ +package com.epmet.modules.partymember.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +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.IcPartyMemberResultDTO; +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-05-17 + */ +@Mapper +public interface IcPartyMemberDao extends BaseDao { + /** + * 党员列表 + * + * @Param formDTO + * @Return {@link List< IcPartyMemberResultDTO>} + * @Author zhaoqifeng + * @Date 2022/5/18 17:01 + */ + List selectList(IcPartyMemberFromDTO formDTO); + + /** + * @describe: 查询该组织下的党员信息 + * @author wangtong + * @date 2022/5/19 16:20 + * @params [orgId] + * @return java.util.List + */ + List selectAllByOrgId(@Param("orgId") String orgId); + + /** + * @describe: 统计分析-党员学历统计 + * @author wangtong + * @date 2022/5/23 10:32 + * @params [orgId] + * @return java.util.List + */ + List getPartyMemberEducationStatistics(@Param("agencyId") String agencyId, @Param("orgId") String orgId); + + /** + * @describe: 党员年龄列表 + * @author wangtong + * @date 2022/5/23 11:06 + * @params [orgId, code] + * @return java.util.List + */ + List getPartyMemberAgeList(@Param("agencyId") String agencyId,@Param("orgId") String orgId,@Param("code") String code); + + /** + * @describe: 党员学历列表 + * @author wangtong + * @date 2022/5/23 13:40 + * @params [orgId, code] + * @return java.util.List + */ + List getPartyMemberEducationList(@Param("agencyId") String agencyId,@Param("orgId") String orgId,@Param("code") String code); + + /** + * @describe: 党员年龄范围统计 + * @author wangtong + * @date 2022/5/23 13:42 + * @params [orgId] + * @return java.util.List + */ + List getPartyMemberAgeStatistics(@Param("agencyId") String agencyId,@Param("orgId") String orgId); +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDao.java new file mode 100644 index 0000000000..4e1ab1d607 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDao.java @@ -0,0 +1,22 @@ +package com.epmet.modules.partymember.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordEntity; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Mapper +public interface IcPartyMemberPayRecordDao extends BaseDao { + + List selectListInfo(Map params); + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDetailDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDetailDao.java new file mode 100644 index 0000000000..3922fc9718 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDetailDao.java @@ -0,0 +1,30 @@ +package com.epmet.modules.partymember.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordDetailEntity; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO; +import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberPayRecordDetailFormDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Mapper +public interface IcPartyMemberPayRecordDetailDao extends BaseDao { + + List selectListInfo(Map params); + + List getpayedList(@Param("monthList") List monthList, + @Param("partyMemberId") String partyMemberId, + @Param("recordId") String recordId); + + void deletePayDetailByRecordId(@Param("recordId") String recordId); + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPointDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPointDao.java new file mode 100644 index 0000000000..f7a36ea435 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPointDao.java @@ -0,0 +1,45 @@ +package com.epmet.modules.partymember.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; + +import com.epmet.commons.tools.page.PageData; +import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity; +import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO; +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-05-17 + */ +@Mapper +public interface IcPartyMemberPointDao extends BaseDao { + + List getList(@Param("idCard") String idCard, + @Param("mobile") String mobile, + @Param("name") String name, + @Param("orgId") String orgId, + @Param("year") String year, + @Param("customerId") String customerId); + + List getListCount(@Param("year") String year, + @Param("customerId") String customerId); + + List getEchoPartyMemberPoint(@Param("partyMemberId") String partyMemberId, + @Param("quarter") String quarter, + @Param("year") String year, + @Param("customerId") String customerId); + + List getExport(@Param("form") PartyMemberExportFormDTO form, + @Param("customerId") String customerId); + + void updateMember(@Param("partyMemberId") String partyMemberId, @Param("totalScore") Integer totalScore); +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberEntity.java new file mode 100644 index 0000000000..1f6a367d80 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberEntity.java @@ -0,0 +1,146 @@ +package com.epmet.modules.partymember.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-05-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_member") +public class IcPartyMemberEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 对应的ic_resi_user主表Id + */ + private String icResiUser; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 地址 + */ + private String address; + + /** + * 入党时间 + */ + private String rdsj; + + /** + * 所属支部 + */ + private String sszb; + + /** + * 是否流动党员 + */ + private String isLd; + + /** + * 流动党员活动证号 + */ + private String ldzh; + + /** + * 职务 + */ + private String partyZw; + + /** + * 是否退休 + */ + private String isTx; + + /** + * 是否党员中心户 + */ + private String isDyzxh; + + /** + * 是否免学习0否,1是 + */ + private String isMxx; + + /** + * 文化程度【字典表】 + */ + private String culture; + + /** + * 志愿者类型,逗号隔开 + */ + private String volunteerCategory; + + /** + * 备注 + */ + private String remark; + + /** + * 预留字段1 + */ + private Integer totalScore; + + /** + * 预留字段2 + */ + private String field2; + + /** + * 预留字段3 + */ + private String field3; + + /** + * 预留字段4 + */ + private String field4; + + /** + * 预留字段5 + */ + private String field5; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPayRecordDetailEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPayRecordDetailEntity.java new file mode 100644 index 0000000000..62830675bd --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPayRecordDetailEntity.java @@ -0,0 +1,55 @@ +package com.epmet.modules.partymember.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_member_pay_record_detail") +public class IcPartyMemberPayRecordDetailEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党员ID + */ + private String partyMemberId; + + /** + * 党员缴费记录表ID + */ + private String recordId; + + /** + * 缴费年度 + */ + private String year; + + /** + * 缴费月份 + */ + private String month; + + /** + * 缴费金额 + */ + private BigDecimal money; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPayRecordEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPayRecordEntity.java new file mode 100644 index 0000000000..714fba69f6 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPayRecordEntity.java @@ -0,0 +1,55 @@ +package com.epmet.modules.partymember.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_member_pay_record") +public class IcPartyMemberPayRecordEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id (customer.id) + */ + private String customerId; + + /** + * 党员ID + */ + private String partyMemberId; + + /** + * 缴费日期 + */ + private String payDate; + + /** + * 缴费金额 + */ + private BigDecimal money; + + /** + * 缴费开始时间 + */ + private String startDate; + + /** + * 缴费结束时间 + */ + private String endDate; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPointEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPointEntity.java new file mode 100644 index 0000000000..15890c9101 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPointEntity.java @@ -0,0 +1,104 @@ +package com.epmet.modules.partymember.entity; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +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-05-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_member_point") +public class IcPartyMemberPointEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id (customer.id) + */ + @ExcelIgnore + private String customerId; + + /** + * 党员ID + */ + @ExcelIgnore + private String partyMemberId; + + /** + * 年 + */ + @ExcelProperty(index = 1,value = "年份") + private String year; + + /** + * 季度 + */ + @ExcelProperty(index = 2,value = "季度") + private String quarter; + + /** + * 基础积分分值 + */ + @ExcelProperty(index = 3,value = "基础积分分值") + private Integer basePoint; + + /** + * 基础积分选项 英文逗号隔开 + */ + @ExcelIgnore + private String baseOptions; + + /** + * 民主评议积分分值 + */ + @ExcelProperty(index = 4,value = "民主评议积分分值") + private Integer reviewPoint; + + /** + * 民主评议积分选项 + */ + @ExcelIgnore + private String reviewOptions; + + /** + * 激励积分分值 + */ + @ExcelProperty(index = 5,value = "激励积分分值") + private Integer inspirePoint; + + /** + * 激励积分选项 + */ + @ExcelIgnore + private String inspireOptions; + + /** + * 警示扣分分值 + */ + @ExcelProperty(index = 6,value = "警示扣分分值") + private Integer warnPoint; + + /** + * 警示扣分选项 + */ + @ExcelIgnore + private String warnOptions; + + /** + * 总分 + */ + @ExcelProperty(index = 7,value = "总分") + private Integer totalScore; + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java new file mode 100644 index 0000000000..98b1ab122e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java @@ -0,0 +1,84 @@ +package com.epmet.modules.partymember.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; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class IcPartyMemberExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ColumnWidth(20) + @ExcelProperty(value = "姓名",order = 2) + private String name; + + @ColumnWidth(20) + @ExcelProperty(value = "身份证号",order = 3) + private String idCard; + + @ColumnWidth(20) + @ExcelProperty(value = "手机号",order = 4) + private String mobile; + + @ColumnWidth(20) + @ExcelProperty(value = "入党时间",order = 5) + private String rdsj; + + @ColumnWidth(20) + @ExcelProperty(value = "所属党组织",order = 6) + private String sszb; + + @ColumnWidth(20) + @ExcelProperty(value = "流动党员",order = 7) + private String isLd; + + @ColumnWidth(20) + @ExcelProperty(value = "流动党员证号",order = 8) + private String ldzh; + + @ColumnWidth(20) + @ExcelProperty(value = "职务",order = 9) + private String partyZw; + + @ColumnWidth(20) + @ExcelProperty(value = "地址",order = 10) + private String address; + + @ColumnWidth(20) + @ExcelProperty(value = "是否缴费",order = 11) + private String isPay; + + @ColumnWidth(20) + @ExcelProperty(value = "最近一次缴纳党费时间",order = 12) + private String payDate; + + @ColumnWidth(20) + @ExcelProperty(value = "文化程度",order = 13) + private String culture; + + @ColumnWidth(20) + @ExcelProperty(value = "量化积分",order = 14) + private String point; + + @ColumnWidth(20) + @ExcelProperty(value = "志愿者类别",order = 15) + private String volunteerCategory; + + @ColumnWidth(20) + @ExcelProperty(value = "备注",order = 16) + private String remark; + + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberImportExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberImportExcel.java new file mode 100644 index 0000000000..ac937ae045 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberImportExcel.java @@ -0,0 +1,81 @@ +package com.epmet.modules.partymember.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * 核酸检测信息导入excel数据 + * @author Administrator + */ +@Data +public class IcPartyMemberImportExcel { + + @NotBlank(message = "所属党组织为必填项") + @ExcelProperty("所属党组织") + private String sszb; + + @NotBlank(message = "姓名为必填项") + @ExcelProperty("姓名") + private String name; + + @NotBlank(message = "手机号为必填项") + @ExcelProperty("手机号") + @Length(max = 15, message = "手机号长度不正确,应小于15位") + private String mobile; + + @NotBlank(message = "身份证号为必填项") + @ExcelProperty("身份证号") + @Length(max = 18, message = "身份证号长度不正确,应小于18位") + private String idCard; + + @ExcelProperty("地址") + private String address; + + @ExcelProperty("入党时间") + private String rdsj; + + @ExcelProperty("流动党员") + private String isLd; + + @ExcelProperty("流动党员证号") + private String ldzh; + + @ExcelProperty("党员中心户") + private String isDyzxh; + + @ExcelProperty("免学习") + private String isMxx; + + @ExcelProperty("职务") + private String partyZw; + + @ExcelProperty("文化程度") + private String culture; + + @ExcelProperty("备注") + private String remark; + + @Data + public static class RowRemarkMessage { + + @ExcelProperty("姓名") + @ColumnWidth(20) + private String name; + + @ExcelProperty("手机号") + @ColumnWidth(20) + private String mobile; + + @ColumnWidth(20) + @ExcelProperty("身份证号") + private String idCard; + + @ColumnWidth(60) + @ExcelProperty("错误信息") + private String errorInfo; + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPayRecordDetailExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPayRecordDetailExcel.java new file mode 100644 index 0000000000..f4ae8dc8c5 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPayRecordDetailExcel.java @@ -0,0 +1,84 @@ +package com.epmet.modules.partymember.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberPayRecordDetailExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ColumnWidth(20) + @ExcelProperty(value = "所属党组织",order = 2) + private String orgName; + + @ColumnWidth(20) + @ExcelProperty(value = "姓名",order = 3) + private String name; + + @ColumnWidth(20) + @ExcelProperty(value = "身份证号",order = 4) + private String idCard; + + @ColumnWidth(20) + @ExcelProperty(value = "手机号",order = 5) + private String mobile; + + @ColumnWidth(20) + @ExcelProperty(value = "缴费次数",order = 6) + private String times; + + @ColumnWidth(20) + @ExcelProperty(value = "缴费金额",order = 7) + private BigDecimal money; + + @ColumnWidth(20) + @ExcelProperty(value = "备注",order = 8) + private String remark; + +// @Excel(name = "客户Id (customer.id)") +// private String customerId; +// +// @Excel(name = "党员ID") +// private String partyMemberId; +// +// @Excel(name = "党员缴费记录表ID") +// private String recordId; +// +// @Excel(name = "缴费年度") +// private String year; +// +// @Excel(name = "缴费季度") +// private String quarter; + +// @Excel(name = "删除标识:0.未删除 1.已删除") +// private Integer delFlag; +// +// @Excel(name = "乐观锁") +// private Integer revision; +// +// @Excel(name = "创建人") +// private String createdBy; +// +// @Excel(name = "创建时间") +// private Date createdTime; +// +// @Excel(name = "更新人") +// private String updatedBy; +// +// @Excel(name = "更新时间") +// private Date updatedTime; + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPayRecordExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPayRecordExcel.java new file mode 100644 index 0000000000..134cd13384 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPayRecordExcel.java @@ -0,0 +1,58 @@ +package com.epmet.modules.partymember.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberPayRecordExcel { + + @Excel(name = "唯一标识") + private String id; + + @Excel(name = "客户Id (customer.id)") + private String customerId; + + @Excel(name = "党员ID") + private String partyMemberId; + + @Excel(name = "缴费日期") + private String payDate; + + @Excel(name = "缴费金额") + private BigDecimal money; + + @Excel(name = "缴费开始时间") + private String startDate; + + @Excel(name = "缴费结束时间") + private String endDate; + + @Excel(name = "删除标识:0.未删除 1.已删除") + private Integer delFlag; + + @Excel(name = "乐观锁") + private Integer revision; + + @Excel(name = "创建人") + private String createdBy; + + @Excel(name = "创建时间") + private Date createdTime; + + @Excel(name = "更新人") + private String updatedBy; + + @Excel(name = "更新时间") + private Date updatedTime; + + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPointExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPointExcel.java new file mode 100644 index 0000000000..f042565a97 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPointExcel.java @@ -0,0 +1,124 @@ +package com.epmet.modules.partymember.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import kotlin.ExperimentalUnsignedTypes; +import lombok.Data; + +import javax.validation.Valid; +import java.util.Date; + +/** + * 党员量化积分表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class IcPartyMemberPointExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ExcelIgnore + private String id; + + @ExcelIgnore + private String customerId; + + @ColumnWidth(20) + @ExcelProperty(value = "党员ID",order = 2) + private String partyMemberId; + + /** + * 所属党组织 + */ + @ColumnWidth(20) + @ExcelProperty(value = "所属党组织",order = 3) + private String partyOrg; + + /** + * 姓名 + */ + @ColumnWidth(20) + @ExcelProperty(value = "姓名",order = 4) + private String name; + + /** + * 手机号 + */ + @ColumnWidth(20) + @ExcelProperty(value = "手机号",order = 5) + private String mobile; + + /** + * 身份证号 + */ + @ColumnWidth(20) + @ExcelProperty(value = "身份证号",order = 6) + private String idCard; + + @ColumnWidth(20) + @ExcelProperty(value = "年份",order = 7) + private String year; + + @ExcelIgnore + private String quarter; + + @ColumnWidth(20) + @ExcelProperty(value = "基础积分分值",order = 8) + private Integer basePoint; + + @ExcelIgnore + private String baseOptions; + + @ColumnWidth(20) + @ExcelProperty(value = "民主评议积分分值",order = 9) + private Integer reviewPoint; + + @ExcelIgnore + private String reviewOptions; + + @ColumnWidth(20) + @ExcelProperty(value = "激励积分分值",order = 10) + private Integer inspirePoint; + + @ExcelIgnore + private String inspireOptions; + + @ColumnWidth(20) + @ExcelProperty(value = "警示扣分分值",order = 11) + private Integer warnPoint; + + @ExcelIgnore + private String warnOptions; + + @ColumnWidth(20) + @ExcelProperty(value = "总分" ,order = 12) + private Integer totalScore; + + + + @ExcelIgnore + private Integer delFlag; + + @ExcelIgnore + private Integer revision; + + @ExcelIgnore + private String createdBy; + + @ExcelIgnore + private Date createdTime; + + @ExcelIgnore + private String updatedBy; + + @ExcelIgnore + private Date updatedTime; + + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/handler/IcPartyMemberImportListener.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/handler/IcPartyMemberImportListener.java new file mode 100644 index 0000000000..108b42a8ab --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/handler/IcPartyMemberImportListener.java @@ -0,0 +1,130 @@ +package com.epmet.modules.partymember.excel.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.exception.ValidateException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.modules.partymember.entity.IcPartyMemberEntity; +import com.epmet.modules.partymember.excel.IcPartyMemberImportExcel; +import com.epmet.modules.partymember.service.impl.IcPartyMemberServiceImpl; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 党员excel导入监听器 + * @author Administrator + */ +@Data +@Slf4j +public class IcPartyMemberImportListener implements ReadListener { + + /** + * 最大条数阈值 + */ + public static final int MAX_THRESHOLD = 200; + + private String currentUserId; + /** + * 当前组织ID + */ + private String currentAgencyId; + + private String currentAgencyPids; + + /** + * 数据 + */ + private List datas = new ArrayList<>(); + + /** + * 错误项列表 + */ + private List errorRows = new ArrayList<>(); + /** + * 其他被标记出来的列表列表 + */ + private List otherRows = new ArrayList<>(); + + private IcPartyMemberServiceImpl icPartyMemberService; + + public IcPartyMemberImportListener(String currentUserId, IcPartyMemberServiceImpl icPartyMemberService) { + this.currentUserId = currentUserId; + this.icPartyMemberService = icPartyMemberService; + } + + @Override + public void invoke(IcPartyMemberImportExcel data, AnalysisContext context) { + + try { + // 先校验数据 + ValidatorUtils.validateEntity(data); + if (StringUtils.isNotBlank(data.getSszb())) { + data.setSszb(data.getSszb().trim()); + } + if (StringUtils.isNotBlank(data.getName())) { + data.setName(data.getName().trim()); + } + if (StringUtils.isNotBlank(data.getMobile())) { + data.setMobile(data.getMobile().trim()); + } + if (StringUtils.isNotBlank(data.getIdCard())) { + data.setIdCard(data.getIdCard().trim()); + } + + IcPartyMemberEntity icPartyMemberEntity = ConvertUtils.sourceToTarget(data, IcPartyMemberEntity.class); + datas.add(icPartyMemberEntity); + + if (datas.size() == MAX_THRESHOLD) { + execPersist(); + } + } catch (Exception e) { + String errorMsg = null; + if (e instanceof ValidateException) { + errorMsg = ((ValidateException) e).getMsg(); + } else { + errorMsg = "未知错误"; + log.error("【党员信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); + } + + IcPartyMemberImportExcel.RowRemarkMessage errorRow = new IcPartyMemberImportExcel.RowRemarkMessage(); + errorRow.setName(data.getName()); + errorRow.setMobile(data.getMobile()); + errorRow.setIdCard(data.getIdCard()); + errorRow.setErrorInfo(errorMsg); + errorRows.add(errorRow); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + // 最后几条达不到阈值,这里必须再调用一次 + execPersist(); + } + + /** + * 执行持久化 + */ + private void execPersist() { + try { + if (datas != null && datas.size() > 0) { + icPartyMemberService.batchPersist(datas, this); + } + } finally { + datas.clear(); + } + } + + /** + * 获取错误行 + * @return + */ + public List getErrorRows() { + return errorRows; + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPayRecordDetailRedis.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPayRecordDetailRedis.java new file mode 100644 index 0000000000..fb7511bcf5 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPayRecordDetailRedis.java @@ -0,0 +1,30 @@ +package com.epmet.modules.partymember.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Component +public class IcPartyMemberPayRecordDetailRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPayRecordRedis.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPayRecordRedis.java new file mode 100644 index 0000000000..46a4a5c1e3 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPayRecordRedis.java @@ -0,0 +1,30 @@ +package com.epmet.modules.partymember.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Component +public class IcPartyMemberPayRecordRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPointRedis.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPointRedis.java new file mode 100644 index 0000000000..18f699d28f --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/IcPartyMemberPointRedis.java @@ -0,0 +1,30 @@ +package com.epmet.modules.partymember.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 党员量化积分表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Component +public class IcPartyMemberPointRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordDetailService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordDetailService.java new file mode 100644 index 0000000000..afd86a9c5a --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordDetailService.java @@ -0,0 +1,89 @@ +package com.epmet.modules.partymember.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordDetailEntity; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO; +import com.epmet.resi.partymember.dto.partymember.IcPartymemberStyleDTO; +import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberPayRecordDetailFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberStyleFormDTO; + +import java.util.List; +import java.util.Map; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +public interface IcPartyMemberPayRecordDetailService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-05-17 + */ + PageData page(Map params); + + /** + * 分页条件查询 + * @param params + * @return + */ + PageData getPhrasePage(Map params); + + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPartyMemberPayRecordDetailDTO + * @author generator + * @date 2022-05-17 + */ + IcPartyMemberPayRecordDetailDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + void save(IcPartyMemberPayRecordDetailDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + void update(IcPartyMemberPayRecordDetailDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-17 + */ + void delete(String[] ids); +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordService.java new file mode 100644 index 0000000000..b5ec5fa0f0 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordService.java @@ -0,0 +1,87 @@ +package com.epmet.modules.partymember.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.modules.partymember.entity.IcPartyMemberPayRecordEntity; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO; + +import java.util.List; +import java.util.Map; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +public interface IcPartyMemberPayRecordService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-05-17 + */ + PageData page(Map params); + + /** + * 分页条件查询 + * @param params + * @return + */ + PageData getPhrasePage(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPartyMemberPayRecordDTO + * @author generator + * @date 2022-05-17 + */ + IcPartyMemberPayRecordDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + Result save(IcPartyMemberPayRecordDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + Result update(IcPartyMemberPayRecordDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-17 + */ + void delete(String[] ids); +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPointService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPointService.java new file mode 100644 index 0000000000..701ce482aa --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPointService.java @@ -0,0 +1,117 @@ +package com.epmet.modules.partymember.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.modules.partymember.entity.IcPartyMemberPointEntity; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPointDTO; +import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointEchoFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointListFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO; + + +import java.util.List; +import java.util.Map; + +/** + * 党员量化积分表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +public interface IcPartyMemberPointService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-05-17 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPartyMemberPointDTO + * @author generator + * @date 2022-05-17 + */ + IcPartyMemberPointDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + void save(IcPartyMemberPointDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + void update(IcPartyMemberPointDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-17 + */ + void delete(String[] ids); + + /** + * 量化积分统计 + * + * @param form + * @return java.util.List + * @author LZN + * @date 2022/5/17 17:19 + */ + PageData getList(PartyMemberPointListFormDTO form, TokenDto tokenDto); + + /** + * 量化积分统计回显 + * + * @param form + * @return java.util.List + * @author LZN + * @date 2022/5/18 18:18 + */ + List getEchoPartyMemberPoint(PartyMemberPointEchoFormDTO form, String customerId); + + /** + * 量化积分统计导出 + * + * @param form + * @return com.epmet.commons.tools.page.PageData + * @author LZN + * @date 2022/5/24 14:26 + */ + PageData getExport(PartyMemberPointListFormDTO form, TokenDto tokenDto); +} \ No newline at end of file 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 new file mode 100644 index 0000000000..c0ea774846 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java @@ -0,0 +1,140 @@ +package com.epmet.modules.partymember.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dto.form.IcPartyMemberFormDTO; +import com.epmet.dto.form.IcPartyMemberListFormDTO; +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.IcPartyMemberDTO; +import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberFromDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; + +import java.nio.file.Path; +import java.util.List; +import java.util.Map; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +public interface IcPartyMemberService extends BaseService { + + /** + * 默认分页 + * + * @param formDTO + * @return PageData + * @author generator + * @date 2022-05-17 + */ + PageData page(TokenDto tokenDto, IcPartyMemberFromDTO formDTO); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPartyMemberDTO + * @author generator + * @date 2022-05-17 + */ + IcPartyMemberDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + String save(IcPartyMemberDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-17 + */ + void update(IcPartyMemberDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-17 + */ + void delete(String[] ids); + + /** + * 党员信息同步 + * + * @Param dto + * @Return + * @Author zhaoqifeng + * @Date 2022/5/18 10:16 + */ + void icPartyMemberSync(IcPartyMemberDTO dto); + + /** + * @describe: 统计分析-党员学历统计 + * @author wangtong + * @date 2022/5/23 10:06 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + List partyMemberEducationStatistics(IcPartyMemberFormDTO formDTO); + + /** + * @describe: 统计分析-党员年龄列表 + * @author wangtong + * @date 2022/5/23 10:20 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + PageData getPartyMemberAgeList(IcPartyMemberListFormDTO formDTO); + + /** + * @describe: 统计分析-党员学历列表 + * @author wangtong + * @date 2022/5/23 10:19 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + PageData getPartyMemberEducationList(IcPartyMemberListFormDTO formDTO); + + /** + * @describe: 统计分析-党员年龄范围统计 + * @author wangtong + * @date 2022/5/23 10:19 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + List partyMemberAgeStatistics(IcPartyMemberFormDTO formDTO); + + + /** + * 执行Excel导入 + * @param filePath + */ + void execAsyncExcelImport(Path filePath, String importTaskId); +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordDetailServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordDetailServiceImpl.java new file mode 100644 index 0000000000..fb1d15b57e --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordDetailServiceImpl.java @@ -0,0 +1,111 @@ +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.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.StrConstant; +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.constant.FieldConstant; +import com.epmet.modules.partymember.dao.IcPartyMemberPayRecordDetailDao; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordDetailEntity; +import com.epmet.modules.partymember.entity.IcPartymemberStyleCategoryDictEntity; +import com.epmet.modules.partymember.entity.IcPartymemberStyleEntity; +import com.epmet.modules.partymember.redis.IcPartyMemberPayRecordDetailRedis; +import com.epmet.modules.partymember.service.IcPartyMemberPayRecordDetailService; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO; +import com.epmet.resi.partymember.dto.partymember.IcPartymemberStyleDTO; +import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberPayRecordDetailFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberStyleFormDTO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 党员缴费记录明细表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Service +public class IcPartyMemberPayRecordDetailServiceImpl extends BaseServiceImpl implements IcPartyMemberPayRecordDetailService { + + @Autowired + private IcPartyMemberPayRecordDetailRedis icPartyMemberPayRecordDetailRedis; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPartyMemberPayRecordDetailDTO.class); + } + + /** + * 条件查询 + * @param params + * @return + */ + @Override + public PageData getPhrasePage(Map params) { + IPage page = getPage(params); + List list = baseDao.selectListInfo(params); + return new PageData<>(list, page.getTotal()); + } + + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPartyMemberPayRecordDetailDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPartyMemberPayRecordDetailDTO get(String id) { + IcPartyMemberPayRecordDetailEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPartyMemberPayRecordDetailDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPartyMemberPayRecordDetailDTO dto) { + IcPartyMemberPayRecordDetailEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPayRecordDetailEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPartyMemberPayRecordDetailDTO dto) { + IcPartyMemberPayRecordDetailEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPayRecordDetailEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordServiceImpl.java new file mode 100644 index 0000000000..bbff39f124 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordServiceImpl.java @@ -0,0 +1,212 @@ +package com.epmet.modules.partymember.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.exception.RenException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.modules.partymember.dao.IcPartyMemberPayRecordDao; +import com.epmet.modules.partymember.dao.IcPartyMemberPayRecordDetailDao; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordDetailEntity; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordEntity; +import com.epmet.modules.partymember.redis.IcPartyMemberPayRecordRedis; +import com.epmet.modules.partymember.service.IcPartyMemberPayRecordDetailService; +import com.epmet.modules.partymember.service.IcPartyMemberPayRecordService; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO; +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.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 党员缴费记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Service +public class IcPartyMemberPayRecordServiceImpl extends BaseServiceImpl implements IcPartyMemberPayRecordService { + + @Autowired + private IcPartyMemberPayRecordRedis icPartyMemberPayRecordRedis; + + @Autowired + private IcPartyMemberPayRecordDetailService icPartyMemberPayRecordDetailService; + + @Autowired + private IcPartyMemberPayRecordDetailDao icPartyMemberPayRecordDetailDao; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPartyMemberPayRecordDTO.class); + } + + /** + * 条件查询 + * @param params + * @return + */ + @Override + public PageData getPhrasePage(Map params) { + String partyMemberId = params.get("partyMemberId") == null ? "" : params.get("partyMemberId").toString(); + if(StringUtils.isBlank(partyMemberId)){ + throw new RenException("党员ID不能为空"); + } + IPage page = getPage(params); + List list = baseDao.selectListInfo(params); + return new PageData<>(list, page.getTotal()); + } + + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPartyMemberPayRecordDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPartyMemberPayRecordDTO get(String id) { + IcPartyMemberPayRecordEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPartyMemberPayRecordDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result save(IcPartyMemberPayRecordDTO dto) { + // 根据起始时间转月份列表 + List monthList = getMonthList(dto.getStartDate(),dto.getEndDate()); + + // 校验是否有月份已缴费 + List payedList = icPartyMemberPayRecordDetailDao.getpayedList(monthList,dto.getPartyMemberId(),""); + if(payedList.size() > 0){ + return new Result().error("存在已缴费月份,请重新录入"); + } + + // 保存党员缴费记录表信息 + IcPartyMemberPayRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPayRecordEntity.class); + insert(entity); + + // 保存党员缴费记录明细 + saveDetailInfo(monthList,entity); + + return new Result(); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result update(IcPartyMemberPayRecordDTO dto) { + // 根据起始时间转月份列表 + List monthList = getMonthList(dto.getStartDate(),dto.getEndDate()); + + // 校验本次修改是否有月份已缴费(除该主键下的月份) + List payedList = icPartyMemberPayRecordDetailDao.getpayedList(monthList,dto.getPartyMemberId(),dto.getId()); + if(payedList.size() > 0){ + return new Result().error("存在已缴费月份,请重新录入"); + } + + // 更新党员缴费记录表信息 + IcPartyMemberPayRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPayRecordEntity.class); + updateById(entity); + + // 清空该记录表主键下的党员缴费记录明细 + icPartyMemberPayRecordDetailDao.deletePayDetailByRecordId(dto.getId()); + + // 保存党员缴费记录明细 + saveDetailInfo(monthList,entity); + + return new Result(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + + // 删除党员缴费记录明细 + icPartyMemberPayRecordDetailDao.deletePayDetailByRecordId(ids[0]); + } + + /** + * 根据起始时间获取该时间段所包含的所有月份,返回list + * + * @param startTime + * @param endTime + * @return + */ + public List getMonthList(String startTime, String endTime){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + // 声明保存日期集合 + List list = new ArrayList(); + try { + // 转化成日期类型 + Date startDate = sdf.parse(startTime); + Date endDate = sdf.parse(endTime); + + //用Calendar 进行日期比较判断 + Calendar calendar = Calendar.getInstance(); + while (startDate.getTime()<=endDate.getTime()){ + // 把日期添加到集合 + list.add(sdf.format(startDate)); + // 设置日期 + calendar.setTime(startDate); + //把日期增加一天 + calendar.add(Calendar.MONTH, 1); + // 获取增加后的日期 + startDate=calendar.getTime(); + } + } catch (ParseException e) { + e.printStackTrace(); + } + return list; + + } + + public void saveDetailInfo(List monthList,IcPartyMemberPayRecordEntity entity){ + // 组装党员缴费记录明细实体 + BigDecimal money = entity.getMoney(); + // 求本次缴费的月份平均缴费金额 + BigDecimal moneyDivide = money.divide(new BigDecimal(monthList.size()),2,BigDecimal.ROUND_HALF_UP); + List detailList = new ArrayList(); + for(int i = 0 ; i < monthList.size() ; i++){ + IcPartyMemberPayRecordDetailEntity detailEntity = new IcPartyMemberPayRecordDetailEntity(); + detailEntity.setCustomerId(entity.getCustomerId()); + detailEntity.setRecordId(entity.getId()); + detailEntity.setMoney(moneyDivide); + detailEntity.setPartyMemberId(entity.getPartyMemberId()); + String year = monthList.get(i).substring(0,4); + String month = monthList.get(i).substring(5,7); + detailEntity.setYear(year); + detailEntity.setMonth(month); + detailList.add(detailEntity); + } + + // 保存党员缴费记录明细表信息 + icPartyMemberPayRecordDetailService.insertBatch(detailList); + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPointServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPointServiceImpl.java new file mode 100644 index 0000000000..b5e7471213 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPointServiceImpl.java @@ -0,0 +1,172 @@ +package com.epmet.modules.partymember.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.NumConstant; +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.constant.FieldConstant; + +import com.epmet.modules.partymember.dao.IcPartyMemberPointDao; +import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity; +import com.epmet.modules.partymember.redis.IcPartyMemberPointRedis; +import com.epmet.modules.partymember.service.IcPartyMemberPointService; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPointDTO; +import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointEchoFormDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointListFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import jdk.nashorn.internal.parser.Token; +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.sql.Time; +import java.time.Year; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +/** + * 党员量化积分表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Service +public class IcPartyMemberPointServiceImpl extends BaseServiceImpl implements IcPartyMemberPointService { + + @Autowired + private IcPartyMemberPointRedis icPartyMemberPointRedis; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPartyMemberPointDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPartyMemberPointDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPartyMemberPointDTO get(String id) { + IcPartyMemberPointEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPartyMemberPointDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPartyMemberPointDTO dto) { + dto.setTotalScore(dto.getBasePoint() + dto.getInspirePoint() + dto.getReviewPoint()); + if (dto.getWarnPoint() > 0) { + dto.setTotalScore(dto.getTotalScore() - dto.getWarnPoint()); + } else { + dto.setTotalScore(dto.getTotalScore() + dto.getWarnPoint()); + } + IcPartyMemberPointEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPointEntity.class); + if(dto.getYear().equals(Year.now().toString())){ + baseDao.updateMember(dto.getPartyMemberId(), dto.getTotalScore()); + } + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPartyMemberPointDTO dto) { + dto.setTotalScore(dto.getBasePoint() + dto.getInspirePoint() + dto.getReviewPoint()); + if (dto.getWarnPoint() > 0) { + dto.setTotalScore(dto.getTotalScore() - dto.getWarnPoint()); + } else { + dto.setTotalScore(dto.getTotalScore() + dto.getWarnPoint()); + } + IcPartyMemberPointEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPointEntity.class); + if(dto.getYear().equals(Year.now().toString())){ + baseDao.updateMember(dto.getPartyMemberId(), dto.getTotalScore()); + } + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 量化积分统计 + * + * @param form + * @param tokenDto + * @return java.util.List + * @author LZN + * @date 2022/5/18 18:20 + */ + @Override + public PageData getList(PartyMemberPointListFormDTO form, TokenDto tokenDto) { + PageHelper.startPage(form.getPageNo(), form.getPageSize(), form.getIsPage()); + List dto = baseDao.getList(form.getIdCard(), form.getMobile(), form.getName(), + form.getOrgId(), form.getYear(), tokenDto.getCustomerId()); + PageInfo pageInfo = new PageInfo<>(dto); + return new PageData<>(dto, pageInfo.getTotal()); + } + + /** + * 量化积分统计回显 + * + * @param form + * @return java.util.List + * @author LZN + * @date 2022/5/18 18:20 + */ + @Override + public List getEchoPartyMemberPoint(PartyMemberPointEchoFormDTO form, String customerId) { + List dto = baseDao.getEchoPartyMemberPoint(form.getPartyMemberId(), form.getQuarter(), form.getYear(), customerId); + return dto; + } + + /** + * 量化积分统计导出 + * + * @param form + * @return com.epmet.commons.tools.page.PageData + * @author LZN + * @date 2022/5/24 14:26 + */ + @Override + public PageData getExport(PartyMemberPointListFormDTO form, TokenDto tokenDto) { + PageHelper.startPage(form.getPageNo(), form.getPageSize(), form.getIsPage()); + List dto = baseDao.getList(form.getIdCard(), form.getMobile(), form.getName(), + form.getOrgId(), form.getYear(), tokenDto.getCustomerId()); + PageInfo pageInfo = new PageInfo<>(dto); + return new PageData<>(dto, pageInfo.getTotal()); + } + + +} \ 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/IcPartyMemberServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java new file mode 100644 index 0000000000..ef8e0eb205 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java @@ -0,0 +1,659 @@ +package com.epmet.modules.partymember.service.impl; + +import com.alibaba.excel.EasyExcel; +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.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +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.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.feign.ResultDataResolver; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.*; +import com.epmet.constants.ImportTaskConstants; +import com.epmet.dto.form.IcFormOptionsQueryFormDTO; +import com.epmet.dto.form.IcPartyMemberFormDTO; +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.modules.partyOrg.dao.IcPartyOrgDao; +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.dao.IcPartyMemberPayRecordDao; +import com.epmet.modules.partymember.dao.IcPartyMemberPointDao; +import com.epmet.modules.partymember.entity.IcPartyMemberEntity; +import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordEntity; +import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity; +import com.epmet.modules.partymember.excel.IcPartyMemberImportExcel; +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.IcPartyMemberResultDTO; +import com.epmet.utils.ImportTaskUtils; +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.fileupload.FileItem; +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.scheduling.annotation.Async; +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.math.BigDecimal; +import java.math.RoundingMode; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Slf4j +@Service +public class IcPartyMemberServiceImpl extends BaseServiceImpl implements IcPartyMemberService, ResultDataResolver { + + @Resource + private IcPartyOrgService icPartyOrgService; + @Resource + private IcPartyOrgDao icPartyOrgDao; + @Resource + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Resource + private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient; + @Resource + private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; + @Resource + private IcPartyMemberPayRecordDao icPartyMemberPayRecordDao; + @Resource + private IcPartyMemberPointDao icPartyMemberPointDao; + @Resource + private OssFeignClient ossFeignClient; + + @Override + public PageData page(TokenDto tokenDto, IcPartyMemberFromDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + if (StringUtils.isBlank(formDTO.getPartyOrgId())) { + //获取工作人员所属组织同级的党组织 + LambdaQueryWrapper orgWrapper = new LambdaQueryWrapper<>(); + orgWrapper.eq(IcPartyOrgEntity::getCustomerId, tokenDto.getCustomerId()); + orgWrapper.eq(IcPartyOrgEntity::getAgencyId, staffInfo.getAgencyId()); + orgWrapper.ne(IcPartyOrgEntity::getPartyOrgType, NumConstant.FIVE_STR); + IcPartyOrgEntity org = icPartyOrgDao.selectOne(orgWrapper); + if (null == org) { + return new PageData<>(Collections.emptyList(), 0); + } + formDTO.setPartyOrgId(org.getId()); + } + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setYear(DateUtils.format(new Date(), DateUtils.DATE_PATTERN_YYYY)); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.selectList(formDTO); + + PageInfo pageInfo = new PageInfo<>(list); + //获取文化程度字典 + Result> education = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode()); + if (!education.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取文化程度信息失败", "获取文化程度信息失败"); + } + if (CollectionUtils.isNotEmpty(list)) { + //获取志愿者类别 + IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO(); + optionsForm.setCustomerId(tokenDto.getCustomerId()); + optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode()); + optionsForm.setColumnName("VOLUNTEER_CATEGORY"); + Result> volunteerMap = operCustomizeOpenFeignClient.getOptionsMap(optionsForm); + //构造数据 + list.forEach(item -> { + item.setIsLd(NumConstant.ONE_STR.equals(item.getIsLd()) ? "是" : "否"); + item.setIsPay(NumConstant.ONE_STR.equals(item.getIsPay()) ? "是" : "否"); + item.setPartyZw(PartyPostEnum.getName(item.getPartyZw())); + item.setCulture(education.getData().get(item.getCulture())); + item.setPoint(("0.00").equals(item.getPoint()) ? StrConstant.HYPHEN : item.getPoint()); + if (StringUtils.isNotBlank(item.getVolunteerCategory())) { + List category = Arrays.asList(item.getVolunteerCategory().split(StrConstant.COMMA)); + List categoryNames = category.stream().map(volunteerMap.getData()::get).collect(Collectors.toList()); + item.setVolunteerCategory(String.join(String.valueOf((char) 10), categoryNames)); + } + }); + } + return new PageData<>(list, pageInfo.getTotal()); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPartyMemberDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPartyMemberDTO get(String id) { + IcPartyMemberEntity entity = baseDao.selectById(id); + if (null == entity) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党员不存在", "党员不存在"); + } + IcPartyMemberDTO dto = ConvertUtils.sourceToTarget(entity, IcPartyMemberDTO.class); + //党组织名 + if (StringUtils.isNotBlank(dto.getSszb())) { + IcPartyOrgEntity org = icPartyOrgService.selectById(dto.getSszb()); + if (null == org) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + dto.setOrgName(org.getPartyOrgName()); + + if (NumConstant.ZERO_STR.equals(dto.getOrgPids())) { + dto.setOrgPids(dto.getSszb()); + } else { + dto.setOrgPids(dto.getOrgPids().concat(StrConstant.COLON).concat(dto.getSszb())); + } + } + //职务 + if (StringUtils.isNotBlank(dto.getPartyZw())) { + dto.setPostName(PartyPostEnum.getName(dto.getPartyZw())); + } + //文化程度 + if (StringUtils.isNotBlank(dto.getCulture())) { + Result> education = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode()); + if (!education.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取文化程度信息失败", "获取文化程度信息失败"); + } + dto.setCultureName(education.getData().get(dto.getCulture())); + } + //志愿者类别 + if (StringUtils.isNotBlank(dto.getVolunteerCategory())) { + IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO(); + optionsForm.setCustomerId(dto.getCustomerId()); + optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode()); + optionsForm.setColumnName("VOLUNTEER_CATEGORY"); + Result> volunteerMap = operCustomizeOpenFeignClient.getOptionsMap(optionsForm); + List category = Arrays.asList(dto.getVolunteerCategory().split(StrConstant.COMMA)); + dto.setVolunteerCategoryName(category.stream().map(volunteerMap.getData()::get).collect(Collectors.toList())); + } + return dto; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String save(IcPartyMemberDTO dto) { + //获取党组织信息 + IcPartyOrgEntity org = icPartyOrgService.selectById(dto.getSszb()); + if (null == org) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党组织不存在", "党组织不存在"); + } + if (!NumConstant.FIVE_STR.equals(org.getPartyOrgType())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选党组织不是支部", "所选党组织不是支部"); + } + dto.setCustomerId(org.getCustomerId()); + dto.setAgencyId(org.getAgencyId()); + dto.setAgencyPids(org.getAgencyPids()); + dto.setOrgPids(org.getOrgPids()); + + //判断党员是否已存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyMemberEntity::getCustomerId, org.getCustomerId()); + wrapper.eq(IcPartyMemberEntity::getIdCard, dto.getIdCard()); + IcPartyMemberEntity partyMember = baseDao.selectOne(wrapper); + if (null != partyMember) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党员已存在", "党员已存在"); + } + + //同步ic_resi_user表对应的数据,并获取志愿者类型 + Result result = epmetUserOpenFeignClient.icPartyMemberSync(dto); + if (!result.success()) { + throw new EpmetException(result.getCode(), result.getMsg(), result.getMsg()); + } + if (null != result.getData()) { + dto.setIcResiUser(result.getData().getIcResiUser()); + dto.setVolunteerCategory(result.getData().getVolunteerCategory()); + } + IcPartyMemberEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberEntity.class); + + insert(entity); + + return entity.getId(); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPartyMemberDTO dto) { + //获取党组织信息 + IcPartyOrgEntity org = icPartyOrgService.selectById(dto.getSszb()); + if (null == org) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党组织不存在", "党组织不存在"); + } + if (!NumConstant.FIVE_STR.equals(org.getPartyOrgType())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选党组织不是支部", "所选党组织不是支部"); + } + dto.setAgencyId(org.getAgencyId()); + dto.setAgencyPids(org.getAgencyPids()); + dto.setOrgPids(org.getOrgPids()); + + //判断党员是否已存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyMemberEntity::getCustomerId, org.getCustomerId()); + wrapper.eq(IcPartyMemberEntity::getIdCard, dto.getIdCard()); + IcPartyMemberEntity partyMember = baseDao.selectOne(wrapper); + if (null != partyMember && !partyMember.getId().equals(dto.getId())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党员已存在", "党员已存在"); + } + + //同步ic_resi_user表对应的数据,并获取志愿者类型 + Result result = epmetUserOpenFeignClient.icPartyMemberSync(dto); + if (!result.success()) { + throw new EpmetException(result.getCode(), result.getMsg(), result.getMsg()); + } + + if (null != result.getData()) { + dto.setIcResiUser(result.getData().getIcResiUser()); + dto.setVolunteerCategory(result.getData().getVolunteerCategory()); + } + + IcPartyMemberEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + List idList = Arrays.asList(ids); + baseDao.deleteBatchIds(idList); + + LambdaUpdateWrapper payWrapper = new LambdaUpdateWrapper<>(); + payWrapper.in(IcPartyMemberPayRecordEntity::getPartyMemberId, idList); + icPartyMemberPayRecordDao.delete(payWrapper); + + LambdaUpdateWrapper pointWrapper = new LambdaUpdateWrapper<>(); + pointWrapper.in(IcPartyMemberPointEntity::getPartyMemberId, idList); + icPartyMemberPointDao.delete(pointWrapper); + } + + /** + * 党员信息同步 + * + * @param dto + * @Param dto + * @Return + * @Author zhaoqifeng + * @Date 2022/5/18 10:16 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void icPartyMemberSync(IcPartyMemberDTO dto) { + //查询党员信息 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyMemberEntity::getCustomerId, dto.getCustomerId()); + wrapper.eq(IcPartyMemberEntity::getIdCard, dto.getIdCard()); + IcPartyMemberEntity partyMember = baseDao.selectOne(wrapper); + + //查询党组织信息 + if (StringUtils.isNotBlank(dto.getSszb())) { + List orgIdList = Arrays.asList(dto.getSszb().split(StrConstant.COMMA)); + String sszb = orgIdList.get(orgIdList.size() - 1); + dto.setSszb(sszb); + //获取党组织信息 + IcPartyOrgEntity org = icPartyOrgService.selectById(sszb); + dto.setAgencyId(org.getAgencyId()); + dto.setAgencyPids(org.getAgencyPids()); + dto.setOrgPids(org.getOrgPids()); + } + IcPartyMemberEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberEntity.class); + + //判断党员是否已存在,有则更新,没有则添加 + if (null != partyMember) { + entity.setId(partyMember.getId()); + baseDao.updateById(entity); + } else { + baseDao.insert(entity); + } + } + + @Override + public List partyMemberEducationStatistics(IcPartyMemberFormDTO formDTO) { + //获取文化程度字典 + DictListFormDTO dictFormDTO = new DictListFormDTO(); + dictFormDTO.setDictType(DictTypeEnum.EDUCATION.getCode()); + Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO); + Map map = new HashMap<>(); + //统计组织下文化程度党员人数 + List list = baseDao.getPartyMemberEducationStatistics(formDTO.getAgencyId(),formDTO.getOrgId()); + int total = 0; + if (CollectionUtils.isNotEmpty(list)) { + map = list.stream().collect(Collectors.toMap(OptionDataResultDTO::getCode, OptionDataResultDTO::getValue)); + total = list.stream().mapToInt(item -> Integer.parseInt(item.getValue())).sum(); + } + Map finalMap = map; + int finalTotal = total; + return dictResult.getData().stream().map(item -> { + OptionDataResultDTO dto = new OptionDataResultDTO(); + dto.setCode(item.getValue()); + dto.setLabel(item.getLabel()); + dto.setValue(null == finalMap.get(item.getValue()) ? NumConstant.ZERO_STR : finalMap.get(item.getValue())); + BigDecimal radio = new BigDecimal("0.00"); + if (NumConstant.ZERO != finalTotal) { + BigDecimal sum = new BigDecimal(finalTotal); + BigDecimal count = new BigDecimal(dto.getValue()); + BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED); + radio = count.multiply(hundred).divide(sum, NumConstant.TWO, RoundingMode.HALF_UP); + } + dto.setRadio(radio.stripTrailingZeros().toPlainString().concat("%")); + return dto; + }).collect(Collectors.toList()); + } + + @Override + public PageData getPartyMemberAgeList(IcPartyMemberListFormDTO formDTO) { + if (formDTO.getIsPage()) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getPartyMemberAgeList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + List list = baseDao.getPartyMemberAgeList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode()); + return new PageData<>(list, null == list?NumConstant.ZERO:list.size()); + } + + @Override + public PageData getPartyMemberEducationList(IcPartyMemberListFormDTO formDTO) { + if (formDTO.getIsPage()) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode()); + Result> mapResult = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode()); + PageInfo pageInfo = new PageInfo<>(list); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(item -> { + item.setEducation(null == mapResult.getData().get(item.getEducation()) ? "" : mapResult.getData().get(item.getEducation())); + }); + } + return new PageData<>(list, pageInfo.getTotal()); + } + List list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode()); + Result> mapResult = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode()); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(item -> { + item.setEducation(null == mapResult.getData().get(item.getEducation()) ? "" : mapResult.getData().get(item.getEducation())); + }); + } + return new PageData<>(list, null == list?NumConstant.ZERO:list.size()); + + } + + @Override + public List partyMemberAgeStatistics(IcPartyMemberFormDTO formDTO) { + //获取年龄范围字典 + DictListFormDTO dictFormDTO = new DictListFormDTO(); + dictFormDTO.setDictType(DictTypeEnum.AGE_GROUP.getCode()); + Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO); + Map map = new HashMap<>(); + int total = 0; + //统计组织下各年龄范围人数 + List list = baseDao.getPartyMemberAgeStatistics(formDTO.getAgencyId(),formDTO.getOrgId()); + if (CollectionUtils.isNotEmpty(list)) { + map = list.stream().collect(Collectors.toMap(OptionDataResultDTO::getCode, OptionDataResultDTO::getValue)); + total = list.stream().mapToInt(item -> Integer.parseInt(item.getValue())).sum(); + } + Map finalMap = map; + int finalTotal = total; + return dictResult.getData().stream().map(item -> { + OptionDataResultDTO dto = new OptionDataResultDTO(); + dto.setCode(item.getValue()); + dto.setLabel(item.getLabel()); + dto.setValue(null == finalMap.get(item.getValue()) ? NumConstant.ZERO_STR : finalMap.get(item.getValue())); + BigDecimal radio = new BigDecimal("0.00"); + if (NumConstant.ZERO != finalTotal) { + BigDecimal sum = new BigDecimal(finalTotal); + BigDecimal count = new BigDecimal(dto.getValue()); + BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED); + radio = count.multiply(hundred).divide(sum, NumConstant.TWO, RoundingMode.HALF_UP); + } + dto.setRadio(radio.stripTrailingZeros().toPlainString().concat("%")); + return dto; + }).collect(Collectors.toList()); + } + + /** + * 执行Excel导入 + * + * @param filePath + * @param importTaskId + */ + @Async + @Override + public void execAsyncExcelImport(Path filePath, String importTaskId) { + String userId = null; + + try { + userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID); + String app = EpmetRequestHolder.getHeader(AppClientConstant.APP); + String client = EpmetRequestHolder.getHeader(AppClientConstant.CLIENT); + + log.info("【党员信息导入】userId:{}, app:{}, client:{}", userId, app, client); + + + IcPartyMemberImportListener listener = new IcPartyMemberImportListener(userId, this); + + EasyExcel.read(filePath.toFile(), IcPartyMemberImportExcel.class, listener).headRowNumber(2).sheet(0).doRead(); + + String errorDesFileUrl = null; + + List errorRows = listener.getErrorRows(); + List otherRows = listener.getOtherRows(); + + boolean failed = errorRows.size() > 0; + + // 合并到一起写入 + errorRows.addAll(otherRows); + + // 生成并上传描述文件 + OutputStream os = null; + FileItem fileItem = null; + if (errorRows.size() > 0) { + try { + // 文件生成 + Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_nat", "import", "error_des"); + String timeMillis = String.valueOf(System.currentTimeMillis()); + String fileName = "icnat_import_error_".concat(timeMillis).concat(".xlsx"); + + fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile()) + .createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName); + + os = fileItem.getOutputStream(); + + EasyExcel.write(os, IcPartyMemberImportExcel.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows); + // 文件上传oss + Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + if (errorDesFileUploadResult.success()) { + errorDesFileUrl = errorDesFileUploadResult.getData().getUrl(); + } + } finally { + IOUtils.closeQuietly(os); + try { + fileItem.delete(); + } catch (Exception e){ + log.error("【党员信息导入】删除临时描述文件失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + } + + // 完成导入 + Result result = ImportTaskUtils.finishImportTask(importTaskId, + failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS, + errorDesFileUrl, + ""); + + if (!result.success()) { + log.error("【党员信息导入】导入记录状态修改为'finished_success'失败"); + } + } catch (Exception e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【党员信息导入】出错:{}", errorMsg); + + Result result = ImportTaskUtils.finishImportTask(importTaskId, ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL, null, "导入失败"); + + if (!result.success()) { + log.error("【党员信息导入】导入记录状态修改为'finished_fail'失败"); + } + } finally { + // 删除临时文件 + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (IOException e) { + log.error("method exception", e); + } + } + } + } + + /** + * 批量持久化 + * @param entities + */ + public void batchPersist(List entities, IcPartyMemberImportListener listener) { + String customerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID); + String currentUserId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID); + + entities.forEach(e -> { + try { + persistPartyMember(e, customerId, currentUserId, listener); + } catch (Exception exception) { + String errorMsg = ExceptionUtils.getErrorStackTrace(exception); + log.error(errorMsg); + + IcPartyMemberImportExcel.RowRemarkMessage errorRow = new IcPartyMemberImportExcel.RowRemarkMessage(); + errorRow.setName(e.getName()); + errorRow.setMobile(e.getMobile()); + errorRow.setIdCard(e.getIdCard()); + errorRow.setErrorInfo("未知系统错误"); + listener.getErrorRows().add(errorRow); + } + }); + } + + /** + * 单条持久化 + * @Param e + * @Param customerId + * @Param currentUserId + * @Param listener + * @Return + * @Author zhaoqifeng + * @Date 2022/5/23 15:24 + */ + @Transactional(rollbackFor = Exception.class) + public void persistPartyMember(IcPartyMemberEntity e, String customerId, String currentUserId, IcPartyMemberImportListener listener) { + List otherRows = listener.getOtherRows(); + String idCard = e.getIdCard(); + String name = e.getName(); + String mobile = e.getMobile(); + + //获取党组织信息 + LambdaUpdateWrapper orgWrapper = new LambdaUpdateWrapper<>(); + orgWrapper.eq(IcPartyOrgEntity::getCustomerId, customerId); + orgWrapper.eq(IcPartyOrgEntity::getPartyOrgName, e.getSszb()); + IcPartyOrgEntity org = icPartyOrgDao.selectOne(orgWrapper); + if (null == org) { + String message = "所属党组织不存在"; + IcPartyMemberImportExcel.RowRemarkMessage errorRow = new IcPartyMemberImportExcel.RowRemarkMessage(); + errorRow.setName(name); + errorRow.setMobile(mobile); + errorRow.setIdCard(idCard); + errorRow.setErrorInfo(message); + otherRows.add(errorRow); + return; + } + + //判断党员是否已存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyMemberEntity::getCustomerId, customerId); + wrapper.eq(IcPartyMemberEntity::getIdCard, e.getIdCard()); + IcPartyMemberEntity partyMember = baseDao.selectOne(wrapper); + if (null != partyMember) { + String message = "党员已存在"; + IcPartyMemberImportExcel.RowRemarkMessage errorRow = new IcPartyMemberImportExcel.RowRemarkMessage(); + errorRow.setName(name); + errorRow.setMobile(mobile); + errorRow.setIdCard(idCard); + errorRow.setErrorInfo(message); + otherRows.add(errorRow); + return; + } + e.setCustomerId(customerId); + e.setAgencyId(org.getAgencyId()); + e.setAgencyPids(org.getAgencyPids()); + e.setSszb(org.getId()); + e.setOrgPids(org.getOrgPids()); + + e.setIsLd(("是").equals(e.getIsLd())?NumConstant.ONE_STR:NumConstant.ZERO_STR); + e.setIsDyzxh(("是").equals(e.getIsDyzxh())?NumConstant.ONE_STR:NumConstant.ZERO_STR); + e.setIsMxx(("是").equals(e.getIsMxx())?NumConstant.ONE_STR:NumConstant.ZERO_STR); + //职务 + e.setPartyZw(PartyPostEnum.getCode(e.getPartyZw())); + //文化程度 + //获取文化程度字典 + DictListFormDTO dictFormDTO = new DictListFormDTO(); + dictFormDTO.setDictType(DictTypeEnum.EDUCATION.getCode()); + Result> education = epmetAdminOpenFeignClient.dictList(dictFormDTO); + if (CollectionUtils.isNotEmpty(education.getData())) { + Map map = education.getData().stream().collect(Collectors.toMap(DictListResultDTO::getLabel, DictListResultDTO::getValue)); + e.setCulture(map.get(e.getCulture())); + } + + //同步ic_resi_user表对应的数据,并获取志愿者类型 + Result result = epmetUserOpenFeignClient.icPartyMemberSync(ConvertUtils.sourceToTarget(e, IcPartyMemberDTO.class)); + if (!result.success() && null != result.getData()) { + e.setIcResiUser(result.getData().getIcResiUser()); + e.setVolunteerCategory(result.getData().getVolunteerCategory()); + } + e.setCreatedBy(currentUserId); + e.setUpdatedBy(currentUserId); + baseDao.insert(e); + } + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.4__party_member_manage.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.4__party_member_manage.sql new file mode 100644 index 0000000000..cff80410de --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.4__party_member_manage.sql @@ -0,0 +1,132 @@ +CREATE TABLE `ic_party_member` +( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', + `ORG_PIDS` varchar(255) DEFAULT NULL COMMENT '党组织的所有上级ID,没有上级时为0', + `AGENCY_ID` varchar(64) NOT NULL COMMENT '行政组织 机关ID', + `AGENCY_PIDS` varchar(255) NOT NULL COMMENT '行政组织 机关ID', + `IC_RESI_USER` varchar(64) DEFAULT NULL COMMENT '对应的ic_resi_user主表Id', + `NAME` varchar(64) NOT NULL COMMENT '姓名', + `MOBILE` varchar(15) DEFAULT NULL COMMENT '手机号', + `ID_CARD` varchar(18) NOT NULL COMMENT '身份证号', + `ADDRESS` varchar(255) DEFAULT NULL COMMENT '地址', + `RDSJ` varchar(64) DEFAULT NULL COMMENT '入党时间', + `SSZB` varchar(256) DEFAULT NULL COMMENT '所属支部', + `IS_LD` char(2) DEFAULT NULL COMMENT '是否流动党员', + `LDZH` varchar(64) DEFAULT NULL COMMENT '流动党员活动证号', + `PARTY_ZW` varchar(256) DEFAULT NULL COMMENT '职务', + `IS_TX` char(2) DEFAULT NULL COMMENT '是否退休', + `IS_DYZXH` char(2) DEFAULT NULL COMMENT '是否党员中心户', + `IS_MXX` char(2) DEFAULT NULL COMMENT '是否免学习0否,1是', + `CULTURE` varchar(20) DEFAULT NULL COMMENT '文化程度【字典表】', + `VOLUNTEER_CATEGORY` varchar(255) DEFAULT NULL COMMENT '志愿者类型,逗号隔开', + `REMARK` varchar(255) DEFAULT NULL COMMENT '备注', + `FIELD1` varchar(256) DEFAULT NULL COMMENT '预留字段1', + `FIELD2` varchar(256) DEFAULT NULL COMMENT '预留字段2', + `FIELD3` varchar(256) DEFAULT NULL COMMENT '预留字段3', + `FIELD4` varchar(256) DEFAULT NULL COMMENT '预留字段4', + `FIELD5` varchar(256) DEFAULT NULL COMMENT '预留字段5', + `DEL_FLAG` int(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE, + UNIQUE KEY `un_party_mem` (`IC_RESI_USER`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + ROW_FORMAT = COMPACT COMMENT ='数字平台党员信息表'; + +CREATE TABLE `ic_party_member_pay_record` +( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', + `PARTY_MEMBER_ID` varchar(64) NOT NULL COMMENT '党员ID', + `PAY_DATE` varchar(18) NOT NULL COMMENT '缴费日期', + `MONEY` decimal(8, 2) NOT NULL COMMENT '缴费金额', + `START_DATE` varchar(18) NOT NULL COMMENT '缴费开始时间', + `END_DATE` varchar(18) 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 = COMPACT COMMENT ='党员缴费记录表'; + +CREATE TABLE `ic_party_member_pay_record_detail` +( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', + `PARTY_MEMBER_ID` varchar(64) NOT NULL COMMENT '党员ID', + `RECORD_ID` varchar(64) NOT NULL COMMENT '党员缴费记录表ID', + `YEAR` varchar(18) NOT NULL COMMENT '缴费年度', + `MONTH` varchar(18) NOT NULL COMMENT '缴费月份', + `MONEY` decimal(8, 2) 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 = COMPACT COMMENT ='党员缴费记录明细表'; + +CREATE TABLE `ic_party_member_point` +( + `ID` varchar(64) NOT NULL DEFAULT '0' COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', + `PARTY_MEMBER_ID` varchar(64) NOT NULL COMMENT '党员ID', + `YEAR` varchar(8) NOT NULL COMMENT '年', + `QUARTER` varchar(8) NOT NULL COMMENT '季度', + `BASE_POINT` int(11) DEFAULT '0' COMMENT '基础积分分值', + `BASE_OPTIONS` varchar(20) DEFAULT NULL COMMENT '基础积分选项 英文逗号隔开', + `REVIEW_POINT` int(11) DEFAULT '0' COMMENT '民主评议积分分值', + `REVIEW_OPTIONS` varchar(20) DEFAULT NULL COMMENT '民主评议积分选项', + `INSPIRE_POINT` int(11) unsigned DEFAULT '0' COMMENT '激励积分分值', + `INSPIRE_OPTIONS` varchar(20) DEFAULT NULL COMMENT '激励积分选项', + `WARN_POINT` int(11) DEFAULT '0' COMMENT '警示扣分分值', + `WARN_OPTIONS` varchar(20) DEFAULT NULL COMMENT '警示扣分选项', + `TOTAL_SCORE` int(32) DEFAULT '0' COMMENT '总分', + `DEL_FLAG` int(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 ='党员量化积分表'; + +CREATE TABLE `ic_party_org` +( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', + `ORG_PID` varchar(64) NOT NULL COMMENT '党组织的上级ID,没有上级时为0', + `ORG_PIDS` varchar(512) NOT NULL COMMENT '党组织的所有上级ID,没有上级时为0', + `AGENCY_ID` varchar(64) NOT NULL COMMENT '行政组织 机关ID', + `AGENCY_PIDS` varchar(512) NOT NULL COMMENT '行政组织 机关ID', + `PARTY_ORG_TYPE` char(1) NOT NULL COMMENT '党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部', + `PARTY_ORG_NAME` varchar(20) NOT NULL COMMENT '组织名称', + `PARTY_ORG_CODE` varchar(128) DEFAULT NULL COMMENT '组织编码', + `LONGITUDE` varchar(32) NOT NULL COMMENT '经度', + `LATITUDE` varchar(32) NOT NULL COMMENT '纬度', + `ADDRESS` varchar(255) DEFAULT NULL COMMENT '地址', + `INTRODUCTION` varchar(500) DEFAULT NULL COMMENT '党组织介绍', + `DEL_FLAG` int(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.5__add_total_score.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.5__add_total_score.sql new file mode 100644 index 0000000000..5fe8a448dc --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.5__add_total_score.sql @@ -0,0 +1,2 @@ +ALTER TABLE `epmet_resi_partymember`.`ic_party_member` +CHANGE COLUMN `FIELD1` `TOTAL_SCORE` int(64) NULL DEFAULT NULL COMMENT '总分' AFTER `REMARK`; \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/excel/ic_party_member.xlsx b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/excel/ic_party_member.xlsx new file mode 100644 index 0000000000..d663ad01c5 Binary files /dev/null and b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/excel/ic_party_member.xlsx differ 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 new file mode 100644 index 0000000000..064be05191 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 new file mode 100644 index 0000000000..d71cdbd883 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDao.xml new file mode 100644 index 0000000000..7863205208 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDao.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDetailDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDetailDao.xml new file mode 100644 index 0000000000..aaf0abe2c1 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDetailDao.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + update ic_party_member_pay_record_detail set DEL_FLAG = 1 + where RECORD_ID = #{recordId} + + + + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPointDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPointDao.xml new file mode 100644 index 0000000000..3876ddf432 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPointDao.xml @@ -0,0 +1,159 @@ + + + + + + UPDATE ic_party_member + SET TOTAL_SCORE = #{totalScore} + WHERE + id = #{partyMemberId} + + + + + + + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVolunteerPolyCategoryDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVolunteerPolyCategoryDTO.java new file mode 100644 index 0000000000..4b4737d46e --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVolunteerPolyCategoryDTO.java @@ -0,0 +1,80 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 志愿者信息聚合,志愿者类别表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +@Data +public class IcVolunteerPolyCategoryDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 类别【字典表】 + */ + private String volunteerCategory; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVolunteerPolyDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVolunteerPolyDTO.java new file mode 100644 index 0000000000..feee07ea09 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVolunteerPolyDTO.java @@ -0,0 +1,113 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 志愿者信息聚合 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +@Data +public class IcVolunteerPolyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 居民端用户id + */ + private String userId; + + /** + * 对应的ic_resi_user主表Id + */ + private String icResiUser; + + /** + * 居住成员1姓名 + */ + private String name; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + private String isParty; + private String isDyzxh; + private String volunteerCategory; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberFormDTO.java new file mode 100644 index 0000000000..aafbf95b77 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/10 15:46 + */ +@Data +public class IcPartyMemberFormDTO implements Serializable { + private static final long serialVersionUID = 1027174449735636944L; + + private String orgId; + + private String agencyId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberListFormDTO.java new file mode 100644 index 0000000000..b2dbe3f596 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberListFormDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/10 15:49 + */ +@Data +public class IcPartyMemberListFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = -6085134769034337175L; + + private String orgId; + + private String code; + + private String agencyId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberSyncDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberSyncDTO.java new file mode 100644 index 0000000000..48ffd910b4 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcPartyMemberSyncDTO.java @@ -0,0 +1,115 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/5/17 18:13 + */ +@Data +public class IcPartyMemberSyncDTO implements Serializable { + private static final long serialVersionUID = 663543282690909994L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 党组织的所有上级ID,没有上级时为0 + */ + private String orgPids; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 对应的ic_resi_user主表Id + */ + private String icResiUser; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 地址 + */ + private String address; + + /** + * 入党时间 + */ + private String rdsj; + + /** + * 所属支部 + */ + private String sszb; + + /** + * 是否流动党员 + */ + private String isLd; + + /** + * 流动党员活动证号 + */ + private String ldzh; + + /** + * 职务 + */ + private String partyZw; + + /** + * 是否退休 + */ + private String isTx; + + /** + * 是否党员中心户 + */ + private String isDyzxh; + + /** + * 是否免学习0否,1是 + */ + private String isMxx; + + /** + * 文化程度【字典表】 + */ + private String culture; + + /** + * 志愿者类型,逗号隔开 + */ + private String volunteerCategory; + + /** + * 备注 + */ + private String remark; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LonAndLatFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LonAndLatFormDTO.java new file mode 100644 index 0000000000..b491935153 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LonAndLatFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class LonAndLatFormDTO implements Serializable { + + private static final long serialVersionUID = -4097378626418182909L; + + private String customerId; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 关联关系 + */ + private String userId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyListFormDTO.java new file mode 100644 index 0000000000..ca2126c3d7 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyListFormDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VolunteerPolyListFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = -1097706840486437520L; + + /** + * 志愿者代码 + */ + private String code; + + /** + * 用户id + */ + private String customerId; + + /** + * 组织id + */ + private String agencyId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyMapDataFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyMapDataFormDTO.java new file mode 100644 index 0000000000..57812e784b --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyMapDataFormDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VolunteerPolyMapDataFormDTO implements Serializable { + + private static final long serialVersionUID = 341371496246696462L; + + /** + * 志愿者分类code + */ + private String code; + + /** + * 客户id + */ + private String customerId; + + /** + * 组织id + */ + private String agencyId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyPieFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyPieFormDTO.java new file mode 100644 index 0000000000..38cbe0491f --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VolunteerPolyPieFormDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class VolunteerPolyPieFormDTO implements Serializable { + + private static final long serialVersionUID = 6284245738483042805L; + + @NotBlank(message = "agencyId必填") + private String agencyId; + + private String customerId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserInfoDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserInfoDTO.java new file mode 100644 index 0000000000..0457fd979d --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserInfoDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/5/20 9:55 + */ +@Data +public class IcResiUserInfoDTO implements Serializable { + private static final long serialVersionUID = -6071352387529766881L; + private String icResiUserId; + private String name; + private String mobile; + private String address; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java index a81e542024..7c8b9bcd3f 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java @@ -56,4 +56,14 @@ public class MyResiUserInfoResultDTO implements Serializable { * 今日已获得积分,用于积分任务列表显示 * */ private Integer todayObtainedPoint; + + /** + * 是否是志愿者:0否1是 + */ + private String volunteerFlag; + + /** + * 类别【字典表】 + */ + private String volunteerCategory; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java index cb15d9440b..bf68534dad 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java @@ -42,4 +42,10 @@ public class MyselfMsgResultDTO implements Serializable { * 身份证号 * */ private String idNum; + + /** + * 是否是志愿者:0否1是 + */ + private String volunteerFlag; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberAgeResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberAgeResultDTO.java index 85b0ced524..a700a87a91 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberAgeResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberAgeResultDTO.java @@ -16,4 +16,5 @@ public class PartyMemberAgeResultDTO implements Serializable { private String name; private String age; private String mobile; + private String icResiUser; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberEducationResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberEducationResultDTO.java index 421d0139a3..f686a1ce43 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberEducationResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberEducationResultDTO.java @@ -16,4 +16,5 @@ public class PartyMemberEducationResultDTO implements Serializable { private String name; private String education; private String mobile; + private String icResiUser; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyListResultDTO.java new file mode 100644 index 0000000000..fcbd7b7d9c --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyListResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VolunteerPolyListResultDTO implements Serializable { + + private static final long serialVersionUID = -882118974053517358L; + + /** + * 主键 + */ + private String id; + + /** + * 名字 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 用户id + */ + private String userId; + + /** + * 关联表id + */ + private String icResiUser; + + /** + * 身份证号 + */ + private String idCard; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyMapDataResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyMapDataResultDTO.java new file mode 100644 index 0000000000..1665ebdb65 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyMapDataResultDTO.java @@ -0,0 +1,79 @@ +package com.epmet.dto.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VolunteerPolyMapDataResultDTO implements Serializable { + + private static final long serialVersionUID = -6310126790215323874L; + + /** + * 主键 + */ + private String id; + + /** + * 名字 + */ + private String name; + + /** + * 所属网格 + */ + private String gridName; + + /** + * 网格id + */ + private String gridId; + + /** + * 所属房屋 + */ + private String houseName; + + /** + * 房屋id + */ + private String homeId; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 工作单位 + */ + private String gzdw; + + /** + * 人户状况 + */ + private String rhzk; + + private String longitude; + + private String latitude; + + /** + * 类别 + */ + private String volunteerCategory; + + /** + * 居民id + */ + private String icResiUser; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyPieResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyPieResultDTO.java new file mode 100644 index 0000000000..46a389125c --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VolunteerPolyPieResultDTO.java @@ -0,0 +1,15 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class VolunteerPolyPieResultDTO implements Serializable { + + private static final long serialVersionUID = 777585539653982139L; + + private String label; + private String value; + private String code; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/enums/CustomizeEnum.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/enums/CustomizeEnum.java new file mode 100644 index 0000000000..4a38a03789 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/enums/CustomizeEnum.java @@ -0,0 +1,35 @@ +package com.epmet.enums; + +import com.epmet.commons.tools.enums.IcFormCodeEnum; + +public enum CustomizeEnum { + QI_TA("qita","其他"), + LAO_YOU_JV_LE_BU("laoyoujulebu","老友俱乐部"), + LOU_WEI_HUI("louweihui","楼委会"), + WEN_HUA_DUI_WU("wenhuaduiwu","文化队伍") + ; + private String code; + private String name; + + CustomizeEnum(String code,String name) { + this.code = code; + this.name = name; + } + + public static IcFormCodeEnum getEnum(String code) { + IcFormCodeEnum[] values = IcFormCodeEnum.values(); + for (IcFormCodeEnum value : values) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + public String getCode() { + return code; + } + public String getName(){ + return name; + } +} 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 cdeb0adf8c..e5952a2726 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 @@ -9,6 +9,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.feign.fallback.EpmetUserOpenFeignClientFallbackFactory; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; @@ -799,4 +800,10 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/userresiinfo/getStaffAndResi") Result> getStaffAndResi(@RequestBody List userIds); + + @PostMapping("/epmetuser/icresiuser/icPartyMemberSync") + Result icPartyMemberSync(@RequestBody IcPartyMemberDTO formDTO); + + @PostMapping("/epmetuser/icVolunteerPoly/volunteerDataExtraction/{customerId}") + Result volunteerDataExtraction(@PathVariable("customerId") String customerId); } 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 11c7e36c52..404ba7d0c3 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 @@ -9,6 +9,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -584,4 +585,14 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> getStaffAndResi(List userIds) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffAndResi", userIds); } + @Override + public Result icPartyMemberSync(IcPartyMemberDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "icPartyMemberSync", formDTO); + } + + @Override + public Result volunteerDataExtraction(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "volunteerDataExtraction", customerId); + } + } 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 8f783f39c8..284d4f691c 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 @@ -30,6 +30,7 @@ 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.form.mq.MqBaseFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.enums.IcFormCodeEnum; @@ -59,6 +60,8 @@ import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.feign.OssFeignClient; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.IcResiUserExportService; import com.epmet.service.IcResiUserImportService; import com.epmet.service.IcResiUserService; @@ -216,9 +219,24 @@ public class IcResiUserController implements ResultDataResolver { form.setMessageType(SystemMessageType.IC_RESI_USER_ADD); form.setContent(mqMsg); epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); + + this.sendVolunteerMsg(tokenDto.getCustomerId(), resiUserId); return new Result(); } + /** + * desc:发送 志愿者变动消息 + * @param customerId + * @param resiUserId + */ + private void sendVolunteerMsg(String customerId, String resiUserId) { + //发送志愿者人员消息变动 + boolean flag = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendRocketMqMsg(SystemMessageType.VOLUNTEER_CHANGED, new MqBaseFormDTO(customerId, resiUserId)); + if (!flag){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"发送志愿者变动消息失败","发送志愿者变动消息失败"); + } + } + /** * @Author sun * @Description 党建互联平台--修改居民信息 @@ -229,6 +247,8 @@ public class IcResiUserController implements ResultDataResolver { String resiUserId = icResiUserService.edit(tokenDto, formDTO); //推送MQ事件 editResiMq(tokenDto.getCustomerId(), resiUserId); + + this.sendVolunteerMsg(tokenDto.getCustomerId(), resiUserId); return new Result(); } @@ -1095,4 +1115,36 @@ public class IcResiUserController implements ResultDataResolver { List list = icResiUserService.getAllUserIds(idCard, customerId); return new Result>().ok(list); } + + /** + * 党员信息同步 + * + * @Param formDTO + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/17 19:14 + */ + @PostMapping("icPartyMemberSync") + public Result icPartyMemberSync(@RequestBody IcPartyMemberDTO formDTO) { + IcPartyMemberDTO dto = icResiUserService.icPartyMemberSync(formDTO); + if (StringUtils.isNotBlank(dto.getIcResiUser())) { + this.sendVolunteerMsg(formDTO.getCustomerId(), dto.getIcResiUser()); + } + return new Result().ok(dto); + } + + /** + * 根据身份证获取居民信息(党员管理用,主要显示住址) + * + * @Param tokenDto + * @Param formDTO + * @Return {@link Result< IcResiUserInfoDTO>} + * @Author zhaoqifeng + * @Date 2022/5/20 10:11 + */ + @PostMapping("getUserByIdCard") + public Result getUserByIdCard(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(icResiUserService.getUserByIdCard(formDTO)); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVolunteerPolyController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVolunteerPolyController.java new file mode 100644 index 0000000000..fe0f268681 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVolunteerPolyController.java @@ -0,0 +1,174 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +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.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.IcVolunteerPolyDTO; +import com.epmet.dto.form.LonAndLatFormDTO; +import com.epmet.dto.form.VolunteerPolyListFormDTO; +import com.epmet.dto.form.VolunteerPolyMapDataFormDTO; +import com.epmet.dto.form.VolunteerPolyPieFormDTO; +import com.epmet.dto.result.VolunteerPolyMapDataResultDTO; +import com.epmet.dto.result.VolunteerPolyPieResultDTO; +import com.epmet.service.IcVolunteerPolyService; +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-05-19 + */ +@RestController +@RequestMapping("icVolunteerPoly") +public class IcVolunteerPolyController { + + @Autowired + private IcVolunteerPolyService icVolunteerPolyService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params) { + PageData page = icVolunteerPolyService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET}) + public Result get(@PathVariable("id") String id) { + IcVolunteerPolyDTO data = icVolunteerPolyService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcVolunteerPolyDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icVolunteerPolyService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcVolunteerPolyDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icVolunteerPolyService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids) { + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icVolunteerPolyService.delete(ids); + return new Result(); + } + + /** + * 【网格党建平面图】地图 + * + * @param form + * @return com.epmet.commons.tools.utils.Result> + * @author LZN + * @date 2022/5/19 13:54 + */ + @PostMapping("/mapData") + public Result> getMapData(@RequestBody VolunteerPolyMapDataFormDTO form, @LoginUser TokenDto tokenDto) { + form.setCustomerId(tokenDto.getCustomerId()); + List dto = icVolunteerPolyService.getMapData(form); + return new Result>().ok(dto); + } + + /** + * 【网格党建平面图】列表 + * + * @param form + * @return com.epmet.commons.tools.utils.Result + * @author LZN + * @date 2022/5/19 14:49 + */ + @PostMapping("list") + public Result getList(@RequestBody VolunteerPolyListFormDTO form, @LoginUser TokenDto tokenDto) { + form.setCustomerId(tokenDto.getCustomerId()); + PageData data = icVolunteerPolyService.getList(form); + return new Result().ok(data); + } + + /** + * 抽取志愿者数据 + * + * @Param customerId + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/19 15:41 + */ + @PostMapping("volunteerDataExtraction/{customerId}") + public Result volunteerDataExtraction(@PathVariable("customerId") String customerId) { + icVolunteerPolyService.volunteerDataExtraction(customerId); + return new Result(); + } + + /** + * 志愿者变动 + * + * @Param form + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/5/19 18:05 + */ + @PostMapping("volunteerChanged") + public Result volunteerChanged(@RequestBody MqBaseFormDTO form) { + icVolunteerPolyService.volunteerChanged(form); + return new Result(); + } + + /** + * 【网格党建平面图】饼图 + * + * @param form + * @return com.epmet.commons.tools.utils.Result + * @author LZN + * @date 2022/5/19 17:21 + */ + @PostMapping("statistics") + public Result> getStatistics(@RequestBody VolunteerPolyPieFormDTO form, @LoginUser TokenDto tokenDto) { + form.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(form); + List dto = icVolunteerPolyService.getStatistics(form); + return new Result>().ok(dto); + } + + /** + * 修改经纬度 + * + * @param tokenDto + * @param form + * @return com.epmet.commons.tools.utils.Result + * @author LZN + * @date 2022/5/24 15:07 + */ + @PostMapping("LonAndLat") + public Result LonAndLat(@LoginUser TokenDto tokenDto, @RequestBody LonAndLatFormDTO form) { + form.setUserId(tokenDto.getUserId()); + form.setCustomerId(tokenDto.getCustomerId()); + icVolunteerPolyService.updateLonAndLat(form); + return new Result(); + + } + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPartyMemberDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPartyMemberDao.java new file mode 100644 index 0000000000..0bfc139ce4 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPartyMemberDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcPartyMemberEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 党员 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Mapper +public interface IcPartyMemberDao extends BaseDao { + +} \ No newline at end of file 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 225892faa8..1a0d5c82d1 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 @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.IcVolunteerPolyDTO; import com.epmet.dto.form.EpidemicPreventionFormDTO; import com.epmet.dto.form.RentTenantDataFormDTO; import com.epmet.dto.form.ResiUserQueryValueDTO; @@ -318,4 +319,13 @@ public interface IcResiUserDao extends BaseDao { List listUserIds(@Param("customerId") String customerId, @Param("gridId") String gridId); List getAllUserIds(@Param("idCard") String idCard, @Param("customerId")String customerId); + + /** + * 获取客户下志愿者信息 + * @Param customerId + * @Return {@link List< IcVolunteerPolyDTO>} + * @Author zhaoqifeng + * @Date 2022/5/19 10:40 + */ + List getVolunteerList(@Param("customerId") String customerId, @Param("userId") String userId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerDao.java new file mode 100644 index 0000000000..de9ccd3bb0 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcVolunteerEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 志愿者 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Mapper +public interface IcVolunteerDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerPolyCategoryDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerPolyCategoryDao.java new file mode 100644 index 0000000000..d585715290 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerPolyCategoryDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcVolunteerPolyCategoryEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 志愿者信息聚合,志愿者类别表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +@Mapper +public interface IcVolunteerPolyCategoryDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerPolyDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerPolyDao.java new file mode 100644 index 0000000000..04fa1977b0 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVolunteerPolyDao.java @@ -0,0 +1,47 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.LonAndLatFormDTO; +import com.epmet.dto.form.VolunteerPolyPieFormDTO; +import com.epmet.dto.result.VolunteerPolyListResultDTO; +import com.epmet.dto.result.VolunteerPolyMapDataResultDTO; +import com.epmet.dto.result.VolunteerPolyPieResultDTO; +import com.epmet.entity.IcVolunteerPolyEntity; +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-05-19 + */ +@Mapper +public interface IcVolunteerPolyDao extends BaseDao { + + /** + * 【网格党建平面图】地图 + * @param code + */ + List getMapData(@Param("code") String code, + @Param("customerId") String customerId, + @Param("agencyId") String agencyId); + + /** + * 【网格党建平面图】列表 + * @param code + */ + List getList(@Param("code") String code, + @Param("customerId") String customerId, + @Param("agencyId") String agencyId); + + void deleteDataByCustomerId(@Param("customerId") String customerId); + void deleteCategoryByCustomerId(@Param("customerId") String customerId); + + List getStatistics(VolunteerPolyPieFormDTO form); + + void updateLonAndLat(@Param("form") LonAndLatFormDTO form); + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVolunteerPolyCategoryEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVolunteerPolyCategoryEntity.java new file mode 100644 index 0000000000..fa15bdc41e --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVolunteerPolyCategoryEntity.java @@ -0,0 +1,46 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 志愿者信息聚合,志愿者类别表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_volunteer_poly_category") +public class IcVolunteerPolyCategoryEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 类别【字典表】 + */ + private String volunteerCategory; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVolunteerPolyEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVolunteerPolyEntity.java new file mode 100644 index 0000000000..8eb0922704 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVolunteerPolyEntity.java @@ -0,0 +1,76 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 志愿者信息聚合 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_volunteer_poly") +public class IcVolunteerPolyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 行政组织 机关ID + */ + private String agencyId; + + /** + * 行政组织 机关ID + */ + private String agencyPids; + + /** + * 居民端用户id + */ + private String userId; + + /** + * 对应的ic_resi_user主表Id + */ + private String icResiUser; + + /** + * 居住成员1姓名 + */ + private String name; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java index 427e70f0a3..2e98774f6e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java @@ -2,10 +2,19 @@ package com.epmet.excel.handler; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.constant.SystemMessageType; import com.epmet.dto.result.FormItemResult; +import com.epmet.enums.IcResiUserTableEnum; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.impl.IcResiUserImportServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; @@ -22,7 +31,7 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener formItemList, Integer headRowNumber) { + String currUserAgencyPids, Boolean isPrimary, + List formItemList, IcResiUserTableEnum sheetEnumObject) { this.customerId = customerId; this.icResiUserImportService = icResiUserImportService; @@ -101,8 +105,7 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener headMap, AnalysisContext context) { headList.add(headMap); - if (headList.size() < headRowNumber) { + if (headList.size() < sheetEnumObject.getHeadRowNo()) { return; } @@ -180,9 +183,19 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener successIdCards = icResiUserImportService.persistIcResiExtraInfo(itemIdAndColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currentUserId, sheetEnumObject.getTableName(), customerId); + + // 对于志愿者,发送一个mq消息,对端监听器会对志愿者做相应处理 + if (sheetEnumObject == IcResiUserTableEnum.IC_VOLUNTEER && !CollectionUtils.isEmpty(successIdCards)) { + MqBaseFormDTO msg = new MqBaseFormDTO(); + msg.setCustomerId(EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID)); + msg.setObjectIdList(successIdCards); + SendMqMsgUtil.build() + .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + .sendRocketMqMsg(SystemMessageType.VOLUNTEER_CHANGED, msg); + } } dataList.clear(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/RocketMQWarnStatsRegister.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/RocketMQWarnStatsRegister.java index 2e7068ae04..0160fb63f9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/RocketMQWarnStatsRegister.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/RocketMQWarnStatsRegister.java @@ -5,6 +5,7 @@ import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.register.MQAbstractRegister; import com.epmet.commons.rocketmq.register.MQConsumerProperties; import com.epmet.mq.listener.ICWarnStatsEventListener; +import com.epmet.mq.listener.VolunteerChangeEventListener; import org.apache.rocketmq.common.protocol.heartbeat.MessageModel; import org.springframework.stereotype.Component; @@ -27,5 +28,12 @@ public class RocketMQWarnStatsRegister extends MQAbstractRegister { new ICWarnStatsEventListener()); // ...其他监听器类似 + // 客户初始化监听器注册 + register(consumerProperties, + ConsomerGroupConstants.VOLUNTEER_CHANGE_EVENT_LISTENER_GROUP, + MessageModel.CLUSTERING, + TopicConstants.VOLUNTEER, + "*", + new VolunteerChangeEventListener()); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/VolunteerChangeEventListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/VolunteerChangeEventListener.java new file mode 100644 index 0000000000..2ce92cd3c1 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/VolunteerChangeEventListener.java @@ -0,0 +1,94 @@ +package com.epmet.mq.listener; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.rocketmq.constants.MQUserPropertys; +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +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.service.IcVolunteerPolyService; +import lombok.extern.slf4j.Slf4j; +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 java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/5/19 17:54 + */ +@Slf4j +public class VolunteerChangeEventListener implements MessageListenerConcurrently { + 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) { + log.error(ExceptionUtils.getErrorStackTrace(e)); + return ConsumeConcurrentlyStatus.RECONSUME_LATER; + } + return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; + } + + private void consumeMessage(MessageExt messageExt) { + // msg即为消息体 + // tags为SystemMessageType.java中的项,为具体的操作,此处拿到tags,判断是创建还是变更,来做响应的后续操作即可 + String msg = new String(messageExt.getBody()); + log.info("msg is {}",msg); + String topic = messageExt.getTopic(); + String tags = messageExt.getTags(); + String pendingMsgLabel = messageExt.getUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL); + + log.info("【开放数据事件监听器】-志愿者变动-收到消息内容:{},操作:{}", msg, tags); + MqBaseFormDTO obj = JSON.parseObject(msg, MqBaseFormDTO.class); + log.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(IcVolunteerPolyService.class).volunteerChanged(obj); + + } catch (EpmetException e) { + // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 + log.error("【开放数据事件监听器】-志愿者变动MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e))); + } catch (Exception e) { + // 不是我们自己抛出的异常,可以让MQ重试 + log.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) { + log.error("【开放数据事件监听器】-删除mq阻塞消息缓存失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + } + + private void removePendingMqMsgCache(String pendingMsgLabel) { + String key = RedisKeys.blockedMqMsgKey(pendingMsgLabel); + redisUtils.delete(key); + } +} 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 acd91e77b7..561ddf9e2b 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 @@ -26,6 +26,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; import com.epmet.excel.support.ExportResiUserItemDTO; +import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import java.util.List; import java.util.Map; @@ -352,4 +353,25 @@ public interface IcResiUserService extends BaseService { IcResiUserDTO getByResiId(String idCard); List getAllUserIds(String idCard, String customerId); + + + /** + * 党员信息同步 + * + * @Param formDTO + * @Return {@link IcPartyMemberDTO} + * @Author zhaoqifeng + * @Date 2022/5/17 19:12 + */ + IcPartyMemberDTO icPartyMemberSync(IcPartyMemberDTO formDTO); + + /** + * 根据身份证获取居民信息(党员管理用,主要显示住址) + * + * @Param formDTO + * @Return {@link IcResiUserInfoDTO} + * @Author zhaoqifeng + * @Date 2022/5/20 9:59 + */ + IcResiUserInfoDTO getUserByIdCard(IcResiUserDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVolunteerPolyCategoryService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVolunteerPolyCategoryService.java new file mode 100644 index 0000000000..0dd4cfa523 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVolunteerPolyCategoryService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcVolunteerPolyCategoryDTO; +import com.epmet.entity.IcVolunteerPolyCategoryEntity; + +import java.util.List; +import java.util.Map; + +/** + * 志愿者信息聚合,志愿者类别表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +public interface IcVolunteerPolyCategoryService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-05-19 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-19 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcVolunteerPolyCategoryDTO + * @author generator + * @date 2022-05-19 + */ + IcVolunteerPolyCategoryDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-19 + */ + void save(IcVolunteerPolyCategoryDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-19 + */ + void update(IcVolunteerPolyCategoryDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-19 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVolunteerPolyService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVolunteerPolyService.java new file mode 100644 index 0000000000..6a2b9f8f73 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVolunteerPolyService.java @@ -0,0 +1,145 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcVolunteerPolyDTO; +import com.epmet.dto.form.LonAndLatFormDTO; +import com.epmet.dto.form.VolunteerPolyListFormDTO; +import com.epmet.dto.form.VolunteerPolyMapDataFormDTO; +import com.epmet.dto.form.VolunteerPolyPieFormDTO; +import com.epmet.dto.result.VolunteerPolyMapDataResultDTO; +import com.epmet.dto.result.VolunteerPolyPieResultDTO; +import com.epmet.entity.IcVolunteerPolyEntity; + +import java.util.List; +import java.util.Map; + +/** + * 志愿者信息聚合 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +public interface IcVolunteerPolyService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-05-19 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-05-19 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcVolunteerPolyDTO + * @author generator + * @date 2022-05-19 + */ + IcVolunteerPolyDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-19 + */ + void save(IcVolunteerPolyDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-05-19 + */ + void update(IcVolunteerPolyDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-05-19 + */ + void delete(String[] ids); + + /** + * 【网格党建平面图】地图 + * + * @param form + * @return java.util.List + * @author LZN + * @date 2022/5/19 13:55 + */ + List getMapData(VolunteerPolyMapDataFormDTO form); + + /** + * 【网格党建平面图】列表 + * + * @param form + * @return com.epmet.commons.tools.page.PageData + * @author LZN + * @date 2022/5/19 14:49 + */ + PageData getList(VolunteerPolyListFormDTO form); + + /** + * 志愿者数据抽取 + * + * @Param customerId + * @Return void + * @Author zhaoqifeng + * @Date 2022/5/19 10:00 + */ + void volunteerDataExtraction(String customerId); + + /** + * 志愿者变动 + * + * @Param dto + * @Return + * @Author zhaoqifeng + * @Date 2022/5/19 16:02 + */ + void volunteerChanged(MqBaseFormDTO dto); + + /** + * 【网格党建平面图】饼图 + * + * @param form + * @return com.epmet.dto.result.VolunteerPolyPieResultDTO + * @author LZN + * @date 2022/5/19 17:21 + */ + List getStatistics(VolunteerPolyPieFormDTO form); + + /** + * 修改经纬度 + * + * @param form + * @return void + * @author LZN + * @date 2022/5/24 15:07 + */ + void updateLonAndLat(LonAndLatFormDTO form); +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index 01283f45c4..0d768140d9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -745,8 +745,11 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl()); - resultDTO.setAreaCode(null != agency && StringUtils.isNotBlank(agency.getAreaCode()) ? agency.getAreaCode() : StrConstant.EPMETY_STR); + if (agency != null){ + resultDTO.setAreaCodePath(!CollectionUtils.isEmpty(agency.getAreaCodePath()) ? agency.getAreaCodePath() : new ArrayList<>()); + resultDTO.setAreaCode(StringUtils.isNotBlank(agency.getAreaCode()) ? agency.getAreaCode() : StrConstant.EPMETY_STR); + resultDTO.setLevel(agency.getLevel()); + } } //获取工作人员所属客户名 CustomerDTO dto = new CustomerDTO(); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index d952fddea7..079c51dcf7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -259,8 +259,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res // 上传主表信息 log.info("======开始导入基础信息======="); - importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER.getSheetNo(), IcResiUserTableEnum.IC_RESI_USER.getHeadRowNo(), - currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnum.IC_RESI_USER.getTableName(), customerId); + importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER, + currUserAgencyId, agencyInfo.getPids(), loginUserId, customerId); // 上传附表信息 for (IcResiUserTableEnum sheet : IcResiUserTableEnum.values()) { @@ -379,19 +379,21 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * excel导入居民基本信息 * * @param formItemList - * @param sheetNo - * @param headRowNumber * @param currUserAgencyId * @param currUserAgencyPids * @param currentUserId * @return */ - private void importIcResiBaseInfoFromExcel(List formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, - String tableName, String customerId) { + private void importIcResiBaseInfoFromExcel(List formItemList, String excelPathName, IcResiUserTableEnum sheetTableEnum, String currUserAgencyId, String currUserAgencyPids, String currentUserId, + String customerId) { IcResiImportDynamicExcelListener readListener = new IcResiImportDynamicExcelListener(this, customerId, currentUserId, currUserAgencyId, currUserAgencyPids, - true, tableName, formItemList, headRowNumber); - EasyExcel.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); + true, formItemList, sheetTableEnum); + EasyExcel.read(new File(excelPathName)) + .registerReadListener(readListener) + .headRowNumber(sheetTableEnum.getHeadRowNo()) + .sheet(sheetTableEnum.getTableComment()) + .doRead(); } /** @@ -411,7 +413,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res if (sheetEnumObject.isExistsDBTable()) { IcResiImportDynamicExcelListener readListener = new IcResiImportDynamicExcelListener( this, customerId, currentUserId, currUserAgencyId, null, - false, sheetEnumObject.getTableName(), formItemList, sheetEnumObject.getHeadRowNo()); + false, formItemList, sheetEnumObject); EasyExcelFactory.read(new File(excelPathName)) .registerReadListener(readListener) @@ -645,7 +647,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 * @param targetTableName 要插入到哪一个表 */ - public void persistIcResiExtraInfo(Map headerColumnWrapper, List> dataRows, + public List persistIcResiExtraInfo(Map headerColumnWrapper, List> dataRows, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, String currentUserId, String targetTableName, String customerId) { @@ -653,6 +655,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res String loginUserCustomerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID.toLowerCase()); + // 成功处理的数据的身份证号 + List successIdCards = new ArrayList<>(); + // 遍历每一行,将行内容转化为 for (Map row : dataRows) { @@ -706,6 +711,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Objects.requireNonNull(IcResiUserTableEnum.getObjectByTableName(targetTableName)).getMainTableFlagColumnName(), existResiInfoMap); + // 将成功的居民的身份证号添加到列表中 + successIdCards.add(row.get(ID_CARD_COLUMN_NO)); } catch (Exception e) { String errorMsg; if (e instanceof RenException || e instanceof EpmetException) { @@ -725,6 +732,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnAndValues.clear(); } } + + return successIdCards; } /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index a9482f0a3e..665653b1d8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -36,26 +36,29 @@ import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; 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.redis.common.bean.HouseInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.*; import com.epmet.constant.IcPlatformConstant; import com.epmet.constant.IcResiUserConstant; import com.epmet.constant.UserConstant; +import com.epmet.dao.IcPartyMemberDao; import com.epmet.dao.IcResiUserDao; +import com.epmet.dao.IcVolunteerDao; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.IcResiDemandDictDTO; -import com.epmet.entity.IcResiUserEntity; -import com.epmet.entity.IcUserChangeDetailedEntity; -import com.epmet.entity.IcUserChangeRecordEntity; +import com.epmet.entity.*; import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.feign.*; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.*; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; @@ -130,6 +133,12 @@ public class IcResiUserServiceImpl extends BaseServiceImpl getWrapper(Map params) { String id = (String) params.get(FieldConstant.ID_HUMP); @@ -192,6 +201,17 @@ public class IcResiUserServiceImpl extends BaseServiceImpl map = new LinkedHashMap<>(); + com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO partyMemberDTO = new com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO(); + Map>> formMap = formDTO.stream().collect(Collectors.toMap(IcResiUserFormDTO::getTableName, IcResiUserFormDTO::getList)); + boolean isDyzxh = false; + //判断是否是党员中心户 + if (formMap.containsKey("ic_party_member")) { + for (LinkedHashMap hash : formMap.get("ic_party_member")) { + if (NumConstant.ONE_STR.equals(hash.get("IS_DYZXH"))) { + isDyzxh = true; + } + } + } for (IcResiUserFormDTO d : formDTO) { if ("ic_resi_user".equals(d.getTableName())) { map = d.getList().get(0); @@ -226,7 +246,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl result = govOrgOpenFeignClient.getAgencyById(agencyId); @@ -235,8 +255,40 @@ public class IcResiUserServiceImpl extends BaseServiceImpl%s", agencyId)); } + if (isDyzxh) { + map.put("IS_VOLUNTEER", NumConstant.ONE_STR); + } //新增主表数据 baseDao.add(d.getTableName(), map); + + //2022.04.19 end + //2022.05.18 start zhaoqf 党员信息同步 + if (map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(map.get("IS_PARTY"))) { + partyMemberDTO.setCustomerId(tokenDto.getCustomerId()); + partyMemberDTO.setAgencyId(agencyId); + partyMemberDTO.setAgencyPids(result.getData().getPids()); + partyMemberDTO.setIcResiUser(resiUserId); + partyMemberDTO.setName(map.get("NAME")); + partyMemberDTO.setIdCard(map.get("ID_CARD")); + partyMemberDTO.setMobile(map.get("MOBILE")); + //查询网格信息 + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(map.get("GRID_ID")); + //查询房屋信息 + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), map.get("HOME_ID")); + if (null != gridInfo && null != houseInfo) { + String address; + if (StringUtils.isNotBlank(gridInfo.getAllParentName())) { + address = gridInfo.getAllParentName().concat(StrConstant.HYPHEN).concat(gridInfo.getGridNamePath()) + .concat(StrConstant.HYPHEN).concat(houseInfo.getNeighborHoodName()) + .concat(StrConstant.HYPHEN).concat(houseInfo.getHouseName()); + } else { + address = gridInfo.getGridNamePath() + .concat(StrConstant.HYPHEN).concat(houseInfo.getNeighborHoodName()) + .concat(StrConstant.HYPHEN).concat(houseInfo.getHouseName()); + } + } + } + //2022.05.18 end zhaoqf } } //2.循环字表新增数据 @@ -252,8 +304,31 @@ public class IcResiUserServiceImpl extends BaseServiceImpl hash : d.getList()) { + partyMemberDTO.setRdsj(hash.get("RDSJ")); + partyMemberDTO.setSszb(hash.get("SSZB")); + partyMemberDTO.setIsLd(hash.get("IS_LD")); + partyMemberDTO.setLdzh(hash.get("LDZH")); + partyMemberDTO.setPartyZw(hash.get("PARTY_ZW")); + partyMemberDTO.setIsTx(hash.get("IS_TX")); + partyMemberDTO.setIsDyzxh(hash.get("IS_DYZXH")); + } + } + if ("ic_volunteer".equals(d.getTableName())) { + for (LinkedHashMap hash : d.getList()) { + partyMemberDTO.setVolunteerCategory(hash.get("VOLUNTEER_CATEGORY")); + } + } + //2022.05.18 end zhaoqf }); - + if (StringUtils.isNotBlank(partyMemberDTO.getIcResiUser())) { + Result syncResult = resiPartyMemberOpenFeignClient.icPartyMemberSync(partyMemberDTO); + if (!syncResult.success()) { + log.error("同步党员信息失败"); + } + } //3.变更记录表和变更记录明细表新增数据 saveUserChangeRecord(tokenDto,map,resiUserId,name); @@ -342,6 +417,17 @@ public class IcResiUserServiceImpl extends BaseServiceImpl map = new LinkedHashMap<>(); + com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO partyMemberDTO = new com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO(); + Map>> formMap = formDTO.stream().collect(Collectors.toMap(IcResiUserFormDTO::getTableName, IcResiUserFormDTO::getList)); + boolean isDyzxh = false; + //判断是否是党员中心户 + if (formMap.containsKey("ic_party_member")) { + for (LinkedHashMap hash : formMap.get("ic_party_member")) { + if (NumConstant.ONE_STR.equals(hash.get("IS_DYZXH"))) { + isDyzxh = true; + } + } + } for (IcResiUserFormDTO d : formDTO) { if ("ic_resi_user".equals(d.getTableName())) { map = d.getList().get(0); @@ -376,6 +462,60 @@ public class IcResiUserServiceImpl extends BaseServiceImpl NumConstant.ONE) { + if (isDyzxh) { + map.put("IS_VOLUNTEER", NumConstant.ONE_STR); + } map.put("updated_by", tokenDto.getUserId()); baseDao.upTable("ic_resi_user", resiUserId, map); } @@ -413,8 +556,31 @@ public class IcResiUserServiceImpl extends BaseServiceImpl hash : d.getList()) { + partyMemberDTO.setRdsj(hash.get("RDSJ")); + partyMemberDTO.setSszb(hash.get("SSZB")); + partyMemberDTO.setIsLd(hash.get("IS_LD")); + partyMemberDTO.setLdzh(hash.get("LDZH")); + partyMemberDTO.setPartyZw(hash.get("PARTY_ZW")); + partyMemberDTO.setIsTx(hash.get("IS_TX")); + partyMemberDTO.setIsDyzxh(hash.get("IS_DYZXH")); + } + } + if ("ic_volunteer".equals(d.getTableName())) { + for (LinkedHashMap hash : d.getList()) { + partyMemberDTO.setVolunteerCategory(hash.get("VOLUNTEER_CATEGORY")); + } + } + //2022.05.18 end zhaoqf }); - + if (StringUtils.isNotBlank(partyMemberDTO.getIcResiUser())) { + Result syncResult = resiPartyMemberOpenFeignClient.icPartyMemberSync(partyMemberDTO); + if (!syncResult.success()) { + log.error("同步党员信息失败"); + } + } return resiUserId; } @@ -1951,6 +2117,150 @@ public class IcResiUserServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getCustomerId, formDTO.getCustomerId()); + wrapper.eq(IcResiUserEntity::getIdCard, formDTO.getIdCard()); + wrapper.eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR); + user = baseDao.selectOne(wrapper); + if(null == user) { + return dto; + } + } + dto.setIcResiUser(user.getId()); + formDTO.setIcResiUser(user.getId()); + //更新居民信息并将是否是党员字段设为1 + user.setName(formDTO.getName()); + user.setMobile(formDTO.getMobile()); + user.setIsParty(NumConstant.ONE_STR); + //如果是党员中心户,则居民是志愿者 + if (NumConstant.ONE_STR.equals(formDTO.getIsDyzxh())) { + user.setIsVolunteer(NumConstant.ONE_STR); + } + user.setUpdatedBy(null); + user.setUpdatedTime(null); + baseDao.updateById(user); + + } else { + //获取居民信息 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getCustomerId, formDTO.getCustomerId()); + wrapper.eq(IcResiUserEntity::getIdCard, formDTO.getIdCard()); + wrapper.eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR); + IcResiUserEntity user = baseDao.selectOne(wrapper); + //居民信息不存在时返回 + if(null == user) { + return dto; + } + dto.setIcResiUser(user.getId()); + formDTO.setIcResiUser(user.getId()); + //更新居民信息并将是否是党员字段设为1 + user.setName(formDTO.getName()); + user.setMobile(formDTO.getMobile()); + user.setIsParty(NumConstant.ONE_STR); + //如果是党员中心户,则居民是志愿者 + if (NumConstant.ONE_STR.equals(formDTO.getIsDyzxh())) { + user.setIsVolunteer(NumConstant.ONE_STR); + } + user.setUpdatedBy(null); + user.setUpdatedTime(null); + baseDao.updateById(user); + } + + + //判断是否有党员信息,没有则新增一条,有的话就更新 + String branch = formDTO.getOrgPids(); + if (StringUtils.isNotBlank(branch)) { + branch = branch.replace(StrConstant.COLON, StrConstant.COMMA); + } else { + branch = ""; + } + formDTO.setSszb(branch.concat(formDTO.getSszb())); + LambdaQueryWrapper partyWrapper = new LambdaQueryWrapper<>(); + partyWrapper.eq(IcPartyMemberEntity::getIcResiUser, formDTO.getIcResiUser()); + IcPartyMemberEntity partyMember = icPartyMemberDao.selectOne(partyWrapper); + if (null == partyMember) { + partyMember = ConvertUtils.sourceToTarget(formDTO, IcPartyMemberEntity.class); + + icPartyMemberDao.insert(partyMember); + } else { + IcPartyMemberEntity partyMemberEntity = ConvertUtils.sourceToTarget(formDTO, IcPartyMemberEntity.class); + partyMemberEntity.setId(partyMember.getId()); + icPartyMemberDao.updateById(partyMemberEntity); + } + //获取志愿者类别 + LambdaQueryWrapper volunteerWrapper = new LambdaQueryWrapper<>(); + volunteerWrapper.eq(IcVolunteerEntity::getIcResiUser, dto.getIcResiUser()); + IcVolunteerEntity volunteer = icVolunteerDao.selectOne(volunteerWrapper); + if (null != volunteer) { + dto.setVolunteerCategory(volunteer.getVolunteerCategory()); + } + + return dto; + } + + /** + * 根据身份证获取居民信息(党员管理用,主要显示住址) + * + * @param formDTO + * @Param formDTO + * @Return {@link IcResiUserInfoDTO} + * @Author zhaoqifeng + * @Date 2022/5/20 9:59 + */ + @Override + public IcResiUserInfoDTO getUserByIdCard(IcResiUserDTO formDTO) { + IcResiUserInfoDTO result = new IcResiUserInfoDTO(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getCustomerId, formDTO.getCustomerId()); + wrapper.eq(IcResiUserEntity::getIdCard, formDTO.getIdCard()); + wrapper.eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR); + IcResiUserEntity entity = baseDao.selectOne(wrapper); + if (null != entity) { + result.setIcResiUserId(entity.getId()); + result.setName(entity.getName()); + result.setMobile(entity.getMobile()); + //查询网格信息 + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(entity.getGridId()); + //查询房屋信息 + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), entity.getHomeId()); + if (null != gridInfo && null != houseInfo) { + String address; + if (StringUtils.isNotBlank(gridInfo.getAllParentName())) { + address = gridInfo.getAllParentName().concat(StrConstant.HYPHEN).concat(gridInfo.getGridNamePath()) + .concat(StrConstant.HYPHEN).concat(houseInfo.getNeighborHoodName()) + .concat(StrConstant.HYPHEN).concat(houseInfo.getHouseName()); + } else { + address = gridInfo.getGridNamePath() + .concat(StrConstant.HYPHEN).concat(houseInfo.getNeighborHoodName()) + .concat(StrConstant.HYPHEN).concat(houseInfo.getHouseName()); + } + result.setAddress(address); + } + } + return result; + } + /** * desc:根据字段值获取 options * @param customerId diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyCategoryServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyCategoryServiceImpl.java new file mode 100644 index 0000000000..ff4aaa59d0 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyCategoryServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcVolunteerPolyCategoryDao; +import com.epmet.dto.IcVolunteerPolyCategoryDTO; +import com.epmet.entity.IcVolunteerPolyCategoryEntity; +import com.epmet.service.IcVolunteerPolyCategoryService; +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-05-19 + */ +@Service +public class IcVolunteerPolyCategoryServiceImpl extends BaseServiceImpl implements IcVolunteerPolyCategoryService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcVolunteerPolyCategoryDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcVolunteerPolyCategoryDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcVolunteerPolyCategoryDTO get(String id) { + IcVolunteerPolyCategoryEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcVolunteerPolyCategoryDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcVolunteerPolyCategoryDTO dto) { + IcVolunteerPolyCategoryEntity entity = ConvertUtils.sourceToTarget(dto, IcVolunteerPolyCategoryEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcVolunteerPolyCategoryDTO dto) { + IcVolunteerPolyCategoryEntity entity = ConvertUtils.sourceToTarget(dto, IcVolunteerPolyCategoryEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java new file mode 100644 index 0000000000..320031bbf6 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java @@ -0,0 +1,544 @@ +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.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; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +import com.epmet.commons.tools.enums.IcFormCodeEnum; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.*; +import com.epmet.dto.IcVolunteerPolyDTO; +import com.epmet.dto.VolunteerInfoDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; +import com.epmet.dto.result.ResiUserBaseInfoResultDTO; +import com.epmet.dto.result.VolunteerPolyListResultDTO; +import com.epmet.dto.result.VolunteerPolyMapDataResultDTO; +import com.epmet.dto.result.VolunteerPolyPieResultDTO; +import com.epmet.entity.*; +import com.epmet.enums.CustomizeEnum; +import com.epmet.feign.EpmetHeartOpenFeignClient; +import com.epmet.feign.OperCustomizeOpenFeignClient; +import com.epmet.service.IcVolunteerPolyCategoryService; +import com.epmet.service.IcVolunteerPolyService; +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.collections4.ListUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 志愿者信息聚合 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-19 + */ +@Service +@Slf4j +public class IcVolunteerPolyServiceImpl extends BaseServiceImpl implements IcVolunteerPolyService { + + @Resource + private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; + @Resource + private IcResiUserDao icResiUserDao; + @Resource + private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; + @Resource + private UserBaseInfoDao userBaseInfoDao; + @Resource + private IcVolunteerPolyCategoryService icVolunteerPolyCategoryService; + @Resource + private IcVolunteerPolyCategoryDao icVolunteerPolyCategoryDao; + @Resource + private IcPartyMemberDao icPartyMemberDao; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcVolunteerPolyDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcVolunteerPolyDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcVolunteerPolyDTO get(String id) { + IcVolunteerPolyEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcVolunteerPolyDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcVolunteerPolyDTO dto) { + IcVolunteerPolyEntity entity = ConvertUtils.sourceToTarget(dto, IcVolunteerPolyEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcVolunteerPolyDTO dto) { + IcVolunteerPolyEntity entity = ConvertUtils.sourceToTarget(dto, IcVolunteerPolyEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 【网格党建平面图】地图 + * + * @param form + * @return java.util.List + * @author LZN + * @date 2022/5/19 13:55 + */ + @Override + public List getMapData(VolunteerPolyMapDataFormDTO form) { + List dto = baseDao.getMapData(form.getCode(), form.getCustomerId(), form.getAgencyId()); + // 获取gridName + for (VolunteerPolyMapDataResultDTO item : dto) { + if (StringUtils.isNotEmpty(item.getGridId())) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); + if (null != gridInfo) { + item.setGridName(gridInfo.getGridName()); + } + } + // 获取houseName + if (StringUtils.isNotEmpty(item.getHomeId())) { + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(form.getCustomerId(), item.getHomeId()); + if (null != houseInfo) { + item.setHouseName(houseInfo.getHouseName()); + } + } + } + return dto; + } + + /** + * 【网格党建平面图】列表 + * + * @param form + * @return com.epmet.commons.tools.page.PageData + * @author LZN + * @date 2022/5/19 14:49 + */ + @Override + public PageData getList(VolunteerPolyListFormDTO form) { + PageHelper.startPage(form.getPageNo(), form.getPageSize()); + List result = baseDao.getList(form.getCode(), form.getCustomerId(), form.getAgencyId()); + PageInfo info = new PageInfo<>(result); + return new PageData<>(result, info.getTotal()); + } + + /** + * 志愿者数据抽取 + * + * @param customerId + * @Param customerId + * @Return void + * @Author zhaoqifeng + * @Date 2022/5/19 10:00 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void volunteerDataExtraction(String customerId) { + if (StringUtils.isEmpty(customerId)) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "客户ID不能为空", "客户ID不能为空"); + } + //获取居民信息表的志愿者 + List volunteerList = icResiUserDao.getVolunteerList(customerId, null); + if (CollectionUtils.isEmpty(volunteerList)) { + volunteerList = new ArrayList<>(); + } + //获取小程序居民端志愿者 + Result> result = epmetHeartOpenFeignClient.getVolunteerList(customerId); + if (!result.success()) { + log.error("志愿者数据抽取-获取小程序志愿者失败"); + } + List appVolunteerList = result.getData(); + appVolunteerList.forEach(item -> { + if(NumConstant.ONE_STR.equals(item.getIsParty()) && (NumConstant.ONE_STR.equals(item.getIsDyzxh()))) { + item.setVolunteerCategory(item.getVolunteerCategory().concat(",dangyuanzhongxinhu")); + } + }); + if (CollectionUtils.isNotEmpty(appVolunteerList)) { + //获取居民信息 + List userIds = appVolunteerList.stream().map(IcVolunteerPolyDTO::getUserId).collect(Collectors.toList()); + + //根据志愿者的userId获取居民信息并转成map + List userList = new ArrayList<>(); + List> partition = ListUtils.partition(userIds, NumConstant.FIFTY); + partition.forEach(part -> userList.addAll(getUserInfoList(part))); + Map userMap = userList.stream().collect(Collectors.toMap(UserBaseInfoEntity::getUserId, a -> a, (o, n) -> o)); + //将居民志愿者转成map + Map volunteerMap = volunteerList.stream().collect(Collectors.toMap(IcVolunteerPolyDTO::getIdCard, a -> a, (o, n) -> o)); + //小程序与居民信息匹配不上的志愿者 + List notInList = new ArrayList<>(); + appVolunteerList.forEach(item -> { + //补充志愿者信息 + if (userMap.containsKey(item.getUserId())) { + UserBaseInfoEntity userInfo = userMap.get(item.getUserId()); + item.setName(userInfo.getRealName()); + item.setIdCard(userInfo.getIdNum()); + item.setMobile(userInfo.getMobile()); + item.setGender(userInfo.getGender()); + } + //小程序与居民信息匹配不上的志愿者拿出来 + if (!volunteerMap.containsKey(item.getIdCard())) { + notInList.add(item); + } + }); + //将小程序的志愿者列表转成map + Map appVolunteerMap = appVolunteerList.stream().collect(Collectors.toMap(IcVolunteerPolyDTO::getIdCard, a -> a, (o, n) -> o)); + ////小程序与居民信息匹配上的志愿者userId更新到居民志愿者列表 + volunteerList.forEach(item -> { + if (appVolunteerMap.containsKey(item.getIdCard())) { + item.setUserId(appVolunteerMap.get(item.getIdCard()).getUserId()); + } + }); + volunteerList.addAll(notInList); + } + if (CollectionUtils.isNotEmpty(volunteerList)) { + //删除原数据 + baseDao.deleteDataByCustomerId(customerId); + baseDao.deleteCategoryByCustomerId(customerId); + //保存新数据 + volunteerList.forEach(item -> { + IcVolunteerPolyEntity entity = ConvertUtils.sourceToTarget(item, IcVolunteerPolyEntity.class); + baseDao.insert(entity); + List categoryList = Arrays.asList(item.getVolunteerCategory().split(StrConstant.COMMA)); + List entityList = categoryList.stream().map(o -> { + IcVolunteerPolyCategoryEntity category = new IcVolunteerPolyCategoryEntity(); + category.setCustomerId(item.getCustomerId()); + category.setIdCard(item.getIdCard()); + category.setLatitude(item.getLatitude()); + category.setLongitude(item.getLongitude()); + category.setVolunteerCategory(o); + return category; + }).collect(Collectors.toList()); + icVolunteerPolyCategoryService.insertBatch(entityList); + }); + } + } + + /** + * 志愿者变动 + * + * @param dto + * @Param dto + * @Return + * @Author zhaoqifeng + * @Date 2022/5/19 16:02 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void volunteerChanged(MqBaseFormDTO dto) { + if (StringUtils.isBlank(dto.getObjectId()) && CollectionUtils.isEmpty(dto.getObjectIdList())) { + volunteerDataExtraction(dto.getCustomerId()); + } else { + if (StringUtils.isNotBlank(dto.getObjectId())) { + icVolunteer(dto.getCustomerId(), dto.getObjectId()); + appVolunteer(dto.getCustomerId(), dto.getObjectId()); + } + if (CollectionUtils.isNotEmpty(dto.getObjectIdList())) { + dto.getObjectIdList().forEach(id -> { + icVolunteer(dto.getCustomerId(), id); + appVolunteer(dto.getCustomerId(), id); + }); + } + } + } + + /** + * 居民信息志愿者变动 + * + * @Param customerId + * @Param userId + * @Return + * @Author zhaoqifeng + * @Date 2022/5/19 16:55 + */ + private void icVolunteer(String customerId, String userId) { + IcResiUserEntity icUser = icResiUserDao.selectById(userId); + boolean isDyzxh = false; + if (null != icUser) { + //设置wrapper条件 + List volunteerList = icResiUserDao.getVolunteerList(customerId, userId); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcVolunteerPolyEntity::getCustomerId, customerId); + wrapper.eq(IcVolunteerPolyEntity::getIcResiUser, userId); + + LambdaQueryWrapper categoryWrapper = new LambdaQueryWrapper<>(); + categoryWrapper.eq(IcVolunteerPolyCategoryEntity::getCustomerId, customerId); + categoryWrapper.eq(IcVolunteerPolyCategoryEntity::getIdCard, icUser.getIdCard()); + + //判断是否党员中心户 + if (NumConstant.ONE_STR.equals(icUser.getIsParty())) { + LambdaUpdateWrapper memberWrapper = new LambdaUpdateWrapper<>(); + memberWrapper.eq(IcPartyMemberEntity::getIcResiUser, icUser.getId()); + IcPartyMemberEntity memberEntity = icPartyMemberDao.selectOne(memberWrapper); + if (null != memberEntity && NumConstant.ONE_STR.equals(memberEntity.getIsDyzxh())) { + isDyzxh = true; + } + } + //判断是否是志愿者 + if (NumConstant.ONE_STR.equals(icUser.getIsVolunteer())) { + if (CollectionUtils.isNotEmpty(volunteerList)) { + + IcVolunteerPolyEntity volunteer = baseDao.selectOne(wrapper); + IcVolunteerPolyEntity entity = ConvertUtils.sourceToTarget(volunteerList.get(NumConstant.ZERO), IcVolunteerPolyEntity.class); + if (null != volunteer) { + entity.setId(volunteer.getId()); + baseDao.updateById(entity); + } else { + baseDao.insert(entity); + } + List categoryList = new ArrayList<>(Arrays.asList(volunteerList.get(NumConstant.ZERO).getVolunteerCategory().split(StrConstant.COMMA))); + if (isDyzxh) { + categoryList.add("dangyuanzhongxinhu"); + } + List entityList = categoryList.stream().map(o -> { + IcVolunteerPolyCategoryEntity category = new IcVolunteerPolyCategoryEntity(); + category.setCustomerId(entity.getCustomerId()); + category.setIdCard(entity.getIdCard()); + if (null != volunteer) { + category.setLatitude(volunteer.getLatitude()); + category.setLongitude(volunteer.getLongitude()); + } + category.setVolunteerCategory(o); + return category; + }).collect(Collectors.toList()); + icVolunteerPolyCategoryDao.delete(categoryWrapper); + icVolunteerPolyCategoryService.insertBatch(entityList); + } + //小程序端设为志愿者 + //根据身份证获取小程序端居民信息 + LambdaQueryWrapper baseInfoWrapper = new LambdaQueryWrapper<>(); + baseInfoWrapper.eq(UserBaseInfoEntity::getCustomerId, customerId); + baseInfoWrapper.eq(UserBaseInfoEntity::getIdNum, icUser.getIdCard()); + UserBaseInfoEntity baseInfo = userBaseInfoDao.selectOne(baseInfoWrapper); + if (null != baseInfo) { + ResiVolunteerAuthenticateFormDTO formDTO = new ResiVolunteerAuthenticateFormDTO(); + formDTO.setCustomerId(customerId); + formDTO.setUserId(baseInfo.getUserId()); + formDTO.setGridId(icUser.getGridId()); + epmetHeartOpenFeignClient.addVolunteer(formDTO); + } + } else { + if (!isDyzxh) { + //删除志愿者信息 + baseDao.delete(wrapper); + icVolunteerPolyCategoryDao.delete(categoryWrapper); + } else { + IcVolunteerPolyEntity volunteer = baseDao.selectOne(wrapper); + IcVolunteerPolyEntity entity = ConvertUtils.sourceToTarget(volunteerList.get(NumConstant.ZERO), IcVolunteerPolyEntity.class); + if (null != volunteer) { + entity.setId(volunteer.getId()); + baseDao.updateById(entity); + } else { + baseDao.insert(entity); + } + + IcVolunteerPolyCategoryEntity category = new IcVolunteerPolyCategoryEntity(); + category.setCustomerId(entity.getCustomerId()); + category.setIdCard(entity.getIdCard()); + if (null != volunteer) { + category.setLatitude(volunteer.getLatitude()); + category.setLongitude(volunteer.getLongitude()); + } + category.setVolunteerCategory("dangyuanzhongxinhu"); + icVolunteerPolyCategoryDao.delete(categoryWrapper); + icVolunteerPolyCategoryService.insert(category); + } + } + } + } + + /** + * 居民端小程序志愿者变动 + * + * @Param customerId + * @Param userId + * @Return + * @Author zhaoqifeng + * @Date 2022/5/19 16:55 + */ + private void appVolunteer(String customerId, String userId) { + ResiUserBaseInfoResultDTO user = userBaseInfoDao.selecUserBaseInfoByUserId(userId); + if (null != user) { + //获取志愿者信息 + Result volunteerResult = epmetHeartOpenFeignClient.queryUserVolunteerInfo(userId); + if (!volunteerResult.success()) { + log.error("志愿者变更-获取小程序志愿者失败"); + } + + //判断是否是志愿者 + if (null != volunteerResult.getData()) { + VolunteerInfoDTO appVolunteer = volunteerResult.getData(); + //设置wrapper条件 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcVolunteerPolyEntity::getCustomerId, customerId); + wrapper.eq(IcVolunteerPolyEntity::getUserId, userId); + + LambdaQueryWrapper categoryWrapper = new LambdaQueryWrapper<>(); + categoryWrapper.eq(IcVolunteerPolyCategoryEntity::getCustomerId, customerId); + categoryWrapper.eq(IcVolunteerPolyCategoryEntity::getIdCard, user.getIdNum()); + + IcVolunteerPolyEntity volunteer = baseDao.selectOne(wrapper); + + IcVolunteerPolyEntity entity = new IcVolunteerPolyEntity(); + entity.setUserId(userId); + entity.setCustomerId(customerId); + entity.setAgencyId(appVolunteer.getPid()); + entity.setAgencyPids(appVolunteer.getPids()); + entity.setGender(user.getGender()); + entity.setName(user.getRealName()); + entity.setIdCard(user.getIdNum()); + + //根据身份证判断有没有匹配的居民信息 + LambdaQueryWrapper icUserWrapper = new LambdaQueryWrapper<>(); + icUserWrapper.eq(IcResiUserEntity::getCustomerId, customerId); + icUserWrapper.eq(IcResiUserEntity::getIdCard, user.getIdNum()); + IcResiUserEntity icResiUser = icResiUserDao.selectOne(icUserWrapper); + + + if (null != volunteer && StringUtils.isBlank(volunteer.getIcResiUser())) { + entity.setId(volunteer.getId()); + if (null != icResiUser) { + entity.setIcResiUser(icResiUser.getId()); + if (!NumConstant.ONE_STR.equals(icResiUser.getIsVolunteer())) { + IcResiUserEntity icUserEntity = new IcResiUserEntity(); + icUserEntity.setId(icResiUser.getId()); + icUserEntity.setIsVolunteer(NumConstant.ONE_STR); + icResiUserDao.updateById(icUserEntity); + } + } + baseDao.updateById(entity); + + } else if (null == volunteer) { + if (null != icResiUser) { + entity.setIcResiUser(icResiUser.getId()); + if (!NumConstant.ONE_STR.equals(icResiUser.getIsVolunteer())) { + IcResiUserEntity icUserEntity = new IcResiUserEntity(); + icUserEntity.setId(icResiUser.getId()); + icUserEntity.setIsVolunteer(NumConstant.ONE_STR); + icResiUserDao.updateById(icUserEntity); + } + } + baseDao.insert(entity); + IcVolunteerPolyCategoryEntity category = new IcVolunteerPolyCategoryEntity(); + category.setCustomerId(entity.getCustomerId()); + category.setIdCard(entity.getIdCard()); + category.setVolunteerCategory("qita"); + + icVolunteerPolyCategoryDao.delete(categoryWrapper); + icVolunteerPolyCategoryDao.insert(category); + } + } + } + } + + + private List getUserInfoList(List userIds) { + LambdaQueryWrapper userInfoWrapper = new LambdaQueryWrapper<>(); + userInfoWrapper.in(UserBaseInfoEntity::getUserId, userIds); + return userBaseInfoDao.selectList(userInfoWrapper); + } + + /** + * 【网格党建平面图】饼图 + * + * @param form + * @return com.epmet.dto.result.VolunteerPolyPieResultDTO + * @author LZN + * @date 2022/5/19 17:21 + */ + @Override + public List getStatistics(VolunteerPolyPieFormDTO form) { + + List list = baseDao.getStatistics(form); + Map map = list.stream().collect(Collectors.toMap(VolunteerPolyPieResultDTO::getCode, VolunteerPolyPieResultDTO::getValue)); + + //获取志愿者类别 + IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO(); + optionsForm.setCustomerId(form.getCustomerId()); + optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode()); + optionsForm.setColumnName("VOLUNTEER_CATEGORY"); + Result> volunteerMap = operCustomizeOpenFeignClient.getOptionsMap(optionsForm); + + Map data = volunteerMap.getData(); + data.remove(CustomizeEnum.LAO_YOU_JV_LE_BU.getCode()); + data.remove(CustomizeEnum.LOU_WEI_HUI.getCode()); + data.remove(CustomizeEnum.WEN_HUA_DUI_WU.getCode()); + data.put(CustomizeEnum.QI_TA.getCode(),CustomizeEnum.QI_TA.getName()); + + List result = Lists.newArrayList(); + data.forEach((key, label) -> { + VolunteerPolyPieResultDTO dto = new VolunteerPolyPieResultDTO(); + dto.setCode(key); + dto.setLabel(label); + dto.setValue(MapUtils.getString(map, key, NumConstant.ZERO_STR)); + result.add(dto); + }); + return result; + } + + /** + * 修改经纬度 + * + * @param form + * @return void + * @author LZN + * @date 2022/5/24 15:08 + */ + @Override + public void updateLonAndLat(LonAndLatFormDTO form) { + baseDao.updateLonAndLat(form); + } + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 12380e64c2..017e6e53b0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -158,8 +158,8 @@ public class UserServiceImpl extends BaseServiceImpl implem userWechatDao.updateByUserId(userWechatDTO); UserBaseInfoEntity baseInfo = new UserBaseInfoEntity(); - //UserBaseInfoResultDTO cache = userBaseInfoRedis.get(wxUserInfoFormDTO.getUserId()); - // 以下这段注释于21.12.22,只更新微信相关信息就可以 + //UserBaseInfoResultDTO cache = userBaseInfoRedis.get(wxUserInfoFormDTO.getUserId()); + // 以下这段注释于21.12.22,只更新微信相关信息就可以 /* UserResiInfoDTO resiInfo = userResiInfoDao.selectByUserId(wxUserInfoFormDTO.getUserId()); if(null != resiInfo && StringUtils.isNotBlank((resiInfo.getId()))) { baseInfo.setSurname(resiInfo.getSurname()); @@ -171,7 +171,6 @@ public class UserServiceImpl extends BaseServiceImpl implem }*/ - baseInfo.setUserId(wxUserInfoFormDTO.getUserId()); baseInfo.setNickname(wxUserInfoFormDTO.getNickName()); baseInfo.setHeadImgUrl(wxUserInfoFormDTO.getAvatarUrl()); @@ -181,7 +180,6 @@ public class UserServiceImpl extends BaseServiceImpl implem } /** - * * @Description 查询用户注册时间 * @param: formDTO * @Author zxc @@ -195,30 +193,37 @@ public class UserServiceImpl extends BaseServiceImpl implem } /** - * @Description 居民端获取个人信息 * @param myResiUserInfoFormDTO - * @return MyResiUserInfoResultDTO + * @return MyResiUserInfoResultDTO + * @Description 居民端获取个人信息 * @author wangc * @date 2020.05.22 19:24 **/ @Override public MyResiUserInfoResultDTO resiMyselfMsg(MyResiUserInfoFormDTO myResiUserInfoFormDTO) { - MyselfMsgResultDTO myselfMsg = baseDao.getMyselfMsg(myResiUserInfoFormDTO.getUserId()); - if(null != myselfMsg){ - MyResiUserInfoResultDTO result = ConvertUtils.sourceToTarget(myselfMsg,MyResiUserInfoResultDTO.class); + MyselfMsgResultDTO myselfMsg = baseDao.getMyselfMsg(myResiUserInfoFormDTO.getUserId()); + Result volun = epmetHeartOpenFeignClient.queryUserVolunteerInfo(myResiUserInfoFormDTO.getUserId()); + if (volun.success() && null != volun.getData()) { + myselfMsg.setVolunteerFlag("1");//志愿者 + } else { + myselfMsg.setVolunteerFlag("0"); + } + + if (null != myselfMsg) { + MyResiUserInfoResultDTO result = ConvertUtils.sourceToTarget(myselfMsg, MyResiUserInfoResultDTO.class); //registerFlag 是否已注册居民,true ,false result.setRegisterFlag(StringUtils.isNotBlank(myselfMsg.getResiId())); // 已录入身份证号:true;未完善:false. result.setCompleteIdNum(StringUtils.isNotBlank(myselfMsg.getIdNum())); result.setRegisterGridName(ModuleConstant.EMPTY_STR); - if(StringUtils.isNotBlank(myselfMsg.getGridId())){ + if (StringUtils.isNotBlank(myselfMsg.getGridId())) { //registerGridName 当前在哪个网格,显示哪个网格的名称 CustomerGridFormDTO gridId = new CustomerGridFormDTO(); gridId.setGridId(myResiUserInfoFormDTO.getGridId()); Result gridResult = govOrgFeignClient.getCustomerGridByGridId(gridId); - if(gridResult.success() && null != gridResult.getData() && null != gridResult.getData().getGridName()){ + if (gridResult.success() && null != gridResult.getData() && null != gridResult.getData().getGridName()) { result.setRegisterGridName(gridResult.getData().getGridName()); - }else { + } else { if (StringUtils.isNotBlank(gridResult.getMsg())) { log.warn(gridResult.getMsg()); } @@ -235,7 +240,7 @@ public class UserServiceImpl extends BaseServiceImpl implem CommonUserFormDTO pointParam = new CommonUserFormDTO(); pointParam.setCustomerId(myResiUserInfoFormDTO.getCustomerId()); Result pointResult = epmetPointOpenFeignClient.myPoint(pointParam); - if(pointResult.success() && null != pointResult.getData()){ + if (pointResult.success() && null != pointResult.getData()) { //累计积分 result.setPoint(pointResult.getData().getUsablePoint()); //今日已获得积分,用于积分任务列表显示 @@ -314,7 +319,7 @@ public class UserServiceImpl extends BaseServiceImpl implem } /** - * @Description 新增或更新用户信息 + * @Description 新增或更新用户信息 * @Param formDTO * @author zxc * @date 2021/1/19 上午10:35 @@ -323,7 +328,7 @@ public class UserServiceImpl extends BaseServiceImpl implem public UserDTO saveUserInfo(UserInfoFormDTO formDTO) { UserDTO result = new UserDTO(); UserDTO userDTO = userWechatDao.selectUserDTOByUid(formDTO.getUid(), formDTO.getApp()); - if (null == userDTO){ + if (null == userDTO) { // 用户不存在 //user表新增 UserEntity userEntity = new UserEntity(); @@ -346,7 +351,7 @@ public class UserServiceImpl extends BaseServiceImpl implem throw new RenException(UserConstant.SAVE_USER_WECHAT); } result.setId(userEntity.getId()); - }else { + } else { // 用户已存在 formDTO.setUserId(userDTO.getId()); if (userWechatDao.editByUserId(formDTO) < NumConstant.ONE) { @@ -392,11 +397,11 @@ public class UserServiceImpl extends BaseServiceImpl implem } ResiUserResDTO resiUserResDTO = ConvertUtils.sourceToTarget(formDTO, ResiUserResDTO.class); if (StringUtils.isNotBlank(formDTO.getIdNum())) { - List userBaseInfoList = userBaseInfoService.getCommonIdNumUser(formDTO.getCustomerId(),formDTO.getIdNum()); + List userBaseInfoList = userBaseInfoService.getCommonIdNumUser(formDTO.getCustomerId(), formDTO.getIdNum()); if (CollectionUtils.isEmpty(userBaseInfoList)) { log.info("user_base_info没有找到,去查下user_resi_info表吧"); - List userResiInfoDTO = userResiInfoDao.selectCommonIdNumUser(formDTO.getCustomerId(),formDTO.getIdNum()); - resiUserResDTO.setEpmetUserIdList(CollectionUtils.isNotEmpty(userResiInfoDTO) ? userResiInfoDTO.stream().map(UserResiInfoDTO::getUserId).collect(Collectors.toList()): new ArrayList<>()); + List userResiInfoDTO = userResiInfoDao.selectCommonIdNumUser(formDTO.getCustomerId(), formDTO.getIdNum()); + resiUserResDTO.setEpmetUserIdList(CollectionUtils.isNotEmpty(userResiInfoDTO) ? userResiInfoDTO.stream().map(UserResiInfoDTO::getUserId).collect(Collectors.toList()) : new ArrayList<>()); } else { resiUserResDTO.setEpmetUserIdList(userBaseInfoList.stream().map(UserBaseInfoDTO::getUserId).collect(Collectors.toList())); } @@ -412,20 +417,20 @@ public class UserServiceImpl extends BaseServiceImpl implem */ @Override public EpmetUserFamilyDTO findIcUser(FindIcUserFormDTO findIcUserFormDTO) { - EpmetUserFamilyDTO result=new EpmetUserFamilyDTO(); - String idNum=baseDao.selectIdNum(findIcUserFormDTO.getCustomerId(),findIcUserFormDTO.getEpmetUserId()); - if(StringUtils.isNotBlank(idNum)){ + EpmetUserFamilyDTO result = new EpmetUserFamilyDTO(); + String idNum = baseDao.selectIdNum(findIcUserFormDTO.getCustomerId(), findIcUserFormDTO.getEpmetUserId()); + if (StringUtils.isNotBlank(idNum)) { //同客户下,相同身份证号的,epmetuser - List epmetUserIdList=baseDao.selectCommonEpmetUser(idNum,findIcUserFormDTO.getCustomerId()); + List epmetUserIdList = baseDao.selectCommonEpmetUser(idNum, findIcUserFormDTO.getCustomerId()); result.setEpmetUserIdList(epmetUserIdList); //找到该身份证号的居民 - IcResiUserDTO icResiUserDTO=icResiUserService.getByIdCard(findIcUserFormDTO.getCustomerId(),idNum,null); - if(null!=icResiUserDTO){ + IcResiUserDTO icResiUserDTO = icResiUserService.getByIdCard(findIcUserFormDTO.getCustomerId(), idNum, null); + if (null != icResiUserDTO) { result.setIcResiUserId(icResiUserDTO.getId()); result.setIcUserName(icResiUserDTO.getName()); result.setHouseId(icResiUserDTO.getHomeId()); - IcResiUserBriefDTO icResiUserBriefDTO=icResiUserService.findFamilyMem(icResiUserDTO.getId()); - result.setHouseUserList(null!=icResiUserBriefDTO&&CollectionUtils.isNotEmpty(icResiUserBriefDTO.getHouseUserList())?icResiUserBriefDTO.getHouseUserList():new ArrayList<>()); + IcResiUserBriefDTO icResiUserBriefDTO = icResiUserService.findFamilyMem(icResiUserDTO.getId()); + result.setHouseUserList(null != icResiUserBriefDTO && CollectionUtils.isNotEmpty(icResiUserBriefDTO.getHouseUserList()) ? icResiUserBriefDTO.getHouseUserList() : new ArrayList<>()); } } result.setEpmetUserIdList(Arrays.asList(findIcUserFormDTO.getEpmetUserId())); @@ -440,27 +445,27 @@ public class UserServiceImpl extends BaseServiceImpl implem @Transactional(rollbackFor = Exception.class) @Override public void modifyRegGrid(ModifyRegGridFormDTO formDTO) { - GridInfoCache newGridInfo= CustomerOrgRedis.getGridInfo(formDTO.getGridId()); - RegisterRelationEntity originReg=registerRelationDao.selectRegisteredGridIdByUserIdAndCustomerId(formDTO.getUserId(),formDTO.getCustomerId()); + GridInfoCache newGridInfo = CustomerOrgRedis.getGridInfo(formDTO.getGridId()); + RegisterRelationEntity originReg = registerRelationDao.selectRegisteredGridIdByUserIdAndCustomerId(formDTO.getUserId(), formDTO.getCustomerId()); if (null == newGridInfo || null == originReg) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询网格信息异常", "服务器开小差了..."); } //修改register_relation表 - LambdaQueryWrapper originWrapper=new LambdaQueryWrapper(); - originWrapper.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) - .eq(RegisterRelationEntity::getUserId,formDTO.getUserId()) + LambdaQueryWrapper originWrapper = new LambdaQueryWrapper(); + originWrapper.eq(RegisterRelationEntity::getCustomerId, formDTO.getCustomerId()) + .eq(RegisterRelationEntity::getUserId, formDTO.getUserId()) .eq(RegisterRelationEntity::getFirstRegister, NumConstant.ONE_STR); //1、删除废弃网格的(现在生产存在同一个用户相同的网格id多条记录,所以用delete方法) registerRelationDao.delete(originWrapper); //2、删除用户与当前选择的网格的关系,新插入一条注册关系, - LambdaQueryWrapper deleteWrapper=new LambdaQueryWrapper(); - deleteWrapper.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) - .eq(RegisterRelationEntity::getUserId,formDTO.getUserId()) + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper(); + deleteWrapper.eq(RegisterRelationEntity::getCustomerId, formDTO.getCustomerId()) + .eq(RegisterRelationEntity::getUserId, formDTO.getUserId()) .eq(RegisterRelationEntity::getGridId, formDTO.getGridId()); registerRelationDao.delete(deleteWrapper); - RegisterRelationEntity insert=new RegisterRelationEntity(); + RegisterRelationEntity insert = new RegisterRelationEntity(); insert.setCustomerId(formDTO.getCustomerId()); insert.setGridId(formDTO.getGridId()); insert.setUserId(formDTO.getUserId()); @@ -470,29 +475,30 @@ public class UserServiceImpl extends BaseServiceImpl implem registerRelationDao.insert(insert); //2、修改历史徽章表 - LambdaUpdateWrapper recUpdate=new LambdaUpdateWrapper<>(); - recUpdate.set(UserBadgeCertificateRecordEntity::getGridId,newGridInfo.getId()) - .set(UserBadgeCertificateRecordEntity::getUpdatedBy,formDTO.getUserId()) - .set(UserBadgeCertificateRecordEntity::getUpdatedTime,new Date()); - recUpdate.eq(UserBadgeCertificateRecordEntity::getCustomerId,formDTO.getCustomerId()) - .eq(UserBadgeCertificateRecordEntity::getUserId,formDTO.getUserId()); - userBadgeCertificateRecordDao.update(null,recUpdate); - - LambdaUpdateWrapper badgeUpdate=new LambdaUpdateWrapper<>(); - badgeUpdate.set(ResiUserBadgeEntity::getGridId,newGridInfo.getId()) - .set(ResiUserBadgeEntity::getUpdatedBy,formDTO.getUserId()) - .set(ResiUserBadgeEntity::getUpdatedTime,new Date());; - badgeUpdate.eq(ResiUserBadgeEntity::getCustomerId,formDTO.getCustomerId()) - .eq(ResiUserBadgeEntity::getUserId,formDTO.getUserId()); - resiUserBadgeDao.update(null,badgeUpdate); + LambdaUpdateWrapper recUpdate = new LambdaUpdateWrapper<>(); + recUpdate.set(UserBadgeCertificateRecordEntity::getGridId, newGridInfo.getId()) + .set(UserBadgeCertificateRecordEntity::getUpdatedBy, formDTO.getUserId()) + .set(UserBadgeCertificateRecordEntity::getUpdatedTime, new Date()); + recUpdate.eq(UserBadgeCertificateRecordEntity::getCustomerId, formDTO.getCustomerId()) + .eq(UserBadgeCertificateRecordEntity::getUserId, formDTO.getUserId()); + userBadgeCertificateRecordDao.update(null, recUpdate); + + LambdaUpdateWrapper badgeUpdate = new LambdaUpdateWrapper<>(); + badgeUpdate.set(ResiUserBadgeEntity::getGridId, newGridInfo.getId()) + .set(ResiUserBadgeEntity::getUpdatedBy, formDTO.getUserId()) + .set(ResiUserBadgeEntity::getUpdatedTime, new Date()); + ; + badgeUpdate.eq(ResiUserBadgeEntity::getCustomerId, formDTO.getCustomerId()) + .eq(ResiUserBadgeEntity::getUserId, formDTO.getUserId()); + resiUserBadgeDao.update(null, badgeUpdate); //3、修改支援者信息表 - modifyVolunteerGrid(formDTO,newGridInfo); + modifyVolunteerGrid(formDTO, newGridInfo); //4、删除用户缓存信息 userBaseInfoRedis.clearUserCache(Arrays.asList(formDTO.getUserId())); //5、插入用户注册网格变更记录 - UserRegGridChangeRecEntity log=new UserRegGridChangeRecEntity(); + UserRegGridChangeRecEntity log = new UserRegGridChangeRecEntity(); log.setCustomerId(formDTO.getCustomerId()); log.setUserId(formDTO.getUserId()); log.setOriginGridId(originReg.getGridId()); @@ -501,14 +507,14 @@ public class UserServiceImpl extends BaseServiceImpl implem } private void modifyVolunteerGrid(ModifyRegGridFormDTO formDTO, GridInfoCache newGridInfo) { - VolunteerInfoDTO volunteerInfoDTO=new VolunteerInfoDTO(); + VolunteerInfoDTO volunteerInfoDTO = new VolunteerInfoDTO(); volunteerInfoDTO.setCustomerId(formDTO.getCustomerId()); volunteerInfoDTO.setUserId(formDTO.getUserId()); volunteerInfoDTO.setGridId(newGridInfo.getId()); volunteerInfoDTO.setPid(newGridInfo.getPid()); volunteerInfoDTO.setPids(newGridInfo.getPids()); volunteerInfoDTO.setGridName(newGridInfo.getGridName()); - Result volunteerRes=epmetHeartOpenFeignClient.modifyVolunteerGrid(volunteerInfoDTO); + Result volunteerRes = epmetHeartOpenFeignClient.modifyVolunteerGrid(volunteerInfoDTO); if (!volunteerRes.success()) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:修改用户志愿者信息异常", "服务器开小差了..."); } diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.50__ic_volunteer.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.50__ic_volunteer.sql new file mode 100644 index 0000000000..621c0c6f63 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.50__ic_volunteer.sql @@ -0,0 +1,41 @@ +CREATE TABLE `ic_volunteer_poly` +( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', + `USER_ID` varchar(64) DEFAULT NULL COMMENT '居民端用户id', + `IC_RESI_USER` varchar(64) DEFAULT NULL COMMENT '对应的ic_resi_user主表Id', + `AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '行政组织 机关ID', + `AGENCY_PIDS` varchar(255) DEFAULT NULL COMMENT '行政组织 机关ID', + `NAME` varchar(32) NOT NULL COMMENT '居住成员1姓名', + `ID_CARD` varchar(18) NOT NULL COMMENT '身份证号', + `MOBILE` varchar(15) DEFAULT NULL COMMENT '手机号', + `GENDER` char(2) DEFAULT NULL COMMENT '性别', + `LONGITUDE` varchar(64) DEFAULT NULL COMMENT '经度', + `LATITUDE` varchar(64) DEFAULT NULL COMMENT '纬度', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 COMMENT ='志愿者信息聚合'; + +CREATE TABLE `ic_volunteer_poly_category` +( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', + `ID_CARD` varchar(18) NOT NULL COMMENT '身份证号', + `VOLUNTEER_CATEGORY` varchar(256) DEFAULT NULL COMMENT '类别【字典表】', + `LONGITUDE` varchar(64) DEFAULT NULL COMMENT '经度', + `LATITUDE` varchar(64) DEFAULT NULL COMMENT '纬度', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 COMMENT ='志愿者信息聚合,志愿者类别表'; \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcPartyMemberDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcPartyMemberDao.xml new file mode 100644 index 0000000000..3dbbb08b3d --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcPartyMemberDao.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 26f6df3e3d..13de5c56e1 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -1005,4 +1005,59 @@ AND ubi.CUSTOMER_ID = #{customerId} AND ubi.ID_NUM = #{idCard} + + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerDao.xml new file mode 100644 index 0000000000..5e1de8852a --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerDao.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyCategoryDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyCategoryDao.xml new file mode 100644 index 0000000000..0029247482 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyCategoryDao.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml new file mode 100644 index 0000000000..e8bec0b3b8 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE ic_volunteer_poly p + SET p.LONGITUDE = #{form.longitude}, + p.LATITUDE = #{form.latitude}, + p.UPDATED_TIME = NOW() + WHERE + p.USER_ID = #{form.userId} + AND p.customer_id = #{form.customerId} + + + + + + delete from ic_volunteer_poly where CUSTOMER_ID = #{customerId} + + + delete from ic_volunteer_poly_category where CUSTOMER_ID = #{customerId} + + \ No newline at end of file