Browse Source

Merge remote-tracking branch 'origin/develop' into release_temp

dev_shibei_match
zxc 4 years ago
parent
commit
d3d910eb5a
  1. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  2. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml
  3. 31
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ClosedProjectTotalResultDTO.java
  4. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java
  5. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/CategoryProjectResultDTO.java
  6. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java
  7. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java
  8. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java
  9. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java
  10. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java
  11. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java
  12. 29
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java
  13. 2
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.25__add_closedProjectTotal.sql
  14. 40
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml
  15. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml
  16. 33
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml
  17. 9
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  18. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
  19. 11
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java
  20. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  21. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java
  22. 20
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java
  23. 12
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  24. 20
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ColumnTableNameResultDTO.java
  25. 9
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  26. 5
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  27. 11
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java
  28. 7
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  29. 7
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  30. 18
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  31. 17
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  32. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
  33. 7
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java
  34. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  35. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  36. 321
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  37. BIN
      epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls
  38. 2
      epmet-user/epmet-user-server/src/main/resources/logback-spring.xml
  39. 76
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

43
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -769,32 +769,39 @@
<select id="selectGirdMemberPatrol" resultType="com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO">
SELECT
staff_id staffId,
staff_name staffName,
date_id dateId,
a.staff_id staffId,
a.staff_name staffName,
a.date_id dateId,
IFNULL(
SUM(
issue_to_project_count + closed_issue_count + project_response_count + project_transfer_count + project_closed_count
)
, 0)eventCount
FROM
fact_grid_member_statistics_daily
WHERE
del_flag = '0'
AND pids LIKE concat('%', #{agencyId}, '%')
AND date_id = (
SELECT MAX(date_id)
FROM fact_grid_member_statistics_daily
WHERE
del_flag = '0'
a.issue_to_project_count + a.closed_issue_count + a.project_response_count + a.project_transfer_count + a.project_closed_count
),
0
) eventCount
FROM
fact_grid_member_statistics_daily a
INNER JOIN (
SELECT
staff_id,
MAX(date_id) date_id
FROM
fact_grid_member_statistics_daily
WHERE del_flag = '0'
AND pids LIKE concat('%', #{agencyId}, '%')
<if test="dimType!= null and dimType == 'month' ">
AND month_id = #{dimId}
</if>
<if test="dimType!= null and dimType == 'year' ">
AND year_id = #{dimId}
</if>
)
GROUP BY staff_id
GROUP BY STAFF_ID
) b ON a.STAFF_ID = b.STAFF_ID AND a.date_id = b.date_id
WHERE
a.del_flag = '0'
AND a.pids LIKE concat('%', #{agencyId}, '%')
GROUP BY a.staff_id
ORDER BY a.date_id DESC
</select>
<select id="regUserList" resultType="com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO$CustomerDataManage">

2
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml

@ -124,7 +124,7 @@
<select id="gridMemberPatrol" resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO">
SELECT
staff_id staffId,
IFNULL(SUM(patrol_total), 0) reportProjectCount,
IFNULL(SUM(report_project_count), 0) reportProjectCount,
IFNULL(SUM(total_time), 0) timeNum
FROM
stats_staff_patrol_record_daily

31
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ClosedProjectTotalResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.project.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/11/4 9:12 上午
* @DESC
*/
@Data
public class ClosedProjectTotalResultDTO implements Serializable {
private static final long serialVersionUID = -3683494871244065806L;
/**
* 组织ID
*/
private String orgId;
/**
* 分类code
*/
private String categoryCode;
/**
* 结案的项目数
*/
private Integer closedProjectTotal = 0;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java

@ -120,4 +120,6 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable {
*/
private Boolean status = false;
private Integer closedProjectTotal = 0;
}

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/CategoryProjectResultDTO.java

@ -42,6 +42,11 @@ public class CategoryProjectResultDTO implements Serializable {
*/
private Integer projectTotal;
/**
* 结案数
*/
private Integer closedProjectTotal;
/**
* 分类级别
*/

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java

@ -42,7 +42,7 @@ public interface FactOriginProjectCategoryDailyDao extends BaseDao<FactOriginPro
* @description 计算当前客户下各个网格内各项目分类下项目数量
* @Date 2021/3/23 9:58
**/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryGridDailyDTO(@Param("customerId") String customerId,@Param("subCount")Integer subCount);
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryGridDailyDTO(@Param("customerId") String customerId,@Param("subCount")Integer subCount,@Param("projectType")String projectType);
/**
* @Description 查询客户下组织直接立项的各项目分类下的项目数量筛选组织创建的项目fact_origin_project_main_daily表gridId为空
@ -50,7 +50,8 @@ public interface FactOriginProjectCategoryDailyDao extends BaseDao<FactOriginPro
* @author zxc
* @date 2021/4/13 下午4:36
*/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(@Param("orgIds")List<String> orgIds,@Param("customerId") String customerId,@Param("subCount") Integer subCount);
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(@Param("orgIds")List<String> orgIds,@Param("customerId") String customerId,
@Param("subCount") Integer subCount,@Param("projectType")String projectType);
int deleteByProjectIds(@Param("list") List<String> list);
}

12
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java

@ -18,6 +18,7 @@
package com.epmet.dao.evaluationindex.screen;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.project.result.ClosedProjectTotalResultDTO;
import com.epmet.dto.screen.result.CategoryProjectResultDTO;
import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryOrgDailyEntity;
import com.sun.org.apache.xpath.internal.operations.Bool;
@ -106,4 +107,15 @@ public interface ScreenProjectCategoryOrgDailyDao extends BaseDao<ScreenProjectC
* @date 2021/8/16 10:36 上午
*/
List<CategoryProjectResultDTO> selectSelfAgencyCategory(@Param("dateId") String dateId,@Param("orgIds")List<String> orgIds);
/**
* @Description 查询父客户 存在 分类的结案项目数
* @param customerIds
* @param dateId
* @author zxc
* @date 2021/11/4 9:26 上午
*/
List<ClosedProjectTotalResultDTO> selectClosedProjectTotal(@Param("customerIds")List<String> customerIds, @Param("dateId") String dateId,
@Param("status")Boolean status);
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java

@ -74,4 +74,9 @@ public class ScreenProjectCategoryGridDailyEntity extends BaseEpmetEntity {
* 分类等级12....
*/
private Integer level;
/**
* 分类下所有结案的项目
*/
private Integer closedProjectTotal;
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java

@ -82,6 +82,11 @@ public class ScreenProjectCategoryOrgDailyEntity extends BaseEpmetEntity {
*/
private Integer projectTotal;
/**
* 分类下所有结案项目数
*/
private Integer closedProjectTotal;
/**
* 分类等级12....
*/

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java

@ -54,5 +54,5 @@ public interface FactOriginProjectCategoryDailyService extends BaseService<FactO
* @author zxc
* @date 2021/4/13 下午4:36
*/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(List<String> orgIds,String customerId,Integer subCount);
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(List<String> orgIds,String customerId,Integer subCount,String projectType);
}

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java

@ -138,7 +138,11 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl<F
**/
@Override
public List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryGridDailyDTO(String customerId) {
List<ScreenProjectCategoryGridDailyDTO> list=baseDao.selectListProjectCategoryGridDailyDTO(customerId,getSubCount(customerId));
List<ScreenProjectCategoryGridDailyDTO> list=baseDao.selectListProjectCategoryGridDailyDTO(customerId,getSubCount(customerId),"all");
List<ScreenProjectCategoryGridDailyDTO> closedList = baseDao.selectListProjectCategoryGridDailyDTO(customerId,getSubCount(customerId),"closed");
if (!CollectionUtils.isEmpty(closedList)){
list.forEach(l -> closedList.stream().filter(c -> l.getGridId().equals(c.getGridId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal())));
}
return list;
}
@ -157,10 +161,10 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl<F
* @date 2021/4/13 下午4:36
*/
@Override
public List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(List<String> orgIds,String customerId,Integer subCount) {
public List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(List<String> orgIds,String customerId,Integer subCount,String projectType) {
if (!CollectionUtils.isEmpty(orgIds)){
return new ArrayList<>();
}
return baseDao.selectListProjectCategoryByOrg(orgIds,customerId,subCount);
return baseDao.selectListProjectCategoryByOrg(orgIds,customerId,subCount,projectType);
}
}

29
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java

@ -32,6 +32,7 @@ import com.epmet.constant.ScreenConstant;
import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryGridDailyDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryOrgDailyDao;
import com.epmet.dto.extract.result.CustomerAgencyInfoResultDTO;
import com.epmet.dto.project.result.ClosedProjectTotalResultDTO;
import com.epmet.dto.screen.ScreenCustomerGridDTO;
import com.epmet.dto.screen.ScreenProjectCategoryGridDailyDTO;
import com.epmet.dto.screen.ScreenProjectCategoryOrgDailyDTO;
@ -264,6 +265,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
categoryProjectGrid.forEach(grid -> {
if (agency.getOrgId().equals(grid.getOrgId()) && agency.getCategoryCode().equals(grid.getCategoryCode())){
agency.setProjectTotal(agency.getProjectTotal() + grid.getProjectTotal());
agency.setClosedProjectTotal(agency.getClosedProjectTotal() + grid.getClosedProjectTotal());
grid.setStatus(true);
}
});
@ -280,7 +282,11 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
// 组织项目分类 项目数
List<CustomerAgencyInfoResultDTO> levelAgencyInfo = groupByLevel.get(level);
if (!CollectionUtils.isEmpty(levelAgencyInfo)){
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId,NumConstant.FOUR);
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId,NumConstant.FOUR,"all");
List<ScreenProjectCategoryGridDailyDTO> closedScreenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId,NumConstant.FOUR,"closed");
if (!CollectionUtils.isEmpty(closedScreenProjectCategory)){
screenProjectCategory.forEach(l -> closedScreenProjectCategory.stream().filter(c -> l.getGridId().equals(c.getGridId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal())));
}
if (!CollectionUtils.isEmpty(result)){
if (!CollectionUtils.isEmpty(screenProjectCategory)){
result.forEach(r -> {
@ -288,6 +294,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
if (r.getOrgId().equals(pc.getOrgId()) && r.getCategoryCode().equals(pc.getCategoryCode())){
pc.setStatus(true);
r.setProjectTotal(r.getProjectTotal() + pc.getProjectTotal());
r.setClosedProjectTotal(r.getClosedProjectTotal() + pc.getClosedProjectTotal());
}
});
});
@ -390,6 +397,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
// 组织ID 和 分类标签code一样时,项目数累加
if (agency.getOrgId().equals(grid.getOrgId()) && agency.getCategoryCode().equals(grid.getCategoryCode())){
agency.setProjectTotal(agency.getProjectTotal() + grid.getProjectTotal());
agency.setClosedProjectTotal(agency.getClosedProjectTotal() + grid.getClosedProjectTotal());
grid.setStatus(true);
}
});
@ -417,13 +425,23 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
// 父客户存在的分类
List<CategoryProjectResultDTO> categoryProjectExists = baseDao.selectOrgCategoryMoreCustomerInfo(customerIds, dateId, level, customerId);
log.info("父客户存在的分类{}"+ JSON.toJSONString(categoryProjectExists));
// 父客户存在的分类 已结案的项目数
List<ClosedProjectTotalResultDTO> closedProjectTotalExist = baseDao.selectClosedProjectTotal(customerIds, dateId, true);
// 父客户不存在的分类
List<CategoryProjectResultDTO> categoryProjectNotExists = baseDao.selectOrgCategoryMoreCustomerInfoNotExists(customerIds, dateId, level, customerId);
log.info("父客户不存在的分类{}"+ JSON.toJSONString(categoryProjectNotExists));
// 父客户 不存在 的分类 已结案的项目数
List<ClosedProjectTotalResultDTO> closedProjectTotalNotExist = baseDao.selectClosedProjectTotal(customerIds, dateId, false);
if (!CollectionUtils.isEmpty(categoryProjectExists)){
if (!CollectionUtils.isEmpty(closedProjectTotalExist)){
categoryProjectExists.forEach(l -> closedProjectTotalExist.stream().filter(c -> l.getOrgId().equals(c.getOrgId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal())));
}
sonCustomerList.addAll(categoryProjectExists);
}
if (!CollectionUtils.isEmpty(categoryProjectNotExists)){
if (!CollectionUtils.isEmpty(closedProjectTotalNotExist)){
categoryProjectNotExists.forEach(l -> closedProjectTotalNotExist.stream().filter(c -> l.getOrgId().equals(c.getOrgId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal())));
}
sonCustomerList.addAll(categoryProjectNotExists);
}
if (!CollectionUtils.isEmpty(sonCustomerList)){
@ -443,6 +461,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
categoryProjectExists.forEach(c -> {
if (f.getCategoryCode().equals(c.getCategoryCode())){
f.setProjectTotal(f.getProjectTotal() + c.getProjectTotal());
f.setClosedProjectTotal(f.getClosedProjectTotal() + c.getClosedProjectTotal());
c.setStatus(true);
}
});
@ -481,6 +500,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
e.setCategoryCode(code);
e.setOrgId(entity.getAgencyId());
e.setProjectTotal(CollectionUtils.isEmpty(list2) ? NumConstant.ZERO : list2.stream().collect(Collectors.summingInt(CategoryProjectResultDTO::getProjectTotal)));
e.setClosedProjectTotal(CollectionUtils.isEmpty(list2) ? NumConstant.ZERO : list2.stream().collect(Collectors.summingInt(CategoryProjectResultDTO::getClosedProjectTotal)));
e.setPid(entity.getPid());
e.setPids(StringUtils.isEmpty(entity.getPids()) ? NumConstant.ZERO_STR : entity.getPids());
// 因为根据categoryCode分组,所以level都一样,取第一条的
@ -496,7 +516,11 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
List<CustomerAgencyInfoResultDTO> levelAgencyInfo = groupByLevel.get(level);
if (!CollectionUtils.isEmpty(levelAgencyInfo)) {
// 查询客户下,组织直接立项的,各项目分类下的项目数量【筛选组织创建的项目,fact_origin_project_main_daily表gridId为空】
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId,NumConstant.TWO);
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId,NumConstant.TWO,"all");
List<ScreenProjectCategoryGridDailyDTO> closedScreenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId,NumConstant.TWO,"closed");
if (!CollectionUtils.isEmpty(closedScreenProjectCategory)){
screenProjectCategory.forEach(l -> closedScreenProjectCategory.stream().filter(c -> l.getGridId().equals(c.getGridId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal())));
}
log.info("直接立项的统计:"+screenProjectCategory);
if (!CollectionUtils.isEmpty(result)) {
if (!CollectionUtils.isEmpty(screenProjectCategory)) {
@ -505,6 +529,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
if (r.getOrgId().equals(pc.getOrgId()) && r.getCategoryCode().equals(pc.getCategoryCode())) {
pc.setStatus(true);
r.setProjectTotal(r.getProjectTotal() + pc.getProjectTotal());
r.setClosedProjectTotal(r.getClosedProjectTotal() + pc.getClosedProjectTotal());
}
});
});

