|
@@ -10,6 +10,8 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
|
|
|
+
|
|
|
import com.minpay.common.constant.Constant;
|
|
|
import com.minpay.common.service.IReportService;
|
|
|
import com.minpay.common.util.CommonUtil;
|
|
@@ -107,6 +109,7 @@ public class ReportServiceImpl implements IReportService {
|
|
|
public Map<String, Object> reportNeedDetail(Map<String, String> param)
|
|
|
throws MINBusinessException, ParseException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
|
|
String range = param.get("range");
|
|
|
+ String monthChoose = param.get("monthChoose");
|
|
|
String timeRange = param.get("timeRange");
|
|
|
String reportTypeId = param.get("reportTypeId");
|
|
|
String firstFileId = param.get("firstFileId");
|
|
@@ -156,10 +159,13 @@ public class ReportServiceImpl implements IReportService {
|
|
|
} else if (Constant.REPORT_TYPE_09.equals(reportTypeId)) {
|
|
|
List<List<String>> resList = reportTypeDDYWZL(ddyFxbId);
|
|
|
resMap.put("resList", resList);
|
|
|
+ // 低电压昨日新增
|
|
|
} else if (Constant.REPORT_TYPE_10.equals(reportTypeId)) {
|
|
|
List<List<String>> resList = reportTypeDDYZRXZ(ddyFxbId);
|
|
|
resMap.put("resList", resList);
|
|
|
- }
|
|
|
+ } else if (Constant.REPORT_TYPE_11.equals(reportTypeId)) {
|
|
|
+ return reportTypeDDYZB(yearChoose, monthChoose, range);
|
|
|
+ }
|
|
|
return resMap;
|
|
|
}
|
|
|
|
|
@@ -2308,4 +2314,277 @@ public class ReportServiceImpl implements IReportService {
|
|
|
|
|
|
return resList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 低电压周报
|
|
|
+ * @param yearChoose 年范围
|
|
|
+ * @param monthChoose 月范围
|
|
|
+ * @param range 周范围
|
|
|
+ * @return
|
|
|
+ * @throws MINBusinessException
|
|
|
+ * @throws ParseException
|
|
|
+ * @throws InvocationTargetException
|
|
|
+ * @throws IllegalArgumentException
|
|
|
+ * @throws IllegalAccessException
|
|
|
+ * @throws SecurityException
|
|
|
+ * @throws NoSuchMethodException
|
|
|
+ */
|
|
|
+ public Map<String, Object> reportTypeDDYZB(String yearChoose, String monthChoose, String range) throws MINBusinessException, ParseException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
|
|
|
+ IMINDataBaseService db = Service.lookup(IMINDataBaseService.class);
|
|
|
+
|
|
|
+ Map<String, Object> resMap = new HashMap<String, Object>();
|
|
|
+ // 全年开始时间和结束时间
|
|
|
+ yearChoose = yearChoose.replaceAll(" ", "");
|
|
|
+ String yearBegin = yearChoose.split("-")[0];
|
|
|
+// String yearEnd = yearChoose.split("-")[1];
|
|
|
+
|
|
|
+ // 当月开始时间和结束时间
|
|
|
+ monthChoose = monthChoose.replaceAll(" ", "");
|
|
|
+ String monthBegin = monthChoose.split("-")[0];
|
|
|
+// String monthEnd = monthChoose.split("-")[1];
|
|
|
+
|
|
|
+ // 本周开始时间和结束时间
|
|
|
+ range = range.replaceAll(" ", "");
|
|
|
+ String weekBegin = range.split("-")[0];
|
|
|
+ String weekEnd = range.split("-")[1];
|
|
|
+
|
|
|
+ // 全年累计考核数
|
|
|
+ Map<String, String> param = new HashMap<String, String>();
|
|
|
+ param.put("beginTime", yearBegin);
|
|
|
+ param.put("endTime", weekEnd);
|
|
|
+ List<Map<String, String>> yearTotal = db.getMybatisMapper(ReportServiceMapper.class).selectDetail03ByDDYRB(param);
|
|
|
+
|
|
|
+ // 本月之前全年考核数
|
|
|
+ param.put("beginTime", yearBegin);
|
|
|
+ param.put("endTime", DateUtil.dateAddDay(monthBegin, -1));
|
|
|
+ List<Map<String, String>> yearTotalNoBenyue = db.getMybatisMapper(ReportServiceMapper.class).selectDetail03ByDDYRB(param);
|
|
|
+
|
|
|
+ // 本周之前全年考核数
|
|
|
+ param.put("beginTime", yearBegin);
|
|
|
+ param.put("endTime", DateUtil.dateAddDay(weekBegin, -1));
|
|
|
+ List<Map<String, String>> yearTotalNoBenzhou = db.getMybatisMapper(ReportServiceMapper.class).selectDetail03ByDDYRB(param);
|
|
|
+
|
|
|
+ // 本月新增考核数
|
|
|
+ int benyueXZ = yearTotal.size() - yearTotalNoBenyue.size();
|
|
|
+ // 本周新增考核数
|
|
|
+ int benzhouXZ = yearTotal.size() - yearTotalNoBenzhou.size();
|
|
|
+
|
|
|
+ // 本周之前用户编号集合
|
|
|
+ List<String> bzzqYhbhList = CommonUtil.getIdFromList(yearTotalNoBenzhou, "yhid");
|
|
|
+
|
|
|
+ // 本周新增明细
|
|
|
+ List<Map<String, String>> bzzxmxDescList = new ArrayList<Map<String, String>>();
|
|
|
+ for (int i = 0; i < yearTotal.size(); i ++) {
|
|
|
+ String yhbh = yearTotal.get(i).get("yhid");
|
|
|
+ String xgsmc = yearTotal.get(i).get("xgsmc");
|
|
|
+ // 本周新增数据
|
|
|
+ if (!bzzqYhbhList.contains(yhbh)) {
|
|
|
+ boolean isContain = false;
|
|
|
+ for (int j = 0; j < bzzxmxDescList.size(); j ++) {
|
|
|
+ String name = bzzxmxDescList.get(j).get("name");
|
|
|
+ String num = bzzxmxDescList.get(j).get("num");
|
|
|
+ // 数量+1
|
|
|
+ if (xgsmc.contains(name)) {
|
|
|
+ isContain = true;
|
|
|
+ bzzxmxDescList.get(j).put("num", CommonUtil.add(num, "1"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isContain) {
|
|
|
+ Map<String, String> descMap = new HashMap<String, String>();
|
|
|
+ if (xgsmc.contains("新泰")) {
|
|
|
+ descMap.put("name", "新泰");
|
|
|
+ } else if (xgsmc.contains("高新")) {
|
|
|
+ descMap.put("name", "高新");
|
|
|
+ } else if (xgsmc.contains("岱岳")) {
|
|
|
+ descMap.put("name", "岱岳");
|
|
|
+ } else if (xgsmc.contains("泰山")) {
|
|
|
+ descMap.put("name", "泰山");
|
|
|
+ } else if (xgsmc.contains("宁阳")) {
|
|
|
+ descMap.put("name", "宁阳");
|
|
|
+ } else if (xgsmc.contains("东平")) {
|
|
|
+ descMap.put("name", "东平");
|
|
|
+ } else if (xgsmc.contains("景区")) {
|
|
|
+ descMap.put("name", "景区");
|
|
|
+ } else if (xgsmc.contains("肥城")) {
|
|
|
+ descMap.put("name", "肥城");
|
|
|
+ }
|
|
|
+ descMap.put("num", "1");
|
|
|
+ bzzxmxDescList.add(descMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String danweiDesc = "";
|
|
|
+
|
|
|
+ for (int j = 0; j < bzzxmxDescList.size(); j ++) {
|
|
|
+ String name = bzzxmxDescList.get(j).get("name");
|
|
|
+ String num = bzzxmxDescList.get(j).get("num");
|
|
|
+ if (j == bzzxmxDescList.size() - 1) {
|
|
|
+ danweiDesc += (name + num + "户。");
|
|
|
+ } else {
|
|
|
+ danweiDesc += (name + num + "户,");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String desc = "本月新增受考核低电压客户${benyueXZ}户,其中本周新增${benzhouXZ}户,按单位分${danweiDesc}";
|
|
|
+
|
|
|
+ Map<String, String> reportMap = new HashMap<String, String>();
|
|
|
+ reportMap.put("benyueXZ", String.valueOf(benyueXZ));
|
|
|
+ reportMap.put("benzhouXZ", String.valueOf(benzhouXZ));
|
|
|
+ reportMap.put("danweiDesc", danweiDesc);
|
|
|
+ resMap.put("reportMap", reportMap);
|
|
|
+ resMap.put("descStr", desc);
|
|
|
+
|
|
|
+ List<List<String>> excelList = new ArrayList<List<String>>();
|
|
|
+
|
|
|
+ // 表头
|
|
|
+ List<String> titleList = new ArrayList<String>();
|
|
|
+ titleList.add("分类\\单位");
|
|
|
+ titleList.add("新泰");
|
|
|
+ titleList.add("高新");
|
|
|
+ titleList.add("岱岳");
|
|
|
+ titleList.add("泰山");
|
|
|
+ titleList.add("宁阳");
|
|
|
+ titleList.add("东平");
|
|
|
+ titleList.add("景区");
|
|
|
+ titleList.add("肥城");
|
|
|
+ titleList.add("合计");
|
|
|
+ excelList.add(titleList);
|
|
|
+
|
|
|
+ // 合计栏
|
|
|
+ List<String> child0 = new ArrayList<String>();
|
|
|
+ child0.add("管理客户总数");
|
|
|
+ child0.add(customerMap.get("xintai"));
|
|
|
+ child0.add(customerMap.get("gaoxin"));
|
|
|
+ child0.add(customerMap.get("daiyue"));
|
|
|
+ child0.add(customerMap.get("taishan"));
|
|
|
+ child0.add(customerMap.get("ningyang"));
|
|
|
+ child0.add(customerMap.get("dongping"));
|
|
|
+ child0.add(customerMap.get("jingqu"));
|
|
|
+ child0.add(customerMap.get("feicheng"));
|
|
|
+ child0.add(customerMap.get("heji"));
|
|
|
+ excelList.add(child0);
|
|
|
+
|
|
|
+ // 本月之前用户编号集合
|
|
|
+ List<String> byzqYhbhList = CommonUtil.getIdFromList(yearTotalNoBenyue, "yhid");
|
|
|
+
|
|
|
+ // 本月新增明细
|
|
|
+ List<Map<String, String>> byzxmxDescList = new ArrayList<Map<String, String>>();
|
|
|
+ Map<String, String> byzxTaian = new HashMap<String, String>();
|
|
|
+ byzxTaian.put("name", "新泰");
|
|
|
+ byzxTaian.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxTaian);
|
|
|
+ Map<String, String> byzxGaoxin = new HashMap<String, String>();
|
|
|
+ byzxGaoxin.put("name", "高新");
|
|
|
+ byzxGaoxin.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxGaoxin);
|
|
|
+ Map<String, String> byzxDaiyue = new HashMap<String, String>();
|
|
|
+ byzxDaiyue.put("name", "岱岳");
|
|
|
+ byzxDaiyue.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxDaiyue);
|
|
|
+ Map<String, String> byzxTaishan = new HashMap<String, String>();
|
|
|
+ byzxTaishan.put("name", "泰山");
|
|
|
+ byzxTaishan.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxTaishan);
|
|
|
+ Map<String, String> byzxNingyang = new HashMap<String, String>();
|
|
|
+ byzxNingyang.put("name", "宁阳");
|
|
|
+ byzxNingyang.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxNingyang);
|
|
|
+ Map<String, String> byzxDongping = new HashMap<String, String>();
|
|
|
+ byzxDongping.put("name", "东平");
|
|
|
+ byzxDongping.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxDongping);
|
|
|
+ Map<String, String> byzxJingqu = new HashMap<String, String>();
|
|
|
+ byzxJingqu.put("name", "景区");
|
|
|
+ byzxJingqu.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxJingqu);
|
|
|
+ Map<String, String> byzxFeicheng = new HashMap<String, String>();
|
|
|
+ byzxFeicheng.put("name", "肥城");
|
|
|
+ byzxFeicheng.put("num", "0");
|
|
|
+ byzxmxDescList.add(byzxFeicheng);
|
|
|
+
|
|
|
+ for (int i = 0; i < yearTotal.size(); i ++) {
|
|
|
+ String yhbh = yearTotal.get(i).get("yhid");
|
|
|
+ String xgsmc = yearTotal.get(i).get("xgsmc");
|
|
|
+ // 本月新增数据
|
|
|
+ if (!byzqYhbhList.contains(yhbh)) {
|
|
|
+
|
|
|
+ for (int j = 0; j < byzxmxDescList.size(); j ++) {
|
|
|
+ String name = byzxmxDescList.get(j).get("name");
|
|
|
+ String num = byzxmxDescList.get(j).get("num");
|
|
|
+ // 数量+1
|
|
|
+ if (xgsmc.contains(name)) {
|
|
|
+ byzxmxDescList.get(j).put("num", CommonUtil.add(num, "1"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> child1 = new ArrayList<String>();
|
|
|
+ child1.add("本月新增受考核客户数");
|
|
|
+ for (int j = 0; j < byzxmxDescList.size(); j ++) {
|
|
|
+ String num = byzxmxDescList.get(j).get("num");
|
|
|
+ child1.add(num);
|
|
|
+ }
|
|
|
+ child1.add(String.valueOf(benyueXZ));
|
|
|
+ excelList.add(child1);
|
|
|
+
|
|
|
+ // 全年数据
|
|
|
+ List<Map<String, String>> quanianDetailList = new ArrayList<Map<String, String>>();
|
|
|
+ Map<String, String> quannianTaian = new HashMap<String, String>();
|
|
|
+ quannianTaian.put("name", "新泰");
|
|
|
+ quannianTaian.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianTaian);
|
|
|
+ Map<String, String> quannianGaoxin = new HashMap<String, String>();
|
|
|
+ quannianGaoxin.put("name", "高新");
|
|
|
+ quannianGaoxin.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianGaoxin);
|
|
|
+ Map<String, String> quannianDaiyue = new HashMap<String, String>();
|
|
|
+ quannianDaiyue.put("name", "岱岳");
|
|
|
+ quannianDaiyue.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianDaiyue);
|
|
|
+ Map<String, String> quannianTaishan = new HashMap<String, String>();
|
|
|
+ quannianTaishan.put("name", "泰山");
|
|
|
+ quannianTaishan.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianTaishan);
|
|
|
+ Map<String, String> quannianNingyang = new HashMap<String, String>();
|
|
|
+ quannianNingyang.put("name", "宁阳");
|
|
|
+ quannianNingyang.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianNingyang);
|
|
|
+ Map<String, String> quannianDongping = new HashMap<String, String>();
|
|
|
+ quannianDongping.put("name", "东平");
|
|
|
+ quannianDongping.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianDongping);
|
|
|
+ Map<String, String> quannianJingqu = new HashMap<String, String>();
|
|
|
+ quannianJingqu.put("name", "景区");
|
|
|
+ quannianJingqu.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianJingqu);
|
|
|
+ Map<String, String> quannianFeicheng = new HashMap<String, String>();
|
|
|
+ quannianFeicheng.put("name", "肥城");
|
|
|
+ quannianFeicheng.put("num", "0");
|
|
|
+ quanianDetailList.add(quannianFeicheng);
|
|
|
+
|
|
|
+ for (int i = 0; i < yearTotal.size(); i ++) {
|
|
|
+ String xgsmc = yearTotal.get(i).get("xgsmc");
|
|
|
+ for (int j = 0; j < quanianDetailList.size(); j ++) {
|
|
|
+ String name = quanianDetailList.get(j).get("name");
|
|
|
+ String num = quanianDetailList.get(j).get("num");
|
|
|
+ // 数量+1
|
|
|
+ if (xgsmc.contains(name)) {
|
|
|
+ quanianDetailList.get(j).put("num", CommonUtil.add(num, "1"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> child2 = new ArrayList<String>();
|
|
|
+ child2.add("全年累计受考核客户数");
|
|
|
+ for (int j = 0; j < quanianDetailList.size(); j ++) {
|
|
|
+ String num = quanianDetailList.get(j).get("num");
|
|
|
+ child2.add(num);
|
|
|
+ }
|
|
|
+ child2.add(String.valueOf(yearTotal.size()));
|
|
|
+ excelList.add(child2);
|
|
|
+
|
|
|
+ resMap.put("excelList", excelList);
|
|
|
+
|
|
|
+ return resMap;
|
|
|
+ }
|
|
|
}
|