0a90e7d054fd5cfebe55f15d5ad714de61341054.svn-base 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. package cn.com.goldenwater.dcproj.utils;
  2. import cn.com.goldenwater.dcproj.constValue.AdCodeLabel;
  3. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  4. import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto;
  5. import cn.com.goldenwater.dcproj.model.BisInspPblm;
  6. import cn.com.goldenwater.dcproj.model.BisZhejiangCheckPlan;
  7. import cn.com.goldenwater.dcproj.model.KeyRegPblm;
  8. import cn.com.goldenwater.dcproj.utils.expExcel.ExcelExport;
  9. import cn.com.goldenwater.dcproj.utils.expExcel.ExportAbstract;
  10. import cn.com.goldenwater.target.CheckException;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  13. import javax.servlet.http.HttpServletResponse;
  14. import java.text.SimpleDateFormat;
  15. import java.util.*;
  16. public class InspPblmUtils {
  17. public static String Subordinate(String AD_CODE) {
  18. String start = "^";
  19. if ("000000000000".equals(AD_CODE) || "ROOT".equals(AD_CODE) || "".equals(AD_CODE)) {
  20. AD_CODE = start;
  21. } else {
  22. if (AD_CODE.length() == 12) {
  23. String sub = AD_CODE.substring(2, 12);
  24. if ("0000000000".equals(sub)) {
  25. AD_CODE = AD_CODE.substring(0, 2);
  26. } else {
  27. String sub1 = AD_CODE.substring(4, 12);
  28. if ("00000000".equals(sub1)) {
  29. AD_CODE = AD_CODE.substring(0, 4);
  30. } else {
  31. String sub2 = AD_CODE.substring(6, 12);
  32. if ("000000".equals(sub2)) {
  33. AD_CODE = AD_CODE.substring(0, 6);
  34. } else {
  35. String sub3 = AD_CODE.substring(9, 12);
  36. if ("000".equals(sub3)) {
  37. AD_CODE = AD_CODE.substring(0, 9);
  38. }
  39. }
  40. }
  41. }
  42. }
  43. }
  44. return AD_CODE;
  45. }
  46. public static String plbmCateDesc(String pblmCate) {
  47. if ("0".equals(pblmCate)) {
  48. return "一般";
  49. }
  50. if ("1".equals(pblmCate)) {
  51. return "较重";
  52. }
  53. if ("2".equals(pblmCate)) {
  54. return "严重";
  55. }
  56. if ("3".equals(pblmCate)) {
  57. return "特别严重";
  58. }
  59. return "";
  60. }
  61. public static String getSheetDesc(String type) {
  62. if (type == null) {
  63. return "问题列表";
  64. }
  65. switch (type) {
  66. case "vill":
  67. return "人饮,行政村,水源地问题列表";
  68. case "track":
  69. return "水毁问题列表";
  70. case "grw":
  71. return "地下水问题列表";
  72. case "waga":
  73. return "水闸问题列表";
  74. case "rever":
  75. return "小水库问题列表";
  76. case "jsfl":
  77. return "河湖四乱问题列表";
  78. case "jswa":
  79. return "非法采砂问题列表";
  80. case "prd":
  81. return "水保问题列表";
  82. case "ecofrd":
  83. return "中央环保督查问题列表";
  84. case "wtcrr":
  85. return "节水载体复核问题列表";
  86. case "wtgt":
  87. return "取水许可管理复核问题列表";
  88. case "wrws":
  89. return "水资源管理及节水管理复核问题列表";
  90. default:
  91. return "问题列表";
  92. }
  93. }
  94. public static void ExportNew(HttpServletResponse response, String type, List<KeyRegPblm> pblmList, String name) {
  95. List<Map<String, String>> mapList = new ArrayList<>();
  96. for (BisInspPblm inspPblm : pblmList) {
  97. mapList.add(getMap(inspPblm, type));
  98. }
  99. writeXlsx(type, response, name, mapList);
  100. }
  101. public static void writeXlsxCommon(String type, HttpServletResponse response, String name, List<Map<String, String>> mapList) {
  102. ExportAbstract export = new ExcelExport();
  103. // 设置文件名
  104. export.setFileName(InspPblmUtils.getSheetDesc(type));
  105. // 设置标题
  106. export.setTitle(InspPblmUtils.getSheetDesc(type));
  107. // 设置文件格式为 xls
  108. export.setExport_ps_type(ExportAbstract.XLS);
  109. export.setExport_ps_export(true);
  110. export.setExport_bzip(false);
  111. export.setCols(defaultGetCols(type));
  112. export.setGroupable(false);
  113. export.setLevel(1);
  114. export.setLocksize(0);
  115. try {
  116. export.Export(response);
  117. export.ExportHeadForCustom(response);
  118. export.ContinueExport(mapList);
  119. export.EndExport();
  120. } catch (Exception e) {
  121. e.printStackTrace();
  122. }
  123. }
  124. private static ArrayList<Object> defaultGetCols(String type) {
  125. ArrayList<Object> cols = new ArrayList<>();
  126. String[] rvlksfArr = new String[]{"CITY[省]", "CITY[市]", "COUNTRY[县]", "NAME[督查名称]", "NAME[详细地点]", "DESCRIBE[历史情况描述]"
  127. , "ORGNM[督查组]", "PERSNAME[上报人]", "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]",
  128. "PBLMDESCBZ[问题描述]", "INSPPBLMDESC[详细描述]"};
  129. String[] acclrtArr = new String[]{"CITY[省]", "CITY[市]", "COUNTRY[县]", "NAME[督查名称]", "ORGNM[督查组]", "PERSNAME[上报人]",
  130. "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]", "INSPPBLMDESC[详细描述]",
  131. "PBLMREASON[产生问题原因分析]", "PBLMSGGTN[整改意见]"};
  132. String[] dinas1Arr = new String[]{"ADFULLNAME[所在地(市、区)]", "ORGNM[督查组]", "NAME[项目(活动)名称]", "RVNAME[所在河道名称]",
  133. "RVLOC[河道起止位置或范围]", "PROGRESS[项目(活动)进展情况]", "PBLMDESCBZ[问题]"};
  134. String[] dinas3Arr = new String[]{"CITY[省]", "CITY[市]", "COUNTRY[县]", "NAME[项目(活动)名称]", "ORGNM[督查组]", "PERSNAME[上报人]",
  135. "COLLTIME[督查时间]", "RVNAME[所在河道名称]", "RVLOC[河道起止位置或范围]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]",
  136. "INSPPBLMDESC[详细描述]", "NOTE[备注]"};
  137. String[] fourArr = new String[]{"CITY[省]", "CITY[市]", "COUNTRY[县]", "NAME[督查名称]", "ORGNM[督查组]", "PERSNAME[上报人]",
  138. "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "ATTACHBZ[附件名称]", "SNNUM[序号]", "VILLTYPE[责任单位性质]", "NEWVILLNAME[责任单位名称]",
  139. "INSPPBLMDESC[详细描述]", "PBLMREASON[产生问题原因分析]", "PBLMSGGTN[整改意见]"};
  140. String[] villArr = new String[]{"CITY[省]", "CITY[市]", "COUNTRY[县]", "NAME[督查名称]", "LOC[地址]", "ORGNM[督查组]", "PERSNAME[上报人]",
  141. "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]", "INSPPBLMDESC[详细描述]",
  142. "PBLMREASON[产生问题原因分析]", "PBLMSGGTN[整改意见]"};
  143. String[] defualtArr = new String[]{"CITY[省]", "CITY[市]", "COUNTRY[县]", "NAME[督查名称]", "ORGNM[督查组]", "PERSNAME[上报人]",
  144. "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]", "INSPPBLMDESC[详细描述]",
  145. "PBLMREASON[产生问题原因分析]", "PBLMSGGTN[整改意见]"};
  146. String[] rsvrsdArr = new String[]{"PROVINCE[省]", "CITY[市]", "COUNTRY[县]", "NAME[督查名称]", "ORGNM[督查组]", "PERSNAME[上报人]",
  147. "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]", "PBLMDESCBZ[问题描述]", "INSPPBLMDESC[详细描述]",
  148. "PBLMREASON[产生问题原因分析]", "PBLMSGGTN[整改意见]"};
  149. String[] importArr = new String[]{"PROVINCE[省]", "CITY[市]", "COUNTRY[县]", "OBJNAME[督查对象名称]", "PERSNAME[上报人]",
  150. "COLLTIME[督查时间]", "INSPPBLMNAME[问题类别]", "CHECKPOINT[检查事项]", "INSPPBLMDESC[详细描述]",
  151. "PBLMREASON[产生问题原因分析]", "PBLMSGGTN[整改意见]"};
  152. switch (type) {
  153. case "rvlksf":
  154. cols.addAll(Arrays.asList(rvlksfArr));
  155. break;
  156. case "acclrt":
  157. cols.addAll(Arrays.asList(acclrtArr));
  158. break;
  159. case "dinas-1":
  160. cols.addAll(Arrays.asList(dinas1Arr));
  161. break;
  162. case "dinas-3":
  163. cols.addAll(Arrays.asList(dinas3Arr));
  164. break;
  165. case "79":
  166. cols.addAll(Arrays.asList(villArr));
  167. break;
  168. case "4":
  169. case "7":
  170. case "99":
  171. case "100":
  172. cols.addAll(Arrays.asList(fourArr));
  173. break;
  174. case "115":
  175. cols.addAll(Arrays.asList(rsvrsdArr));
  176. break;
  177. case "116":
  178. cols.addAll(Arrays.asList(rsvrsdArr));
  179. break;
  180. case "999":
  181. cols.addAll(Arrays.asList(importArr));
  182. break;
  183. default:
  184. cols.addAll(Arrays.asList(defualtArr));
  185. }
  186. return cols;
  187. }
  188. private static void writeXlsx(String type, HttpServletResponse response, String name, List<Map<String, String>> mapList) {
  189. ExportAbstract export = new ExcelExport();
  190. export.setFileName(InspPblmUtils.getSheetDesc(type));
  191. export.setExport_ps_export(true);
  192. export.setExport_ps_type(ExportAbstract.XLS);
  193. export.setExport_bzip(false);
  194. export.setTitle(InspPblmUtils.getSheetDesc(type));
  195. ArrayList<Object> cols = new ArrayList<Object>();
  196. cols.add("PROVINCE[省]");
  197. cols.add("CITY[市]");
  198. cols.add("COUNTRY[县]");
  199. cols.add("RSNAME[" + name + "]");
  200. if ("rever".equals(type) || "bigrever".equals(type)) {
  201. cols.add("INSPPBLMNAME[督查水库问题类别]");
  202. }
  203. if ("vill".equals(type)) {
  204. cols.add("INSPPBLMNAME[督查人饮问题类别]");
  205. }
  206. if ("track".equals(type)) {
  207. cols.add("INSPPBLMNAME[督查水毁问题类别]");
  208. }
  209. if ("waga".equals(type)) {
  210. cols.add("INSPPBLMNAME[督查水闸问题类别]");
  211. }
  212. if ("grw".equals(type)) {
  213. cols.add("INSPPBLMNAME[督查地下水问题类别]");
  214. }
  215. if ("keyReg".equals(type)) {
  216. cols.add("INSPPBLMNAME[督查172重点工程问题类别]");
  217. }
  218. if ("wtcrr".equals(type)) {
  219. cols.add("INSPPBLMNAME[节水载体复核问题类别]");
  220. }
  221. if ("wtgt".equals(type)) {
  222. cols.add("INSPPBLMNAME[取水许可管理复核问题类别]");
  223. }
  224. if ("wrws".equals(type)) {
  225. cols.add("INSPPBLMNAME[水资源管理及节水管理复核问题类别]");
  226. }
  227. cols.add("INSPPBLMDESC[问题描述]");
  228. cols.add("IFCASEPBLM[典型]");
  229. if (!"grw".equals(type) || !"vill".equals(type)) {
  230. cols.add("INSPPBLMCATE[程度]");
  231. }
  232. cols.add("PERSNAME[上报人]");
  233. cols.add("ORGNM[所在组]");
  234. if ("rever".equals(type) || "keyReg".equals(type) || "waga".equals(type) || "bigrever".equals(type)) {
  235. cols.add("ATTACH[附件]");
  236. cols.add("SNNUM[附件序号]");
  237. }
  238. cols.add("COLLTIME[上报时间]");
  239. cols.add("HASVEDIO[是否包含多媒体文件]");
  240. export.setCols(cols);
  241. export.setGroupable(false);
  242. export.setLevel(1);
  243. export.setLocksize(0);
  244. try {
  245. export.Export(response);
  246. export.ExportHeadForCustom(response);
  247. export.ContinueExport(mapList);
  248. export.EndExport();
  249. } catch (Exception e) {
  250. e.printStackTrace();
  251. }
  252. }
  253. private static Map<String, String> getMap(BisInspPblm inspPblm, String type) {
  254. Map<String, String> map = new HashMap<>();
  255. map.put("IFCASEPBLM", "1".equals(inspPblm.getIfCasePblm()) ? "是" : "否");
  256. if (!"grw".equals(type) || !"vill".equals(type)) {
  257. map.put("INSPPBLMCATE", InspPblmUtils.plbmCateDesc(inspPblm.getInspPblmCate()));
  258. }
  259. if (StringUtils.isNotBlank(inspPblm.getAdFullName())) {
  260. if (inspPblm.getAdFullName().contains("-")) {
  261. String[] arrays = inspPblm.getAdFullName().split("-");
  262. if (arrays.length == 3) {
  263. map.put("PROVINCE", arrays[0]);
  264. map.put("CITY", arrays[1]);
  265. map.put("COUNTRY", arrays[2]);
  266. }
  267. if (arrays.length == 2) {
  268. map.put("PROVINCE", arrays[0]);
  269. map.put("CITY", arrays[1]);
  270. map.put("COUNTRY", "");
  271. }
  272. } else {
  273. map.put("PROVINCE", "");
  274. map.put("CITY", "");
  275. map.put("COUNTRY", "");
  276. }
  277. }
  278. map.put("RSNAME", inspPblm.getNm());
  279. map.put("INSPPBLMNAME", inspPblm.getInspPblmName());
  280. map.put("INSPPBLMDESC", inspPblm.getInspPblmDesc());
  281. map.put("PERSNAME", inspPblm.getPersName());
  282. map.put("ORGNM", inspPblm.getOrgNm());
  283. if (StringUtils.isNotBlank(inspPblm.getAttach())) {
  284. map.put("ATTACH", inspPblm.getAttach());
  285. if (StringUtils.isNotBlank(inspPblm.getSheet()) && !"1".equals(inspPblm.getSheet())) {
  286. map.put("ATTACH", inspPblm.getAttach() + "-" + inspPblm.getSheet());
  287. }
  288. map.put("SNNUM", inspPblm.getSnNum());
  289. }
  290. map.put("COLLTIME", new SimpleDateFormat("yyyy-MM-dd").format(inspPblm.getCollTime()));
  291. if ("1".equals(inspPblm.getHasVedio())) {
  292. map.put("HASVEDIO", "是");
  293. } else {
  294. map.put("HASVEDIO", "否");
  295. }
  296. return map;
  297. }
  298. public static void Export(HttpServletResponse response, String type, List<BisInspPblm> pblmList, String name) {
  299. List<Map<String, String>> mapList = new ArrayList<>();
  300. for (BisInspPblm inspPblm : pblmList) {
  301. mapList.add(getMap(inspPblm, type));
  302. }
  303. writeXlsx(type, response, name, mapList);
  304. }
  305. public static HSSFWorkbook getWb() {
  306. ExportAbstract export = new ExcelExport();
  307. return export.getWb();
  308. }
  309. public static HttpServletResponse Export_new(HttpServletResponse response) throws Exception {
  310. ExportAbstract export = new ExcelExport();
  311. return export.Export_new(response);
  312. }
  313. public static Map<String, String> getLength(String province) {
  314. Map<String, String> params = new HashMap<>();
  315. String length = "2";
  316. String otherLength = "0000000000";
  317. if (!province.startsWith(AdCodeLabel.START_PARENT_ADCODE)) {
  318. int total = province.length();
  319. int min = province.replace(AdCodeLabel.START_PARENT_ADCODE, "").length();
  320. length = min + "";
  321. StringBuffer buffer = new StringBuffer();
  322. for (int i = 0; i < total - min; i++) {
  323. buffer.append("0");
  324. }
  325. otherLength = buffer.toString();
  326. }
  327. params.put("length", length);
  328. params.put("otherLength", otherLength);
  329. return params;
  330. }
  331. public static String getKeyPblms(List<KeyRegPblm> keypblmList) {
  332. String pblms = "";
  333. for (KeyRegPblm bisInspPblm : keypblmList) {
  334. pblms += bisInspPblm.getPblmId() + ",";
  335. }
  336. pblms = pblms.substring(0, pblms.length() - 1);
  337. pblms = "'" + pblms + "'";
  338. pblms = pblms.replace(",", "','");
  339. return pblms;
  340. }
  341. public static String getPblms(List<BisInspPblm> pblmList) {
  342. String pblms = "";
  343. for (BisInspPblm bisInspPblm : pblmList) {
  344. pblms += bisInspPblm.getPblmId() + ",";
  345. }
  346. pblms = pblms.substring(0, pblms.length() - 1);
  347. pblms = "'" + pblms + "'";
  348. pblms = pblms.replace(",", "','");
  349. return pblms;
  350. }
  351. public static List<BisInspPblm> setPblmList(List<BisInspPblm> pblmList) {
  352. if (pblmList == null || pblmList.isEmpty()) {
  353. throw new CheckException("未查到具体数据,无法导出!!");
  354. }
  355. for (BisInspPblm inspPblm : pblmList) {
  356. inspPblm.setInspPblmsName(inspPblm.getPblmNameBz());
  357. inspPblm.setCheckPoint(inspPblm.getCheckPointBz());
  358. inspPblm.setSnNum(inspPblm.getSnNumBz());
  359. }
  360. return pblmList;
  361. }
  362. public static List<KeyRegPblm> setKeyPblmList(List<KeyRegPblm> pblmList) {
  363. if (pblmList == null || pblmList.isEmpty()) {
  364. throw new CheckException("未查到具体数据,无法导出!!");
  365. }
  366. for (KeyRegPblm inspPblm : pblmList) {
  367. inspPblm.setInspPblmsName(inspPblm.getPblmNameBz());
  368. inspPblm.setCheckPoint(inspPblm.getCheckPointBz());
  369. inspPblm.setSnNum(inspPblm.getSnNumBz());
  370. }
  371. return pblmList;
  372. }
  373. public static String toChinese(String number) {
  374. String resultString = "";
  375. String[] s1 = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
  376. String[] s2 = {"十", "百", "千", "万", "十", "百", "千", "亿", "十", "百"};
  377. int n = number.length();
  378. for (int i = 0; i < n; i++) {
  379. int num = number.charAt(i) - '0';
  380. if (num != 0 && i != n - 1) {
  381. resultString += s1[num] + s2[n - 2 - i];
  382. } else if (num == 0 && i == n - 1) {
  383. resultString += "";
  384. } else {
  385. resultString += s1[num];
  386. }
  387. }
  388. return resultString;
  389. }
  390. public static List<BisInspRgstrDto> changeList(List<BisInspRgstrDto> list) {
  391. if (list.size() > 0) {
  392. for (BisInspRgstrDto rgstrDto : list) {
  393. String adFullName = rgstrDto.getAdName();
  394. if (StringUtils.isBlank(adFullName)) {
  395. continue;
  396. }
  397. if (adFullName.contains(SplitValue.HENG_SPLIT)) {
  398. String[] split = adFullName.split(SplitValue.HENG_SPLIT);
  399. if (split.length == 3) {
  400. rgstrDto.setProvince(split[0]);
  401. rgstrDto.setCity(split[1]);
  402. rgstrDto.setCountry(split[2]);
  403. }
  404. if (split.length == 2) {
  405. rgstrDto.setProvince(split[0]);
  406. rgstrDto.setCity(split[1]);
  407. rgstrDto.setCountry("");
  408. }
  409. } else {
  410. rgstrDto.setProvince(adFullName);
  411. }
  412. }
  413. }
  414. return list;
  415. }
  416. public static void ExportWorkNew(HttpServletResponse response, List<BisZhejiangCheckPlan> bisZhejiangCheckPlanList, String name) {
  417. List<Map<String, String>> mapList = new ArrayList<>();
  418. for (BisZhejiangCheckPlan inspPblm : bisZhejiangCheckPlanList) {
  419. mapList.add(getNewMap(inspPblm));
  420. }
  421. writeNewXlsx(response, name, mapList);
  422. }
  423. private static Map<String, String> getNewMap(BisZhejiangCheckPlan inspPblm) {
  424. Map<String, String> map = new HashMap<>();
  425. map.put("YEAR", inspPblm.getYear());
  426. map.put("MONTH", inspPblm.getMonth());
  427. map.put("WORKNM", inspPblm.getWokerNm());
  428. map.put("WORKNMDESC", inspPblm.getWorkerNmDesc());
  429. map.put("CONTENT", "".equals(inspPblm.getContent()) ? "" : inspPblm.getContent());
  430. if ("1".equals(inspPblm.getCheckWay())) {
  431. map.put("CHECKWAY", "明查");
  432. } else if ("2".equals(inspPblm.getCheckWay())) {
  433. map.put("CHECKWAY", "暗访");
  434. } else {
  435. map.put("CHECKWAY", "明查暗访组合");
  436. }
  437. map.put("ORGNAME", "".equals(inspPblm.getOrgName()) ? "" : inspPblm.getOrgName());
  438. map.put("INSPNAME", "".equals(inspPblm.getInspName()) ? "" : inspPblm.getInspName());
  439. map.put("DEPARTNM", "".equals(inspPblm.getDepartNm()) ? "" : inspPblm.getDepartNm());
  440. map.put("CHECKENDDATE", inspPblm.getCheckEndDate() == null ? "" : inspPblm.getCheckEndDate());
  441. map.put("CHECKSTTDDATE", inspPblm.getCheckSttdDate() == null ? "" : inspPblm.getCheckSttdDate());
  442. map.put("PERSNAME", "".equals(inspPblm.getPersName()) ? "" : inspPblm.getPersName());
  443. if ("1".equals(inspPblm.getState())) {
  444. map.put("STATE", "待审核");
  445. } else if ("2".equals(inspPblm.getState())) {
  446. map.put("STATE", "待反馈");
  447. } else {
  448. map.put("STATE", "已下发");
  449. }
  450. return map;
  451. }
  452. private static void writeNewXlsx(HttpServletResponse response, String name, List<Map<String, String>> mapList) {
  453. ExportAbstract export = new ExcelExport();
  454. export.setFileName(name);
  455. export.setExport_ps_export(true);
  456. export.setExport_ps_type(ExportAbstract.XLS);
  457. export.setExport_bzip(false);
  458. export.setTitle(name);
  459. ArrayList<Object> cols = new ArrayList<Object>();
  460. cols.add("YEAR[年度]");
  461. cols.add("MONTH[月份]");
  462. cols.add("WORKNM[事项名称]");
  463. cols.add("WORKNMDESC[事项详细名称]");
  464. cols.add("CONTENT[检查内容]");
  465. cols.add("CHECKWAY[检查方式]");
  466. cols.add("ORGNAME[机构名称]");
  467. cols.add("INSPNAME[督查类型]");
  468. cols.add("DEPARTNM[责任处室]");
  469. cols.add("CHECKENDDATE[督查结束时间]");
  470. cols.add("CHECKSTTDDATE[督查开始时间]");
  471. cols.add("PERSNAME[操作人]");
  472. cols.add("STATE[事项状态]");
  473. export.setCols(cols);
  474. export.setGroupable(false);
  475. export.setLevel(1);
  476. export.setLocksize(0);
  477. try {
  478. export.Export(response);
  479. export.ExportHeadForCustom(response);
  480. export.ContinueExport(mapList);
  481. export.EndExport();
  482. } catch (Exception e) {
  483. e.printStackTrace();
  484. }
  485. }
  486. private static void writeProblemListXlsx(HttpServletResponse response, String name, List<Map<String, String>> mapList) {
  487. ExportAbstract export = new ExcelExport();
  488. export.setFileName("问题清单");
  489. export.setTitle("问题清单");
  490. export.setExport_ps_export(true);
  491. export.setExport_ps_type(ExportAbstract.XLS);
  492. export.setExport_bzip(false);
  493. ArrayList<Object> cols = new ArrayList<>();
  494. cols.add("CITY[市]");
  495. cols.add("COUNTRY[区县]");
  496. cols.add("RECT_STATE[整改状态]");
  497. cols.add("CHECK_NAME[检查名称]");
  498. cols.add("PROBLEM_TYPE[问题类型]");
  499. cols.add("PROBLEM_VALUE[问题赋值]");
  500. cols.add("PROBLEM_NATURE[问题性质]");
  501. cols.add("PROJECT_NAME[工程或项目名称]");
  502. cols.add("PROJECT_TYPE[工程类型]");
  503. cols.add("CHECK_ITEM[检查项目或问题]");
  504. cols.add("PROBLEM_DESC[问题描述]");
  505. cols.add("PROBLEM_DESCS[问题详细描述]");
  506. cols.add("LEGAL_BASIS[法律依据]");
  507. cols.add("MODIFY_TIME[问题清单修改时限]");
  508. cols.add("RESPONSIBLE_UNIT[责任单位]");
  509. cols.add("CONTACT_PERSON[联系人]");
  510. cols.add("CONTACT_PHONE[联系电话]");
  511. cols.add("RECT_MEASURE[整改措施和整改情况]");
  512. cols.add("PROBLEM_NO[问题编号]");
  513. cols.add("REVIEW_CONCLUSION[复核整改措施复核结论]");
  514. cols.add("NOTE[备注]");
  515. export.setCols(cols);
  516. export.setGroupable(false);
  517. export.setLevel(1);
  518. export.setLocksize(0);
  519. try {
  520. export.Export(response);
  521. export.ExportHeadForCustom(response);
  522. export.ContinueExport(mapList);
  523. export.EndExport();
  524. } catch (Exception e) {
  525. e.printStackTrace();
  526. }
  527. }
  528. public static void ExportProblemList(HttpServletResponse response, List<BisInspPblm> pblmList, String name) {
  529. List<Map<String, String>> mapList = new ArrayList<>();
  530. for (BisInspPblm inspPblm : pblmList) {
  531. mapList.add(getProblemListMap(inspPblm));
  532. }
  533. writeProblemListXlsx(response, name, mapList);
  534. }
  535. private static Map<String, String> getProblemListMap(BisInspPblm inspPblm) {
  536. Map<String, String> map = new HashMap<>();
  537. // 市、区县 - 从adFullName解析
  538. if (StringUtils.isNotBlank(inspPblm.getAdFullName())) {
  539. if (inspPblm.getAdFullName().contains("-")) {
  540. String[] arrays = inspPblm.getAdFullName().split("-");
  541. if (arrays.length >= 2) {
  542. map.put("CITY", arrays[1]); // 市
  543. }
  544. if (arrays.length >= 3) {
  545. map.put("COUNTRY", arrays[2]); // 区县
  546. }
  547. }
  548. }
  549. // 整改状态 - 根据dataStat映射
  550. map.put("RECT_STATE", "");
  551. // String dataStat = inspPblm.getDataStat();
  552. // switch (dataStat) {
  553. // case "0":
  554. // map.put("RECT_STATE", "暂存");
  555. // break;
  556. // case "1":
  557. // map.put("RECT_STATE", "已提交");
  558. // break;
  559. // case "2":
  560. // map.put("RECT_STATE", "已上报");
  561. // break;
  562. // case "3":
  563. // map.put("RECT_STATE", "退回");
  564. // break;
  565. // case "4":
  566. // map.put("RECT_STATE", "审核定稿");
  567. // break;
  568. // case "6":
  569. // map.put("RECT_STATE", "整改通知");
  570. // break;
  571. // case "7":
  572. // map.put("RECT_STATE", "整改反馈");
  573. // break;
  574. // case "8":
  575. // map.put("RECT_STATE", "销号");
  576. // break;
  577. // default:
  578. // map.put("RECT_STATE", "");
  579. // break;
  580. // }
  581. // 检查名称 - 使用nm或objName
  582. map.put("CHECK_NAME", StringUtils.defaultString(inspPblm.getBaseObjType()));
  583. // 问题类型 - 使用inspPblmName
  584. map.put("PROBLEM_TYPE", StringUtils.defaultString(inspPblm.getInspPblmName()));
  585. // 问题赋值 - 使用inspPblmDesc
  586. map.put("PROBLEM_VALUE", "");
  587. // 问题性质 - 使用inspPblmCate
  588. map.put("PROBLEM_NATURE", "");
  589. // 工程或项目名称 - 使用rsName或objName
  590. map.put("PROJECT_NAME", StringUtils.defaultString(inspPblm.getRsName(), inspPblm.getObjName()));
  591. // 工程类型 - 使用rePtype或objType描述
  592. map.put("PROJECT_TYPE", StringUtils.defaultString(inspPblm.getEngrType()));
  593. // 检查项目或问题 - 使用checkPointBz
  594. map.put("CHECK_ITEM", StringUtils.defaultString(inspPblm.getCheckPointBz()));
  595. // 问题描述 - 使用pblmDescBz
  596. map.put("PROBLEM_DESC", StringUtils.defaultString(inspPblm.getPblmDescBz()));
  597. map.put("PROBLEM_DESCS", StringUtils.defaultString(inspPblm.getInspPblmDesc()));
  598. // 法律依据 - 使用relBasis
  599. map.put("LEGAL_BASIS", "");
  600. // 问题清单修改时限 - 使用collTime
  601. map.put("MODIFY_TIME", "");
  602. // 责任单位 - 使用inspPblmOrgName或orgNm
  603. map.put("RESPONSIBLE_UNIT", StringUtils.defaultString(inspPblm.getInspPblmOrgName()));
  604. // 联系人 - 使用persName
  605. map.put("CONTACT_PERSON", "");
  606. // 联系电话 - 从其他字段获取,暂时为空
  607. map.put("CONTACT_PHONE", "");
  608. // 整改措施和整改情况 - 使用note或pblmSggtn
  609. map.put("RECT_MEASURE", StringUtils.defaultString(inspPblm.getPblmSggtn()));
  610. // 问题编号 - 使用pblmId或pblmNo
  611. map.put("PROBLEM_NO", "");
  612. // 复核整改措施复核结论 - 使用reviOpin或reviConc
  613. map.put("REVIEW_CONCLUSION", StringUtils.defaultString(inspPblm.getReviOpin(), inspPblm.getReviConc()));
  614. // 备注 - 使用note
  615. map.put("NOTE", StringUtils.defaultString(inspPblm.getNote()));
  616. return map;
  617. }
  618. }