48e72152996ce2ec8ec47391035e98772cc2a994.svn-base 9.2 KB

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