|
@@ -20,6 +20,7 @@ import com.startup.minpay.frame.service.base.Service;
|
|
import com.startup.minpay.frame.target.MINComponent;
|
|
import com.startup.minpay.frame.target.MINComponent;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.fileupload.FileItem;
|
|
import org.apache.commons.fileupload.FileItem;
|
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
|
|
|
|
@@ -31,42 +32,34 @@ import java.util.*;
|
|
|
|
|
|
@MINComponent
|
|
@MINComponent
|
|
public class Report95598ServiceImpl implements IReport95598Service {
|
|
public class Report95598ServiceImpl implements IReport95598Service {
|
|
-
|
|
|
|
|
|
+ private static final Map<String,String> MAP = new HashMap();
|
|
|
|
+ static {
|
|
|
|
+ MAP.put("370902000003","供电公司");
|
|
|
|
+ MAP.put("370902000004","其他");
|
|
|
|
+ }
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> reportNeedDetail(Map<String, Object> param) throws MINBusinessException {
|
|
public Map<String, Object> reportNeedDetail(Map<String, Object> param) throws MINBusinessException {
|
|
String range = (String)param.get("range");
|
|
String range = (String)param.get("range");
|
|
|
|
+ String range2 = (String)param.get("range2");
|
|
String timeRange = (String)param.get("timeRange");
|
|
String timeRange = (String)param.get("timeRange");
|
|
String reportTypeId = (String)param.get("reportTypeId");
|
|
String reportTypeId = (String)param.get("reportTypeId");
|
|
-
|
|
|
|
MINHttpServletRequestContext request = (MINHttpServletRequestContext)param.get("request");
|
|
MINHttpServletRequestContext request = (MINHttpServletRequestContext)param.get("request");
|
|
-
|
|
|
|
|
|
+ Map<String,Object> mm = new HashMap<String,Object>();
|
|
|
|
+ mm.put("range",range);
|
|
|
|
+ mm.put("range2",range2);
|
|
|
|
+ mm.put("timeRange",timeRange);
|
|
|
|
+ mm.put("reportTypeId",reportTypeId);
|
|
Map<String, Object> resMap = new HashMap<String, Object>();
|
|
Map<String, Object> resMap = new HashMap<String, Object>();
|
|
if(Constant.REPORT_TYPE_20.equals(reportTypeId)){//95598日报
|
|
if(Constant.REPORT_TYPE_20.equals(reportTypeId)){//95598日报
|
|
- Map<String,Object> mm = new HashMap<String,Object>();
|
|
|
|
- mm.put("range",range);
|
|
|
|
- mm.put("timeRange",timeRange);
|
|
|
|
- mm.put("reportTypeId",reportTypeId);
|
|
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
resMap.put("resList", resList);
|
|
resMap.put("resList", resList);
|
|
}else if(Constant.REPORT_TYPE_21.equals(reportTypeId)){//95598日汇报
|
|
}else if(Constant.REPORT_TYPE_21.equals(reportTypeId)){//95598日汇报
|
|
- Map<String,Object> mm = new HashMap<String,Object>();
|
|
|
|
- mm.put("range",range);
|
|
|
|
- mm.put("timeRange",timeRange);
|
|
|
|
- mm.put("reportTypeId",reportTypeId);
|
|
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
resMap.put("resList", resList);
|
|
resMap.put("resList", resList);
|
|
}else if(Constant.REPORT_TYPE_22.equals(reportTypeId)){//95598周报
|
|
}else if(Constant.REPORT_TYPE_22.equals(reportTypeId)){//95598周报
|
|
- Map<String,Object> mm = new HashMap<String,Object>();
|
|
|
|
- mm.put("range",range);
|
|
|
|
- mm.put("timeRange",timeRange);
|
|
|
|
- mm.put("reportTypeId",reportTypeId);
|
|
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
resMap.put("resList", resList);
|
|
resMap.put("resList", resList);
|
|
- }else if(Constant.REPORT_TYPE_23.equals(reportTypeId)){//95598日汇报
|
|
|
|
- Map<String,Object> mm = new HashMap<String,Object>();
|
|
|
|
- mm.put("range",range);
|
|
|
|
- mm.put("timeRange",timeRange);
|
|
|
|
- mm.put("reportTypeId",reportTypeId);
|
|
|
|
|
|
+ }else if(Constant.REPORT_TYPE_23.equals(reportTypeId)){//95598周汇报
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
Map<String,Object> resList = reportType95598Zb(mm, request);
|
|
resMap.put("resList", resList);
|
|
resMap.put("resList", resList);
|
|
}
|
|
}
|
|
@@ -82,40 +75,159 @@ public class Report95598ServiceImpl implements IReport95598Service {
|
|
private Map<String, Object> reportType95598Zb(Map<String, Object> mm, MINHttpServletRequestContext request) throws MINBusinessException {
|
|
private Map<String, Object> reportType95598Zb(Map<String, Object> mm, MINHttpServletRequestContext request) throws MINBusinessException {
|
|
IMINDataBaseService db = Service.lookup(IMINDataBaseService.class);
|
|
IMINDataBaseService db = Service.lookup(IMINDataBaseService.class);
|
|
String range = StringUtil.ObjectToString(mm.get("range"));
|
|
String range = StringUtil.ObjectToString(mm.get("range"));
|
|
|
|
+ String range2 = StringUtil.ObjectToString(mm.get("range2"));
|
|
String timeRange = StringUtil.ObjectToString(mm.get("timeRange"));
|
|
String timeRange = StringUtil.ObjectToString(mm.get("timeRange"));
|
|
|
|
+ //本周
|
|
String start = StringUtil.getStartAndEndDatetime(range,timeRange,"1");
|
|
String start = StringUtil.getStartAndEndDatetime(range,timeRange,"1");
|
|
String end = StringUtil.getStartAndEndDatetime(range,timeRange,"2");
|
|
String end = StringUtil.getStartAndEndDatetime(range,timeRange,"2");
|
|
|
|
+ //上周
|
|
|
|
+ String start2 = StringUtil.getStartAndEndDatetime(range2,timeRange,"1");
|
|
|
|
+ String end2 = StringUtil.getStartAndEndDatetime(range2,timeRange,"2");
|
|
|
|
+ //当年时间范围
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ Integer year = calendar.get(Calendar.YEAR);
|
|
|
|
+ String range3 = year + "-01-01~" + year + "-12-31";
|
|
|
|
+
|
|
|
|
+ String start3 = StringUtil.getStartAndEndDatetime(range3,timeRange,"1");
|
|
|
|
+ String end3 = StringUtil.getStartAndEndDatetime(range3,timeRange,"2");
|
|
mm.put("start",start);
|
|
mm.put("start",start);
|
|
mm.put("end",end);
|
|
mm.put("end",end);
|
|
|
|
+ mm.put("start2",start2);
|
|
|
|
+ mm.put("end2",end2);
|
|
|
|
+ mm.put("start3",start3);
|
|
|
|
+ mm.put("end3",end3);
|
|
//单位别名翻译
|
|
//单位别名翻译
|
|
List<Map<String,String>> unitMapp = db.getMybatisMapper(ICommMapper.class).selectUnitMapps(mm);
|
|
List<Map<String,String>> unitMapp = db.getMybatisMapper(ICommMapper.class).selectUnitMapps(mm);
|
|
- mm.put("DICT_GCODE","95598GDLX");
|
|
|
|
//查询工单业务类型
|
|
//查询工单业务类型
|
|
|
|
+ mm.put("DICT_GCODE","95598GDLX");
|
|
List<Map<String,String>> gdMapp = db.getMybatisMapper(ICommMapper.class).selectGdType(mm);
|
|
List<Map<String,String>> gdMapp = db.getMybatisMapper(ICommMapper.class).selectGdType(mm);
|
|
- //95598业务受理情况
|
|
|
|
|
|
+ //查询意见工单提及类型
|
|
|
|
+ mm.put("DICT_GCODE","95598TJLX");
|
|
|
|
+ List<Map<String,String>> gdMapp2 = db.getMybatisMapper(ICommMapper.class).selectGdType(mm);
|
|
|
|
+ //***********************************************95598业务受理情况********************************************//
|
|
//单位维度数据
|
|
//单位维度数据
|
|
List<Map<String,String>> list = db.getMybatisMapper(IZb95598ReportMapper.class).selectBeforeIndex(mm);
|
|
List<Map<String,String>> list = db.getMybatisMapper(IZb95598ReportMapper.class).selectBeforeIndex(mm);
|
|
|
|
+ List<Map<String,String>> list22 = db.getMybatisMapper(IZb95598ReportMapper.class).selectBeforeIndex(mm);
|
|
|
|
+ List<Map<String,String>> indexList6 = db.getMybatisMapper(IZb95598ReportMapper.class).selectBeforeIndex(mm);
|
|
|
|
+
|
|
|
|
+// List<Map<String,String>> list22 = new ArrayList<>();
|
|
|
|
+// CollectionUtils.addAll(list22, new Object[list.size()]);
|
|
|
|
+// Collections.copy(list22, list);
|
|
//分类明细汇总数据
|
|
//分类明细汇总数据
|
|
List<Map<String,String>> list2 = db.getMybatisMapper(IZb95598ReportMapper.class).selectFltjYwsl(mm);
|
|
List<Map<String,String>> list2 = db.getMybatisMapper(IZb95598ReportMapper.class).selectFltjYwsl(mm);
|
|
- Map<String,String> temp = new HashMap<>();
|
|
|
|
- Map<String,String> temp2 = new HashMap<>();
|
|
|
|
-
|
|
|
|
|
|
+ Map<String,String> temp;
|
|
|
|
+ Map<String,String> descMap1 = new HashMap<>();
|
|
|
|
+ //统计报表展示-受理情况
|
|
if(list != null){
|
|
if(list != null){
|
|
for (int i = 0; i < list.size(); i++) {
|
|
for (int i = 0; i < list.size(); i++) {
|
|
temp = list.get(i);
|
|
temp = list.get(i);
|
|
Util95598zb.operateData(temp,list2,unitMapp,gdMapp);//按单位统计
|
|
Util95598zb.operateData(temp,list2,unitMapp,gdMapp);//按单位统计
|
|
}
|
|
}
|
|
- }
|
|
|
|
- if(list != null){
|
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
|
- Util95598zb.operateDescData(temp2,list2,unitMapp,gdMapp);//按单位统计
|
|
|
|
|
|
+ Map<String,String> mapHjSlqk = new HashMap<>();
|
|
|
|
+ Map<String,String> mapHjSlqkTemp;
|
|
|
|
+ //追加合计行
|
|
|
|
+ for (int j = 0; j < list.size(); j++) {
|
|
|
|
+ mapHjSlqkTemp = list.get(j);
|
|
|
|
+ mapHjSlqk.put("ORZ_NAME","合计");
|
|
|
|
+ for (int i = 0; i < gdMapp.size(); i++) {
|
|
|
|
+ String key = gdMapp.get(i).get("DICT_CODE");
|
|
|
|
+ mapHjSlqk.put(key,ArithUtils.addToInt(mapHjSlqk.get(key),mapHjSlqkTemp.get(key)) + "");
|
|
|
|
+ }
|
|
|
|
+ mapHjSlqk.put("TOTAL",ArithUtils.addToInt(mapHjSlqk.get("TOTAL"),mapHjSlqkTemp.get("TOTAL")) + "");
|
|
|
|
+ mapHjSlqk.put("HS_NUM",ArithUtils.addToInt(mapHjSlqk.get("HS_NUM"),mapHjSlqkTemp.get("HS_NUM")) + "");
|
|
}
|
|
}
|
|
|
|
+ list.add(mapHjSlqk);
|
|
|
|
+ //描述信息-受理情况
|
|
|
|
+ Util95598zb.operateYwslDescData(descMap1,list,list2,unitMapp,gdMapp);//按单位统计
|
|
}
|
|
}
|
|
Map<String,Object> rstMap = new HashMap<>();
|
|
Map<String,Object> rstMap = new HashMap<>();
|
|
rstMap.put("list1",list);
|
|
rstMap.put("list1",list);
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
|
- System.out.println(list.get(i).toString());
|
|
|
|
|
|
+ rstMap.put("desc1",descMap1.get("desc1"));
|
|
|
|
+ //***********************************************投诉受理情况-暂无********************************************//
|
|
|
|
+
|
|
|
|
+ //***********************************************意见敏感督办情况********************************************//
|
|
|
|
+ List<Map<String,String>> yjgdList = db.getMybatisMapper(IZb95598ReportMapper.class).selectFltjYjgd(mm);
|
|
|
|
+ Map<String,String> temp3;
|
|
|
|
+ Map<String,String> descMap3 = new HashMap<>();
|
|
|
|
+
|
|
|
|
+ if(yjgdList != null){
|
|
|
|
+ for (int i = 0; i < list22.size(); i++) {
|
|
|
|
+ temp3 = list22.get(i);
|
|
|
|
+ Util95598zb.operateYjData(temp3,yjgdList,unitMapp,gdMapp2);//按单位统计
|
|
|
|
+ }
|
|
|
|
+ //追加合计行
|
|
|
|
+ Map<String,String> mapHjSlqk = new HashMap<>();
|
|
|
|
+ Map<String,String> mapHjSlqkTemp;
|
|
|
|
+ for (int j = 0; j < list22.size(); j++) {
|
|
|
|
+ mapHjSlqkTemp = list22.get(j);
|
|
|
|
+ mapHjSlqk.put("ORZ_NAME","合计");
|
|
|
|
+ for (int i = 0; i < gdMapp2.size(); i++) {
|
|
|
|
+ String key = gdMapp2.get(i).get("DICT_CODE");
|
|
|
|
+ if("A000105".equals(key)) {
|
|
|
|
+ mapHjSlqk.put("ND_"+key,ArithUtils.addToInt(mapHjSlqk.get("ND_"+key),mapHjSlqkTemp.get("ND_"+key)) + "");
|
|
|
|
+ mapHjSlqk.put("ZD_"+key,ArithUtils.addToInt(mapHjSlqk.get("ZD_"+key),mapHjSlqkTemp.get("ZD_"+key)) + "");
|
|
|
|
+ mapHjSlqk.put("SZD_"+key,ArithUtils.addToInt(mapHjSlqk.get("SZD_"+key),mapHjSlqkTemp.get("SZD_"+key)) + "");
|
|
|
|
+ }else{
|
|
|
|
+ mapHjSlqk.put("ND_"+key,ArithUtils.addToInt(mapHjSlqk.get("ND_"+key),mapHjSlqkTemp.get("ND_"+key)) + "");
|
|
|
|
+ mapHjSlqk.put("ZD_"+key,ArithUtils.addToInt(mapHjSlqk.get("ZD_"+key),mapHjSlqkTemp.get("ZD_"+key)) + "");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //追加户数统计
|
|
|
|
+ mapHjSlqk.put("HS_NUM",ArithUtils.addToInt(mapHjSlqk.get("HS_NUM"),mapHjSlqkTemp.get("HS_NUM")) + "");
|
|
|
|
+ //追加万户量统计
|
|
|
|
+ mapHjSlqk.put("WHSYJ",ArithUtils.div(ArithUtils.mul(mapHjSlqk.get("ND_A000105"),"1000"),mapHjSlqk.get("HS_NUM"))+"");
|
|
|
|
+ }
|
|
|
|
+ list22.add(mapHjSlqk);
|
|
|
|
+ //描述信息-受理情况
|
|
|
|
+ Util95598zb.operateYjDescData(descMap3,list22,null,unitMapp,gdMapp2);//按单位统计
|
|
|
|
+ }
|
|
|
|
+ rstMap.put("list3",list22);
|
|
|
|
+ rstMap.put("desc3",descMap3.get("desc3"));
|
|
|
|
+ //***********************************************12398受理情况-暂无********************************************//
|
|
|
|
+ //***********************************************客户常态走访情况-暂无********************************************//
|
|
|
|
+ //***********************************************95598业务处理满意度********************************************//
|
|
|
|
+ List<Map<String,String>> mydList = db.getMybatisMapper(IZb95598ReportMapper.class).selectMydgdk(mm);
|
|
|
|
+ Map<String,String> temp6;
|
|
|
|
+ Map<String,String> tempDesc6 = new HashMap<>();
|
|
|
|
+ String tempOrz = "";
|
|
|
|
+ if(mydList != null){
|
|
|
|
+ for (int i = 0; i < indexList6.size(); i++) {
|
|
|
|
+ temp6 = indexList6.get(i);
|
|
|
|
+ tempOrz = temp6.get("ORZ_ID");
|
|
|
|
+ if(MAP.containsKey(tempOrz)){
|
|
|
|
+ indexList6.remove(i);
|
|
|
|
+ i --;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ Util95598zb.operateMydData(temp6,mydList,unitMapp,gdMapp);
|
|
|
|
+ }
|
|
|
|
+ //追加合计行
|
|
|
|
+ Map<String,String> mapHjMyd = new HashMap<>();
|
|
|
|
+ Map<String,String> mapHjMydTemp;
|
|
|
|
+ for (int j = 0; j < indexList6.size(); j++) {
|
|
|
|
+ mapHjMydTemp = indexList6.get(j);
|
|
|
|
+ mapHjMyd.put("ORZ_NAME","合计");
|
|
|
|
+ mapHjMyd.put("BDWHZ",ArithUtils.addToInt(mapHjMydTemp.get("BDWHZ"),mapHjMyd.get("BDWHZ"))+"");
|
|
|
|
+ mapHjMyd.put("CPGDS",ArithUtils.add(mapHjMydTemp.get("CPGDS"),mapHjMyd.get("CPGDS"))+"");
|
|
|
|
+ mapHjMyd.put("QXLZB",ArithUtils.add(mapHjMydTemp.get("QXMYS"),mapHjMyd.get("QXLZB")) + "");
|
|
|
|
+ mapHjMyd.put("FQXLZB",ArithUtils.add(StringUtil.ObjectToString(mapHjMydTemp.get("FQXLSL")),StringUtil.ObjectToString(mapHjMyd.get("FQXLSL"))) + "");
|
|
|
|
+ mapHjMyd.put("CPLHJ",ArithUtils.div(ArithUtils.mul(mapHjMyd.get("CPGDS"),"100"),mapHjMyd.get("BDWHZ")) + "%");
|
|
|
|
+ mapHjMyd.put("BDWBMYHZ",ArithUtils.add(StringUtil.ObjectToString(mapHjMydTemp.get("BDWBMYHZ")),StringUtil.ObjectToString(mapHjMyd.get("BDWBMYHZ"))) + "");
|
|
|
|
+
|
|
|
|
+ mapHjMyd.put("QXMYS",ArithUtils.add(StringUtil.ObjectToString(mapHjMydTemp.get("QXMYS")),StringUtil.ObjectToString(mapHjMyd.get("QXMYS"))) + "");
|
|
|
|
+ mapHjMyd.put("QXBMYS",ArithUtils.add(StringUtil.ObjectToString(mapHjMydTemp.get("QXBMYS")),StringUtil.ObjectToString(mapHjMyd.get("QXBMYS"))) + "");
|
|
|
|
+ mapHjMyd.put("FQXMYS",ArithUtils.add(StringUtil.ObjectToString(mapHjMydTemp.get("FQXMYS")),StringUtil.ObjectToString(mapHjMyd.get("FQXMYS"))) + "");
|
|
|
|
+ mapHjMyd.put("FQXBMYS",ArithUtils.add(StringUtil.ObjectToString(mapHjMydTemp.get("FQXBMYS")),StringUtil.ObjectToString(mapHjMyd.get("FQXBMYS"))) + "");
|
|
|
|
+
|
|
|
|
+ mapHjMyd.put("QXLMYD",ArithUtils.div(ArithUtils.mul(mapHjMyd.get("QXMYS"),100),ArithUtils.add(mapHjMyd.get("QXMYS"),mapHjMyd.get("QXBMYS")))+"");
|
|
|
|
+ mapHjMyd.put("FQXLMYD",ArithUtils.div(ArithUtils.mul(mapHjMyd.get("FQXMYS"),100),ArithUtils.add(mapHjMyd.get("QXMYS"),mapHjMyd.get("QXBMYS")))+"");
|
|
|
|
+ mapHjMyd.put("BDWBMYHZHJ",ArithUtils.div(ArithUtils.mul(ArithUtils.add(mapHjMyd.get("QXMYS"),mapHjMyd.get("FQXMYS")),100),mapHjMyd.get("CPGDS")) + "%");
|
|
|
|
+ }
|
|
|
|
+ indexList6.add(mapHjMyd);
|
|
|
|
+ //描述信息-满意度
|
|
|
|
+ Util95598zb.operateYjDescData(descMap3,list22,null,unitMapp,gdMapp2);//按单位统计
|
|
}
|
|
}
|
|
|
|
+ rstMap.put("list6",indexList6);
|
|
return rstMap;
|
|
return rstMap;
|
|
}
|
|
}
|
|
|
|
|