Browse Source

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

# Conflicts:
#	epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
dev
yinzuomei 3 years ago
parent
commit
5d131496bf
  1. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java
  3. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java
  4. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java
  5. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java
  6. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java
  7. 44
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java
  8. 53
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  9. 17
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml
  10. 4
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java
  11. 1
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
  12. 21
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  13. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
  14. 20
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  15. 26
      epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -594,19 +594,19 @@ public class GovOrgServiceImpl implements GovOrgService {
if (staffInfo == null || StringUtils.isBlank(staffInfo.getAgencyId())){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"工作人员所属组织不存在");
}
String agencyId = staffInfo.getAgencyId();
String client = formDTO.getClient();
//组织缓存key
String treeCacheKey = RedisKeys.getOrgTreeCacheKey(formDTO.getAgencyId()).concat(StrConstant.COLON).concat(formDTO.getClient());
String treeCacheKey = RedisKeys.getOrgTreeCacheKey(agencyId).concat(StrConstant.COLON).concat(client);
Long expiryTime = redisUtils.getTTL(treeCacheKey);
List<OrgTreeResultDTO> orgTreeResultDTOS = (List<OrgTreeResultDTO>) redisUtils.get(treeCacheKey);
String agencyId = staffInfo.getAgencyId();
String client = formDTO.getClient();
//如果接近过期或已经过期且缓存数据不为空 则异步查询
if ((expiryTime == null || expiryTime <= NumConstant.ONE_THOUSAND) && CollectionUtils.isNotEmpty(orgTreeResultDTOS)) {
executorService.submit(() -> {
List<OrgTreeResultDTO> list = buildTempOrgTree(agencyId, client);
redisUtils.set(treeCacheKey, list, RedisUtils.HOUR_FOUR_EXPIRE);
});
} else {
} else if (CollectionUtils.isEmpty(orgTreeResultDTOS)){
orgTreeResultDTOS = buildTempOrgTree(staffInfo.getAgencyId(), formDTO.getClient());
redisUtils.set(treeCacheKey, orgTreeResultDTOS, RedisUtils.HOUR_FOUR_EXPIRE);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java

@ -171,7 +171,7 @@ public interface FactOriginProjectLogDailyDao extends BaseDao<FactOriginProjectL
* @author wangc
* @date 2020.10.15 17:29
*/
List<ProjectParticipatedAgencyResultDTO> selectProjectIdHandledByAgency(@Param("customerId") String customerId, @Param("dimId") String dimId);
List<OrgStatisticsResultDTO> selectProjectIdHandledByAgency(@Param("customerId") String customerId, @Param("level") String level, @Param("dimId") String dimId);
/**
* @param projectIds

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java

@ -141,7 +141,7 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService
//办结率
Map<String, BigDecimal> handlingRatioMap = factOriginProjectLogDailyService.getHandlingRatio(agencies, customerId, dimId.getMonthId());
//处理效率
Map<String, BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId, dimId.getMonthId());
Map<String, BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId, OrgTypeConstant.COMMUNITY, dimId.getMonthId());
list.forEach(entity -> {
//办结数
entity.setClosedProjectCount(Optional.ofNullable(agencyHandleCount.get(entity.getAgencyId())).orElse(NumConstant.ZERO));

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java

@ -134,7 +134,7 @@ public class IndexCollDistrictServiceImpl implements IndexCollDistrictService {
//办结率
Map<String, BigDecimal> handlingRatioMap = factOriginProjectLogDailyService.getHandlingRatio(agencies, customerId, dimId.getMonthId());
//处理效率
Map<String, BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId, dimId.getMonthId());
Map<String, BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId, OrgTypeConstant.DISTRICT, dimId.getMonthId());
list.forEach(entity -> {
//办结数
entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId()) == null ? NumConstant.ZERO : agencyHandleCount.get(entity.getAgencyId()));

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java

@ -132,7 +132,7 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService {
//办结率
Map<String, BigDecimal> handlingRatioMap = factOriginProjectLogDailyService.getHandlingRatio(agencies, customerId, dimId.getMonthId());
//处理效率
Map<String, BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId, dimId.getMonthId());
Map<String, BigDecimal> efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId, OrgTypeConstant.STREET, dimId.getMonthId());
list.forEach(entity -> {
//办结数
entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId()) == null ? NumConstant.ZERO : agencyHandleCount.get(entity.getAgencyId()));

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

@ -195,7 +195,7 @@ public interface FactOriginProjectLogDailyService extends BaseService<FactOrigin
* @author wangc
* @date 2020.09.21 02:16
**/
Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String dimId);
Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String level, String dimId);
/**
* 网格项目响应度

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

@ -230,50 +230,18 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
* @date 2020.09.21 02:16
**/
@Override
public Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String dimId) {
public Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String level, String dimId) {
//计算方法 : 评价周期内办结项目的平均处理时长的倒数
//1.评价周期内结案了的项目
List<ProjectParticipatedAgencyResultDTO> projectsHandledByAgency = baseDao.selectProjectIdHandledByAgency(customerId, dimId);
//评价周期内每个机关结案了的项目耗时和项目数
List<OrgStatisticsResultDTO> projectsHandledByAgency = baseDao.selectProjectIdHandledByAgency(customerId, level, dimId);
Map<String, BigDecimal> efficiencyMap = new HashMap<>();
List<String> projects = new LinkedList<>();
if (!CollectionUtils.isEmpty(projectsHandledByAgency)) {
Map<String, List<String>> agencyProjectsMap = new HashMap<>();
projectsHandledByAgency.forEach(o -> {
String agencyId = o.getAgencyId();
String projectId = o.getProjectId();
if(CollectionUtils.isEmpty(agencyProjectsMap.get(agencyId))){
List<String> projectUnit = new LinkedList<>();
projectUnit.add(projectId);
agencyProjectsMap.put(agencyId,projectUnit);
}else{
agencyProjectsMap.get(agencyId).add(projectId);
}
projects.add(projectId);
});
//2.结案项目的总耗时
List<ProjectParticipatedAgencyResultDTO> costTimes = baseDao.selectProjectCostTime(projects);
Map<String,Integer> projectCostTime = costTimes.stream().collect(Collectors.toMap(ProjectParticipatedAgencyResultDTO::getProjectId,ProjectParticipatedAgencyResultDTO::getCount));
agencyProjectsMap.forEach((k,v) -> {
//k -> agencyId v -> projects
int total = NumConstant.ZERO;
if(!CollectionUtils.isEmpty(v)){
for(String p : v){
Integer cost = projectCostTime.get(p);
total = total + (null == cost ? NumConstant.ZERO : cost);
}
//每个机关的项目平均耗时
BigDecimal avgCost = new BigDecimal(total).divide(new BigDecimal(v.size()),4, BigDecimal.ROUND_HALF_UP);
//efficiencyMap.put(k,BigDecimal.ONE.divide(avgCost,4, BigDecimal.ROUND_HALF_UP));
efficiencyMap.put(k, null == avgCost ? BigDecimal.ZERO : avgCost.setScale(6, BigDecimal.ROUND_HALF_UP));
}else{
efficiencyMap.put(k,BigDecimal.ZERO);
}
//每个机关的项目平均耗时
BigDecimal avgCost = new BigDecimal(o.getSum()).divide(new BigDecimal(o.getCount()),6, RoundingMode.HALF_UP);
efficiencyMap.put(agencyId, avgCost);
});
}

53
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

@ -291,24 +291,45 @@
ORG_ID
</select>
<!-- 查询评价周期内各级别机关办结的项目Id -->
<select id="selectProjectIdHandledByAgency" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">
<select id="selectProjectIdHandledByAgency" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
ID AS projectId,
SUBSTRING_INDEX(FINISH_ORG_IDS,':',1) AS agencyId
FROM
fact_origin_project_main_daily
WHERE
DEL_FLAG = '0'
AND ID IN (
SELECT DISTINCT PROJECT_ID FROM fact_origin_project_log_daily
WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId}
AND ACTION_CODE = 'close'
<if test='null != dimId and "" != dimId'>
agencyId,
COUNT(projectId) AS count,
SUM(total) AS sum
FROM
(
SELECT
a.ID AS projectId,
b.ID AS agencyId,
IF(
TIMESTAMPDIFF( DAY, DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ), DATE_FORMAT( c.DATE_ID, '%Y-%m-%d' ) ) = 0,
1,
TIMESTAMPDIFF( DAY, DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ), DATE_FORMAT( c.DATE_ID, '%Y-%m-%d' ) )
) * 8 * 60 AS total
FROM
fact_origin_project_main_daily a
INNER JOIN dim_agency b ON a.PIDS LIKE CONCAT( '%', b.ID, '%' )
AND b.AGENCY_DIM_TYPE = 'all'
AND b.DEL_FLAG = '0'
AND b.`LEVEL` = #{level}
INNER JOIN (
SELECT DISTINCT
DATE_ID,
PROJECT_ID
FROM fact_origin_project_log_daily
WHERE DEL_FLAG = '0'
AND ACTION_CODE = 'close'
AND IS_ACTIVE = '1'
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{dimId}
</if>
)
ORDER BY agencyId
) c ON a.ID = c.PROJECT_ID
WHERE
a.DEL_FLAG = '0'
AND a.CUSTOMER_ID = #{customerId}
AND a.PROJECT_STATUS = 'closed'
) t
GROUP BY
agencyId
</select>
<!-- 计算每个办结项目的总耗时 -->
<select id="selectProjectCostTime" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">

