792b9b009f816ff6b1f07c6d74b1b34452e30475.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. package cn.com.goldenwater.dcproj.service.impl.fjpjcsu;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  5. import cn.com.goldenwater.dcproj.dao.AttAdBaseDao;
  6. import cn.com.goldenwater.dcproj.dao.AttFjpjcsuBaseDao;
  7. import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao;
  8. import cn.com.goldenwater.dcproj.dao.BisInspAllRlationDao;
  9. import cn.com.goldenwater.dcproj.dao.BisInspFjpjcsuDao;
  10. import cn.com.goldenwater.dcproj.dao.BisInspFjpjcsuImgrDao;
  11. import cn.com.goldenwater.dcproj.dao.BisInspFjpjcsuSafdlDao;
  12. import cn.com.goldenwater.dcproj.dao.RoleDao;
  13. import cn.com.goldenwater.dcproj.dto.BisInspFjpjcsuDto;
  14. import cn.com.goldenwater.dcproj.model.AttAdBase;
  15. import cn.com.goldenwater.dcproj.model.AttFjpjcsuBase;
  16. import cn.com.goldenwater.dcproj.model.BisInspAllObj;
  17. import cn.com.goldenwater.dcproj.model.BisInspAllRlation;
  18. import cn.com.goldenwater.dcproj.model.BisInspFjpjcsu;
  19. import cn.com.goldenwater.dcproj.model.BisInspFjpjcsuImgr;
  20. import cn.com.goldenwater.dcproj.model.BisInspFjpjcsuSafdl;
  21. import cn.com.goldenwater.dcproj.model.Role;
  22. import cn.com.goldenwater.dcproj.param.BisInspAllObjParam;
  23. import cn.com.goldenwater.dcproj.param.BisInspAllRlationParam;
  24. import cn.com.goldenwater.dcproj.param.BisInspFjpjcsuImgrParam;
  25. import cn.com.goldenwater.dcproj.param.BisInspFjpjcsuParam;
  26. import cn.com.goldenwater.dcproj.param.BisInspFjpjcsuSafdlParam;
  27. import cn.com.goldenwater.dcproj.param.RoleParam;
  28. import cn.com.goldenwater.dcproj.param.TypeParam;
  29. import cn.com.goldenwater.dcproj.service.BisInspFjpjcsuService;
  30. import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
  31. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  32. import cn.com.goldenwater.dcproj.utils.StringUtils;
  33. import cn.com.goldenwater.id.util.UuidUtil;
  34. import com.github.pagehelper.PageHelper;
  35. import com.github.pagehelper.PageInfo;
  36. import org.apache.commons.collections.CollectionUtils;
  37. import org.springframework.beans.BeanUtils;
  38. import org.springframework.beans.factory.annotation.Autowired;
  39. import org.springframework.stereotype.Service;
  40. import org.springframework.transaction.annotation.Transactional;
  41. import javax.servlet.http.HttpServletResponse;
  42. import java.util.Date;
  43. import java.util.List;
  44. import java.util.Map;
  45. import java.util.Optional;
  46. /**
  47. * 福建水利工程建设监理单位安全生产标准化评审
  48. * @author lxf
  49. * @date 2023年12月19日
  50. */
  51. @Service
  52. @Transactional
  53. public class BisInspFjpjcsuServiceImpl extends AbstractCrudService<BisInspFjpjcsu, BisInspFjpjcsuParam> implements BisInspFjpjcsuService , BisInspObjStrategy {
  54. @Autowired
  55. private BisInspFjpjcsuDao bisInspFjpjcsuDao;
  56. @Autowired
  57. private AttFjpjcsuBaseDao attFjpjcsuBaseDao;
  58. @Autowired
  59. private BisInspFjpjcsuImgrDao bisInspFjpjcsuImgrDao;
  60. @Autowired
  61. private BisInspFjpjcsuSafdlDao bisInspFjpjcsuSafdlDao;
  62. @Autowired
  63. private BisInspAllObjDao bisInspAllObjDao;
  64. @Autowired
  65. private AttAdBaseDao attAdBaseDao;
  66. public BisInspFjpjcsuServiceImpl(BisInspFjpjcsuDao bisInspFjpjcsuDao) {
  67. super(bisInspFjpjcsuDao);
  68. this.bisInspFjpjcsuDao = bisInspFjpjcsuDao;
  69. }
  70. @Override
  71. public int insert(BisInspFjpjcsu bisInspFjpjcsu) {
  72. // 生成uuid
  73. String uuid = UuidUtil.uuid();
  74. bisInspFjpjcsu.setId(uuid);
  75. bisInspFjpjcsu.setIntm(new Date());
  76. bisInspFjpjcsu.setUptm(new Date());
  77. bisInspFjpjcsu.setDataStat("0");
  78. if(null == bisInspFjpjcsu.getIsCnfm() ){
  79. bisInspFjpjcsu.setIsCnfm("1");
  80. }
  81. int rows = this.bisInspFjpjcsuDao.insert(bisInspFjpjcsu);
  82. // 评审8个部分 2个子表
  83. BisInspFjpjcsuImgr param4 = new BisInspFjpjcsuImgr();
  84. param4.setId(UuidUtil.uuid());
  85. param4.setRgstrId(uuid);
  86. param4.setPersId(bisInspFjpjcsu.getPersId());
  87. param4.setIntm(new Date());
  88. param4.setUptm(new Date());
  89. param4.setDataStat("0");
  90. bisInspFjpjcsuImgrDao.insert(param4);
  91. BisInspFjpjcsuSafdl param5 = new BisInspFjpjcsuSafdl();
  92. param5.setId(UuidUtil.uuid());
  93. param5.setRgstrId(uuid);
  94. param5.setPersId(bisInspFjpjcsu.getPersId());
  95. param5.setIntm(new Date());
  96. param5.setUptm(new Date());
  97. param5.setDataStat("0");
  98. bisInspFjpjcsuSafdlDao.insert(param5);
  99. return rows ;
  100. }
  101. @Override
  102. public int update(BisInspFjpjcsu bisInspFjpjcsu) {
  103. if(StringUtils.isNotBlank(bisInspFjpjcsu.getObjId())){
  104. updateBase(bisInspFjpjcsu);
  105. }
  106. bisInspFjpjcsu.setUptm(new Date());
  107. return this.bisInspFjpjcsuDao.update(bisInspFjpjcsu);
  108. }
  109. /**
  110. * 更新基础表
  111. */
  112. void updateBase(BisInspFjpjcsu bisInspFjpjcsu) {
  113. AttFjpjcsuBase base = attFjpjcsuBaseDao.getObjId(bisInspFjpjcsu.getObjId());
  114. Optional.ofNullable(base).ifPresent(b -> {
  115. String id = b.getId();
  116. BeanUtils.copyProperties(bisInspFjpjcsu, b);
  117. b.setId(id);
  118. b.setIntm(null);
  119. attFjpjcsuBaseDao.update(b);
  120. });
  121. }
  122. @Override
  123. public BisInspFjpjcsu get(String key) {
  124. BisInspFjpjcsu qymten = super.get(key);
  125. Optional.ofNullable(qymten).map(BisInspFjpjcsu::getAdCode).ifPresent(adCode -> {
  126. AttAdBase attAdBase = attAdBaseDao.get(adCode);
  127. Optional.ofNullable(attAdBase).ifPresent(base -> {
  128. qymten.setAdName(base.getAdFullName());
  129. });
  130. });
  131. return qymten;
  132. }
  133. @Override
  134. public int delete(String id) {
  135. return this.bisInspFjpjcsuDao.delete(id);
  136. }
  137. @Override
  138. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  139. AttFjpjcsuBase attFjpjcsuBase = attFjpjcsuBaseDao.get(bisInspAllObj.getCode());
  140. BisInspFjpjcsu pjcsuRgstr = new BisInspFjpjcsu();
  141. pjcsuRgstr.setObjId(bisInspAllObj.getObjId());
  142. pjcsuRgstr.setName(attFjpjcsuBase.getName());
  143. pjcsuRgstr.setAdCode(attFjpjcsuBase.getAdCode());
  144. pjcsuRgstr.setAdName(attFjpjcsuBase.getAdName());
  145. pjcsuRgstr.setBusAddr(attFjpjcsuBase.getBusAddr());
  146. pjcsuRgstr.setConPers(attFjpjcsuBase.getConPers());
  147. pjcsuRgstr.setConPersTel(attFjpjcsuBase.getConPersTel());
  148. pjcsuRgstr.setCenterX(attFjpjcsuBase.getCenterX());
  149. pjcsuRgstr.setCenterY(attFjpjcsuBase.getCenterY());
  150. pjcsuRgstr.setGdX(attFjpjcsuBase.getGdX());
  151. pjcsuRgstr.setGdY(attFjpjcsuBase.getGdY());
  152. pjcsuRgstr.setGroupId(bisInspAllObj.getId());
  153. pjcsuRgstr.setProvince(bisInspAllObj.getProvince());
  154. pjcsuRgstr.setPersId(persId);
  155. pjcsuRgstr.setState("0");
  156. pjcsuRgstr.setIsCnfm(attFjpjcsuBase.getIsCnfm());
  157. if(null == pjcsuRgstr.getIsCnfm() ){
  158. pjcsuRgstr.setIsCnfm("1");
  159. }
  160. insert(pjcsuRgstr);
  161. }
  162. @Override
  163. public String getType() {
  164. return BisInspEnum.FJPJCSU.getValue();
  165. }
  166. @Override
  167. public void cleanObjData(String objId) {
  168. BisInspFjpjcsuParam param = new BisInspFjpjcsuParam();
  169. param.setObjId(objId);
  170. List<BisInspFjpjcsu> list = bisInspFjpjcsuDao.findList(param);
  171. if (CollectionUtils.isNotEmpty(list)) {
  172. String rgstrId = list.get(0).getId();
  173. //删除名录表
  174. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  175. bisInspAllObjParam.setObjId(objId);
  176. this.bisInspAllObjDao.deleteBy(bisInspAllObjParam);
  177. //登记表
  178. bisInspFjpjcsuDao.delete(rgstrId);
  179. //8个子表
  180. BisInspFjpjcsuImgrParam param4 = new BisInspFjpjcsuImgrParam();
  181. param4.setRgstrId(rgstrId);
  182. bisInspFjpjcsuImgrDao.deleteBy(param4);
  183. BisInspFjpjcsuSafdlParam param5 = new BisInspFjpjcsuSafdlParam();
  184. param5.setRgstrId(rgstrId);
  185. bisInspFjpjcsuSafdlDao.deleteBy(param5);
  186. }
  187. }
  188. @Override
  189. public PageInfo<BisInspFjpjcsuDto> findQaPage(TypeParam param) {
  190. if (StringUtils.isNotBlank(param.getAdCode())) {
  191. param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD)));
  192. }
  193. if (StringUtils.isNotBlank(param.getAdCodes())) {
  194. param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes()));
  195. }
  196. PageHelper.startPage(param);
  197. List<BisInspFjpjcsuDto> list = bisInspFjpjcsuDao.findFjpjcsuPage(param);
  198. return new PageInfo<>(list);
  199. }
  200. @Override
  201. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  202. return this.findQaPage(typeParam);
  203. }
  204. @Override
  205. public Object findObjListByType(TypeParam typeParam) {
  206. List<BisInspFjpjcsuDto> list = bisInspFjpjcsuDao.findFjpjcsuPage(typeParam);
  207. if (list.size() > 0) {
  208. for (BisInspFjpjcsuDto qaDto : list) {
  209. String adFullName = qaDto.getAdFullName();
  210. if (org.apache.commons.lang3.StringUtils.isBlank(adFullName)) {
  211. continue;
  212. }
  213. if (adFullName.contains(SplitValue.HENG_SPLIT)) {
  214. String[] split = adFullName.split(SplitValue.HENG_SPLIT);
  215. if (split.length == 2) {
  216. qaDto.setProvince(split[0]);
  217. qaDto.setCity(split[1]);
  218. }
  219. if (split.length == 1) {
  220. qaDto.setProvince(split[0]);
  221. qaDto.setCity("");
  222. }
  223. } else {
  224. qaDto.setProvince(adFullName);
  225. }
  226. }
  227. }
  228. return list;
  229. }
  230. @Override
  231. public List<BisInspFjpjcsuDto> findPageOfficeList(TypeParam param) {
  232. if (StringUtils.isNotBlank(param.getAdCode())) {
  233. param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD)));
  234. }
  235. if (StringUtils.isNotBlank(param.getAdCodes())) {
  236. param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes()));
  237. }
  238. List<BisInspFjpjcsuDto> list = bisInspFjpjcsuDao.findPageOfficeList(param);
  239. return list;
  240. }
  241. @Override
  242. public void updateState(Map<String, Object> map) {
  243. }
  244. @Autowired
  245. private BisInspAllRlationDao inspAllRlationDao;
  246. @Autowired
  247. private RoleDao roleDao;
  248. @Override
  249. public String getTabPri(TypeParam param) {
  250. String curPersId = param.getPresId();
  251. // 判断角色
  252. RoleParam roleParam = new RoleParam();
  253. roleParam.setUserId(curPersId);
  254. roleParam.setOrgId(param.getOrgId());
  255. List<Role> roleList = roleDao.getTabPriByUserId(roleParam);
  256. boolean flag1 = false;
  257. boolean flag2 = false;
  258. boolean flag3 = false;
  259. if (null != roleList) {
  260. for (Role role : roleList) {
  261. if (role.getRoleName().contains("现场专家")) {
  262. flag1 = true;
  263. }
  264. if (role.getRoleName().contains("非现场专家")) {
  265. flag2 = true;
  266. }
  267. if (role.getRoleName().contains("管理员") || role.getRoleName().contains("组长")) {
  268. flag3 = true;
  269. }
  270. }
  271. }
  272. if (flag3 || (flag1 && flag2)) {
  273. // 管理员 或 同时具有 党建 工地专家权限
  274. return "1";
  275. }
  276. // 判断对象所在组的 人员 身份类型
  277. BisInspAllRlationParam allRlationParam = new BisInspAllRlationParam();
  278. allRlationParam.setpType(param.getpType());
  279. allRlationParam.setOrgId(param.getOrgId());
  280. allRlationParam.setPersid(curPersId);
  281. List<BisInspAllRlation> allRlationList = inspAllRlationDao.getPerTypeByUserIdandObjId(allRlationParam);
  282. if (null != allRlationList) {
  283. for (BisInspAllRlation allRlation : allRlationList) {
  284. if ("1".equals(allRlation.getPertype())) {
  285. // 当前用户 在对象所在组里 身份类型 是 组长
  286. flag3 = true;
  287. }
  288. }
  289. }
  290. if (flag3) {
  291. // 组长\管理员
  292. return "1";
  293. }
  294. if (flag1) {
  295. // 现场专家
  296. return "2";
  297. }
  298. if (flag2) {
  299. // 非现场专家
  300. return "3";
  301. }
  302. // 其他:不是管理员、 不具有党建、工地角色
  303. return "4";
  304. }
  305. }