Browse Source

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

master
jianjun 4 years ago
parent
commit
dfc0d4f193
  1. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java
  2. 28
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  3. 54
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java
  4. 5
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java

@ -48,7 +48,7 @@ public class CustomerDataManageExcel {
private String patrolDuration; private String patrolDuration;
@Excel(name = "例行工作次数") @Excel(name = "例行工作次数")
private String patrolRoutineWorkTimes; private Integer patrolRoutineWorkTimes;
/** /**
* 未转换前的巡查时长 * 未转换前的巡查时长

28
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -2005,10 +2005,6 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
//获取例行工作次数 //获取例行工作次数
List<CustomerDataManageResultDTO.CustomerDataManage> workCountList = statsStaffPatrolRecordDailyService.getPatrolRecordCount(patrolForm); List<CustomerDataManageResultDTO.CustomerDataManage> workCountList = statsStaffPatrolRecordDailyService.getPatrolRecordCount(patrolForm);
Map<String, List<CustomerDataManageResultDTO.CustomerDataManage>> workCountMap = null;
if(workCountList != null && workCountList.size() > NumConstant.ZERO && workCountList.get(NumConstant.ZERO) != null){
workCountMap = workCountList.stream().collect(Collectors.groupingBy(CustomerDataManageResultDTO.CustomerDataManage::getOrgId));
}
//NumConstant.FOUR.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 //NumConstant.FOUR.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据
HashMap<String, CustomerDataManageResultDTO.CustomerDataManage> uStartMap = new HashMap<>(); HashMap<String, CustomerDataManageResultDTO.CustomerDataManage> uStartMap = new HashMap<>();
HashMap<String, CustomerDataManageResultDTO.CustomerDataManage> gStartMap = new HashMap<>(); HashMap<String, CustomerDataManageResultDTO.CustomerDataManage> gStartMap = new HashMap<>();
@ -2083,7 +2079,6 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
String patrolDuration = ""; String patrolDuration = "";
int patrolDurationInteger = NumConstant.ZERO; int patrolDurationInteger = NumConstant.ZERO;
HashSet set = new HashSet(); HashSet set = new HashSet();
List<CustomerDataManageResultDTO.CustomerDataManage> workCountListTemp;
for (CustomerDataManageResultDTO.CustomerDataManage u : patrolEnd) { for (CustomerDataManageResultDTO.CustomerDataManage u : patrolEnd) {
if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && org.getOrgId().equals(u.getOrgId())) { if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && org.getOrgId().equals(u.getOrgId())) {
patroCount += u.getPatrolCount(); patroCount += u.getPatrolCount();
@ -2099,21 +2094,14 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
} }
//例行工作次数累加 //例行工作次数累加
int patrolRoutineWorkTimes = NumConstant.ZERO; int patrolRoutineWorkTimes = NumConstant.ZERO;
if (workCountMap != null){ if (CollectionUtils.isNotEmpty(workCountList) && workCountList.get(NumConstant.ZERO) != null) {
workCountListTemp = workCountMap.get(org.getOrgId()); for (CustomerDataManageResultDTO.CustomerDataManage work : workCountList) {
if (CollectionUtils.isNotEmpty(workCountListTemp)) { if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && org.getOrgId().equals(work.getOrgId())) {
if (OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) { patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes();
for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) { set.add(work.getStaffId());
patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes(); } else if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) && work.getOrgId().contains(org.getOrgId())) {
set.add(work.getStaffId()); patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes();
} set.add(work.getStaffId());
} else {
if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel())) {
for (CustomerDataManageResultDTO.CustomerDataManage work : workCountListTemp) {
patrolRoutineWorkTimes += work.getPatrolRoutineWorkTimes();
set.add(work.getStaffId());
}
}
} }
} }
} }

54
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/ProjectChangedCustomListener.java

@ -10,6 +10,7 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.constant.PingYinConstant;
import com.epmet.constant.SystemMessageType; import com.epmet.constant.SystemMessageType;
import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO;
import com.epmet.service.evaluationindex.extract.todata.FactOriginExtractService; import com.epmet.service.evaluationindex.extract.todata.FactOriginExtractService;
@ -66,7 +67,7 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently
} catch (Exception e) { } catch (Exception e) {
//失败不重发 //失败不重发
logger.error("consumeMessage fail,msg:{}",e.getMessage()); logger.error("consumeMessage fail,msg:{}",e.getMessage());
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; return ConsumeConcurrentlyStatus.RECONSUME_LATER;
} }
log.info("consumeMessage success, cost:{} ms",System.currentTimeMillis() - start); log.info("consumeMessage success, cost:{} ms",System.currentTimeMillis() - start);
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
@ -94,7 +95,7 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently
} }
log.info("消费了项目变动消息,customer id:{}", msgObj.getCustomerId()); log.info("消费了项目变动消息,customer id:{}", msgObj.getCustomerId());
if (org.apache.commons.lang.StringUtils.isNotBlank(pendingMsgLabel)) { if (StringUtils.isNotBlank(pendingMsgLabel)) {
try { try {
removePendingMqMsgCache(pendingMsgLabel); removePendingMqMsgCache(pendingMsgLabel);
} catch (Exception e) { } catch (Exception e) {
@ -109,19 +110,14 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently
try { try {
String customerId = msgObj.getCustomerId(); String customerId = msgObj.getCustomerId();
distributedLock = SpringContextUtils.getBean(DistributedLock.class); distributedLock = SpringContextUtils.getBean(DistributedLock.class);
lock = distributedLock.getLock(String.format("lock:project_changed:%s", customerId) lock = distributedLock.getLock(String.format("lock:project_changed:%s:%s", customerId, msgObj.getProjectId())
,30L, 30L, TimeUnit.SECONDS); ,30L, 30L, TimeUnit.SECONDS);
if (StringUtils.isBlank(customerId)){ if (StringUtils.isBlank(customerId)){
logger.error("consumer project_changed fail,msg:{}",customerId); logger.error("consumer project_changed fail,msg:{}",customerId);
return; return;
} }
//消息被消费太快 业务数据还没有完成 歇一会先
try {
Thread.sleep(60L);
} catch (InterruptedException e) {
logger.error("consumeMessage sleep exception",e);
}
ExtractOriginFormDTO extractOriginFormDTO = new ExtractOriginFormDTO(); ExtractOriginFormDTO extractOriginFormDTO = new ExtractOriginFormDTO();
extractOriginFormDTO.setCustomerId(customerId); extractOriginFormDTO.setCustomerId(customerId);
@ -146,21 +142,8 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently
} }
logger.info("consumer projectChanged msg success,{}",aBoolean); logger.info("consumer projectChanged msg success,{}",aBoolean);
//发送项目数据上报的mq消息 sendProject2OpenData(msgObj, customerId);
if ("6f203e30de1a65aab7e69c058826cd80".equals(customerId)) {
if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation()) || "close".equals(msgObj.getOperation())) {
String type;
if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation())) {
type = SystemMessageType.PROJECT_ADD;
} else {
type = SystemMessageType.PROJECT_EDIT;
}
List<String> projectList = new ArrayList<>();
projectList.add(msgObj.getProjectId());
DisputeProcessMQMsg msg = new DisputeProcessMQMsg(customerId, projectList, type);
SpringContextUtils.getBean(ScreenProjectDataService.class).sendProjectChangeMq(msg);
}
}
} catch (RenException e) { } catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【RocketMQ】消费项目变动消息失败:",e); logger.error("【RocketMQ】消费项目变动消息失败:",e);
@ -175,6 +158,29 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently
} }
} }
/**
* desc:发型项目数据到 opendata
* @param msgObj
* @param customerId
*/
private void sendProject2OpenData(ProjectChangedMQMsg msgObj, String customerId) {
//发送项目数据上报的mq消息
if (PingYinConstant.PROD_PING_YIN_CUSTOMER_ID.equals(customerId)) {
if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation()) || "close".equals(msgObj.getOperation())) {
String type;
if ("issue_shift_project".equals(msgObj.getOperation()) || "created".equals(msgObj.getOperation())) {
type = SystemMessageType.PROJECT_ADD;
} else {
type = SystemMessageType.PROJECT_EDIT;
}
List<String> projectList = new ArrayList<>();
projectList.add(msgObj.getProjectId());
DisputeProcessMQMsg msg = new DisputeProcessMQMsg(customerId, projectList, type);
SpringContextUtils.getBean(ScreenProjectDataService.class).sendProjectChangeMq(msg);
}
}
}
@PreDestroy @PreDestroy
public void saveCalStatus() { public void saveCalStatus() {
//todo //todo

5
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -317,7 +317,10 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
List<TickStaffFormDTO> staffList = formDTO.getStaffList(); List<TickStaffFormDTO> staffList = formDTO.getStaffList();
//1.文字内容安全校验 //1.文字内容安全校验
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
list.add(formDTO.getTitle());list.add(formDTO.getBackGround());list.add(formDTO.getPublicReply());list.add(formDTO.getInternalRemark()); list.add(formDTO.getTitle());
list.add(formDTO.getBackGround());
list.add(formDTO.getPublicReply());
list.add(formDTO.getInternalRemark());
safetyCheck(list); safetyCheck(list);
//2.数据准备,查询需要用到的数据 //2.数据准备,查询需要用到的数据

Loading…
Cancel
Save