17
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml

@ -51,24 +51,33 @@
<select id="selectResponsiveness" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
f.CUSTOMER_ID,
f.ORG_ID AS "agencyId",
<choose>
<when test='"dept" != orgType'>da.ID AS "agencyId",</when>
<otherwise>f.ORG_ID AS "agencyId",</otherwise>
</choose>
SUM( TIMESTAMPDIFF( MINUTE, ( DATE_FORMAT( f.INFORMED_DATE, '%Y-%m-%d %H:%i' )),
( DATE_FORMAT( f.PERIOD_TILL_REPLY_FIRSTLY, '%Y-%m-%d %H:%i' )) ) ) AS "sum",
COUNT(DISTINCT f.PROJECT_ID) AS "count"
FROM
fact_origin_project_org_period_daily f
INNER JOIN dim_agency da ON f.ORG_ID = da.ID
<if test='"dept" != orgType'>
INNER JOIN dim_agency da ON (f.PIDS LIKE CONCAT( '%', da.ID, '%' ) OR f.ORG_ID = da.ID)
AND da.`LEVEL` = #{level}
</if>
WHERE
f.ORG_TYPE = #{orgType}
f.DEL_FLAG = '0'
<if test='"dept" == orgType'>
AND f.ORG_TYPE = #{orgType}
</if>
AND DATE_FORMAT(INFORMED_DATE, '%Y%m') = #{monthId}
AND PERIOD_TILL_REPLY_FIRSTLY IS NOT NULL
AND f.CUSTOMER_ID = #{customerId}
GROUP BY
f.CUSTOMER_ID,
f.ORG_ID
<choose>
<when test='"dept" != orgType'>da.ID</when>
<otherwise>f.ORG_ID</otherwise>
</choose>
</select>
<!-- 批量插入 -->

