diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml index 7b6a06d..62da324 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml @@ -137,36 +137,38 @@ AND roam_time #{endTime} - ) UNION - SELECT - IFNULL( - sum( - CASE + ) + + + + + - WHEN cc.body_remark IS NULL THEN - 1 - WHEN cc.body_remark = 0 THEN - 1 - WHEN cc.body_remark = '' THEN - 1 ELSE cc.body_remark - END - ), - 0 - ) AS - value - , - 7 AS name - FROM - cmd_body_info cc - WHERE - body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation = 7 - - AND roam_time = ]]> #{begTime} - - - AND roam_time #{endTime} - ) UNION + + + + + + + + + + + + + + + + + + + + + + + + + UNION SELECT IFNULL( sum( @@ -248,14 +250,12 @@ cmd_body_info cc WHERE body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation =7 - - AND roam_time = ]]> #{begTime} + AND hand_time = ]]> #{begTime} - AND roam_time #{endTime} - ) + AND hand_time #{endTime} + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml index 7b6a06d..62da324 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml @@ -137,36 +137,38 @@ AND roam_time #{endTime} - ) UNION - SELECT - IFNULL( - sum( - CASE + ) + + + + + - WHEN cc.body_remark IS NULL THEN - 1 - WHEN cc.body_remark = 0 THEN - 1 - WHEN cc.body_remark = '' THEN - 1 ELSE cc.body_remark - END - ), - 0 - ) AS - value - , - 7 AS name - FROM - cmd_body_info cc - WHERE - body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation = 7 - - AND roam_time = ]]> #{begTime} - - - AND roam_time #{endTime} - ) UNION + + + + + + + + + + + + + + + + + + + + + + + + + UNION SELECT IFNULL( sum( @@ -248,14 +250,12 @@ cmd_body_info cc WHERE body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation =7 - - AND roam_time = ]]> #{begTime} + AND hand_time = ]]> #{begTime} - AND roam_time #{endTime} - ) + AND hand_time #{endTime} + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java index 3f75025..5f83b7b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java @@ -21,4 +21,6 @@ List selectListTen(BusinessReportInfoRequest businessReportInfoRequest); + List statisticsByTag(String begTime, String endTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml index 7b6a06d..62da324 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml @@ -137,36 +137,38 @@ AND roam_time #{endTime} - ) UNION - SELECT - IFNULL( - sum( - CASE + ) + + + + + - WHEN cc.body_remark IS NULL THEN - 1 - WHEN cc.body_remark = 0 THEN - 1 - WHEN cc.body_remark = '' THEN - 1 ELSE cc.body_remark - END - ), - 0 - ) AS - value - , - 7 AS name - FROM - cmd_body_info cc - WHERE - body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation = 7 - - AND roam_time = ]]> #{begTime} - - - AND roam_time #{endTime} - ) UNION + + + + + + + + + + + + + + + + + + + + + + + + + UNION SELECT IFNULL( sum( @@ -248,14 +250,12 @@ cmd_body_info cc WHERE body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation =7 - - AND roam_time = ]]> #{begTime} + AND hand_time = ]]> #{begTime} - AND roam_time #{endTime} - ) + AND hand_time #{endTime} + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java index 3f75025..5f83b7b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java @@ -21,4 +21,6 @@ List selectListTen(BusinessReportInfoRequest businessReportInfoRequest); + List statisticsByTag(String begTime, String endTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java index 25b0e02..cbd5751 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java @@ -55,4 +55,8 @@ } + @Override + public List statisticsByTag(String begTime, String endTime) { + return this.baseMapper.statisticsByTag(begTime, endTime); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml index 7b6a06d..62da324 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml @@ -137,36 +137,38 @@ AND roam_time #{endTime} - ) UNION - SELECT - IFNULL( - sum( - CASE + ) + + + + + - WHEN cc.body_remark IS NULL THEN - 1 - WHEN cc.body_remark = 0 THEN - 1 - WHEN cc.body_remark = '' THEN - 1 ELSE cc.body_remark - END - ), - 0 - ) AS - value - , - 7 AS name - FROM - cmd_body_info cc - WHERE - body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation = 7 - - AND roam_time = ]]> #{begTime} - - - AND roam_time #{endTime} - ) UNION + + + + + + + + + + + + + + + + + + + + + + + + + UNION SELECT IFNULL( sum( @@ -248,14 +250,12 @@ cmd_body_info cc WHERE body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation =7 - - AND roam_time = ]]> #{begTime} + AND hand_time = ]]> #{begTime} - AND roam_time #{endTime} - ) + AND hand_time #{endTime} + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java index 3f75025..5f83b7b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java @@ -21,4 +21,6 @@ List selectListTen(BusinessReportInfoRequest businessReportInfoRequest); + List statisticsByTag(String begTime, String endTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java index 25b0e02..cbd5751 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java @@ -55,4 +55,8 @@ } + @Override + public List statisticsByTag(String begTime, String endTime) { + return this.baseMapper.statisticsByTag(begTime, endTime); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java index c8fe2bf..afea624 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java @@ -174,7 +174,7 @@ for (int i = 0; i < jsonArray1.size(); i++) { String title1 = ((JSONObject) jsonArray1.get(i)).getString("time"); if (ObjectUtil.isNotEmpty(title1)) { - firstTags.addAll(Arrays.asList(title1.split(","))); + firstTags.addAll(JSONObject.parseArray(title1,String.class)); }else { firstTags.add(((JSONObject) jsonArray1.get(i)).getString("name")); } @@ -182,15 +182,15 @@ for (int i = 0; i < jsonArray2.size(); i++) { String title2 = ((JSONObject) jsonArray2.get(i)).getString("time"); if(ObjectUtil.isNotEmpty(title2)){ - secondTags.addAll(Arrays.asList(title2.split(","))); + secondTags.addAll(JSONObject.parseArray(title2,String.class)); }else { secondTags.add(((JSONObject) jsonArray2.get(i)).getString("name")); } } for (int i = 0; i < jsonArray3.size(); i++) { - String title3 = ((JSONObject) jsonArray3.get(i)).getString("name"); + String title3 = ((JSONObject) jsonArray3.get(i)).getString("time"); if(ObjectUtil.isNotEmpty(title3)){ - thirdTags.addAll(Arrays.asList(title3.split(","))); + thirdTags.addAll(JSONObject.parseArray(title3,String.class)); }else { thirdTags.add(((JSONObject) jsonArray3.get(i)).getString("name")); } @@ -408,24 +408,71 @@ return list2; } + + public List convertList( List commonRequestList,List list ){ + for(CommonRequest commonRequest:list){ + commonRequest.setValue("0"); + String time = commonRequest.getTime(); + if(ObjectUtil.isNotEmpty(time)){ + List timeList = JSONObject.parseArray(time,String.class); + for(String timeStr:timeList){ + for(CommonRequest commonRequest1:commonRequestList){ + if(timeStr.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } + } + }else { + String name = commonRequest.getName(); + for(CommonRequest commonRequest1:commonRequestList){ + if(name.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } + } + } + return list; + } + public Judgment getListByLocal(JudgmentRequest judgmentRequest) { Judgment judgment = this.baseMapper.selectById(judgmentRequest.getSecondId()); + boolean flag = iBusinessAccessService.getAccessStatus("2-bt") && + (ToolUtils.pageArr[1] == judgmentRequest.getPage())&& + (!(judgmentRequest!=null&&judgmentRequest.getIsReal())); - judgment.setJudgmentTotal(iBusinessAccessService.getAccessStatus("2-bt") && (ToolUtils.pageArr[1] == judgmentRequest.getPage()) ? - judgment.getJudgmentTotal() : iCmdBodyInfoService.getCmdBodyInfoByTime(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime())); + judgment.setJudgmentTotal(flag?judgment.getJudgmentTotal() : iCmdBodyInfoService.getCmdBodyInfoByTime(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime())); + List commonRequestList = new ArrayList<>(); + if(!flag) + { + commonRequestList = this.iCmdBodyTagService.statisticsByTag(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime()); + } if (ObjectUtil.isNotEmpty(judgment.getFirstTitle())) { JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getFirstTitle()); - judgment.setTitle1List(JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class)); + List commonRequestList1 = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + if(flag){ + judgment.setTitle1List(commonRequestList1); + }else { + judgment.setTitle1List(convertList(commonRequestList,commonRequestList1)); + } } if (ObjectUtil.isNotEmpty(judgment.getSecondTitle())) { JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getSecondTitle()); - judgment.setTitle2List(JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class)); - + List commonRequestList2 = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + if(flag){ + judgment.setTitle2List(commonRequestList2); + }else { + judgment.setTitle2List(convertList(commonRequestList,commonRequestList2)); + } } if (ObjectUtil.isNotEmpty(judgment.getThirdTitle())) { JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getThirdTitle()); - judgment.setTitle3List(JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class)); + List commonRequestList3 = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + if(flag){ + judgment.setTitle3List(commonRequestList3); + }else { + judgment.setTitle3List(convertList(commonRequestList,commonRequestList3)); + } } if (ObjectUtil.isNotEmpty(judgment.getDescription())) { @@ -619,47 +666,68 @@ //从第三方获取数据 public List> getByOther(JudgmentRequest judgmentRequest) { List> resultList = new ArrayList<>(); - List firstTagDicts = dictService.findInDictByCode(DictEnum.FIRST_TAG); - List tagResponseList = iCmdBodyRoamService.getTagResponses(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime()); - firstTagDicts.forEach(first -> { - List secondTagDicts = dictService.findInDictByPid(first.getId()); - secondTagDicts.forEach(second -> { - Map firstMap = new HashMap<>(); - firstMap.put(first.getName() + "-" + second.getName(), 0L); - List dictList = this.getAllDictByPid(second.getId()); - dictList.add(second); - List codeList = dictList.stream().map(Dict::getCode).collect(Collectors.toList()); - tagResponseList.forEach(tagResponse -> { - if (codeList.contains(tagResponse.getTagId())) { - firstMap.put(first.getName() + "-" + second.getName(), firstMap.get(first.getName() + "-" + second.getName()) + 1); + Judgment judgment = this.baseMapper.selectById(judgmentRequest.getSecondId()); + if (ObjectUtil.isNotEmpty(judgment) && ObjectUtil.isNotEmpty(judgment.getTagResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getTagResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + + List commonRequestList = this.iCmdBodyTagService.statisticsByTag(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime()); + + for(CommonRequest commonRequest:list){ + commonRequest.setValue("0"); + String time = commonRequest.getTime(); + if(ObjectUtil.isNotEmpty(time)){ + List timeList = JSONObject.parseArray(time,String.class); + for(String timeStr:timeList){ + for(CommonRequest commonRequest1:commonRequestList){ + if(timeStr.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } } - }); -// if (firstMap.get(first.getName() + "-" + second.getName()) > 0) { -// Map filterMapObj = new HashMap<>(firstMap); -// resultList.add(filterMapObj); -// } - Map filterMapObj = new HashMap<>(firstMap); - resultList.add(filterMapObj); - }); - }); - List> resultMapList = new ArrayList<>(); - for (Map map : resultList) { - for (Map.Entry entry : map.entrySet()) { - map.put("name", entry.getKey()); - map.put("value", ObjectUtil.isNotEmpty(tagResponseList) && tagResponseList.size() > 0 ? String.format("%.2f", Double.valueOf(entry.getValue() + "") / tagResponseList.size()) : entry.getValue()); - map.remove(entry.getKey()); - resultMapList.add(map); + }else { + String name = commonRequest.getName(); + for(CommonRequest commonRequest1:commonRequestList){ + if(name.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } + } } + for(CommonRequest commonRequest:list){ + //特殊处理 + if("其他".equals(commonRequest.getName())){ + int count=0; + for(CommonRequest commonRequest1:commonRequestList){ + if(ObjectUtil.isEmpty(commonRequest1.getName())){ + count = count+ Float.valueOf(commonRequest1.getValue()).intValue(); + } + } + commonRequest.setValue(count+""); + } + } + resultList = list.stream().map(it -> { + Map apiMap = new HashMap<>(); + apiMap.put("value", it.getValue()); + apiMap.put("name", it.getName()); + apiMap.put("time", it.getTime()); + return apiMap; + }).collect(Collectors.toList()); + } - return resultMapList; + return resultList; } @Override public List> statisticsByTag(JudgmentRequest judgmentRequest) { -// return iBusinessAccessService.getAccessStatus("2-bq") ? -// getByOther(judgmentRequest) : getByLocal(judgmentRequest); - return getByLocal(judgmentRequest); + + + return iBusinessAccessService.getAccessStatus("2-bq") && + (ToolUtils.pageArr[1] == judgmentRequest.getPage()) && + (!(judgmentRequest.getIsReal() != null && judgmentRequest.getIsReal())) ? + getByLocal(judgmentRequest) : getByOther(judgmentRequest); +// return getByLocal(judgmentRequest); } @Override diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml index 7b6a06d..62da324 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/CmdBodyRoamMapper.xml @@ -137,36 +137,38 @@ AND roam_time #{endTime} - ) UNION - SELECT - IFNULL( - sum( - CASE + ) + + + + + - WHEN cc.body_remark IS NULL THEN - 1 - WHEN cc.body_remark = 0 THEN - 1 - WHEN cc.body_remark = '' THEN - 1 ELSE cc.body_remark - END - ), - 0 - ) AS - value - , - 7 AS name - FROM - cmd_body_info cc - WHERE - body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation = 7 - - AND roam_time = ]]> #{begTime} - - - AND roam_time #{endTime} - ) UNION + + + + + + + + + + + + + + + + + + + + + + + + + UNION SELECT IFNULL( sum( @@ -248,14 +250,12 @@ cmd_body_info cc WHERE body_nature = 0 - AND body_id IN ( SELECT body_id FROM cmd_body_roam WHERE roam_operation =7 - - AND roam_time = ]]> #{begTime} + AND hand_time = ]]> #{begTime} - AND roam_time #{endTime} - ) + AND hand_time #{endTime} + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java index 3f75025..5f83b7b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ICmdBodyTagService.java @@ -21,4 +21,6 @@ List selectListTen(BusinessReportInfoRequest businessReportInfoRequest); + List statisticsByTag(String begTime, String endTime); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java index 25b0e02..cbd5751 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/CmdBodyTagServiceImpl.java @@ -55,4 +55,8 @@ } + @Override + public List statisticsByTag(String begTime, String endTime) { + return this.baseMapper.statisticsByTag(begTime, endTime); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java index c8fe2bf..afea624 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/JudgmentServiceImpl.java @@ -174,7 +174,7 @@ for (int i = 0; i < jsonArray1.size(); i++) { String title1 = ((JSONObject) jsonArray1.get(i)).getString("time"); if (ObjectUtil.isNotEmpty(title1)) { - firstTags.addAll(Arrays.asList(title1.split(","))); + firstTags.addAll(JSONObject.parseArray(title1,String.class)); }else { firstTags.add(((JSONObject) jsonArray1.get(i)).getString("name")); } @@ -182,15 +182,15 @@ for (int i = 0; i < jsonArray2.size(); i++) { String title2 = ((JSONObject) jsonArray2.get(i)).getString("time"); if(ObjectUtil.isNotEmpty(title2)){ - secondTags.addAll(Arrays.asList(title2.split(","))); + secondTags.addAll(JSONObject.parseArray(title2,String.class)); }else { secondTags.add(((JSONObject) jsonArray2.get(i)).getString("name")); } } for (int i = 0; i < jsonArray3.size(); i++) { - String title3 = ((JSONObject) jsonArray3.get(i)).getString("name"); + String title3 = ((JSONObject) jsonArray3.get(i)).getString("time"); if(ObjectUtil.isNotEmpty(title3)){ - thirdTags.addAll(Arrays.asList(title3.split(","))); + thirdTags.addAll(JSONObject.parseArray(title3,String.class)); }else { thirdTags.add(((JSONObject) jsonArray3.get(i)).getString("name")); } @@ -408,24 +408,71 @@ return list2; } + + public List convertList( List commonRequestList,List list ){ + for(CommonRequest commonRequest:list){ + commonRequest.setValue("0"); + String time = commonRequest.getTime(); + if(ObjectUtil.isNotEmpty(time)){ + List timeList = JSONObject.parseArray(time,String.class); + for(String timeStr:timeList){ + for(CommonRequest commonRequest1:commonRequestList){ + if(timeStr.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } + } + }else { + String name = commonRequest.getName(); + for(CommonRequest commonRequest1:commonRequestList){ + if(name.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } + } + } + return list; + } + public Judgment getListByLocal(JudgmentRequest judgmentRequest) { Judgment judgment = this.baseMapper.selectById(judgmentRequest.getSecondId()); + boolean flag = iBusinessAccessService.getAccessStatus("2-bt") && + (ToolUtils.pageArr[1] == judgmentRequest.getPage())&& + (!(judgmentRequest!=null&&judgmentRequest.getIsReal())); - judgment.setJudgmentTotal(iBusinessAccessService.getAccessStatus("2-bt") && (ToolUtils.pageArr[1] == judgmentRequest.getPage()) ? - judgment.getJudgmentTotal() : iCmdBodyInfoService.getCmdBodyInfoByTime(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime())); + judgment.setJudgmentTotal(flag?judgment.getJudgmentTotal() : iCmdBodyInfoService.getCmdBodyInfoByTime(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime())); + List commonRequestList = new ArrayList<>(); + if(!flag) + { + commonRequestList = this.iCmdBodyTagService.statisticsByTag(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime()); + } if (ObjectUtil.isNotEmpty(judgment.getFirstTitle())) { JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getFirstTitle()); - judgment.setTitle1List(JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class)); + List commonRequestList1 = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + if(flag){ + judgment.setTitle1List(commonRequestList1); + }else { + judgment.setTitle1List(convertList(commonRequestList,commonRequestList1)); + } } if (ObjectUtil.isNotEmpty(judgment.getSecondTitle())) { JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getSecondTitle()); - judgment.setTitle2List(JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class)); - + List commonRequestList2 = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + if(flag){ + judgment.setTitle2List(commonRequestList2); + }else { + judgment.setTitle2List(convertList(commonRequestList,commonRequestList2)); + } } if (ObjectUtil.isNotEmpty(judgment.getThirdTitle())) { JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getThirdTitle()); - judgment.setTitle3List(JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class)); + List commonRequestList3 = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + if(flag){ + judgment.setTitle3List(commonRequestList3); + }else { + judgment.setTitle3List(convertList(commonRequestList,commonRequestList3)); + } } if (ObjectUtil.isNotEmpty(judgment.getDescription())) { @@ -619,47 +666,68 @@ //从第三方获取数据 public List> getByOther(JudgmentRequest judgmentRequest) { List> resultList = new ArrayList<>(); - List firstTagDicts = dictService.findInDictByCode(DictEnum.FIRST_TAG); - List tagResponseList = iCmdBodyRoamService.getTagResponses(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime()); - firstTagDicts.forEach(first -> { - List secondTagDicts = dictService.findInDictByPid(first.getId()); - secondTagDicts.forEach(second -> { - Map firstMap = new HashMap<>(); - firstMap.put(first.getName() + "-" + second.getName(), 0L); - List dictList = this.getAllDictByPid(second.getId()); - dictList.add(second); - List codeList = dictList.stream().map(Dict::getCode).collect(Collectors.toList()); - tagResponseList.forEach(tagResponse -> { - if (codeList.contains(tagResponse.getTagId())) { - firstMap.put(first.getName() + "-" + second.getName(), firstMap.get(first.getName() + "-" + second.getName()) + 1); + Judgment judgment = this.baseMapper.selectById(judgmentRequest.getSecondId()); + if (ObjectUtil.isNotEmpty(judgment) && ObjectUtil.isNotEmpty(judgment.getTagResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(judgment.getTagResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + + List commonRequestList = this.iCmdBodyTagService.statisticsByTag(judgmentRequest.getBeginTime(), judgmentRequest.getEndTime()); + + for(CommonRequest commonRequest:list){ + commonRequest.setValue("0"); + String time = commonRequest.getTime(); + if(ObjectUtil.isNotEmpty(time)){ + List timeList = JSONObject.parseArray(time,String.class); + for(String timeStr:timeList){ + for(CommonRequest commonRequest1:commonRequestList){ + if(timeStr.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } } - }); -// if (firstMap.get(first.getName() + "-" + second.getName()) > 0) { -// Map filterMapObj = new HashMap<>(firstMap); -// resultList.add(filterMapObj); -// } - Map filterMapObj = new HashMap<>(firstMap); - resultList.add(filterMapObj); - }); - }); - List> resultMapList = new ArrayList<>(); - for (Map map : resultList) { - for (Map.Entry entry : map.entrySet()) { - map.put("name", entry.getKey()); - map.put("value", ObjectUtil.isNotEmpty(tagResponseList) && tagResponseList.size() > 0 ? String.format("%.2f", Double.valueOf(entry.getValue() + "") / tagResponseList.size()) : entry.getValue()); - map.remove(entry.getKey()); - resultMapList.add(map); + }else { + String name = commonRequest.getName(); + for(CommonRequest commonRequest1:commonRequestList){ + if(name.equals(commonRequest1.getName())){ + commonRequest.setValue((Integer.valueOf(commonRequest.getValue())+Float.valueOf(commonRequest1.getValue()).intValue())+""); + } + } + } } + for(CommonRequest commonRequest:list){ + //特殊处理 + if("其他".equals(commonRequest.getName())){ + int count=0; + for(CommonRequest commonRequest1:commonRequestList){ + if(ObjectUtil.isEmpty(commonRequest1.getName())){ + count = count+ Float.valueOf(commonRequest1.getValue()).intValue(); + } + } + commonRequest.setValue(count+""); + } + } + resultList = list.stream().map(it -> { + Map apiMap = new HashMap<>(); + apiMap.put("value", it.getValue()); + apiMap.put("name", it.getName()); + apiMap.put("time", it.getTime()); + return apiMap; + }).collect(Collectors.toList()); + } - return resultMapList; + return resultList; } @Override public List> statisticsByTag(JudgmentRequest judgmentRequest) { -// return iBusinessAccessService.getAccessStatus("2-bq") ? -// getByOther(judgmentRequest) : getByLocal(judgmentRequest); - return getByLocal(judgmentRequest); + + + return iBusinessAccessService.getAccessStatus("2-bq") && + (ToolUtils.pageArr[1] == judgmentRequest.getPage()) && + (!(judgmentRequest.getIsReal() != null && judgmentRequest.getIsReal())) ? + getByLocal(judgmentRequest) : getByOther(judgmentRequest); +// return getByLocal(judgmentRequest); } @Override diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RealtimeWorkServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RealtimeWorkServiceImpl.java index 3293c93..9e92bed 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RealtimeWorkServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RealtimeWorkServiceImpl.java @@ -167,9 +167,12 @@ List commonResponseList = iCmdBodyRoamService.getCountByStatus(businessReportInfoRequest.getBeginTime(), businessReportInfoRequest.getEndTime()); // List cmdBodyInfoList = iCmdBodyInfoService.getCmdBodyInfosByStatus(); + int reportedCount = 0, firstJudgmentCount = 0, secondLeaderCount = 0, firstLeaderCount = 0, sendCount = 0, feedbackCount = 0; - + firstLeaderCount=iCmdBodyInfoService.getCmdBodyInfoByTime(businessReportInfoRequest.getBeginTime(), + businessReportInfoRequest.getEndTime()); + sendCount=firstLeaderCount; for (CommonResponse commonResponse : commonResponseList) { if (ObjectUtil.isNotEmpty(commonResponse.getName())) { Integer count = Double.valueOf(commonResponse.getValue()).intValue(); @@ -179,13 +182,15 @@ firstJudgmentCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; } else if (Arrays.binarySearch(DictMapDTO.zbzypArr, commonResponse.getName()) > -1) { secondLeaderCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; - } else if (Arrays.binarySearch(DictMapDTO.zzbzypArr, commonResponse.getName()) > -1) { - firstLeaderCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; } +// else if (Arrays.binarySearch(DictMapDTO.zzbzypArr, commonResponse.getName()) > -1) { +// firstLeaderCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; +// } - if (Arrays.binarySearch(DictMapDTO.xfArr, commonResponse.getName()) > -1) { - sendCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; - } else if (Arrays.binarySearch(DictMapDTO.fkArr, commonResponse.getName()) > -1) { +// if (Arrays.binarySearch(DictMapDTO.xfArr, commonResponse.getName()) > -1) { +// sendCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; +// } else + if (Arrays.binarySearch(DictMapDTO.fkArr, commonResponse.getName()) > -1) { feedbackCount = ObjectUtil.isNotEmpty(commonResponse.getValue()) ? count : 0; } }