DataWareManageAction.java 67 KB

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