34c1fdcc96809f56c52dc5476f2307a7c20f09c8.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package cn.com.goldenwater.dcproj.service.impl.prd;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  5. import cn.com.goldenwater.dcproj.dao.AttPrdCstrProjBaseDao;
  6. import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao;
  7. import cn.com.goldenwater.dcproj.dao.BisInspOprdCstrProjRgstrDao;
  8. import cn.com.goldenwater.dcproj.dto.BisInspOprdCstrProjRgstrDto;
  9. import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto;
  10. import cn.com.goldenwater.dcproj.model.AttPrdCstrProjBase;
  11. import cn.com.goldenwater.dcproj.model.BisInspAllObj;
  12. import cn.com.goldenwater.dcproj.model.BisInspOprdCstrProjRgstr;
  13. import cn.com.goldenwater.dcproj.param.BisInspOprdCstrProjRgstrParam;
  14. import cn.com.goldenwater.dcproj.param.TypeParam;
  15. import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
  16. import cn.com.goldenwater.dcproj.service.BisInspOprdCstrProjRgstrService;
  17. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  18. import cn.com.goldenwater.dcproj.utils.FormatFieldUtil;
  19. import cn.com.goldenwater.dcproj.utils.GeoUtil;
  20. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  21. import cn.com.goldenwater.id.util.UuidUtil;
  22. import cn.com.goldenwater.target.CheckException;
  23. import com.github.pagehelper.PageHelper;
  24. import com.github.pagehelper.PageInfo;
  25. import org.apache.commons.lang3.StringUtils;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import javax.servlet.http.HttpServletResponse;
  30. import java.util.ArrayList;
  31. import java.util.Date;
  32. import java.util.List;
  33. import java.util.Map;
  34. /**
  35. * @author lune
  36. * @date 2019-12-12
  37. */
  38. @Service
  39. @Transactional
  40. public class BisInspOprdCstrProjRgstrServiceImpl extends AbstractCrudService<BisInspOprdCstrProjRgstr, BisInspOprdCstrProjRgstrParam> implements BisInspOprdCstrProjRgstrService, BisInspObjStrategy {
  41. @Autowired
  42. private BisInspOprdCstrProjRgstrDao bisInspOprdCstrProjRgstrDao;
  43. @Autowired
  44. private AttPrdCstrProjBaseDao attPrdCstrProjBaseDao;
  45. @Autowired
  46. private BisInspAllObjDao bisInspAllObjDao;
  47. @Autowired
  48. private BisInspOprdCstrProjRgstrDao oprdCstrProjRgstrDao;
  49. public BisInspOprdCstrProjRgstrServiceImpl(BisInspOprdCstrProjRgstrDao bisInspOprdCstrProjRgstrDao) {
  50. super(bisInspOprdCstrProjRgstrDao);
  51. this.bisInspOprdCstrProjRgstrDao = bisInspOprdCstrProjRgstrDao;
  52. }
  53. @Override
  54. public int update(BisInspOprdCstrProjRgstr entity) {
  55. BisInspOprdCstrProjRgstr rgstr = get(entity.getId());
  56. if (rgstr == null) {
  57. throw new CheckException("未找到登记表!");
  58. }
  59. // 更新登记表
  60. int ret = super.update(entity);
  61. // 更新基础表
  62. entity.setObjId(rgstr.getObjId());
  63. updateAttBase(entity);
  64. return ret;
  65. }
  66. private void updateAttBase(BisInspOprdCstrProjRgstr rgstr) {
  67. AttPrdCstrProjBase base = attPrdCstrProjBaseDao.getObjId(rgstr.getObjId());
  68. base.setCode(rgstr.getCode());
  69. base.setName(rgstr.getName());
  70. base.setType(rgstr.getType());
  71. base.setAdCode(rgstr.getAdCode());
  72. base.setAdName(rgstr.getAdName());
  73. base.setLocation(rgstr.getLocation());
  74. base.setCenterX(rgstr.getCenterX());
  75. base.setCenterY(rgstr.getCenterX());
  76. base.setGdX(rgstr.getGdX());
  77. base.setGdY(rgstr.getGdY());
  78. attPrdCstrProjBaseDao.update(base);
  79. }
  80. @Override
  81. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  82. AttPrdCstrProjBase prdCstrProjBase = attPrdCstrProjBaseDao.get(bisInspAllObj.getCode());
  83. BisInspOprdCstrProjRgstr oprdCstrProjRgstr = new BisInspOprdCstrProjRgstr();
  84. oprdCstrProjRgstr.setAdCode(prdCstrProjBase.getAdCode());
  85. oprdCstrProjRgstr.setAdName(prdCstrProjBase.getAdName());
  86. oprdCstrProjRgstr.setPersId(persId);
  87. oprdCstrProjRgstr.setProvince(bisInspAllObj.getProvince());
  88. oprdCstrProjRgstr.setState("0");
  89. oprdCstrProjRgstr.setId(UuidUtil.uuid());
  90. oprdCstrProjRgstr.setInTm(new Date());
  91. oprdCstrProjRgstr.setUpTm(new Date());
  92. oprdCstrProjRgstr.setObjId(bisInspAllObj.getObjId());
  93. oprdCstrProjRgstr.setGroupId(bisInspAllObj.getId());
  94. oprdCstrProjRgstr.setLocation(prdCstrProjBase.getLocation());
  95. oprdCstrProjRgstr.setName(prdCstrProjBase.getName());
  96. oprdCstrProjRgstr.setType(prdCstrProjBase.getType());
  97. if (prdCstrProjBase.getGdX() != null && prdCstrProjBase.getGdY() != null) {
  98. Map<String, Double> params = GeoUtil.gcj02towgs84(prdCstrProjBase.getGdX(), prdCstrProjBase.getGdY());
  99. oprdCstrProjRgstr.setCenterX(params.get("lon"));
  100. oprdCstrProjRgstr.setCenterY(params.get("lat"));
  101. }
  102. oprdCstrProjRgstr.setGdX(prdCstrProjBase.getGdX());
  103. oprdCstrProjRgstr.setGdY(prdCstrProjBase.getGdY());
  104. bisInspOprdCstrProjRgstrDao.insert(oprdCstrProjRgstr);
  105. }
  106. @Override
  107. public String getType() {
  108. return BisInspEnum.PRD.getValue();
  109. }
  110. @Override
  111. public void cleanObjData(String objId) {
  112. BisInspOprdCstrProjRgstrParam param = new BisInspOprdCstrProjRgstrParam();
  113. param.setObjId(objId);
  114. List<BisInspOprdCstrProjRgstr> list = oprdCstrProjRgstrDao.findList(param);
  115. if (list.size() > 0) {
  116. String id = list.get(0).getId();
  117. BisInspOprdCstrProjRgstr rgstr = oprdCstrProjRgstrDao.get(id);
  118. oprdCstrProjRgstrDao.delete(id);
  119. if (rgstr != null) {
  120. this.bisInspAllObjDao.delete(rgstr.getObjId());
  121. }
  122. }
  123. }
  124. @Override
  125. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  126. return findCstrPrdPage(typeParam, response);
  127. }
  128. @Override
  129. public Object findObjListByType(TypeParam typeParam) {
  130. return findCstrPrdList(typeParam);
  131. }
  132. @Override
  133. public PageInfo<BisInspRgstrDto> findCstrPrdPage(TypeParam typeParam, HttpServletResponse response) {
  134. if (StringUtils.isNotBlank(typeParam.getAdCode())) {
  135. typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
  136. }
  137. if ("1".equals(typeParam.getIsExport())) {
  138. ExportUtil.exportExcel(bisInspOprdCstrProjRgstrDao.findCstrPrdPage(typeParam), response, "节水管理与评价督查列表");
  139. }
  140. PageHelper.startPage(typeParam);
  141. List<BisInspRgstrDto> list = bisInspOprdCstrProjRgstrDao.findCstrPrdPage(typeParam);
  142. list = changeList(list);
  143. return new PageInfo<BisInspRgstrDto>(list);
  144. }
  145. @Override
  146. public List findCstrPrdList(TypeParam typeParam) {
  147. if (StringUtils.isNotBlank(typeParam.getAdCode())) {
  148. typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
  149. }
  150. List<BisInspRgstrDto> list = bisInspOprdCstrProjRgstrDao.findCstrPrdPage(typeParam);
  151. return changeList(list);
  152. }
  153. @Override
  154. public PageInfo<BisInspOprdCstrProjRgstrDto> findPcPage(BisInspOprdCstrProjRgstrParam bisInspOprdCstrProjRgstrParam) {
  155. PageHelper.startPage(bisInspOprdCstrProjRgstrParam);
  156. List<BisInspOprdCstrProjRgstrDto> list = bisInspOprdCstrProjRgstrDao.findPrdPcPage(bisInspOprdCstrProjRgstrParam);
  157. if (list.size() > 0) {
  158. for (BisInspOprdCstrProjRgstrDto b : list) {
  159. if (b.getAdFullName() != null) {
  160. if (b.getAdFullName().contains(SplitValue.HENG_SPLIT)) {
  161. String[] split = b.getAdFullName().split(SplitValue.HENG_SPLIT);
  162. if (split.length == 3) {
  163. b.setProvince(split[0]);
  164. b.setCity(split[1]);
  165. b.setCounty(split[2]);
  166. }
  167. if (split.length == 2) {
  168. b.setProvince(split[0]);
  169. b.setCity(split[1]);
  170. b.setCounty("");
  171. }
  172. } else {
  173. b.setProvince(b.getAdFullName());
  174. }
  175. }
  176. }
  177. }
  178. return new PageInfo<BisInspOprdCstrProjRgstrDto>(list);
  179. }
  180. @Override
  181. public void findPcPageExport(BisInspOprdCstrProjRgstrParam bisInspOprdCstrProjRgstrParam, HttpServletResponse response) {
  182. List<BisInspOprdCstrProjRgstrDto> list = bisInspOprdCstrProjRgstrDao.findPrdPcPage(bisInspOprdCstrProjRgstrParam);
  183. list.forEach(x -> {
  184. x.setState(FormatFieldUtil.commonStateFormat(x.getState()));
  185. });
  186. List<String> columns = new ArrayList<>();
  187. columns.add("id");
  188. columns.add("adCode");
  189. columns.add("centerX");
  190. columns.add("centerY");
  191. columns.add("inTm");
  192. columns.add("upTm");
  193. columns.add("gdX");
  194. columns.add("gdY");
  195. columns.add("baseId");
  196. columns.add("rgstrId");
  197. columns.add("objId");
  198. columns.add("persId");
  199. columns.add("groupId");
  200. columns.add("province");
  201. ExportUtil.exportExcel(list, response, "水保督查登记列表", columns, BisInspOprdCstrProjRgstrDto.class);
  202. }
  203. private List<BisInspRgstrDto> changeList(List<BisInspRgstrDto> list) {
  204. if (list.size() > 0) {
  205. for (BisInspRgstrDto rgstrDto : list) {
  206. String adFullName = rgstrDto.getAdName();
  207. if (adFullName.contains(SplitValue.HENG_SPLIT)) {
  208. String[] split = adFullName.split(SplitValue.HENG_SPLIT);
  209. if (split.length == 3) {
  210. rgstrDto.setProvince(split[0]);
  211. rgstrDto.setCity(split[1]);
  212. rgstrDto.setCountry(split[2]);
  213. }
  214. if (split.length == 2) {
  215. rgstrDto.setProvince(split[0]);
  216. rgstrDto.setCity(split[1]);
  217. rgstrDto.setCountry("");
  218. }
  219. } else {
  220. rgstrDto.setProvince(adFullName);
  221. }
  222. }
  223. }
  224. return list;
  225. }
  226. }