0102c819977642812ba6a1e8347e70c7b0a8799a.svn-base 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. package cn.com.goldenwater.dcproj.service.impl.irr;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.constValue.BisInspIrrEnum;
  5. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  6. import cn.com.goldenwater.dcproj.constValue.StateEnum;
  7. import cn.com.goldenwater.dcproj.dao.*;
  8. import cn.com.goldenwater.dcproj.dto.BisInspIrrRgstrChildreDto;
  9. import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto;
  10. import cn.com.goldenwater.dcproj.model.*;
  11. import cn.com.goldenwater.dcproj.param.*;
  12. import cn.com.goldenwater.dcproj.service.BisInspIrrRgstrService;
  13. import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
  14. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  15. import cn.com.goldenwater.id.util.UuidUtil;
  16. import cn.com.goldenwater.util.common.InspPblmUtils;
  17. import com.github.pagehelper.PageHelper;
  18. import com.github.pagehelper.PageInfo;
  19. import org.apache.commons.lang3.StringUtils;
  20. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  21. import org.apache.poi.ss.usermodel.Cell;
  22. import org.apache.poi.ss.usermodel.Row;
  23. import org.apache.poi.ss.usermodel.Sheet;
  24. import org.apache.poi.ss.usermodel.Workbook;
  25. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import org.springframework.web.multipart.MultipartFile;
  30. import javax.servlet.http.HttpServletResponse;
  31. import java.io.IOException;
  32. import java.io.InputStream;
  33. import java.lang.reflect.Field;
  34. import java.util.ArrayList;
  35. import java.util.Date;
  36. import java.util.List;
  37. import static cn.com.goldenwater.dcproj.utils.impexcel.ImpUtil.XLS;
  38. /**
  39. * @author lune
  40. * @date 2020-4-30
  41. */
  42. @Service
  43. @Transactional
  44. public class BisInspIrrRgstrServiceImpl extends AbstractCrudService<BisInspIrrRgstr, BisInspIrrRgstrParam> implements BisInspIrrRgstrService,BisInspObjStrategy {
  45. @Autowired
  46. private BisInspIrrRgstrDao bisInspIrrRgstrDao;
  47. @Autowired
  48. private BisInspPblmDao bisInspPblmDao;
  49. @Autowired
  50. private BisInspAllObjDao bisInspAllObjDao;
  51. @Autowired
  52. private AttAdXBaseDao attAdXBaseDao;
  53. public BisInspIrrRgstrServiceImpl(BisInspIrrRgstrDao bisInspIrrRgstrDao) {
  54. super(bisInspIrrRgstrDao);
  55. this.bisInspIrrRgstrDao = bisInspIrrRgstrDao;
  56. }
  57. @Override
  58. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  59. AttAdXBase xBase = attAdXBaseDao.getByCode(bisInspAllObj.getCode());
  60. BisInspIrrRgstr rgstr = new BisInspIrrRgstr();
  61. rgstr.setId(UuidUtil.uuid());
  62. rgstr.setIntm(new Date());
  63. rgstr.setUptm(new Date());
  64. rgstr.setDataStat(StateEnum.NOWASTSTATE.getKey());
  65. rgstr.setState(StateEnum.NOWASTSTATE.getKey());
  66. rgstr.setObjId(bisInspAllObj.getObjId());
  67. rgstr.setAdCode(xBase.getAdCode());
  68. rgstr.setAdName(xBase.getAdName());
  69. rgstr.setAdFullName(xBase.getAdFullName());
  70. bisInspIrrRgstrDao.insert(rgstr);
  71. }
  72. @Override
  73. public void cleanObjData(String objId) {
  74. BisInspIrrRgstrParam param = new BisInspIrrRgstrParam();
  75. param.setObjId(objId);
  76. List< BisInspIrrRgstr> list = this.bisInspIrrRgstrDao.findList(param);
  77. if (list.size() > 0) {
  78. String id = list.get(0).getId();
  79. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  80. bisInspPblmParam.setObjId(objId);
  81. bisInspPblmParam.setObjType(BisInspEnum.MFDP.getValue());
  82. this.bisInspPblmDao.deleteBy(bisInspPblmParam);//删除问题
  83. bisInspIrrRgstrDao.delete(id);
  84. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  85. bisInspAllObjParam.setObjId(objId);
  86. this.bisInspAllObjDao.deleteBy(bisInspAllObjParam);//删除督查对象
  87. //删除附表
  88. BisInspIrrTownsDsuParam bisInspIrrTownsDsuParam = new BisInspIrrTownsDsuParam();
  89. bisInspIrrTownsDsuParam.setRgstrId(id);
  90. bisInspIrrTownsDsuDao.deleteBy(bisInspIrrTownsDsuParam);
  91. BisInspIrrWellParam bisInspIrrWellParam = new BisInspIrrWellParam();
  92. bisInspIrrWellParam.setRgstrId(id);
  93. bisInspIrrWellDao.deleteBy(bisInspIrrWellParam);
  94. BisInspIrrWasParam bisInspIrrWasParam = new BisInspIrrWasParam();
  95. bisInspIrrWasParam.setRgstrId(id);
  96. bisInspIrrWasDao.deleteBy(bisInspIrrWasParam);
  97. BisInspIrrPitParam bisInspIrrPitParam = new BisInspIrrPitParam();
  98. bisInspIrrPitParam.setRgstrId(id);
  99. bisInspIrrPitDao.deleteBy(bisInspIrrPitParam);
  100. BisInspIrrPondParam bisInspIrrPondParam = new BisInspIrrPondParam();
  101. bisInspIrrPondParam.setRgstrId(id);
  102. bisInspIrrPondDao.deleteBy(bisInspIrrPondParam);
  103. BisInspIrrPustParam bisInspIrrPustParam = new BisInspIrrPustParam();
  104. bisInspIrrPustParam.setRgstrId(id);
  105. bisInspIrrPustDao.deleteBy(bisInspIrrPustParam);
  106. BisInspIrrMicroParam bisInspIrrMicroParam = new BisInspIrrMicroParam();
  107. bisInspIrrMicroParam.setRgstrId(id);
  108. bisInspIrrMicroDao.deleteBy(bisInspIrrMicroParam);
  109. BisInspIrrSprayParam bisInspIrrSprayParam = new BisInspIrrSprayParam();
  110. bisInspIrrSprayParam.setRgstrId(id);
  111. bisInspIrrSprayDao.deleteBy(bisInspIrrSprayParam);
  112. BisInspIrrPipeParam bisInspIrrPipeParam = new BisInspIrrPipeParam();
  113. bisInspIrrPipeParam.setRgstrId(id);
  114. bisInspIrrPipeDao.deleteBy(bisInspIrrPipeParam);
  115. BisInspIrrChanParam bisInspIrrChanParam = new BisInspIrrChanParam();
  116. bisInspIrrChanParam.setRgstrId(id);
  117. bisInspIrrChanDao.deleteBy(bisInspIrrChanParam);
  118. BisInspIrrWtusrParam bisInspIrrWtusrParam = new BisInspIrrWtusrParam();
  119. bisInspIrrWtusrParam.setRgstrId(id);
  120. bisInspIrrWtusrDao.deleteBy(bisInspIrrWtusrParam);
  121. }
  122. }
  123. @Override
  124. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  125. return this.findIrrPage(typeParam,response);
  126. }
  127. @Override
  128. public Object findObjListByType(TypeParam typeParam) {
  129. if (StringUtils.isNotBlank(typeParam.getAdCode())) {
  130. typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
  131. }
  132. if (StringUtils.isNotBlank(typeParam.getAdCodes())) {
  133. typeParam.setAdCodes(AdLevelUtil.getListAddvcd(typeParam.getAdCodes()));
  134. }
  135. List<BisInspRgstrDto> list = bisInspIrrRgstrDao.findIrrList(typeParam);
  136. return InspPblmUtils.changeList(list);
  137. }
  138. @Override
  139. public String getType() {
  140. return BisInspEnum.IRR.getValue();
  141. }
  142. @Override
  143. public PageInfo<BisInspRgstrDto> findIrrPage(TypeParam param, HttpServletResponse response) {
  144. if (StringUtils.isNotBlank(param.getAdCode())) {
  145. param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD)));
  146. }
  147. if (StringUtils.isNotBlank(param.getAdCodes())) {
  148. param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes()));
  149. }
  150. PageHelper.startPage(param);
  151. List<BisInspRgstrDto> list = bisInspIrrRgstrDao.findIrrList(param);
  152. list= InspPblmUtils.changeList(list);
  153. return new PageInfo<BisInspRgstrDto>(list);
  154. }
  155. @Autowired
  156. private BisInspIrrTownsDsuDao bisInspIrrTownsDsuDao;
  157. @Autowired
  158. private BisInspIrrWellDao bisInspIrrWellDao;
  159. @Autowired
  160. private BisInspIrrWasDao bisInspIrrWasDao;
  161. @Autowired
  162. private BisInspIrrPitDao bisInspIrrPitDao;
  163. @Autowired
  164. private BisInspIrrPondDao bisInspIrrPondDao;
  165. @Autowired
  166. private BisInspIrrPustDao bisInspIrrPustDao;
  167. @Autowired
  168. private BisInspIrrMicroDao bisInspIrrMicroDao;
  169. @Autowired
  170. private BisInspIrrSprayDao bisInspIrrSprayDao;
  171. @Autowired
  172. private BisInspIrrPipeDao bisInspIrrPipeDao;
  173. @Autowired
  174. private BisInspIrrChanDao bisInspIrrChanDao;
  175. @Autowired
  176. private BisInspIrrWtusrDao bisInspIrrWtusrDao;
  177. /**
  178. * 类型比较死
  179. * @param bisInspIrrRgstrParam
  180. * @return
  181. */
  182. @Override
  183. public PageInfo<BisInspIrrRgstrChildreDto> findChildrenPage(BisInspIrrRgstrParam bisInspIrrRgstrParam) {
  184. PageHelper.startPage(bisInspIrrRgstrParam);
  185. List list = null;
  186. if (BisInspIrrEnum.TOWNSDSU.getKey().equals(bisInspIrrRgstrParam.getType())) {
  187. BisInspIrrTownsDsuParam param = new BisInspIrrTownsDsuParam();
  188. param.setAdName(bisInspIrrRgstrParam.getName());
  189. param.setRgstrId(bisInspIrrRgstrParam.getId());
  190. list = bisInspIrrTownsDsuDao.findList(param);
  191. } else if (BisInspIrrEnum.WELL.getKey().equals(bisInspIrrRgstrParam.getType())) {
  192. BisInspIrrWellParam param = new BisInspIrrWellParam();
  193. param.setName(bisInspIrrRgstrParam.getName());
  194. param.setRgstrId(bisInspIrrRgstrParam.getId());
  195. list = bisInspIrrWellDao.findList(param);
  196. } else if (BisInspIrrEnum.WAS.getKey().equals(bisInspIrrRgstrParam.getType())) {
  197. BisInspIrrWasParam param = new BisInspIrrWasParam();
  198. param.setRgstrId(bisInspIrrRgstrParam.getId());
  199. param.setName(bisInspIrrRgstrParam.getName());
  200. list = bisInspIrrWasDao.findList(param);
  201. } else if (BisInspIrrEnum.PIT.getKey().equals(bisInspIrrRgstrParam.getType())) {
  202. BisInspIrrPitParam param = new BisInspIrrPitParam();
  203. param.setRgstrId(bisInspIrrRgstrParam.getId());
  204. param.setName(bisInspIrrRgstrParam.getName());
  205. list = bisInspIrrPitDao.findList(param);
  206. } else if (BisInspIrrEnum.POND.getKey().equals(bisInspIrrRgstrParam.getType())) {
  207. BisInspIrrPondParam param = new BisInspIrrPondParam();
  208. param.setRgstrId(bisInspIrrRgstrParam.getId());
  209. param.setName(bisInspIrrRgstrParam.getName());
  210. list = bisInspIrrPondDao.findList(param);
  211. } else if (BisInspIrrEnum.PUST.getKey().equals(bisInspIrrRgstrParam.getType())) {
  212. BisInspIrrPustParam param = new BisInspIrrPustParam();
  213. param.setRgstrId(bisInspIrrRgstrParam.getId());
  214. param.setName(bisInspIrrRgstrParam.getName());
  215. list = bisInspIrrPustDao.findList(param);
  216. } else if (BisInspIrrEnum.MICRO.getKey().equals(bisInspIrrRgstrParam.getType())) {
  217. BisInspIrrMicroParam param = new BisInspIrrMicroParam();
  218. param.setRgstrId(bisInspIrrRgstrParam.getId());
  219. list = bisInspIrrMicroDao.findList(param);
  220. } else if (BisInspIrrEnum.SPRAY.getKey().equals(bisInspIrrRgstrParam.getType())) {
  221. BisInspIrrSprayParam param = new BisInspIrrSprayParam();
  222. param.setName(bisInspIrrRgstrParam.getName());
  223. param.setRgstrId(bisInspIrrRgstrParam.getId());
  224. list = bisInspIrrSprayDao.findList(param);
  225. } else if (BisInspIrrEnum.PIPE.getKey().equals(bisInspIrrRgstrParam.getType())) {
  226. BisInspIrrPipeParam param = new BisInspIrrPipeParam();
  227. param.setRgstrId(bisInspIrrRgstrParam.getId());
  228. param.setName(bisInspIrrRgstrParam.getName());
  229. list = bisInspIrrPipeDao.findList(param);
  230. } else if (BisInspIrrEnum.CHAN.getKey().equals(bisInspIrrRgstrParam.getType())) {
  231. BisInspIrrChanParam param = new BisInspIrrChanParam();
  232. param.setRgstrId(bisInspIrrRgstrParam.getId());
  233. param.setName(bisInspIrrRgstrParam.getName());
  234. list = bisInspIrrChanDao.findList(param);
  235. } else if (BisInspIrrEnum.WTUSR.getKey().equals(bisInspIrrRgstrParam.getType())) {
  236. BisInspIrrWtusrParam param = new BisInspIrrWtusrParam();
  237. param.setRgstrId(bisInspIrrRgstrParam.getId());
  238. param.setUswtName(bisInspIrrRgstrParam.getName());
  239. List<BisInspIrrWtusr> wtusrs= bisInspIrrWtusrDao.findList(param);
  240. List<BisInspIrrRgstrChildreDto> result = new ArrayList<>();
  241. for (BisInspIrrWtusr wtusr : wtusrs) {
  242. BisInspIrrRgstrChildreDto dto = new BisInspIrrRgstrChildreDto();
  243. dto.setId(wtusr.getId());
  244. dto.setRgstrId(wtusr.getRgstrId());
  245. dto.setObjId(wtusr.getObjId());
  246. dto.setName(wtusr.getUswtName());
  247. dto.setAdCode(wtusr.getAdCode());
  248. dto.setAdName(wtusr.getAdName());
  249. dto.setSour(wtusr.getUswtPhone());
  250. dto.setCompDate(String.valueOf(wtusr.getEffIrrArea()));
  251. result.add(dto);
  252. }
  253. return new PageInfo<>(result);
  254. }
  255. if (list != null) {
  256. List<BisInspIrrRgstrChildreDto> childreDtos = formatChildreList(list);
  257. return new PageInfo<>(childreDtos);
  258. }
  259. return null;
  260. }
  261. private List<BisInspIrrRgstrChildreDto> formatChildreList(List list) {
  262. List<BisInspIrrRgstrChildreDto> dtoList = new ArrayList<>();
  263. Field[] fileds = BisInspIrrRgstrChildreDto.class.getDeclaredFields();
  264. for (Object object : list) {
  265. BisInspIrrRgstrChildreDto dto = new BisInspIrrRgstrChildreDto();
  266. for (Field filed : fileds) {
  267. String fieldName = filed.getName();
  268. try {
  269. Field fi = object.getClass().getDeclaredField(fieldName);
  270. fi.setAccessible(true);
  271. Field childField = dto.getClass().getDeclaredField(fieldName);
  272. childField.setAccessible(true);
  273. childField.set(dto,fi.get(object));
  274. } catch (Exception e) {
  275. continue;
  276. }
  277. }
  278. dtoList.add(dto);
  279. }
  280. return dtoList;
  281. }
  282. @Override
  283. public int delChildren(BisInspIrrRgstrParam bisInspIrrRgstrParam) {
  284. if (BisInspIrrEnum.TOWNSDSU.getKey().equals(bisInspIrrRgstrParam.getType())) {
  285. bisInspIrrTownsDsuDao.delete(bisInspIrrRgstrParam.getId());
  286. } else if (BisInspIrrEnum.WELL.getKey().equals(bisInspIrrRgstrParam.getType())) {
  287. bisInspIrrWellDao.delete(bisInspIrrRgstrParam.getId());
  288. } else if (BisInspIrrEnum.WAS.getKey().equals(bisInspIrrRgstrParam.getType())) {
  289. bisInspIrrWasDao.delete(bisInspIrrRgstrParam.getId());
  290. } else if (BisInspIrrEnum.PIT.getKey().equals(bisInspIrrRgstrParam.getType())) {
  291. bisInspIrrPitDao.delete(bisInspIrrRgstrParam.getId());
  292. } else if (BisInspIrrEnum.POND.getKey().equals(bisInspIrrRgstrParam.getType())) {
  293. bisInspIrrPondDao.delete(bisInspIrrRgstrParam.getId());
  294. } else if (BisInspIrrEnum.PUST.getKey().equals(bisInspIrrRgstrParam.getType())) {
  295. bisInspIrrPustDao.delete(bisInspIrrRgstrParam.getId());
  296. } else if (BisInspIrrEnum.MICRO.getKey().equals(bisInspIrrRgstrParam.getType())) {
  297. bisInspIrrMicroDao.delete(bisInspIrrRgstrParam.getId());
  298. } else if (BisInspIrrEnum.SPRAY.getKey().equals(bisInspIrrRgstrParam.getType())) {
  299. bisInspIrrSprayDao.delete(bisInspIrrRgstrParam.getId());
  300. } else if (BisInspIrrEnum.PIPE.getKey().equals(bisInspIrrRgstrParam.getType())) {
  301. bisInspIrrPipeDao.delete(bisInspIrrRgstrParam.getId());
  302. } else if (BisInspIrrEnum.CHAN.getKey().equals(bisInspIrrRgstrParam.getType())) {
  303. bisInspIrrChanDao.delete(bisInspIrrRgstrParam.getId());
  304. } else if (BisInspIrrEnum.WTUSR.getKey().equals(bisInspIrrRgstrParam.getType())) {
  305. bisInspIrrWtusrDao.delete(bisInspIrrRgstrParam.getId());
  306. }
  307. return 0;
  308. }
  309. @Autowired
  310. private ObjInspPblmsDao objInspPblmsDao;
  311. @Override
  312. public int importObjInspPblms(MultipartFile file) {
  313. String guid = "280000000000000000000000000000";
  314. Workbook wb = null;
  315. InputStream fis = null;
  316. List<Row> rowList = new ArrayList<Row>();
  317. try {
  318. fis = file.getInputStream();
  319. if (file.getOriginalFilename().endsWith(XLS)) {
  320. wb = new HSSFWorkbook(fis);
  321. } else {
  322. wb = new XSSFWorkbook(fis);
  323. }
  324. Sheet sheet = wb.getSheetAt(0);
  325. Row row = null;
  326. int lastRowNum = sheet.getPhysicalNumberOfRows();
  327. for (int i = sheet.getFirstRowNum(); i < lastRowNum; i++) {
  328. row = sheet.getRow(i);
  329. if (row != null) {
  330. rowList.add(row);
  331. }
  332. }
  333. } catch (IOException e) {
  334. e.printStackTrace();
  335. } finally {
  336. if (wb != null) {
  337. try {
  338. wb.close();
  339. } catch (IOException e) {
  340. e.printStackTrace();
  341. }
  342. }
  343. if (fis != null) {
  344. try {
  345. fis.close();
  346. } catch (IOException e) {
  347. e.printStackTrace();
  348. }
  349. }
  350. }
  351. if (rowList.size() > 1) {
  352. Row row = null;
  353. for (int i = 1; i < rowList.size(); i++) {
  354. row = rowList.get(i);
  355. ObjInspPblms objInspPblms = new ObjInspPblms();
  356. objInspPblms.setPguid("28000000000000000000000000000000");
  357. objInspPblms.setType("28");
  358. objInspPblms.setInspPblmCate("1");
  359. objInspPblms.setAttach("1");
  360. objInspPblms.setSnClass("1");
  361. objInspPblms.setDataStat("1");
  362. for (int j = row.getFirstCellNum(); j <= row.getPhysicalNumberOfCells(); j++) {
  363. Cell cell = row.getCell(j);
  364. if (cell == null) {
  365. continue;
  366. }
  367. if (j == 0) {
  368. String index = Integer.valueOf(String.valueOf(cell)) + "";
  369. objInspPblms.setSn(index);
  370. objInspPblms.setSnNum(index);
  371. if (index.length() < 2) {
  372. objInspPblms.setGuid("2800000000000000000000000000000" + index);
  373. } else {
  374. objInspPblms.setGuid("280000000000000000000000000000" + index);
  375. }
  376. }
  377. if (j == 1) {
  378. objInspPblms.setInspPblmsName(String.valueOf(cell));
  379. }
  380. if (j == 2) {
  381. objInspPblms.setCheckPoint(String.valueOf(cell));
  382. }
  383. }
  384. if (StringUtils.isBlank(objInspPblms.getInspPblmsName())) {
  385. continue;
  386. }
  387. objInspPblmsDao.insert(objInspPblms);
  388. }
  389. }
  390. return 0;
  391. }
  392. }