123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- package com.minpay.common.util;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * 辅助工具
- */
- public class AuxiliaryTools {
- /**
- * 解析抢修工单描述
- * @param jagd
- * @param param
- * @return
- */
- public static Object getQxgdDesc(JSONArray jagd, Map<String, Object> param) {
- int sum = 0,sumYear = 0,xj = 0,pm = -1,pmYear = -1,cs = 0,maxCs = 0,ddxccss = 0;
- float wh = 0f,whYear = 0f,tempWh = 0f,minWh = 0f,maxWh = 0f;
- String min = "",max = "",maxcs = "",tempDW = "";
- if(jagd != null ){
- JSONObject tempJo;
- for (int i = 0; i < jagd.size(); i++) {
- tempJo = jagd.getJSONObject(i);
- tempDW = tempJo.getString("DFD11_GDDW");
- tempWh = StringUtil.ObjToFloat(tempJo.getString("WH"));
- cs = StringUtil.ObjToInt(tempJo.getString("GDCSZS"));
- if("公司累计".equals(tempDW)){
- sum = StringUtil.ObjToInt(tempJo.getString("GDZS"));//累计
- wh = StringUtil.ObjToFloat(tempJo.getString("WH"));//
- xj = StringUtil.ObjToInt(tempJo.getString("YSXJHD"));
- }else{
- ddxccss = ArithUtils.addToInt(ddxccss,tempJo.getString("DDXCCSS"));//到达现场超时数
- if(tempWh <= minWh){
- minWh = tempWh;
- min = tempDW;
- }
- if(tempWh >= maxWh){
- maxWh = tempWh;
- max = tempDW;
- }
- if(maxCs >= cs){
- maxcs = tempDW;
- }
- }
- }
- }
- StringBuffer descStr = new StringBuffer();
- descStr.append("受理抢修类工单")
- .append(sum)
- .append("件,万户报修率")
- .append(wh)
- .append(",全省排名第")
- .append(pm)
- .append(",")
- .append("报修率较低的为")
- .append(min)
- .append(",较高的为")
- .append(max)
- .append("。抢修到达现场及时率");
- if(sum == 0){
- descStr.append(100);
- }else{
- descStr.append((sum - ddxccss)/sum*100);
- }
- descStr.append("%;");
- if("".equals(maxcs)){
- descStr.append(maxcs)
- .append("超70分钟工单")
- .append(maxCs).append("件。");
- }
- descStr.append("疑似虚假回单")
- .append(xj)
- .append("件。")
- .append("无因报修引发的诉求升级工单。全年累计受理抢修类工单")
- .append(sumYear)
- .append("件,万户报修率")
- .append(whYear)
- .append(",全省排名第")
- .append(pmYear)
- .append("。不涉及电采暖用户");
- return descStr.toString();
- }
- /**
- * 解析抢修工单数据
- * @param list
- * @param unit
- * @param tempjo
- * @return
- */
- public static Map<String, String> getQxgdByParam(List<Map<String, String>> list, String unit, JSONObject tempjo) {
- if(list != null && !list.isEmpty()){
- JSONObject temp;
- String tempUnit = "",gzlx = "";
- JSONObject ddd , ddd2;
- for (int i = 0; i < list.size(); i++) {
- temp = JSONObject.fromObject(list.get(i));
- tempUnit = temp.getString("DFD11_GDDW");
- if(unit.equals(tempUnit)){
- gzlx = temp.getString("GZLX");
- switch (gzlx){
- case "A":
- tempjo.put("GZLS-A",ArithUtils.add(tempjo.getString("GZLS-A"),String.valueOf(1)));
- break;
- case "B":
- tempjo.put("GZLS-B",ArithUtils.add(tempjo.getString("GZLS-B"),String.valueOf(1)));
- break;
- case "C":
- tempjo.put("GZLS-C",ArithUtils.add(tempjo.getString("GZLS-C"),String.valueOf(1)));
- break;
- case "D":
- tempjo.put("GZLS-D",ArithUtils.add(tempjo.getString("GZLS-D"),String.valueOf(1)));
- break;
- default:
- break;
- }
- tempjo.put("GDZS",ArithUtils.addToInt(tempjo.getString("GDZS"),String.valueOf(1)));//工单总数 累加
- tempjo.put("DFD11_QXZSC",ArithUtils.add(tempjo.getString("DFD11_QXZSC"),temp.getString("DFD11_QXZSC")));//抢修总时长累加
- ddd = JSONObject.fromObject(temp.get("DFD11_TJSHSJ"));
- ddd2 = JSONObject.fromObject(temp.get("DFD11_GDSJ"));
- tempjo.put("GDCLSJ",ArithUtils.add(tempjo.getString("GDCLSJ"),StringUtil.ObjectToString(StringUtil.dateCalculate2((Long)ddd.get("time"),(Long)ddd2.get("time")))));
- ddd = JSONObject.fromObject(temp.get("DFD11_SCPFQXDSJ"));
- ddd2 = JSONObject.fromObject(temp.get("DFD11_DWXCSJ"));
- tempjo.put("DDXCSJ",ArithUtils.add(tempjo.getString("DDXCSJ"),StringUtil.ObjectToString(StringUtil.dateCalculate2((Long)ddd.get("time"),(Long)ddd2.get("time")))));
- tempjo.remove("DFD11_TJSHSJ");
- tempjo.remove("DFD11_GDSJ");
- tempjo.remove("DFD11_SCPFQXDSJ");
- tempjo.remove("DFD11_DWXCSJ");
- list.remove(i);
- i--;
- }
- }
- }
- return null;
- }
- /**
- * 获取配变描述信息
- * @param ja3 过载
- * @param ja4 重载
- * @param param
- * @return
- */
- public static List<String> getXlPbgzzDesc(JSONArray ja3, JSONArray ja4, Map<String, Object> param) {
- List<String> list = new ArrayList<String>();
- StringBuffer descStr = new StringBuffer();
- //过载
- String maxGb = StringUtil.ObjectToString(param.get("maxPbName1"));
- String avg = "";
- if(ja3 != null && !ja3.isEmpty()){
- descStr.append("监测发现公变过载")
- .append(ja3.size())
- .append("个,");
- int size = ja3.size();
- Map<String,Object> temp = new HashMap<String,Object>();
- for (int i = 0; i < size; i++) {
- JSONObject jo = ja3.getJSONObject(i);
- String key = jo.getString("KEYSS");
- if(key.equals(maxGb)){
- avg = jo.getString("avg");
- maxGb = jo.getString("DFD9_GBMC");
- }
- String unit = jo.getString("DFD9_UNIT");
- if(temp.containsKey(unit)){
- temp.put(unit,Integer.valueOf(String.valueOf(temp.get(unit))) + 1);
- }else{
- temp.put(unit,1);
- }
- }
- if(!temp.isEmpty()){
- descStr.append("分别为");
- }
- for (Map.Entry<String, Object> entry : temp.entrySet()) {
- descStr.append(entry.getKey())
- .append(entry.getValue())
- .append("个,");
- }
- descStr.append("其中").append(maxGb).append(",");
- descStr.append("过载时长最长" + StringUtil.ObjToFloat(param.get("maxPb1")) + "小时,平均负载率为" + avg + "%。")
- .append("原因为:")
- .append(param.get("reason1"))
- .append("。")
- .append("措施为:")
- .append(param.get("cs1"))
- .append("。");
- descStr.append("不涉及电采暖线路。");
- }else{
- descStr.append("监测发现公变过载。");
- }
- //重载
- StringBuffer descStr2 = new StringBuffer();
- String maxGb2 = StringUtil.ObjectToString(param.get("maxPbName2"));
- String avg2 = "";
- if(ja4 != null && !ja4.isEmpty()){
- descStr2.append("监测发现公变重载")
- .append(ja4.size())
- .append("个,");
- int size = ja4.size();
- Map<String,Object> temp = new HashMap<String,Object>();
- for (int i = 0; i < size; i++) {
- JSONObject jo = ja4.getJSONObject(i);
- String key = jo.getString("KEYSS");
- if(key.equals(maxGb2)){
- avg2 = jo.getString("avg");
- maxGb2 = jo.getString("DFD9_GBMC");
- }
- String unit = jo.getString("DFD9_UNIT");
- if(temp.containsKey(unit)){
- temp.put(unit,Integer.valueOf(String.valueOf(temp.get(unit))) + 1);
- }else{
- temp.put(unit,1);
- }
- }
- if(!temp.isEmpty()){
- descStr2.append("分别为");
- for (Map.Entry<String, Object> entry : temp.entrySet()) {
- descStr2.append(entry.getKey())
- .append(entry.getValue())
- .append("个,");
- }
- }
- descStr2.append("其中").append(maxGb2).append(",");
- descStr2.append("重载时长最长" + StringUtil.ObjToFloat(param.get("maxPb2")) + "小时,平均负载率为" + avg2 + "%。")
- .append("原因为:")
- .append(param.get("reason1"))
- .append("。")
- .append("措施为:")
- .append(param.get("cs1"))
- .append("。");
- descStr2.append("不涉及电采暖线路。");
- }else{
- descStr2.append("监测发现公变过载。");
- }
- list.add(descStr.toString());
- list.add(descStr2.toString());
- return list;
- }
- /**
- * 查找最大值详情
- * @param list
- * @param param
- */
- public static void getMaxPbByParam(List<Map<String, String>> list, Map<String, Object> param) {
- List<Map<String, String>> tempList1 = new ArrayList<Map<String, String>>();
- List<Map<String, String>> tempList2 = new ArrayList<Map<String, String>>();
- if(list != null && !list.isEmpty()){
- for (int i = 0; i < list.size(); i++) {
- Map<String, String> temp = list.get(i);
- Object fzl = temp.get("DFD9_FZL");
- if(StringUtil.ObjToFloat(fzl) > 100){
- tempList1.add(temp);
- }else if(StringUtil.ObjToFloat(fzl) <= 100 && StringUtil.ObjToFloat(fzl) >= 80){
- tempList2.add(temp);
- }
- }
- }
- //获取配变数据最大值
- float maxPb1 = 0f;
- float maxPb2 = 0f;
- //过载
- if(tempList1 != null && !tempList1.isEmpty()){
- int size = tempList1.size();
- for (int i = 0; i < size; i++) {
- Map<String, String> temp = tempList1.get(i);
- float fzl = StringUtil.ObjToFloat(temp.get("DFD9_GZSC"));
- if(maxPb1 < fzl){
- maxPb1 = fzl;
- param.put("gbmc1",temp.get("DFD9_GBMC"));//公变名称
- param.put("reason1",temp.get("DFD9_JTYY"));//具体原因
- param.put("cs1",temp.get("DFD9_JTJJCS"));//具体解决措施
- param.put("maxPbName1",temp.get("KEYSS"));
- }
- }
- param.put("maxPb1",maxPb1);
- }
- //重载
- if(tempList2 != null && !tempList2.isEmpty()){
- int size = tempList2.size();
- for (int i = 0; i < size; i++) {
- Map<String, String> temp = tempList2.get(i);
- float fzl = StringUtil.ObjToFloat(temp.get("DFD9_ZZSC"));
- if(maxPb2 < fzl){
- maxPb2 = fzl;
- param.put("gbmc2",temp.get("DFD9_GBMC"));//公变名称
- param.put("reason2",temp.get("DFD9_JTYY"));//具体原因
- param.put("cs2",temp.get("DFD9_JTJJCS"));//具体解决措施
- param.put("maxPbName2",temp.get("KEYSS"));
- }
- }
- param.put("maxPb2",maxPb2);
- }
- }
- /**
- * 获取线路配变重过载数据
- * @param pbgzzList
- * @param key
- * @return
- */
- public static Map<String, String> getXlPbgzzTjByParam(List<Map<String, String>> pbgzzList, String key, String type) {
- Map<String,String> rstMap = new HashMap<String,String>();
- rstMap.put("sc","");
- rstMap.put("pjfzl","");
- rstMap.put("xlts","");
- if(pbgzzList == null || pbgzzList.isEmpty()){
- return rstMap;
- }else{
- int size = pbgzzList.size();
- float sum = 0f;
- float avg = 0f;
- int index = 0;
- for (int i = 0; i < size; i++) {
- Map<String,String> temp = pbgzzList.get(i);
- Object fzl = temp.get("DFD9_FZL");
- if("1".equals(type) && StringUtil.ObjToFloat(fzl) > 100){//过载
- String tempkey = temp.get("KEYSS");//单位
- if(tempkey.equals(key)){
- sum = ArithUtils.add(String.valueOf(sum),String.valueOf(temp.get("DFD9_GZSC")));
- avg = ArithUtils.add(String.valueOf(avg),String.valueOf(temp.get("DFD9_FZL")));
- index ++;
- }
- }else if("2".equals(type) && StringUtil.ObjToFloat(fzl) <= 100 && StringUtil.ObjToFloat(fzl) >= 80) {//重载
- String tempkey = temp.get("KEYSS");//单位
- if(tempkey.equals(key)){
- sum = ArithUtils.add(String.valueOf(sum),String.valueOf(temp.get("DFD9_ZZSC")));
- avg = ArithUtils.add(String.valueOf(avg),String.valueOf(temp.get("DFD9_FZL")));
- index ++;
- }
- }
- }
- rstMap.put("sc",StringUtil.ObjectToString(sum));
- rstMap.put("pjfzl",StringUtil.ObjectToString(avg));
- rstMap.put("xlts",StringUtil.ObjectToString(index));
- }
- return rstMap;
- }
- /**
- * 获取线路描述信息
- * @param ja 重载
- * @param ja2 过载
- * @param param 附加参数
- * @return
- */
- public static List<String> getXlgzzDesc(JSONArray ja, JSONArray ja2, Map<String, Object> param) {
- String maxXlName = StringUtil.ObjectToString(param.get("maxXlName"));
- List<String> list = new ArrayList<String>();
- StringBuffer rst = new StringBuffer();
- if(ja == null || ja.size() <= 0){
- rst.append("监测未发现线路重载。");
- }else{
- rst.append("监测发现线路重载")
- .append(ja.size() )
- .append("条。");
- Map<String,Object> map = new HashMap<String,Object>();
- String xlmc = "";
- for (int i = 0; i < ja.size(); i++) {
- JSONObject jo = ja.getJSONObject(i);
- String key = StringUtil.ObjectToString(jo.get("DFD10_XGSMC"));//县公司名称
- String keys = StringUtil.ObjectToString(jo.get("KEYSS"));
- if(maxXlName.equals(keys)){
- maxXlName = jo.getString("avg");
- xlmc = jo.getString("DFD10_XLMC");
- }
- if(map.containsKey(key)){
- map.put(key,Integer.valueOf(String.valueOf(map.get(key))) + 1);
- }else{
- map.put(key,1);
- }
- }
- if(!map.isEmpty()){
- rst.append("分别为");
- }
- for (Map.Entry<String, Object> entry : map.entrySet()) {
- rst.append(entry.getKey())
- .append(entry.getValue())
- .append("条,");
- }
- rst.append("其中").append(xlmc).append(",");
- rst.append("重载时长最长" + StringUtil.ObjToFloat(param.get("maxZzsc")) + "小时,平均负载率为" + maxXlName + "%。");
- rst.append("不涉及电采暖线路。");
- }
- //******************************过载***************************************//
- StringBuffer rst2 = new StringBuffer();
- maxXlName = StringUtil.ObjectToString(param.get("maxXlName2"));
- if(ja2 == null || ja2.size() <= 0){
- rst2.append("监测未发现线路过载。");
- }else{
- rst2.append("监测发现线路过载");
- rst2.append(ja2.size() )
- .append("条。");
- Map<String,Object> map = new HashMap<String,Object>();
- String xlmc = "";
- for (int i = 0; i < ja2.size(); i++) {
- JSONObject jo = ja2.getJSONObject(i);
- String key = StringUtil.ObjectToString(jo.get("DFD10_XGSMC"));//县公司名称
- String keys = StringUtil.ObjectToString(jo.get("KEYSS"));
- if(maxXlName.equals(keys)){
- maxXlName = jo.getString("avg");
- xlmc = jo.getString("DFD10_XLMC");
- }
- if(map.containsKey(key)){
- map.put(key,Integer.valueOf(String.valueOf(map.get(key))) + 1);
- }else{
- map.put(key,1);
- }
- }
- if(!map.isEmpty()){
- rst2.append("分别为");
- }
- for (Map.Entry<String, Object> entry : map.entrySet()) {
- rst2.append(entry.getKey())
- .append(entry.getValue())
- .append("条,");
- }
- rst2.append("其中").append(xlmc).append(",");
- rst2.append("过载时长最长" + StringUtil.ObjToFloat(param.get("maxZzsc")) + "小时,平均负载率为" + maxXlName + "%。");
- rst2.append("不涉及电采暖线路。");
- }
- list.add(rst.toString());
- list.add(rst2.toString());
- return list;
- }
- /**
- * 获取线路统计信息
- * @param ddyzlfxbList
- * @param key
- * @return
- */
- public static Map<String, String> getXlgzzTjByParam(List<Map<String, String>> ddyzlfxbList, String key) {
- Map<String,String> map = new HashMap<String,String>();
- if(ddyzlfxbList == null || ddyzlfxbList.isEmpty()){
- map.put("sc","");
- map.put("pjfzl","");
- map.put("xlts","");
- return map;
- }else{
- Map<String,String> temp = new HashMap<String,String>();
- float sum = 0f;
- int index = 0;
- float avg = 0f;
- for (int i = 0; i < ddyzlfxbList.size(); i++) {
- temp = ddyzlfxbList.get(i);
- String tempkey = temp.get("KEYSS");//单位
- if(key.equals(tempkey)){
- sum = ArithUtils.add(String.valueOf(sum),String.valueOf(temp.get("DFD10_GZSC")));
- avg = ArithUtils.add(String.valueOf(avg),String.valueOf(temp.get("DFD10_FZL")));
- index ++;
- }
- }
- map.put("sc",sum + "");
- map.put("pjfzl",avg + "");
- map.put("xlts",index + "");
- }
- return map;
- }
- }
|