2
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.25__add_closedProjectTotal.sql

@ -0,0 +1,2 @@
alter table screen_project_category_grid_daily add COLUMN CLOSED_PROJECT_TOTAL int(11) NOT NULL DEFAULT 0 comment '该分类下所有结案的项目数' AFTER PROJECT_TOTAL;
alter table screen_project_category_org_daily add COLUMN CLOSED_PROJECT_TOTAL int(11) NOT NULL DEFAULT 0 comment '该分类下所有结案的项目数' AFTER PROJECT_TOTAL;

40
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml

@ -36,13 +36,21 @@
p.GRID_ID,
p.AGENCY_ID AS PID,
P.PIDS,
count(1)as projectTotal
<if test='projectType == "closed" '>
count(1) AS closedProjectTotal
</if>
<if test='projectType == "all" '>
count(1)as projectTotal
</if>
FROM
fact_origin_project_category_daily c
LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '')
WHERE
c.DEL_FLAG = '0'
AND c.CUSTOMER_ID = #{customerId}
<if test='projectType == "closed" '>
AND p.PROJECT_STATUS = 'closed'
</if>
AND c.`LEVEL` = '2'
AND p.GRID_ID != ''
GROUP BY
@ -60,13 +68,21 @@
p.GRID_ID,
p.AGENCY_ID AS PID,
P.PIDS,
count(distinct c.project_id)as projectTotal
<if test='projectType == "closed" '>
count(distinct c.project_id) AS closedProjectTotal
</if>
<if test='projectType == "all" '>
count(distinct c.project_id)as projectTotal
</if>
FROM
fact_origin_project_category_daily c
LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '')
WHERE
c.DEL_FLAG = '0'
AND p.GRID_ID != ''
<if test='projectType == "closed" '>
AND p.PROJECT_STATUS = 'closed'
</if>
AND c.CUSTOMER_ID = #{customerId}
GROUP BY
c.CUSTOMER_ID,
@ -87,7 +103,12 @@
p.AGENCY_ID AS orgId,
p.PID AS PID,
P.PIDS,
COUNT(DISTINCT p.ID) AS projectTotal
<if test='projectType == "all" '>
COUNT(DISTINCT p.ID) AS projectTotal
</if>
<if test='projectType == "closed" '>
COUNT(DISTINCT p.ID) AS closedProjectTotal
</if>
FROM fact_origin_project_main_daily p
LEFT JOIN fact_origin_project_category_daily c ON ( c.PROJECT_Id = p.id AND p.del_flag='0' AND p.GRID_ID = '')
WHERE c.DEL_FLAG = '0'
@ -99,6 +120,9 @@
)
AND c.`LEVEL` = '2'
AND p.GRID_ID = ''
<if test='projectType == "closed" '>
AND p.PROJECT_STATUS = 'closed'
</if>
GROUP BY c.CUSTOMER_ID, c.CATEGORY_CODE, c.`LEVEL`, p.AGENCY_ID, p.PID, P.PIDS
UNION ALL
SELECT
@ -109,7 +133,12 @@
p.AGENCY_ID AS orgId,
p.PID AS PID,
P.PIDS,
COUNT(distinct p.ID) AS projectTotal
<if test='projectType == "all" '>
COUNT(DISTINCT p.ID) AS projectTotal
</if>
<if test='projectType == "closed" '>
COUNT(DISTINCT p.ID) AS closedProjectTotal
</if>
FROM fact_origin_project_main_daily p
LEFT JOIN fact_origin_project_category_daily c ON ( c.PROJECT_Id = p.id AND p.del_flag='0' AND p.GRID_ID = '')
WHERE c.DEL_FLAG = '0'
@ -120,6 +149,9 @@
</foreach>
)
AND p.GRID_ID = ''
<if test='projectType == "closed" '>
AND p.PROJECT_STATUS = 'closed'
</if>
GROUP BY c.CUSTOMER_ID, left(c.CATEGORY_CODE, #{subCount}), c.`LEVEL`, p.PID, p.AGENCY_ID, P.PIDS
</select>
</mapper>

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml

@ -20,6 +20,7 @@
sg.CUSTOMER_ID AS categoryOriginCustomerId,
sg.CATEGORY_CODE,
SUM(sg.PROJECT_TOTAL) AS projectTotal,
SUM(sg.CLOSED_PROJECT_TOTAL) AS closedProjectTotal,
sg.level,
sg.DATE_ID,
sca.`LEVEL` AS orgType

33
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml

@ -32,6 +32,7 @@
sa.CATEGORY_ORIGIN_CUSTOMER_ID,
sa.CATEGORY_CODE,
SUM(sa.PROJECT_TOTAL) AS projectTotal,
SUM(sa.CLOSED_PROJECT_TOTAL) AS closedProjectTotal,
sa.level,
sa.DATE_ID,
sca.`LEVEL` AS orgType
@ -182,4 +183,36 @@
GROUP BY categoryCode,od.ORG_ID
</select>
<!-- 查询分类的结案项目数 -->
<select id="selectClosedProjectTotal" resultType="com.epmet.dto.project.result.ClosedProjectTotalResultDTO">
<foreach collection="customerIds" item="customerId" separator=" UNION ALL ">
SELECT
(SELECT AGENCY_ID FROM screen_customer_agency WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} AND PID = '0') AS orgId,
<if test="status == true">
cd.EPMET_CATEGORY_CODE AS categoryCode,
</if>
<if test="status == false">
pd.CATEGORY_CODE AS categoryCode
</if>
count(pd.project_id) AS closedProjectTotal
FROM screen_project_data pd
LEFT JOIN customer_project_category_dict cd ON (cd.CATEGORY_CODE = pd.CATEGORY_CODE AND cd.CUSTOMER_ID = #{customerId})
LEFT JOIN screen_customer_grid scg ON scg.GRID_ID = pd.ORG_ID
WHERE 1=1
AND pd.DEL_FLAG = '0'
AND pd.CUSTOMER_ID = #{customerId}
<if test="status == true">
AND cd.EPMET_CATEGORY_CODE IS NOT NULL
</if>
<if test="status == false">
AND (cd.EPMET_CATEGORY_CODE IS NULL OR cd.EPMET_CATEGORY_CODE = '')
</if>
AND cd.EPMET_CATEGORY_CODE != ''
AND pd.PROJECT_STATUS_CODE = 'closed'
AND pd.ALL_PARENT_IDS LIKE CONCAT('%',(SELECT AGENCY_ID FROM screen_customer_agency WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} AND PID = '0'),'%')
AND DATE_FORMAT(pd.project_create_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY categoryCode
</foreach>
</select>
</mapper>

9
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -507,4 +507,13 @@ public interface GovOrgOpenFeignClient {
*/
@PostMapping("/gov/org/icneighborhood/neighborhoodoption")
Result<List<OptionResultDTO>> getNeighborHoodOptions(IcNeighborHoodDTO dto);
/**
* @Description 查询房屋信息
* @param idCard
* @author zxc
* @date 2021/11/3 3:30 下午
*/
@PostMapping("/gov/org/ichouse/selecthouseinfobyidcard")
Result<List<String>> selectHouseInfoByIdCard(@RequestParam("idCard")String idCard);
}

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java

@ -305,6 +305,11 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getNeighborHoodOptions", dto);
}
@Override
public Result<List<String>> selectHouseInfoByIdCard(String idCard) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectHouseInfoByIdCard", idCard);
}
@Override
public Result<String> selectPidsByGridId(String gridId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId);

