c320ad8a95d2d1b6d66958b6060e6f5b26043f0d.svn-base 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740
  1. package com.sinosoft.gps.bgd_mxb.DAO;
  2. import java.io.FileInputStream;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8. import org.apache.poi.hssf.usermodel.HSSFCell;
  9. import org.apache.poi.hssf.usermodel.HSSFSheet;
  10. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  11. import org.apache.poi.ss.usermodel.Cell;
  12. import org.apache.poi.xssf.usermodel.XSSFCell;
  13. import org.apache.poi.xssf.usermodel.XSSFSheet;
  14. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  15. import com.formaction.vo.Msg;
  16. import com.persistence.service.assitant.generator.IdentityGenerator;
  17. import com.sinosoft.common.util.DateUtil;
  18. import com.sinosoft.em.alert.duty.records.dao.EcmDutyDao;
  19. import com.sinosoft.em.alert.duty.records.vo.EcmDutyDetail;
  20. import com.sinosoft.gps.bgd_mxb.vo.BGDBaoBiao;
  21. import com.sinosoft.gps.bgd_mxb.vo.BGDmingxi;
  22. import com.sinosoft.gps.bgd_mxb.vo.ECMGPSLIST;
  23. import com.sinosoft.gps.bgd_mxb.vo.ECMGPSLIST2;
  24. import com.sinosoft.lz.system.department.Department;
  25. import com.sinosoft.lz.system.department.DepartmentDao;
  26. public class ListExcel {
  27. // public Msg readExcel(String filePath,String oper_name, String oper_dept) {
  28. public Msg readExcel(String filePath,String writer, String write_dept,String taskId/*,String taskName,String taskTime*/) {
  29. Msg msg=new Msg();
  30. try {
  31. String excelType = filePath.substring(filePath.lastIndexOf(".") + 1);
  32. ECMGPSLIST_Dao listDao = new ECMGPSLIST_Dao();
  33. /******************通过任务id读取保供电范围的单位名称**************************/
  34. List<String[]> bgdCorpList = listDao.getBGDCorpByTaskId(taskId);
  35. String bgdArea = bgdCorpList.get(0)[0];
  36. String[] bgdAreaArr = null;
  37. if(bgdArea.contains(",")){
  38. bgdAreaArr = bgdArea.split(",");
  39. }
  40. /******************通过任务id读取保供电范围的单位名称**************************/
  41. // Read the Excel 2003-2007
  42. if (excelType != null && !"".equalsIgnoreCase(excelType)
  43. && !"xlsx".equalsIgnoreCase(excelType)) {
  44. // 创建对Excel工作簿文件的引用
  45. HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));
  46. //只读一页
  47. HSSFSheet childSheet = workbook.getSheetAt(0);
  48. //************************检查是否匹配模版*****************************
  49. childSheet.getRow(1).getCell(0).setCellType(Cell.CELL_TYPE_STRING);
  50. String dw=childSheet.getRow(1).getCell(0).getStringCellValue(); // 单位
  51. childSheet.getRow(1).getCell(1).setCellType(Cell.CELL_TYPE_STRING);
  52. String checkInput_men = childSheet.getRow(1).getCell(1).getStringCellValue(); //投入人员(人次)
  53. childSheet.getRow(1).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  54. String checkInput_car = childSheet.getRow(1).getCell(2).getStringCellValue(); //投入车辆(台次)
  55. childSheet.getRow(1).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  56. String fdc = childSheet.getRow(1).getCell(3).getStringCellValue(); //投入应急发电车(台)
  57. childSheet.getRow(1).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  58. String fdj = childSheet.getRow(1).getCell(4).getStringCellValue(); //投入应急发电机(台)
  59. childSheet.getRow(1).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  60. String xinghao = childSheet.getRow(1).getCell(5).getStringCellValue(); //型号
  61. childSheet.getRow(1).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  62. String rongliang = childSheet.getRow(1).getCell(6).getStringCellValue(); //容量
  63. childSheet.getRow(1).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  64. String changjia = childSheet.getRow(1).getCell(7).getStringCellValue(); //厂家
  65. childSheet.getRow(1).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  66. String qtzhuagnbei = childSheet.getRow(1).getCell(8).getStringCellValue(); //其他应急装备
  67. if(!"单位".equals(dw) || !"投入人员(人次)".equals(checkInput_men) || !"投入车辆(车次)".equals(checkInput_car) || !"投入应急发电车(台)".equals(fdc) || !"投入应急发电机(台)".equals(fdj)
  68. || !"型号".equals(xinghao) || !"容量".equals(rongliang) || !"厂家".equals(changjia) || !"其他应急装备".equals(qtzhuagnbei)) {
  69. msg.setSucsess("false");
  70. msg.setInfo("22");//模版不匹配
  71. workbook.close();
  72. return msg;
  73. }
  74. List<BGDmingxi> gpsList2 = new ArrayList<BGDmingxi>();
  75. int rowCnt = childSheet.getLastRowNum();
  76. System.out.println("rowCnt"+ rowCnt);
  77. for (int r = 2; r <= rowCnt; r++) {// 循环该 子sheet row
  78. // EcmDutyDetail detail = new EcmDutyDetail();
  79. BGDmingxi list2 = new BGDmingxi();
  80. list2.setINPUT_NAME(writer);//填报人
  81. list2.setINPUT_DEPT(write_dept);//填报单位
  82. list2.setFD_OBJECTID(IdentityGenerator.getIdentityGenerator().gerenalIdentity(613));//主键
  83. /*list2.setFD_TASK(taskId);//任务id
  84. list2.setFD_TASK_NAME(taskName);//任务名称
  85. list2.setBGD_RW_TIME(taskTime);//任务时间
  86. */
  87. childSheet.getRow(r).getCell(0).setCellType(Cell.CELL_TYPE_STRING);
  88. list2.setBGD_DW(childSheet.getRow(r).getCell(0).getStringCellValue());//单位
  89. if(!checkBGDArea(childSheet.getRow(r).getCell(0).getStringCellValue(), bgdAreaArr)){
  90. msg.setSucsess("false1");
  91. msg.setInfo(r+"_"+1);
  92. workbook.close();
  93. return msg;
  94. }
  95. childSheet.getRow(r).getCell(1).setCellType(Cell.CELL_TYPE_STRING);
  96. list2.setMAN_COUNT(childSheet.getRow(r).getCell(1).getStringCellValue());//人次
  97. if(!checkDataType(3 , childSheet.getRow(r).getCell(1).getStringCellValue())){
  98. msg.setSucsess("false");
  99. msg.setInfo(r+"_"+2);
  100. workbook.close();
  101. return msg;
  102. }
  103. childSheet.getRow(r).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  104. list2.setCAR_COUNT(childSheet.getRow(r).getCell(2).getStringCellValue());//车次
  105. if(!checkDataType(3 , childSheet.getRow(r).getCell(2).getStringCellValue())){
  106. msg.setSucsess("false");
  107. msg.setInfo(r+"_"+3);
  108. workbook.close();
  109. return msg;
  110. }
  111. childSheet.getRow(r).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  112. list2.setBGD_FDC(childSheet.getRow(r).getCell(3).getStringCellValue());//发电车
  113. if(!checkDataType(3 , childSheet.getRow(r).getCell(3).getStringCellValue())){
  114. msg.setSucsess("false");
  115. msg.setInfo(r+"_"+4);
  116. workbook.close();
  117. return msg;
  118. }
  119. childSheet.getRow(r).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  120. list2.setBGD_FDJ(childSheet.getRow(r).getCell(4).getStringCellValue());//发电机
  121. if(!checkDataType(3 , childSheet.getRow(r).getCell(4).getStringCellValue())){
  122. msg.setSucsess("false");
  123. msg.setInfo(r+"_"+5);
  124. workbook.close();
  125. return msg;
  126. }
  127. childSheet.getRow(r).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  128. list2.setXINGHAO( childSheet.getRow(r).getCell(5).getStringCellValue()); //型号
  129. childSheet.getRow(r).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  130. list2.setRONGLIANG(childSheet.getRow(r).getCell(6).getStringCellValue()); //容量
  131. childSheet.getRow(r).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  132. list2.setCHANJIA(childSheet.getRow(r).getCell(7).getStringCellValue()); //厂家
  133. childSheet.getRow(r).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  134. list2.setQTZHUNGBEI(childSheet.getRow(r).getCell(8).getStringCellValue()); //其他应急装备
  135. gpsList2.add(list2);
  136. }
  137. workbook.close();
  138. // EcmDutyDao dao = new EcmDutyDao();
  139. if(listDao.saveBGDmingxi(gpsList2,taskId)){
  140. msg.setSucsess("true");
  141. }
  142. // }
  143. } else { // Read the Excel 2010
  144. XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(filePath));
  145. // for (int i = 0; i < workbook.getNumberOfSheets(); i++) {// 循环sheet
  146. // System.out.println("==========开始第 " + i
  147. // + " 个sheet============");
  148. XSSFSheet childSheet = workbook.getSheetAt(0);
  149. // EcmEmDuty duty = new EcmEmDuty();
  150. ECMGPSLIST list1 = new ECMGPSLIST();
  151. //************************检查是否匹配模版*****************************
  152. childSheet.getRow(1).getCell(0).setCellType(Cell.CELL_TYPE_STRING);
  153. String dw=childSheet.getRow(1).getCell(0).getStringCellValue(); // 单位
  154. childSheet.getRow(1).getCell(1).setCellType(Cell.CELL_TYPE_STRING);
  155. String checkInput_men = childSheet.getRow(1).getCell(1).getStringCellValue(); //投入人员(人次)
  156. childSheet.getRow(1).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  157. String checkInput_car = childSheet.getRow(1).getCell(2).getStringCellValue(); //投入车辆(台次)
  158. childSheet.getRow(1).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  159. String fdc = childSheet.getRow(1).getCell(3).getStringCellValue(); //投入应急发电车(台)
  160. childSheet.getRow(1).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  161. String fdj = childSheet.getRow(1).getCell(4).getStringCellValue(); //投入应急发电机(台)
  162. childSheet.getRow(1).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  163. String xinghao = childSheet.getRow(1).getCell(5).getStringCellValue(); //型号
  164. childSheet.getRow(1).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  165. String rongliang = childSheet.getRow(1).getCell(6).getStringCellValue(); //容量
  166. childSheet.getRow(1).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  167. String changjia = childSheet.getRow(1).getCell(7).getStringCellValue(); //厂家
  168. childSheet.getRow(1).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  169. String qtzhuagnbei = childSheet.getRow(1).getCell(8).getStringCellValue(); //其他应急装备
  170. if(!"单位".equals(dw) || !"投入人员(人次)".equals(checkInput_men) || !"投入车辆(车次)".equals(checkInput_car) || !"投入应急发电车(台)".equals(fdc) || !"投入应急发电机(台)".equals(fdj)
  171. || !"型号".equals(xinghao) || !"容量".equals(rongliang) || !"厂家".equals(changjia) || !"其他应急装备".equals(qtzhuagnbei)) {
  172. msg.setSucsess("false");
  173. msg.setInfo("22");
  174. workbook.close();
  175. return msg;
  176. }
  177. List<BGDmingxi> gsplist2 = new ArrayList<BGDmingxi>();
  178. for (int r = 2; r < childSheet.getPhysicalNumberOfRows(); r++) {// 循环该 子sheet row
  179. XSSFCell cel = childSheet.getRow(r).getCell(0);
  180. if(cel==null){
  181. continue;
  182. }
  183. // EcmDutyDetail detail = new EcmDutyDetail();
  184. BGDmingxi list2 = new BGDmingxi();
  185. list2.setINPUT_NAME(writer);//填报人
  186. list2.setINPUT_DEPT(write_dept);//填报单位
  187. list2.setFD_OBJECTID(IdentityGenerator.getIdentityGenerator().gerenalIdentity(613));//主键
  188. childSheet.getRow(r).getCell(0).setCellType(Cell.CELL_TYPE_STRING);
  189. list2.setBGD_DW(childSheet.getRow(r).getCell(0).getStringCellValue());//单位
  190. if(!checkBGDArea(childSheet.getRow(r).getCell(1).getStringCellValue(), bgdAreaArr)){
  191. msg.setSucsess("false1");
  192. msg.setInfo(r+"_"+1);
  193. workbook.close();
  194. return msg;
  195. }
  196. childSheet.getRow(r).getCell(1).setCellType(Cell.CELL_TYPE_STRING);
  197. list2.setMAN_COUNT(childSheet.getRow(r).getCell(1).getStringCellValue());//人次
  198. if(!checkDataType(3 , childSheet.getRow(r).getCell(1).getStringCellValue())){
  199. msg.setSucsess("false");
  200. msg.setInfo(r+"_"+2);
  201. workbook.close();
  202. return msg;
  203. }
  204. childSheet.getRow(r).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  205. list2.setCAR_COUNT(childSheet.getRow(r).getCell(2).getStringCellValue());//车次
  206. if(!checkDataType(3 , childSheet.getRow(r).getCell(2).getStringCellValue())){
  207. msg.setSucsess("false");
  208. msg.setInfo(r+"_"+3);
  209. workbook.close();
  210. return msg;
  211. }
  212. childSheet.getRow(r).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  213. list2.setBGD_FDC(childSheet.getRow(r).getCell(3).getStringCellValue());//发电车
  214. if(!checkDataType(3 , childSheet.getRow(r).getCell(3).getStringCellValue())){
  215. msg.setSucsess("false");
  216. msg.setInfo(r+"_"+4);
  217. workbook.close();
  218. return msg;
  219. }
  220. childSheet.getRow(r).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  221. list2.setBGD_FDJ(childSheet.getRow(r).getCell(4).getStringCellValue());//发电机
  222. if(!checkDataType(3 , childSheet.getRow(r).getCell(4).getStringCellValue())){
  223. msg.setSucsess("false");
  224. msg.setInfo(r+"_"+5);
  225. workbook.close();
  226. return msg;
  227. }
  228. childSheet.getRow(r).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  229. list2.setXINGHAO( childSheet.getRow(r).getCell(5).getStringCellValue()); //型号
  230. childSheet.getRow(r).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  231. list2.setRONGLIANG(childSheet.getRow(r).getCell(6).getStringCellValue()); //容量
  232. childSheet.getRow(r).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  233. list2.setCHANJIA(childSheet.getRow(r).getCell(7).getStringCellValue()); //厂家
  234. childSheet.getRow(r).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  235. list2.setQTZHUNGBEI(childSheet.getRow(r).getCell(8).getStringCellValue()); //其他应急装备
  236. gsplist2.add(list2);
  237. }
  238. workbook.close();
  239. // EcmDutyDao dao = new EcmDutyDao();
  240. if(listDao.saveBGDmingxi(gsplist2,taskId)){
  241. msg.setSucsess("true");
  242. }
  243. }
  244. //}
  245. } catch (Exception e) {
  246. throw new RuntimeException(e.getMessage());
  247. }
  248. return msg;
  249. }
  250. public Msg readTaskBaoBiaoExcel(String filePath,String writer,String userId,String corpName, String write_dept,String taskId) {
  251. Msg msg=new Msg();
  252. try {
  253. String excelType = filePath.substring(filePath.lastIndexOf(".") + 1);
  254. ECMGPSLIST_Dao listDao = new ECMGPSLIST_Dao();
  255. /******************通过任务id读取任务编号**************************/
  256. List<String[]> bgdCorpList = listDao.getBGDNumByTaskId(taskId);
  257. String bgdNum = bgdCorpList.get(0)[0];
  258. String bgdName = bgdCorpList.get(0)[1];
  259. /******************通过任务id读取任务编号**************************/
  260. // Read the Excel 2003-2007
  261. if (excelType != null && !"".equalsIgnoreCase(excelType)
  262. && !"xlsx".equalsIgnoreCase(excelType)) {
  263. // 创建对Excel工作簿文件的引用
  264. HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));
  265. //只读一页
  266. HSSFSheet childSheet = workbook.getSheetAt(0);
  267. //************************检查是否匹配模版*****************************
  268. childSheet.getRow(3).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  269. String fdcdr = childSheet.getRow(3).getCell(2).getStringCellValue(); //发电车单日最大用量/台
  270. childSheet.getRow(3).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  271. String fdczl = childSheet.getRow(3).getCell(3).getStringCellValue(); //发电车投入总量/台次
  272. childSheet.getRow(3).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  273. String fdjdr = childSheet.getRow(3).getCell(4).getStringCellValue(); ////发电机单日最大用量/台
  274. childSheet.getRow(3).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  275. String fdjzll = childSheet.getRow(3).getCell(5).getStringCellValue(); //发电机投入总量/台次
  276. childSheet.getRow(2).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  277. String cheliang = childSheet.getRow(2).getCell(6).getStringCellValue(); //车辆/辆次
  278. childSheet.getRow(2).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  279. String zbzh = childSheet.getRow(2).getCell(7).getStringCellValue(); //值班指挥管理人员/人日
  280. childSheet.getRow(2).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  281. String bdwbz = childSheet.getRow(2).getCell(8).getStringCellValue(); //本单位班组人员/人日
  282. childSheet.getRow(2).getCell(9).setCellType(Cell.CELL_TYPE_STRING);
  283. String abry = childSheet.getRow(2).getCell(9).getStringCellValue(); //安保人员/人日
  284. childSheet.getRow(2).getCell(10).setCellType(Cell.CELL_TYPE_STRING);
  285. String wwsc = childSheet.getRow(2).getCell(10).getStringCellValue(); //外委生产人员/人日
  286. /* if(!"单日最大用量/台".equals(fdcdr) || !"投入总量/台次".equals(fdczl)
  287. || !"单日最大用量/台".equals(fdjdr) || !"投入总量/台次".equals(fdjzll) || !"车辆/辆次".equals(cheliang) ||
  288. !"值班指挥管理人员/人日".equals(zbzh) || !"本单位班组人员/人日".equals(bdwbz) || !"安保人员/人日".equals(abry)
  289. || !"外委生产人员/人日".equals(wwsc)) {
  290. msg.setSucsess("false");
  291. msg.setInfo("22");//模版不匹配
  292. workbook.close();
  293. return msg;
  294. }*/
  295. List<BGDBaoBiao> gpsList2 = new ArrayList<BGDBaoBiao>();
  296. int rowCnt = childSheet.getLastRowNum();
  297. System.out.println("rowCnt"+ rowCnt);
  298. for (int r = 4; r < rowCnt; r++) {// 循环该 子sheet row
  299. String cel = childSheet.getRow(r).getCell(2).getStringCellValue();
  300. if(cel==null || "".equals(cel)){
  301. continue;
  302. }
  303. // EcmDutyDetail detail = new EcmDutyDetail();
  304. BGDBaoBiao list2 = new BGDBaoBiao();
  305. list2.setINPUT_NAME_ID(userId);
  306. list2.setINPUT_TIME(writer);
  307. list2.setINPUT_UNIT_ID(write_dept);
  308. list2.setINPUT_UNIT_NAME(corpName);
  309. list2.setGPS_TASK_NUMBER(bgdNum); //保供电任务编号
  310. list2.setFD_OBJECTID(IdentityGenerator.getIdentityGenerator().gerenalIdentity(620));//主键
  311. /*list2.setFD_TASK(taskId);//任务id
  312. list2.setFD_TASK_NAME(taskName);//任务名称
  313. list2.setBGD_RW_TIME(taskTime);//任务时间
  314. */
  315. childSheet.getRow(r).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  316. list2.setGPS_TASK_FDC_DAY(childSheet.getRow(r).getCell(2).getStringCellValue()); //发电车单日最大用量/台
  317. if(!checkDataType(3 , childSheet.getRow(r).getCell(2).getStringCellValue())){
  318. msg.setSucsess("false");
  319. msg.setInfo(r+"_"+3);
  320. workbook.close();
  321. return msg;
  322. }
  323. childSheet.getRow(r).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  324. list2.setGPS_TASK__FDC_TOTAL(childSheet.getRow(r).getCell(3).getStringCellValue());//发电车投入总量/台次
  325. if(!checkDataType(3 , childSheet.getRow(r).getCell(3).getStringCellValue())){
  326. msg.setSucsess("false");
  327. msg.setInfo(r+"_"+4);
  328. workbook.close();
  329. return msg;
  330. }
  331. childSheet.getRow(r).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  332. list2.setGPS_TASK_FDJ_DAY(childSheet.getRow(r).getCell(4).getStringCellValue());//发电机单日最大用量/台
  333. if(!checkDataType(3 , childSheet.getRow(r).getCell(4).getStringCellValue())){
  334. msg.setSucsess("false");
  335. msg.setInfo(r+"_"+5);
  336. workbook.close();
  337. return msg;
  338. }
  339. childSheet.getRow(r).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  340. list2.setGPS_TASK_FDJ_TOTAL( childSheet.getRow(r).getCell(5).getStringCellValue()); //发电机投入总量/台次
  341. if(!checkDataType(3 , childSheet.getRow(r).getCell(5).getStringCellValue())){
  342. msg.setSucsess("false");
  343. msg.setInfo(r+"_"+6);
  344. workbook.close();
  345. return msg;
  346. }
  347. childSheet.getRow(r).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  348. list2.setGPS_TASK_CAR(childSheet.getRow(r).getCell(6).getStringCellValue()); //车辆/辆次
  349. if(!checkDataType(3 , childSheet.getRow(r).getCell(6).getStringCellValue())){
  350. msg.setSucsess("false");
  351. msg.setInfo(r+"_"+7);
  352. workbook.close();
  353. return msg;
  354. }
  355. childSheet.getRow(r).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  356. list2.setGPS_TASK_ZBZHGLRY(childSheet.getRow(r).getCell(7).getStringCellValue()); //值班指挥管理人员/人日
  357. if(!checkDataType(3 , childSheet.getRow(r).getCell(7).getStringCellValue())){
  358. msg.setSucsess("false");
  359. msg.setInfo(r+"_"+8);
  360. workbook.close();
  361. return msg;
  362. }
  363. childSheet.getRow(r).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  364. list2.setGPS_TASK_BDWBZRY(childSheet.getRow(r).getCell(8).getStringCellValue()); //本单位班组人员/人日
  365. if(!checkDataType(3 , childSheet.getRow(r).getCell(8).getStringCellValue())){
  366. msg.setSucsess("false");
  367. msg.setInfo(r+"_"+9);
  368. workbook.close();
  369. return msg;
  370. }
  371. childSheet.getRow(r).getCell(9).setCellType(Cell.CELL_TYPE_STRING);
  372. list2.setGPS_TASK_ABRY( childSheet.getRow(r).getCell(9).getStringCellValue()); //安保人员/人日
  373. if(!checkDataType(3 , childSheet.getRow(r).getCell(9).getStringCellValue())){
  374. msg.setSucsess("false");
  375. msg.setInfo(r+"_"+10);
  376. workbook.close();
  377. return msg;
  378. }
  379. childSheet.getRow(r).getCell(10).setCellType(Cell.CELL_TYPE_STRING);
  380. list2.setGPS_TASK_WWSCRY( childSheet.getRow(r).getCell(10).getStringCellValue()); //外委生产人员/人日
  381. if(!checkDataType(3 , childSheet.getRow(r).getCell(10).getStringCellValue())){
  382. msg.setSucsess("false");
  383. msg.setInfo(r+"_"+11);
  384. workbook.close();
  385. return msg;
  386. }
  387. gpsList2.add(list2);
  388. }
  389. workbook.close();
  390. // EcmDutyDao dao = new EcmDutyDao();
  391. if(listDao.saveBGDBaoBiao(gpsList2,taskId,bgdNum,bgdName)){
  392. msg.setSucsess("true");
  393. }
  394. // }
  395. } else { // Read the Excel 2010
  396. XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(filePath));
  397. // for (int i = 0; i < workbook.getNumberOfSheets(); i++) {// 循环sheet
  398. // System.out.println("==========开始第 " + i
  399. // + " 个sheet============");
  400. XSSFSheet childSheet = workbook.getSheetAt(0);
  401. // EcmEmDuty duty = new EcmEmDuty();
  402. ECMGPSLIST list1 = new ECMGPSLIST();
  403. //************************检查是否匹配模版*****************************
  404. childSheet.getRow(1).getCell(1).setCellType(Cell.CELL_TYPE_STRING);
  405. String taskNum=childSheet.getRow(1).getCell(1).getStringCellValue(); //保供电任务编号
  406. childSheet.getRow(3).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  407. String fdcdr = childSheet.getRow(3).getCell(2).getStringCellValue(); //发电车单日最大用量/台
  408. childSheet.getRow(3).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  409. String fdczl = childSheet.getRow(3).getCell(3).getStringCellValue(); //发电车投入总量/台次
  410. childSheet.getRow(3).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  411. String fdjdr = childSheet.getRow(3).getCell(4).getStringCellValue(); ////发电机单日最大用量/台
  412. childSheet.getRow(3).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  413. String fdjzll = childSheet.getRow(3).getCell(5).getStringCellValue(); //发电机投入总量/台次
  414. childSheet.getRow(2).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  415. String cheliang = childSheet.getRow(2).getCell(6).getStringCellValue(); //车辆/辆次
  416. childSheet.getRow(2).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  417. String zbzh = childSheet.getRow(2).getCell(7).getStringCellValue(); //值班指挥管理人员/人日
  418. childSheet.getRow(2).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  419. String bdwbz = childSheet.getRow(2).getCell(8).getStringCellValue(); //本单位班组人员/人日
  420. childSheet.getRow(2).getCell(9).setCellType(Cell.CELL_TYPE_STRING);
  421. String abry = childSheet.getRow(2).getCell(9).getStringCellValue(); //安保人员/人日
  422. childSheet.getRow(2).getCell(10).setCellType(Cell.CELL_TYPE_STRING);
  423. String wwsc = childSheet.getRow(2).getCell(10).getStringCellValue(); //外委生产人员/人日
  424. /*
  425. if(!"保供电任务编号".equals(taskNum) || !"单日最大用量/台".equals(fdcdr) || !"投入总量/台次".equals(fdczl)
  426. || !"单日最大用量/台".equals(fdjdr) || !"投入总量/台次".equals(fdjzll) || !"车辆/辆次".equals(cheliang) ||
  427. !"值班指挥管理人员/人日".equals(zbzh) || !"本单位班组人员/人日".equals(bdwbz) || !"安保人员/人日".equals(abry)
  428. || !"外委生产人员/人日".equals(wwsc)) {
  429. msg.setSucsess("false");
  430. msg.setInfo("22");
  431. workbook.close();
  432. return msg;
  433. }*/
  434. List<BGDBaoBiao> gsplist2 = new ArrayList<BGDBaoBiao>();
  435. for (int r = 4; r < childSheet.getPhysicalNumberOfRows(); r++) {// 循环该 子sheet row
  436. String cel = childSheet.getRow(r).getCell(1).getStringCellValue();
  437. if(cel==null || "".equals(cel)){
  438. continue;
  439. }
  440. // EcmDutyDetail detail = new EcmDutyDetail();
  441. BGDBaoBiao list2 = new BGDBaoBiao();
  442. list2.setINPUT_NAME_ID(userId);
  443. list2.setINPUT_TIME(writer);
  444. list2.setINPUT_UNIT_ID(write_dept);
  445. list2.setINPUT_UNIT_NAME(corpName);
  446. list2.setFD_OBJECTID(IdentityGenerator.getIdentityGenerator().gerenalIdentity(620));//主键
  447. /*list2.setFD_TASK(taskId);//任务id
  448. list2.setFD_TASK_NAME(taskName);//任务名称
  449. list2.setBGD_RW_TIME(taskTime);//任务时间
  450. */
  451. childSheet.getRow(r).getCell(1).setCellType(Cell.CELL_TYPE_STRING);
  452. list2.setGPS_TASK_NUMBER(childSheet.getRow(r).getCell(1).getStringCellValue()); //保供电任务编号
  453. if(!checkBGDNum(childSheet.getRow(r).getCell(1).getStringCellValue(), bgdNum)){
  454. msg.setSucsess("false2");
  455. msg.setInfo(r+"_"+2);
  456. workbook.close();
  457. return msg;
  458. }
  459. childSheet.getRow(r).getCell(2).setCellType(Cell.CELL_TYPE_STRING);
  460. list2.setGPS_TASK_FDC_DAY(childSheet.getRow(r).getCell(2).getStringCellValue()); //发电车单日最大用量/台
  461. if(!checkDataType(3 , childSheet.getRow(r).getCell(2).getStringCellValue())){
  462. msg.setSucsess("false");
  463. msg.setInfo(r+"_"+3);
  464. workbook.close();
  465. return msg;
  466. }
  467. childSheet.getRow(r).getCell(3).setCellType(Cell.CELL_TYPE_STRING);
  468. list2.setGPS_TASK__FDC_TOTAL(childSheet.getRow(r).getCell(3).getStringCellValue());//发电车投入总量/台次
  469. if(!checkDataType(3 , childSheet.getRow(r).getCell(3).getStringCellValue())){
  470. msg.setSucsess("false");
  471. msg.setInfo(r+"_"+4);
  472. workbook.close();
  473. return msg;
  474. }
  475. childSheet.getRow(r).getCell(4).setCellType(Cell.CELL_TYPE_STRING);
  476. list2.setGPS_TASK_FDJ_DAY(childSheet.getRow(r).getCell(4).getStringCellValue());//发电机单日最大用量/台
  477. if(!checkDataType(3 , childSheet.getRow(r).getCell(4).getStringCellValue())){
  478. msg.setSucsess("false");
  479. msg.setInfo(r+"_"+5);
  480. workbook.close();
  481. return msg;
  482. }
  483. childSheet.getRow(r).getCell(5).setCellType(Cell.CELL_TYPE_STRING);
  484. list2.setGPS_TASK_FDJ_TOTAL( childSheet.getRow(r).getCell(5).getStringCellValue()); //发电机投入总量/台次
  485. if(!checkDataType(3 , childSheet.getRow(r).getCell(5).getStringCellValue())){
  486. msg.setSucsess("false");
  487. msg.setInfo(r+"_"+6);
  488. workbook.close();
  489. return msg;
  490. }
  491. childSheet.getRow(r).getCell(6).setCellType(Cell.CELL_TYPE_STRING);
  492. list2.setGPS_TASK_CAR(childSheet.getRow(r).getCell(6).getStringCellValue()); //车辆/辆次
  493. if(!checkDataType(3 , childSheet.getRow(r).getCell(6).getStringCellValue())){
  494. msg.setSucsess("false");
  495. msg.setInfo(r+"_"+7);
  496. workbook.close();
  497. return msg;
  498. }
  499. childSheet.getRow(r).getCell(7).setCellType(Cell.CELL_TYPE_STRING);
  500. list2.setGPS_TASK_ZBZHGLRY(childSheet.getRow(r).getCell(7).getStringCellValue()); //值班指挥管理人员/人日
  501. if(!checkDataType(3 , childSheet.getRow(r).getCell(7).getStringCellValue())){
  502. msg.setSucsess("false");
  503. msg.setInfo(r+"_"+8);
  504. workbook.close();
  505. return msg;
  506. }
  507. childSheet.getRow(r).getCell(8).setCellType(Cell.CELL_TYPE_STRING);
  508. list2.setGPS_TASK_BDWBZRY(childSheet.getRow(r).getCell(8).getStringCellValue()); //本单位班组人员/人日
  509. if(!checkDataType(3 , childSheet.getRow(r).getCell(8).getStringCellValue())){
  510. msg.setSucsess("false");
  511. msg.setInfo(r+"_"+9);
  512. workbook.close();
  513. return msg;
  514. }
  515. childSheet.getRow(r).getCell(9).setCellType(Cell.CELL_TYPE_STRING);
  516. list2.setGPS_TASK_ABRY( childSheet.getRow(r).getCell(9).getStringCellValue()); //安保人员/人日
  517. if(!checkDataType(3 , childSheet.getRow(r).getCell(9).getStringCellValue())){
  518. msg.setSucsess("false");
  519. msg.setInfo(r+"_"+10);
  520. workbook.close();
  521. return msg;
  522. }
  523. childSheet.getRow(r).getCell(10).setCellType(Cell.CELL_TYPE_STRING);
  524. list2.setGPS_TASK_WWSCRY( childSheet.getRow(r).getCell(10).getStringCellValue()); //外委生产人员/人日
  525. if(!checkDataType(3 , childSheet.getRow(r).getCell(10).getStringCellValue())){
  526. msg.setSucsess("false");
  527. msg.setInfo(r+"_"+11);
  528. workbook.close();
  529. return msg;
  530. }
  531. gsplist2.add(list2);
  532. }
  533. workbook.close();
  534. // EcmDutyDao dao = new EcmDutyDao();
  535. if(listDao.saveBGDBaoBiao(gsplist2,taskId,bgdNum,bgdName)){
  536. msg.setSucsess("true");
  537. }
  538. }
  539. //}
  540. } catch (Exception e) {
  541. throw new RuntimeException(e.getMessage());
  542. }
  543. return msg;
  544. }
  545. private boolean checkBGDNum(String stringCellValue, String bgdNum) {
  546. boolean flag = false;
  547. if(bgdNum!=null && bgdNum.equals(stringCellValue)){
  548. flag = true;
  549. }
  550. return flag;
  551. }
  552. /***
  553. * 检查单位是否在保供电范围之内
  554. * @param corp
  555. * @param corps
  556. * @return
  557. */
  558. private boolean checkBGDArea(String corp,String[] corps){
  559. boolean flag = false;
  560. for (int i = 0; i < corps.length; i++) {
  561. if(corp.equals(corps[i])){
  562. flag = true;
  563. break;
  564. }
  565. }
  566. return flag;
  567. }
  568. /***
  569. * 验证数据类型是否符合正则
  570. * 0:时间格式2016-03-10 11:11年月日时分
  571. * 1:手机号码
  572. * 2:人名(中文汉字或英文?)
  573. 、 * @param i
  574. * @param value
  575. */
  576. private boolean checkDataType(int i, String value1) {
  577. System.out.println("====================================");
  578. String el = "";
  579. if(i==0){//0:验证 时间格式2016-03-10 11:11年月日时分
  580. el = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])"
  581. + "|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|"
  582. + "([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))"
  583. + "[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))"
  584. + "|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))\\s{1}[0-5]{1}[0-9]{1}\\:[0-5]{1}[0-9]{1}$";
  585. }else if(i==1){//1:手机号码
  586. el = "^[1]{1}[0-9]{10}$";
  587. }else if(i==2){//2:人名(中文汉字或英文)
  588. el = "^[A-Za-z\u4e00-\u9fa5]+$";
  589. }else if(i==3){//五位以内数字
  590. el = "^[0-9]{1,5}$";
  591. }
  592. Pattern pat = Pattern.compile(el);
  593. Matcher mat = pat.matcher(value1);
  594. boolean dataType = mat.matches();
  595. return dataType;
  596. }
  597. }