|
@ -322,6 +322,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
entity.setAgencyId(gridInfo.getPid()); |
|
|
entity.setAgencyId(gridInfo.getPid()); |
|
|
entity.setGridPids(gridInfo.getPids()); |
|
|
entity.setGridPids(gridInfo.getPids()); |
|
|
entity.setLatestOperatedTime(nowTime); |
|
|
entity.setLatestOperatedTime(nowTime); |
|
|
|
|
|
entity.setEventType(formDTO.getEventType()); |
|
|
entity.setAuditStatus(TopicConstant.AUTO_PASSED); |
|
|
entity.setAuditStatus(TopicConstant.AUTO_PASSED); |
|
|
if ("closed_case".equals(formDTO.getStatus())) { |
|
|
if ("closed_case".equals(formDTO.getStatus())) { |
|
|
entity.setCloseCaseTime(new Date()); |
|
|
entity.setCloseCaseTime(new Date()); |
|
@ -1924,8 +1925,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public EventRateResultDTO getEventRate(String orgId, String orgType,String eventType) { |
|
|
public EventRateResultDTO getEventRate(String orgId, String orgType, String eventType) { |
|
|
EventRateResultDTO erDto = baseDao.getEventRate(getOrgPath(orgId, orgType), eventType);//事件总量和灯数量,占比
|
|
|
EventRateResultDTO erDto = baseDao.getEventCount(getOrgPath(orgId, orgType));//事件总量和灯数量,占比
|
|
|
List<Map<String, Integer>> dataMap = baseDao.getAnalysis(getOrgPath(orgId, orgType));//按分类获取数量
|
|
|
List<Map<String, Integer>> dataMap = baseDao.getAnalysis(getOrgPath(orgId, orgType));//按分类获取数量
|
|
|
Map<String, Integer> temp = new HashMap<>(); |
|
|
Map<String, Integer> temp = new HashMap<>(); |
|
|
if (null != dataMap && dataMap.size() > 0) { |
|
|
if (null != dataMap && dataMap.size() > 0) { |
|
@ -1958,19 +1959,71 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
@Override |
|
|
@Override |
|
|
public EventAnalysisResultDTO getEventAnalysis(String orgId, String orgType, String eventType) { |
|
|
public EventAnalysisResultDTO getEventAnalysis(String orgId, String orgType, String eventType) { |
|
|
String orgPath = getOrgPath(orgId, orgType); |
|
|
String orgPath = getOrgPath(orgId, orgType); |
|
|
EventRateResultDTO erDto = baseDao.getEventRate(orgPath, eventType);//事件总量和灯数量,占比
|
|
|
EventAnalysisResultDTO dto = baseDao.getEventBySourceTypeCount(orgPath);//根据事件来源获取事件数量
|
|
|
EventAnalysisResultDTO dto = baseDao.getEventAnalysis(orgPath, eventType); |
|
|
Integer total; |
|
|
dto.setDaiChuLi(erDto.getHongDeng()); |
|
|
if (StringUtils.isEmpty(eventType)) { |
|
|
dto.setChuLiZhong(erDto.getHuangDeng()); |
|
|
total = dto.getJiSuJiBan() + dto.getZhiTongLianBan() + dto.getWangGeHua(); |
|
|
dto.setYiJieAn(erDto.getLanDeng()); |
|
|
} else { |
|
|
dto.setGuiDang(erDto.getGuiDang()); |
|
|
total = eventType.equals("0") ? dto.getJiSuJiBan() : eventType.equals("1") ? |
|
|
dto.setDaiChuLiRate(erDto.getHongDengRate() == null ? 0 : erDto.getHongDengRate()); |
|
|
dto.getZhiTongLianBan() : dto.getWangGeHua(); |
|
|
dto.setChuLiZhongRate(erDto.getHuangDengRate() == null ? 0 : erDto.getHuangDengRate()); |
|
|
} |
|
|
dto.setYiJieAnRate(erDto.getLanDengRate() == null ? 0 : erDto.getLanDengRate()); |
|
|
return biuldData(dto, orgPath, eventType, total); |
|
|
dto.setGuiDangRate(erDto.getGuiDangRate() == null ? 0 : erDto.getGuiDangRate()); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private EventAnalysisResultDTO biuldData(EventAnalysisResultDTO dto, String orgPath, String eventType, Integer total) { |
|
|
|
|
|
/** |
|
|
|
|
|
* eventType: 0 即诉即办 1 直通联办 2 网格化平台 |
|
|
|
|
|
* 待响应 没有任何回复数据或者只有上报数据(可能包含多条) |
|
|
|
|
|
* 处理中 只要包含一条阅收数据即为处理中(可能包含多条) |
|
|
|
|
|
* 已结案 只要包含一条完结数据即为已结案(应该只有一条) |
|
|
|
|
|
* 已归档 只要包含一条归档数据即为已归档(应该只有一条) |
|
|
|
|
|
* 0、上报 1、阅收 3、完结 6、结案归档 |
|
|
|
|
|
*/ |
|
|
|
|
|
for (int i = 0; i < 5; i++) { |
|
|
|
|
|
Integer temp; |
|
|
|
|
|
if (i == 0) { |
|
|
|
|
|
temp = baseDao.getEventByReplyTypeCount(orgPath, eventType, String.valueOf(i)); |
|
|
|
|
|
dto.setDaiChuLi(temp); |
|
|
|
|
|
dto.setDaiChuLiRate(new BigDecimal((double) temp / total).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
|
|
|
|
|
} |
|
|
|
|
|
if (i == 1) { |
|
|
|
|
|
temp = baseDao.getEventByReplyTypeCount(orgPath, eventType, String.valueOf(i)); |
|
|
|
|
|
dto.setChuLiZhong(temp); |
|
|
|
|
|
dto.setChuLiZhongRate(new BigDecimal((double) temp / total).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
|
|
|
|
|
} |
|
|
|
|
|
if (i == 2) { |
|
|
|
|
|
i = i + 1; |
|
|
|
|
|
temp = baseDao.getEventByReplyTypeCount(orgPath, eventType, String.valueOf(i)); |
|
|
|
|
|
dto.setYiJieAn(temp); |
|
|
|
|
|
dto.setYiJieAnRate(new BigDecimal((double) temp / total).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
|
|
|
|
|
} |
|
|
|
|
|
if (i == 4) { |
|
|
|
|
|
i = i + 2; |
|
|
|
|
|
temp = baseDao.getEventByReplyTypeCount(orgPath, eventType, String.valueOf(i)); |
|
|
|
|
|
dto.setGuiDang(temp); |
|
|
|
|
|
dto.setGuiDangRate(new BigDecimal((double) temp / total).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
return dto; |
|
|
return dto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public List<GridOrVillageEventRateResultDTO> getEventRateByAgencyId(String agencyId) { |
|
|
|
|
|
if (StringUtils.isNotEmpty(agencyId)) { |
|
|
|
|
|
List<IcEventAnalysisOrgResDTO> orgs = getSubOrgs(agencyId); |
|
|
|
|
|
if (null != orgs && orgs.size() > 0) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @param orgId |
|
|
|
|
|
* @param orgType |
|
|
|
|
|
* @return |
|
|
|
|
|
* @deprecationg 获取orgPath |
|
|
|
|
|
*/ |
|
|
private String getOrgPath(String orgId, String orgType) { |
|
|
private String getOrgPath(String orgId, String orgType) { |
|
|
if (OrgInfoConstant.AGENCY.equals(orgType)) { // 行政组织
|
|
|
if (OrgInfoConstant.AGENCY.equals(orgType)) { // 行政组织
|
|
|
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); |
|
|
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); |
|
@ -1981,4 +2034,27 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @param agencyId |
|
|
|
|
|
* @return |
|
|
|
|
|
* @deprecation 获取当前组织的所有下级组织 |
|
|
|
|
|
*/ |
|
|
|
|
|
private List<IcEventAnalysisOrgResDTO> getSubOrgs(String agencyId) { |
|
|
|
|
|
List<IcEventAnalysisOrgResDTO> orgList = new ArrayList<>(); |
|
|
|
|
|
Result<List<SubOrgResDTO>> orgs = govOrgOpenFeignClient.subOrgList(agencyId); |
|
|
|
|
|
if (!orgs.success() || CollectionUtils.isEmpty(orgs.getData())) { |
|
|
|
|
|
return orgList; |
|
|
|
|
|
} |
|
|
|
|
|
for (SubOrgResDTO org : orgs.getData()) { |
|
|
|
|
|
IcEventAnalysisOrgResDTO resultDto = ConvertUtils.sourceToTarget(org, IcEventAnalysisOrgResDTO.class); |
|
|
|
|
|
if ("agency".equals(org.getOrgType())) { |
|
|
|
|
|
resultDto.setOrgName(org.getOrgName()); |
|
|
|
|
|
resultDto.setOrgType(org.getOrgType()); |
|
|
|
|
|
resultDto.setOrgId(org.getOrgId()); |
|
|
|
|
|
orgList.add(resultDto); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return orgList; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|