4
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java

@ -75,7 +75,7 @@ public class EditAgencyFormDTO implements Serializable {
/**
* open: 选择地区编码必填closed: 无需选择地区编码;0409新增返参
*/
@NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class)
// @NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class)
private String areaCodeSwitch;
/**
@ -108,4 +108,6 @@ public class EditAgencyFormDTO implements Serializable {
* 中心点位位置
*/
private String centerAddress;
private String customerId;
}

1
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java

@ -169,6 +169,7 @@ public class AgencyController {
@RequirePermission(requirePermission = RequirePermissionEnum.ORG_AGENCY_UPDATE)
public Result editAgency(@LoginUser TokenDto tokenDTO, @RequestBody EditAgencyFormDTO formDTO) {
formDTO.setUserId(tokenDTO.getUserId());
formDTO.setCustomerId(tokenDTO.getCustomerId());
ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class);
Result result = agencyService.editAgency(formDTO);

21
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -19,9 +19,6 @@ package com.epmet.controller;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
@ -32,40 +29,32 @@ 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.constant.ImportErrorMsgConstants;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcBuildingDao;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
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;
import com.epmet.model.ImportHouseInfoListener;
import com.epmet.redis.IcHouseRedis;
import com.epmet.service.HouseService;
import com.epmet.service.IcHouseService;
import com.epmet.service.IcNeighborHoodService;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.http.MimeHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@ -283,7 +272,7 @@ public class HouseController implements ResultDataResolver {
input.setTaskId(importTask.getData().getTaskId());
input.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
epmetCommonServiceOpenFeignClient.finishImportTask(input);
log.error("读取文件失败");
log.error("读取文件失败",e);
}
houseService.dispose(inputStream,formDTO,importTask);
return new Result<>();

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

@ -167,6 +167,8 @@ public class AgencyServiceImpl implements AgencyService {
originalEntity.setLongitude(formDTO.getLongitude());
}
originalEntity.setCenterAddress(formDTO.getCenterAddress());
//平阴的工作端小程序与产品入参有差距,为了接口兼容,这个参数不让前端传了...
formDTO.setAreaCodeSwitch(customerOrgParameterService.getAreaCodeSwitch(formDTO.getCustomerId()));
//当前客户开启了area_code_switch参数:open: 选择地区编码必填;closed: 无需选择地区编码
if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) {
CustomerAgencyEntity parent = customerAgencyDao.selectById(originalEntity.getPid());
@ -184,7 +186,7 @@ public class AgencyServiceImpl implements AgencyService {
}
//什么时候要全部置为空呢?原来没有现在有 || 原来与现在不一致
if ((StringUtils.isBlank(originalAreaCode) && StringUtils.isNotBlank(formDTO.getAreaCode()))
|| (!formDTO.getAreaCode().equals(originalAreaCode))) {
|| (StringUtils.isNotBlank(formDTO.getAreaCode()) && !formDTO.getAreaCode().equals(originalAreaCode))) {
updateSubOrg(originalEntity.getCustomerId(), formDTO, originalAreaCode);
}
}
@ -319,12 +321,13 @@ public class AgencyServiceImpl implements AgencyService {
private void checkEditAgencyFormDTO(EditAgencyFormDTO formDTO,CustomerAgencyEntity originalEntity) {
//根组织不允许修改
if (StringUtils.isNotBlank(originalEntity.getPid()) && !NumConstant.ZERO_STR.equals(originalEntity.getPid())) {
if (StringUtils.isBlank(formDTO.getAreaCode())) {
//03.23:平阴线上版本与产品主线版本差距太大,平阴的修改组织只能修改组织名称。
/*if (StringUtils.isBlank(formDTO.getAreaCode())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "area_code_switch is open areaCode不能为空", "组织区划不能为空");
}
if (StringUtils.isBlank(formDTO.getParentAreaCode())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "area_code_switch is open parentAreaCode不能为空", "请先设置上级组织的组织区划");
}
}*/
//如果当前组织已经使用了自定义编码,不允许在选择其他。
if (StringUtils.isNotBlank(originalEntity.getAreaCode())
&& originalEntity.getAreaCode().contains("UD")

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

@ -1,14 +1,12 @@
package com.epmet.service.impl;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -20,9 +18,8 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerGridConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerGridConstant;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcBuildingDao;
import com.epmet.dao.IcBuildingUnitDao;
import com.epmet.dao.IcHouseDao;
@ -31,11 +28,7 @@ import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.IcBuildingDTO;
import com.epmet.dto.IcBuildingUnitDTO;
import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.form.IcHouseFormDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.ListIcNeighborHoodFormDTO;
import com.epmet.dto.form.NeighborHoodManageDelFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
@ -51,25 +44,17 @@ import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.model.HouseInfoModel;
import com.epmet.model.ImportHouseInfoListener;
import com.epmet.redis.IcHouseRedis;
import com.epmet.service.HouseService;
import com.epmet.service.IcBuildingService;
import com.epmet.service.IcBuildingUnitService;
import com.epmet.service.IcHouseService;
import com.epmet.service.*;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.ExecutorService;
@ -378,6 +363,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
.build();
excelReader.read(readSheet);
} catch (Exception e){
log.error("dispose exception",e);
ImportTaskCommonFormDTO input = new ImportTaskCommonFormDTO();
input.setOperatorId(formDTO.getUserId());
input.setTaskId(importTask.getData().getTaskId());

26
epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver;
@ -20,7 +21,6 @@ import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author wxz
@ -68,6 +68,12 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve
npcData.stream().forEach(npc -> {
if (StringUtils.isBlank(excludeUserId) || !npc.getUserId().equals(excludeUserId)) {
OrgInfoResultDTO gridInfo = npcGridInfoMap.get(npc.getGridId());
String pids;
if (StringUtils.isNotBlank(gridInfo.getPids()) && !NumConstant.ZERO_STR.equals(gridInfo.getPids())) {
pids = gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId());
} else {
pids = gridInfo.getAgencyId();
}
ResiEventNpcResultDTO resiEventNpcInfo = new ResiEventNpcResultDTO(
npc.getUserId(),
npc.getGridId(),
@ -75,7 +81,8 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve
npc.getRealName(),
npc.getHeadImgUrl(),
gridInfo != null ? gridInfo.getAgencyId() : null,
gridInfo != null ? gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId()) : null);
// gridInfo != null ? gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId()) : null
pids);
npcResultList.add(resiEventNpcInfo);
}
}
@ -122,7 +129,13 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve
OrgInfoResultDTO currentGridInfo = currentGridInfos.get(0);
// 因为上游接口的值对应问题,这里只好做一个适配,拼接起来,希望上游代码不要再改了...
String pids = currentGridInfo.getPids().concat(":").concat(currentGridInfo.getAgencyId());
// String pids = currentGridInfo.getPids().concat(":").concat(currentGridInfo.getAgencyId());
String pids;
if (StringUtils.isNotBlank(currentGridInfo.getPids()) && !NumConstant.ZERO_STR.equals(currentGridInfo.getPids())) {
pids = currentGridInfo.getPids().concat(":").concat(currentGridInfo.getAgencyId());
} else {
pids = currentGridInfo.getAgencyId();
}
// 父ID列表的index排序字段是从0开始,网格要排在他们前面,则网格的index为-1
targetLevels.add(new ResiEventTargetLevelResultDTO(OrgLevelEnums.GRID.getLevel(), OrgLevelEnums.GRID.getLevelName(), currentGridInfo.getOrgId(), currentGridInfo.getAgencyId(), pids, -1));
@ -135,7 +148,12 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve
throw new RenException(String.format("根据级别%s没有找到对应的组织级别枚举", porg.getLevel()));
}
//parentOrgIds.indexOf(porg.getOrgId()为当前orgId在pids中的位置,得到之后,赋值给index字段,treeset会利用这个字段进行排序
ResiEventTargetLevelResultDTO pLevel = new ResiEventTargetLevelResultDTO(porg.getLevel(), levelName, porg.getOrgId(), porg.getPid(), porg.getPids(), parentOrgIds.indexOf(porg.getOrgId()));
ResiEventTargetLevelResultDTO pLevel = new ResiEventTargetLevelResultDTO(porg.getLevel(),
levelName,
porg.getOrgId(),
porg.getPid(),
porg.getPids(),
parentOrgIds.indexOf(porg.getOrgId()));
targetLevels.add(pLevel);
});

Loading…
Cancel
Save