3b389cd4943eee2ea33c94068b973bbac5ffd617.svn-base 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.constValue.CommonLabel;
  5. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  6. import cn.com.goldenwater.dcproj.dao.BisInspRslkbkRgstrDao;
  7. import cn.com.goldenwater.dcproj.dto.BisInspRslkbkRgstrDto;
  8. import cn.com.goldenwater.dcproj.model.AttRsBase;
  9. import cn.com.goldenwater.dcproj.model.BisInspAllObj;
  10. import cn.com.goldenwater.dcproj.model.BisInspRslkbkPblm;
  11. import cn.com.goldenwater.dcproj.model.BisInspRslkbkRgstr;
  12. import cn.com.goldenwater.dcproj.param.BisInspRslkbkPblmParam;
  13. import cn.com.goldenwater.dcproj.param.BisInspRslkbkRgstrParam;
  14. import cn.com.goldenwater.dcproj.param.TypeParam;
  15. import cn.com.goldenwater.dcproj.service.*;
  16. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  17. import cn.com.goldenwater.dcproj.utils.Builder;
  18. import cn.com.goldenwater.id.util.UuidUtil;
  19. import com.github.pagehelper.PageHelper;
  20. import com.github.pagehelper.PageInfo;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.BeanUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import javax.servlet.http.HttpServletResponse;
  29. import java.util.Date;
  30. import java.util.List;
  31. /**
  32. * @author lhc
  33. * @date 2021-4-26
  34. */
  35. @Service
  36. @Transactional
  37. public class BisInspRslkbkRgstrServiceImpl extends AbstractCrudService<BisInspRslkbkRgstr, BisInspRslkbkRgstrParam> implements BisInspRslkbkRgstrService, BisInspObjStrategy {
  38. private Logger logger = LoggerFactory.getLogger(getClass());
  39. @Autowired
  40. private BisInspRslkbkRgstrDao bisInspRslkbkRgstrDao;
  41. @Autowired
  42. private AttRsBaseService attRsBaseService;
  43. @Autowired
  44. private BisInspRslkbkPblmService bisInspRslkbkPblmService;
  45. @Autowired
  46. private BisInspPblmService bisInspPblmService;
  47. public BisInspRslkbkRgstrServiceImpl(BisInspRslkbkRgstrDao bisInspRslkbkRgstrDao) {
  48. super(bisInspRslkbkRgstrDao);
  49. this.bisInspRslkbkRgstrDao = bisInspRslkbkRgstrDao;
  50. }
  51. @Override
  52. public int insert(BisInspRslkbkRgstr bisInspRslkbkRgstr) {
  53. String uuid = UuidUtil.uuid();
  54. bisInspRslkbkRgstr.setId(uuid);
  55. bisInspRslkbkRgstr.setIntm(new Date());
  56. bisInspRslkbkRgstr.setUptm(new Date());
  57. bisInspRslkbkRgstr.setDataStat("0");
  58. return this.bisInspRslkbkRgstrDao.insert(bisInspRslkbkRgstr);
  59. }
  60. @Override
  61. public BisInspRslkbkRgstr get(String key) {
  62. BisInspRslkbkRgstr rgstr = super.get(key);
  63. if (!"2".equals(rgstr.getRectStat())) {
  64. checkFinished(rgstr);
  65. }
  66. return rgstr;
  67. }
  68. /**
  69. * 更新整改问题状态
  70. * 判断问题是否全部整改
  71. *
  72. * @param rgstr
  73. */
  74. private void checkFinished(BisInspRslkbkRgstr rgstr) {
  75. String rectStat = "0";
  76. List<BisInspRslkbkPblm> pblmMendList = bisInspRslkbkPblmService.findList(Builder.of(BisInspRslkbkPblmParam::new).with(BisInspRslkbkPblmParam::setRsCode, rgstr.getRsCode()).build());
  77. if (pblmMendList == null || pblmMendList.size() == 0) {
  78. rectStat = "2";
  79. } else {
  80. long total = pblmMendList.size();
  81. long revw = pblmMendList.stream().filter(p -> "2".equals(p.getRevwState())).count();
  82. if (total == revw) {
  83. rectStat = "2";
  84. } else if (total > revw && revw != 0) {
  85. rectStat = "1";
  86. }
  87. }
  88. if (!rectStat.equals(rgstr.getRectStat())) {
  89. rgstr.setRectStat(rectStat);
  90. // bisInspRslkbkRgstrDao.update(rgstr);
  91. }
  92. }
  93. @Override
  94. public int update(BisInspRslkbkRgstr bisInspRslkbkRgstr) {
  95. bisInspRslkbkRgstr.setUptm(new Date());
  96. int ret = this.bisInspRslkbkRgstrDao.update(bisInspRslkbkRgstr);
  97. // 更新基础表信息
  98. updateAttBase(bisInspRslkbkRgstr);
  99. updatePblmState(bisInspRslkbkRgstr);
  100. return ret;
  101. }
  102. private void updateAttBase(BisInspRslkbkRgstr rgstr) {
  103. BisInspRslkbkRgstr r = get(rgstr.getId());
  104. AttRsBase attWiuqhBase = attRsBaseService.getObjId(r.getObjId());
  105. attWiuqhBase.setRegCode(rgstr.getDamRegCode());
  106. attWiuqhBase.setRsName(rgstr.getRsName());
  107. attWiuqhBase.setAdmDiv(rgstr.getAdCode());
  108. attWiuqhBase.setCenterX(rgstr.getCenterX() != null ? String.valueOf(rgstr.getCenterX()) : "");
  109. attWiuqhBase.setCenterY(rgstr.getCenterY() != null ? String.valueOf(rgstr.getCenterY()) : "");
  110. attWiuqhBase.setRsAdmCode(rgstr.getRsAdmCode());
  111. attWiuqhBase.setRsAdmName(rgstr.getRsAdmName());
  112. attWiuqhBase.setEngScal(rgstr.getEngScal());
  113. attWiuqhBase.setRsClass(rgstr.getRsClass());
  114. attWiuqhBase.setDamType(rgstr.getDamType());
  115. attWiuqhBase.setTotCap(rgstr.getTotCap());
  116. attWiuqhBase.setLocation(rgstr.getLocation());
  117. attWiuqhBase.setDamSizeHig(rgstr.getDamSizeHig());
  118. attWiuqhBase.setDesFlStag(rgstr.getDesFlStag());
  119. attWiuqhBase.setFlConTopStag(rgstr.getFlConTopStag());
  120. attWiuqhBase.setImpdDt(rgstr.getImpdDt());
  121. attWiuqhBase.setRnfcImpdDt(rgstr.getRnfcImpdDt());
  122. attWiuqhBase.setIsAction(rgstr.getIsAction());
  123. attWiuqhBase.setIsSaf(rgstr.getIsSaf());
  124. attWiuqhBase.setNormz(rgstr.getNormz());
  125. attWiuqhBase.setFsltdz(rgstr.getFsltdz());
  126. attRsBaseService.update(attWiuqhBase);
  127. }
  128. private void updatePblmState(BisInspRslkbkRgstr rgstr) {
  129. BisInspRslkbkRgstr r = get(rgstr.getId());
  130. if (r == null) {
  131. return;
  132. }
  133. bisInspPblmService.updateStateByObjId(r.getObjId(), rgstr.getState());
  134. }
  135. @Override
  136. public int delete(String id) {
  137. return this.bisInspRslkbkRgstrDao.delete(id);
  138. }
  139. @Override
  140. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  141. BisInspRslkbkRgstr b = new BisInspRslkbkRgstr();
  142. AttRsBase base = attRsBaseService.get(bisInspAllObj.getCode());
  143. BeanUtils.copyProperties(base, b);
  144. b.setDamRegCode(base.getRegCode());
  145. b.setHasDamRegCode(StringUtils.isBlank(base.getRegCode()) ? "2" : "1");
  146. b.setAdCode(base.getAdmDiv());
  147. // 统一字段 rgstrId, objId
  148. b.setId(UuidUtil.uuid());
  149. b.setObjId(bisInspAllObj.getObjId());
  150. // 日期
  151. Date d = new Date();
  152. b.setIntm(d);
  153. b.setUptm(d);
  154. // 数据状态 默认为 0
  155. b.setDataStat(CommonLabel.INIT_DATA);
  156. // 督查状态(0:未督查;1:督查中;2:已督查)
  157. b.setState(CommonLabel.INIT_DATA);
  158. // 创建人
  159. // b.setPersId(persId);
  160. /* 添加 登记表 */
  161. this.bisInspRslkbkRgstrDao.insert(b);
  162. }
  163. @Override
  164. public String getType() {
  165. return BisInspEnum.RSLKBK.getValue();
  166. }
  167. @Override
  168. public void cleanObjData(String objId) {
  169. BisInspRslkbkRgstrParam rgstrParam = new BisInspRslkbkRgstrParam();
  170. rgstrParam.setObjId(objId);
  171. List<BisInspRslkbkRgstr> list = this.bisInspRslkbkRgstrDao.findList(rgstrParam);
  172. if (list.size() > 0) {
  173. String id = list.get(0).getId();
  174. // 删除登记表
  175. this.bisInspRslkbkRgstrDao.delete(id);
  176. }
  177. }
  178. @Override
  179. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  180. logger.info("zxsk cs:"+typeParam);
  181. if (StringUtils.isNotBlank(typeParam.getAdCode())) {
  182. typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
  183. }
  184. PageHelper.startPage(typeParam);
  185. List<BisInspRslkbkRgstrDto> list = this.bisInspRslkbkRgstrDao.findPageList(typeParam);
  186. if (list != null && list.size() > 0) {
  187. list.forEach(rgstrDto -> {
  188. if (StringUtils.isNotBlank(rgstrDto.getAdFullName())) {
  189. String[] adFullNames = rgstrDto.getAdFullName().split("-");
  190. rgstrDto.setProName(adFullNames[0]);
  191. if (adFullNames.length > 1) {
  192. rgstrDto.setCityName(adFullNames[1]);
  193. }
  194. if (adFullNames.length > 2) {
  195. rgstrDto.setCountyName(adFullNames[2]);
  196. }
  197. }
  198. });
  199. }
  200. return new PageInfo<>(list);
  201. }
  202. @Override
  203. public Object findObjListByType(TypeParam typeParam) {
  204. logger.info("zxsk cs:"+typeParam);
  205. return this.bisInspRslkbkRgstrDao.findPageList(typeParam);
  206. }
  207. }