Browse Source

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

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

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

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();
//1.文字内容安全校验
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);
//2.数据准备,查询需要用到的数据

Loading…
Cancel
Save