From e9ff18cd60bff2ace704040d726544c16079833b Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 12 Feb 2022 15:06:22 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=88=86=E6=9E=90=E4=B8=AD=20=E4=BC=98=E5=8C=96=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dao/IcResiUserDao.java | 99 ++++++++++++------- .../com/epmet/dao/IcStatsResiWarnDao.java | 5 +- .../impl/StatsResiWarnServiceImpl.java | 19 +++- .../main/resources/mapper/IcResiUserDao.xml | 30 ++++++ 4 files changed, 110 insertions(+), 43 deletions(-) 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 f1822e93f2..d7ec101574 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 @@ -27,6 +27,7 @@ import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Set; @@ -52,121 +53,124 @@ public interface IcResiUserDao extends BaseDao { **/ void upTable(@Param("tableName") String tableName, @Param("id") String id, @Param("map") Map map); - List> selectListResiMap(@Param("customerId") String customerId, - @Param("formCode") String formCode, - @Param("conditions") List conditions, - @Param("resultColumns") List resultColumns, - @Param("subTables") List subTables, - @Param("currentStaffAgencyId")String currentStaffAgencyId, - @Param("staffOrgPath") String staffOrgPath, - @Param("resultTableName")String resultTableName); + List> selectListResiMap(@Param("customerId") String customerId, + @Param("formCode") String formCode, + @Param("conditions") List conditions, + @Param("resultColumns") List resultColumns, + @Param("subTables") List subTables, + @Param("currentStaffAgencyId") String currentStaffAgencyId, + @Param("staffOrgPath") String staffOrgPath, + @Param("resultTableName") String resultTableName); + /** * 查询主表 * * @param icResiUserId - * @return java.util.List> + * @return java.util.List> * @author yinzuomei * @date 2021/10/28 11:20 上午 */ List> selectListMapById(@Param("customerId") String customerId, - @Param("icResiUserId")String icResiUserId); + @Param("icResiUserId") String icResiUserId); /** * 根据ic_resi_user.id去查询各个子表记录,动态传入表名 * * @param icResiUserId * @param subTableName - * @return java.util.List> + * @return java.util.List> * @author yinzuomei * @date 2021/10/28 11:19 上午 */ - List> selectSubTableRecords(@Param("customerId")String customerId, + List> selectSubTableRecords(@Param("customerId") String customerId, @Param("icResiUserId") String icResiUserId, @Param("subTableName") String subTableName); int updateToDel(String icResiUserId); - int updateSubTableToDel(@Param("subTalbeName") String subTalbeName, @Param("icResiUserId")String icResiUserId); + int updateSubTableToDel(@Param("subTalbeName") String subTalbeName, @Param("icResiUserId") String icResiUserId); /** * 接口名称 * - * @param customerId 客户id + * @param customerId 客户id * @param resultTableName 获取哪个表的数据??? - * @param conditions 前端传入的查询入参 - * @return java.util.List> + * @param conditions 前端传入的查询入参 + * @return java.util.List> * @author yinzuomei * @date 2021/11/2 10:35 上午 */ - List> dynamicQuery(@Param("customerId")String customerId, - @Param("resultTableName")String resultTableName, - @Param("conditions") List conditions, - @Param("subTables") List subTables, - @Param("currentStaffAgencyId")String currentStaffAgencyId, - @Param("staffOrgPath")String staffOrgPath); + List> dynamicQuery(@Param("customerId") String customerId, + @Param("resultTableName") String resultTableName, + @Param("conditions") List conditions, + @Param("subTables") List subTables, + @Param("currentStaffAgencyId") String currentStaffAgencyId, + @Param("staffOrgPath") String staffOrgPath); /** - * @Description 查询个人信息 * @param userId + * @Description 查询个人信息 * @author zxc * @date 2021/11/3 10:28 上午 */ PersonDataResultDTO personData(@Param("userId") String userId); /** - * @Description 根据名字,组织查询人 * @param name * @param agencyId + * @Description 根据名字,组织查询人 * @author zxc * @date 2021/11/3 2:05 下午 */ - List searchByName(@Param("name")String name, @Param("agencyId")String agencyId,@Param("pageNo")Integer pageNo); + List searchByName(@Param("name") String name, @Param("agencyId") String agencyId, @Param("pageNo") Integer pageNo); Set selectUserDemandCode(String icResiUserId); - String selectCategoryNames(@Param("customerId") String customerId,@Param("codeSet") Set codeSet); + + String selectCategoryNames(@Param("customerId") String customerId, @Param("codeSet") Set codeSet); @MapKey("HOME_ID") Map> getHomeUserCategoryCount(@Param("buildId") String buildId); /** - * @Description 根据userId查询志愿者 * @param userId + * @Description 根据userId查询志愿者 * @author zxc * @date 2021/11/5 5:44 下午 */ - List selectVolunteerByUserId(@Param("userId")String userId); + List selectVolunteerByUserId(@Param("userId") String userId); /** - * @Description 查询人员类别 * @param columns + * @Description 查询人员类别 * @author zxc * @date 2021/11/8 1:50 下午 */ - Map selectPersonType(@Param("columns")List columns,@Param("customerId")String customerId, - @Param("tableName")String tableName,@Param("userId")String userId); + Map selectPersonType(@Param("columns") List columns, @Param("customerId") String customerId, + @Param("tableName") String tableName, @Param("userId") String userId); /** * @Author sun * @Description 查询居民信息 **/ IcResiUserDTO getResiUser(IcResiUserDTO dto); + /** - * * @param agencyId * @param gridId * @param name * @return */ List selectDemandUsers(@Param("agencyId") String agencyId, - @Param("gridId")String gridId, - @Param("name")String name); + @Param("gridId") String gridId, + @Param("name") String name); - IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId, - @Param("idNum")String idNum, - @Param("icResiUserId")String icResiUserId); + IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId, + @Param("idNum") String idNum, + @Param("icResiUserId") String icResiUserId); /** * 获取居民名称,家属名称和id + * * @param isResiUserId * @return */ @@ -183,6 +187,7 @@ public interface IcResiUserDao extends BaseDao { /** * 组织内党员年龄范围统计 + * * @Param orgType * @Param orgId * @Return {@link List< OptionDataResultDTO>} @@ -193,6 +198,7 @@ public interface IcResiUserDao extends BaseDao { /** * 获取年龄范围内党员列表 + * * @Param orgType * @Param orgId * @Param min @@ -207,6 +213,7 @@ public interface IcResiUserDao extends BaseDao { /** * 党员文化程度统计 + * * @Param orgType * @Param orgId * @Return {@link List< OptionDataResultDTO>} @@ -217,6 +224,7 @@ public interface IcResiUserDao extends BaseDao { /** * 按教育程度获取党员列表 + * * @Param orgType * @Param orgId * @Param code @@ -225,7 +233,22 @@ public interface IcResiUserDao extends BaseDao { * @Date 2021/12/10 17:24 */ List getPartyMemberEducationList(@Param("orgType") String orgType, @Param("orgId") String orgId, - @Param("code") String code); + @Param("code") String code); List listIcResiInfosByUserIds(@Param("userIds") List userIds); + + /** + * desc: 获取数据分析列中的 各类居民数据 + * + * @param customerId + * @param tableName + * @param columnList + * @param id 非必填 leve有值时 必填 + * @param level 非必填 + * @return java.util.Map 字段名:数量 + * @author LiuJanJun + * @date 2022/2/12 3:03 下午 + */ + Map getDataAnalyseCount(@Param("customerId") String customerId, @Param("tableName") String tableName, + @Param("columnList") List columnList, @Param("id") String id, @Param("level") String level); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java index ef9fac802c..b7ff80da49 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java @@ -18,7 +18,6 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; -import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.entity.IcStatsResiWarnEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -41,7 +40,7 @@ public interface IcStatsResiWarnDao extends BaseDao { @Param("buildingIdList") List buildingIdList, @Param("tableName") String tableName, @Param("columnName") String columnName); - + @Deprecated Integer countListByLevelAndCol( @Param("customerId") String customerId, @Param("tableName") String tableName, @@ -58,4 +57,4 @@ public interface IcStatsResiWarnDao extends BaseDao { @Param("columnName") String columnName, @Param("icStatsResiWarn") IcStatsResiWarnEntity icStatsResiWarn); -} \ No newline at end of file +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index 3b12bcd10d..45e03e07aa 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; @@ -24,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -178,6 +180,18 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { List icResiCategoryStatsConfigDTOList = statsResult.getData(); //获取tableName 和columnName List result = new ArrayList<>(); + //tableName List + Map> paramMap = new HashMap<>(); + icResiCategoryStatsConfigDTOList.forEach(config->{ + List list = paramMap.getOrDefault(config.getTableName(), new ArrayList<>()); + list.add(config.getColumnName()); + paramMap.put(config.getTableName(),list); + }); + Map> tableColumnCountMap = new HashMap<>(); + paramMap.forEach((tableName,columnList) ->{ + Map countMap = icResiUserDao.getDataAnalyseCount(customerId,tableName,columnList, id,level); + tableColumnCountMap.put(tableName,countMap); + }); icResiCategoryStatsConfigDTOList.forEach(item->{ IcStatsResiResultDTO resultDTO = new IcStatsResiResultDTO(); resultDTO.setId(item.getId()); @@ -186,8 +200,9 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { resultDTO.setHouseShowIcon(item.getHouseShowIcon()); resultDTO.setManagementIcon(item.getManagementIcon()); //根据id ,level 获取count - Integer count = icStatsResiWarnDao.countListByLevelAndCol(customerId,item.getTableName(),item.getColumnName(),id,level); - resultDTO.setCount(count); + //Integer count = icStatsResiWarnDao.countListByLevelAndCol(customerId,item.getTableName(),item.getColumnName(),id,level); + Map orDefault = tableColumnCountMap.getOrDefault(item.getTableName(), new HashMap<>()); + resultDTO.setCount(orDefault.getOrDefault(item.getColumnName(), NumConstant.ZERO_DECIMAL).intValue()); result.add(resultDTO); }); return result; 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 6b07136f1c..a2785ada74 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 @@ -506,4 +506,34 @@ #{userId} + From fe3f5c682a0f6d48cc40986dd0ed12780a7474b4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 12 Feb 2022 15:29:28 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=88=86=E6=9E=90=E4=B8=AD=20=E4=BC=98=E5=8C=96=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20=E7=A9=BA=E6=8C=87=E9=92=88=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/StatsResiWarnServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index 45e03e07aa..275c126c5a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -190,7 +190,9 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { Map> tableColumnCountMap = new HashMap<>(); paramMap.forEach((tableName,columnList) ->{ Map countMap = icResiUserDao.getDataAnalyseCount(customerId,tableName,columnList, id,level); - tableColumnCountMap.put(tableName,countMap); + if (countMap != null){ + tableColumnCountMap.put(tableName,countMap); + } }); icResiCategoryStatsConfigDTOList.forEach(item->{ IcStatsResiResultDTO resultDTO = new IcStatsResiResultDTO(); From 4b5f6d65aba283281908fb52dc1d0f185648848c Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 12 Feb 2022 15:52:22 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=88=86=E6=9E=90=E4=B8=AD=20=E4=BC=98=E5=8C=96=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20pids=20like=20=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IcResiUserDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 a2785ada74..7cbaa98498 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 @@ -515,7 +515,7 @@ WHERE 1=1 - AND (CONCAT(PIDS, ':', agency_id) like CONCAT(#{id},':%')) + AND (CONCAT(PIDS, agency_id) like CONCAT(#{id},'%')) AND GRID_ID = #{id} From 420203339cdebfdd68065170750e5ae1fe86829d Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 12 Feb 2022 16:51:28 +0800 Subject: [PATCH 04/19] =?UTF-8?q?like=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IcResiUserDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7cbaa98498..7441f98ec4 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 @@ -515,7 +515,7 @@ WHERE 1=1 - AND (CONCAT(PIDS, agency_id) like CONCAT(#{id},'%')) + AND (CONCAT(PIDS,':', agency_id) like CONCAT('%',#{id},'%')) AND GRID_ID = #{id} From 2e346ab5ef85aa14d7f15070ca476a3d1b44e8dd Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 14 Feb 2022 14:22:35 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E6=98=AF=E5=90=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/commons/tools/constant/StrConstant.java | 3 +++ .../java/com/epmet/service/impl/IcResiUserServiceImpl.java | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java index a18f34f72b..c575c5241f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java @@ -105,4 +105,7 @@ public interface StrConstant { * 积分规则修改的头 */ String POINT_CHANGE_HEAD = "修改了%s规则,"; + + String YES = "是"; + String NO = "否"; } 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 a8b7737b21..5e0b18bdfe 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 @@ -949,7 +949,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl remoteOptions = icResiUserImportService.listRemoteOptions(columnWrappers, e.getOptionSourceValue(), currentStaffAgencyId, "query"); if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { - remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? "是" : "否")); + remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO)); } else if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) { remoteOptions.forEach((label, value) -> { if (vauleStr.equals(value)) { @@ -969,7 +969,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl { - map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? "是" : "否"); + map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? StrConstant.YES : StrConstant.NO); }); break; case SELECT: From f8c123bfb42e907e08935ed342f6754a5b74cb19 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 15 Feb 2022 17:42:52 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A8=8B=E5=BA=8F=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/config/ThreadDispatcherConfig.java | 39 ++++++++++++++++++ .../commons/tools/constant/Constant.java | 3 ++ .../java/com/epmet/GatewayApplication.java | 3 +- .../epmet/bean/ResiExportBaseInfoData.java | 27 +++++++++++++ .../controller/IcResiUserController.java | 7 +++- .../service/impl/IcResiUserServiceImpl.java | 40 +++++++++++-------- 6 files changed, 100 insertions(+), 19 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/ThreadDispatcherConfig.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiExportBaseInfoData.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/ThreadDispatcherConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/ThreadDispatcherConfig.java new file mode 100644 index 0000000000..1b2d32c2cc --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/ThreadDispatcherConfig.java @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2018 人人开源 All rights reserved. + *

+ * https://www.renren.io + *

+ * 版权所有,侵权必究! + */ + +package com.epmet.commons.tools.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.filter.RequestContextFilter; +import org.springframework.web.servlet.DispatcherServlet; + +import javax.annotation.PostConstruct; + + +/** + * DESC:设置线程继承属性为true,便于子线程获取到父线程的request,两个都设置为了保险 + * + * @author Mark sunlightcs@gmail.com + * @since 1.0.0 + */ +@Configuration +public class ThreadDispatcherConfig { + + @Autowired + RequestContextFilter requestContextFilter; + @Autowired + DispatcherServlet dispatcherServlet; + + @PostConstruct + public void init() { + // 设置线程继承属性为true,便于子线程获取到父线程的request,两个都设置为了保险。 + requestContextFilter.setThreadContextInheritable(true); + dispatcherServlet.setThreadContextInheritable(true); + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java index 400e3893e4..77875d5415 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java @@ -171,4 +171,7 @@ public interface Constant { * 被禁用标识 * */ String DISABLE = "disable"; + + String OPITON_SOURCE_REMOTE = "remote"; + String OPITON_SOURCE_LOCAL = "local"; } diff --git a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java index a1630c821e..064b59610e 100644 --- a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java +++ b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java @@ -10,6 +10,7 @@ package com.epmet; import com.epmet.commons.tools.aspect.ServletExceptionHandler; import com.epmet.commons.tools.config.RedissonConfig; +import com.epmet.commons.tools.config.ThreadDispatcherConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @@ -27,7 +28,7 @@ import org.springframework.context.annotation.FilterType; @EnableDiscoveryClient @EnableFeignClients //@ServletComponentScan -@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ServletExceptionHandler.class})) +@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ThreadDispatcherConfig.class, ServletExceptionHandler.class})) public class GatewayApplication { public static void main(String[] args) { diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiExportBaseInfoData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiExportBaseInfoData.java new file mode 100644 index 0000000000..5dc0d0b7c5 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiExportBaseInfoData.java @@ -0,0 +1,27 @@ +package com.epmet.bean; + +import lombok.Data; + +import java.io.Serializable; + +/** + * desc:导出居民信息 基础信息 给其他sheet使用 + */ +@Data +public class ResiExportBaseInfoData implements Serializable { + private static final long serialVersionUID = 1L; + + private String GRID_ID; + private String VILLAGE_ID; + private String BUILD_ID; + private String UNIT_ID; + private String HOME_ID; + private String IS_BDHJ; + private String NAME; + private String MOBILE; + private String GENDER; + private String ID_CARD; + private String BIRTHDAY; + private String CONTACTS; + private String CONTACTS_MOBILE; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 1350ce159f..303d951526 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -24,6 +24,7 @@ import com.alibaba.excel.write.metadata.fill.FillWrapper; import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -293,6 +294,7 @@ public class IcResiUserController { @RequestMapping(value = "/exportExcel") public void exportExcelByEasyExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); + long startM = System.currentTimeMillis(); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); String staffOrgPath = null; if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { @@ -322,7 +324,7 @@ public class IcResiUserController { map.putIfAbsent(tableName,exportItem); String columnName = item.getColumnName().concat(item.getColumnNum() == NumConstant.ZERO ? StrConstant.EPMETY_STR : item.getColumnNum().toString()); exportItem.getItemMap().put(columnName,item); - if (item.getOptionSourceType().equals("remote")&&item.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){ + if (Constant.OPITON_SOURCE_REMOTE.equals(item.getOptionSourceType())&&item.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){ //多个参数 String[] paramArr = item.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK); Arrays.stream(paramArr).forEach(o->{ @@ -346,7 +348,7 @@ public class IcResiUserController { .collect(Collectors.toList()); List> resiResultList = null; - pageFormDTO.setPageSize(NumConstant.TEN_THOUSAND); + pageFormDTO.setPageSize(NumConstant.ONE_THOUSAND); for (IcResiUserTableEnum tableEnum : resiTableList) { String tableName = tableEnum.getTableName(); pageFormDTO.setPageNo(NumConstant.ONE); @@ -374,6 +376,7 @@ public class IcResiUserController { if (excelWriter != null){ excelWriter.finish(); } + log.info("exportExcelByEasyExcel resi info cost time:{}s",(System.currentTimeMillis()-startM)/NumConstant.ONE_THOUSAND); } } 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 64920cabdc..11a9fd3d4a 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 @@ -20,11 +20,9 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.epmet.bean.ResiExportBaseInfoData; 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.ServiceConstant; -import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.constant.*; import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.DictListResultDTO; @@ -69,6 +67,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,6 +76,8 @@ import java.math.RoundingMode; import java.sql.Date; import java.sql.Timestamp; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; @@ -114,6 +115,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl getWrapper(Map params){ String id = (String)params.get(FieldConstant.ID_HUMP); @@ -881,7 +884,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getPageFlag()).doSelectPage(() -> { this.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), baseTableName, pageFormDTO.getConditions(), currentStaffAgencyId, staffOrgPath); }); - mapListPage.getResult().stream().filter(Objects::nonNull).forEach(resiUser -> { + mapListPage.getResult().parallelStream().filter(Objects::nonNull).forEach(resiUser -> { String resiId = null; //获取用户Id if (IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) { @@ -905,28 +908,33 @@ public class IcResiUserServiceImpl extends BaseServiceImpl originalConditionMap = new HashMap<>(); - for (FormItemResult e : formItemMap.getItemMap().values()) { + Map originalConditionMap = new ConcurrentHashMap<>(); + formItemMap.getItemMap().values().parallelStream().forEach(e->{ String columnName = getColumnName(e); Object temp = resiUser.get(columnName); String vauleStr = temp == null ? StrConstant.EPMETY_STR : temp.toString(); originalConditionMap.putIfAbsent(columnName,vauleStr); - if ("remote".equals(e.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { + if (Constant.OPITON_SOURCE_REMOTE.equals(e.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { putRemoteValue(formItemMap.getRemoteItemConditionMap().get(e.getItemId()), currentStaffAgencyId, resiUser,originalConditionMap, e, columnName, vauleStr); } else { putOptionValue(resiUser, e, columnName, vauleStr); } + }); - } - if (!IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) { - Map o = redisUtils.hGetAll(RedisKeys.getExportResiBaseInfoKey(resiId)); - if (o != null){ - resiUser.putAll(o); + if (IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) { + //把人放入redis缓存 便于后面的sheet使用基础信息 + ResiExportBaseInfoData infoData = ConvertUtils.mapToEntity(resiUser, ResiExportBaseInfoData.class); + redisTemplate.opsForValue().set(RedisKeys.getExportResiBaseInfoKey(resiId), infoData,RedisUtils.MINUTE_THIRTY_EXPIRE, TimeUnit.SECONDS); + } else { + ResiExportBaseInfoData temp = (ResiExportBaseInfoData) redisTemplate.opsForValue().get(RedisKeys.getExportResiBaseInfoKey(resiId)); + if (temp != null){ + try { + resiUser.putAll(ConvertUtils.entityToMap(temp)); + } catch (Exception e) { + log.error("entityToMap exception,temp:{}",temp); + } } - return; } - //把人放入redis缓存 便于后面的sheet使用基础信息 - redisUtils.hMSet(RedisKeys.getExportResiBaseInfoKey(resiId),resiUser,RedisUtils.MINUTE_THIRTY_EXPIRE); }); remoteOptionCacheMap.clear(); return mapListPage.getResult(); From 01bfc2a224e2645dd1e8db06b53b3fee32d97e9d Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Feb 2022 17:24:52 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E8=BF=90=E8=90=A5=E6=83=85=E5=86=B5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BE=8B=E8=A1=8C=E5=B7=A5=E4=BD=9C=E6=AC=A1?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/CustomerDataManageResultDTO.java | 4 + .../StatsStaffPatrolRecordDailyDao.java | 9 + .../excel/CustomerDataManageExcel.java | 3 + .../datastats/impl/DataStatsServiceImpl.java | 159 +++++++++++------- .../StatsStaffPatrolRecordDailyService.java | 22 ++- ...tatsStaffPatrolRecordDailyServiceImpl.java | 5 + .../StatsStaffPatrolRecordDailyDao.xml | 37 ++++ 7 files changed, 168 insertions(+), 71 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java index e736309945..f293af93d0 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java @@ -44,6 +44,10 @@ public class CustomerDataManageResultDTO { private Integer patrolCount = 0; //巡查时长 private String patrolDuration; + /** + * 例行工作次数 + */ + private Integer patrolRoutineWorkTimes = 0; //未转换前的巡查时长 private Integer patrolDurationInteger = 0; //数据对应dateId diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java index 49c101c018..e1fe7554ec 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java @@ -40,6 +40,7 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao userIds, @Param("startDateId") String startDateID, @Param("endDateID") String endDateID); + + /** + * desc: 获取例行工作次数 + * @param patrolForm + * @return + */ + List getRoutineWorkCount(CustomerDataManageFormDTO patrolForm); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java index 821a11426f..2d519d41b7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java @@ -47,6 +47,9 @@ public class CustomerDataManageExcel { @Excel(name = "巡查时长") private String patrolDuration; + @Excel(name = "例行工作次数") + private String patrolRoutineWorkTimes; + /** * 未转换前的巡查时长 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index aa0454d1c2..12597f68af 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1,61 +1,61 @@ package com.epmet.dataaggre.service.datastats.impl; import com.alibaba.fastjson.JSON; -import com.epmet.commons.dynamic.datasource.annotation.DataSource; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.enums.OrgLevelEnum; + import com.epmet.commons.dynamic.datasource.annotation.DataSource; + import com.epmet.commons.tools.constant.NumConstant; + import com.epmet.commons.tools.enums.OrgLevelEnum; import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.feign.ResultDataResolver; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.dataaggre.constant.DataSourceConstant; -import com.epmet.dataaggre.constant.OrgConstant; -import com.epmet.dataaggre.dao.datastats.DataStatsDao; -import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; -import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; -import com.epmet.dataaggre.dto.datastats.form.*; -import com.epmet.dataaggre.dto.datastats.result.*; + import com.epmet.commons.tools.feign.ResultDataResolver; + import com.epmet.commons.tools.utils.ConvertUtils; + import com.epmet.commons.tools.utils.DateUtils; + import com.epmet.commons.tools.utils.ExcelUtils; + import com.epmet.dataaggre.constant.DataSourceConstant; + import com.epmet.dataaggre.constant.OrgConstant; + import com.epmet.dataaggre.dao.datastats.DataStatsDao; + import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; + import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; + import com.epmet.dataaggre.dto.datastats.form.*; + import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; -import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; -import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; + import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; + import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; + import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; -import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; -import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; -import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; -import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; -import com.epmet.dataaggre.excel.CustomerDataManageExcel; -import com.epmet.dataaggre.service.datastats.DataStatsService; -import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; -import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; -import com.epmet.dataaggre.service.govorg.GovOrgService; -import com.epmet.dataaggre.service.opercrm.CustomerRelation; -import com.github.pagehelper.PageHelper; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.NumberFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; + import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; + import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; + import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; + import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; + import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; + import com.epmet.dataaggre.excel.CustomerDataManageExcel; + import com.epmet.dataaggre.service.datastats.DataStatsService; + import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; + import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; + import com.epmet.dataaggre.service.govorg.GovOrgService; + import com.epmet.dataaggre.service.opercrm.CustomerRelation; + import com.github.pagehelper.PageHelper; + import lombok.extern.slf4j.Slf4j; + import org.apache.commons.collections4.CollectionUtils; + import org.apache.commons.lang3.StringUtils; + import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + + import javax.servlet.http.HttpServletResponse; + import java.math.BigDecimal; + import java.math.RoundingMode; + import java.text.NumberFormat; + import java.text.ParseException; + import java.text.SimpleDateFormat; + import java.util.*; + import java.util.concurrent.atomic.AtomicInteger; + import java.util.concurrent.atomic.AtomicReference; + import java.util.stream.Collectors; /** * @Author sun @@ -1386,7 +1386,7 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve return o2.getGroupSelfGovernRatio().compareTo(o1.getGroupSelfGovernRatio()); } else if ("grid".equals(formDTO.getType())) { return o2.getGridSelfGovernRatio().compareTo(o1.getGridSelfGovernRatio()); - } else if ("community".equals(formDTO.getType())) { + } else if (OrgLevelEnum.COMMUNITY.getCode().equals(formDTO.getType())) { return o2.getCommunityResolvedRatio().compareTo(o1.getCommunityResolvedRatio()); } else if ("department".equals(formDTO.getType())) { return o2.getDistrictDeptResolvedRatio().compareTo(o1.getDistrictDeptResolvedRatio()); @@ -1679,7 +1679,7 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve //根据组织级别判断查询直属下级组织或网格数据 //2.直属网格 - if ("community".equals(formDTO.getAgencyLevel())) { + if (OrgLevelEnum.COMMUNITY.getCode().equals(formDTO.getAgencyLevel())) { //2-1.查询组织直属网格列表【网格维度】 List gridList = indexService.getSubGridList(formDTO.getAgencyId()); if (gridList.size() < NumConstant.ONE) { @@ -1755,7 +1755,7 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve //根据组织级别判断查询直属下级组织或网格数据 //2.直属网格 - if ("community".equals(formDTO.getAgencyLevel())) { + if (OrgLevelEnum.COMMUNITY.getCode().equals(formDTO.getAgencyLevel())) { //2-1.查询组织直属网格列表【网格维度】 List gridList = indexService.getSubGridList(formDTO.getAgencyId()); if (gridList.size() < NumConstant.ONE) { @@ -1887,6 +1887,7 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve c.setProjectCount(result.stream().mapToInt(CustomerDataManageResultDTO.CustomerDataManage::getProjectCount).sum()); c.setClosedProjectCount(result.stream().mapToInt(CustomerDataManageResultDTO.CustomerDataManage::getClosedProjectCount).sum()); c.setPatrolPeopleCount(result.stream().mapToInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolPeopleCount).sum()); + c.setPatrolRoutineWorkTimes(result.stream().mapToInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolRoutineWorkTimes).sum()); c.setPatrolCount(result.stream().mapToInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolCount).sum()); c.setPatrolDurationInteger(result.stream().mapToInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolDurationInteger).sum()); c.setPatrolDuration(getHm(c.getPatrolDurationInteger())); @@ -2000,6 +2001,12 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve patrolForm.setStartTime(startTimeForm); List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(patrolForm); + //获取例行工作次数 + List workCountList = statsStaffPatrolRecordDailyService.getPatrolRecordCount(patrolForm); + Map> workCountMap = null; + if(workCountList != null && workCountList.size() > NumConstant.ZERO && workCountList.get(NumConstant.ZERO) != null){ + workCountMap = workCountList.stream().collect(Collectors.groupingBy(CustomerDataManageResultDTO.CustomerDataManage::getOrgId)); + } //NumConstant.FOUR.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 HashMap uStartMap = new HashMap<>(); HashMap gStartMap = new HashMap<>(); @@ -2021,50 +2028,50 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve } //5.封装数据 - agencyGrid.getAgencyGridList().forEach(org -> { + for (ScreenAgencyOrGridListDTO.AgencyGrid org : agencyGrid.getAgencyGridList()) { CustomerDataManageResultDTO.CustomerDataManage dto = new CustomerDataManageResultDTO.CustomerDataManage(); dto.setOrgId(org.getOrgId()); dto.setOrgName(org.getOrgName()); int user = NumConstant.ZERO; int resi = NumConstant.ZERO; int part = NumConstant.ZERO; - if(uEndMap.containsKey(org.getOrgId())){ + if (uEndMap.containsKey(org.getOrgId())) { user = uEndMap.get(org.getOrgId()).getUserCount(); resi = uEndMap.get(org.getOrgId()).getResidentCount(); part = uEndMap.get(org.getOrgId()).getPartyMemberCount(); - if ("Interval".equals(formDTO.getType())&&uStartMap.containsKey(org.getOrgId())) { + if ("Interval".equals(formDTO.getType()) && uStartMap.containsKey(org.getOrgId())) { user = user - uStartMap.get(org.getOrgId()).getUserCount(); resi = resi - uStartMap.get(org.getOrgId()).getResidentCount(); part = part - uStartMap.get(org.getOrgId()).getPartyMemberCount(); } } int group = NumConstant.ZERO; - if(gEndMap.containsKey(org.getOrgId())){ + if (gEndMap.containsKey(org.getOrgId())) { group = gEndMap.get(org.getOrgId()).getGroupCount(); - if ("Interval".equals(formDTO.getType())&&gStartMap.containsKey(org.getOrgId())) { + if ("Interval".equals(formDTO.getType()) && gStartMap.containsKey(org.getOrgId())) { group = group - gStartMap.get(org.getOrgId()).getGroupCount(); } } int topic = NumConstant.ZERO; - if(tEndMap.containsKey(org.getOrgId())){ + if (tEndMap.containsKey(org.getOrgId())) { topic = tEndMap.get(org.getOrgId()).getTopicCount(); - if ("Interval".equals(formDTO.getType())&&tStartMap.containsKey(org.getOrgId())) { + if ("Interval".equals(formDTO.getType()) && tStartMap.containsKey(org.getOrgId())) { topic = topic - tStartMap.get(org.getOrgId()).getTopicCount(); } } int issue = NumConstant.ZERO; - if(iEndMap.containsKey(org.getOrgId())){ + if (iEndMap.containsKey(org.getOrgId())) { issue = iEndMap.get(org.getOrgId()).getIssueCount(); - if ("Interval".equals(formDTO.getType())&&iStartMap.containsKey(org.getOrgId())) { + if ("Interval".equals(formDTO.getType()) && iStartMap.containsKey(org.getOrgId())) { issue = issue - iStartMap.get(org.getOrgId()).getIssueCount(); } } int project = NumConstant.ZERO; int closed = NumConstant.ZERO; - if(pEndMap.containsKey(org.getOrgId())){ + if (pEndMap.containsKey(org.getOrgId())) { project = pEndMap.get(org.getOrgId()).getProjectCount(); closed = pEndMap.get(org.getOrgId()).getClosedProjectCount(); - if ("Interval".equals(formDTO.getType())&&pStartMap.containsKey(org.getOrgId())) { + if ("Interval".equals(formDTO.getType()) && pStartMap.containsKey(org.getOrgId())) { project = project - pStartMap.get(org.getOrgId()).getProjectCount(); closed = closed - pStartMap.get(org.getOrgId()).getClosedProjectCount(); } @@ -2074,19 +2081,39 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve String patrolDuration = ""; int patrolDurationInteger = NumConstant.ZERO; HashSet set = new HashSet(); + List workCountListTemp; for (CustomerDataManageResultDTO.CustomerDataManage u : patrolEnd) { - if ("community".equals(agencyGrid.getLevel()) && org.getOrgId().equals(u.getOrgId())) { + if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && org.getOrgId().equals(u.getOrgId())) { patroCount += u.getPatrolCount(); patrolDurationInteger += u.getPatrolDurationInteger(); set.add(u.getStaffId()); } - if (!"community".equals(agencyGrid.getLevel()) && u.getOrgId().contains(org.getOrgId())) { + if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && u.getOrgId().contains(org.getOrgId())) { patroCount += u.getPatrolCount(); patrolDurationInteger += u.getPatrolDurationInteger(); set.add(u.getStaffId()); } } + //例行工作次数累加 + int patrolRoutineWorkTimes = NumConstant.ZERO; + workCountListTemp = workCountMap.get(org.getOrgId()); + if (CollectionUtils.isNotEmpty(workCountListTemp)) { + if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { + for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { + patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); + set.add(work.getStaffId()); + } + } else { + if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { + for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { + patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); + set.add(work.getStaffId()); + } + } + } + } + patro = set.size(); Integer minutes = patrolDurationInteger / 60; patrolDuration = (minutes / 60 > NumConstant.ZERO ? minutes / 60 + "小时" : "") + (minutes % 60 > NumConstant.ZERO ? minutes % 60 + "分钟" : "0分钟"); @@ -2104,8 +2131,10 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve dto.setPatrolDuration(patrolDuration); dto.setPatrolDurationInteger(patrolDurationInteger); + dto.setPatrolRoutineWorkTimes(patrolRoutineWorkTimes); + dataManageList.add(dto); - }); + } //NumConstant.SIX.默认按用户总数降序 Collections.sort(dataManageList, new Comparator() { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java index 4bd0b91d93..6b20674c30 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java @@ -35,12 +35,13 @@ import java.util.List; public interface StatsStaffPatrolRecordDailyService extends BaseService { /** - * desc:获取组织或网格的 时间段内的总次数等 + * desc:获取组织或网格的 时间段内的总次数等 + * * @param orgIdList - * @param startDateId - * @param endDateId - * @return - */ + * @param startDateId + * @param endDateId + * @return + */ List getPatrolSumList(List orgIdList, String startDateId, String endDateId); /** @@ -51,11 +52,20 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService listStaffPatrolRecordDailyAnalysis(String gridPids, String gridId, List userIds, String startDateID, String endDateID); + + /** + * desc:获取巡查日统计的相关次数 + * + * @param patrolForm + * @return + */ + List getPatrolRecordCount(CustomerDataManageFormDTO patrolForm); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java index 610bdcd81c..d885b50130 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java @@ -52,4 +52,9 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl listStaffPatrolRecordDailyAnalysis(String gridPids, String gridId, List userIds, String startDateID, String endDateID) { return baseDao.listStaffPatrolRecordDailyAnalysis(gridPids, gridId, userIds, startDateID, endDateID); } + + @Override + public List getPatrolRecordCount(CustomerDataManageFormDTO patrolForm) { + return baseDao.getRoutineWorkCount(patrolForm); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml index 86aae4d681..273b7e215b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml @@ -86,5 +86,42 @@ sprd.STAFF_ID, sprd.GRID_ID + From ecb1d64ed700cdc9bff6639dc75c9936176c6797 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Feb 2022 18:20:44 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E8=BF=90=E8=90=A5=E6=83=85=E5=86=B5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BE=8B=E8=A1=8C=E5=B7=A5=E4=BD=9C=E6=AC=A1?= =?UTF-8?q?=E6=95=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datastats/impl/DataStatsServiceImpl.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 12597f68af..0803e2c359 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -2097,19 +2097,21 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve } //例行工作次数累加 int patrolRoutineWorkTimes = NumConstant.ZERO; - workCountListTemp = workCountMap.get(org.getOrgId()); - if (CollectionUtils.isNotEmpty(workCountListTemp)) { - if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { - for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { - patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); - set.add(work.getStaffId()); - } - } else { - if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { + if (workCountMap != null){ + workCountListTemp = workCountMap.get(org.getOrgId()); + if (CollectionUtils.isNotEmpty(workCountListTemp)) { + if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); set.add(work.getStaffId()); } + } else { + if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { + for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { + patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); + set.add(work.getStaffId()); + } + } } } } From 79f4a9ea5fb0e010c6fd854ae4e051b74821698f Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 18 Feb 2022 15:53:12 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=20-=20?= =?UTF-8?q?=E5=B1=85=E6=B0=91=E5=AF=BC=E5=85=A5=EF=BC=9A=E9=99=84=E5=8A=A0?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=A1=A8=E4=B8=AD=EF=BC=8C=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=BA=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/IcResiUserImportServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 18cd3cd6ec..0d3332d785 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -1209,7 +1209,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res String userCateRedisKey = RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", icResiId); Map < String, Object > addUserMap = redisUtils.hGetAll(userCateRedisKey); - if (addUserMap != null) { + if (addUserMap != null && addUserMap.size() > 0) { //说明是新增居民 ResiImportCategoryData newResiCateData = ConvertUtils.mapToEntity(addUserMap, ResiImportCategoryData.class); newResiCateData.getCategories().put(columnName, "1"); From 841c60dc607efc3e2d4cbed4bcf0bfcfa565fec4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 18 Feb 2022 17:23:21 +0800 Subject: [PATCH 10/19] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8F=98=E5=8A=A8?= =?UTF-8?q?=E7=B2=92=E5=BA=A6=E7=BC=A9=E5=B0=8F=E4=B8=BAprojectId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mq/ProjectChangedCustomListener.java | 54 ++++++++++--------- .../service/impl/ProjectTraceServiceImpl.java | 5 +- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java index a09e63861c..c4c0138ad0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java @@ -10,6 +10,7 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.constant.PingYinConstant; import com.epmet.constant.SystemMessageType; import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.service.evaluationindex.extract.todata.FactOriginExtractService; @@ -66,7 +67,7 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently } catch (Exception e) { //失败不重发 logger.error("consumeMessage fail,msg:{}",e.getMessage()); - return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; + return ConsumeConcurrentlyStatus.RECONSUME_LATER; } log.info("consumeMessage success, cost:{} ms",System.currentTimeMillis() - start); return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; @@ -94,7 +95,7 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently } log.info("消费了项目变动消息,customer id:{}", msgObj.getCustomerId()); - if (org.apache.commons.lang.StringUtils.isNotBlank(pendingMsgLabel)) { + if (StringUtils.isNotBlank(pendingMsgLabel)) { try { removePendingMqMsgCache(pendingMsgLabel); } catch (Exception e) { @@ -109,19 +110,14 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently try { String customerId = msgObj.getCustomerId(); distributedLock = SpringContextUtils.getBean(DistributedLock.class); - lock = distributedLock.getLock(String.format("lock:project_changed:%s", customerId) + lock = distributedLock.getLock(String.format("lock:project_changed:%s:%s", customerId, msgObj.getProjectId()) ,30L, 30L, TimeUnit.SECONDS); if (StringUtils.isBlank(customerId)){ logger.error("consumer project_changed fail,msg:{}",customerId); return; } - //消息被消费太快 业务数据还没有完成 歇一会先 - try { - Thread.sleep(60L); - } catch (InterruptedException e) { - logger.error("consumeMessage sleep exception",e); - } + ExtractOriginFormDTO extractOriginFormDTO = new ExtractOriginFormDTO(); extractOriginFormDTO.setCustomerId(customerId); @@ -146,21 +142,8 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently } logger.info("consumer projectChanged msg success,{}",aBoolean); - //发送项目数据上报的mq消息 - if ("6f203e30de1a65aab7e69c058826cd80".equals(customerId)) { - if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation()) || "close".equals(msgObj.getOperation())) { - String type; - if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation())) { - type = SystemMessageType.PROJECT_ADD; - } else { - type = SystemMessageType.PROJECT_EDIT; - } - List projectList = new ArrayList<>(); - projectList.add(msgObj.getProjectId()); - DisputeProcessMQMsg msg = new DisputeProcessMQMsg(customerId, projectList, type); - SpringContextUtils.getBean(ScreenProjectDataService.class).sendProjectChangeMq(msg); - } - } + sendProject2OpenData(msgObj, customerId); + } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【RocketMQ】消费项目变动消息失败:",e); @@ -175,6 +158,29 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently } } + /** + * desc:发型项目数据到 opendata + * @param msgObj + * @param customerId + */ + private void sendProject2OpenData(ProjectChangedMQMsg msgObj, String customerId) { + //发送项目数据上报的mq消息 + if (PingYinConstant.PROD_PING_YIN_CUSTOMER_ID.equals(customerId)) { + if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation()) || "close".equals(msgObj.getOperation())) { + String type; + if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation())) { + type = SystemMessageType.PROJECT_ADD; + } else { + type = SystemMessageType.PROJECT_EDIT; + } + List projectList = new ArrayList<>(); + projectList.add(msgObj.getProjectId()); + DisputeProcessMQMsg msg = new DisputeProcessMQMsg(customerId, projectList, type); + SpringContextUtils.getBean(ScreenProjectDataService.class).sendProjectChangeMq(msg); + } + } + } + @PreDestroy public void saveCalStatus() { //todo diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 2a56eb3dfc..5bef06a0a2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -312,7 +312,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS List staffList = formDTO.getStaffList(); //1.文字内容安全校验 List list = new ArrayList<>(); - list.add(formDTO.getTitle());list.add(formDTO.getBackGround());list.add(formDTO.getPublicReply());list.add(formDTO.getInternalRemark()); + list.add(formDTO.getTitle()); + list.add(formDTO.getBackGround()); + list.add(formDTO.getPublicReply()); + list.add(formDTO.getInternalRemark()); safetyCheck(list); //2.数据准备,查询需要用到的数据 From 229ae8ac42ad06a558508fa2778b84b1f8c1c7e4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 18 Feb 2022 17:42:43 +0800 Subject: [PATCH 11/19] =?UTF-8?q?bug=E6=94=B9=E4=B8=80=E4=B8=8B=20?= =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E5=B7=A5=E4=BD=9C=E6=AC=A1=E6=95=B0=20?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E4=B8=8D=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datastats/impl/DataStatsServiceImpl.java | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 0803e2c359..b60e166a5f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -2003,10 +2003,6 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve //获取例行工作次数 List workCountList = statsStaffPatrolRecordDailyService.getPatrolRecordCount(patrolForm); - Map> workCountMap = null; - if(workCountList != null && workCountList.size() > NumConstant.ZERO && workCountList.get(NumConstant.ZERO) != null){ - workCountMap = workCountList.stream().collect(Collectors.groupingBy(CustomerDataManageResultDTO.CustomerDataManage::getOrgId)); - } //NumConstant.FOUR.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 HashMap uStartMap = new HashMap<>(); HashMap gStartMap = new HashMap<>(); @@ -2081,7 +2077,6 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve String patrolDuration = ""; int patrolDurationInteger = NumConstant.ZERO; HashSet set = new HashSet(); - List workCountListTemp; for (CustomerDataManageResultDTO.CustomerDataManage u : patrolEnd) { if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && org.getOrgId().equals(u.getOrgId())) { patroCount += u.getPatrolCount(); @@ -2097,21 +2092,14 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve } //例行工作次数累加 int patrolRoutineWorkTimes = NumConstant.ZERO; - if (workCountMap != null){ - workCountListTemp = workCountMap.get(org.getOrgId()); - if (CollectionUtils.isNotEmpty(workCountListTemp)) { - if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { - for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { - patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); - set.add(work.getStaffId()); - } - } else { - if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { - for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { - patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); - set.add(work.getStaffId()); - } - } + if (CollectionUtils.isNotEmpty(workCountList) && workCountList.get(NumConstant.ZERO) != null) { + for (CustomerDataManageResultDTO.CustomerDataManage work : workCountList) { + if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && org.getOrgId().equals(work.getOrgId())) { + patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); + set.add(work.getStaffId()); + } else if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && work.getOrgId().contains(org.getOrgId())) { + patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); + set.add(work.getStaffId()); } } } From fa74f114b16b30336b22d9aa828dd16fb676d4f6 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 18 Feb 2022 17:59:25 +0800 Subject: [PATCH 12/19] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=20=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java index 2d519d41b7..65f55557fe 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java @@ -48,7 +48,7 @@ public class CustomerDataManageExcel { private String patrolDuration; @Excel(name = "例行工作次数") - private String patrolRoutineWorkTimes; + private Integer patrolRoutineWorkTimes; /** * 未转换前的巡查时长 From 9304fe287101550a6ec3d4d7a5bd72240f3dacf3 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 18 Feb 2022 19:45:10 +0800 Subject: [PATCH 13/19] =?UTF-8?q?/epmetuser/patrolroutinework/add=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PatrolRoutineWorkServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java index 28504e16d4..89b8143bf8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java @@ -159,13 +159,13 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl Date: Mon, 21 Feb 2022 13:42:00 +0800 Subject: [PATCH 14/19] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=201.=E5=B1=85?= =?UTF-8?q?=E6=B0=91=E5=AF=BC=E5=85=A5=EF=BC=9Aoptions=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcResiUserImportServiceImpl.java | 73 ++++++++++++++----- .../service/impl/IcResiUserServiceImpl.java | 4 +- 2 files changed, 58 insertions(+), 19 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 0d3332d785..40b6d3b5bc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -87,10 +87,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res /** * key: itemId * value: - * key: option的中文 - * value: options的英文key,也可能是数据id + * key: 当前item的super itemId + * value: superItem的子item列表 + * key: option的中文 + * value: options的英文key,也可能是数据id */ - Cache> itemIdAndOptionsCache = CacheBuilder.newBuilder().maximumSize(500).build(); + Cache>> itemIdAndOptionsCache = CacheBuilder.newBuilder().maximumSize(500).build(); @Autowired @@ -661,7 +663,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res for (Map.Entry itemIdAndColumnWrapper : itemIdAndColumnWrappers.entrySet()) { + String itemId = itemIdAndColumnWrapper.getKey(); ColumnWrapper columnWrapper = itemIdAndColumnWrapper.getValue(); + if ("input".equals(columnWrapper.getItemType()) || "textarea".equals(columnWrapper.getItemType()) || "datepicker".equals(columnWrapper.getItemType()) @@ -687,13 +691,37 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnWrapper.setColValue(colValue); } else { // remote类型。优先从缓存取 - Map optionsOfItem = itemIdAndOptionsCache.getIfPresent(itemIdAndColumnWrapper.getKey()); - if (optionsOfItem == null || optionsOfItem.size() == 0) { - optionsOfItem = listRemoteOptions(itemIdAndColumnWrappers, columnWrapper.getOptionSourceValue(), currUserAgencyId, "saveorupdate"); - itemIdAndOptionsCache.put(itemIdAndColumnWrapper.getKey(), optionsOfItem); + String fullUri = columnWrapper.getOptionSourceValue(); + String[] uriParts = splitOptionSourceUrl(fullUri); + String pureUri = uriParts[0]; + String superItemId = uriParts[1]; + String superColumValue; + + if (StringUtils.isNotBlank(superItemId)) { + superColumValue = itemIdAndColumnWrappers.get(superItemId).getColValue(); + } else { + superColumValue = "-"; + } + + Map> superOptions = itemIdAndOptionsCache.getIfPresent(itemId); + if (superOptions != null && superOptions.size() > 0) { + Map options = superOptions.get(superColumValue); + if (options == null || options.size() == 0) { + options = listRemoteOptions(pureUri, superItemId, itemIdAndColumnWrappers, currUserAgencyId, "saveorupdate"); + superOptions.put(superColumValue, options); + } + + String colValue = options.get(cellContent); + columnWrapper.setColValue(colValue); + } else { + Map options = listRemoteOptions(pureUri, superItemId, itemIdAndColumnWrappers, currUserAgencyId, "saveorupdate"); + superOptions = new HashMap<>(); + superOptions.put(superColumValue, options); + itemIdAndOptionsCache.put(itemId, superOptions); + + String colValue = options.get(cellContent); + columnWrapper.setColValue(colValue); } - String colValue = optionsOfItem.get(cellContent); - columnWrapper.setColValue(colValue); } } else if ("checkbox".equals(columnWrapper.getItemType())) { String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel); @@ -899,28 +927,37 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } /** - * 远程获取options + * 分割sourceUrl为纯url和父itemId * @param fullUri - * @return + * @return [ pureUri, cascadeItemId(父itemId) ] */ - public Map listRemoteOptions(Map columnWrappers, String fullUri, String currUserAgencyId, String purpose) { + public String[] splitOptionSourceUrl(String fullUri) { String pureUri = null; String cascadeItemId = null; - ColumnWrapper cascadeItemColumnWrapper = null; if (fullUri.indexOf(StrConstant.QUESTION_MARK) != -1) { String[] uriParts = fullUri.split(StrConstant.QUESTION_MARK_TRANSFER); pureUri = uriParts[0]; cascadeItemId = uriParts[1]; - - // 根据uri上的id,找到关联的itemid,从而找到关联的item的值 - if (columnWrappers != null){ - cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); - } } else { pureUri = fullUri; } + return new String[] { pureUri, cascadeItemId }; + } + + /** + * 远程获取options + * @return + */ + public Map listRemoteOptions(String pureUri, String cascadeItemId, Map columnWrappers, String currUserAgencyId, String purpose) { + ColumnWrapper cascadeItemColumnWrapper = null; + + // 根据uri上的id,找到关联的itemid,从而找到关联的item的值 + if (columnWrappers != null && StringUtils.isNotBlank(cascadeItemId)){ + cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); + } + List options = null; switch (pureUri) { 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 5709333e9b..34aa78df40 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 @@ -962,7 +962,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl remoteOptions = icResiUserImportService.listRemoteOptions(columnWrappers, e.getOptionSourceValue(), currentStaffAgencyId, "query"); + String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue()); + + Map remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? "是" : "否")); } else if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) { From 6230c5dc49b5b10aafc4b433f8ce868aa87e7412 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Mon, 21 Feb 2022 14:49:42 +0800 Subject: [PATCH 15/19] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/IcResiUserImportServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 40b6d3b5bc..348766de19 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -15,6 +15,7 @@ import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.ResultDataResolver; @@ -516,7 +517,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } catch (Exception e) { String errorMsg; - if (e instanceof RenException) { + if (e instanceof RenException | e instanceof EpmetException) { errorMsg = e.getMessage(); } else { errorMsg = "未知系统错误"; From d9f0e71e90b3ebee34524d373fdf265809e267a6 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 22 Feb 2022 10:28:53 +0800 Subject: [PATCH 16/19] =?UTF-8?q?=E8=81=94=E5=BB=BA=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=85=B3=E8=81=94=E5=A4=9A=E4=B8=AA=E5=8D=95=E4=BD=8D=E5=92=8C?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LatestActServiceRelationServiceImpl.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LatestActServiceRelationServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LatestActServiceRelationServiceImpl.java index f94e54a486..611207bd98 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LatestActServiceRelationServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LatestActServiceRelationServiceImpl.java @@ -1,24 +1,10 @@ package com.epmet.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.LatestActServiceRelationDao; -import com.epmet.dto.LatestActServiceRelationDTO; import com.epmet.entity.LatestActServiceRelationEntity; -import com.epmet.redis.LatestActServiceRelationRedis; import com.epmet.service.LatestActServiceRelationService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; /** * 联建活动与服务事项关联表 From 76877714ac9abb1a0545fcdc5396d543d53b820d Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 22 Feb 2022 10:33:20 +0800 Subject: [PATCH 17/19] errorInfo --- epmet-module/gov-org/gov-org-server/pom.xml | 5 ++ .../constant/ImportErrorMsgConstants.java | 6 ++ .../com/epmet/controller/HouseController.java | 19 +++-- .../epmet/model/BuildingErrorInfoModel.java | 7 +- .../com/epmet/model/HouseErrorInfoModel.java | 11 +-- .../model/ImportBuildingInfoListener.java | 54 ++++++++++---- .../epmet/model/ImportHouseInfoListener.java | 55 +++++++++++---- .../model/ImportNeighborHoodInfoListener.java | 44 +++++++++--- .../model/NeighborHoodErrorInfoModel.java | 5 +- .../epmet/service/IcNeighborHoodService.java | 3 + .../service/impl/BuildingServiceImpl.java | 20 ++++-- .../impl/IcNeighborHoodServiceImpl.java | 70 ++++++++++++++++++- 12 files changed, 239 insertions(+), 60 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 094292fe13..0a13f2a38d 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -33,6 +33,11 @@ epmet-commons-dynamic-datasource 2.0.0 + + com.epmet + epmet-oss-client + 2.0.0 + org.springframework.boot spring-boot-starter-web diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java index d49715e330..76f69d819e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java @@ -7,6 +7,12 @@ package com.epmet.constant; */ public interface ImportErrorMsgConstants { + String EXIST_ERROR = "数据已存在"; + String HOUSE_ERROR = "所属组织、所属网格、所属小区、所属楼栋、单元号、房屋类型、房屋用途、出租、房主姓名、房主电话、房主身份证的值未填写,或者所填写信息在系统中未找到"; + + String BUILDING_ERROR = "所属组织、所属网格、所属小区、楼栋类型、单元数的值未填写,或者所填写信息在系统中未找到"; + + String NEIGHBOR_HOOD_ERROR = "所属组织、所属网格、详细地址的值未填写,或者所填写信息在系统中未找到"; } 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 017da95fd9..026948d385 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 @@ -27,17 +27,17 @@ 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.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.feign.ResultDataResolver; 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.constants.ImportTaskConstants; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.form.*; -import com.epmet.dto.result.HouseInfoDTO; -import com.epmet.dto.result.IcNeighborHoodResultDTO; -import com.epmet.dto.result.ImportResultDTO; -import com.epmet.dto.result.LoginUserDetailsResultDTO; +import com.epmet.dto.result.*; import com.epmet.excel.IcHouseExcel; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.model.HouseInfoModel; @@ -85,6 +85,8 @@ public class HouseController implements ResultDataResolver { private IcNeighborHoodService neighborHoodService; @Autowired private IcHouseService icHouseService; + @Autowired + private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; @PostMapping("houselist") @@ -266,10 +268,17 @@ public class HouseController implements ResultDataResolver { } catch (IOException e) { return new Result().error("读取文件失败"); } + ImportTaskCommonFormDTO importFormDTO = new ImportTaskCommonFormDTO(); + importFormDTO.setBizType(ImportTaskConstants.BIZ_TYPE_HOUSE); + importFormDTO.setOperatorId(formDTO.getUserId()); + Result importTask = epmetCommonServiceOpenFeignClient.createImportTask(importFormDTO); + if (!importTask.success()){ + throw new EpmetException("创建任务失败"); + } excelReader = EasyExcel.read(inputStream).build(); // 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class) - .registerReadListener(new ImportHouseInfoListener(formDTO,icBuildingDao,icHouseRedis,neighborHoodService,icHouseService)) + .registerReadListener(new ImportHouseInfoListener(formDTO,icBuildingDao,icHouseRedis,neighborHoodService,icHouseService,epmetCommonServiceOpenFeignClient,importTask.getData().getTaskId())) .build(); excelReader.read(readSheet); } finally { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingErrorInfoModel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingErrorInfoModel.java index e7db295a7e..d85a95854f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingErrorInfoModel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingErrorInfoModel.java @@ -1,5 +1,6 @@ package com.epmet.model; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @@ -11,13 +12,13 @@ import lombok.Data; @Data public class BuildingErrorInfoModel { - @ExcelProperty(value = "小区名称") + @Excel(name = "小区名称") private String neighborHoodName; - @ExcelProperty(value = "楼栋名称") + @Excel(name = "楼栋名称") private String buildingName; - @ExcelProperty(value = "错误信息") + @Excel(name = "错误信息") private String errorMsg; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseErrorInfoModel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseErrorInfoModel.java index 9cb84948c5..c050e3a8e4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseErrorInfoModel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseErrorInfoModel.java @@ -1,5 +1,6 @@ package com.epmet.model; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -12,19 +13,19 @@ import org.hibernate.validator.constraints.Length; @Data public class HouseErrorInfoModel { - @ExcelProperty(value = "所属小区") + @Excel(name = "所属小区") private String neighborHoodName; - @ExcelProperty(value = "所属楼栋") + @Excel(name = "所属楼栋") private String buildingName; - @ExcelProperty(value = "单元号") + @Excel(name = "单元号") private Integer buildingUnit; - @ExcelProperty(value = "门牌号") + @Excel(name = "门牌号") private String doorName; - @ExcelProperty(value = "错误信息") + @Excel(name = "错误信息") private String errorMsg; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java index 63e5f39000..73f4a18b84 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java @@ -9,20 +9,22 @@ import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.CustomerGridConstant; +import com.epmet.constant.ImportErrorMsgConstants; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.ImportInfoFormDTO; +import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.result.ImportResultDTO; import com.epmet.enums.BuildingTypeEnums; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.redis.IcHouseRedis; import com.epmet.service.IcNeighborHoodService; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.io.IOException; +import java.util.*; import java.util.stream.Collectors; /** @@ -36,6 +38,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener errorInfos = new ArrayList<>(); BuildingInfoModel info = null; + String taskId = ""; List needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); @@ -56,12 +59,15 @@ public class ImportBuildingInfoListener extends AnalysisEventListener { nums.add(e.getNum()); - disposeErrorMsg(info,""); + disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); }); } } @@ -163,7 +169,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener errorInfos = new ArrayList<>(); HouseInfoModel info = null; + String taskId = ""; List needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); @@ -61,13 +67,16 @@ public class ImportHouseInfoListener extends AnalysisEventListener errorInfos = new ArrayList<>(); NeighborHoodInfoModel info = null; + String taskId = ""; List needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); @@ -57,13 +63,16 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener { nums.add(e.getNum()); - disposeErrorMsg(info,""); + disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); }); } List notExistList = groupByBuildingExistStatus.get(false); @@ -178,7 +186,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener void insertPropertyManagement(List propertyManagementEntities); void neighborHoodPropertyInsert(List entities); + + String orgGeneralImport(Collection errorRows, Class tClass) throws IOException; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 15daabf246..e1ee7204d5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -13,24 +13,25 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.*; import com.epmet.dto.BuildingTreeLevelDTO; import com.epmet.dto.CustomerStaffAgencyDTO; import com.epmet.dto.IcBuildingDTO; import com.epmet.dto.form.IcBulidingFormDTO; import com.epmet.dto.form.ImportInfoFormDTO; +import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.form.ListIcNeighborHoodFormDTO; -import com.epmet.dto.result.BuildingResultDTO; -import com.epmet.dto.result.BuildingResultPagedDTO; -import com.epmet.dto.result.IcNeighborHoodResultDTO; -import com.epmet.dto.result.ImportResultDTO; +import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.enums.BuildingTypeEnums; import com.epmet.excel.IcBuildingExcel; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.model.BuildingInfoModel; import com.epmet.model.HouseInfoModel; import com.epmet.model.ImportBuildingInfoListener; @@ -89,6 +90,8 @@ public class BuildingServiceImpl implements BuildingService { private IcHouseRedis icHouseRedis; @Autowired private IcNeighborHoodService neighborHoodService; + @Autowired + private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; @Override @Transactional(rollbackFor = Exception.class) @@ -406,10 +409,17 @@ public class BuildingServiceImpl implements BuildingService { } catch (IOException e) { return new Result().error("读取文件失败"); } + ImportTaskCommonFormDTO importFormDTO = new ImportTaskCommonFormDTO(); + importFormDTO.setBizType(ImportTaskConstants.BIZ_TYPE_NEIGHBOR_HOOD); + importFormDTO.setOperatorId(formDTO.getUserId()); + Result importTask = epmetCommonServiceOpenFeignClient.createImportTask(importFormDTO); + if (!importTask.success()){ + throw new EpmetException("创建任务失败"); + } excelReader = EasyExcel.read(inputStream).build(); // 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener ReadSheet readSheet = EasyExcel.readSheet(0).head(BuildingInfoModel.class) - .registerReadListener(new ImportBuildingInfoListener(formDTO,icHouseRedis,icBuildingDao,neighborHoodService)) + .registerReadListener(new ImportBuildingInfoListener(formDTO,icHouseRedis,icBuildingDao,neighborHoodService,epmetCommonServiceOpenFeignClient,importTask.getData().getTaskId())) .build(); excelReader.read(readSheet); } finally { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java index 99db449d72..5b22e65a97 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java @@ -17,7 +17,8 @@ package com.epmet.service.impl; -import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.read.metadata.ReadSheet; @@ -31,6 +32,7 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.OptionResultDTO; 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.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; @@ -39,16 +41,22 @@ import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.CustomerGridDao; import com.epmet.dao.IcBuildingDao; import com.epmet.dao.IcNeighborHoodDao; import com.epmet.dao.IcPropertyManagementDao; import com.epmet.dto.*; import com.epmet.dto.form.ImportInfoFormDTO; +import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.result.ImportResultDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.dto.result.InfoByNamesResultDTO; +import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.entity.*; import com.epmet.excel.IcNeighborHoodExcel; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.OssFeignClient; import com.epmet.model.ImportNeighborHoodInfoListener; import com.epmet.model.NeighborHoodInfoModel; import com.epmet.redis.IcHouseRedis; @@ -58,14 +66,21 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.http.entity.ContentType; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.commons.fileupload.FileItem; +import org.apache.tomcat.util.http.fileupload.FileItemFactory; +import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.util.*; import java.util.stream.Collectors; @@ -95,6 +110,10 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl page(Map params) { @@ -396,10 +415,17 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl().error("读取文件失败"); } + ImportTaskCommonFormDTO importFormDTO = new ImportTaskCommonFormDTO(); + importFormDTO.setBizType(ImportTaskConstants.BIZ_TYPE_NEIGHBOR_HOOD); + importFormDTO.setOperatorId(formDTO.getUserId()); + Result importTask = epmetCommonServiceOpenFeignClient.createImportTask(importFormDTO); + if (!importTask.success()){ + throw new EpmetException("创建任务失败"); + } excelReader = EasyExcel.read(inputStream).build(); // 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener ReadSheet readSheet = EasyExcel.readSheet(0).head(NeighborHoodInfoModel.class) - .registerReadListener(new ImportNeighborHoodInfoListener(formDTO,icHouseRedis,icBuildingDao,this,propertyManagementDao)) + .registerReadListener(new ImportNeighborHoodInfoListener(formDTO,icHouseRedis,icBuildingDao,this,propertyManagementDao,epmetCommonServiceOpenFeignClient,importTask.getData().getTaskId())) .build(); excelReader.read(readSheet); } finally { @@ -609,4 +635,44 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl String orgGeneralImport(Collection errorRows, Class tClass) throws IOException { + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的数据列表","导入失败的数据列表"), + tClass, errorRows); + + // 文件名 + String resultDescFileName = UUID.randomUUID().toString().concat(".xls"); + + FileItemFactory factory = new DiskFileItemFactory(16, null); + FileItem fileItem = (FileItem) factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, resultDescFileName); + OutputStream os = fileItem.getOutputStream(); + Result uploadResult = null; + try { + workbook.write(os); + uploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + } catch (Exception e) { + String errormsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【居民信息导入】上传错误描述文件:{}", errormsg); + } finally { + try { + os.close(); + } catch (IOException e) { + String errormsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【居民信息导入】上传错误描述文件关闭输出流:{}", errormsg); + } + try { + fileItem.delete(); + } catch (Exception e) { + String errormsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【居民信息导入】上传错误描述文件删除临时文件:{}", errormsg); + } + } + + if (uploadResult == null || !uploadResult.success()) { + log.error("【居民信息导入】调用OSS上传结果描述文件失败"); + return null; + } + return uploadResult.getData().getUrl(); + } + } From 750c2cf50c1dfd0a7784be396a5cac1fae8a0ac5 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 22 Feb 2022 10:34:34 +0800 Subject: [PATCH 18/19] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/feign/FeignConfig.java | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java index 5bf8a82715..ec7806a620 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java @@ -10,14 +10,9 @@ package com.epmet.commons.tools.feign; import feign.Logger; import feign.RequestInterceptor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.filter.RequestContextFilter; -import org.springframework.web.servlet.DispatcherServlet; - -import javax.annotation.PostConstruct; /** @@ -29,10 +24,6 @@ import javax.annotation.PostConstruct; */ @Configuration public class FeignConfig { - @Autowired - RequestContextFilter requestContextFilter; - @Autowired - DispatcherServlet dispatcherServlet; @Bean @ConditionalOnMissingBean @@ -46,10 +37,5 @@ public class FeignConfig { return Logger.Level.BASIC;//控制台会输出debug日志 } - @PostConstruct - public void init() { - // 设置线程继承属性为true,便于子线程获取到父线程的request,两个都设置为了保险。 - requestContextFilter.setThreadContextInheritable(true); - dispatcherServlet.setThreadContextInheritable(true); - } + } From aee550a064e0c6800eb01613b2d2b4a16637bda2 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 22 Feb 2022 10:56:34 +0800 Subject: [PATCH 19/19] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/validator/group/QueryGroup.java | 19 ++++++++++++++++++ .../dto/form/ImportTaskCommonFormDTO.java | 6 ++++-- .../controller/ImportTaskController.java | 19 ++++++++++++++++-- .../com/epmet/service/ImportTaskService.java | 15 ++++++++++++-- .../service/impl/ImportTaskServiceImpl.java | 20 +++++++++++++++++-- 5 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/group/QueryGroup.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/group/QueryGroup.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/group/QueryGroup.java new file mode 100644 index 0000000000..df4536366b --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/group/QueryGroup.java @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2018 人人开源 All rights reserved. + * + * https://www.renren.io + * + * 版权所有,侵权必究! + */ + +package com.epmet.commons.tools.validator.group; + +/** + * 查询 Group + * + * @author Mark sunlightcs@gmail.com + * @since 1.0.0 + */ +public interface QueryGroup { + +} diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java index 07a6137ca4..0b596b40c7 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ImportTaskCommonFormDTO.java @@ -1,11 +1,13 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; +import com.epmet.commons.tools.validator.group.QueryGroup; import lombok.Data; import javax.validation.constraints.NotBlank; @Data -public class ImportTaskCommonFormDTO { +public class ImportTaskCommonFormDTO extends PageFormDTO { public interface Create {} public interface Finish {} @@ -13,7 +15,7 @@ public class ImportTaskCommonFormDTO { /** * 操作者ID */ - @NotBlank(message = "操作者ID必填", groups = { Create.class, Finish.class }) + @NotBlank(message = "操作者ID必填", groups = { Create.class, Finish.class, QueryGroup.class}) private String operatorId; /** diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java index d6ce2f4be8..24cb53f8d4 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java @@ -1,9 +1,13 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.QueryGroup; import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.service.ImportTaskService; @@ -12,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; - @RestController @RequestMapping("import-task") public class ImportTaskController { @@ -21,6 +23,19 @@ public class ImportTaskController { @Autowired private ImportTaskService importTaskService; + /** + * desc:分页获取个人导入记录 + * @param tokenDto + * @return + */ + @RequestMapping("page") + public Result> list(@LoginUser TokenDto tokenDto, @RequestBody ImportTaskCommonFormDTO param) { + //tokenDto.setUserId("d8dfc6c1fa2538976059f3900036d419"); + param.setOperatorId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(param, QueryGroup.class); + return new Result().ok(importTaskService.page(param)); + } + /** * 创建导入任务 * @param input diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ImportTaskService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ImportTaskService.java index dee9e7984c..dbc4cde7c1 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ImportTaskService.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ImportTaskService.java @@ -1,8 +1,12 @@ package com.epmet.service; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.form.ImportTaskCommonFormDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; + /** - * + * * * @author generator generator@elink-cn.com * @since v1.0.0 2022-02-15 @@ -32,4 +36,11 @@ public interface ImportTaskService { * @param resultDesc 结果描述文本 */ Boolean finish(String taskId, String processStatus, String operatorId, String resultDescFile, String resultDesc); -} \ No newline at end of file + + /** + * desc:分页获取个人导入记录 + * @param param + * @return + */ + PageData page(ImportTaskCommonFormDTO param); +} diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ImportTaskServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ImportTaskServiceImpl.java index 987fe3a0ae..6692d1f46e 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ImportTaskServiceImpl.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ImportTaskServiceImpl.java @@ -3,17 +3,22 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.ImportTaskDao; +import com.epmet.dto.form.ImportTaskCommonFormDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.entity.ImportTaskEntity; import com.epmet.service.ImportTaskService; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; /** - * + * * * @author generator generator@elink-cn.com * @since v1.0.0 2022-02-15 @@ -77,4 +82,15 @@ public class ImportTaskServiceImpl implements ImportTaskService { public Boolean finish(String taskId, String processStatus, String operatorId, String resultDescFile, String resultDesc) { return importRecordDao.finish(taskId, processStatus, operatorId, resultDesc, resultDescFile) > 0; } -} \ No newline at end of file + + @Override + public PageData page(ImportTaskCommonFormDTO param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ImportTaskEntity::getOperatorId,param.getOperatorId()); + Page page = PageHelper.startPage(param.getPageNo(), param.getPageSize(), param.isPage()).doSelectPage(() -> { + importRecordDao.selectList(queryWrapper); + }); + PageData result = new PageData<>(page.getResult(),page.getTotal()); + return result; + } +}