11
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java

@ -88,4 +88,15 @@ public class IcHouseController {
return new Result<List<OptionResultDTO>>().ok(icHouseService.getHouseOption(formDTO));
}
/**
* @Description 查询房屋信息
* @param idCard
* @author zxc
* @date 2021/11/3 3:30 下午
*/
@PostMapping("selecthouseinfobyidcard")
public Result<List<String>> selectHouseInfoByIdCard(@RequestParam("idCard")String idCard){
return new Result<List<String>>().ok(icHouseService.selectHouseInfoByIdCard(idCard));
}
}

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java

@ -52,4 +52,13 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
List<IcHouseExcel> searchAllHouse(@Param("house") IcHouseEntity house);
List<HouseInfoDTO> queryHouseInfo(@Param("houseIdList") Set<String> houseIdList);
/**
* @Description 查询房屋信息
* @param idCard
* @author zxc
* @date 2021/11/3 3:30 下午
*/
List<String> selectHouseInfoByIdCard(@Param("idCard") String idCard);
}

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java

@ -103,4 +103,13 @@ public interface IcHouseService extends BaseService<IcHouseEntity> {
* @Date 2021/10/25 17:04
*/
List<OptionResultDTO> getHouseOption(HouseFormDTO formDTO);
/**
* @Description 查询房屋信息
* @param idCard
* @author zxc
* @date 2021/11/3 3:30 下午
*/
List<String> selectHouseInfoByIdCard(String idCard);
}

