8c308d7080e7ea7dbcc329a5574f9c8564b18873.svn-base 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. package cn.com.goldenwater.dcproj.service.impl.homepage;
  2. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  3. import cn.com.goldenwater.dcproj.dao.*;
  4. import cn.com.goldenwater.dcproj.dto.ExcelInspLevelDto;
  5. import cn.com.goldenwater.dcproj.dto.ExcelInspPblm;
  6. import cn.com.goldenwater.dcproj.dto.ExcelInspPersDto;
  7. import cn.com.goldenwater.dcproj.model.*;
  8. import cn.com.goldenwater.dcproj.param.*;
  9. import cn.com.goldenwater.dcproj.service.BisInspKeyRegisterService;
  10. import cn.com.goldenwater.dcproj.service.IndexService;
  11. import cn.com.goldenwater.dcproj.utils.LoadExcel;
  12. import cn.com.goldenwater.id.util.UuidUtil;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.io.File;
  18. import java.text.ParseException;
  19. import java.text.SimpleDateFormat;
  20. import java.util.*;
  21. import java.util.concurrent.CopyOnWriteArrayList;
  22. import java.util.stream.Collectors;
  23. /**
  24. * Created by jinshui on 2019/6/26.
  25. */
  26. @Service
  27. @Transactional
  28. public class IndexServiceImpl implements IndexService {
  29. @Autowired
  30. private BisInspPblmDao bisInspPblmDao;
  31. @Autowired
  32. private ObjInspPblmsDao pblmsDao;
  33. @Autowired
  34. private ObjKeyPblmRelDao objKeyPblmRelDao;
  35. @Autowired
  36. private BisInspKeyRegisterService inspKeyRegisterService;
  37. @Autowired
  38. private BisInspKeyRegisterSectionDao keyRegisterSectionDao;
  39. @Autowired
  40. private BisInspKeyRegSecUnitDao keyRegSecUnitDao;
  41. @Autowired
  42. private BisInspAllRlationPersDao allRlationPersDao;
  43. @Autowired
  44. private BisInspRectFdbkDao inspRectFdbkDao;
  45. @Autowired
  46. private ObjKeyPblmsDao keyPblmsDao;
  47. @Autowired
  48. private AttMampuInfoDao attMampuInfoDao;
  49. @Autowired
  50. private AttWagaBaseDao attWagaBaseDao;
  51. @Autowired
  52. private AttWainBaseDao attWainBaseDao;
  53. @Autowired
  54. private AttSwhsBaseDao attSwhsBaseDao;
  55. @Autowired
  56. private BisInspAllRlationPersDao persDao;
  57. @Autowired
  58. private BisInspAllDao bisInspAllDao;
  59. @Autowired
  60. private BisInspAllRlationDao rlationDao;
  61. @Autowired
  62. private AttRsBaseDao rsBaseDao;
  63. @Override
  64. public void inputExcel() {
  65. String filePath = "D:\\temp\\2019水利工程运行管理台帐0625.xlsx";
  66. Map<String, String> areaMap = new HashMap<>();
  67. areaMap.put("黄河流域", "001010");
  68. areaMap.put("长江流域", "001009");
  69. areaMap.put("珠江流域", "001013");
  70. areaMap.put("海河流域", "001012");
  71. areaMap.put("松花江流域", "001014");
  72. areaMap.put("淮河流域", "001011");
  73. areaMap.put("太湖流域", "001015");
  74. File file = new File(filePath);
  75. if (file.isFile()) {
  76. System.out.println("文件存在!!");
  77. }
  78. List<ExcelInspPblm> exinspPblmList = new ArrayList<>();
  79. try {
  80. exinspPblmList = LoadExcel.getExcelEmpwtrun(filePath);
  81. } catch (Exception e) {
  82. e.printStackTrace();
  83. }
  84. List<String> projectNames = new ArrayList<>();
  85. List<Map<String, String>> orgMap = new ArrayList<>();
  86. for (ExcelInspPblm inspPblm : exinspPblmList) {
  87. Map<String, String> maporg = new HashMap<>();
  88. maporg.put("projectNm", inspPblm.getProjectNm());
  89. maporg.put("firOrg", inspPblm.getFirOrg());
  90. maporg.put("secOrg", inspPblm.getSecOrg());
  91. maporg.put("thiOrg", inspPblm.getThiOrg());
  92. if (!projectNames.contains(inspPblm.getProjectNm())) {
  93. projectNames.add(inspPblm.getProjectNm());
  94. System.out.println("projectNm-->" + inspPblm.getProjectNm());
  95. }
  96. if (!orgMap.contains(maporg)) {
  97. orgMap.add(maporg);
  98. }
  99. }
  100. Map<String, AttMampuInfo> orgs = new HashMap<>();
  101. //添加单位
  102. for (String nm : projectNames) {
  103. BisInspKeyRegisterParam keyRegisterParam = new BisInspKeyRegisterParam();
  104. keyRegisterParam.setNm(nm);
  105. BisInspKeyRegister keyRegister = inspKeyRegisterService.getOne(keyRegisterParam);
  106. if (keyRegister != null) {
  107. for (Map<String, String> org : orgMap) {
  108. String projectNm = org.get("projectNm");
  109. if (!nm.equals(projectNm)) {
  110. continue;
  111. }
  112. //添加一级单位
  113. String firOrg = org.get("firOrg");
  114. if (StringUtils.isNotBlank(firOrg) && !orgs.keySet().contains(nm + firOrg)) {
  115. AttMampuInfoParam param = new AttMampuInfoParam();
  116. param.setNm(firOrg);
  117. param.setLev("1");
  118. param.setRegId(keyRegister.getId());
  119. AttMampuInfo mampuInfo = attMampuInfoDao.getBy(param);
  120. if (mampuInfo == null) {
  121. mampuInfo = new AttMampuInfo();
  122. mampuInfo.setId(UuidUtil.uuid());
  123. mampuInfo.setPid("0");
  124. mampuInfo.setNm(firOrg);
  125. mampuInfo.setIntm(new Date());
  126. mampuInfo.setUptm(new Date());
  127. mampuInfo.setPersId(keyRegister.getRecPersId());
  128. mampuInfo.setRegId(keyRegister.getId());
  129. mampuInfo.setLev("1");
  130. mampuInfo.setLgtd(keyRegister.getLgtd());
  131. mampuInfo.setLttd(keyRegister.getLttd());
  132. mampuInfo.setLgtdPc(keyRegister.getLgtdPc());
  133. mampuInfo.setLttdPc(keyRegister.getLttdPc());
  134. //attMampuInfoDao.insert(mampuInfo);
  135. }
  136. orgs.put(nm + firOrg, mampuInfo);
  137. }
  138. String secOrg = org.get("secOrg");
  139. if (StringUtils.isNotBlank(secOrg) && !orgs.keySet().contains(nm + secOrg)) {
  140. AttMampuInfoParam param = new AttMampuInfoParam();
  141. param.setNm(secOrg);
  142. param.setLev("2");
  143. param.setRegId(keyRegister.getId());
  144. AttMampuInfo mampuInfo = attMampuInfoDao.getBy(param);
  145. if (mampuInfo == null) {
  146. mampuInfo = new AttMampuInfo();
  147. mampuInfo.setId(UuidUtil.uuid());
  148. mampuInfo.setNm(secOrg);
  149. mampuInfo.setIntm(new Date());
  150. mampuInfo.setUptm(new Date());
  151. mampuInfo.setPersId(keyRegister.getRecPersId());
  152. mampuInfo.setRegId(keyRegister.getId());
  153. mampuInfo.setPid(orgs.get(nm + firOrg).getId());
  154. mampuInfo.setLev("2");
  155. mampuInfo.setLgtd(keyRegister.getLgtd());
  156. mampuInfo.setLttd(keyRegister.getLttd());
  157. mampuInfo.setLgtdPc(keyRegister.getLgtdPc());
  158. mampuInfo.setLttdPc(keyRegister.getLttdPc());
  159. //attMampuInfoDao.insert(mampuInfo);
  160. }
  161. orgs.put(nm + secOrg, mampuInfo);
  162. }
  163. String thiOrg = org.get("thiOrg");
  164. if (StringUtils.isNotBlank(thiOrg) && !orgs.keySet().contains(nm + thiOrg)) {
  165. AttMampuInfoParam param = new AttMampuInfoParam();
  166. param.setNm(secOrg);
  167. param.setLev("2");
  168. param.setRegId(keyRegister.getId());
  169. AttMampuInfo mampuInfo = attMampuInfoDao.getBy(param);
  170. if (mampuInfo == null) {
  171. mampuInfo = new AttMampuInfo();
  172. mampuInfo.setId(UuidUtil.uuid());
  173. mampuInfo.setPid(orgs.get(nm + secOrg).getId());
  174. mampuInfo.setNm(thiOrg);
  175. mampuInfo.setIntm(new Date());
  176. mampuInfo.setUptm(new Date());
  177. mampuInfo.setPersId(keyRegister.getRecPersId());
  178. mampuInfo.setRegId(keyRegister.getId());
  179. mampuInfo.setLev("3");
  180. mampuInfo.setLgtd(keyRegister.getLgtd());
  181. mampuInfo.setLttd(keyRegister.getLttd());
  182. mampuInfo.setLgtdPc(keyRegister.getLgtdPc());
  183. mampuInfo.setLttdPc(keyRegister.getLttdPc());
  184. // attMampuInfoDao.insert(mampuInfo);
  185. }
  186. orgs.put(nm + thiOrg, mampuInfo);
  187. }
  188. }
  189. }
  190. }
  191. //添加问题
  192. for (ExcelInspPblm inspPblm : exinspPblmList) {
  193. BisInspPblm bisInspPblm = new BisInspPblm();
  194. String pblmId = UuidUtil.uuid();
  195. bisInspPblm.setPblmId(pblmId);
  196. if (StringUtils.isNotBlank(inspPblm.getCheckLeader())) {
  197. bisInspPblm.setReviConc("2");
  198. } else {
  199. bisInspPblm.setReviConc("1");
  200. }
  201. bisInspPblm.setInspPblmCate(getCate(inspPblm.getInspCate()));
  202. bisInspPblm.setIfCasePblm("0");
  203. bisInspPblm.setInspPblmName(setPblmName(inspPblm));
  204. bisInspPblm.setInspPblmDesc(inspPblm.getInspPblmDesc());
  205. bisInspPblm.setNote(inspPblm.getNote());
  206. BisInspAllRlationPersParam allRlationPersParam = new BisInspAllRlationPersParam();
  207. allRlationPersParam.setPersName(inspPblm.getCheckLeader());
  208. BisInspAllRlationPers allRlationPers = allRlationPersDao.getBy(allRlationPersParam);
  209. bisInspPblm.setRecPers(allRlationPers.getGuid());
  210. bisInspPblm.setState("0");
  211. bisInspPblm.setHasVedio("0");
  212. bisInspPblm.setReviOpin(inspPblm.getRevicon());
  213. //水利工程运行附件
  214. if (StringUtils.isNotBlank(inspPblm.getQualityAttachNo())) {
  215. ObjKeyPblmsParam pblmsParam = new ObjKeyPblmsParam();
  216. pblmsParam.setPblmType(setPblmName(inspPblm));
  217. pblmsParam.setAttachType("水利工程运行");
  218. String quality = inspPblm.getQualityAttachNo().replace("附件", "");
  219. if (quality.indexOf("-") > 0) {
  220. String[] noes = quality.split("-");
  221. pblmsParam.setAttach(noes[0]);
  222. pblmsParam.setSheet(noes[1]);
  223. } else {
  224. pblmsParam.setAttach(quality);
  225. }
  226. if (inspPblm.getQualitySn().contains("、")) {
  227. String sn = inspPblm.getQualitySn();
  228. sn = sn.substring(0, sn.indexOf("、"));
  229. pblmsParam.setSn(sn);
  230. } else {
  231. pblmsParam.setSn(inspPblm.getQualitySn());
  232. }
  233. ObjKeyPblms keyPblms = keyPblmsDao.getBy(pblmsParam);
  234. if (keyPblms == null) {
  235. pblmsParam.setPblmType("合同问题");
  236. keyPblms = keyPblmsDao.getBy(pblmsParam);
  237. bisInspPblm.setInspPblmName("合同问题");
  238. bisInspPblm.setPblmsId(keyPblms.getId());
  239. } else {
  240. if (StringUtils.isNotBlank(inspPblm.getExp3())) {
  241. bisInspPblm.setQualityTypeId(keyPblms.getId());
  242. } else {
  243. bisInspPblm.setPblmsTypeId(keyPblms.getId());
  244. }
  245. }
  246. }
  247. if (StringUtils.isNotBlank(inspPblm.getHetongNo())) {
  248. ObjKeyPblmsParam pblmsParam = new ObjKeyPblmsParam();
  249. pblmsParam.setAttachType("水利工程运行");
  250. pblmsParam.setPblmType("合同问题");
  251. String hetong = inspPblm.getHetongNo().replace("附件", "");
  252. if (hetong.indexOf("-") > 0) {
  253. String[] noes = hetong.split("-");
  254. pblmsParam.setAttach(noes[0]);
  255. pblmsParam.setSheet(noes[1]);
  256. } else {
  257. pblmsParam.setAttach(hetong);
  258. }
  259. if ("工程缺陷".equals(bisInspPblm.getInspPblmName())) {
  260. pblmsParam.setInspPblmCate(getCate(inspPblm.getInspCate()));
  261. }
  262. if (inspPblm.getHetongSN().contains("、")) {
  263. String sn = inspPblm.getHetongSN();
  264. sn = sn.substring(0, sn.indexOf("、"));
  265. pblmsParam.setSn(sn);
  266. } else {
  267. pblmsParam.setSn(inspPblm.getHetongSN());
  268. }
  269. ObjKeyPblms keyPblms = keyPblmsDao.getBy(pblmsParam);
  270. if (keyPblms == null) {
  271. pblmsParam.setPblmType("违规行为");
  272. keyPblms = keyPblmsDao.getBy(pblmsParam);
  273. bisInspPblm.setInspPblmName("违规行为");
  274. bisInspPblm.setPblmsTypeId(keyPblms.getId());
  275. } else {
  276. bisInspPblm.setPblmsId(keyPblms.getId());
  277. }
  278. }
  279. if (StringUtils.isNotBlank(inspPblm.getFirOrg())) {
  280. bisInspPblm.setRegid(orgs.get(inspPblm.getProjectNm() + inspPblm.getFirOrg()).getId());
  281. bisInspPblm.setPblmLong(orgs.get(inspPblm.getProjectNm() + inspPblm.getFirOrg()).getLgtd());
  282. bisInspPblm.setPblmLat(orgs.get(inspPblm.getProjectNm() + inspPblm.getFirOrg()).getLttd());
  283. }
  284. if (StringUtils.isNotBlank(inspPblm.getSecOrg())) {
  285. bisInspPblm.setRegid(orgs.get(inspPblm.getProjectNm() + inspPblm.getSecOrg()).getId());
  286. bisInspPblm.setPblmLong(orgs.get(inspPblm.getProjectNm() + inspPblm.getSecOrg()).getLgtd());
  287. bisInspPblm.setPblmLat(orgs.get(inspPblm.getProjectNm() + inspPblm.getSecOrg()).getLttd());
  288. }
  289. if (StringUtils.isNotBlank(inspPblm.getThiOrg())) {
  290. bisInspPblm.setRegid(orgs.get(inspPblm.getProjectNm() + inspPblm.getThiOrg()).getId());
  291. bisInspPblm.setPblmLong(orgs.get(inspPblm.getProjectNm() + inspPblm.getThiOrg()).getLgtd());
  292. bisInspPblm.setPblmLat(orgs.get(inspPblm.getProjectNm() + inspPblm.getThiOrg()).getLttd());
  293. }
  294. bisInspPblm.setVillType("9");//9
  295. bisInspPblm.setObjType("7");//7
  296. if (StringUtils.isNotBlank(inspPblm.getFaxianTime())) {
  297. Date date = null;
  298. try {
  299. date = new SimpleDateFormat("yyyy年MM月dd日").parse(setTimeRex(inspPblm.getFaxianTime()));
  300. } catch (ParseException e) {
  301. e.printStackTrace();
  302. }
  303. bisInspPblm.setCollTime(date);
  304. }
  305. if (StringUtils.isNotBlank(inspPblm.getCheckLeader())) {
  306. allRlationPersParam.setPersName(inspPblm.getCheckLeader());
  307. allRlationPers = allRlationPersDao.getBy(allRlationPersParam);
  308. BisInspRectFdbk inspRectFdbk = new BisInspRectFdbk();
  309. String uuid = UuidUtil.uuid();
  310. inspRectFdbk.setGuid(uuid);
  311. if (StringUtils.isNotBlank(inspPblm.getFaxianTime())) {
  312. Date date = null;
  313. try {
  314. date = new SimpleDateFormat("yyyy年MM月dd日").parse(setTimeRex(inspPblm.getFaxianTime()));
  315. } catch (ParseException e) {
  316. e.printStackTrace();
  317. }
  318. inspRectFdbk.setCollTime(date);
  319. }
  320. inspRectFdbk.setDataStat("0");
  321. inspRectFdbk.setRecPers(allRlationPers.getGuid());
  322. inspRectFdbk.setPblmId(pblmId);
  323. inspRectFdbk.setHasVed("0");
  324. if ("已经整改".equals(inspPblm.getRevicon())) {
  325. inspRectFdbk.setRectConc("1");
  326. } else {
  327. inspRectFdbk.setRectConc("0");
  328. }
  329. inspRectFdbk.setOrgGuid(bisInspPblm.getInspGroupId());
  330. inspRectFdbk.setNote(inspPblm.getCheckPerson());
  331. inspRectFdbk.setRectMeas(inspPblm.getReviDetail());
  332. // inspRectFdbkDao.insert(inspRectFdbk);
  333. bisInspPblm.setFdbkId(uuid);
  334. }
  335. if (StringUtils.isNotBlank(inspPblm.getRechLeader())) {
  336. allRlationPersParam.setPersName(inspPblm.getRechLeader());
  337. allRlationPers = allRlationPersDao.getBy(allRlationPersParam);
  338. BisInspRectFdbk inspRectFdbk = new BisInspRectFdbk();
  339. String uuid = UuidUtil.uuid();
  340. inspRectFdbk.setGuid(uuid);
  341. if (StringUtils.isNotBlank(inspPblm.getRechTime())) {
  342. Date date = null;
  343. try {
  344. date = new SimpleDateFormat("yyyy年MM月dd日").parse(setTimeRex(inspPblm.getRechTime()));
  345. } catch (ParseException e) {
  346. e.printStackTrace();
  347. }
  348. inspRectFdbk.setCollTime(date);
  349. }
  350. inspRectFdbk.setDataStat("0");
  351. inspRectFdbk.setRecPers(allRlationPers.getGuid());
  352. inspRectFdbk.setPblmId(pblmId);
  353. inspRectFdbk.setHasVed("0");
  354. if ("已经整改".equals(inspPblm.getRevicon())) {
  355. inspRectFdbk.setRectConc("1");
  356. } else {
  357. inspRectFdbk.setRectConc("0");
  358. }
  359. inspRectFdbk.setOrgGuid(bisInspPblm.getInspGroupId());
  360. inspRectFdbk.setNote(inspPblm.getRechPerson());
  361. inspRectFdbk.setRectMeas(inspPblm.getReviDetail());
  362. //inspRectFdbkDao.insert(inspRectFdbk);
  363. bisInspPblm.setFdbkId(uuid);
  364. }
  365. // bisInspPblmDao.insert(bisInspPblm);
  366. }
  367. //添加复查问题
  368. // List<ExcelInspPblm> fxblmList= new ArrayList<>();
  369. }
  370. private String getCate(String inspCate) {
  371. if ("一般".equals(inspCate)) {
  372. return "0";
  373. }
  374. if ("较重".equals(inspCate)) {
  375. return "1";
  376. }
  377. if ("严重".equals(inspCate)) {
  378. return "2";
  379. }
  380. if ("特别严重".equals(inspCate)) {
  381. return "3";
  382. }
  383. return "";
  384. }
  385. private String setPblmName(ExcelInspPblm inspPblm) {
  386. if (StringUtils.isBlank(inspPblm.getQualityAttachNo()) && StringUtils.isNotBlank(inspPblm.getHetongNo())) {
  387. return "合同问题";
  388. }
  389. if (StringUtils.isNotBlank(inspPblm.getQualityAttachNo()) && StringUtils.isNotBlank(inspPblm.getExp3())) {
  390. return "工程缺陷";
  391. }
  392. return "违规行为";
  393. }
  394. private String setTimeRex(String faxianTime) {
  395. if (StringUtils.isBlank(faxianTime)) {
  396. return "";
  397. }
  398. System.out.println("faxianTime--->" + faxianTime);
  399. String year = faxianTime.substring(0, faxianTime.indexOf("年"));
  400. String month = faxianTime.substring(faxianTime.indexOf("年") + 1, faxianTime.indexOf("月"));
  401. if (month.length() < 2) {
  402. month = "0" + month;
  403. }
  404. String day = faxianTime.substring(faxianTime.indexOf("月") + 1, faxianTime.indexOf("日"));
  405. if (day.length() < 2) {
  406. day = "0" + day;
  407. }
  408. return year + "年" + month + "月" + day + "日";
  409. }
  410. @Override
  411. public void inputTById(String type, String filePath) {
  412. File file = new File(filePath);
  413. if (!file.isFile()) {
  414. return;
  415. }
  416. List<ExcelInspLevelDto> levels = new ArrayList<>();
  417. try {
  418. levels = LoadExcel.getExcelLevel(filePath);
  419. } catch (Exception e) {
  420. e.printStackTrace();
  421. }
  422. for (ExcelInspLevelDto lv : levels) {
  423. if (StringUtils.isBlank(lv.getId())) {
  424. System.out.println("当前id为空");
  425. continue;
  426. }
  427. if (BisInspEnum.WAGA.getKey().equals(type)) {
  428. AttWagaBase base = new AttWagaBase();
  429. base.setObjCode(lv.getId());
  430. base.setDisplayLevel(lv.getDisPlayLevel());
  431. attWagaBaseDao.update(base);
  432. } else if ("wain".equals(type)) {
  433. AttWainBase base = new AttWainBase();
  434. base.setObjCode(lv.getId());
  435. base.setDisplayLevel(lv.getDisPlayLevel());
  436. //attWainBaseDao.update(base);
  437. } else if ("suws".equals(type)) {
  438. AttSwhsBase base = new AttSwhsBase();
  439. base.setSwhsCode(lv.getId());
  440. base.setDisplayLevel(lv.getDisPlayLevel());
  441. attSwhsBaseDao.updateLevelByCode(base);
  442. } else if ("rsvr".equals(type)) {
  443. AttRsBase base = new AttRsBase();
  444. base.setRsCode(lv.getId());
  445. base.setDisplayLevel(lv.getDisPlayLevel());
  446. rsBaseDao.update(base);
  447. }
  448. }
  449. System.out.println("导入成功");
  450. }
  451. @Override
  452. public List<String> checkPers(String filePath) {
  453. File file = new File(filePath);
  454. if (!file.isFile()) {
  455. return null;
  456. }
  457. List<ExcelInspLevelDto> levels = new ArrayList<>();
  458. try {
  459. levels = LoadExcel.getExcelLevel(filePath);
  460. } catch (Exception e) {
  461. e.printStackTrace();
  462. }
  463. List<String> names = new ArrayList<>();
  464. for (ExcelInspLevelDto lv : levels) {
  465. BisInspAllRlationPersParam param = new BisInspAllRlationPersParam();
  466. param.setPersName(lv.getId().replaceAll(" ", ""));
  467. List<BisInspAllRlationPers> list = allRlationPersDao.findList(param);
  468. if (list == null || list.size() == 0) {
  469. if (!names.contains(lv.getId().replaceAll(" ", ""))) {
  470. names.add(lv.getId().replaceAll(" ", ""));
  471. }
  472. }
  473. }
  474. return names;
  475. }
  476. @Override
  477. public List<ExcelInspPersDto> inputRla(String filePath, String year, String mon, String type) {
  478. List<ExcelInspPersDto> list = new ArrayList<>();
  479. File file = new File(filePath);
  480. if (!file.isFile()) {
  481. return null;
  482. }
  483. List<ExcelInspPersDto> persList = new ArrayList<>();
  484. try {
  485. persList = LoadExcel.getExcelPers(filePath);
  486. } catch (Exception e) {
  487. e.printStackTrace();
  488. }
  489. if (type.indexOf("0") < 0) {
  490. type = "00" + type;
  491. }
  492. if (mon.indexOf("0") < 0) {
  493. mon = "0" + mon;
  494. }
  495. BisInspAllParam param = new BisInspAllParam();
  496. param.setPid(type);
  497. List<BisInspAll> orgs = bisInspAllDao.findList(param);
  498. if (orgs == null || orgs.size() <= 0) {
  499. return list;
  500. }
  501. Map<String, BisInspAll> orgMaps = orgs.stream().collect(Collectors.toMap(BisInspAll::getPnm, BisInspAll -> BisInspAll));
  502. CopyOnWriteArrayList a = new CopyOnWriteArrayList();
  503. a.addAll(persList);
  504. Iterator<ExcelInspPersDto> it = a.iterator();
  505. while (it.hasNext()) {
  506. ExcelInspPersDto pers = it.next();
  507. //机构名称为空
  508. if (StringUtils.isBlank(pers.getOrgName())) {
  509. pers.setNote("机构名称为空");
  510. list.add(pers);
  511. continue;
  512. }
  513. BisInspAll ins = orgMaps.get(pers.getOrgName().trim());
  514. if (ins == null) {
  515. pers.setNote("机构不存在");
  516. list.add(pers);
  517. continue;
  518. }
  519. if (StringUtils.isBlank(pers.getGroName())) {
  520. pers.setNote("组名称为空");
  521. list.add(pers);
  522. continue;
  523. }
  524. String pid = ins.getId();
  525. BisInspAllParam param1 = new BisInspAllParam();
  526. param1.setPid(pid);
  527. param1.setInspYear(year);
  528. param1.setInspMnth(mon);
  529. List<BisInspAll> alls = bisInspAllDao.findList(param1);
  530. BisInspAll bisInspAll = null;
  531. if (alls == null || alls.size() <= 0) {
  532. pers.setNote("组不存在");
  533. //create a group
  534. // bisInspAll = new BisInspAll();
  535. // bisInspAll.setId(pid+"001");
  536. // bisInspAll.setPid(pid);
  537. // bisInspAll.setPnm(year + "年" + mon + "月督查工作");
  538. // bisInspAll.setInspMnth(mon);
  539. // bisInspAll.setInspYear(year);
  540. // bisInspAllDao.insert(bisInspAll);
  541. list.add(pers);
  542. continue;
  543. } else {
  544. bisInspAll = alls.get(0);
  545. }
  546. param1 = new BisInspAllParam();
  547. param1.setInspYear(year);
  548. param1.setInspMnth(mon);
  549. param1.setPid(bisInspAll.getId());
  550. // param1.setPnm(setName(pers.getGroName()));
  551. param1.setPnm(pers.getGroName() + "组");
  552. BisInspAll all = bisInspAllDao.getBy(param1);
  553. if (all == null) {
  554. param1.setPnm(setName(pers.getGroName()));
  555. all = bisInspAllDao.getBy(param1);
  556. }
  557. if (all == null) {
  558. pers.setNote(param1.getPnm() + "不存在");
  559. list.add(pers);
  560. continue;
  561. }
  562. //start to find rla
  563. String id = all.getId();
  564. BisInspAllRlationParam rlationParam = new BisInspAllRlationParam();
  565. rlationParam.setId(id);
  566. //1:组长;2:组员;3:联络员
  567. BisInspAllRlationPersParam persParam = new BisInspAllRlationPersParam();
  568. persParam.setOrgId(pid.substring(3, 6));
  569. if (StringUtils.isNotBlank(pers.getHeadman().replaceAll(" ", ""))) {
  570. persParam.setPersName(pers.getHeadman().replaceAll(" ", ""));
  571. addRla(list, pers, rlationParam, persParam, "1");
  572. }
  573. if (StringUtils.isNotBlank(pers.getMembers().replaceAll(" ", ""))) {
  574. String dpnm = pers.getMemNm().replaceAll(" ", "");
  575. if (dpnm.indexOf("/") > 0) {
  576. persParam.setDpnm(dpnm.split("/")[0]);
  577. } else {
  578. persParam.setDpnm(dpnm);
  579. }
  580. String persName = pers.getMembers().replaceAll(" ", "");
  581. if (persName.indexOf("/") > 0) {
  582. String[] names = persName.split("/");
  583. for (String name : names) {
  584. persParam.setPersName(name);
  585. addRla(list, pers, rlationParam, persParam, "2");
  586. }
  587. } else {
  588. persParam.setPersName(persName);
  589. addRla(list, pers, rlationParam, persParam, "2");
  590. }
  591. }
  592. if (StringUtils.isNotBlank(pers.getConPers().replaceAll(" ", ""))) {
  593. String persName = pers.getConPers().replaceAll(" ", "");
  594. if (persName.indexOf("/") > 0) {
  595. String[] names = persName.split("/");
  596. for (String name : names) {
  597. persParam.setPersName(name);
  598. addRla(list, pers, rlationParam, persParam, "3");
  599. }
  600. } else {
  601. persParam.setPersName(persName);
  602. addRla(list, pers, rlationParam, persParam, "3");
  603. }
  604. }
  605. }
  606. return list;
  607. }
  608. private void addRla(List<ExcelInspPersDto> list, ExcelInspPersDto pers, BisInspAllRlationParam rlationParam, BisInspAllRlationPersParam persParam, String ptype) {
  609. BisInspAllRlationPers per = allRlationPersDao.getBy(persParam);
  610. if (per == null && StringUtils.isNotBlank(persParam.getDpnm())) {
  611. persParam.setDpnm("");
  612. per = allRlationPersDao.getBy(persParam);
  613. }
  614. if (per == null) {
  615. pers.setNote("当前名称" + persParam.getPersName() + "不在" + pers.getOrgName() + "机构下");
  616. list.add(pers);
  617. return;
  618. }
  619. String persId = per.getGuid();
  620. rlationParam.setPersid(persId);
  621. //rlationParam.setPertype(ptype);
  622. BisInspAllRlation rla = rlationDao.getBy(rlationParam);
  623. if (rla == null) {
  624. rla = new BisInspAllRlation();
  625. rla.setId(rlationParam.getId());
  626. rla.setPersid(persId);
  627. rla.setPertype(ptype);
  628. rlationDao.insert(rla);
  629. } else {
  630. rla.setPertype(ptype);
  631. rlationDao.update(rla);
  632. }
  633. }
  634. @Deprecated
  635. private String setName(String groName) {
  636. if ("北京".equals(groName) || "上海".equals(groName) || "天津".equals(groName) || "重庆".equals(groName)) {
  637. return groName + "市组";
  638. }
  639. return groName + "省组";
  640. }
  641. }