a6a56b2a6a23b37cdab41bba2878527f5adc7814.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.dcproj.dao.BisInspKeychkqhUnitDao;
  3. import cn.com.goldenwater.dcproj.dao.BisInspPblmDao;
  4. import cn.com.goldenwater.dcproj.model.BisInspKeychkqhRegister;
  5. import cn.com.goldenwater.dcproj.model.BisInspKeychkqhSection;
  6. import cn.com.goldenwater.dcproj.model.BisInspKeychkqhUnit;
  7. import cn.com.goldenwater.dcproj.model.BisInspPblm;
  8. import cn.com.goldenwater.dcproj.param.BisInspKeychkqhUnitParam;
  9. import cn.com.goldenwater.dcproj.param.BisInspPblmParam;
  10. import cn.com.goldenwater.dcproj.service.BisInspKeychkqhRegisterService;
  11. import cn.com.goldenwater.dcproj.service.BisInspKeychkqhSectionService;
  12. import cn.com.goldenwater.dcproj.service.BisInspKeychkqhUnitService;
  13. import cn.com.goldenwater.core.service.AbstractCrudService;
  14. import cn.com.goldenwater.dcproj.service.BisInspPblmService;
  15. import cn.com.goldenwater.dcproj.utils.Builder;
  16. import cn.com.goldenwater.dcproj.utils.Constant;
  17. import cn.com.goldenwater.target.CheckException;
  18. import com.github.pagehelper.PageHelper;
  19. import org.apache.commons.collections.MapUtils;
  20. import org.apache.commons.lang.StringUtils;
  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 java.util.*;
  26. /**
  27. * @author lhc
  28. * @date 2021-6-25
  29. */
  30. @Service
  31. @Transactional
  32. public class BisInspKeychkqhUnitServiceImpl extends AbstractCrudService<BisInspKeychkqhUnit, BisInspKeychkqhUnitParam> implements BisInspKeychkqhUnitService {
  33. @Autowired
  34. private BisInspKeychkqhUnitDao bisInspKeychkqhUnitDao;
  35. @Autowired
  36. private BisInspKeychkqhRegisterService bisInspKeychkqhRegisterService;
  37. @Autowired
  38. private BisInspKeychkqhSectionService bisInspKeychkqhSectionService;
  39. @Autowired
  40. private BisInspPblmService bisInspPblmService;
  41. @Autowired
  42. private BisInspPblmDao bisInspPblmDao;
  43. public BisInspKeychkqhUnitServiceImpl(BisInspKeychkqhUnitDao bisInspKeychkqhUnitDao) {
  44. super(bisInspKeychkqhUnitDao);
  45. this.bisInspKeychkqhUnitDao = bisInspKeychkqhUnitDao;
  46. }
  47. @Override
  48. public int insert(BisInspKeychkqhUnit bisInspKeychkqhUnit) {
  49. if (StringUtils.isBlank(bisInspKeychkqhUnit.getSecId())){
  50. throw new CheckException("标段ID为空");
  51. }
  52. if(StringUtils.isBlank(bisInspKeychkqhUnit.getNm())){
  53. throw new CheckException("单位名称为空");
  54. }
  55. if(StringUtils.isBlank(bisInspKeychkqhUnit.getNature())){
  56. throw new CheckException("单位性质为空");
  57. }
  58. BisInspKeychkqhSection section = bisInspKeychkqhSectionService.get(bisInspKeychkqhUnit.getSecId());
  59. if (section == null ){
  60. throw new CheckException("标段ID有误");
  61. }
  62. String uuid = UuidUtil.uuid(); // 生成uuid
  63. bisInspKeychkqhUnit.setId(uuid);
  64. bisInspKeychkqhUnit.setIntm(new Date());
  65. bisInspKeychkqhUnit.setUptm(new Date());
  66. bisInspKeychkqhUnit.setDataStat("0");
  67. int ret = this.bisInspKeychkqhUnitDao.insert(bisInspKeychkqhUnit);
  68. updateRgstrState(bisInspKeychkqhUnit.getId());
  69. return ret;
  70. }
  71. private void updateRgstrState(String id) {
  72. BisInspKeychkqhRegister rgstr = bisInspKeychkqhUnitDao.getRgstrById(id);
  73. Optional.ofNullable(rgstr).ifPresent(r ->{
  74. if(!Constant.STRING_TWO.equals(r.getState())&&
  75. !Constant.STRING_ONE.equals(r.getState())){
  76. r.setUptm(new Date());
  77. r.setState(Constant.STRING_ONE);
  78. bisInspKeychkqhRegisterService.update(r);
  79. }
  80. });
  81. }
  82. @Override
  83. public int update(BisInspKeychkqhUnit bisInspKeychkqhUnit) {
  84. bisInspKeychkqhUnit.setUptm(new Date());
  85. int ret = this.bisInspKeychkqhUnitDao.update(bisInspKeychkqhUnit);
  86. updateRgstrState(bisInspKeychkqhUnit.getId());
  87. return ret;
  88. }
  89. @Override
  90. public int delete(String id) {
  91. BisInspKeychkqhRegister bisInspKeychkqhRegister = bisInspKeychkqhUnitDao.getRgstrById(id);
  92. if(bisInspKeychkqhRegister != null){
  93. bisInspPblmService.deleteBy(Builder.of(BisInspPblmParam::new)
  94. .with(BisInspPblmParam::setObjId,bisInspKeychkqhRegister.getOrgId())
  95. .with(BisInspPblmParam::setRegid,id)
  96. .build());
  97. }
  98. return this.bisInspKeychkqhUnitDao.delete(id);
  99. }
  100. @Override
  101. public List<BisInspKeychkqhUnit> listBySecId(String secId) {
  102. return bisInspKeychkqhUnitDao.findList(Builder.of(BisInspKeychkqhUnitParam::new).with(BisInspKeychkqhUnitParam::setSecId,secId).build());
  103. }
  104. @Override
  105. public List<Map<String, Object>> getResponsibility(String id) {
  106. BisInspKeychkqhUnit unit = get(id);
  107. BisInspKeychkqhSection section = bisInspKeychkqhSectionService.get(unit.getSecId());
  108. List<BisInspPblm> bisInspPblmList = bisInspPblmDao.list(Builder.of(BisInspPblmParam::new)
  109. .with(BisInspPblmParam::setObjId, section.getObjId())
  110. .with(BisInspPblmParam::setRegid, id).build());
  111. List<Map<String,Object>> res = new ArrayList<>();
  112. int index = 0;
  113. while (index < 3){
  114. int finalIndex = index;
  115. Long yibanCount = bisInspPblmList.stream().filter(p -> String.valueOf(finalIndex).equals(p.getInspPblmCate())).count();
  116. Map<String, Object> map = new HashMap(5);
  117. map.put("level", String.valueOf(finalIndex));
  118. map.put("count", yibanCount);
  119. zhenggai(map, unit.getNature());
  120. res.add(map);
  121. index++;
  122. }
  123. return res;
  124. }
  125. private void zhenggai(Map<String, Object> map, String type) {
  126. if("1".equals(type)){
  127. xiangmufaren(map);
  128. }else{
  129. sjg(map);
  130. }
  131. }
  132. private void sjg(Map<String, Object> map) {
  133. String level = MapUtils.getString(map, "level");
  134. int count = MapUtils.getIntValue(map, "count");
  135. if (count == 0) {
  136. return;
  137. }
  138. String max = "";
  139. String chose = "";
  140. Set<String> set = new HashSet<>();
  141. switch (level) {
  142. case "0":
  143. if (count <= 20) {
  144. max = "责令整改";
  145. set.add("8");
  146. } else {
  147. max = "约谈";
  148. chose = "责令整改";
  149. set.add("9");
  150. set.add("8");
  151. }
  152. break;
  153. case "1":
  154. if (count <= 6) {
  155. max = "责令整改";
  156. set.add("8");
  157. } else if (count <= 12) {
  158. max = "约谈";
  159. chose = "责令整改";
  160. set.add("9");
  161. set.add("8");
  162. } else if (count <= 20) {
  163. max = "停工整改";
  164. chose = "责令整改、约谈";
  165. set.add("3");
  166. set.add("8");
  167. set.add("9");
  168. } else {
  169. max = "通报批评";
  170. chose = "责令整改、停工整改、经济责任";
  171. set.add("10");
  172. set.add("8");
  173. set.add("3");
  174. set.add("4");
  175. }
  176. break;
  177. case "2":
  178. if (count <= 5) {
  179. max = "责令整改";
  180. set.add("8");
  181. } else if (count <= 10) {
  182. max = "约谈";
  183. chose = "责令整改";
  184. set.add("9");
  185. set.add("8");
  186. } else if (count <= 15) {
  187. max = "停工整改";
  188. chose = "责令整改";
  189. set.add("3");
  190. set.add("8");
  191. } else if (count <= 20) {
  192. max = "通报批评";
  193. chose = "责令整改、经济责任";
  194. set.add("10");
  195. set.add("8");
  196. set.add("4");
  197. } else {
  198. max = "建议解除合同";
  199. chose = "责令整改、经济责任、通报批评、降低资质";
  200. set.add("6");
  201. set.add("8");
  202. set.add("4");
  203. set.add("10");
  204. set.add("7");
  205. }
  206. default:
  207. }
  208. map.put("chose", chose);
  209. map.put("max", max);
  210. map.put("set", set);
  211. }
  212. private void xiangmufaren(Map<String, Object> map) {
  213. String level = MapUtils.getString(map, "level");
  214. int count = MapUtils.getIntValue(map, "count");
  215. if (count == 0) {
  216. return;
  217. }
  218. String max = "";
  219. String chose = "";
  220. Set<String> set = new HashSet<>();
  221. switch (level) {
  222. case "0":
  223. if (count <= 15) {
  224. max = "责令整改";
  225. set.add("8");
  226. } else {
  227. max = "约谈";
  228. chose = "责令整改";
  229. set.add("9");
  230. set.add("8");
  231. }
  232. break;
  233. case "1":
  234. if (count <= 10) {
  235. max = "责令整改";
  236. set.add("8");
  237. } else if (count <= 20) {
  238. max = "约谈";
  239. chose = "责令整改";
  240. set.add("9");
  241. set.add("8");
  242. } else {
  243. max = "通报批评";
  244. chose = "责令整改、约谈";
  245. set.add("10");
  246. set.add("8");
  247. set.add("9");
  248. }
  249. break;
  250. case "2":
  251. if (count <= 7) {
  252. max = "责令整改";
  253. set.add("8");
  254. } else if (count <= 15) {
  255. max = "约谈";
  256. chose = "责令整改";
  257. set.add("9");
  258. set.add("8");
  259. } else {
  260. max = "通报批评";
  261. chose = "责令整改、约谈";
  262. set.add("10");
  263. set.add("8");
  264. set.add("9");
  265. }
  266. default:
  267. }
  268. map.put("chose", chose);
  269. map.put("max", max);
  270. map.put("set", set);
  271. }
  272. }