2d3adc1f64ea3d84d755f10de97ffa8c2a56e471.svn-base 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. package cn.com.goldenwater.dcproj.service.impl.ducha;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao;
  5. import cn.com.goldenwater.dcproj.dto.BisInspAllObjDto;
  6. import cn.com.goldenwater.dcproj.model.AttInspType;
  7. import cn.com.goldenwater.dcproj.model.BisInspAllObj;
  8. import cn.com.goldenwater.dcproj.model.BisInspAllRlation;
  9. import cn.com.goldenwater.dcproj.param.BisInspAllObjParam;
  10. import cn.com.goldenwater.dcproj.service.AttInspTypeService;
  11. import cn.com.goldenwater.dcproj.service.BisInspAllObjService;
  12. import cn.com.goldenwater.dcproj.util.StatisticalUtil;
  13. import cn.com.goldenwater.dcproj.utils.InspUtils;
  14. import cn.com.goldenwater.dcproj.utils.ListUtil;
  15. import com.alibaba.fastjson.JSON;
  16. import com.github.pagehelper.PageHelper;
  17. import com.github.pagehelper.PageInfo;
  18. import org.apache.commons.collections.CollectionUtils;
  19. import org.apache.commons.collections.MapUtils;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Service;
  25. import org.springframework.transaction.annotation.Transactional;
  26. import java.util.*;
  27. import java.util.stream.Collectors;
  28. /**
  29. * @author lune
  30. * @date 2019-2-23
  31. */
  32. @Service
  33. @Transactional
  34. public class BisInspAllObjServiceImpl extends AbstractCrudService<BisInspAllObj, BisInspAllObjParam> implements BisInspAllObjService {
  35. private Logger log = LoggerFactory.getLogger(getClass());
  36. @Autowired
  37. private BisInspAllObjDao bisInspAllObjDao;
  38. @Autowired
  39. private AttInspTypeService attInspTypeService;
  40. public BisInspAllObjServiceImpl(BisInspAllObjDao bisInspAllObjDao) {
  41. super(bisInspAllObjDao);
  42. this.bisInspAllObjDao = bisInspAllObjDao;
  43. }
  44. @Override
  45. public Integer insertObj(BisInspAllObjDto bisInspAllObjDto) {
  46. String ptype = "";
  47. if (bisInspAllObjDto.getPtype().equals(BisInspEnum.REVER.getValue())) {
  48. ptype = BisInspEnum.REVER.getRlation();
  49. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.VILL.getValue())) {
  50. ptype = BisInspEnum.VILL.getRlation();
  51. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.TRACK.getValue())) {
  52. ptype = BisInspEnum.TRACK.getRlation();
  53. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.EMPWT.getValue())) {
  54. ptype = BisInspEnum.EMPWT.getRlation();
  55. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.GRW.getValue())) {
  56. ptype = BisInspEnum.GRW.getRlation();
  57. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.WAGA.getValue())) {
  58. ptype = BisInspEnum.WAGA.getRlation();
  59. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.EMPWTRUN.getValue())) {
  60. ptype = BisInspEnum.EMPWTRUN.getRlation();
  61. } else if (bisInspAllObjDto.getPtype().equals(BisInspEnum.PAWP.getValue())) {
  62. ptype = BisInspEnum.PAWP.getRlation();
  63. }
  64. //根据人员id找到所在督查节点ID
  65. if (StringUtils.isNotBlank(bisInspAllObjDto.getId())) {
  66. return bisInspAllObjDao.insertObj(bisInspAllObjDto);
  67. } else {
  68. List<BisInspAllRlation> bisInspAllRlations = getIdByUserId(bisInspAllObjDto.getPersonid(), ptype, bisInspAllObjDto.getAdCode());
  69. if (bisInspAllRlations.size() == 1) {
  70. bisInspAllObjDto.setId(bisInspAllRlations.get(0).getId());
  71. return bisInspAllObjDao.insertObj(bisInspAllObjDto);
  72. } else {
  73. bisInspAllObjDto.setId(bisInspAllRlations.get(0).getId());
  74. return bisInspAllObjDao.insertObj(bisInspAllObjDto);
  75. }
  76. }
  77. }
  78. @Override
  79. public Integer selectCount(BisInspAllObjDto bisInspAllObjDto) {
  80. return bisInspAllObjDao.selectCount(bisInspAllObjDto);
  81. }
  82. @Override
  83. public PageInfo<BisInspAllObjDto> listByMap(Map<String, Object> paramMap) {
  84. log.info(JSON.toJSONString(paramMap));
  85. StatisticalUtil.setDate(paramMap);
  86. PageHelper.startPage(MapUtils.getIntValue(paramMap, "pageNum"), MapUtils.getIntValue(paramMap, "pageSize"));
  87. List<BisInspAllObjDto> allList = bisInspAllObjDao.listByMap(paramMap);
  88. allList.forEach(all -> {
  89. if (StringUtils.isNotBlank(all.getAdFullName())) {
  90. String[] adFullNames = all.getAdFullName().split("-");
  91. all.setProvince(adFullNames[0]);
  92. if (adFullNames.length > 1) {
  93. all.setCity(adFullNames[1]);
  94. }
  95. if (adFullNames.length > 2) {
  96. all.setCountry(adFullNames[2]);
  97. }
  98. }
  99. if (StringUtils.isNotBlank(all.getPtype())) {
  100. String tableName = bisInspAllObjDao.getTableName(all.getPtype());
  101. String idName = "ID";
  102. int choice = Integer.parseInt(all.getPtype());
  103. switch (choice) {
  104. case 1:
  105. case 106:
  106. idName = "RGSTR_ID";
  107. break;
  108. case 3:
  109. idName = "TRACK_ID";
  110. break;
  111. default:
  112. }
  113. if (StringUtils.isNotBlank(tableName)) {
  114. BisInspAllObjDto rgstrIdAndState = bisInspAllObjDao.getRgstrIdAndState(all.getObjId(), idName, tableName);
  115. Optional.ofNullable(rgstrIdAndState).ifPresent(r -> {
  116. all.setRgstrId(r.getRgstrId());
  117. all.setState(r.getState());
  118. });
  119. }
  120. }
  121. });
  122. return new PageInfo<>(allList);
  123. }
  124. @Override
  125. public List<Map<String, String>> listOfRgstr(Map<String, Object> map) {
  126. String stateName = "STATE";
  127. if ("BIS_INSP_GRW".equals(MapUtils.getString(map, "tableName"))) {
  128. stateName = "INSP_STATE";
  129. }
  130. map.put("stateName", stateName);
  131. return bisInspAllObjDao.listOfRgstr(map);
  132. }
  133. @Override
  134. public void updateRgstrState(Map<String, Object> map) {
  135. List<String> objIdList = (List<String>) map.get("objIdList");
  136. if (CollectionUtils.isNotEmpty(objIdList)) {
  137. List<List<String>> list = ListUtil.partition(objIdList, 1000);
  138. List<String> aaa = new ArrayList<>(list.size());
  139. for (List<String> l : list) {
  140. aaa.add(l.stream().collect(Collectors.joining("','", "'", "'")));
  141. }
  142. map.put("objIdList", aaa);
  143. }
  144. String stateName = "STATE";
  145. if ("BIS_INSP_GRW".equals(MapUtils.getString(map, "tableName"))) {
  146. stateName = "INSP_STATE";
  147. }
  148. map.put("stateName", stateName);
  149. bisInspAllObjDao.updateRgstrState(map);
  150. }
  151. public List<BisInspAllRlation> getIdByUserId(String userid, String ptype, String adCode) {
  152. return bisInspAllObjDao.getIdByUserId(userid, ptype, adCode);
  153. }
  154. /**
  155. * 更新登记表状态 为督察中
  156. *
  157. * @param objId 对象ID
  158. */
  159. @Override
  160. public void updateRgstrByObjId(String objId) {
  161. updateRgstrByObjId(objId, "1");
  162. }
  163. /**
  164. * 更新登记表状态
  165. *
  166. * @param objId 对象ID
  167. */
  168. @Override
  169. public void updateRgstrByObjId(String objId, String state) {
  170. BisInspAllObj bisInspAllObj = get(objId);
  171. if (null == bisInspAllObj) {
  172. return;
  173. }
  174. updateRgstrByObjId(objId, state, bisInspAllObj.getPtype());
  175. }
  176. /**
  177. * 更新登记表状态
  178. *
  179. * @param objId 对象ID
  180. */
  181. @Override
  182. public void updateRgstrByObjId(String objId, String state, String ptype) {
  183. AttInspType attInspType = attInspTypeService.get(InspUtils.convertThirdLengthStr(ptype));
  184. if (attInspType == null) {
  185. return;
  186. }
  187. Map<String, Object> paramMap = new HashMap<>(4);
  188. paramMap.put("tableName", attInspType.getRgstrTableName());
  189. paramMap.put("objId", objId);
  190. // 查询对象状态
  191. List<Map<String, String>> objList = listOfRgstr(paramMap);
  192. if (CollectionUtils.isEmpty(objList)) {
  193. return;
  194. }
  195. String currentState = MapUtils.getString(objList.get(0), "state", "0");
  196. switch (state) {
  197. case "1":
  198. if ("0".equals(currentState)) {
  199. // 3. 批量更新登记表
  200. paramMap.put("state", state);
  201. updateRgstrState(paramMap);
  202. }
  203. break;
  204. case "2":
  205. if ("0".equals(currentState) || "2".equals(currentState)) {
  206. // 3. 批量更新登记表
  207. paramMap.put("state", state);
  208. updateRgstrState(paramMap);
  209. }
  210. break;
  211. default:
  212. }
  213. }
  214. @Override
  215. public List<BisInspAllObj> listOfGenrl(BisInspAllObjParam param) {
  216. return bisInspAllObjDao.listOfGenrl(param);
  217. }
  218. }