abf5786eed9b37b2f27ee01a2261572861e633f1.svn-base 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package cn.com.goldenwater.dcproj.service.impl.wdtst;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  4. import cn.com.goldenwater.dcproj.dao.BisInspPblmDao;
  5. import cn.com.goldenwater.dcproj.dao.BisInspWtdstDao;
  6. import cn.com.goldenwater.dcproj.dto.BisInspWtdstDetailDto;
  7. import cn.com.goldenwater.dcproj.model.BisInspPblm;
  8. import cn.com.goldenwater.dcproj.model.BisInspWtdst;
  9. import cn.com.goldenwater.dcproj.param.BisInspPblmParam;
  10. import cn.com.goldenwater.dcproj.param.BisInspWtdstDtoListParam;
  11. import cn.com.goldenwater.dcproj.param.BisInspWtdstParam;
  12. import cn.com.goldenwater.dcproj.service.BisInspWtdstService;
  13. import cn.com.goldenwater.dcproj.utils.BeanUtil;
  14. import cn.com.goldenwater.dcproj.utils.Builder;
  15. import cn.com.goldenwater.dcproj.utils.DateUtils;
  16. import cn.com.goldenwater.dcproj.utils.GeoUtil;
  17. import cn.com.goldenwater.dcproj.utils.expExcel.ExcelExport;
  18. import cn.com.goldenwater.dcproj.utils.expExcel.ExportAbstract;
  19. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  20. import cn.com.goldenwater.id.util.UuidUtil;
  21. import com.github.pagehelper.PageHelper;
  22. import com.github.pagehelper.PageInfo;
  23. import org.apache.commons.lang3.StringUtils;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Service;
  26. import org.springframework.transaction.annotation.Transactional;
  27. import javax.servlet.http.HttpServletResponse;
  28. import java.util.ArrayList;
  29. import java.util.Date;
  30. import java.util.List;
  31. import java.util.Map;
  32. /**
  33. * <<<<<<< .mine
  34. *
  35. * @author lune
  36. * @author lune
  37. * @author zhengdafei
  38. * @date 2019-2-21
  39. * ||||||| .r1149
  40. * @date 2019-2-18
  41. * =======
  42. * @date 2019-2-21
  43. * >>>>>>> .r1206
  44. */
  45. @Service
  46. @Transactional(rollbackFor = Exception.class)
  47. public class BisInspWtdstServiceImpl extends AbstractCrudService<BisInspWtdst, BisInspWtdstParam> implements BisInspWtdstService {
  48. @Autowired
  49. private BisInspWtdstDao bisInspWtdstDao;
  50. @Autowired
  51. BisInspPblmDao bisInspPblmDao;
  52. public BisInspWtdstServiceImpl(BisInspWtdstDao bisInspWtdstDao) {
  53. super(bisInspWtdstDao);
  54. this.bisInspWtdstDao = bisInspWtdstDao;
  55. }
  56. @Override
  57. public String add(BisInspWtdst p) throws Exception {
  58. String uuid = UuidUtil.uuid();
  59. String now = DateUtils.getTodayYMDHMS();
  60. p.setIntm(new Date());
  61. p.setUptm(new Date());
  62. p.setWtdstId(uuid);
  63. transferGeo(p);
  64. bisInspWtdstDao.insert(p);
  65. return uuid;
  66. }
  67. @Override
  68. public int modify(BisInspWtdst p) throws Exception {
  69. String now = DateUtils.getTodayYMDHMS();
  70. p.setUptm(new Date());
  71. transferGeo(p);
  72. int ret = bisInspWtdstDao.update(p);
  73. return ret;
  74. }
  75. public void transferGeo(BisInspWtdst p) {
  76. String src = p.getSrc();
  77. if (StringUtils.isNotBlank(src)) {
  78. if ("PC".equalsIgnoreCase(src)) {
  79. if (p.getWtdstLgtd() != null && p.getWtdstLttd() != null) {
  80. Map<String, Double> map = GeoUtil.wgs84togcj02(p.getWtdstLgtd(), p.getWtdstLttd());
  81. p.setCenterXGd(map.get("lon"));
  82. p.setCenterYGd(map.get("lat"));
  83. }
  84. } else if ("MOBILE".equalsIgnoreCase(src)) {
  85. if (p.getCenterXGd() != null && p.getCenterYGd() != null) {
  86. Map<String, Double> map = GeoUtil.gcj02towgs84(p.getCenterXGd(), p.getCenterYGd());
  87. p.setWtdstLgtd(map.get("lon"));
  88. p.setWtdstLttd(map.get("lat"));
  89. }
  90. }
  91. } else {
  92. if (p.getWtdstLgtd() != null && p.getWtdstLttd() != null) {
  93. Map<String, Double> map = GeoUtil.wgs84togcj02(p.getWtdstLgtd(), p.getWtdstLttd());
  94. p.setCenterXGd(map.get("lon"));
  95. p.setCenterYGd(map.get("lat"));
  96. } else if (p.getCenterXGd() != null && p.getCenterYGd() != null) {
  97. Map<String, Double> map = GeoUtil.gcj02towgs84(p.getCenterXGd(), p.getCenterYGd());
  98. p.setWtdstLgtd(map.get("lon"));
  99. p.setWtdstLttd(map.get("lat"));
  100. }
  101. }
  102. }
  103. @Override
  104. public PageInfo<BisInspWtdst> queryListByPage(BisInspWtdstParam p) {
  105. PageHelper.startPage(p.getPageNum(), p.getPageSize());
  106. List<BisInspWtdst> list = bisInspWtdstDao.findList(p);
  107. return new PageInfo<BisInspWtdst>(list);
  108. }
  109. @Override
  110. public List<BisInspWtdst> queryList(BisInspWtdstParam p) {
  111. return bisInspWtdstDao.findList(p);
  112. }
  113. @Override
  114. public PageInfo<BisInspWtdstDetailDto> queryListWithPblm(BisInspWtdstDtoListParam p) {
  115. if (StringUtils.isNotBlank(p.getLocAd())) {
  116. p.setLocAd(p.getLocAd().substring(0, 2));
  117. }
  118. PageHelper.startPage(p.getPageNum(), p.getPageSize());
  119. List<BisInspWtdstDetailDto> list = bisInspWtdstDao.findDtoList(p);
  120. for (BisInspWtdstDetailDto dto : list) {
  121. List<BisInspPblm> pblms = bisInspPblmDao.findList(Builder.of(BisInspPblmParam::new).with(BisInspPblmParam::setObjId, dto.getObjId()).build());
  122. dto.setList(pblms);
  123. dto.setProblmNum(pblms.size());
  124. String adFullName = dto.getAdFullName();
  125. if (StringUtils.isBlank(adFullName)) {
  126. continue;
  127. }
  128. if (adFullName.contains(SplitValue.HENG_SPLIT)) {
  129. String[] split = adFullName.split(SplitValue.HENG_SPLIT);
  130. if (split.length == 3) {
  131. dto.setProvince(split[0]);
  132. dto.setCity(split[1]);
  133. dto.setCounty(split[2]);
  134. }
  135. if (split.length == 2) {
  136. dto.setProvince(split[0]);
  137. dto.setCity(split[1]);
  138. dto.setCounty("");
  139. }
  140. } else {
  141. dto.setProvince(adFullName);
  142. }
  143. }
  144. return new PageInfo<>(list);
  145. }
  146. @Override
  147. public void queryListWithPblmExport(BisInspWtdstDtoListParam p, HttpServletResponse response) {
  148. if (StringUtils.isNotBlank(p.getLocAd())) {
  149. p.setLocAd(p.getLocAd().substring(0, 2));
  150. }
  151. List<BisInspWtdstDetailDto> list = bisInspWtdstDao.findDtoList(p);
  152. list.forEach(x -> {
  153. List<BisInspPblm> pblms = bisInspPblmDao.findList(Builder.of(BisInspPblmParam::new).with(BisInspPblmParam::setObjId, x.getObjId()).build());
  154. x.setList(pblms);
  155. x.setProblmNum(pblms.size());
  156. });
  157. List<String> columns = new ArrayList<>();
  158. columns.add("province");
  159. columns.add("city");
  160. columns.add("county");
  161. columns.add("chkCom");
  162. columns.add("groupNm");
  163. columns.add("intm");
  164. columns.add("wtdstNm");
  165. columns.add("state");
  166. columns.add("wtdstType");
  167. columns.add("locNm");
  168. columns.add("wtdstWrkam");
  169. columns.add("wkstate");
  170. columns.add("planTm");
  171. columns.add("problmNum");
  172. columns.add("note");
  173. ExportUtil.exportExcel(list, response, "水毁修复项目暗访情况表", columns, BisInspWtdstDetailDto.class);
  174. }
  175. @Override
  176. public PageInfo<BisInspWtdst> getListBy(BisInspWtdstParam param) {
  177. return null;
  178. }
  179. @Override
  180. public void exportBisInspWtdst(BisInspWtdstParam bisInspWtdstParam, HttpServletResponse response) {
  181. List<BisInspWtdst> list = new ArrayList<>();
  182. list = bisInspWtdstDao.findList(bisInspWtdstParam);
  183. List<Map<String, Object>> mapList = new ArrayList<>();
  184. for (BisInspWtdst bisInspWtdst : list) {
  185. String wtdstState = bisInspWtdst.getWtdstState();
  186. if ("0".equals(wtdstState) || "2".equals(wtdstState)) {
  187. bisInspWtdst.setWtdstState("未修复");
  188. } else if ("1".equals(wtdstState)) {
  189. bisInspWtdst.setWtdstState("已修复");
  190. }
  191. mapList.add(BeanUtil.transBean2Map(bisInspWtdst));
  192. }
  193. ExportAbstract export = new ExcelExport();
  194. export.setFileName("水毁基础信息");
  195. export.setExport_ps_export(true);
  196. export.setExport_ps_type(ExportAbstract.XLS);
  197. export.setExport_bzip(false);
  198. export.setTitle("水毁基础信息");
  199. ArrayList<Object> cols = new ArrayList<Object>();
  200. cols.add("wtdstNm[项目名称]");
  201. cols.add("locNm[项目所在位置]");
  202. cols.add("objType[水毁类别]");
  203. cols.add("wtdstDtle[水毁情况]");
  204. cols.add("wtdstState[修复状态]");
  205. cols.add("wtdstWrkam[主要工作量]");
  206. cols.add("planRcvrTm[计划修复日期]");
  207. cols.add("uptm[最后更新时间]");
  208. cols.add("note[备注]");
  209. export.setCols(cols);
  210. export.setGroupable(false);
  211. // 设置视图指标
  212. export.setLevel(1);
  213. export.setLocksize(0);
  214. try {
  215. export.Export(response);
  216. export.ExportHeadForCustom(response);//导出表头
  217. export.ContinueExport(mapList);
  218. export.EndExport();
  219. } catch (Exception e) {
  220. e.printStackTrace();
  221. }
  222. }
  223. /**
  224. * 批量设置是否省属 1是2否
  225. *
  226. * @param bisInspWtdstParam
  227. * @return
  228. */
  229. @Override
  230. public int updateBatchProvincial(BisInspWtdstParam bisInspWtdstParam) {
  231. return bisInspWtdstDao.updateBatchProvincial(bisInspWtdstParam);
  232. }
  233. }