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
+
+ SELECT
+ a.id,
+-- b.GRID_ID,
+ a.UNIT_NAME,
+ a.type,
+ a.SERVICE_MATTER,
+ a.LONGITUDE,
+ a.LATITUDE
+ FROM
+ ic_party_unit a
+-- LEFT JOIN ic_party_activity b ON a.id = b.UNIT_ID
+-- AND b.DEL_FLAG = '0'
+
+ a.DEL_FLAG = '0'
+ AND a.CUSTOMER_ID = #{customerId}
+ AND (AGENCY_ID = #{form.agencyId} OR PIDS LIKE concat( '%', #{form.agencyId}, '%' ))
+
+
+
+
+ AND a.UNIT_NAME = #{form.unitName}
+
+
+ AND a.SERVICE_MATTER = #{form.serviceMatter}
+
+
+ AND a.type = #{form.type}
+
+
+ AND a.CONTACT = #{form.contact}
+
+
+ AND a.CONTACT_MOBILE = #{form.contactMobile}
+
+
+ order by
+ a.CREATED_TIME
+
+
+ SELECT
+ count( a.id ) AS value,
+ a.type AS CODE
+ FROM
+ ic_party_unit a
+ WHERE
+ a.DEL_FLAG = '0'
+ AND a.AGENCY_ID = #{agencyId}
+ AND a.CUSTOMER_ID = #{customerId}
+ GROUP BY
+ a.type
+
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcVolunteerDataExtractionTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcVolunteerDataExtractionTask.java
new file mode 100644
index 0000000000..b599811e13
--- /dev/null
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcVolunteerDataExtractionTask.java
@@ -0,0 +1,45 @@
+package com.epmet.task.ic;
+
+import com.alibaba.fastjson.JSON;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.extract.form.ExtractOriginFormDTO;
+import com.epmet.feign.EpmetUserOpenFeignClient;
+import com.epmet.task.ITask;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2022/5/23 10:58
+ */
+@Slf4j
+@Component("icVolunteerDataExtractionTask")
+public class IcVolunteerDataExtractionTask implements ITask {
+
+ @Resource
+ private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
+
+ /**
+ * 执行定时任务接口
+ *
+ * @param params 参数,多参数使用JSON数据
+ */
+ @Override
+ public void run(String params) {
+ log.info("icVolunteerDataExtractionTask定时任务正在执行,参数为:{}", params);
+ ExtractOriginFormDTO formDTO = new ExtractOriginFormDTO();
+ if (StringUtils.isNotBlank(params)) {
+ formDTO = JSON.parseObject(params, ExtractOriginFormDTO.class);
+ }
+ Result result = epmetUserOpenFeignClient.volunteerDataExtraction(formDTO.getCustomerId());
+ if (result.success()) {
+ log.info("icVolunteerDataExtractionTask定时任务正在执行定时任务执行成功");
+ } else {
+ log.warn("icVolunteerDataExtractionTask定时任务正在执行定时任务执行失败:" + result.getMsg());
+ }
+ }
+}
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
index ca857bf0f5..13f409ca36 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
@@ -105,6 +105,11 @@ public interface SystemMessageType {
*/
String IC_RESI_USER_DEL = "ic_resi_user_del";
+ /**
+ * 志愿者变动
+ */
+ String VOLUNTEER_CHANGED = "volunteer_changed";
+
/**
* 需求完成,如果服务方是区域化党建单位,重新计算这个单位的满意度
*/
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SystemMsgFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SystemMsgFormDTO.java
index 24dbd8694f..dba68dfe74 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SystemMsgFormDTO.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SystemMsgFormDTO.java
@@ -1,9 +1,13 @@
package com.epmet.dto.form;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
+@AllArgsConstructor
+@NoArgsConstructor
@Data
public class SystemMsgFormDTO {
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
index fa5d21967a..debd15686f 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
@@ -3,6 +3,7 @@ package com.epmet.send;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.messages.*;
import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
import com.epmet.dto.form.SystemMsgFormDTO;
@@ -207,6 +208,35 @@ public class SendMqMsgUtil {
return true;
}
log.error("发送(项目变动)系统消息到message服务失败:{},msg:{}", JSON.toJSONString(sendMsgResult), JSON.toJSONString(systemMsgFormDTO));
+ } catch (Exception e) {
+ log.error("sendProjectMqMsg exception", e);
+ }
+ return false;
+ }
+
+ /**
+ * desc: 发送mq消息
+ *
+ * @param msgContent
+ * @return boolean
+ * @author LiuJanJun
+ * @date 2021/4/23 3:01 下午
+ * @remark 失败重试1次,调用端自行判断如果失败是否要继续执行
+ */
+ public boolean sendRocketMqMsg(String msgType, MqBaseFormDTO msgContent) {
+ try {
+ SystemMsgFormDTO form = new SystemMsgFormDTO(msgType,msgContent);
+ Result sendMsgResult;
+ log.info("sendRocketMqMsg param:{}",msgContent);
+ int retryTime = 0;
+ do {
+ sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(form);
+ } while ((sendMsgResult == null || !sendMsgResult.success()) && retryTime++ < NumConstant.TWO);
+
+ if (sendMsgResult != null && sendMsgResult.success()) {
+ return true;
+ }
+ log.error("发送系统消息到message服务失败:{},msg:{}", JSON.toJSONString(sendMsgResult), JSON.toJSONString(form));
} catch (Exception e) {
log.error("sendMqMsg exception", e);
}
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
index 77fe52d141..3e210d13a0 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
@@ -230,6 +230,10 @@ public class SystemMessageServiceImpl implements SystemMessageService {
case SystemMessageType.FINISH_USER_DEMAND:
topic=TopicConstants.COMMUNITY_SERVICE;
break;
+ //志愿者变动
+ case SystemMessageType.VOLUNTEER_CHANGED:
+ topic=TopicConstants.VOLUNTEER;
+ break;
default:
logger.error("getTopicByMsgType msgType:{} is not support for any topic", msgType);
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java
new file mode 100644
index 0000000000..1114c0276c
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/OrgTreeByUserAndTypeFormDTO.java
@@ -0,0 +1,34 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @program: epmet-cloud
+ * @description:
+ * @author: wangtong
+ * @create: 2022-05-18 16:46
+ **/
+@Data
+public class OrgTreeByUserAndTypeFormDTO implements Serializable {
+
+ @NotNull(message ="组织id不可为空")
+ private String agencyId;
+
+ /**
+ * 党组织类型 0省委,1市委,2区委,3党工委,4党委
+ */
+ @NotNull(message ="组织类型不可为空")
+ private String orgType;
+
+ /**
+ * 客户Id (customer.id)
+ */
+ private String customerId;
+
+
+ private List orgTypeList;
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java
new file mode 100644
index 0000000000..510c1c1fe0
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/PartyOrgTreeResultDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.dto.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-18 16:48
+ **/
+@Data
+public class PartyOrgTreeResultDTO implements Serializable {
+
+ /**
+ * 行政组织id
+ */
+ private String id;
+
+ /**
+ * 行政组织pid
+ */
+ private String pid;
+
+ /**
+ * 行政组织名称
+ */
+ private String name;
+
+ /**
+ * 行政组织等级
+ */
+ private String level;
+
+ /**
+ * 行政组织父ids
+ */
+ private String pids;
+
+ private List children = new ArrayList<>();
+}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
index 0cd507876d..4cf6f529c3 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
@@ -313,6 +313,20 @@ public class CustomerAgencyController {
return new Result().ok(customerAgencyService.staffPermissionExt(tokenDto.getUserId()));
}
+ /**
+ * @describe: 通过用户所属的行政组织和行政类型,查询下级的组织树
+ * @author wangtong
+ * @date 2022/5/18 16:50
+ * @params [formDto]
+ * @return com.epmet.commons.tools.utils.Result>
+ */
+ @GetMapping("getOrgTreeByUserAndType")
+ Result> getOrgTreeByUserAndType(@LoginUser TokenDto tokenDTO,OrgTreeByUserAndTypeFormDTO formDto){
+ ValidatorUtils.validateEntity(formDto);
+ formDto.setCustomerId(tokenDTO.getCustomerId());
+ return customerAgencyService.getOrgTreeByUserAndType(formDto);
+ }
+
/**
* @Description 根据组织或网格或吧部门获取组织信息
* @Param formDTO
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
index 8e6ad94ea2..c79551d32a 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
@@ -30,11 +30,14 @@ import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.dto.form.IcHouseFormDTO;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.redis.common.bean.HouseInfoCache;
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.ExcelFillRowMergeStrategy;
@@ -288,6 +291,12 @@ public class HouseController implements ResultDataResolver {
return new Result().ok(houseService.getHouseInfoDTO(tokenDto.getCustomerId(), houseId));
}
+ @PostMapping("getHouseInfoCache")
+ public Result getHouseInfoCache(@RequestBody IcHouseFormDTO houseInfo) {
+ HouseInfoDTO house = houseService.getHouseInfoDTO(houseInfo.getCustomerId(), houseInfo.getHouseId());
+ return new Result().ok(ConvertUtils.sourceToTarget(house, HouseInfoCache.class));
+ }
+
/**
* @Author sun
* @Description 【人房】房屋总数饼图
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
index d81fcd8367..1da4e74a33 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
@@ -19,6 +19,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomerAgencyDTO;
+import com.epmet.dto.form.OrgTreeByUserAndTypeFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerAgencyEntity;
import org.apache.ibatis.annotations.Mapper;
@@ -317,5 +318,13 @@ public interface CustomerAgencyDao extends BaseDao {
List getCommunityList(@Param("customerId")String customerId, @Param("agencyId")String agencyId);
List selectSubOrg(String agencyId);
+ /**
+ * @describe: 通过用户所属的行政组织和行政类型,查询下级的组织树
+ * @author wangtong
+ * @date 2022/5/18 17:23
+ * @params [formDto]
+ * @return java.util.List
+ */
+ List getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
index a8c661d76b..15694bcc6d 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
@@ -295,4 +295,13 @@ public interface CustomerAgencyService extends BaseService
* @return
*/
List subOrgList(String agencyId);
+
+ /**
+ * @describe: 通过用户所属的行政组织和行政类型,查询下级的组织树
+ * @author wangtong
+ * @date 2022/5/18 16:53
+ * @params [formDto]
+ * @return com.epmet.commons.tools.utils.Result>
+ */
+ Result> getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
index 3206792b9b..4dbf5a20bb 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
@@ -24,6 +24,7 @@ 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.enums.PartyOrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
@@ -44,6 +45,7 @@ import com.epmet.entity.CustomerAgencyEntity;
import com.epmet.entity.CustomerDepartmentEntity;
import com.epmet.entity.CustomerGridEntity;
import com.epmet.entity.CustomerOrgParameterEntity;
+import com.epmet.enums.OrgLevelEnums;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
@@ -1442,6 +1444,77 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl> getOrgTreeByUserAndType(OrgTreeByUserAndTypeFormDTO formDto) {
+ List orgTypeList = new ArrayList<>();
+ //根据组织类型筛选,例如本账号所属市北区,但只筛选市北区下面的的街道组织
+ if(PartyOrgTypeEnum.PROVINCIAL.getCode().equals(formDto.getOrgType())){
+ //省委
+ CollectionUtils.addAll(orgTypeList,
+ OrgLevelEnums.PROVINCE.getLevel(),
+ OrgLevelEnums.CITY.getLevel(),
+ OrgLevelEnums.DISTRICT.getLevel(),
+ OrgLevelEnums.STREET.getLevel(),
+ OrgLevelEnums.COMMUNITY.getLevel(),
+ OrgLevelEnums.GRID.getLevel());
+ }else if(PartyOrgTypeEnum.MUNICIPAL.getCode().equals(formDto.getOrgType())){
+ //市委
+ CollectionUtils.addAll(orgTypeList,
+ OrgLevelEnums.CITY.getLevel(),
+ OrgLevelEnums.DISTRICT.getLevel(),
+ OrgLevelEnums.STREET.getLevel(),
+ OrgLevelEnums.COMMUNITY.getLevel(),
+ OrgLevelEnums.GRID.getLevel());
+ }else if(PartyOrgTypeEnum.DISTRICT.getCode().equals(formDto.getOrgType())){
+ //区委
+ CollectionUtils.addAll(orgTypeList,
+ OrgLevelEnums.DISTRICT.getLevel(),
+ OrgLevelEnums.STREET.getLevel(),
+ OrgLevelEnums.COMMUNITY.getLevel(),
+ OrgLevelEnums.GRID.getLevel());
+ }else if(PartyOrgTypeEnum.WORKING.getCode().equals(formDto.getOrgType())){
+ //党工委-街道
+ CollectionUtils.addAll(orgTypeList,
+ OrgLevelEnums.STREET.getLevel(),
+ OrgLevelEnums.COMMUNITY.getLevel(),
+ OrgLevelEnums.GRID.getLevel());
+ }else if(PartyOrgTypeEnum.PARTY.getCode().equals(formDto.getOrgType())){
+ //党委-社区
+ CollectionUtils.addAll(orgTypeList,
+ OrgLevelEnums.COMMUNITY.getLevel(),
+ OrgLevelEnums.GRID.getLevel());
+ }
+ formDto.setOrgTypeList(orgTypeList);
+
+ List list = baseDao.getOrgTreeByUserAndType(formDto);
+ return new Result>().ok(build(list));
+ }
+
+ /**
+ * 构建树节点
+ */
+ public static List build(List treeNodes) {
+ List result = new ArrayList<>();
+
+ //list转map
+ Map nodeMap = new LinkedHashMap<>(treeNodes.size());
+ for(PartyOrgTreeResultDTO treeNode : treeNodes){
+ nodeMap.put(treeNode.getId(), treeNode);
+ }
+
+ for(PartyOrgTreeResultDTO node : nodeMap.values()) {
+ PartyOrgTreeResultDTO parent = nodeMap.get(node.getPid());
+ if(parent != null && !(node.getId().equals(parent.getId()))){
+ parent.getChildren().add(node);
+ continue;
+ }
+
+ result.add(node);
+ }
+
+ return result;
+ }
+
/**
* 当前agencyId的下一级组织+直属网格
*
diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
index 50fbf27003..b4f7dc0af3 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
+++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
@@ -782,4 +782,24 @@
cg.DEL_FLAG = '0'
AND cg.PID = #{agencyId}
+
+ SELECT id,
+ pid,
+ pids,
+ ORGANIZATION_NAME as name,
+ level
+ FROM `customer_agency`
+ where
+ DEL_FLAG='0'
+ and CUSTOMER_ID=#{customerId}
+ and (id=#{agencyId}
+ or PIDS LIKE concat('%',#{agencyId}, '%' ))
+
+ and level IN
+
+ #{item}
+
+
+ order by CREATED_TIME desc
+
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