diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 515ce8e760..d5645f214d 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -594,4 +594,14 @@ public class RedisKeys { public static String getIcFormKeyForExport(String formCode,String customerId) { return rootPrefix.concat("icform:").concat(formCode).concat(":export:").concat(customerId); } + + /** + * icd form items key + * @param customerId + * @param formCode + * @return + */ + public static String getIcFormItemsKey(String customerId, String formCode) { + return rootPrefix.concat("icform:").concat(formCode).concat(":items:").concat(customerId); + } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index 06da023015..1170a08309 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -17,6 +17,9 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -24,6 +27,8 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcFormDao; import com.epmet.dto.IcFormDTO; @@ -36,12 +41,15 @@ import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.IcFormService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Optional; /** * 配置表单 @@ -53,6 +61,9 @@ import java.util.Map; public class IcFormServiceImpl extends BaseServiceImpl implements IcFormService { @Autowired private CustomerFootBarRedis customerFootBarRedis; + + @Autowired + private RedisUtils redisUtils; @Override public PageData page(Map params) { @@ -134,6 +145,16 @@ public class IcFormServiceImpl extends BaseServiceImpl @Override public List listItems(String customerId, String formCode) { + // 从redis取 + String icFormItemsKey = RedisKeys.getIcFormItemsKey(customerId, formCode); + + Object objValue = redisUtils.get(icFormItemsKey); + if (objValue != null) { + return ((JSONArray) objValue).toJavaList(FormItem.class); + //return JSON.parseObject((String) objValue, type); + } + + // 从db取 CustomerFormResultDTO formResultDto=baseDao.selectByCode(customerId, formCode); if (null == formResultDto) { throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(),EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); @@ -143,6 +164,9 @@ public class IcFormServiceImpl extends BaseServiceImpl formItems.forEach(i -> { i.setOptions(baseDao.selectListOption(i.getItemId())); }); + + // 缓存 + redisUtils.set(icFormItemsKey, formItems); return formItems; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java index bde896c27c..6a89bb2037 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java @@ -27,7 +27,7 @@ public class PersonDataResultDTO implements Serializable { /** * 人员类别 */ - private String personCategory; + private List personCategory; /** * 网格名 @@ -59,7 +59,7 @@ public class PersonDataResultDTO implements Serializable { public PersonDataResultDTO() { this.workUnit = ""; - this.personCategory = ""; + this.personCategory = new ArrayList<>(); this.gridName = ""; this.name = ""; this.financialSituation = new FinancialSituationDTO(); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/IcPlatformConstant.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/IcPlatformConstant.java new file mode 100644 index 0000000000..8bfac04bcc --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/IcPlatformConstant.java @@ -0,0 +1,16 @@ +package com.epmet.constant; + +/** + * @Author zxc + * @DateTime 2021/11/8 11:05 上午 + * @DESC + */ +public interface IcPlatformConstant { + + /** + * 人员类别显示 + */ + String PERSON_CATEGORY_SHOW = "show"; + String PERSON_CATEGORY_HIDDEN = "hidden"; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 4825f7abaa..c3ed3df1f9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -133,4 +133,13 @@ public interface IcResiUserDao extends BaseDao { */ List selectVolunteerByUserId(@Param("userId")String userId); + /** + * @Description 查询人员类别 + * @param columns + * @author zxc + * @date 2021/11/8 1:50 下午 + */ + Map selectPersonType(@Param("columns")List columns,@Param("customerId")String customerId, + @Param("tableName")String tableName); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 59fe112b31..0ad386f461 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -37,12 +38,14 @@ import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.IcPlatformConstant; import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserConstant; import com.epmet.dao.IcResiUserDao; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.IcHouseDTO; +import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -56,6 +59,7 @@ import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -526,6 +530,33 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> categoryListResult = operCustomizeOpenFeignClient.getCategoryList(dto); + if (!categoryListResult.success()){ + throw new RenException("查询客户下的人员类别失败..."); + } + List categoryData = categoryListResult.getData(); + if (!CollectionUtils.isEmpty(categoryData)){ + Map> groupByStatus = categoryData.stream().collect(Collectors.groupingBy(IcResiCategoryStatsConfigDTO::getStatus)); + List showList = groupByStatus.get(IcPlatformConstant.PERSON_CATEGORY_SHOW); + List personCategoryList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(showList)){ + Map> groupByTableName = showList.stream().collect(Collectors.groupingBy(IcResiCategoryStatsConfigDTO::getTableName)); + groupByTableName.forEach((tableName,list) -> { + List columns = list.stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList()); + Map result = baseDao.selectPersonType(columns, personData.getCustomerId(), tableName); + list.forEach(l -> { + result.forEach((k,v) -> { + if (l.getColumnName().equals(k) && v.equals(NumConstant.ONE_STR)){ + personCategoryList.add(l.getLabel()); + } + }); + }); + }); + personData.setPersonCategory(personCategoryList); + } + } return personData; } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 87ecaf57ca..427665134c 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -252,4 +252,15 @@ + + + \ No newline at end of file