20
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java

@ -36,10 +36,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -135,4 +132,19 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
}).collect(Collectors.toList());
}
/**
* @Description 查询房屋信息
* @param idCard
* @author zxc
* @date 2021/11/3 3:30 下午
*/
@Override
public List<String> selectHouseInfoByIdCard(String idCard) {
List<String> result = baseDao.selectHouseInfoByIdCard(idCard);
if (CollectionUtils.isEmpty(result)){
return new ArrayList<>();
}
return result;
}
}

12
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -252,4 +252,16 @@
ih.ID = #{houseId}
</foreach>
</select>
<!-- 查询房屋信息 -->
<select id="selectHouseInfoByIdCard" resultType="java.lang.String">
SELECT
CONCAT(inh.NEIGHBOR_HOOD_NAME,ib.BUILDING_NAME,ibu.UNIT_NAME,ih.HOUSE_NAME)
FROM ic_house ih
LEFT JOIN ic_neighbor_hood inh ON (inh.ID = ih.NEIGHBOR_HOOD_ID AND inh.DEL_FLAG = '0')
LEFT JOIN ic_building ib ON (ib.ID = ih.BUILDING_ID AND ib.DEL_FLAG = '0')
LEFT JOIN ic_building_unit ibu ON (ibu.ID = ih.BUILDING_UNIT_ID AND ibu.DEL_FLAG = '0')
WHERE ih.DEL_FLAG = '0'
AND ih.OWNER_ID_CARD = #{idCard}
</select>
</mapper>

20
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ColumnTableNameResultDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 查询必填字段-接口返参
* @Author sun
*/
@Data
public class ColumnTableNameResultDTO implements Serializable {
private static final long serialVersionUID = -8441112171986914418L;
//表名
private String tableName;
//字段中文名
private String label;
//字段名
private String columnName;
}

9
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -11,6 +11,7 @@ import com.epmet.dto.result.*;
import com.epmet.feign.fallback.OperCustomizeOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -88,4 +89,12 @@ public interface OperCustomizeOpenFeignClient {
*/
@PostMapping("/oper/customize/icform/items")
Result<List<FormItem>> listItems(@RequestBody CustomerFormQueryDTO formDto);
/**
* @Author sun
* @Description 居民信息新增查询各表必填字段
**/
@PostMapping("/oper/customize/icformitem/getmustcolumn/{customerId}")
Result<List<ColumnTableNameResultDTO>> getMustColumn(@PathVariable("customerId") String customerId);
}

5
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java

@ -74,4 +74,9 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
public Result<List<FormItem>> listItems(CustomerFormQueryDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "listItems", formDto);
}
@Override
public Result<List<ColumnTableNameResultDTO>> getMustColumn(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getMustColumn", customerId);
}
}

11
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java

@ -26,6 +26,8 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.CustomerStaffRoleResultDTO;
import com.epmet.excel.IcFormItemExcel;
import com.epmet.service.IcFormItemService;
import org.springframework.beans.factory.annotation.Autowired;
@ -91,4 +93,13 @@ public class IcFormItemController {
ExcelUtils.exportExcelToTarget(response, null, list, IcFormItemExcel.class);
}
/**
* @Author sun
* @Description 居民信息新增查询各表必填字段
**/
@PostMapping("getmustcolumn/{customerId}")
public Result<List<ColumnTableNameResultDTO>> getMustColumn(@PathVariable String customerId) {
return new Result<List<ColumnTableNameResultDTO>>().ok(icFormItemService.getMustColumn(customerId));
}
}

