DataWareManageAction.java 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423
  1. package com.minpay.reportManage.action;
  2. import java.io.BufferedOutputStream;
  3. import java.io.IOException;
  4. import java.io.OutputStream;
  5. import java.io.UnsupportedEncodingException;
  6. import java.lang.reflect.InvocationTargetException;
  7. import java.net.URLEncoder;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.time.LocalDateTime;
  11. import java.time.format.DateTimeFormatter;
  12. import java.util.*;
  13. import javax.servlet.ServletOutputStream;
  14. import javax.servlet.http.HttpServletResponse;
  15. import com.minpay.common.constant.ReportConstant;
  16. import com.minpay.common.util.*;
  17. import com.minpay.db.table.mapper.*;
  18. import com.minpay.db.table.model.*;
  19. import com.minpay.db.table.own.mapper.IReportBatchMapper;
  20. import com.startup.minpay.frame.data.AbstractMINBean;
  21. import org.apache.commons.fileupload.FileItem;
  22. import org.apache.ibatis.transaction.Transaction;
  23. import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
  24. import com.min.util.DateUtil;
  25. import com.minpay.common.bean.User;
  26. import com.minpay.common.constant.Constant;
  27. import com.minpay.common.format.IFormatService;
  28. import com.minpay.common.service.IDianwangService;
  29. import com.minpay.common.service.IPropertiesService;
  30. import com.minpay.db.table.own.mapper.DataWareManageMapper;
  31. import com.minpay.db.table.own.mapper.SequenceMapper;
  32. import com.startup.minpay.frame.business.IMINAction;
  33. import com.startup.minpay.frame.business.MINHttpServletRequestContext;
  34. import com.startup.minpay.frame.business.res.MINActionResult;
  35. import com.startup.minpay.frame.constant.IMINBusinessConstant;
  36. import com.startup.minpay.frame.constant.IMINTransactionEnum;
  37. import com.startup.minpay.frame.exception.MINBusinessException;
  38. import com.startup.minpay.frame.jdbc.MINRowBounds;
  39. import com.startup.minpay.frame.service.base.IMINDataBaseService;
  40. import com.startup.minpay.frame.service.base.Service;
  41. import com.startup.minpay.frame.session.MINSession;
  42. import com.startup.minpay.frame.target.MINAction;
  43. import com.startup.minpay.frame.target.MINComponent;
  44. import com.startup.minpay.frame.target.MINParam;
  45. import net.sf.json.JSONArray;
  46. import org.apache.poi.ss.formula.functions.T;
  47. import org.springframework.transaction.annotation.Transactional;
  48. @MINComponent
  49. public class DataWareManageAction implements IMINAction {
  50. private IMINDataBaseService db;
  51. /** 原始数据查询 */
  52. public final static String FILE_INF_QUERY = "fileInfQuery";
  53. /** 原始文件上传 */
  54. public final static String FILE_INF_UPLOAD = "fileInfUpload";
  55. /** 原始文件下载 */
  56. public final static String FILE_INF_DOWNLOAD = "fileInfDownload";
  57. /** 原始文件删除 */
  58. public final static String FILE_INF_DELETE = "fileInfDelete";
  59. /** 原始文件详情 */
  60. public final static String FILE_INF_DETAIL = "fileInfDetail";
  61. /** 原始数据下载 */
  62. public final static String FILE_DATA_DOWNLOAD = "fileDataDownload";
  63. /**
  64. * 原始数据查询
  65. * @param page
  66. * @param limit
  67. * @param date
  68. * @param fileName
  69. * @return
  70. * @throws MINBusinessException
  71. * @throws InvocationTargetException
  72. * @throws IllegalArgumentException
  73. * @throws IllegalAccessException
  74. * @throws SecurityException
  75. * @throws NoSuchMethodException
  76. * @throws InstantiationException
  77. */
  78. @MINAction(value = FILE_INF_QUERY)
  79. public MINActionResult fileInfQuery(
  80. @MINParam(key = "page", defaultValue = "1") int page,
  81. @MINParam(key = "limit", defaultValue = "10") int limit,
  82. @MINParam(key = "date") String date,
  83. @MINParam(key = "fileName") String fileName,
  84. @MINParam(key = "notInData") String notInData,
  85. @MINParam(key = "reportType") String reportType,
  86. @MINParam(key = "type") String type,
  87. MINSession session
  88. ) throws MINBusinessException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
  89. MINActionResult res = new MINActionResult();
  90. db = Service.lookup(IMINDataBaseService.class);
  91. //分页
  92. MINRowBounds rows = new MINRowBounds(page, limit);
  93. rows.setSeparateSql(true);
  94. Map<String, Object> param = new HashMap<String, Object>();
  95. param.put("date", StringUtil.ObjectToString(date).replaceAll("-",""));
  96. param.put("fileName", fileName);
  97. param.put("type", type);
  98. if (!CommonUtil.isEmpty(notInData)) {
  99. JSONArray notInArray = JSONArray.fromObject(notInData);
  100. if (notInArray.size() != 0) {
  101. param.put("notInArray", notInArray);
  102. }
  103. }
  104. // 查询生成报表所需的文件类型
  105. if (!CommonUtil.isEmpty(reportType)) {
  106. DwReporttypeFiletypeRelExample reporttypeFiletypeRelExample = new DwReporttypeFiletypeRelExample();
  107. reporttypeFiletypeRelExample.createCriteria().andReporttypeIdEqualTo(reportType);
  108. List<DwReporttypeFiletypeRelKey> selectByExample = db.selectByExample(DwReporttypeFiletypeRelMapper.class, reporttypeFiletypeRelExample);
  109. if (selectByExample.size() > 0) {
  110. param.put("fileTypeArray", selectByExample);
  111. }
  112. }
  113. User user = session.getUser();
  114. String roleId = user.getRoleId();
  115. // 非系统管理员
  116. if (!Constant.ROLE_ID.equals(roleId)) {
  117. param.put("branchId", user.getBranchid());
  118. }
  119. List<Map<String, String>> list = db.getMybatisMapper(DataWareManageMapper.class)
  120. .selectFileInf(param, rows);
  121. if (list.size() == 0) {
  122. return res;
  123. }
  124. List<String> creatUserIdList = CommonUtil.getIdFromList(list, "creatUser");
  125. ImUserExample userExam = new ImUserExample();
  126. userExam.createCriteria().andIdIn(creatUserIdList);
  127. List<ImUser> userList = db.selectByExample(ImUserMapper.class, userExam);
  128. String[] str1 = {"creatUser"};
  129. String[] str2 = {"id"};
  130. String[] str3 = {"name"};
  131. String[] str4 = {"userName"};
  132. list = ListUtil.mergeList(list, userList, str1, str2, str3, str4);
  133. list = Service.lookup(IFormatService.class).formatDate(list, "uploadDate");
  134. // 设置返回值
  135. res.set(IMINBusinessConstant.F_PAGING_LAY, list);
  136. res.set(IMINBusinessConstant.F_PAGING_COUNT, rows.getCount());
  137. return res;
  138. }
  139. /**
  140. * 上传原始文件
  141. * @param request
  142. * @param fileType
  143. * @param chongfuFlag 重复上传标志 true:重复数据确认上传
  144. * @param session
  145. * @return
  146. * @throws MINBusinessException
  147. * @throws InvalidFormatException
  148. * @throws IOException
  149. */
  150. @MINAction(value = FILE_INF_UPLOAD, transaction = IMINTransactionEnum.CMT)
  151. public MINActionResult fileInfUpload(
  152. MINHttpServletRequestContext request,
  153. @MINParam(key = "fileType") String fileType,
  154. @MINParam(key = "chongfuFlag") boolean chongfuFlag,
  155. MINSession session
  156. ) throws MINBusinessException, InvalidFormatException, IOException, ParseException {
  157. MINActionResult res = new MINActionResult();
  158. db = Service.lookup(IMINDataBaseService.class);
  159. // 获取文件
  160. FileItem fileItem = request.getFile("file");
  161. String fileName = fileItem.getName();
  162. if (!fileName.endsWith(".xlsx") && !fileName.endsWith(".xls")) {
  163. throw new MINBusinessException("文件格式错误!");
  164. }
  165. String fileId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_INF_NO");
  166. List<Map<String,String>> list = null;
  167. // 台区停电
  168. if (Constant.FILE_DETAIL_TYPE_00.equals(fileType)) {
  169. // 获取表格信息
  170. String[] titleKey = new String[]{"number","addressNum","addressName","date", "area","comonpanyName","terminalName","terminalNum","terminalAddress","startTime","endTime"};
  171. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  172. if (list.size() == 0) {
  173. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  174. }
  175. // 详情数据存入数据库
  176. for (Map<String,String> excelMap : list) {
  177. // 日期
  178. String date = excelMap.get("date").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "").substring(0,8);
  179. String startTime = excelMap.get("startTime").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
  180. String endTime = excelMap.get("endTime").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
  181. // 页面确认有重复数据,且点击确认上传,不再判断数据库是否有数据
  182. if (!chongfuFlag) {
  183. // 验证是否有重复数据
  184. DwFileDetail00Example fileDetail00Example = new DwFileDetail00Example();
  185. fileDetail00Example.createCriteria().andAddressNumEqualTo(excelMap.get("addressNum"))
  186. .andAddressNameEqualTo(excelMap.get("addressName"))
  187. .andDateEqualTo(date)
  188. .andAreaEqualTo(excelMap.get("area"))
  189. .andComonpanyNameEqualTo(excelMap.get("comonpanyName"))
  190. .andTerminalNameEqualTo(excelMap.get("terminalName"))
  191. .andTerminalNumEqualTo(excelMap.get("terminalNum"))
  192. .andTerminalAddressEqualTo(excelMap.get("terminalAddress"))
  193. .andStartTimeEqualTo(startTime)
  194. .andEndTimeEqualTo(endTime);
  195. List<DwFileDetail00> selectByExample = db.selectByExample(DwFileDetail00Mapper.class, fileDetail00Example);
  196. if (selectByExample.size() != 0) {
  197. throw new MINBusinessException("chongfu|" + selectByExample.get(0).getAddressNum() + "|" + selectByExample.get(0).getAddressName() + "|" + selectByExample.get(0).getDate());
  198. }
  199. }
  200. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_00_NO");
  201. DwFileDetail00 fileDetail00 = new DwFileDetail00();
  202. fileDetail00.setId(fileDetailId);
  203. fileDetail00.setNumber(excelMap.get("number"));
  204. fileDetail00.setAddressNum(excelMap.get("addressNum"));
  205. fileDetail00.setAddressName(excelMap.get("addressName"));
  206. fileDetail00.setDate(date);
  207. fileDetail00.setArea(excelMap.get("area"));
  208. fileDetail00.setComonpanyName(excelMap.get("comonpanyName"));
  209. fileDetail00.setTerminalName(excelMap.get("terminalName"));
  210. fileDetail00.setTerminalNum(excelMap.get("terminalNum"));
  211. fileDetail00.setTerminalAddress(excelMap.get("terminalAddress"));
  212. fileDetail00.setStartTime(startTime);
  213. fileDetail00.setEndTime(endTime);
  214. fileDetail00.setFileId(fileId);
  215. db.insertSelective(DwFileDetail00Mapper.class, fileDetail00);
  216. }
  217. // 终端投托运
  218. } else if (Constant.FILE_DETAIL_TYPE_01.equals(fileType)) {
  219. String[] titleKey = new String[]{"id","tname","cmode","value", "facname","type","fdid","yxstatus","tytime"};
  220. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  221. if (list.size() == 0) {
  222. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  223. }
  224. // 详情数据存入数据库
  225. for (Map<String,String> excelMap : list) {
  226. DwFileDetail01Example dwFileDetail01 = new DwFileDetail01Example();
  227. dwFileDetail01.createCriteria().andExcelIdEqualTo(excelMap.get("id"))
  228. .andExcelTnameEqualTo(excelMap.get("tname"))
  229. .andExcelCmodeEqualTo(excelMap.get("cmode"))
  230. .andExcelValueEqualTo(excelMap.get("value"))
  231. .andExcelFacnameEqualTo(excelMap.get("facname"))
  232. .andExcelTypeEqualTo(excelMap.get("type"))
  233. .andExcelFdidEqualTo(excelMap.get("fdid"))
  234. .andExcelYxstatusEqualTo(excelMap.get("yxstatus"));
  235. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_01_NO");
  236. DwFileDetail01 fileDetail01 = new DwFileDetail01();
  237. fileDetail01.setId(fileDetailId);
  238. fileDetail01.setExcelId(excelMap.get("id"));
  239. fileDetail01.setExcelTname(excelMap.get("tname"));
  240. fileDetail01.setExcelCmode(excelMap.get("cmode"));
  241. fileDetail01.setExcelValue(excelMap.get("value"));
  242. fileDetail01.setExcelFacname(excelMap.get("facname"));
  243. fileDetail01.setExcelType(excelMap.get("type"));
  244. fileDetail01.setExcelFdid(excelMap.get("fdid"));
  245. fileDetail01.setExcelYxstatus(excelMap.get("yxstatus"));
  246. String tytime = excelMap.get("tytime");
  247. tytime = tytime.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "");
  248. if (!CommonUtil.isEmpty(tytime) && tytime.length() != 14) {
  249. throw new MINBusinessException(excelMap.get("tytime") + "--时间格式错误");
  250. }
  251. fileDetail01.setExcelTytime(tytime);
  252. fileDetail01.setFileId(fileId);
  253. db.insertSelective(DwFileDetail01Mapper.class, fileDetail01);
  254. }
  255. // FA动作
  256. } else if (Constant.FILE_DETAIL_TYPE_02.equals(fileType)) {
  257. String[] titleKey = new String[]{"no","beginTime","endTime","gdlx", "cxbdz","xlmc","xllx","qdfa","gzqjpd","gzqhdhf","gzgl"};
  258. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  259. if (list.size() == 0) {
  260. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  261. }
  262. // 详情数据存入数据库
  263. for (Map<String,String> excelMap : list) {
  264. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_02_NO");
  265. DwFileDetail02 fileDetail02 = new DwFileDetail02();
  266. fileDetail02.setId(fileDetailId);
  267. fileDetail02.setNo(excelMap.get("no"));
  268. fileDetail02.setBeginTime(excelMap.get("beginTime"));
  269. fileDetail02.setEndTime(excelMap.get("endTime"));
  270. fileDetail02.setGdlx(excelMap.get("gdlx"));
  271. fileDetail02.setCxbdz(excelMap.get("cxbdz"));
  272. fileDetail02.setXlmc(excelMap.get("xlmc"));
  273. fileDetail02.setXllx(excelMap.get("xllx"));
  274. fileDetail02.setQdfa(excelMap.get("qdfa"));
  275. fileDetail02.setGzqjpd(excelMap.get("gzqjpd"));
  276. fileDetail02.setGzqhdhf(excelMap.get("gzqhdhf"));
  277. fileDetail02.setGzgl(excelMap.get("gzgl"));
  278. fileDetail02.setFileId(fileId);
  279. db.insertSelective(DwFileDetail02Mapper.class, fileDetail02);
  280. }
  281. //低电压
  282. } else if(Constant.FILE_DETAIL_TYPE_03.equals(fileType)) {
  283. String[] titleKey = new String[]{"no","sgsmc","xgsmc","bdzmc","xlmc","tqid","byqmc","yhgldw1","yhid","yhmc","yhgldw2","dymax","dymin","dyhgl","csxl","cxxl","dysc","gdlx","ljts","sjrq","gddw"};
  284. list = FilesUtil.readExecleasy(fileItem, titleKey, 3);
  285. if (list.size() == 0) {
  286. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  287. }
  288. // 详情数据存入数据库
  289. for (Map<String,String> excelMap : list) {
  290. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_03_NO");
  291. String sjrq = excelMap.get("sjrq");
  292. try {
  293. if(sjrq.length()>10){
  294. sjrq = sjrq.substring(0, 8);
  295. }else{
  296. SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
  297. Date date = sdf.parse(sjrq);
  298. SimpleDateFormat todf = new SimpleDateFormat("yyyyMMdd");// 设置日期格式
  299. sjrq = todf.format(date);
  300. }
  301. } catch (Exception ex) {
  302. }
  303. DwFileDetail03 fileDetail03 = new DwFileDetail03();
  304. fileDetail03.setId(fileDetailId);
  305. fileDetail03.setNo(excelMap.get("no"));
  306. fileDetail03.setSgsmc(excelMap.get("sgsmc"));
  307. fileDetail03.setXgsmc(excelMap.get("xgsmc"));
  308. fileDetail03.setBdzmc(excelMap.get("bdzmc"));
  309. fileDetail03.setXlmc(excelMap.get("xlmc"));
  310. fileDetail03.setTqid(excelMap.get("tqid"));
  311. fileDetail03.setByqmc(excelMap.get("byqmc"));
  312. fileDetail03.setYhgldw1(excelMap.get("yhgldw1"));
  313. fileDetail03.setYhid(excelMap.get("yhid"));
  314. fileDetail03.setYhmc(excelMap.get("yhmc"));
  315. fileDetail03.setYhgldw2(excelMap.get("yhgldw2"));
  316. fileDetail03.setDymax(excelMap.get("dymax"));
  317. fileDetail03.setDymin(excelMap.get("dymin"));
  318. fileDetail03.setDyhgl(excelMap.get("dyhgl"));
  319. fileDetail03.setCsxl(excelMap.get("csxl"));
  320. fileDetail03.setCxxl(excelMap.get("cxxl"));
  321. fileDetail03.setDysc(excelMap.get("dysc"));
  322. fileDetail03.setGdlx(excelMap.get("gdlx"));
  323. fileDetail03.setLjts(excelMap.get("ljts"));
  324. fileDetail03.setSjrq(sjrq);
  325. fileDetail03.setGddw(excelMap.get("gddw"));
  326. fileDetail03.setFileId(fileId);
  327. db.insertSelective(DwFileDetail03Mapper.class, fileDetail03);
  328. }
  329. //过电压
  330. } else if(Constant.FILE_DETAIL_TYPE_04.equals(fileType)) {
  331. String[] titleKey = new String[]{"no","sgsmc","xgsmc","bdzmc","xlmc","tqid","byqmc","yhgldw1","yhid","yhmc","yhgldw2","dymax","dymin","dyhgl","csxl","cxxl","gdysc","gdlx","ljts","gddw","sjrq"};
  332. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  333. if (list.size() == 0) {
  334. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  335. }
  336. // 详情数据存入数据库
  337. for (Map<String,String> excelMap : list) {
  338. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_04_NO");
  339. String sjrq = excelMap.get("sjrq");
  340. try {
  341. if(sjrq.length()>10){
  342. sjrq = sjrq.substring(0, 8);
  343. }else{
  344. SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
  345. Date date = sdf.parse(sjrq);
  346. SimpleDateFormat todf = new SimpleDateFormat("yyyyMMdd");// 设置日期格式
  347. sjrq = todf.format(date);
  348. }
  349. } catch (Exception ex) {
  350. }
  351. // DateFormat formater = new SimpleDateFormat("yyyyMMdd");
  352. // String sjrq = formater.format(excelMap.get("sjrq"));
  353. DwFileDetail04 fileDetail04 = new DwFileDetail04();
  354. fileDetail04.setId(fileDetailId);
  355. fileDetail04.setNo(excelMap.get("no"));
  356. fileDetail04.setSgsmc(excelMap.get("sgsmc"));
  357. fileDetail04.setXgsmc(excelMap.get("xgsmc"));
  358. fileDetail04.setBdzmc(excelMap.get("bdzmc"));
  359. fileDetail04.setXlmc(excelMap.get("xlmc"));
  360. fileDetail04.setTqid(excelMap.get("tqid"));
  361. fileDetail04.setByqmc(excelMap.get("byqmc"));
  362. fileDetail04.setYhgldw1(excelMap.get("yhgldw1"));
  363. fileDetail04.setYhid(excelMap.get("yhid"));
  364. fileDetail04.setYhmc(excelMap.get("yhmc"));
  365. fileDetail04.setYhgldw2(excelMap.get("yhgldw2"));
  366. fileDetail04.setDymax(excelMap.get("dymax"));
  367. fileDetail04.setDymin(excelMap.get("dymin"));
  368. fileDetail04.setDyhgl(excelMap.get("dyhgl"));
  369. fileDetail04.setCsxl(excelMap.get("csxl"));
  370. fileDetail04.setCxxl(excelMap.get("cxxl"));
  371. fileDetail04.setGdysc(excelMap.get("gdysc"));
  372. fileDetail04.setGdlx(excelMap.get("gdlx"));
  373. fileDetail04.setLjts(excelMap.get("ljts"));
  374. fileDetail04.setSjrq(sjrq);
  375. fileDetail04.setGddw(excelMap.get("gddw"));
  376. fileDetail04.setFileId(fileId);
  377. db.insertSelective(DwFileDetail04Mapper.class, fileDetail04);
  378. }
  379. // 95598工单原始数据上传
  380. } else if(Constant.FILE_DETAIL_TYPE_05.equals(fileType)) {
  381. String[] titleKey = new String[]{"NO","GDBH","GWGDBH","ZT","YWLX","DQBZ","SLRY","SLSJ","SLLR","YHBH","YHMC","LXDZ","LXDH","HFNR","YJFL","EJFL",
  382. "YWZL","SJDW","GDDW","CBD","CLJG","CLDW","CLBM","HDS","BZ","GLGD","WTYYFL","GDFJ","ZRBM","GDSJ","GQSJ","GQYY","FWQD","SJHTZRYY"};
  383. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  384. if (list.size() == 0) {
  385. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  386. }
  387. // 详情数据存入数据库
  388. for (Map<String,String> excelMap : list) {
  389. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_05_NO");
  390. DwFileDetail05 fileDetail05 = new DwFileDetail05();
  391. fileDetail05.setId(fileDetailId);
  392. fileDetail05.setNo(excelMap.get("NO"));
  393. fileDetail05.setGdbh(excelMap.get("GDBH"));
  394. fileDetail05.setGwgdbh(excelMap.get("GWGDBH"));
  395. fileDetail05.setZt(excelMap.get("ZT"));
  396. fileDetail05.setYwlx(excelMap.get("YWLX"));
  397. fileDetail05.setDqbz(excelMap.get("DQBZ"));
  398. fileDetail05.setSlry(excelMap.get("SLRY"));
  399. fileDetail05.setSlsj(excelMap.get("SLSJ"));
  400. fileDetail05.setSllr(excelMap.get("SLLR"));
  401. fileDetail05.setYhbh(excelMap.get("YHBH"));
  402. fileDetail05.setYhmc(excelMap.get("YHMC"));
  403. fileDetail05.setLxdz(excelMap.get("LXDZ"));
  404. fileDetail05.setLxdh(excelMap.get("LXDH"));
  405. fileDetail05.setHfnr(excelMap.get("HFNR"));
  406. fileDetail05.setYjfl(excelMap.get("YJFL"));
  407. fileDetail05.setEjfl(excelMap.get("EJFL"));
  408. fileDetail05.setYwzl(excelMap.get("YWZL"));
  409. fileDetail05.setSjdw(excelMap.get("SJDW"));
  410. fileDetail05.setGddw(excelMap.get("GDDW"));
  411. fileDetail05.setCbd(excelMap.get("CBD"));
  412. fileDetail05.setCljg(excelMap.get("CLJG"));
  413. fileDetail05.setCldw(excelMap.get("CLDW"));
  414. fileDetail05.setClbm(excelMap.get("CLBM"));
  415. fileDetail05.setGds(excelMap.get("GDS"));
  416. fileDetail05.setBz(excelMap.get("BZ"));
  417. fileDetail05.setGlgd(excelMap.get("GLGD"));
  418. fileDetail05.setWtyyfl(excelMap.get("WTYYFL"));
  419. fileDetail05.setGdfj(excelMap.get("GDFJ"));
  420. fileDetail05.setZrbm(excelMap.get("ZRBM"));
  421. fileDetail05.setGdsj(excelMap.get("GDSJ"));
  422. fileDetail05.setGqyy(excelMap.get("GQYY"));
  423. fileDetail05.setFwqd(excelMap.get("FWQD"));
  424. fileDetail05.setSjhtzryy(excelMap.get("SJHTZRYY"));
  425. fileDetail05.setFileId(fileId);
  426. db.insertSelective(DwFileDetail05Mapper.class, fileDetail05);
  427. }
  428. //计停非计停
  429. }else if(Constant.FILE_DETAIL_TYPE_06.equals(fileType)) {
  430. String[] titleKey = new String[]{"NO","TYPE","UNIT","DEVICE","TIME","EVENTTYPE","FA","TRIPTYPE","CAUSE","CHZDZQK","HANDLE","ERROBRIEF"};
  431. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  432. if (list.size() == 0) {
  433. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  434. }
  435. // 详情数据存入数据库
  436. for (Map<String,String> excelMap : list) {
  437. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_05_NO");
  438. DwFileDetail07 fileDetail07 = new DwFileDetail07();
  439. fileDetail07.setId(fileDetailId);
  440. fileDetail07.setNo(excelMap.get("NO"));
  441. fileDetail07.setType(excelMap.get("TYPE"));
  442. fileDetail07.setUnit(excelMap.get("UNIT"));
  443. fileDetail07.setDevice(excelMap.get("DEVICE"));
  444. fileDetail07.setTime(excelMap.get("TIME"));
  445. fileDetail07.setEventtype(excelMap.get("EVENTTYPE"));
  446. fileDetail07.setFa(excelMap.get("FA"));
  447. fileDetail07.setTriptype(excelMap.get("TRIPTYPE"));
  448. fileDetail07.setCause(excelMap.get("CAUSE"));
  449. fileDetail07.setChzdzqk(excelMap.get("CHZDZQK"));
  450. fileDetail07.setHandle(excelMap.get("HANDLE"));
  451. fileDetail07.setErrobrief(excelMap.get("ERROBRIEF"));
  452. db.insertSelective(DwFileDetail07Mapper.class, fileDetail07);
  453. }
  454. //客户信息明细
  455. }else if(Constant.FILE_DETAIL_TYPE_07.equals(fileType)){
  456. //标题对应key
  457. String[] titleKey = new String[]{
  458. };
  459. String[] titleValue = new String[]{
  460. "所属文件id"
  461. };
  462. //验证模板是否正确
  463. Map<String,Object> header = new HashMap<String, Object>();
  464. List<String[]> headerTitle = new ArrayList<String[]>();
  465. headerTitle.add(titleKey);
  466. headerTitle.add(titleValue);
  467. if(headerTitle == null || headerTitle.isEmpty()){
  468. System.out.println("标题列为空");
  469. } else {
  470. header.put("headerRows",headerTitle.size() - 1);
  471. header.put("header",headerTitle);
  472. header.put("cols",headerTitle.get(headerTitle.size() -1).length);
  473. boolean b = ExcelTemplateUtil.verificationExcelHeadLine(fileItem,header);
  474. if (!b) {
  475. System.out.println("导入模板不一致");
  476. }
  477. //读取excel数据
  478. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  479. // 详情数据存入数据库
  480. for (Map<String,String> excelMap : list) {
  481. String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_05_NO");
  482. DwFileDetail07 fileDetail07 = new DwFileDetail07();
  483. fileDetail07.setId(fileDetailId);
  484. }
  485. }
  486. //配变过重载
  487. }else if(Constant.FILE_DETAIL_TYPE_08.equals(fileType)){
  488. //标题对应key
  489. String[] titleKey = new String[]{"SEQU","MONTH","UNIT","BZMC","XLMC","GBMC","FZL","ZDFZL","ZDFZLFSSK","EDRL","GZZYYFL","JTYY",
  490. "JJCSFL","JTJJCS","WCSJ","SXBPHL","AXDL","BXDL","CXDL","YHSL","GZSC","ZZSC","PMSID","YXID"};
  491. String[] titleValue = new String[]{
  492. "序号","月份","单位","维护班组","所属线路","公变名称","负载率(%)",
  493. "最大负载率(%)","最大负载率发生时刻时间","额定容量(kVA)","重载原因分类",
  494. "具体原因\n" +
  495. "(详细说明原因情况)","解决措施分类","具体解决措施\n" +
  496. "(详细说明解决措施)",
  497. "完成时间\n" +
  498. "(格式:2020/01/01)","三相不平衡率(%)(最大负荷)","A相电流(A)","B相电流(A)",
  499. "C相电流(A)","用户数量","过载时长","重载时长","PMSID","营销ID"
  500. };
  501. //验证模板是否正确
  502. Map<String,Object> header = new HashMap<String, Object>();
  503. List<String[]> headerTitle = new ArrayList<String[]>();
  504. headerTitle.add(titleValue);
  505. if(headerTitle == null || headerTitle.isEmpty()){
  506. System.out.println("标题列为空");
  507. } else {
  508. header.put("headerRows",headerTitle.size() - 1);
  509. header.put("header",headerTitle);
  510. header.put("cols",headerTitle.get(headerTitle.size() -1).length);
  511. boolean b = ExcelTemplateUtil.verificationExcelHeadLine(fileItem,header);
  512. if (!b) {
  513. throw new MINBusinessException("导入模板不一致,请使用正确模板");//无数据,请添加数据
  514. }
  515. //读取excel数据
  516. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  517. if(list == null || list.isEmpty()){
  518. System.out.println("");
  519. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  520. }
  521. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
  522. DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
  523. DateTimeFormatter fa = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  524. List<DwFileDetail09> ll = new ArrayList<DwFileDetail09>();
  525. // 详情数据存入数据库
  526. for (Map<String,String> excelMap : list) {
  527. DwFileDetail09 fileDetail09 = new DwFileDetail09();
  528. fileDetail09.setSequ(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("SEQU"))));
  529. fileDetail09.setId(UUID.randomUUID().toString().replace("-", ""));
  530. fileDetail09.setMonth(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("MONTH"))));
  531. fileDetail09.setUnit(excelMap.get("UNIT"));
  532. fileDetail09.setBzmc(excelMap.get("BZMC"));
  533. fileDetail09.setGbmc(excelMap.get("GBMC"));
  534. fileDetail09.setXlmc(excelMap.get("XLMC"));
  535. fileDetail09.setFzl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("FZL"))));
  536. fileDetail09.setZdfzl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("ZDFZL"))));
  537. fileDetail09.setZdfzlfssk(excelMap.get("ZDFZLFSSK"));
  538. fileDetail09.setEdrl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("EDRL"))));
  539. fileDetail09.setGzzyyfl(excelMap.get("GZZYYFL"));
  540. fileDetail09.setJtyy(excelMap.get("JTYY"));
  541. fileDetail09.setJjcsfl(excelMap.get("JJCSFL"));
  542. fileDetail09.setJtjjcs(excelMap.get("JTJJCS"));
  543. String wcsj = excelMap.get("WCSJ");
  544. if(wcsj != null && !"".equals(wcsj)){
  545. LocalDateTime ldt = LocalDateTime.parse(wcsj,dtf);
  546. String datetime = ldt.format(fa);
  547. fileDetail09.setWcsj(simpleDateFormat.parse(datetime.replaceAll("/","-")));
  548. }
  549. fileDetail09.setSxbphl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("SXBPHL"))));
  550. fileDetail09.setAxdl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("AXDL"))));
  551. fileDetail09.setBxdl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("BXDL"))));
  552. fileDetail09.setCxdl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("CXDL"))));
  553. System.out.println("负载率:"+excelMap.get("FZL")+",最大负载率:"+excelMap.get("ZDFZL")+",A相:"+excelMap.get("AXDL")+",B相:"+excelMap.get("BXDL")+",C相:"+excelMap.get("CXDL"));
  554. fileDetail09.setGzsc(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("GZSC"))));
  555. fileDetail09.setYhsl(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("YHSL"))));
  556. fileDetail09.setZzsc(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("ZZSC"))));
  557. fileDetail09.setYxid(excelMap.get("YXID"));
  558. fileDetail09.setPmsid(excelMap.get("PMSID"));
  559. fileDetail09.setFileId(fileId);
  560. ll.add(fileDetail09);
  561. }
  562. this.batchReportData(ll,1);
  563. }
  564. //线路过重载
  565. }else if(Constant.FILE_DETAIL_TYPE_09.equals(fileType)){
  566. //标题对应key
  567. String[] titleKey = new String[]{
  568. "SEQU","MONTH","XGSMC","BZMC","BDZMC","XLMC","EDDL","FZL","GZZYY",
  569. "GZZJTYY","JJCSFL","JTJJCS","WCSJ","GZSC","YXDL",
  570. "FSSK","ZDDL","ZDZFSSK","PBSL","PBRL","SFZDH","PMSID"};
  571. String[] titleValue = new String[]{
  572. "序号","月份","所属县公司","管理班组","变电站名称",
  573. "线路名称","额定电流(A)","负载率","过载原因分类","具体原因\n" +
  574. "(详细说明原因情况)",
  575. "解决措施分类","具体解决措施\n" +
  576. "(详细说明解决措施)","完成时间\n" +
  577. "(格式:2020/01/01)",
  578. "过载时长(小时)","运行电流(A)","发生时刻","最大电流(A)","最大值发生时刻",
  579. "配变数量(台)","配变容量(kVA)","是否自动化","PMSID"
  580. };
  581. //验证模板是否正确
  582. Map<String,Object> header = new HashMap<String, Object>();
  583. List<String[]> headerTitle = new ArrayList<String[]>();
  584. headerTitle.add(titleValue);
  585. if(headerTitle == null || headerTitle.isEmpty()){
  586. System.out.println("标题列为空");
  587. } else {
  588. header.put("headerRows",headerTitle.size() - 1);
  589. header.put("header",headerTitle);
  590. header.put("cols",headerTitle.get(headerTitle.size() -1).length);
  591. boolean b = ExcelTemplateUtil.verificationExcelHeadLine(fileItem,header);
  592. if (!b) {
  593. throw new MINBusinessException("导入模板不一致,请使用正确模板");//无数据,请添加数据
  594. }
  595. //读取excel数据
  596. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  597. if(list == null || list.isEmpty()){
  598. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  599. }
  600. List<DwFileDetail10> ll = new ArrayList<DwFileDetail10>();
  601. // 详情数据存入数据库
  602. for (Map<String,String> excelMap : list) {
  603. DwFileDetail10 fileDetail10 = new DwFileDetail10();
  604. fileDetail10.setId(UUID.randomUUID().toString().replace("-", ""));
  605. fileDetail10.setSequ(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("SEQU"))));
  606. fileDetail10.setMonth(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("MONTH"))));
  607. fileDetail10.setXgsmc(excelMap.get("XGSMC"));
  608. fileDetail10.setBzmc(excelMap.get("BZMC"));
  609. fileDetail10.setBdzmc(excelMap.get("BDZMC"));
  610. fileDetail10.setXlmc(excelMap.get("XLMC"));
  611. fileDetail10.setEddl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("EDDL"))));
  612. fileDetail10.setFzl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("FZL"))));
  613. fileDetail10.setGzzyy(excelMap.get("GZZYY"));
  614. fileDetail10.setGzzjtyy(excelMap.get("GZZJTYY"));
  615. fileDetail10.setJjcsfl(excelMap.get("JJCSFL"));
  616. fileDetail10.setJtjjcs(excelMap.get("JTJJCS"));
  617. String wcsj = excelMap.get("WCSJ");
  618. if(wcsj != null && !"".equals(wcsj)){
  619. fileDetail10.setWcsj(StringUtil.ObjToDate(wcsj,"1"));
  620. }
  621. fileDetail10.setGzsc(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("GZSC"))));
  622. fileDetail10.setYxdl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("YXDL"))));
  623. String fssk = excelMap.get("FSSK");
  624. if(fssk != null && !"".equals(fssk)){
  625. fileDetail10.setFssk(StringUtil.ObjToDate(fssk,"2"));
  626. }
  627. fileDetail10.setZddl(Float.valueOf(StringUtil.ObjToFloat(excelMap.get("ZDDL"))));
  628. String zdzfssk = excelMap.get("ZDZFSSK");
  629. if(zdzfssk != null && !"".equals(zdzfssk)){
  630. fileDetail10.setZdzfssk(StringUtil.ObjToDate(zdzfssk,"2"));
  631. }
  632. fileDetail10.setPbsl(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("PBSL"))));
  633. fileDetail10.setPbrl(Integer.valueOf(StringUtil.ObjToInt(excelMap.get("PBRL"))));
  634. fileDetail10.setSfzdh(excelMap.get("SFZDH"));
  635. fileDetail10.setPmsid(excelMap.get("PMSID"));
  636. fileDetail10.setFileId(fileId);
  637. ll.add(fileDetail10);
  638. }
  639. this.batchXlgzzReportData(ll,2);
  640. }
  641. // 故障工单信息
  642. }else if(Constant.FILE_DETAIL_TYPE_11.equals(fileType)){
  643. //标题对应key
  644. String[] titleKey = new String[]{
  645. "GDBH","GWGDBH","YHBH","GDDW","DWXCSJ", "GZPCSJ", "YJFL", "EJFL", "SJFL", "YWLXMC", "SLSH", "PGR",
  646. "PCRY", "SDR", "YHMC", "LXR", "LXDZ", "XCFL", "JJCD", "WHCD", "CQSX", "GZGS", "SLNR", "GDZT", "GZYY",
  647. "GZXX", "DYDJ", "ZDCL", "GZDZ", "LXDH", "CLJG", "HBZD", "QXZSC", "DGSC", "GZPCSC", "GZYPJG", "XCQXJL",
  648. "SCPFQXDSJ", "ZCPFQXDSJ", "ZDJDSJ", "HFSDSJ", "TJSHSJ", "GDSHSJ", "GDSJ", "ZDBM"};
  649. String[] titleValue = new String[]{
  650. "工单编号" , "国网工单号" , "用户编号" , "供电单位" , "到达现场时间" , "故障排除时间" , "一级分类" ,
  651. "二级分类" , "三级分类" , "业务类型名称" , "受理时间" , "派工人 " , "派出人员" , "锁定人 " , "用户名称" ,
  652. "联系人 " , "联系地址" , "现场分类" , "紧急程度" , "危害程度" , "产权属性" , "故障归属" , "受理内容" ,
  653. "工单状态" , "故障原因" , "故障现象" , "电压等级" , "终端处理" , "故障地址" , "联系电话" , "处理结果" ,
  654. "合并主单" , "抢修总时长(分)" , "到岗时长(分) " , "故障排除时长(分) " , "故障研判结果" , "现场抢修记录" ,
  655. "首次派发抢修队时间 " , "再次派发抢修队时间 " , "终端接单时间" , "恢复送电时间" , "提交审核时间" ,
  656. "工单审核时间" ,"归档时间" , "终端编码"
  657. };
  658. //验证模板是否正确
  659. Map<String,Object> header = new HashMap<String, Object>();
  660. List<String[]> headerTitle = new ArrayList<String[]>();
  661. headerTitle.add(titleValue);
  662. if(headerTitle == null || headerTitle.isEmpty()){
  663. System.out.println("标题列为空");
  664. } else {
  665. header.put("headerRows",headerTitle.size() - 1);
  666. header.put("header",headerTitle);
  667. header.put("cols",headerTitle.get(headerTitle.size() -1).length);
  668. boolean b = ExcelTemplateUtil.verificationExcelHeadLine(fileItem,header);
  669. if (!b) {
  670. throw new MINBusinessException("导入模板不一致,请使用正确模板");//无数据,请添加数据
  671. }
  672. //读取excel数据
  673. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  674. if(list == null || list.isEmpty()){
  675. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  676. }
  677. List<DwFileDetail11> ll = new ArrayList<DwFileDetail11>();
  678. // 详情数据存入数据库
  679. for (Map<String,String> excelMap : list) {
  680. DwFileDetail11 fileDetail11 = new DwFileDetail11();
  681. fileDetail11.setId(UUID.randomUUID().toString().replace("-", ""));
  682. fileDetail11.setGdbh(excelMap.get("GDBH"));
  683. fileDetail11.setGwgdbh(excelMap.get("GWGDBH"));
  684. fileDetail11.setYhbh(excelMap.get("YHBH"));
  685. fileDetail11.setGddw(excelMap.get("GDDW"));
  686. String dwxcsj = excelMap.get("DWXCSJ");
  687. if(dwxcsj != null && !"".equals(dwxcsj)){
  688. fileDetail11.setDwxcsj(StringUtil.ObjToDate(dwxcsj,"2"));
  689. }
  690. String gzpcsj = excelMap.get("GZPCSJ");
  691. if(gzpcsj != null && !"".equals(gzpcsj)){
  692. fileDetail11.setGzpcsj(StringUtil.ObjToDate(gzpcsj,"2"));
  693. }
  694. fileDetail11.setYjfl(excelMap.get("YJFL"));
  695. fileDetail11.setEjfl(excelMap.get("EJFL"));
  696. fileDetail11.setSjfl(excelMap.get("SJFL"));
  697. fileDetail11.setYwlxmc(excelMap.get("YWLXMC"));
  698. String slsh = excelMap.get("SLSH");
  699. if(slsh != null && !"".equals(slsh)){
  700. fileDetail11.setSlsh(StringUtil.ObjToDate(slsh,"2"));
  701. }
  702. fileDetail11.setPgr(excelMap.get("PGR"));
  703. fileDetail11.setPcry(excelMap.get("PCRY"));
  704. fileDetail11.setSdr(excelMap.get("SDR"));
  705. fileDetail11.setYhmc(excelMap.get("YHMC"));
  706. fileDetail11.setLxr(excelMap.get("LXR"));
  707. fileDetail11.setLxdz(excelMap.get("LXDZ"));
  708. fileDetail11.setXcfl(excelMap.get("XCFL"));
  709. fileDetail11.setJjcd(excelMap.get("JJCD"));
  710. fileDetail11.setWhcd(excelMap.get("WHCD"));
  711. fileDetail11.setCqsx(excelMap.get("CQSX"));
  712. fileDetail11.setGzgs(excelMap.get("GZGS"));
  713. fileDetail11.setSlnr(excelMap.get("SLNR"));
  714. fileDetail11.setGdzt(excelMap.get("GDZT"));
  715. fileDetail11.setGzyy(excelMap.get("GZYY"));
  716. fileDetail11.setGzxx(excelMap.get("GZXX"));
  717. fileDetail11.setDydj(excelMap.get("DYDJ"));
  718. fileDetail11.setZdcl(excelMap.get("ZDCL"));
  719. fileDetail11.setGzdz(excelMap.get("GZDZ"));
  720. fileDetail11.setLxdh(excelMap.get("LXDH"));
  721. fileDetail11.setCljg(excelMap.get("CLJG"));
  722. fileDetail11.setHbzd(excelMap.get("HBZD"));
  723. fileDetail11.setQxzsc(StringUtil.ObjToFloat(excelMap.get("QXZSC")));
  724. fileDetail11.setDgsc(StringUtil.ObjToFloat(excelMap.get("DGSC")));
  725. fileDetail11.setGzpcsc(StringUtil.ObjToFloat(excelMap.get("GZPCSC")));
  726. fileDetail11.setGzypjg(excelMap.get("GZYPJG"));
  727. fileDetail11.setXcqxjl(excelMap.get("XCQXJL"));
  728. String scpfqxdsj = excelMap.get("SCPFQXDSJ");
  729. if(scpfqxdsj != null && !"".equals(scpfqxdsj)){
  730. fileDetail11.setScpfqxdsj(StringUtil.ObjToDate(scpfqxdsj,"2"));
  731. }
  732. String zcpfqxdsj = excelMap.get("ZCPFQXDSJ");
  733. if(zcpfqxdsj != null && !"".equals(zcpfqxdsj)){
  734. fileDetail11.setZcpfqxdsj(StringUtil.ObjToDate(zcpfqxdsj,"2"));
  735. }
  736. String zdjdsj = excelMap.get("ZDJDSJ");
  737. if(zdjdsj != null && !"".equals(zdjdsj)){
  738. fileDetail11.setZdjdsj(StringUtil.ObjToDate(zdjdsj,"2"));
  739. }
  740. String hfsdsj = excelMap.get("HFSDSJ");
  741. if(hfsdsj != null && !"".equals(hfsdsj)){
  742. fileDetail11.setHfsdsj(StringUtil.ObjToDate(hfsdsj,"2"));
  743. }
  744. String tjshsj = excelMap.get("TJSHSJ");
  745. if(tjshsj != null && !"".equals(tjshsj)){
  746. fileDetail11.setTjshsj(StringUtil.ObjToDate(tjshsj,"2"));
  747. }
  748. String gdshsj = excelMap.get("GDSHSJ");
  749. if(gdshsj != null && !"".equals(gdshsj)){
  750. fileDetail11.setGdshsj(StringUtil.ObjToDate(gdshsj,"2"));
  751. }
  752. String gdsj = excelMap.get("GDSJ");
  753. if(gdsj != null && !"".equals(gdsj)){
  754. fileDetail11.setGdsj(StringUtil.ObjToDate(gdsj,"2"));
  755. }
  756. fileDetail11.setZdbm(excelMap.get("ZDBM"));
  757. fileDetail11.setFileId(fileId);
  758. ll.add(fileDetail11);
  759. }
  760. this.batchGzgdReportData(ll,2);
  761. }
  762. }else if(Constant.FILE_DETAIL_TYPE_12.equals(fileType)){
  763. //标题对应key
  764. String[] titleKey = ReportConstant.REPORT_955982_TITLEKEY;
  765. String[] titleValue = ReportConstant.REPORT_955982_TITLEVALUE;
  766. //验证模板是否正确
  767. Map<String,Object> header = new HashMap<String, Object>();
  768. List<String[]> headerTitle = new ArrayList<String[]>();
  769. headerTitle.add(titleValue);
  770. if(headerTitle == null || headerTitle.isEmpty()){
  771. System.out.println("标题列为空");
  772. } else {
  773. header.put("headerRows",headerTitle.size() - 1);
  774. header.put("header",headerTitle);
  775. header.put("cols",headerTitle.get(headerTitle.size() -1).length);
  776. boolean b = ExcelTemplateUtil.verificationExcelHeadLine(fileItem,header);
  777. if (!b) {
  778. throw new MINBusinessException("导入模板不一致,请使用正确模板");//无数据,请添加数据
  779. }
  780. //读取excel数据
  781. list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
  782. if(list == null || list.isEmpty()){
  783. throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
  784. }
  785. List<DwFileDetail12> ll = new ArrayList<DwFileDetail12>();
  786. // 详情数据存入数据库
  787. for (Map<String,String> excelMap : list) {
  788. DwFileDetail12 fileDetail12 = new DwFileDetail12();
  789. fileDetail12.setId(UUID.randomUUID().toString().replace("-", ""));
  790. fileDetail12.setSequ(StringUtil.ObjToInt(excelMap.get("SEQU")));
  791. fileDetail12.setGdbh(excelMap.get("GDBH"));
  792. fileDetail12.setGwgdbh(excelMap.get("GWGDBH"));
  793. fileDetail12.setZt(excelMap.get("ZT"));
  794. fileDetail12.setDbbs(excelMap.get("DBBS"));
  795. fileDetail12.setYwlx(excelMap.get("YWLX"));
  796. fileDetail12.setDqbz(excelMap.get("DQBZ"));
  797. fileDetail12.setSlry(excelMap.get("SLRY"));
  798. String slsj = excelMap.get("SLSJ");
  799. if(slsj != null && !"".equals(slsj)){
  800. fileDetail12.setSlsj(StringUtil.ObjToDate(slsj,"1"));
  801. }
  802. // fileDetail12.setSlsj(excelMap.get("SLSJ"));
  803. fileDetail12.setSlnr(excelMap.get("SLNR"));
  804. fileDetail12.setYhbh(excelMap.get("YHBH"));
  805. fileDetail12.setYhmc(excelMap.get("YHMC"));
  806. fileDetail12.setLxdz(excelMap.get("LXDZ"));
  807. fileDetail12.setLxdh(excelMap.get("LXDH"));
  808. fileDetail12.setHfnr(excelMap.get("HFNR"));
  809. fileDetail12.setYjfl(excelMap.get("YJFL"));
  810. fileDetail12.setEjfl(excelMap.get("EJFL"));
  811. fileDetail12.setYwzl(excelMap.get("YWZL"));
  812. fileDetail12.setSjdw(excelMap.get("SJDW"));
  813. fileDetail12.setGddw(excelMap.get("GDDW"));
  814. fileDetail12.setCbd(excelMap.get("CBD"));
  815. fileDetail12.setCljg(excelMap.get("CLJG"));
  816. fileDetail12.setCldw(excelMap.get("CLDW"));
  817. fileDetail12.setClbm(excelMap.get("CLBM"));
  818. fileDetail12.setGds(excelMap.get("GDS"));
  819. fileDetail12.setSsbz(excelMap.get("SSBZ"));
  820. fileDetail12.setGlgd(excelMap.get("GLGD"));
  821. fileDetail12.setWtyyfl(excelMap.get("WTYYFL"));
  822. fileDetail12.setGdfj(excelMap.get("GDFJ"));
  823. fileDetail12.setZrbm(excelMap.get("ZRBM"));
  824. String gdsj = excelMap.get("GDSJ");
  825. if(gdsj != null && !"".equals(gdsj)){
  826. fileDetail12.setGdsj(StringUtil.ObjToDate(gdsj,"1"));
  827. }
  828. String gqsj = excelMap.get("GQSJ");
  829. if(gqsj != null && !"".equals(gqsj)){
  830. fileDetail12.setGqsj(StringUtil.ObjToDate(gqsj,"1"));
  831. }
  832. fileDetail12.setGqyy(excelMap.get("GQYY"));
  833. fileDetail12.setFwqd(excelMap.get("FWQD"));
  834. fileDetail12.setSjthzryy(excelMap.get("SJTHZRYY"));
  835. fileDetail12.setSjhtzryy2(excelMap.get("SJHTZRYY2"));
  836. fileDetail12.setGddwg(excelMap.get("GDDWG"));
  837. fileDetail12.setCldwg(excelMap.get("CLDWG"));
  838. fileDetail12.setZby(excelMap.get("ZBY"));
  839. fileDetail12.setSsdwgs(excelMap.get("SSDWGS"));
  840. fileDetail12.setXlsgs(excelMap.get("XLSGS"));
  841. fileDetail12.setSsdw(excelMap.get("SSDW"));
  842. fileDetail12.setXlx1(excelMap.get("XLX1"));
  843. fileDetail12.setXls2(excelMap.get("XLS2"));
  844. fileDetail12.setBz(excelMap.get("BZ"));
  845. fileDetail12.setFileId(fileId);
  846. ll.add(fileDetail12);
  847. }
  848. this.batch95598gdReportData(ll,2);
  849. }
  850. }
  851. // 文件名
  852. String filePath = Service.lookup(IPropertiesService.class).getSystemProperties().get("FILE_SERVER_BASE_PATH").getKey();
  853. String saveName = UUID.randomUUID().toString().replaceAll("-", "");
  854. String[] fileNameArray = fileName.split("\\.");
  855. saveName = saveName + "." + fileNameArray[fileNameArray.length - 1];
  856. // 保存文件数据
  857. String currentDate = DateUtil.getCurrentDateString();
  858. User user = (User)session.getUser();
  859. DwFileInf fileInf = new DwFileInf();
  860. fileInf.setId(fileId);
  861. fileInf.setUploadDate(currentDate);
  862. fileInf.setFileName(fileName);
  863. fileInf.setCreatUser(user.getId());
  864. fileInf.setBranch(user.getBranchid());
  865. fileInf.setDataNum(list.size() + "");
  866. fileInf.setType(fileType);
  867. fileInf.setSavePath(filePath + saveName);
  868. db.insertSelective(DwFileInfMapper.class, fileInf);
  869. // 保存文件到本地
  870. FilesUtil.uploadFile(fileItem, filePath, "", saveName, 0);
  871. return res;
  872. }
  873. private void batch95598gdReportData(List<DwFileDetail12> list, int type) {
  874. {
  875. if(list != null && list.size() > 0){
  876. List<DwFileDetail12> tempList = new ArrayList<DwFileDetail12>();
  877. int cou = 0;
  878. for (int i = 0; i < list.size() ; i++) {
  879. if((list.size() - i) >= 1000){
  880. tempList.add((DwFileDetail12) list.get(i));
  881. cou += 1;
  882. if(cou == 1000){
  883. try {
  884. db.getMybatisMapper(IReportBatchMapper.class).insert95598gdReport(tempList);
  885. } catch (MINBusinessException e) {
  886. e.printStackTrace();
  887. }
  888. cou = 0;
  889. tempList = new ArrayList<DwFileDetail12>();
  890. }
  891. }
  892. if((list.size() - i) < 1000){
  893. tempList.add((DwFileDetail12) list.get(i));
  894. }
  895. }
  896. try {
  897. db.getMybatisMapper(IReportBatchMapper.class).insert95598gdReport(tempList);
  898. } catch (MINBusinessException e) {
  899. e.printStackTrace();
  900. }
  901. }
  902. }
  903. }
  904. /**
  905. * @param list
  906. * @param type
  907. */
  908. private void batchGzgdReportData(List<DwFileDetail11> list, int type) {
  909. if(list != null && list.size() > 0){
  910. List<DwFileDetail11> tempList = new ArrayList<DwFileDetail11>();
  911. int cou = 0;
  912. for (int i = 0; i < list.size() ; i++) {
  913. if((list.size() - i) >= 1000){
  914. tempList.add((DwFileDetail11) list.get(i));
  915. cou += 1;
  916. if(cou == 1000){
  917. try {
  918. db.getMybatisMapper(IReportBatchMapper.class).insertGzgdReport(tempList);
  919. } catch (MINBusinessException e) {
  920. e.printStackTrace();
  921. }
  922. cou = 0;
  923. tempList = new ArrayList<DwFileDetail11>();
  924. }
  925. }
  926. if((list.size() - i) < 1000){
  927. tempList.add((DwFileDetail11) list.get(i));
  928. }
  929. }
  930. try {
  931. db.getMybatisMapper(IReportBatchMapper.class).insertGzgdReport(tempList);
  932. } catch (MINBusinessException e) {
  933. e.printStackTrace();
  934. }
  935. }
  936. }
  937. /**
  938. * 批处理-配变过重载
  939. * @param list
  940. */
  941. @Transactional
  942. protected void batchReportData(List<DwFileDetail09> list,int type) throws MINBusinessException {
  943. if(list != null && list.size() > 0){
  944. List<DwFileDetail09> tempList = new ArrayList<DwFileDetail09>();
  945. int cou = 0;
  946. for (int i = 0; i < list.size() ; i++) {
  947. if((list.size() - i) >= 1000){
  948. tempList.add( list.get(i));
  949. cou += 1;
  950. if(cou == 1000){
  951. try {
  952. db.getMybatisMapper(IReportBatchMapper.class).insertPbgzzReport(tempList);
  953. } catch (MINBusinessException e) {
  954. e.printStackTrace();
  955. }
  956. cou = 0;
  957. tempList = new ArrayList<DwFileDetail09>();
  958. }
  959. }
  960. if((list.size() - i) < 1000){
  961. tempList.add(list.get(i));
  962. }
  963. }
  964. try {
  965. db.getMybatisMapper(IReportBatchMapper.class).insertPbgzzReport(tempList);
  966. } catch (MINBusinessException e) {
  967. e.printStackTrace();
  968. }
  969. }
  970. }
  971. /**
  972. * 批处理 线路过重载
  973. * @param list
  974. */
  975. @Transactional
  976. protected void batchXlgzzReportData(List<DwFileDetail10> list,int type) throws MINBusinessException {
  977. if(list != null && list.size() > 0){
  978. List<DwFileDetail10> tempList = new ArrayList<DwFileDetail10>();
  979. int cou = 0;
  980. for (int i = 0; i < list.size() ; i++) {
  981. if((list.size() - i) >= 1000){
  982. tempList.add( list.get(i));
  983. cou += 1;
  984. if(cou == 1000){
  985. try {
  986. db.getMybatisMapper(IReportBatchMapper.class).insertXlgzzReport(tempList);
  987. } catch (MINBusinessException e) {
  988. e.printStackTrace();
  989. }
  990. cou = 0;
  991. tempList = new ArrayList<DwFileDetail10>();
  992. }
  993. }
  994. if((list.size() - i) < 1000){
  995. tempList.add(list.get(i));
  996. }
  997. }
  998. try {
  999. db.getMybatisMapper(IReportBatchMapper.class).insertXlgzzReport(tempList);
  1000. } catch (MINBusinessException e) {
  1001. e.printStackTrace();
  1002. }
  1003. }
  1004. }
  1005. /**
  1006. * 原始数据文件下载
  1007. * @param fileId
  1008. * @param response
  1009. * @return
  1010. * @throws MINBusinessException
  1011. * @throws IOException
  1012. */
  1013. @MINAction(value = FILE_INF_DOWNLOAD)
  1014. public HttpServletResponse fileInfDownload(
  1015. @MINParam(key = "fileId") String fileId,
  1016. HttpServletResponse response
  1017. ) throws MINBusinessException, IOException {
  1018. db = Service.lookup(IMINDataBaseService.class);
  1019. DwFileInf fileInf = db.selectByPrimaryKey(DwFileInfMapper.class, fileId);
  1020. String type = fileInf.getType();
  1021. // FilesUtil.writeFile2Response(response, fileInf.getSavePath(), fileInf.getFileName());
  1022. OutputStream os = null;
  1023. ServletOutputStream ros = null;
  1024. ros = response.getOutputStream();
  1025. os = new BufferedOutputStream(ros);
  1026. // 台区停电
  1027. if(Constant.FILE_DETAIL_TYPE_00.equals(type)) {
  1028. response.setContentType("application/application/vnd.ms-excel");
  1029. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("台区停电数据.xls", "UTF-8"));
  1030. DwFileDetail00Example example = new DwFileDetail00Example();
  1031. example.createCriteria().andFileIdEqualTo(fileId);
  1032. List<DwFileDetail00> selectByExample = db.getMybatisMapper(DwFileDetail00Mapper.class).selectByExample(example);
  1033. ExportExcelUtil<DwFileDetail00> util = new ExportExcelUtil<DwFileDetail00>();
  1034. String[] header = {"系统编号","原EXCEL编号","台区编号","台区名称","数据日期","单位","供电所名称","终端名称","终端编号","终端地址码","停电时间","来电时间","所属文件id"};
  1035. util.exportExcel("台区停电", selectByExample, os, "2007", header);
  1036. } else if (Constant.FILE_DETAIL_TYPE_01.equals(type)) {
  1037. response.setContentType("application/application/vnd.ms-excel");
  1038. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("终端投退运数据.xls", "UTF-8"));
  1039. DwFileDetail01Example example = new DwFileDetail01Example();
  1040. example.createCriteria().andFileIdEqualTo(fileId);
  1041. List<DwFileDetail01> selectByExample = db.getMybatisMapper(DwFileDetail01Mapper.class).selectByExample(example);
  1042. ExportExcelUtil<DwFileDetail01> util = new ExportExcelUtil<DwFileDetail01>();
  1043. String[] header = {"系统编号","编号","名称","台区名称","数据日期","单位","供电所名称","终端名称","终端编号","时间","所属文件id"};
  1044. util.exportExcel("终端投退运数据", selectByExample, os, "2007", header);
  1045. } else if (Constant.FILE_DETAIL_TYPE_02.equals(type)) {
  1046. response.setContentType("application/application/vnd.ms-excel");
  1047. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("FA动作数据.xls", "UTF-8"));
  1048. DwFileDetail02Example example = new DwFileDetail02Example();
  1049. example.createCriteria().andFileIdEqualTo(fileId);
  1050. List<DwFileDetail02> selectByExample = db.getMybatisMapper(DwFileDetail02Mapper.class).selectByExample(example);
  1051. ExportExcelUtil<DwFileDetail02> util = new ExportExcelUtil<DwFileDetail02>();
  1052. String[] header = {"系统编号","原EXCEL编号","故障停电开始时间","故障停电结束时间","供电类型","出线变电站","线路名称","线路类型","启动FA","故障区间判断","故障前后段恢复","故障隔离","所属文件id"};
  1053. util.exportExcel("FA动作数据", selectByExample, os, "2007", header);
  1054. } else if (Constant.FILE_DETAIL_TYPE_03.equals(type)) {
  1055. response.setContentType("application/application/vnd.ms-excel");
  1056. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("低电压数据.xls", "UTF-8"));
  1057. DwFileDetail03Example example = new DwFileDetail03Example();
  1058. example.createCriteria().andFileIdEqualTo(fileId);
  1059. List<DwFileDetail03> selectByExample = db.getMybatisMapper(DwFileDetail03Mapper.class).selectByExample(example);
  1060. ExportExcelUtil<DwFileDetail03> util = new ExportExcelUtil<DwFileDetail03>();
  1061. String[] header = {"系统编号","原EXCEL编号","市公司名称","县公司名称","变电站名称","线路名称","台区id","变压器名称","用户管理单位名称1","用户编号","用户名称","用户管理单位名称2","电压最大值","电压最小值","电压合格率","超上限率","超下限率","低压时长","供电类型","累计天数","数据日期","供电单位","所属文件id"};
  1062. util.exportExcel("低电压数据", selectByExample, os, "2007", header);
  1063. } else if (Constant.FILE_DETAIL_TYPE_04.equals(type)) {
  1064. response.setContentType("application/application/vnd.ms-excel");
  1065. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("过电压数据.xls", "UTF-8"));
  1066. DwFileDetail04Example example = new DwFileDetail04Example();
  1067. example.createCriteria().andFileIdEqualTo(fileId);
  1068. List<DwFileDetail04> selectByExample = db.getMybatisMapper(DwFileDetail04Mapper.class).selectByExample(example);
  1069. ExportExcelUtil<DwFileDetail04> util = new ExportExcelUtil<DwFileDetail04>();
  1070. String[] header = {"系统编号","原EXCEL编号","市公司名称","县公司名称","变电站名称","线路名称","台区id","变压器名称","用户管理单位名称1","用户编号","用户名称","用户管理单位名称2","电压最大值","电压最小值","电压合格率","超上限率","超下限率","过电压时长","供电类型","累计天数","供电单位","数据日期","所属文件id"};
  1071. util.exportExcel("过电压数据", selectByExample, os, "2007", header);
  1072. } else if (Constant.FILE_DETAIL_TYPE_05.equals(type)) {
  1073. response.setContentType("application/application/vnd.ms-excel");
  1074. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("95598工单数据.xls", "UTF-8"));
  1075. DwFileDetail05Example example = new DwFileDetail05Example();
  1076. example.createCriteria().andFileIdEqualTo(fileId);
  1077. List<DwFileDetail05> selectByExample = db.getMybatisMapper(DwFileDetail05Mapper.class).selectByExample(example);
  1078. ExportExcelUtil<DwFileDetail05> util = new ExportExcelUtil<DwFileDetail05>();
  1079. String[] header = {"系统编号","原EXCEL编号","工单编号","国网工单编号","状态","业务类型","当前步骤","受理人员","受理时间","受理内容","用户编号","用户名称","联系地址","联系电话","回访内容","一级分类","二级分类","业务子类","上级单位","供电单位","抄表段","处理结果","处理单位","处理部门","关联工单","问题原因分类","工单分级","责任部门","归档时间","挂起时间","挂起原因","服务渠道","省级回退责任原因","所属文件id"};
  1080. util.exportExcel("95598工单数据", selectByExample, os, "2007", header);
  1081. } else if (Constant.FILE_DETAIL_TYPE_06.equals(type)) {
  1082. response.setContentType("application/application/vnd.ms-excel");
  1083. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("计停非计停数据.xls", "UTF-8"));
  1084. DwFileDetail07Example example = new DwFileDetail07Example();
  1085. example.createCriteria().andFileIdEqualTo(fileId);
  1086. List<DwFileDetail07> selectByExample = db.getMybatisMapper(DwFileDetail07Mapper.class).selectByExample(example);
  1087. ExportExcelUtil<DwFileDetail07> util = new ExportExcelUtil<DwFileDetail07>();
  1088. String[] header = {"系统编号","类型","单位","设备名称","发生时间","事项类型","馈线自动化动作情况","跳闸类型","故障原因","重合闸动作情况","处理纪事","异常概况","所属文件id","原EXCEL编号"};
  1089. util.exportExcel("计停非计停数据", selectByExample, os, "2007", header);
  1090. }else if (Constant.FILE_DETAIL_TYPE_07.equals(type)) {//客户明细
  1091. }else if (Constant.FILE_DETAIL_TYPE_08.equals(type)) {//配变过重载
  1092. response.setContentType("application/application/vnd.ms-excel");
  1093. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("配变过重载数据.xls", "UTF-8"));
  1094. DwFileDetail09Example example = new DwFileDetail09Example();
  1095. example.createCriteria().andFileIdEqualTo(fileId);
  1096. example.setOrderByClause("dfd9_sequ");
  1097. List<DwFileDetail09> selectByExample = db.getMybatisMapper(DwFileDetail09Mapper.class).selectByExample(example);
  1098. ExportExcelUtil<DwFileDetail09> util = new ExportExcelUtil<DwFileDetail09>();
  1099. String[] header = {"系统编号","原EXCEL编号","月份", "单位", "班组名称", "公变名称", "线路名称", "负载率(%) ",
  1100. "最大负载率(%)", "最大负载率发生时刻时间", "额定容量(kVA) ", "过(重)载原因分类 ", "具体原因(详细说明原因情况)", "解决措施分类 ",
  1101. "具体解决措施(详细说明解决措施)", "完成时间",
  1102. "三相不平衡率(%)(最大负荷) ", "A相电流(A)", "B相电流(A)", "C相电流(A)", "过载时长(小时)", "用户数量", "重载时长",
  1103. "营销ID", "PMSID", "所属文件ID",""};
  1104. util.exportExcel("配变过重载数据清单", selectByExample, os, "2007", header);
  1105. }else if (Constant.FILE_DETAIL_TYPE_09.equals(type)) {//线路过重载
  1106. response.setContentType("application/application/vnd.ms-excel");
  1107. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("线路过重载数据.xls", "UTF-8"));
  1108. DwFileDetail10Example example = new DwFileDetail10Example();
  1109. example.createCriteria().andFileIdEqualTo(fileId);
  1110. example.setOrderByClause("dfd10_sequ");
  1111. List<DwFileDetail10> selectByExample = db.getMybatisMapper(DwFileDetail10Mapper.class).selectByExample(example);
  1112. ExportExcelUtil<DwFileDetail10> util = new ExportExcelUtil<DwFileDetail10>();
  1113. String[] header = {"系统编号", "原EXCEL编号","月份", "所属县公司", "班组名称 ", "变电站名称", "线路名称 ", "额定电流(A)",
  1114. "负载率(%) ", "过(重)载原因分类", "具体原因(详细说明原因情况) ", "解决措施分类 ", "具体解决措施(详细说明解决措施) ",
  1115. "完成时间 ", "过载时长(小时) ", "运行电流(A)", "发生时刻 ", "最大电流(A)", "最大值发生时刻", "配变数量(台)",
  1116. "配变容量(kVA)", "是否自动化", "PMSID", "所属文件ID", ""};
  1117. util.exportExcel("线路过重载数据清单", selectByExample, os, "2007", header);
  1118. }else if (Constant.FILE_DETAIL_TYPE_11.equals(type)) {//线路过重载
  1119. response.setContentType("application/application/vnd.ms-excel");
  1120. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("故障工单数据.xls", "UTF-8"));
  1121. DwFileDetail11Example example = new DwFileDetail11Example();
  1122. example.createCriteria().andFileIdEqualTo(fileId);
  1123. example.setOrderByClause("dfd11_sequ");
  1124. List<DwFileDetail11> selectByExample = db.getMybatisMapper(DwFileDetail11Mapper.class).selectByExample(example);
  1125. ExportExcelUtil<DwFileDetail11> util = new ExportExcelUtil<DwFileDetail11>();
  1126. String[] header = {"系统编号", "原EXCEL编号", "工单编号", "国网工单号", "用户编号", "供电单位", "到达现场时间", "故障排除时间", "一级分类",
  1127. "二级分类", "三级分类", "业务类型名称", "受理时间", "派工人", "派出人员", "锁定人", "用户名称", "联系人", "联系地址",
  1128. "现场分类", "紧急程度", "危害程度", "产权属性", "故障归属", "受理内容", "工单状态", "故障原因", "故障现象", "电压等级",
  1129. "终端处理", "故障地址", "联系电话", "处理结果", "合并主单", "抢修总时长(分)", "到岗时长(分)", "故障排除时长(分)",
  1130. "故障研判结果", "现场抢修记录", "首次派发抢修队时间", "再次派发抢修队时间", "终端接单时间", "恢复送电时间",
  1131. "提交审核时间", "工单审核时间", "归档时间", "终端编码", "所属文件ID", ""};
  1132. util.exportExcel("故障工单信息数据清单", selectByExample, os, "2007", header);
  1133. }else if (Constant.FILE_DETAIL_TYPE_12.equals(type)) {//95598工单-新
  1134. response.setContentType("application/application/vnd.ms-excel");
  1135. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("故障工单数据.xls", "UTF-8"));
  1136. DwFileDetail12Example example = new DwFileDetail12Example();
  1137. example.createCriteria().andFileIdEqualTo(fileId);
  1138. example.setOrderByClause("dfd12_sequ");
  1139. List<DwFileDetail12> selectByExample = db.getMybatisMapper(DwFileDetail12Mapper.class).selectByExample(example);
  1140. ExportExcelUtil<DwFileDetail12> util = new ExportExcelUtil<DwFileDetail12>();
  1141. String[] header = {"系统编号", "原EXCEL编号","工单编号", "国网工单编号", "状态", "督办标识", "业务类型", "当前步骤", "受理人员", "受理时间", "受理内容",
  1142. "用户编号", "用户名称", "联系地址", "联系电话", "回访内容", "一级分类", "二级分类", "业务子类", "上级单位",
  1143. "供电单位", "抄表段", "处理结果", "处理单位", "处理部门", "供电所", "班组", "关联工单", "问题原因分类",
  1144. "工单分级", "责任部门", "归档时间", "挂起时间", "挂起原因", "服务渠道", "省级回退责任原因", "省级回退责任原因",
  1145. "供电单位-改", "处理单位-改", "指标月", "所属单位-公式", "新类型-公式", "所属单位", "新类型1", "新类型2(子类)", "备注","所属文件",""};
  1146. util.exportExcel("95598工单数据清单", selectByExample, os, "2007", header);
  1147. }
  1148. return response;
  1149. }
  1150. /**
  1151. * 原始文件删除
  1152. * @param fileId
  1153. * @param fileType
  1154. * @return
  1155. * @throws MINBusinessException
  1156. */
  1157. @MINAction(value = FILE_INF_DELETE, transaction = IMINTransactionEnum.CMT)
  1158. public MINActionResult fileInfDelete(
  1159. @MINParam(key = "fileId") String fileId,
  1160. @MINParam(key = "fileType") String fileType
  1161. ) throws MINBusinessException {
  1162. MINActionResult res = new MINActionResult();
  1163. db = Service.lookup(IMINDataBaseService.class);
  1164. // 删除原始文件--逻辑删除
  1165. DwFileInf fileInf = new DwFileInf();
  1166. fileInf.setState(Constant.FILE_INF_STATE_1);
  1167. fileInf.setId(fileId);
  1168. db.updateByPrimaryKeySelective(DwFileInfMapper.class, fileInf);
  1169. /** 删除明细 */
  1170. if (Constant.FILE_DETAIL_TYPE_00.equals(fileType)) {// 台区停电
  1171. DwFileDetail00Example fileDetail00Example = new DwFileDetail00Example();
  1172. fileDetail00Example.createCriteria().andFileIdEqualTo(fileId);
  1173. db.deleteByExample(DwFileDetail00Mapper.class, fileDetail00Example);
  1174. } else if (Constant.FILE_DETAIL_TYPE_01.equals(fileType)) {// 低电压
  1175. } else if (Constant.FILE_DETAIL_TYPE_02.equals(fileType)) {
  1176. } else if(Constant.FILE_DETAIL_TYPE_03.equals(fileType)){//低电压
  1177. DwFileDetail03Example DwFileDetail03Example = new DwFileDetail03Example();
  1178. DwFileDetail03Example.createCriteria().andFileIdEqualTo(fileId);
  1179. db.deleteByExample(DwFileDetail03Mapper.class,DwFileDetail03Example);
  1180. } else if(Constant.FILE_DETAIL_TYPE_04.equals(fileType)){//过电压
  1181. DwFileDetail04Example DwFileDetail04Example = new DwFileDetail04Example();
  1182. DwFileDetail04Example.createCriteria().andFileIdEqualTo(fileId);
  1183. db.deleteByExample(DwFileDetail04Mapper.class,DwFileDetail04Example);
  1184. } else if(Constant.FILE_DETAIL_TYPE_05.equals(fileType)){//95598工单
  1185. DwFileDetail05Example DwFileDetail05Example = new DwFileDetail05Example();
  1186. DwFileDetail05Example.createCriteria().andFileIdEqualTo(fileId);
  1187. db.deleteByExample(DwFileDetail05Mapper.class,DwFileDetail05Example);
  1188. } else if(Constant.FILE_DETAIL_TYPE_06.equals(fileType)){//计停非计停
  1189. DwFileDetail07Example DwFileDetail07Example = new DwFileDetail07Example();
  1190. DwFileDetail07Example.createCriteria().andFileIdEqualTo(fileId);
  1191. db.deleteByExample(DwFileDetail07Mapper.class,DwFileDetail07Example);
  1192. } else if(Constant.FILE_DETAIL_TYPE_07.equals(fileType)){//客户信息明细
  1193. } else if(Constant.FILE_DETAIL_TYPE_08.equals(fileType)){//配变过重载
  1194. DwFileDetail09Example DwFileDetail09Example = new DwFileDetail09Example();
  1195. DwFileDetail09Example.createCriteria().andFileIdEqualTo(fileId);
  1196. db.deleteByExample(DwFileDetail09Mapper.class,DwFileDetail09Example);
  1197. } else if(Constant.FILE_DETAIL_TYPE_09.equals(fileType)){//线路过重载
  1198. DwFileDetail10Example DwFileDetail10Example = new DwFileDetail10Example();
  1199. DwFileDetail10Example.createCriteria().andFileIdEqualTo(fileId);
  1200. db.deleteByExample(DwFileDetail10Mapper.class,DwFileDetail10Example);
  1201. }else if(Constant.FILE_DETAIL_TYPE_11.equals(fileType)){
  1202. DwFileDetail11Example DwFileDetail11Example = new DwFileDetail11Example();
  1203. DwFileDetail11Example.createCriteria().andFileIdEqualTo(fileId);
  1204. db.deleteByExample(DwFileDetail11Mapper.class,DwFileDetail11Example);
  1205. }
  1206. return res;
  1207. }
  1208. /**
  1209. * 原始文件明细查询
  1210. * @param fileId
  1211. * @param fileIdListStr
  1212. * @param fileType
  1213. * @return
  1214. * @throws MINBusinessException
  1215. */
  1216. @MINAction(value = FILE_INF_DETAIL)
  1217. public MINActionResult fileInfDetail(
  1218. @MINParam(key = "fileId") String fileId,
  1219. @MINParam(key = "fileIdListStr") String fileIdListStr,
  1220. @MINParam(key = "fileType") String fileType,
  1221. @MINParam(key = "page", defaultValue = "1") int page,
  1222. @MINParam(key = "limit", defaultValue = "100") int limit
  1223. ) throws MINBusinessException {
  1224. MINActionResult res = new MINActionResult();
  1225. db = Service.lookup(IMINDataBaseService.class);
  1226. MINRowBounds rows = new MINRowBounds(page, limit);
  1227. rows.setSeparateSql(true);
  1228. Map<String, String> param = new HashMap<String, String>();
  1229. param.put("fileId", fileId);
  1230. param.put("fileIdListStr", fileIdListStr);
  1231. param.put("fileType", fileType);
  1232. // 查询明细信息
  1233. List fileInfDetailList = Service.lookup(IDianwangService.class).queryFileInfDetail(param, rows);
  1234. res.set(IMINBusinessConstant.F_PAGING_LAY, fileInfDetailList);
  1235. res.set(IMINBusinessConstant.F_PAGING_COUNT, rows.getCount());
  1236. return res;
  1237. }
  1238. /**
  1239. * 原始数据文件下载
  1240. * @param type
  1241. * @param response
  1242. * @return
  1243. * @throws MINBusinessException
  1244. * @throws IOException
  1245. */
  1246. @MINAction(value = FILE_DATA_DOWNLOAD)
  1247. public HttpServletResponse fileDataDownload(
  1248. @MINParam(key = "type") String type,
  1249. @MINParam(key = "date") String date,
  1250. HttpServletResponse response
  1251. ) throws MINBusinessException, IOException, ParseException {
  1252. db = Service.lookup(IMINDataBaseService.class);
  1253. date = date.replaceAll(" ", "");
  1254. date = date.replaceAll("-", "");
  1255. OutputStream os = null;
  1256. ServletOutputStream ros = null;
  1257. ros = response.getOutputStream();
  1258. os = new BufferedOutputStream(ros);
  1259. // 台区停电
  1260. if(Constant.FILE_DETAIL_TYPE_00.equals(type)) {
  1261. response.setContentType("application/application/vnd.ms-excel");
  1262. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "台区停电数据.xls", "UTF-8"));
  1263. DwFileDetail00Example example = new DwFileDetail00Example();
  1264. example.createCriteria().andDateGreaterThanOrEqualTo(date.substring(0, 8)).andDateLessThanOrEqualTo(date.substring(8, 16));
  1265. List<DwFileDetail00> selectByExample = db.getMybatisMapper(DwFileDetail00Mapper.class).selectByExample(example);
  1266. ExportExcelUtil<DwFileDetail00> util = new ExportExcelUtil<DwFileDetail00>();
  1267. String[] header = {"系统编号","原EXCEL编号","台区编号","台区名称","数据日期","单位","供电所名称","终端名称","终端编号","终端地址码","停电时间","来电时间","所属文件id"};
  1268. util.exportExcel(date, selectByExample, os, "2007", header);
  1269. } else if (Constant.FILE_DETAIL_TYPE_01.equals(type)) {
  1270. response.setContentType("application/application/vnd.ms-excel");
  1271. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "终端投退运数据.xls", "UTF-8"));
  1272. DwFileDetail01Example example = new DwFileDetail01Example();
  1273. example.createCriteria().andExcelTytimeGreaterThanOrEqualTo(date.substring(0, 8) + "000000").andExcelTytimeLessThanOrEqualTo(date.substring(8, 16) + "235959");
  1274. List<DwFileDetail01> selectByExample = db.getMybatisMapper(DwFileDetail01Mapper.class).selectByExample(example);
  1275. ExportExcelUtil<DwFileDetail01> util = new ExportExcelUtil<DwFileDetail01>();
  1276. String[] header = {"系统编号","ID","TNAME","CMODE","VALUE","facname","type","fdid","yxstatus","tytime","所属文件id"};
  1277. util.exportExcel(date, selectByExample, os, "2007", header);
  1278. } else if (Constant.FILE_DETAIL_TYPE_02.equals(type)) {
  1279. response.setContentType("application/application/vnd.ms-excel");
  1280. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "FA动作数据.xls", "UTF-8"));
  1281. DwFileDetail02Example example = new DwFileDetail02Example();
  1282. example.createCriteria().andBeginTimeGreaterThanOrEqualTo(date.substring(0, 8) + "000000").andEndTimeLessThanOrEqualTo(date.substring(8, 16) + "235959");
  1283. List<DwFileDetail02> selectByExample = db.getMybatisMapper(DwFileDetail02Mapper.class).selectByExample(example);
  1284. ExportExcelUtil<DwFileDetail02> util = new ExportExcelUtil<DwFileDetail02>();
  1285. String[] header = {"系统编号","原EXCEL编号","故障停电开始时间","故障停电结束时间","供电类型","出线变电站","线路名称","线路类型","启动FA","故障区间判断","故障前后段恢复","故障隔离","所属文件id"};
  1286. util.exportExcel(date, selectByExample, os, "2007", header);
  1287. } else if (Constant.FILE_DETAIL_TYPE_03.equals(type)) {
  1288. response.setContentType("application/application/vnd.ms-excel");
  1289. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "低电压数据.xls", "UTF-8"));
  1290. DwFileDetail03Example example = new DwFileDetail03Example();
  1291. example.createCriteria().andSjrqGreaterThanOrEqualTo(date.substring(0, 8)).andSjrqLessThanOrEqualTo(date.substring(8, 16));
  1292. List<DwFileDetail03> selectByExample = db.getMybatisMapper(DwFileDetail03Mapper.class).selectByExample(example);
  1293. ExportExcelUtil<DwFileDetail03> util = new ExportExcelUtil<DwFileDetail03>();
  1294. String[] header = {"系统编号","原EXCEL编号","市公司名称","县公司名称","变电站名称","线路名称","台区id","变压器名称","用户管理单位名称1","用户编号","用户名称","用户管理单位名称2","电压最大值","电压最小值","电压合格率","超上限率","超下限率","低压时长","供电类型","累计天数","数据日期","供电单位","所属文件id"};
  1295. util.exportExcel(date, selectByExample, os, "2007", header);
  1296. } else if (Constant.FILE_DETAIL_TYPE_04.equals(type)) {
  1297. response.setContentType("application/application/vnd.ms-excel");
  1298. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "过电压数据.xls", "UTF-8"));
  1299. DwFileDetail04Example example = new DwFileDetail04Example();
  1300. example.createCriteria().andSjrqGreaterThanOrEqualTo(date.substring(0, 8)).andSjrqLessThanOrEqualTo(date.substring(8, 16));
  1301. List<DwFileDetail04> selectByExample = db.getMybatisMapper(DwFileDetail04Mapper.class).selectByExample(example);
  1302. ExportExcelUtil<DwFileDetail04> util = new ExportExcelUtil<DwFileDetail04>();
  1303. String[] header = {"系统编号","原EXCEL编号","市公司名称","县公司名称","变电站名称","线路名称","台区id","变压器名称","用户管理单位名称1","用户编号","用户名称","用户管理单位名称2","电压最大值","电压最小值","电压合格率","超上限率","超下限率","过电压时长","供电类型","累计天数","供电单位","数据日期","所属文件id"};
  1304. util.exportExcel(date, selectByExample, os, "2007", header);
  1305. } else if (Constant.FILE_DETAIL_TYPE_05.equals(type)) {
  1306. response.setContentType("application/application/vnd.ms-excel");
  1307. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "95598工单数据.xls", "UTF-8"));
  1308. DwFileDetail05Example example = new DwFileDetail05Example();
  1309. example.createCriteria().andSlsjGreaterThanOrEqualTo(date.substring(0, 8)).andSlsjLessThanOrEqualTo(date.substring(8, 16));
  1310. List<DwFileDetail05> selectByExample = db.getMybatisMapper(DwFileDetail05Mapper.class).selectByExample(example);
  1311. ExportExcelUtil<DwFileDetail05> util = new ExportExcelUtil<DwFileDetail05>();
  1312. String[] header = {"系统编号","原EXCEL编号","工单编号","国网工单编号","状态","业务类型","当前步骤","受理人员","受理时间","受理内容","用户编号","用户名称","联系地址","联系电话","回访内容","一级分类","二级分类","业务子类","上级单位","供电单位","抄表段","处理结果","处理单位","处理部门","关联工单","问题原因分类","工单分级","责任部门","归档时间","挂起时间","挂起原因","服务渠道","省级回退责任原因","所属文件id"};
  1313. util.exportExcel(date, selectByExample, os, "2007", header);
  1314. } else if (Constant.FILE_DETAIL_TYPE_06.equals(type)) {
  1315. response.setContentType("application/application/vnd.ms-excel");
  1316. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(date + "计停非计停数据.xls", "UTF-8"));
  1317. DwFileDetail07Example example = new DwFileDetail07Example();
  1318. example.createCriteria().andTimeGreaterThanOrEqualTo(date.substring(0, 8) + "000000").andTimeLessThanOrEqualTo(date.substring(8, 16) + "235959");
  1319. List<DwFileDetail07> selectByExample = db.getMybatisMapper(DwFileDetail07Mapper.class).selectByExample(example);
  1320. ExportExcelUtil<DwFileDetail07> util = new ExportExcelUtil<DwFileDetail07>();
  1321. String[] header = {"系统编号","原EXCEL编号","类型","单位","设备名称","发生时间","事项类型","馈线自动化动作情况","跳闸类型","故障原因","重合闸动作情况","处理纪事","异常概况","所属文件id"};
  1322. util.exportExcel(date, selectByExample, os, "2007", header);
  1323. }else if (Constant.FILE_DETAIL_TYPE_07.equals(type)) {//客户明细
  1324. }else if (Constant.FILE_DETAIL_TYPE_08.equals(type)) {//配变过重载
  1325. response.setContentType("application/application/vnd.ms-excel");
  1326. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("配变过重载数据.xls", "UTF-8"));
  1327. DwFileDetail09Example example = new DwFileDetail09Example();
  1328. example.createCriteria().andWcsjGreaterThanOrEqualTo(StringUtil.ObjNumToDate(date.substring(0, 8) + "000000"))
  1329. .andWcsjLessThanOrEqualTo(StringUtil.ObjNumToDate(date.substring(8, 16) + "235959"));
  1330. example.setOrderByClause("dfd9_sequ");
  1331. List<DwFileDetail09> selectByExample = db.getMybatisMapper(DwFileDetail09Mapper.class).selectByExample(example);
  1332. ExportExcelUtil<DwFileDetail09> util = new ExportExcelUtil<DwFileDetail09>();
  1333. String[] header = {"系统编号","原EXCEL编号","月份",
  1334. "单位","班组名称","公变名称","线路名称","负载率(%) ","最大负载率(%)","最大负载率发生时刻时间",
  1335. "额定容量(kVA) ","过(重)载原因分类 ","具体原因(详细说明原因情况)","解决措施分类 ","具体解决措施(详细说明解决措施)",
  1336. "完成时间","三相不平衡率(%)(最大负荷) ","A相电流(A)","B相电流(A)","C相电流(A)","过载时长(小时)",
  1337. "用户数量","重载时长","营销ID","PMSID","所属文件ID",""};
  1338. util.exportExcel("配变过重载数据", selectByExample, os, "2007", header);
  1339. }else if (Constant.FILE_DETAIL_TYPE_09.equals(type)) {//线路过重载
  1340. response.setContentType("application/application/vnd.ms-excel");
  1341. response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode("线路过重载数据.xls", "UTF-8"));
  1342. DwFileDetail10Example example = new DwFileDetail10Example();
  1343. example.createCriteria().andWcsjGreaterThanOrEqualTo(StringUtil.ObjNumToDate(date.substring(0, 8) + "000000"))
  1344. .andWcsjLessThanOrEqualTo(StringUtil.ObjNumToDate(date.substring(8, 16) + "235959"));
  1345. example.setOrderByClause("dfd10_sequ");
  1346. List<DwFileDetail10> selectByExample = db.getMybatisMapper(DwFileDetail10Mapper.class).selectByExample(example);
  1347. ExportExcelUtil<DwFileDetail10> util = new ExportExcelUtil<DwFileDetail10>();
  1348. String[] header = {"系统编号","原EXCEL编号","月份",
  1349. "所属县公司","班组名称 ","变电站名称","线路名称 ","额定电流(A)","负载率(%) ","过(重)载原因分类",
  1350. "具体原因(详细说明原因情况) ","解决措施分类 ","具体解决措施(详细说明解决措施) ","完成时间 ",
  1351. "过载时长(小时) ","运行电流(A)","发生时刻 ","最大电流(A)","最大值发生时刻","配变数量(台)",
  1352. "配变容量(kVA)","是否自动化","PMSID","所属文件ID",""};
  1353. util.exportExcel("线路过重载数据", selectByExample, os, "2007", header);
  1354. }
  1355. return response;
  1356. }
  1357. }