Browse Source

Merge branch 'wxz_resiimport_optimize' of http://git.elinkit.com.cn:7070/r/epmet-cloud into develop

master
wangxianzhang 4 years ago
parent
commit
df4b0c9c9b
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
  2. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
  3. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  4. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  5. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml
  6. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java
  7. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java
  8. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java
  9. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml
  10. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  11. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java

@ -10,6 +10,7 @@ import org.aspectj.lang.ProceedingJoinPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
@ -286,6 +287,7 @@ public abstract class BaseRequestLogAspect {
if (object != null
&& !(object instanceof ServletRequest)
&& !(object instanceof ServletResponse)
&& !(object instanceof MultipartFile)
) {
try {
// 尝试作为json解析

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java

@ -95,6 +95,8 @@ public interface StrConstant {
String SPECIAL_CUSTOMER = "150282ed25c14ff0785e7e06283b6283";
//平音客户
String PY_CUSTOMER = "6f203e30de1a65aab7e69c058826cd80";
//平音客户跟组织Id
String PY_ROOT_AGENCY = "53613e1c5de6ed473467f0159a10b135";
/**
* 单位积分,积分上限积分说明积分事件

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

@ -617,16 +617,8 @@ public class GovOrgServiceImpl implements GovOrgService {
//3.查询直属下级组织下网格在查询时间段内存在上报事件(直接立项)数的网格,一天一条
List<GridDateIdResultDTO> projectList = dataStatsService.getGridDateProjectIncrList(formDTO);
//4.汇总数据,一个网格一天只记录一条数据,这条数据可能是例行工作的也可能是上报事件的,也可能某一天两个数都有,但只记录一条
Map<String, String> map = new HashMap<>();
workList.forEach(w -> {
map.put(w.getGridId() + w.getDateId(), w.getDateId());
});
//projectList.stream().filter(pro -> !map.containsKey(pro.getGridId() + pro.getDateId())).forEach(p -> workList.add(p));
projectList.forEach(pro -> {
if (!map.containsKey(pro.getGridId() + pro.getDateId())) {
workList.add(pro);
}
});
Set<String> map = workList.stream().map(o -> o.getGridId() + o.getDateId()).collect(Collectors.toSet());
projectList.stream().filter(pro -> !map.contains(pro.getGridId() + pro.getDateId())).forEach(p -> workList.add(p));
//5.按组织封装数据
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();

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

@ -1155,8 +1155,8 @@
FROM
fact_grid_member_statistics_daily
WHERE del_flag = '0'
AND DATE_FORMAT(created_time,'%Y%m%d') <![CDATA[ >= ]]> #{startTime}
AND DATE_FORMAT(created_time,'%Y%m%d') <![CDATA[ <= ]]> #{endTime}
AND date_id <![CDATA[ >= ]]> #{startTime}
AND date_id <![CDATA[ <= ]]> #{endTime}
AND project_incr > 0
AND pids LIKE CONCAT('%', #{agencyId}, '%')
GROUP BY grid_id, date_id

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

@ -150,8 +150,8 @@
stats_staff_patrol_record_daily
WHERE
del_flag = '0'
AND DATE_FORMAT(created_time,'%Y%m%d') <![CDATA[ >= ]]> #{startTime}
AND DATE_FORMAT(created_time,'%Y%m%d') <![CDATA[ <= ]]> #{endTime}
AND date_id <![CDATA[ >= ]]> #{startTime}
AND date_id <![CDATA[ <= ]]> #{endTime}
AND routine_work_count > 0
AND grid_pids LIKE CONCAT('%', #{agencyId}, '%')
GROUP BY grid_id, date_id

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

@ -64,7 +64,7 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao<FactOriginPr
* @author wangc
* @date 2020.10.19 16:26
*/
void deleteByProjectIds(@Param("list") List<String> list,@Param("customerId") String customerId);
void deleteByProjectIds(@Param("list") List<String> list, @Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* @Description 批量插入

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

@ -494,14 +494,17 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
});
if (!CollectionUtils.isEmpty(formattingData)) {
List<String> projectList = new ArrayList<>();
projectList.add(param.getObjectId());
factOriginProjectOrgPeriodDailyDao.deleteByProjectIds(projectList, param.getCustomerId());
if (StringUtils.isNotEmpty(param.getObjectId())) {
projectList.add(param.getObjectId());
}
factOriginProjectOrgPeriodDailyDao.deleteByProjectIds(projectList, param.getCustomerId(), param.getDateId());
Lists.partition(formattingData, NumConstant.ONE_HUNDRED)
.forEach(part -> factOriginProjectOrgPeriodDailyDao.insertBatch(part));
}
}
/**
* @Description 项目节点耗时数据补齐
* @param

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java

@ -3,6 +3,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.DateUtils;
@ -252,7 +253,8 @@ public class StatsUserServiceImpl implements StatsUserService {
m.setSourceType("external");
m.setParentCustomerId(crm.getParentCustomerId());
m.setPid(pid.toString());
m.setPids(pids.toString());
//20220214 上报数据的pids是从街道开始,需要在前边拼接上平阴县的id才能保证后续的查询用like时可以筛选出数据 sun
m.setPids(StrConstant.PY_ROOT_AGENCY + ":" + pids.toString());
} else {
log.warn(String.format("网格员数据分析上报,数据错误,根据agencyId未查询到组织信息,客户Id->%s,组织Id->%s", m.getCustomerId(), m.getAgencyId()));
iterator.remove();

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

@ -40,6 +40,7 @@
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND (DATE_FORMAT(INFORMED_DATE,"%Y%m%d") &gt;= #{dateId} OR DATE_FORMAT(HANDLED_DATE,"%Y%m%d") &gt;= #{dateId} OR DATE_FORMAT(PERIOD_TILL_REPLY_FIRSTLY,"%Y%m%d") &gt;= #{dateId})
<if test="null != list and list.size() > 0">
<foreach collection="list" open="AND ( " close=" )" separator=" OR " item="item">
PROJECT_ID = #{item}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -265,6 +265,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
Map<String, ResiImportChangedData> categoryChangedResis = newlyOrChangedResi.get().getCategoryChangedResis();
Map<String, ResiImportChangedData> transferedResis = newlyOrChangedResi.get().getTransferedResis();
log.info("类别变动居民数:{}", categoryChangedResis.size());
log.info("调动居民数:{}", transferedResis.size());
//保存调动或者变更记录
saveNewResiCategoryRecord();
saveResiCategoryChangedRecord(categoryChangedResis);
@ -469,7 +472,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
resiCategories);
redisUtils.hMSet(RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", resiId), BeanUtil.beanToMap(categoryData));
categoryData = null;
}
} catch (Exception e) {
@ -1182,6 +1185,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
ResiImportCategoryData newResiCateData = ConvertUtils.mapToEntity(addUserMap, ResiImportCategoryData.class);
newResiCateData.getCategories().put(columnName, "1");
redisUtils.hMSet(userCateRedisKey, BeanUtil.beanToMap(newResiCateData));
newResiCateData = null;
return;
}
@ -1360,7 +1364,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
newResiInfoObj.getHomeId(), "add", "新增", column.getKey(), 1, resiInfo.getPids());
icUserChangeDetailedDao.insert(changedetail);
changedetail = null;
}
changeRecord = null;
newResiInfoObj = null;
}
}

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

@ -18,7 +18,6 @@
package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -710,11 +709,27 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
queryDTO.setFormCode(formCode);
//所有的子表
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO);
List<String> subTables=new ArrayList<>();
/*List<String> subTablesBak=new ArrayList<>();
if(subTablesRes.success()&&CollectionUtils.isNotEmpty(subTablesRes.getData())){
subTables =subTablesRes.getData().stream().map(SubTableJoinDTO::getJoinTableSql).collect(Collectors.toList());
}
return baseDao.dynamicQuery(customerId,resultTableName,conditions,subTables,currentStaffAgencyId,staffOrgPath);
subTablesBak =subTablesRes.getData().stream().map(SubTableJoinDTO::getJoinTableSql).collect(Collectors.toList());
}*/
List<SubTableJoinDTO> subTables =subTablesRes.getData();
// log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true));
//关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重
Set<String> whereConditionTables=conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
Set<String> tables=new HashSet<>();
tables.addAll(whereConditionTables);
tables.add(resultTableName);
// log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true));
//最终关联的子表对应的sql:
List<String> finalSubTables =new ArrayList<>();
subTables.forEach(subTable->{
if(tables.contains(subTable.getTableName())){
finalSubTables.add(subTable.getJoinTableSql());
}
});
return baseDao.dynamicQuery(customerId,resultTableName,conditions,finalSubTables,currentStaffAgencyId,staffOrgPath);
}
/**

Loading…
Cancel
Save