7
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java

@ -18,6 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
@ -64,4 +65,10 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
List<String> querySubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);
Set<String> queryIcResiSubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);
/**
* @Author sun
* @Description 居民信息新增查询各表必填字段
**/
List<ColumnTableNameResultDTO> getMustColumn(@Param("customerId")String customerId);
}

7
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
@ -115,4 +116,10 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
List<String> querySubTables(String customerId, String formCode);
Set<String> queryIcResiSubTables(String customerId, String formCode);
/**
* @Author sun
* @Description 居民信息新增查询各表必填字段
**/
List<ColumnTableNameResultDTO> getMustColumn(String customerId);
}

18
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java

@ -27,6 +27,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
@ -128,6 +129,14 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
list.addAll(result);
}
//list.add(new TableHeaderResultDTO("需求分类","DEMAND_NAME","input"));
TableHeaderResultDTO categoryName=new TableHeaderResultDTO();
categoryName.setItemType("input");
categoryName.setItemId(StrConstant.EPMETY_STR);
categoryName.setColumnName("CATEGORY_NAME");
categoryName.setLabel("居民需求");
categoryName.setOptions(new ArrayList<>());
list.add(categoryName);
TableHeaderResultDTO houseType=new TableHeaderResultDTO();
houseType.setItemType("input");
houseType.setItemId(StrConstant.EPMETY_STR);
@ -153,4 +162,13 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
return baseDao.queryIcResiSubTables(customerId,formCode);
}
/**
* @Author sun
* @Description 居民信息新增查询各表必填字段
**/
@Override
public List<ColumnTableNameResultDTO> getMustColumn(String customerId) {
return baseDao.getMustColumn(customerId);
}
}

17
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -141,4 +141,21 @@
AND m.CUSTOMER_ID = #{customerId}
AND m.FORM_CODE = #{formCode}
</select>
<select id="getMustColumn" resultType="com.epmet.dto.result.ColumnTableNameResultDTO">
SELECT
a.label "label",
a.column_name "columnName",
IF (
('' = b.table_name OR b.table_name IS NULL ), 'ic_resi_user', b.table_name
) "tableName"
FROM
ic_form_item a
LEFT JOIN ic_form_item_group b ON a.item_group_id = b.id
WHERE
a.del_flag = '0'
AND a.required = '1'
AND a.customer_id = #{customerId}
</select>
</mapper>

3
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java

@ -34,5 +34,8 @@ public class IcResiUserPageFormDTO implements Serializable {
*/
private List<ResiUserQueryValueDTO> conditions;
private Boolean pageFlag;
@NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class)
private String staffId;
}

7
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java

