CgjqServiceImpl.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. package com.ghsc.partybuild.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.ghsc.partybuild.mapper.*;
  5. import com.ghsc.partybuild.model.*;
  6. import com.ghsc.partybuild.service.CgjqService;
  7. import com.ghsc.partybuild.service.DictionaryService;
  8. import com.ghsc.partybuild.service.UserService;
  9. import com.ghsc.partybuild.util.StringUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import java.util.Date;
  14. import java.util.HashMap;
  15. import java.util.List;
  16. /**
  17. * 创岗建区
  18. *
  19. * @author xxx
  20. */
  21. @Service("cgjqService")
  22. public class CgjqServiceImpl implements CgjqService {
  23. @Autowired
  24. private DictionaryService dictionaryService;
  25. @Autowired
  26. private UserService userService;
  27. @Autowired
  28. private CgjqCQuery cgjqCquery;
  29. @Autowired
  30. private CgjqSettingPostareaMapper cgjqSettingPostareaMapper;
  31. @Autowired
  32. private CgjqSettingPostareaUserMapper cgjqSettingPostareaUserMapper;
  33. @Autowired
  34. private CgjqSeetingScoreprojectMapper cgjqSeetingScoreprojectMapper;
  35. @Autowired
  36. private CgjqPostareaScoreMapper cgjqPostareaScoreMapper;
  37. @Autowired
  38. private CgjqPostareaScoreUserMapper cgjqPostareaScoreUserMapper;
  39. @Autowired
  40. private CgjqPostareaScoreProjectMapper cgjqPostareaScoreProjectMapper;
  41. @Autowired
  42. private StringUtils stringUtils;
  43. /**
  44. * @Description //TODO 查询岗区配置
  45. * @Date 17:12 2019/9/19
  46. * @Param [cgjqType:类型1责任岗,2责任区, partyCode:所属支部, userId:当前登录人, name:岗区名称, headUserName:负责人]
  47. **/
  48. @Override
  49. public PageInfo<HashMap<String, Object>> getSettingPostareaList(int page, int rows, Integer cgjqType, String partyCode, String userId, String name, String headUserName, Integer zzfbType) {
  50. PageHelper.startPage(page, rows);
  51. List<HashMap<String, Object>> list = cgjqCquery.selectSettingPostareaList(cgjqType, partyCode, userId, name, headUserName, zzfbType);
  52. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  53. return result;
  54. }
  55. /**
  56. * @Description //TODO 查询岗区配置成员
  57. * @Date 17:20 2019/9/19
  58. * @Param [seetingPostareaId:岗区id, dutyUserType:成员类型1党员,2群众]
  59. **/
  60. @Override
  61. public PageInfo<HashMap<String, Object>> getSettingPostareaUserList(int page, int rows, String seetingPostareaId, Integer dutyUserType) {
  62. List<CfDictionary> dicDutyUserType = dictionaryService.getDictionaryListByDicTypeKey("dutyUserType");
  63. PageHelper.startPage(page, rows);
  64. List<HashMap<String, Object>> list = cgjqCquery.selectSettingPostareaUserList(seetingPostareaId, dutyUserType);
  65. for (HashMap<String, Object> item : list) {
  66. if (item.get("DUTYUSERTYPE") != null) {
  67. item.put("DUTYUSERNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DUTYUSERTYPE").toString()), dicDutyUserType).getDicvalue());
  68. }
  69. }
  70. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  71. return result;
  72. }
  73. /**
  74. * @Description //TODO 查询考核模板
  75. * @Date 17:31 2019/9/19
  76. * @Param [partyCode, cgjqType]
  77. **/
  78. @Override
  79. public List<HashMap<String, Object>> getSettingScoreProjectList(String partyCode, Integer cgjqType, Integer zzfbType) {
  80. return cgjqCquery.selectSettingScoreProjectList(partyCode, cgjqType, zzfbType);
  81. }
  82. @Override
  83. public CgjqSettingPostarea getPostareaById(String seetingPostareaId) {
  84. return cgjqSettingPostareaMapper.selectByPrimaryKey(seetingPostareaId);
  85. }
  86. /**
  87. * @Description //TODO 保存岗区配置
  88. * @Date 9:05 2019/9/20
  89. * @Param [model, userList]
  90. **/
  91. @Override
  92. public int savePostarea(CgjqSettingPostarea model, List<CgjqSettingPostareaUser> userList) {
  93. int result = 0;
  94. CgjqSettingPostarea dbModel = getPostareaById(model.getSeetingpostareaid());
  95. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getSeetingpostareaid()))) {
  96. model.setCreatetime(new Date());
  97. //同步数据
  98. model.setOperatestate("A");
  99. model.setOperatetime(new Date());
  100. model.setSyncstate("N");
  101. result = cgjqSettingPostareaMapper.insert(model);
  102. } else {
  103. model.setUpdatetime(new Date());
  104. model.setUpdateuserid(userService.getLoginUser().getUserid());
  105. model.setUpdateusername(userService.getUserInfobyId(userService.getLoginUser().getUserid()).getName());
  106. //同步数据
  107. model.setOperatestate("M");
  108. model.setOperatetime(new Date());
  109. model.setSyncstate("N");
  110. result = cgjqSettingPostareaMapper.updateByPrimaryKey(model);
  111. }
  112. cgjqCquery.deleteSettingPostareaUser(model.getSeetingpostareaid());
  113. userList.forEach(item -> {
  114. //同步数据
  115. item.setOperatetime(new Date());
  116. item.setOperatestate("A");
  117. item.setSyncstate("N");
  118. cgjqSettingPostareaUserMapper.insert(item);
  119. });
  120. return result;
  121. }
  122. @Override
  123. public int addPost(List<CgjqSettingPostarea> userList) {
  124. userList.forEach(item -> {
  125. //同步数据
  126. item.setOperatetime(new Date());
  127. item.setOperatestate("A");
  128. item.setSyncstate("N");
  129. cgjqSettingPostareaMapper.insert(item);
  130. });
  131. return userList.size();
  132. }
  133. @Override
  134. public int updatePostarea(CgjqSettingPostarea model) {
  135. model.setOperatetime(new Date());
  136. model.setOperatestate("M");
  137. model.setSyncstate("N");
  138. return cgjqSettingPostareaMapper.updateByPrimaryKey(model);
  139. }
  140. /**
  141. * @Description //TODO 删除岗区配置
  142. * @Date 9:05 2019/9/20
  143. * @Param [seetingPostareaId]
  144. **/
  145. @Override
  146. public int delPostarea(String seetingPostareaId) {
  147. cgjqCquery.deleteSettingPostareaUser(seetingPostareaId);
  148. return cgjqCquery.deleteSettingPostarea(seetingPostareaId);
  149. }
  150. @Override
  151. public CgjqSeetingScoreproject getScoreProjectById(String seetingProjectId) {
  152. return cgjqSeetingScoreprojectMapper.selectByPrimaryKey(seetingProjectId);
  153. }
  154. /**
  155. * @Description //TODO 保存岗区考核标准
  156. * @Date 9:07 2019/9/20
  157. * @Param [projectList]
  158. **/
  159. @Override
  160. public int saveScoreProject(List<CgjqSeetingScoreproject> projectList, String userId, String userName) {
  161. int result = 0;
  162. for (CgjqSeetingScoreproject item : projectList) {
  163. CgjqSeetingScoreproject dbModel = getScoreProjectById(item.getSeetingprojectid());
  164. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getSeetingprojectid()))) {
  165. item.setCreateuserid(userId);
  166. item.setCreateusername(userName);
  167. item.setCreatetime(new Date());
  168. //同步数据
  169. item.setOperatetime(new Date());
  170. item.setOperatestate("A");
  171. item.setSyncstate("N");
  172. result += cgjqSeetingScoreprojectMapper.insert(item);
  173. } else {
  174. item.setUpdateuserid(userId);
  175. item.setUpdateusername(userName);
  176. item.setUpdatetime(new Date());
  177. item.setOperatetime(new Date());
  178. item.setOperatestate("M");
  179. item.setSyncstate("N");
  180. result += cgjqSeetingScoreprojectMapper.updateByPrimaryKeySelective(item);
  181. }
  182. }
  183. return result;
  184. }
  185. //岗区评分
  186. /**
  187. * @Description //TODO 查询岗区评分记录
  188. * @Date 15:39 2019/9/24
  189. * @Param [page, rows, cgjqType:类型1责任岗,2责任区,year:年度,quarter:季度,partyCode:所属支部, userId:当前登录人, name:岗区名称, headUserName:负责人]
  190. **/
  191. @Override
  192. public PageInfo<HashMap<String, Object>> getPostareaScoreList(int page, int rows, Integer cgjqType, Integer year, Integer quarter, String partyCode, String userId, String name, String headUserName, Integer zzfbType, Integer gqtype,
  193. String postAreaId) {
  194. List<CfDictionary> dicScoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel");
  195. PageHelper.startPage(page, rows);
  196. List<HashMap<String, Object>> list = cgjqCquery.selectPostareaScoreList(cgjqType, year, quarter, partyCode, userId, name, headUserName, zzfbType, gqtype,postAreaId);
  197. for (HashMap<String, Object> item : list) {
  198. if (item.get("SCORELEVEL") != null) {
  199. item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dicScoreLevel).getDicvalue());
  200. }
  201. }
  202. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  203. return result;
  204. }
  205. /**
  206. * @Description //TODO 岗区评分记录-岗区成员
  207. * @Date 15:39 2019/9/24
  208. * @Param [page, rows, seetingPostareaId, dutyUserType]
  209. **/
  210. @Override
  211. public PageInfo<HashMap<String, Object>> getPostareaScoreUserList(int page, int rows, String postAreaScoreId, Integer dutyUserType) {
  212. List<CfDictionary> dicDutyUserType = dictionaryService.getDictionaryListByDicTypeKey("dutyUserType");
  213. PageHelper.startPage(page, rows);
  214. List<HashMap<String, Object>> list = cgjqCquery.selectPostareaScoreUserList(postAreaScoreId, dutyUserType);
  215. for (HashMap<String, Object> item : list) {
  216. if (item.get("DUTYUSERTYPE") != null) {
  217. item.put("DUTYUSERNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DUTYUSERTYPE").toString()), dicDutyUserType).getDicvalue());
  218. }
  219. }
  220. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  221. return result;
  222. }
  223. /**
  224. * @Description //TODO 岗区评分记录-评分项
  225. * @Date 15:39 2019/9/24
  226. * @Param [partyCode, cgjqType]
  227. **/
  228. @Override
  229. public List<HashMap<String, Object>> getPostareaScoreProjectList(String postAreaScoreId) {
  230. return cgjqCquery.selectPostareaScoreProjectList(postAreaScoreId);
  231. }
  232. @Override
  233. public CgjqPostareaScore getPostareaScoreById(String postAreaScoreId) {
  234. return cgjqPostareaScoreMapper.selectByPrimaryKey(postAreaScoreId);
  235. }
  236. public CgjqPostareaScoreUser getPostareaScoreUserById(String scoreUserId) {
  237. return cgjqPostareaScoreUserMapper.selectByPrimaryKey(scoreUserId);
  238. }
  239. public CgjqPostareaScoreProject getPostareaScoreProjectById(String projectId) {
  240. return cgjqPostareaScoreProjectMapper.selectByPrimaryKey(projectId);
  241. }
  242. /**
  243. * @Description //TODO 保存岗区评分
  244. * @Date 16:54 2019/9/24
  245. * @Param [model, userList, projectList]
  246. **/
  247. @Override
  248. public int savePostareaScore(CgjqPostareaScore model, List<CgjqPostareaScoreUser> userList, List<CgjqPostareaScoreProject> projectList,
  249. String userId, String userName) {
  250. int result = 0;
  251. CgjqPostareaScore dbModel = getPostareaScoreById(model.getPostareascoreid());
  252. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getPostareascoreid()))) {
  253. model.setCreatetime(new Date());
  254. //同步数据
  255. model.setOperatestate("A");
  256. model.setOperatetime(new Date());
  257. model.setSyncstate("N");
  258. result = cgjqPostareaScoreMapper.insert(model);
  259. } else {
  260. model.setUpdatetime(new Date());
  261. model.setUpdateuserid(userService.getLoginUser().getUserid());
  262. model.setUpdateusername(userService.getUserInfobyId(userService.getLoginUser().getUserid()).getName());
  263. //同步数据
  264. model.setOperatestate("M");
  265. model.setOperatetime(new Date());
  266. model.setSyncstate("N");
  267. result = cgjqPostareaScoreMapper.updateByPrimaryKey(model);
  268. }
  269. cgjqCquery.deletePostareaScoreUser(model.getPostareascoreid());
  270. for (CgjqPostareaScoreUser item : userList) {
  271. CgjqPostareaScoreUser uModel = getPostareaScoreUserById(item.getScoreuserid());
  272. if (uModel == null || (uModel != null && stringUtils.IsNullOrEmpty(uModel.getScoreuserid()))) {
  273. item.setCreateuserid(userId);
  274. item.setCreateusername(userName);
  275. item.setCreatetime(new Date());
  276. //同步数据
  277. item.setOperatetime(new Date());
  278. item.setOperatestate("A");
  279. item.setSyncstate("N");
  280. result += cgjqPostareaScoreUserMapper.insert(item);
  281. } else {
  282. item.setUpdateuserid(userId);
  283. item.setUpdateusername(userName);
  284. item.setUpdatetime(new Date());
  285. item.setOperatetime(new Date());
  286. item.setOperatestate("M");
  287. item.setSyncstate("N");
  288. result += cgjqPostareaScoreUserMapper.updateByPrimaryKeySelective(item);
  289. }
  290. }
  291. for (CgjqPostareaScoreProject item : projectList) {
  292. CgjqPostareaScoreProject pModel = getPostareaScoreProjectById(item.getScoreprojectid());
  293. if (pModel == null || (pModel != null && stringUtils.IsNullOrEmpty(pModel.getScoreprojectid()))) {
  294. item.setCreateuserid(userId);
  295. item.setCreateusername(userName);
  296. item.setCreatetime(new Date());
  297. //同步数据
  298. item.setOperatetime(new Date());
  299. item.setOperatestate("A");
  300. item.setSyncstate("N");
  301. result += cgjqPostareaScoreProjectMapper.insert(item);
  302. } else {
  303. item.setUpdateuserid(userId);
  304. item.setUpdateusername(userName);
  305. item.setUpdatetime(new Date());
  306. item.setOperatetime(new Date());
  307. item.setOperatestate("M");
  308. item.setSyncstate("N");
  309. result += cgjqPostareaScoreProjectMapper.updateByPrimaryKeySelective(item);
  310. }
  311. }
  312. return result;
  313. }
  314. /**
  315. * @Description //TODO 删除岗区评分记录
  316. * @Date 15:33 2019/9/24
  317. * @Param [postAreaScoreId]
  318. **/
  319. @Override
  320. @Transactional(rollbackFor = Exception.class)
  321. public int deletePostareaScore(String postAreaScoreId) {
  322. cgjqCquery.deletePostareaScoreProject(postAreaScoreId);
  323. cgjqCquery.deletePostareaScoreUser(postAreaScoreId);
  324. return cgjqCquery.deletePostareaScore(postAreaScoreId);
  325. }
  326. /**
  327. * @Description //TODO 查询评分排名
  328. * @Date 10:40 2019/9/25
  329. * @Param [partyCode, cgjqType, year, quarter]
  330. **/
  331. @Override
  332. public List<HashMap<String, Object>> getPostareaScoreOrderList(String partyCode, Integer cgjqType, Integer year, Integer quarter, Integer zzfbType) {
  333. List<CfDictionary> dicScoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel");
  334. List<HashMap<String, Object>> list = cgjqCquery.selectPostareaScoreOrderList(partyCode, cgjqType, year, quarter, zzfbType);
  335. for (HashMap<String, Object> item : list) {
  336. if (item.get("SCORELEVEL") != null) {
  337. item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dicScoreLevel).getDicvalue());
  338. }
  339. }
  340. return list;
  341. }
  342. @Override
  343. public int updatePostareaScore(CgjqPostareaScore model, String userId, String userName) {
  344. model.setUpdatetime(new Date());
  345. model.setUpdateuserid(userId);
  346. model.setUpdateusername(userName);
  347. model.setOperatetime(new Date());
  348. model.setOperatestate("M");
  349. model.setSyncstate("N");
  350. return cgjqPostareaScoreMapper.updateByPrimaryKeySelective(model);
  351. }
  352. /**
  353. * @Description //TODO 岗区选择(评分)
  354. * @Date 16:25 2019/9/27
  355. * @Param [page, rows, year, quarter, cgjqType, partyCode, userId, name, headUserName]
  356. **/
  357. @Override
  358. public PageInfo<HashMap<String, Object>> getSettingPostareaOfScoreList(int page, int rows, Integer year, Integer quarter, Integer cgjqType, String partyCode, String userId, String name, String headUserName) {
  359. PageHelper.startPage(page, rows);
  360. List<HashMap<String, Object>> list = cgjqCquery.selectSettingPostareaOfScoreList(year, quarter, cgjqType, partyCode, userId, name, headUserName);
  361. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  362. return result;
  363. }
  364. @Override
  365. public CgjqPostareaScore getPostareaScoreByQuarter(String seetingPostareaId, Integer year, Integer quarter) {
  366. CgjqPostareaScore model = new CgjqPostareaScore();
  367. CgjqPostareaScoreExample exp = new CgjqPostareaScoreExample();
  368. CgjqPostareaScoreExample.Criteria cri = exp.or();
  369. cri.andSeetingpostareaidEqualTo(seetingPostareaId);
  370. cri.andYearEqualTo(year);
  371. cri.andQuarterEqualTo(quarter);
  372. cri.andOperatestateNotEqualTo("D");
  373. List<CgjqPostareaScore> list = cgjqPostareaScoreMapper.selectByExample(exp);
  374. if (list.size() > 0) {
  375. model = list.get(0);
  376. }
  377. return model;
  378. }
  379. /**
  380. * @Description //TODO 查询个人所属岗位排名
  381. * @Date 9:36 2019/9/27
  382. * @Param [userId, cgjqType, year, quarter]
  383. **/
  384. @Override
  385. public List<HashMap<String, Object>> getUserPostareaOrderList(String userId, Integer cgjqType, Integer year, Integer quarter) {
  386. List<CfDictionary> dic_scoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel");
  387. List<HashMap<String, Object>> list = cgjqCquery.selectUserPostareaOrderList(userId, cgjqType, year, quarter);
  388. for (HashMap<String, Object> item : list) {
  389. if (item.get("SCORELEVEL") != null) {
  390. item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dic_scoreLevel).getDicvalue());
  391. }
  392. }
  393. return list;
  394. }
  395. @Override
  396. public PageInfo<HashMap<String, Object>> getPostareaTotalList(int pageIndex, int pageSize, Integer cgjqType, String dzzdm, String name, String userName,Integer gqtype) {
  397. List<CfDictionary> dic_scoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel");
  398. PageHelper.startPage(pageIndex, pageSize);
  399. List<HashMap<String, Object>> list = cgjqCquery.selectPostareaTotalList(cgjqType, dzzdm, name, userName,gqtype);
  400. for (HashMap<String, Object> item : list) {
  401. if (item.get("SCORELEVEL") != null) {
  402. item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dic_scoreLevel).getDicvalue());
  403. }
  404. }
  405. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  406. return result;
  407. }
  408. }