3e235aa1e4f8b71b2438a6349f5bcc3c0dfe0edc.svn-base 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  3. import cn.com.goldenwater.dcproj.constValue.CommonLabel;
  4. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  5. import cn.com.goldenwater.dcproj.dao.AttRlrwBaseDao;
  6. import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao;
  7. import cn.com.goldenwater.dcproj.dao.BisInspPblmDao;
  8. import cn.com.goldenwater.dcproj.dao.BisInspRlrwRgstrDao;
  9. import cn.com.goldenwater.dcproj.dto.BisInspRlrwRgstrDto;
  10. import cn.com.goldenwater.dcproj.model.*;
  11. import cn.com.goldenwater.dcproj.param.*;
  12. import cn.com.goldenwater.dcproj.service.*;
  13. import cn.com.goldenwater.core.service.AbstractCrudService;
  14. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  15. import cn.com.goldenwater.dcproj.utils.Constant;
  16. import com.github.pagehelper.PageHelper;
  17. import com.github.pagehelper.PageInfo;
  18. import org.apache.commons.collections.MapUtils;
  19. import org.apache.commons.lang3.StringUtils;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import cn.com.goldenwater.id.util.UuidUtil;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.util.Date;
  27. import java.util.List;
  28. import java.util.Map;
  29. /**
  30. * @author lhc
  31. * @date 2021-1-19
  32. */
  33. @Service
  34. @Transactional
  35. public class BisInspRlrwRgstrServiceImpl extends AbstractCrudService<BisInspRlrwRgstr, BisInspRlrwRgstrParam> implements BisInspRlrwRgstrService,BisInspObjStrategy {
  36. @Autowired
  37. private BisInspRlrwRgstrDao bisInspRlrwRgstrDao;
  38. @Autowired
  39. private AttRlrwBaseService attRlrwBaseService;
  40. @Autowired
  41. private AttRlrwBaseDao attRlrwBaseDao;
  42. @Autowired
  43. private BisInspRlrwBdiService bisInspRlrwBdiService;
  44. @Autowired
  45. private BisInspRlrwCdiService bisInspRlrwCdiService;
  46. @Autowired
  47. private BisInspPblmDao bisInspPblmDao;
  48. @Autowired
  49. private BisInspAllObjDao bisInspAllObjDao;
  50. public BisInspRlrwRgstrServiceImpl(BisInspRlrwRgstrDao bisInspRlrwRgstrDao) {
  51. super(bisInspRlrwRgstrDao);
  52. this.bisInspRlrwRgstrDao = bisInspRlrwRgstrDao;
  53. }
  54. @Override
  55. public int insert(BisInspRlrwRgstr bisInspRlrwRgstr) {
  56. String uuid = UuidUtil.uuid(); // 生成uuid
  57. bisInspRlrwRgstr.setId(uuid);
  58. bisInspRlrwRgstr.setIntm(new Date());
  59. bisInspRlrwRgstr.setUptm(new Date());
  60. bisInspRlrwRgstr.setDataStat("0");
  61. return this.bisInspRlrwRgstrDao.insert(bisInspRlrwRgstr);
  62. }
  63. @Override
  64. public int update(BisInspRlrwRgstr bisInspRlrwRgstr) {
  65. bisInspRlrwRgstr.setUptm(new Date());
  66. return this.bisInspRlrwRgstrDao.update(bisInspRlrwRgstr);
  67. }
  68. @Override
  69. public int delete(String id) {
  70. return this.bisInspRlrwRgstrDao.delete(id);
  71. }
  72. @Override
  73. public BisInspRlrwRgstr save(BisInspRlrwRgstr bisInspRlrwRgstr) {
  74. // 根据有无主键,来新增、更新信息
  75. int ret = 0;
  76. if (StringUtils.isNotBlank(bisInspRlrwRgstr.getRgstrId())) {
  77. // rgstrId 不为 空 时,传给ID
  78. bisInspRlrwRgstr.setId(bisInspRlrwRgstr.getRgstrId());
  79. }
  80. if (StringUtils.isBlank(bisInspRlrwRgstr.getId())) {
  81. if (StringUtils.isNotBlank(bisInspRlrwRgstr.getObjId())) {
  82. BisInspRlrwRgstrParam param = new BisInspRlrwRgstrParam();
  83. param.setObjId(bisInspRlrwRgstr.getId());
  84. BisInspRlrwRgstr rgstr = getBy(param);
  85. // 如果没有注册表,添加
  86. if (null == rgstr) {
  87. ret = insert(bisInspRlrwRgstr);
  88. } else {
  89. bisInspRlrwRgstr.setId(rgstr.getId());
  90. bisInspRlrwRgstr.setUptm(new Date());
  91. update(bisInspRlrwRgstr);
  92. // 更新基础表
  93. updateAttRlrwBase(bisInspRlrwRgstr);
  94. }
  95. }
  96. } else {
  97. if (StringUtils.isBlank(bisInspRlrwRgstr.getObjId())) {
  98. BisInspRlrwRgstr rgstr = get(bisInspRlrwRgstr.getId());
  99. if (null != rgstr) {
  100. bisInspRlrwRgstr.setObjId(rgstr.getObjId());
  101. }
  102. }
  103. bisInspRlrwRgstr.setUptm(new Date());
  104. update(bisInspRlrwRgstr);
  105. // 更新基础表
  106. updateAttRlrwBase(bisInspRlrwRgstr);
  107. }
  108. return bisInspRlrwRgstr;
  109. }
  110. private void updateAttRlrwBase(BisInspRlrwRgstr bisInspRlrwRgstr) {
  111. if (StringUtils.isNotBlank(bisInspRlrwRgstr.getObjId())) {
  112. AttRlrwBase attRlrwBase = attRlrwBaseService.getObjId(bisInspRlrwRgstr.getObjId());
  113. // 转换基础表ID
  114. String attRlrwBaseLandCode = attRlrwBase.getLandCode();
  115. BeanUtils.copyProperties(bisInspRlrwRgstr, attRlrwBase);
  116. attRlrwBase.setLandCode(attRlrwBaseLandCode);
  117. attRlrwBase.setIntm(null);
  118. attRlrwBaseService.update(attRlrwBase);
  119. }
  120. }
  121. @Override
  122. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  123. BisInspRlrwRgstr rgstr = new BisInspRlrwRgstr();
  124. AttRlrwBase base = attRlrwBaseDao.get(bisInspAllObj.getCode());
  125. BeanUtils.copyProperties(base, rgstr);
  126. // 统一字段 rgstrId, objId
  127. rgstr.setId(UuidUtil.uuid());
  128. rgstr.setObjId(bisInspAllObj.getObjId());
  129. rgstr.setGroupId(bisInspAllObj.getId());
  130. rgstr.setProvince(bisInspAllObj.getProvince());
  131. // 日期
  132. Date d = new Date();
  133. rgstr.setIntm(d);
  134. rgstr.setUptm(d);
  135. // 数据状态 默认为 0
  136. rgstr.setDataStat(CommonLabel.INIT_DATA);
  137. // 督查状态(0:未督查;1:督查中;2:已督查)
  138. rgstr.setState(CommonLabel.INIT_DATA);
  139. // 子表状态(0:未督查;1:督查中;2:已督查)
  140. rgstr.setCurState(CommonLabel.INIT_DATA);
  141. rgstr.setBeoState(CommonLabel.INIT_DATA);
  142. // 创建人
  143. rgstr.setPersId(persId);
  144. /* 添加 登记表 */
  145. this.bisInspRlrwRgstrDao.insert(rgstr);
  146. /* 添加 子表 */
  147. BisInspRlrwBdi bisInspRlrwBdi = new BisInspRlrwBdi();
  148. bisInspRlrwBdi.setRgstrId(rgstr.getId());
  149. bisInspRlrwBdiService.insert(bisInspRlrwBdi);
  150. BisInspRlrwCdi bisInspRlrwCdi = new BisInspRlrwCdi();
  151. bisInspRlrwCdi.setRgstrId(rgstr.getId());
  152. bisInspRlrwCdiService.insert(bisInspRlrwCdi);
  153. }
  154. @Override
  155. public String getType() {
  156. return BisInspEnum.RLRW.getValue();
  157. }
  158. @Override
  159. public void cleanObjData(String objId) {
  160. BisInspRlrwRgstrParam rgstrParam = new BisInspRlrwRgstrParam();
  161. rgstrParam.setObjId(objId);
  162. List<BisInspRlrwRgstr> list = this.bisInspRlrwRgstrDao.findList(rgstrParam);
  163. if (list.size() > 0) {
  164. String id = list.get(0).getId();
  165. // 删除子表
  166. BisInspRlrwCdiParam bisInspRlrwCdiParam = new BisInspRlrwCdiParam();
  167. bisInspRlrwCdiParam.setRgstrId(id);
  168. bisInspRlrwCdiService.deleteBy(bisInspRlrwCdiParam);
  169. BisInspRlrwBdiParam bisInspRlrwBdiParam = new BisInspRlrwBdiParam();
  170. bisInspRlrwBdiParam.setRgstrId(id);
  171. bisInspRlrwBdiService.deleteBy(bisInspRlrwBdiParam);
  172. // 删除登记表
  173. this.bisInspRlrwRgstrDao.delete(id);
  174. }
  175. // 删除问题
  176. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  177. bisInspPblmParam.setObjId(objId);
  178. bisInspPblmParam.setObjType(BisInspEnum.RLRW.getValue());
  179. bisInspPblmDao.deleteBy(bisInspPblmParam);
  180. // 删除对象名录表
  181. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  182. bisInspAllObjParam.setObjId(objId);
  183. bisInspAllObjDao.deleteBy(bisInspAllObjParam);
  184. }
  185. @Override
  186. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  187. if (StringUtils.isNotBlank(typeParam.getAdCode())) {
  188. typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
  189. }
  190. PageHelper.startPage(typeParam);
  191. List<BisInspRlrwRgstrDto> list = this.bisInspRlrwRgstrDao.findPageList(typeParam);
  192. return (PageInfo<BisInspRlrwRgstrDto>) new PageInfo(list);
  193. }
  194. @Override
  195. public Object findObjListByType(TypeParam typeParam) {
  196. return this.bisInspRlrwRgstrDao.findPageList(typeParam);
  197. }
  198. @Override
  199. public PageInfo<BisInspRlrwRgstr> findRlrwPageInfo(BisInspRlrwRgstrParam bisInspRlrwRgstrParam) {
  200. PageHelper.startPage(bisInspRlrwRgstrParam.getPageNum(),bisInspRlrwRgstrParam.getPageSize());
  201. List<BisInspRlrwRgstr> list = bisInspRlrwRgstrDao.findRlrwPageInfo(bisInspRlrwRgstrParam);
  202. return new PageInfo(list);
  203. }
  204. @Override
  205. public void updateState(Map<String, Object> map) {
  206. BisInspRlrwRgstr rgstr = get(MapUtils.getString(map, "rgstrId"));
  207. if (!Constant.STRING_TWO.equals(rgstr.getState()) &&
  208. StringUtils.isNotBlank(MapUtils.getString(map, "state"))) {
  209. rgstr.setUptm(new Date());
  210. rgstr.setState(Constant.STRING_ONE);
  211. switch (MapUtils.getString(map, "param")) {
  212. case "bdi":
  213. rgstr.setBeoState(MapUtils.getString(map, "state"));
  214. break;
  215. case "cdi":
  216. rgstr.setCurState(MapUtils.getString(map, "state"));
  217. break;
  218. default:
  219. }
  220. update(rgstr);
  221. }
  222. }
  223. }