@ -52,7 +52,10 @@ public class PersonDataResultDTO implements Serializable {
/**
* 志愿者类别
*/
private String volunteerCategory;
private List<String> volunteerCategory;
@JsonIgnore
private List<String> volunteerCategoryEn;
public PersonDataResultDTO() {
this.workUnit = "";
@ -61,7 +64,7 @@ public class PersonDataResultDTO implements Serializable {
this.name = "";
this.financialSituation = new FinancialSituationDTO();
this.houseInfo = new ArrayList<>();
this.volunteerCategory = "";
this.volunteerCategory = new ArrayList<>();
}
/**

13
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -307,6 +307,7 @@ public class IcResiUserController {
public Result<PageData<Map<String,Object>>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO){
//pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");
pageFormDTO.setCustomerId(tokenDto.getCustomerId());
pageFormDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(pageFormDTO,IcResiUserPageFormDTO.AddUserInternalGroup.class);
return new Result<PageData<Map<String,Object>>>().ok(icResiUserService.pageResiMap(pageFormDTO));
}
@ -328,14 +329,13 @@ public class IcResiUserController {
@RequestMapping(value = "/exportExcel")
public void exportExcel(/*@LoginUser TokenDto tokenDto,*/ @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws IOException {
pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");
pageFormDTO.setPageFlag(false);
CustomerFormResultDTO resiFormItems = getResiFormItems(pageFormDTO.getCustomerId());
Map<String, FormItem> itemMap = new HashMap<>();
for (FormItem formItem : resiFormItems.getItemList()) {
if (StringUtils.isNotBlank(formItem.getColumnName())){
if (StringUtils.isBlank(formItem.getColumnName())){
continue;
}
if (formItem.getItemType().equals("checkbox") || formItem.getItemType().equals("select")){
@ -343,7 +343,7 @@ public class IcResiUserController {
}
if (formItem.getChildGroup() != null) {
for (FormItem2 item2 : formItem.getChildGroup().getItemList()) {
if (StringUtils.isNotBlank(item2.getColumnName())){
if (StringUtils.isBlank(item2.getColumnName())){
continue;
}
if (item2.getItemType().equals("checkbox") || item2.getItemType().equals("select")){
@ -356,7 +356,7 @@ public class IcResiUserController {
for (FormGroupDTO groupItem : resiFormItems.getGroupList()) {
if (groupItem.getItemList() != null) {
for (FormItem2 item : groupItem.getItemList()) {
if (StringUtils.isNotBlank(item.getColumnName())){
if (StringUtils.isBlank(item.getColumnName())){
continue;
}
if (item.getItemType().equals("checkbox") || item.getItemType().equals("select")){
@ -382,10 +382,6 @@ public class IcResiUserController {
if (item.getChildGroup() != null) {
if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) {
//itemMap = item.getChildGroup().getItemList().stream().filter(o -> o.getItemType().equals("checkbox")).collect(Collectors.toMap(o -> o.getColumnName().concat(o.getColumnNum() == 0 ? "" : o.getColumnNum().toString()), o -> ConvertUtils.sourceToTarget(o,FormItem.class)));
Map<String,Map<String, Object>> resiChildMap = icResiUserService.getDataForExport(itemMap, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions());
resiChildMap.forEach((key,value)->{
value.putAll(resiMainList.get(key));
@ -393,7 +389,6 @@ public class IcResiUserController {
Map<String, Object> mapData2 = new HashMap<>();
mapData2.put("list", resiChildMap.values());
System.out.println("========="+item.getChildGroup().getTableName()+" data:"+resiChildMap.size());
sheetMap.put(n.incrementAndGet(),mapData2);
}
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -28,6 +28,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 用户基础信息
@ -54,7 +55,9 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
@Param("formCode") String formCode,
@Param("conditions") List<ResiUserQueryValueDTO> conditions,
@Param("resultColumns") List<IcFormResColumnDTO> resultColumns,
@Param("subTables") List<String> subTables);
@Param("subTables") List<String> subTables,
@Param("currentStaffAgencyId")String currentStaffAgencyId,
@Param("staffOrgPath") String staffOrgPath);
/**
* 查询主表
*
@ -115,4 +118,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
*/
List<SearchByNameResultDTO> searchByName(@Param("name")String name, @Param("agencyId")String agencyId,@Param("pageNo")Integer pageNo);
Set<String> selectUserDemandCode(String icResiUserId);
String selectCategoryNames(@Param("customerId") String customerId,@Param("codeSet") Set<String> codeSet);
}

321
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -92,10 +92,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<IcResiUserDTO> page(Map<String, Object> params) {
IPage<IcResiUserEntity> page = baseDao.selectPage(
@ -162,6 +162,28 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Transactional(rollbackFor = Exception.class)
public void add(TokenDto tokenDto, List<IcResiUserFormDTO> formDTO) {
//循环自动拼接sql语句,往多个表新增数据
//0.校验必填字段是否为空
Result<List<ColumnTableNameResultDTO>> resultList = operCustomizeOpenFeignClient.getMustColumn(tokenDto.getCustomerId());
if (resultList.success() && null != resultList.getData()) {
StringBuffer str = new StringBuffer("");
formDTO.forEach(f -> {
resultList.getData().forEach(l -> {
if (f.getTableName().equals(l.getTableName())) {
f.getList().forEach(map -> {
if (!map.containsKey(l.getColumnName())) {
str.append(str.length() < NumConstant.ONE ? l.getLabel() : "、" + l.getLabel());
}
});
}
});
});
if (str.length() > NumConstant.ZERO ) {
throw new RenException(String.format("新增居民信息,必要字段值为空,%s值为空", str));
}
} else {
throw new RenException(String.format("新增居民信息-根据客户Id查询必填信息失败,customerId->%s", tokenDto.getCustomerId()));
}
//1.先往主表新增数据
//主表Id
String resiUserId = UUID.randomUUID().toString().replaceAll("-", "");
@ -293,6 +315,12 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Override
public PageData<Map<String, Object>> pageResiMap(IcResiUserPageFormDTO formDTO) {
CustomerStaffInfoCacheResult staffInfoCacheResult=CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(),formDTO.getStaffId());
String staffOrgPath=StrConstant.EPMETY_STR;
if(StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds())&& !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())){
staffOrgPath=staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId());
}
// 查询列表展示项,如果没有,直接返回
CustomerFormQueryDTO queryDTO1=new CustomerFormQueryDTO();
queryDTO1.setCustomerId(formDTO.getCustomerId());
@ -309,18 +337,22 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>();
if (null == formDTO.getPageFlag()||formDTO.getPageFlag()) {
//分页
String finalStaffOrgPath = staffOrgPath;
pageInfo= PageHelper.startPage(formDTO.getPageNo(),
formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectListResiMap(formDTO.getCustomerId(),
formDTO.getFormCode(),
formDTO.getConditions(),
resultColumns,
subTables));
subTables,
staffInfoCacheResult.getAgencyId(), finalStaffOrgPath
));
}else{
List<Map<String,Object>> list=baseDao.selectListResiMap(formDTO.getCustomerId(),
formDTO.getFormCode(),
formDTO.getConditions(),
resultColumns,
subTables);
subTables,staffInfoCacheResult.getAgencyId(),
staffOrgPath);
pageInfo.setTotal(CollectionUtils.isEmpty(list)?NumConstant.ZERO:list.size());
pageInfo.setList(list);
}
@ -380,8 +412,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
} else if (HouseTypeEnum.BIESHU.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.BIESHU.getName());
}
resultMap.put(UserConstant.HOME_ID, neighBorName.concat(buildName).concat(unitName).concat(doorName));
resultMap.put("CATEGORY_NAME",queryUserDemandName(formDTO.getCustomerId(),(String) resultMap.get("icResiUserId")));
}
if (resultMap.containsKey(UserConstant.GENDER)) {
@ -399,6 +432,24 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return new PageData<>(pageInfo.getList(), pageInfo.getTotal());
}
private String queryUserDemandName(String customerId,String icResiUserId) {
Set<String> demandCodePath=baseDao.selectUserDemandCode(icResiUserId);
if(CollectionUtils.isEmpty(demandCodePath)){
return StrConstant.EPMETY_STR;
}
Set<String> codeSet=new HashSet<>();
for(String codePath:demandCodePath){
if(codePath.contains(StrConstant.COMMA)){
String[] codeAtt=codePath.split(StrConstant.COMMA);
codeSet.add(codeAtt[codeAtt.length-1]);
}else{
codeSet.add(codePath);
}
}
String demandName=baseDao.selectCategoryNames(customerId,codeSet);
return demandName;
}
/**
* 编辑页面显示居民信息详情
*
@ -435,9 +486,12 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Override
public Object importIcResiInfoFromExcel(String currUserAgencyId) {
String excelPathName = "/opt/test/基础信息表/resi_info.xls";
CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(currUserAgencyId), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null);
String loginUserId = loginUserUtil.getLoginUserId();
return importIcResiInfoFromExcel(0, 3, currUserAgencyId, agencyInfo.getPids(), loginUserId);
//return importIcResiInfoFromExcel(excelPathName, 0, 3, currUserAgencyId, agencyInfo.getPids(), loginUserId);
return importIcResiExtraInfoFromExcel(excelPathName, 1, 2, currUserAgencyId, agencyInfo.getPids(), loginUserId);
// imporExcel(1, 1);
// imporExcel(2, 1);
// imporExcel(3, 1);
@ -448,9 +502,18 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
// imporExcel(8, 1);
}
private Object importIcResiInfoFromExcel(int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) {
/**
* excel导入居民基本信息
* @param sheetNo
* @param headRowNumber
* @param currUserAgencyId
* @param currUserAgencyPids
* @param currentUserId
* @return
*/
private Object importIcResiInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) {
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener();
EasyExcelFactory.read(new File("/opt/test/基础信息表/resi_info.xls")).registerReadListener(readListener).headRowNumber(3).sheet(sheetNo).doRead();
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead();
List<Map<Integer, String>> headList = readListener.getHeadList();
List<Map<Integer, String>> dataList = readListener.getDataList();
@ -458,10 +521,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Map<Integer, List<String>> headers = mergeHead(headList);
// 查询form相关信息
CustomerFormQueryDTO form = new CustomerFormQueryDTO();
form.setFormCode("resi_base_info");
Result<List<FormItem>> result = operCustomizeOpenFeignClient.listItems(form);
List<FormItem> customerItems = getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败");
List<FormItem> customerItems = listFormItems("resi_base_info");
// 清洗表头数据
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems);
@ -481,12 +541,57 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
}, formItem -> formItem)
);
Map<String, ColumnWrapper> headerColumnWrapper = integrate(formItemMap, combinedHeaders, dataList, abandonedHeaders);
Map<String, ColumnWrapper> headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders);
// 持久化
persist(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, customerItems.get(0).getTableName(), currUserAgencyPids, currentUserId);
return headerColumnWrapper;
return headers;
}
/**
* excel导入居民附加信息
* @param excelPathName
* @param sheetNo
* @param headRowNumber
* @param currUserAgencyId
* @param currUserAgencyPids
* @param currentUserId
* @return
*/
private Object importIcResiExtraInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) {
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener();
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead();
List<Map<Integer, String>> headList = readListener.getHeadList();
List<Map<Integer, String>> dataList = readListener.getDataList();
Map<Integer, List<String>> headers = mergeHead(headList);
// 查询form相关信息
List<FormItem> customerItems = listFormItems("resi_base_info");
// 清洗表头数据
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems);
//合并多级表头
HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers);
// 得到客户配置item数据
Map<String, FormItem> formItemMap = customerItems.stream().collect(
Collectors.toMap(formItem -> {
String groupLabel = formItem.getGroupLabel();
String label = formItem.getLabel();
if (StringUtils.isNotBlank(groupLabel)) {
return groupLabel.concat(":").concat(label);
} else {
return label;
}
}, formItem -> formItem)
);
Map<String, ColumnWrapper> headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders);
return formItemMap;
}
/**
@ -496,11 +601,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
* @param currUserAgencyId 当前用户的组织id
* @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文
*/
private void persist(Map<String, ColumnWrapper> headerColumnWrapper, List<Map<Integer, String>> dataRows,
private void persist(Map<String, ColumnWrapper> headerColumnWrapper, List<Map<Integer, String>> dataRows,
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, String tableName,
String currUserAgencyPids, String currentUserId) {
for (Map<Integer, String> row : dataRows) {
// 当前行的列们
// List<ColumnWrapper> columnsOfCurrRow = new ArrayList<>();
@ -556,7 +661,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
columnAndValues.put("IS_UNITED_FRONT", "0");
columnAndValues.put("IS_VETERANS", "0");
columnAndValues.put("IS_VOLUNTEER", "0");
columnAndValues.put("AGENCY_ID", currUserAgencyId);
columnAndValues.put("PIDS", currUserAgencyPids);
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId());
@ -569,11 +674,23 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
// });
// System.out.println("-------------------");
baseDao.add(tableName, columnAndValues);
}
}
/**
* 根据formCode查询该form的item列表
* @param formCode
* @return
*/
private List<FormItem> listFormItems(String formCode) {
CustomerFormQueryDTO form = new CustomerFormQueryDTO();
form.setFormCode(formCode);
Result<List<FormItem>> result = operCustomizeOpenFeignClient.listItems(form);
return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败");
}
/**
* @description 合并头
*
@ -626,14 +743,21 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
/**
* @description 数据整合
*
* @description 数据整合将excel表头汉字信息转化成ColumnWrapper列封装数据
* * key:itemId
* * value:ColumnWrapper列包装信息
* @param formItemMap item map
* key:itemId;
* value: 合并之后的head字符串例如健康信息:监护人
* @param combinedHeaders 合并之后的head信息
* key合并之后head字符串(例如党员信息:入党时间)
* value列号组成的列表(例如[1,2,3])
* @param datas
* @param abandonedHeaders
* @return
* @author wxz
* @date 2021.10.28 17:08:51
*/
private Map<String, ColumnWrapper> integrate(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders,
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) {
private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders,
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) {
// HashMap<String, List<ColumnWrapper>> tables = new HashMap<>();
Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size());
@ -707,7 +831,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
cascadeItemId = uriParts[1];
// 根据uri上的id,找到关联的itemid,从而找到关联的item的值
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId);
if (columnWrappers != null){
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId);
}
} else {
pureUri = fullUri;
}
@ -806,6 +932,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/**
* @description 合并表头
* Map<Integer, List<String>>
*
* @param headList
* @return
@ -813,67 +940,42 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
* @date 2021.10.27 16:17:34
*/
private Map<Integer, List<String>> mergeHead(List<Map<Integer, String>> headList) {
Map<Integer, String> l1 = headList.get(0);
Map<Integer, String> l2 = headList.get(1);
Map<Integer, String> l3 = headList.get(2);
String l1LastHeadName = "";
String l2LastHeadName = "";
//Map<Integer, String> resultMap = new HashMap<>();
HashMap<Integer, List<String>> result = new HashMap<>();
for (Map.Entry<Integer, String> entry : l1.entrySet()) {
StringBuilder headerNameConcatStr = new StringBuilder();
Integer key = entry.getKey();
String l1TempValue = entry.getValue();
Map<Integer, String> lastNotNullHeads = new LinkedHashMap<>();
Map<Integer, List<String>> mergedHead = new LinkedHashMap<>();
int levelCount = headList.size();
String l2TempValue = l2.get(key);
String l3TempValue = l3.get(key);
Map<Integer, String> firstLevel = headList.get(0);
// 遍历所有列
for (Map.Entry<Integer, String> column : firstLevel.entrySet()) {
Integer columIndex = column.getKey();
if (StringUtils.isNotBlank(l1TempValue)) {
l1LastHeadName = l1TempValue;
}
if (StringUtils.isNotBlank(l2TempValue)) {
l2LastHeadName = l2TempValue;
}
// 开始拼接
if (StringUtils.isNotBlank(l3TempValue)) {
//headerNameConcatStr.append(l1LastHeadName).append(":").append(l2LastHeadName).append(":").append(l3TempValue);
//resultMap.put(key, headerNameConcatStr.toString());
ArrayList<String> parts = new ArrayList<>();
parts.add(l1LastHeadName);
parts.add(l2LastHeadName);
parts.add(l3TempValue);
result.put(key, parts);
continue;
}
if (StringUtils.isNotBlank(l2TempValue)) {
//headerNameConcatStr.append(l1LastHeadName).append(":").append(l2LastHeadName);
//resultMap.put(key, headerNameConcatStr.toString());
ArrayList<String> parts = new ArrayList<>();
parts.add(l1LastHeadName);
parts.add(l2LastHeadName);
result.put(key, parts);
continue;
}
if (StringUtils.isNotBlank(l1TempValue)) {
//headerNameConcatStr.append(l1LastHeadName);
//resultMap.put(key, headerNameConcatStr.toString());
ArrayList<String> parts = new ArrayList<>();
parts.add(l1LastHeadName);
result.put(key, parts);
continue;
List<String> labels = new ArrayList<>();
// 竖着遍历该列的所有行
for (int currentLevel = 0; currentLevel < levelCount; currentLevel ++) {
String label = headList.get(currentLevel).get(columIndex);
if (StringUtils.isNotBlank(label)) {
lastNotNullHeads.put(currentLevel, label);
} else {
if (currentLevel == 0 || StringUtils.isBlank(headList.get(currentLevel - 1).get(columIndex))) {
label = lastNotNullHeads.get(currentLevel);
}
}
if (StringUtils.isNotBlank(label)) {
labels.add(label);
}
}
mergedHead.put(columIndex, labels);
}
return result;
return mergedHead;
}
/**
@ -942,9 +1044,18 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
*/
@Override
public PersonDataResultDTO personData(PersonDataFormDTO formDTO) {
baseDao.personData(formDTO.getUserId());
PersonDataResultDTO personData = baseDao.personData(formDTO.getUserId());
if (null == personData){
return new PersonDataResultDTO();
}
// 房屋信息查询
Result<List<String>> listResult = govOrgOpenFeignClient.selectHouseInfoByIdCard(personData.getIdCard());
if (!listResult.success()){
throw new RenException("查询房屋信息失败");
}
personData.setHouseInfo(listResult.getData());
// TODO
return null;
return personData;
}
/**
@ -990,24 +1101,45 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Map<String, Map<String, Object>> result = new LinkedHashMap<>();
mapList.stream().filter(Objects::nonNull).forEach(map -> {
String resiId = (String) map.getOrDefault(UserConstant.IC_RESI_USER, "");
formItemMap.forEach((k, v)->{
for (Map.Entry<String, FormItem> e : formItemMap.entrySet()) {
String k = e.getKey();
FormItem v = e.getValue();
Object temp = map.get(k);
if (temp != null) {
if (v.getOptionSourceType().equals("remote")) {
//todo 获取 options
}
if (v.getItemType().equals("checkbox")) {
v.getOptions().forEach(optionDTO -> {
map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否");
});
} else if (v.getItemType().equals("select")) {
v.getOptions().forEach(optionDTO -> {
map.put(optionDTO.getValue(), temp.toString().equals(optionDTO.getValue()) ? optionDTO.getLabel() : "");
});
try {
//todo 获取 options
Map<String, String> stringMap = listRemoteOptions(new HashMap<>(), v.getOptionSourceValue(), null);
System.out.println("======remote:"+v.getLabel()+" "+JSON.toJSONString(stringMap));
if ("checkbox".equals(v.getItemType())) {
stringMap.forEach((label, value) -> map.put(value, temp.toString().contains(value) ? "是" : "否"));
} else if ("select".equals(v.getItemType())) {
stringMap.forEach((label,value)->{
if (temp.toString().equals(value)){
map.put(k, label);
}
});
}
} catch (Exception ex) {
log.warn("listRemoteOptions url:{}",v.getOptionSourceValue());
}
} else {
if ("checkbox".equals(v.getItemType())) {
v.getOptions().forEach(optionDTO -> {
map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否");
});
} else if ("select".equals(v.getItemType())) {
v.getOptions().forEach(optionDTO -> {
if (optionDTO.getLabel().equals(temp.toString())){
map.put(k, optionDTO.getLabel());
}
});
}
}
}
});
}
if ("ic_resi_user".equals(baseTableName)) {
resiId = (String) map.get("ID");
}
@ -1038,6 +1170,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
map.put("VILLAGE_NAME", houseInfoDTO.getNeighborHoodName());
map.put("BUILD_NAME", houseInfoDTO.getBuildingName());
map.put("HOME_ID", houseInfoDTO.getDoorName());
map.put("UNIT_ID", houseInfoDTO.getUnitName());
}
}

BIN
epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls

Binary file not shown.

2
epmet-user/epmet-user-server/src/main/resources/logback-spring.xml

@ -139,7 +139,7 @@
</appender>
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<springProfile name="local,dev,test">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>

76
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -44,8 +44,36 @@
select * from ${subTableName} where del_flag='0' and IC_RESI_USER=#{icResiUserId} and customer_id=#{customerId}
</select>
<!-- 列表查询 -->
<sql id="listWhereForPage">
ic_resi_user.DEL_FLAG = '0'
and ic_resi_user.customer_id=#{customerId}
and (ic_resi_user.AGENCY_ID =#{currentStaffAgencyId} or ic_resi_user.pids like concat(#{staffOrgPath},'%'))
<if test="null != conditions and conditions.size() > 0">
<foreach item="subCondition" collection="conditions" open="" separator="" close="">
<if test="null != subCondition.columnValue and subCondition.columnValue.size() > 0">
<if test="subCondition.queryType!= null and subCondition.queryType == 'equal' ">
<if test="null!=subCondition.columnValue[0] and ''!=subCondition.columnValue[0]">
and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]}
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'like' ">
<if test="null!=subCondition.columnValue[0] and ''!=subCondition.columnValue[0]">
and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
and ${subCondition.tableName}.${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]}
</if>
</if>
</foreach>
</if>
</sql>
<!-- 公用where条件 -->
<!-- 导出公用where条件 -->
<sql id="listWhere">
ic_resi_user.DEL_FLAG = '0'
and ic_resi_user.customer_id=#{customerId}
@ -54,11 +82,15 @@
<if test="null != subCondition.columnValue and subCondition.columnValue.size() > 0">
<if test="subCondition.queryType!= null and subCondition.queryType == 'equal' ">
and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]}
<if test="null!=subCondition.columnValue[0] and ''!=subCondition.columnValue[0]">
and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]}
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'like' ">
and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
<if test="null!=subCondition.columnValue[0] and ''!=subCondition.columnValue[0]">
and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
@ -73,12 +105,10 @@
<select id="selectListResiMap" parameterType="map" resultType="map">
select
ic_resi_user.id as icResiUserId,
ic_resi_user.AGENCY_ID as ORG_ID,
<foreach item="column" collection="resultColumns" open="" separator="," close="">
${column.columnName}
</foreach>
,
GROUP_CONCAT(ic_resi_demand.CATEGORY_CODE) as DEMAND_CATEGORY_IDS,
GROUP_CONCAT(ic_resi_demand_dict.CATEGORY_NAME) as DEMAND_NAME
FROM
ic_resi_user
<if test="null != subTables and subTables.size() > 0">
@ -86,12 +116,8 @@
${subTableName}
</foreach>
</if>
left join ic_resi_demand_dict
on(ic_resi_user.customer_id=ic_resi_demand_dict.CUSTOMER_ID
and ic_resi_demand.CATEGORY_CODE=ic_resi_demand_dict.CATEGORY_CODE )
<where>
<include refid="listWhere"></include>
<include refid="listWhereForPage"></include>
</where>
group by IC_RESI_USER.id
order by ic_resi_user.CREATED_TIME desc
@ -160,4 +186,32 @@
AND `NAME` LIKE CONCAT('%',#{name},'%')
ORDER BY `NAME`
</select>
<select id="selectUserDemandCode" parameterType="java.lang.String" resultType="java.lang.String">
SELECT DISTINCT
m.CATEGORY_CODE
FROM
ic_resi_demand m
WHERE
m.DEL_FLAG = '0'
AND m.IC_RESI_USER = #{icResiUserId}
ORDER BY
m.CREATED_TIME ASC
</select>
<select id="selectCategoryNames" parameterType="map" resultType="java.lang.String">
SELECT
GROUP_CONCAT(m.CATEGORY_NAME)
FROM
ic_resi_demand_dict m
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
<if test="null != codeSet and codeSet.size() > 0">
AND m.CATEGORY_CODE IN
<foreach item="code" collection="codeSet" open="(" separator="," close=")">
#{code}
</foreach>
</if>
</select>
</mapper>
Loading…
Cancel
Save