SHYKServiceImpl.java 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234
  1. package com.ghsc.partybuild.service.impl;
  2. import com.ghsc.partybuild.vo.AssetinfoVo;
  3. import com.ghsc.partybuild.vo.shyk.*;
  4. import com.github.pagehelper.PageHelper;
  5. import com.github.pagehelper.PageInfo;
  6. import com.ghsc.partybuild.AppConfig;
  7. import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
  8. import com.ghsc.partybuild.mapper.*;
  9. import com.ghsc.partybuild.model.*;
  10. import com.ghsc.partybuild.service.*;
  11. import com.ghsc.partybuild.util.DateUtils;
  12. import com.ghsc.partybuild.util.MapUtils;
  13. import com.ghsc.partybuild.util.StringUtils;
  14. import com.ghsc.partybuild.vo.PartyPlanMultiVo;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.scheduling.annotation.Async;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.*;
  20. import java.util.stream.Collectors;
  21. /**
  22. * 三会一课
  23. *
  24. * @author pj
  25. */
  26. @Service("shykService")
  27. public class SHYKServiceImpl implements SHYKService {
  28. @Autowired
  29. private DateUtils dateUtils;
  30. @Autowired
  31. private SHYKCQuery shykcQuery;
  32. @Autowired
  33. private ShykMeetingMapper shykMeetingMapper;
  34. @Autowired
  35. private ShykPartyplanMapper partyplanMapper;
  36. @Autowired
  37. private StringUtils stringUtils;
  38. @Autowired
  39. private ShykMeetingtopicMapper shykMeetingtopicMapper;
  40. @Autowired
  41. private ShykMeetinguserMapper shykMeetinguserMapper;
  42. @Autowired
  43. private DictionaryService dictionaryService;
  44. @Autowired
  45. private UserService userService;
  46. @Autowired
  47. private ShykMeetingdecisionMapper shykMeetingdecisionMapper;
  48. @Autowired
  49. private MessageService messageService;
  50. @Autowired
  51. private ShykTempuserMapper shykTempuserMapper;
  52. @Autowired
  53. private MapUtils mapUtils;
  54. @Autowired
  55. private PartyUserService partyUserService;
  56. @Autowired
  57. private PartyCQuery partyCquery;
  58. @Autowired
  59. private AppConfig appConfig;
  60. @Autowired
  61. private ShykUserevaluateMapper shykUserevaluateMapper;
  62. @Autowired
  63. private ShykUserevaluateprojectMapper shykUserevaluateprojectMapper;
  64. @Autowired
  65. private PartyService partyService;
  66. @Autowired
  67. private ShykMbYtmbMapper shykMbYtmbMapper;
  68. @Autowired
  69. private ShykMeetingDemocracyreviewMapper shykMeetingDemocracyreviewMapper;
  70. @Autowired
  71. private ShykMeetingTypeMapper shykMeetingTypeMapper;
  72. @Autowired
  73. private ShykPartytargetMapper shykPartytargetMapper;
  74. /**
  75. * @param page
  76. * @param rows
  77. * @param partyCode
  78. * @param meetingName
  79. * @param meetingAddress
  80. * @param beginTime
  81. * @param endTime
  82. * @param shykStatus
  83. * @param shykType
  84. * @param userId
  85. * @param myMeeting
  86. * @param zzfbType
  87. * @param recommendType
  88. * @param day
  89. * @return
  90. */
  91. @Override
  92. public PageInfo<HashMap<String, Object>> getMeetingList(int page, int rows, String partyCode, String meetingName, String meetingAddress, String beginTime, String endTime, Integer shykStatus, List<Integer> shykType,
  93. String userId, Integer myMeeting, String day, String ssdzzdm) {
  94. List<CfDictionary> dicShykStatus = dictionaryService.getDictionaryListByDicTypeKey("shykStatus");
  95. List<CfDictionary> dicMeetingApproveStatus = dictionaryService.getDictionaryListByDicTypeKey("meetingApproveStatus");
  96. List<CfDictionary> dicDecisionstatus = dictionaryService.getDictionaryListByDicTypeKey("decisionstatus");
  97. PageHelper.startPage(page, rows, false);
  98. List<HashMap<String, Object>> list = shykcQuery.selectMeetingList(partyCode, meetingName, meetingAddress, beginTime, endTime, shykStatus, shykType, userId, myMeeting, day, page, rows, ssdzzdm);
  99. for (HashMap<String, Object> item : list) {
  100. if (item.get("SHYKSTATUS") != null) {
  101. item.put("SHYKSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKSTATUS").toString()), dicShykStatus).getDicvalue());
  102. }
  103. if (item.get("MEETINGAPPROVESTATUS") != null) {
  104. item.put("MEETINGAPPROVESTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("MEETINGAPPROVESTATUS").toString()), dicMeetingApproveStatus).getDicvalue());
  105. }
  106. if (item.get("DECISIONSTATUS") != null) {
  107. item.put("DECISIONSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DECISIONSTATUS").toString()), dicDecisionstatus).getDicvalue());
  108. }
  109. }
  110. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  111. return result;
  112. }
  113. @Override
  114. public PageInfo<ShykMeetingdecision> getMeetingDecisionList(int page, int rows, String meetingId) {
  115. PageHelper.startPage(page, rows);
  116. ShykMeetingdecisionExample exp = new ShykMeetingdecisionExample();
  117. ShykMeetingdecisionExample.Criteria cri = exp.or();
  118. cri.andMeetingidEqualTo(meetingId);
  119. cri.andOperatestateNotEqualTo("D");
  120. //exp.setOrderByClause("createtime ASC");
  121. List<ShykMeetingdecision> list = shykMeetingdecisionMapper.selectByExampleWithBLOBs(exp);
  122. PageInfo<ShykMeetingdecision> result = new PageInfo(list);
  123. return result;
  124. }
  125. @Override
  126. public PageInfo<HashMap<String, Object>> getMeetingUserList(int page, int rows, String meetingId) {
  127. List<CfDictionary> dicSigninStatus = dictionaryService.getDictionaryListByDicTypeKey("signinStatus");
  128. List<CfDictionary> dicCheckinStatus = dictionaryService.getDictionaryListByDicTypeKey("checkinStatus");
  129. List<CfDictionary> dicApproveStatus = dictionaryService.getDictionaryListByDicTypeKey("approveStatus");
  130. PageHelper.startPage(page, rows);
  131. List<HashMap<String, Object>> list = shykcQuery.selectMeetingUserList(meetingId);
  132. for (HashMap<String, Object> item : list) {
  133. if (item.get("SIGNINSTATUS") != null) {
  134. item.put("SIGNINSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SIGNINSTATUS").toString()), dicSigninStatus).getDicvalue());
  135. }
  136. if (item.get("CHECKINSTATUS") != null) {
  137. item.put("CHECKINSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("CHECKINSTATUS").toString()), dicCheckinStatus).getDicvalue());
  138. }
  139. if (item.get("APPROVESTATUS") != null) {
  140. item.put("APPROVESTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("APPROVESTATUS").toString()), dicApproveStatus).getDicvalue());
  141. }
  142. }
  143. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  144. return result;
  145. }
  146. @Override
  147. public List<MeetingDemocracyReviewVo> getMeetingDemocracyReviewList(String meetingId) {
  148. return shykcQuery.selectMeetingDemocracyReviewList(meetingId);
  149. }
  150. @Override
  151. public List<MeetingTypeVo> getMeetingTypeList(String meetingId) {
  152. return shykcQuery.selectMeetingTypeList(meetingId);
  153. }
  154. @Override
  155. public List<HashMap<String, Object>> getMeetingTopicList(String meetingId) {
  156. return shykcQuery.selectMeetingTopicList(meetingId);
  157. }
  158. @Override
  159. public List<HashMap<String, Object>> getTopicModelListOfChoose(String meetingId, Integer shykType) {
  160. List<HashMap<String, Object>> list = shykcQuery.selectTopicModelListOfChoose(meetingId, shykType);
  161. HashMap<String, Object> map = new HashMap<String, Object>();
  162. String mbmc = "";
  163. List<HashMap<String, Object>> topicList = getMeetingTopicList(meetingId).stream().filter(it -> it.get("MODELID") == null).collect(Collectors.toList());
  164. if (topicList.size() > 0 && topicList.get(0).get("TOPICNAME") != null) {
  165. mbmc = topicList.get(0).get("TOPICNAME").toString();
  166. map.put("MEETINGTOPICID", topicList.get(0).get("MEETINGTOPICID").toString());
  167. }
  168. map.put("MBMC", mbmc);
  169. map.put("ID", "");
  170. list.add(map);
  171. return list;
  172. }
  173. @Override
  174. public int saveMeeting(ShykMeetingWithBLOBs model, List<ShykMeetingtopic> topicList, List<ShykMeetinguser> userList
  175. , List<ShykMeetingDemocracyreview> democracyreviewList, List<ShykMeetingTypeKey> typeList
  176. , String userId, String userName) throws Exception {
  177. int result = 0;
  178. ShykMeetingWithBLOBs dbModel = getMeetingById(model.getMeetingid());
  179. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getMeetingid()))) {
  180. model.setCreatetime(new Date());
  181. model.setCreateuserid(userId);
  182. model.setCreateusername(userName);
  183. model.setShykstatus(1);
  184. model.setOperatestate("A");
  185. model.setOperatetime(new Date());
  186. model.setSyncstate("N");
  187. result = shykMeetingMapper.insert(model);
  188. } else {
  189. dbModel.setMeetingname(model.getMeetingname());
  190. dbModel.setPartycode(model.getPartycode());
  191. dbModel.setPartyname(model.getPartyname());
  192. dbModel.setMeetingaddress(model.getMeetingaddress());
  193. dbModel.setChairuser(model.getChairuser());
  194. dbModel.setRecorduser(model.getRecorduser());
  195. dbModel.setBegintime(model.getBegintime());
  196. dbModel.setEndtime(model.getEndtime());
  197. dbModel.setIsfirsttopic(model.getIsfirsttopic());
  198. dbModel.setTopiccontent(model.getTopiccontent());
  199. dbModel.setAttenduser(model.getAttenduser());
  200. dbModel.setUpdatetime(new Date());
  201. dbModel.setUpdateuserid(userId);
  202. dbModel.setUpdateusername(userName);
  203. dbModel.setOperatestate("M");
  204. dbModel.setOperatetime(new Date());
  205. dbModel.setSyncstate("N");
  206. result = shykMeetingMapper.updateByPrimaryKeyWithBLOBs(dbModel);
  207. }
  208. shykcQuery.deteteMeetingUser(model.getMeetingid());
  209. shykcQuery.deteteMeetingDemocracyreview(model.getMeetingid());
  210. shykcQuery.deteteMeetingType(model.getMeetingid());
  211. userList.forEach(item -> {
  212. item.setMeetinguserid(UUID.randomUUID().toString());
  213. item.setMeetingid(model.getMeetingid());
  214. //同步数据
  215. item.setOperatetime(new Date());
  216. item.setOperatestate("A");
  217. item.setSyncstate("N");
  218. shykMeetinguserMapper.insert(item);
  219. });
  220. democracyreviewList.forEach(item -> {
  221. item.setDemocracyreviewid(UUID.randomUUID().toString());
  222. item.setMeetingid(model.getMeetingid());
  223. item.setCreatetime(new Date());
  224. item.setCreateuserid(userId);
  225. shykMeetingDemocracyreviewMapper.insert(item);
  226. });
  227. typeList.forEach(item -> {
  228. item.setMeetingid(model.getMeetingid());
  229. shykMeetingTypeMapper.insert(item);
  230. });
  231. return result;
  232. }
  233. @Override
  234. public int updateMeeting(ShykMeetingWithBLOBs model) {
  235. model.setOperatetime(new Date());
  236. model.setOperatestate("M");
  237. model.setSyncstate("N");
  238. return shykMeetingMapper.updateByPrimaryKeyWithBLOBs(model);
  239. }
  240. @Override
  241. public ShykMeetingVo getMeetingById(String id) throws Exception {
  242. ShykMeetingWithBLOBs model = shykMeetingMapper.selectByPrimaryKey(id);
  243. if (model != null && !stringUtils.IsNullOrEmpty(model.getPartycode())) {
  244. model.setPartyname(partyService.getPartyName(model.getPartycode()));
  245. }
  246. ShykMeetingVo data = mapUtils.map2Obj(mapUtils.objectToMap(model), ShykMeetingVo.class);
  247. return data;
  248. }
  249. @Override
  250. public int deleteMeetingById(String meetingId) {
  251. shykcQuery.deleteMeetingTopic(meetingId);
  252. shykcQuery.deteteMeetingUser(meetingId);
  253. shykcQuery.deleteMeetingDecision(meetingId);
  254. shykcQuery.deteteMeetingDemocracyreview(meetingId);
  255. shykcQuery.deteteMeetingType(meetingId);
  256. return shykcQuery.deleteMeeting(meetingId);
  257. }
  258. @Override
  259. public ShykMeetinguser getMeetinguserByUserCode(String meetingId, String userCode) {
  260. ShykMeetinguser user = new ShykMeetinguser();
  261. ShykMeetinguserExample uexp = new ShykMeetinguserExample();
  262. ShykMeetinguserExample.Criteria ucri = uexp.or().andMeetingidEqualTo(meetingId).andUsercodeEqualTo(userCode);
  263. ucri.andOperatestateNotEqualTo("D");
  264. List<ShykMeetinguser> list = shykMeetinguserMapper.selectByExample(uexp);
  265. if (list.size() > 0) {
  266. user = list.get(0);
  267. }
  268. return user;
  269. }
  270. @Override
  271. public ShykMeetinguser getMeetinguserById(String meetingUserId) {
  272. return shykMeetinguserMapper.selectByPrimaryKey(meetingUserId);
  273. }
  274. @Override
  275. public int signinMeeting(String meetingId, String userCode, boolean isSignin, String userRemark, String signinUserCode, String signinUserName) {
  276. int count = 0;
  277. ShykMeetinguser user = getMeetinguserByUserCode(meetingId, userCode);
  278. if (user != null && !stringUtils.IsNullOrEmpty(user.getMeetinguserid())) {
  279. user.setSigninstatus(isSignin ? 2 : 3);
  280. user.setSigninusercode(signinUserCode);
  281. user.setSigninusername(signinUserName);
  282. user.setUserremark(userRemark);
  283. user.setOperatestate("M");
  284. user.setOperatetime(new Date());
  285. user.setSyncstate("N");
  286. count = shykMeetinguserMapper.updateByPrimaryKey(user);
  287. }
  288. return count;
  289. }
  290. @Override
  291. public int checkinMeeting(String meetingId, String userCode, String checkinUserCode, String checkinUserName) {
  292. int count = 0;
  293. ShykMeetinguser user = getMeetinguserByUserCode(meetingId, userCode);
  294. if (user != null && !stringUtils.IsNullOrEmpty(user.getMeetinguserid())) {
  295. user.setCheckinstatus(1);
  296. user.setSigninstatus(2);//有签到默认参加
  297. user.setCheckinusercode(checkinUserCode);
  298. user.setCheckinusername(checkinUserName);
  299. user.setOperatestate("M");
  300. user.setOperatetime(new Date());
  301. user.setSyncstate("N");
  302. count = shykMeetinguserMapper.updateByPrimaryKey(user);
  303. }
  304. return count;
  305. }
  306. @Override
  307. public int conveneMeeting(String meetingId, boolean isConvene) throws Exception {
  308. int count = 0;
  309. ShykMeeting model = getMeetingById(meetingId);
  310. model.setShykstatus(isConvene ? 3 : 4); //3会议召开,4会议取消
  311. model.setOperatestate("M");
  312. model.setOperatetime(new Date());
  313. model.setSyncstate("N");
  314. count = shykMeetingMapper.updateByPrimaryKey(model);
  315. return count;
  316. }
  317. @Async
  318. @Override
  319. public void sendMeetingNotify(String meetingId, String userId, String userName) throws Exception {
  320. //删除已发送的通知
  321. messageService.deleteMessageByBusinessId(meetingId, 1);
  322. //重新推送通知
  323. ShykMeeting model = getMeetingById(meetingId);
  324. ShykMeetinguserExample exp = new ShykMeetinguserExample();
  325. ShykMeetinguserExample.Criteria cri = exp.or();
  326. cri.andMeetingidEqualTo(meetingId);
  327. cri.andOperatestateNotEqualTo("D");
  328. List<ShykMeetinguser> list = shykMeetinguserMapper.selectByExample(exp);
  329. for (ShykMeetinguser user : list) {
  330. //发起人不需要接收通知
  331. if (!user.getUsercode().equals(userId)) {
  332. messageService.iSendMessage(model.getMeetingname(), "", 1, "", meetingId, userId, user.getUsercode());
  333. }
  334. }
  335. }
  336. @Override
  337. @Transactional(rollbackFor = Exception.class)
  338. public int approveMeeting(List<String> meetingIdList, boolean isPass, String userId, String userName) {
  339. int count = 0;
  340. ShykMeetingExample exp = new ShykMeetingExample();
  341. ShykMeetingExample.Criteria cri = exp.or();
  342. cri.andMeetingidIn(meetingIdList);
  343. //cri.andShykstatusEqualTo(2);
  344. List<ShykMeeting> list = shykMeetingMapper.selectByExample(exp);
  345. for (ShykMeeting it : list) {
  346. it.setMeetingapprovestatus(isPass ? 1 : 0);
  347. it.setMeetingapproveusername(userName);
  348. it.setMeetingapproveusercode(userId);
  349. if (isPass && it.getShykstatus() == 0) { //审核同意,原状态为报备中的才需要更新状态
  350. it.setShykstatus(3);//报备完成
  351. }
  352. it.setOperatestate("M");
  353. it.setOperatetime(new Date());
  354. it.setSyncstate("N");
  355. count += shykMeetingMapper.updateByPrimaryKey(it);
  356. }
  357. /*if (isPass) {//推送通知
  358. for (ShykMeeting it : list) {
  359. sendMeetingNotify(it.getMeetingid(), userId, userName);
  360. }
  361. }*/
  362. return count;
  363. }
  364. @Override
  365. public ShykMeetingdecision getMeetingdecisionById(String id) {
  366. return shykMeetingdecisionMapper.selectByPrimaryKey(id);
  367. }
  368. @Override
  369. public int saveMeetingDecision(String meetingId, List<ShykMeetingdecision> decisionList) {
  370. shykcQuery.deleteMeetingDecision(meetingId);
  371. int result = 0;
  372. for (ShykMeetingdecision item : decisionList) {
  373. //同步数据
  374. item.setOperatetime(new Date());
  375. item.setOperatestate("A");
  376. item.setSyncstate("N");
  377. result += shykMeetingdecisionMapper.insert(item);
  378. }
  379. return result;
  380. }
  381. @Override
  382. public int cancelMeeting(String meetingId, String userId, String userName) throws Exception {
  383. int count = 0;
  384. ShykMeeting model = getMeetingById(meetingId);
  385. model.setShykstatus(2); //2会议取消
  386. model.setOperatestate("M");
  387. model.setOperatetime(new Date());
  388. model.setSyncstate("N");
  389. count = shykMeetingMapper.updateByPrimaryKey(model);
  390. if (count > 0) {
  391. //删除会议通知
  392. messageService.deleteMessageByBusinessId(model.getMeetingid(), 1);
  393. //推送会议取消通知
  394. ShykMeetinguserExample exp = new ShykMeetinguserExample();
  395. ShykMeetinguserExample.Criteria cri = exp.or();
  396. cri.andMeetingidEqualTo(meetingId);
  397. cri.andOperatestateNotEqualTo("D");
  398. List<ShykMeetinguser> list = shykMeetinguserMapper.selectByExample(exp);
  399. for (ShykMeetinguser user : list) {
  400. //发起人不需要接收通知
  401. if (!user.getUsercode().equals(userId)) {
  402. String title = model.getMeetingname() + ",会议已取消。";
  403. messageService.iSendMessage(title, title, 3, "", meetingId, userId, user.getUsercode());
  404. }
  405. }
  406. }
  407. return count;
  408. }
  409. @Override
  410. public int saveUserStudy(String meetingId, String userCode, String makeuupstudy, String userId, String userName) {
  411. int count = 0;
  412. ShykMeetinguser user = getMeetinguserByUserCode(meetingId, userCode);
  413. if (user != null && !stringUtils.IsNullOrEmpty(user.getMeetinguserid())) {
  414. user.setMakeuupstudy(makeuupstudy);
  415. user.setOperatestate("M");
  416. user.setOperatetime(new Date());
  417. user.setSyncstate("N");
  418. count = shykMeetinguserMapper.updateByPrimaryKey(user);
  419. }
  420. return count;
  421. }
  422. @Async
  423. @Override
  424. public void sendMeetingStudyNotify(String meetingId, String userId, String userName) throws Exception {
  425. //删除已发送的通知
  426. messageService.deleteMessageByBusinessId(meetingId, 2);
  427. //重新推送通知
  428. ShykMeeting model = getMeetingById(meetingId);
  429. ShykMeetinguserExample exp = new ShykMeetinguserExample();
  430. ShykMeetinguserExample.Criteria cri = exp.or();
  431. cri.andMeetingidEqualTo(meetingId);
  432. cri.andOperatestateNotEqualTo("D");
  433. cri.andSigninstatusNotEqualTo(2);//排除确认参加的
  434. List<ShykMeetinguser> list = shykMeetinguserMapper.selectByExample(exp);
  435. for (ShykMeetinguser user : list) {
  436. //发起人不需要接收通知
  437. if (!user.getUsercode().equals(userId)) {
  438. messageService.iSendMessage(model.getMeetingname(), "", 2, "", meetingId, userId, user.getUsercode());
  439. }
  440. }
  441. }
  442. @Override
  443. public int cancelUserSignin(String meetingId, String userCode, String userId, String userName) {
  444. int count = 0;
  445. ShykMeetinguser user = getMeetinguserByUserCode(meetingId, userCode);
  446. if (user != null && !stringUtils.IsNullOrEmpty(user.getMeetinguserid())) {
  447. user.setSigninstatus(1);//未签收
  448. user.setUserremark("");
  449. user.setCheckinstatus(0);//未签到
  450. user.setOperatestate("M");
  451. user.setOperatetime(new Date());
  452. user.setSyncstate("N");
  453. count = shykMeetinguserMapper.updateByPrimaryKey(user);
  454. }
  455. return count;
  456. }
  457. @Override
  458. public int cancelUserCheckin(String meetingId, String userCode, String userId, String userName) {
  459. int count = 0;
  460. ShykMeetinguser user = getMeetinguserByUserCode(meetingId, userCode);
  461. if (user != null && !stringUtils.IsNullOrEmpty(user.getMeetinguserid())) {
  462. user.setCheckinstatus(0);//未签到
  463. user.setUserremark("");
  464. user.setOperatestate("M");
  465. user.setOperatetime(new Date());
  466. user.setSyncstate("N");
  467. count = shykMeetinguserMapper.updateByPrimaryKey(user);
  468. }
  469. return count;
  470. }
  471. /**
  472. * @Description //TODO 查询历史会议地址
  473. * @Date 14:31 2019/9/12
  474. * @Param [userId:会议发布人]
  475. **/
  476. @Override
  477. public List<HashMap<String, Object>> getHistoryAddressList(String userId) {
  478. return shykcQuery.selectHistoryAddressList(userId);
  479. }
  480. @Override
  481. public List<Map<String, Object>> getTempUserByPartyCode(String partyCode) {
  482. List<CfDictionary> dicTempUserEnables = dictionaryService.getDictionaryListByDicTypeKey("shyk_tempUserEnable");
  483. ShykTempuserExample exp = new ShykTempuserExample();
  484. String[] states = {"A", "M"};
  485. exp.or().andPartyidEqualTo(partyCode).andOperatestateIn(Arrays.asList(states));
  486. List<ShykTempuser> userlist = shykTempuserMapper.selectByExample(exp);
  487. List<Map<String, Object>> mapList = userlist.stream().map(it -> {
  488. Map<String, Object> mit = mapUtils.objectToMap(it);
  489. Map<String, Object> partyUser = partyUserService.getPartyUserInfoByRybm(it.getUserid());
  490. mit.put("enableName", dictionaryService.getDicByKey(it.getEnable(), dicTempUserEnables).getDicvalue());
  491. mit.put("userName", partyUser.get("XM"));
  492. mit.put("mobile", partyUser.get("MOBILE"));
  493. mit.put("partyName", partyUser.get("DZZMC"));
  494. mit.put("applierName", userService.getUserInfobyId(it.getApplierid()).getName());
  495. mit.put("SZDZBDM", partyUser.get("SZDZBDM"));
  496. mit.put("DZZMC", partyUser.get("DZZMC"));
  497. mit.put("XBMC", partyUser.get("XBMC"));
  498. //mit.put("SZDZBDM",partyUser.get("SZDZBDM"));
  499. return mit;
  500. }).collect(Collectors.toList());
  501. return mapList;
  502. }
  503. @Override
  504. public Integer delTempUser(String id) {
  505. ShykTempuser tempUser = new ShykTempuser();
  506. tempUser.setTempuserid(id);
  507. tempUser.setSyncstate("N");
  508. tempUser.setOperatetime(new Date());
  509. tempUser.setOperatestate("D");
  510. return shykTempuserMapper.updateByPrimaryKeySelective(tempUser);
  511. }
  512. @Override
  513. public Integer sendTempUserMsg(Map<String, Object> model) throws Exception {
  514. Integer result = 0;
  515. CfUsers cfUser = userService.getUserByMobile(model.get("mobile").toString());
  516. if (cfUser.getUserid().length() > 0) {
  517. ShykTempuser tempUser = new ShykTempuser();
  518. tempUser.setTempuserid(UUID.randomUUID().toString());
  519. tempUser.setUserid(cfUser.getUserid());
  520. tempUser.setPartyid(model.get("partyid").toString());
  521. tempUser.setApplierid(model.get("applierid").toString());
  522. tempUser.setApplytime(new Date());
  523. tempUser.setEnable(1);
  524. tempUser.setOperatetime(new Date());
  525. tempUser.setOperatestate("A");
  526. tempUser.setSyncstate("N");
  527. Map<String, Object> partyUser = partyUserService.getPartyUserInfoByRybm(model.get("applierid").toString());
  528. String msgTitle = "[" + partyUser.get("XM") + "]邀请你临时加入《" + partyUser.get("DZZMC") + "》的会议";
  529. result += messageService.iSendMessage(msgTitle, msgTitle, 5, "", tempUser.getTempuserid(), tempUser.getApplierid(), tempUser.getUserid());
  530. result += shykTempuserMapper.insert(tempUser);
  531. } else {
  532. throw new Exception("登录账号关联不到人员信息!");
  533. }
  534. return result;
  535. }
  536. @Override
  537. public Integer confirmTempUser(String id, Integer etype) {
  538. ShykTempuser tempUser = new ShykTempuser();
  539. tempUser.setTempuserid(id);
  540. tempUser.setEnable(etype);
  541. tempUser.setSyncstate("N");
  542. tempUser.setOperatetime(new Date());
  543. tempUser.setOperatestate("M");
  544. return shykTempuserMapper.updateByPrimaryKeySelective(tempUser);
  545. }
  546. @Override
  547. public PageInfo<HashMap<String, Object>> getMeetingTotalList(int page, int rows, int year, int quarter,
  548. String dzzdm, Integer zzfbType, String ssdzzdm) {
  549. List<HashMap<String, Object>> planList = shykcQuery.selectPlanList(dzzdm, ssdzzdm);
  550. List<CfDictionary> dicPlanType = dictionaryService.getDictionaryListByDicTypeKey("SHYK_PartyPlan");
  551. PageHelper.startPage(page, rows);
  552. List<HashMap<String, Object>> list = shykcQuery.selectMeetingTotalList(year, quarter, dzzdm, zzfbType, ssdzzdm);
  553. for (HashMap<String, Object> item : list) {
  554. boolean search = true;
  555. String partyCode = item.get("DZZDM").toString();
  556. while (search) {
  557. String planType = "";
  558. String planTypeName = "/";
  559. List<HashMap<String, Object>> plan = getPartyPlan(planList, partyCode);
  560. if (plan.size() > 0) {
  561. switch (item.get("SHYKTYPE").toString()) {
  562. case "1"://党员大会
  563. if (plan.get(0).get("PLANTYPE_USER") != null) {
  564. planType = plan.get(0).get("PLANTYPE_USER").toString();
  565. }
  566. break;
  567. case "2"://支委会
  568. if (plan.get(0).get("PLANTYPE_BRANCH") != null) {
  569. planType = plan.get(0).get("PLANTYPE_BRANCH").toString();
  570. }
  571. break;
  572. case "3"://党小组会
  573. if (plan.get(0).get("PLANTYPE_GROUP") != null) {
  574. planType = plan.get(0).get("PLANTYPE_GROUP").toString();
  575. }
  576. break;
  577. case "4"://党课
  578. if (plan.get(0).get("PLANTYPE_CLASS") != null) {
  579. planType = plan.get(0).get("PLANTYPE_CLASS").toString();
  580. }
  581. break;
  582. default:
  583. break;
  584. }
  585. }
  586. item.put("PLANTYPE", planType);
  587. partyCode = partyCode.substring(0, partyCode.length() - 3);
  588. if (!stringUtils.IsNullOrEmpty(planType)) {
  589. planTypeName = dictionaryService.getDicByKey(Integer.parseInt(planType), dicPlanType).getDicvalue();
  590. boolean totalWarn = false;
  591. Integer firstCount = Integer.parseInt(item.get("MONTH_FIRST").toString());
  592. Integer secondCount = Integer.parseInt(item.get("MONTH_SECOND").toString());
  593. Integer thirdCount = Integer.parseInt(item.get("MONTH_THIRD").toString());
  594. Integer total = firstCount + secondCount + thirdCount;
  595. switch (planType) {
  596. case "1"://每月一次
  597. item.put("firstWarn", firstCount.compareTo(0) > 0 ? 0 : 1);
  598. item.put("secondWarn", secondCount.compareTo(0) > 0 ? 0 : 1);
  599. item.put("thirdWarn", thirdCount.compareTo(0) > 0 ? 0 : 1);
  600. break;
  601. case "2"://每季度一次的
  602. totalWarn = total <= 0;
  603. break;
  604. case "3"://每半年一次的
  605. totalWarn = ("2".equals(item.get("QUARTER").toString()) || "4".equals(item.get("QUARTER").toString())) && total <= 0;
  606. break;
  607. case "4"://每年一次的
  608. totalWarn = "4".equals(item.get("QUARTER").toString()) && total <= 0;
  609. break;
  610. default:
  611. break;
  612. }
  613. item.put("totalWarn", totalWarn ? 1 : 0);
  614. }
  615. item.put("PLANTYPENAME", planTypeName);
  616. /*if (plan.size() > 0 || partyCode.length() < 12) {
  617. search = false;
  618. }*/
  619. search = false;
  620. }
  621. }
  622. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  623. return result;
  624. }
  625. @Override
  626. public PageInfo<HashMap<String, Object>> getPartyPlanList(int page, int rows,
  627. String dzzdm, Integer zzfbType) {
  628. PageHelper.startPage(page, rows);
  629. List<HashMap<String, Object>> list = shykcQuery.selectPartyPlanList(dzzdm, zzfbType);
  630. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  631. return result;
  632. }
  633. @Override
  634. public Integer savePartyPlan(String partyCode, List<MeetingTargetVo> targetList, String userId) {
  635. ShykPartytargetExample exp = new ShykPartytargetExample();
  636. ShykPartytargetExample.Criteria cri = exp.or();
  637. cri.andPartycodeEqualTo(partyCode);
  638. shykPartytargetMapper.deleteByExample(exp);
  639. targetList.forEach(item -> {
  640. item.setCreatetime(new Date());
  641. item.setPartycode(partyCode);
  642. item.setCreateuserid(userId);
  643. shykPartytargetMapper.insert(item);
  644. });
  645. return targetList.size();
  646. }
  647. private List<HashMap<String, Object>> getPartyPlan(List<HashMap<String, Object>> planList, String partyCode) {
  648. return planList.stream().filter(it -> it.get("PARTYCODE").toString().equals(partyCode)).collect(Collectors.toList());
  649. }
  650. @Override
  651. public PageInfo<HashMap<String, Object>> getMyMeetingList(int page, int rows,
  652. String userId, String beginTime, String endTime, String day, Integer isEvaluate, Integer shykType, String meetingName,
  653. String meetingAddress, String partyCode) {
  654. List<CfDictionary> dicShykType = dictionaryService.getDictionaryListByDicTypeKey("shykType");
  655. List<CfDictionary> dicShykStatus = dictionaryService.getDictionaryListByDicTypeKey("shykStatus");
  656. List<CfDictionary> dicMeetingApproveStatus = dictionaryService.getDictionaryListByDicTypeKey("meetingApproveStatus");
  657. List<CfDictionary> dicDecisionstatus = dictionaryService.getDictionaryListByDicTypeKey("decisionstatus");
  658. PageHelper.startPage(page, rows);
  659. List<HashMap<String, Object>> list = shykcQuery.selectMyMeetingList(userId, beginTime, endTime, day, isEvaluate, shykType, meetingName, meetingAddress, partyCode);
  660. for (HashMap<String, Object> item : list) {
  661. if (item.get("SHYKTYPE") != null) {
  662. item.put("SHYKTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKTYPE").toString()), dicShykType).getDicvalue());
  663. }
  664. if (item.get("SHYKSTATUS") != null) {
  665. item.put("SHYKSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKSTATUS").toString()), dicShykStatus).getDicvalue());
  666. }
  667. if (item.get("MEETINGAPPROVESTATUS") != null) {
  668. item.put("MEETINGAPPROVESTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("MEETINGAPPROVESTATUS").toString()), dicMeetingApproveStatus).getDicvalue());
  669. }
  670. if (item.get("DECISIONSTATUS") != null) {
  671. item.put("DECISIONSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DECISIONSTATUS").toString()), dicDecisionstatus).getDicvalue());
  672. }
  673. }
  674. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  675. return result;
  676. }
  677. @Override
  678. public PageInfo<HashMap<String, Object>> getMeetingTotalListNew(int page, int rows, Integer year, Integer quarter,
  679. String dzzdm, String ssdzzdm) {
  680. List<HashMap<String, Object>> dataList = new ArrayList<>();
  681. //计算季度每月开始结束时间
  682. String month1Bt = "", month1Et = "",//第1月
  683. month2Bt = "", month2Et = "",//第2月
  684. month3Bt = "", month3Et = "";//第3月
  685. Integer mBt1 = quarter * 3 - 2;
  686. for (Integer m = mBt1; m <= mBt1 + 2; m++) {
  687. Date begin = dateUtils.StrToDate(year.toString() + "-" + m.toString() + "-01", "yyyy-MM-dd");
  688. Date end = dateUtils.getDateOfAddMonth(begin, 1);
  689. switch ((m + 2) % 3) {
  690. case 0:
  691. month1Bt = dateUtils.dateToStrFormat(begin, "yyyy-MM-dd");
  692. month1Et = dateUtils.dateToStrFormat(end, "yyyy-MM-dd");
  693. break;
  694. case 1:
  695. month2Bt = dateUtils.dateToStrFormat(begin, "yyyy-MM-dd");
  696. month2Et = dateUtils.dateToStrFormat(end, "yyyy-MM-dd");
  697. break;
  698. case 2:
  699. month3Bt = dateUtils.dateToStrFormat(begin, "yyyy-MM-dd");
  700. month3Et = dateUtils.dateToStrFormat(end, "yyyy-MM-dd");
  701. break;
  702. default:
  703. break;
  704. }
  705. }
  706. List<HashMap<String, Object>> planList = shykcQuery.selectPlanList(dzzdm, ssdzzdm);
  707. //List<CfDictionary> dic_planType = dictionaryService.getDictionaryListByDicTypeKey("SHYK_PartyPlan");
  708. List<String> zzlbStrList = new ArrayList<>();
  709. zzlbStrList.add("300");
  710. zzlbStrList.add("400");
  711. zzlbStrList.add("500");
  712. PageHelper.startPage(page, rows);
  713. List<HashMap<String, Object>> list = partyCquery.selectPartyList(appConfig.gddwdm, null, null, dzzdm, null, null, null, null, null, null, null, zzlbStrList, ssdzzdm, null, null, null, null, null,null);
  714. for (HashMap<String, Object> party : list) {
  715. List<HashMap<String, Object>> totalList = shykcQuery.selectMeetingTotalNew(party.get("DZZDM").toString(), year, quarter, month1Bt, month1Et, month2Bt, month2Et, month3Bt, month3Et);
  716. for (Integer type = 1; type <= 4; type++) {
  717. HashMap<String, Object> item = (HashMap<String, Object>) party.clone();
  718. String partyCode = item.get("DZZDM").toString();
  719. Integer month1 = 0, month2 = 0, month3 = 0, total = 0, quarter1 = 0, quarter2 = 0, quarter3 = 0, quarter4 = 0, yearCount = 0;
  720. Integer shykType = type;
  721. String shykTypeName = "";
  722. String planType = "";
  723. String planTypeName = "/";
  724. List<HashMap<String, Object>> typeData = totalList.stream().filter(it -> it.get("SHYKTYPE").toString().equals(shykType.toString())).collect(Collectors.toList());
  725. List<HashMap<String, Object>> plan = getPartyPlan(planList, partyCode);
  726. if (typeData.size() > 0) {
  727. month1 = Integer.parseInt(typeData.get(0).get("MONTH1").toString());
  728. month2 = Integer.parseInt(typeData.get(0).get("MONTH2").toString());
  729. month3 = Integer.parseInt(typeData.get(0).get("MONTH3").toString());
  730. quarter1 = Integer.parseInt(typeData.get(0).get("QUARTERCOUNT1").toString());
  731. quarter2 = Integer.parseInt(typeData.get(0).get("QUARTERCOUNT2").toString());
  732. quarter3 = Integer.parseInt(typeData.get(0).get("QUARTERCOUNT3").toString());
  733. quarter4 = Integer.parseInt(typeData.get(0).get("QUARTERCOUNT4").toString());
  734. yearCount = Integer.parseInt(typeData.get(0).get("YEARCOUNT").toString());
  735. }
  736. switch (shykType) {
  737. case 1://党员大会
  738. shykTypeName = "党员大会";
  739. if (plan.size() > 0 && plan.get(0).get("PLANTYPE_USER") != null) {
  740. planType = plan.get(0).get("PLANTYPE_USER").toString();
  741. }
  742. break;
  743. case 2://支委会
  744. shykTypeName = "支委会";
  745. if (plan.size() > 0 && plan.get(0).get("PLANTYPE_BRANCH") != null) {
  746. planType = plan.get(0).get("PLANTYPE_BRANCH").toString();
  747. }
  748. break;
  749. case 3://党小组会
  750. shykTypeName = "党小组会";
  751. if (plan.size() > 0 && plan.get(0).get("PLANTYPE_GROUP") != null) {
  752. planType = plan.get(0).get("PLANTYPE_GROUP").toString();
  753. }
  754. break;
  755. case 4://党课
  756. shykTypeName = "党课";
  757. if (plan.size() > 0 && plan.get(0).get("PLANTYPE_CLASS") != null) {
  758. planType = plan.get(0).get("PLANTYPE_CLASS").toString();
  759. }
  760. break;
  761. default:
  762. break;
  763. }
  764. switch (planType) {
  765. case "1":
  766. planTypeName = "每月一次";
  767. break;
  768. case "2":
  769. planTypeName = "每季度一次";
  770. break;
  771. case "3":
  772. planTypeName = "每半年一次";
  773. break;
  774. case "4":
  775. planTypeName = "每年一次";
  776. break;
  777. default:
  778. break;
  779. }
  780. if (!stringUtils.IsNullOrEmpty(planType)) {
  781. boolean totalWarn = false;
  782. switch (planType) {
  783. case "1"://每月一次
  784. total = month1 + month2 + month3;
  785. item.put("firstWarn", month1.compareTo(0) > 0 ? 0 : 1);
  786. item.put("secondWarn", month2.compareTo(0) > 0 ? 0 : 1);
  787. item.put("thirdWarn", month3.compareTo(0) > 0 ? 0 : 1);
  788. totalWarn = total < 3;
  789. break;
  790. case "2"://每季度一次的
  791. total = month1 + month2 + month3;
  792. totalWarn = total <= 0;
  793. break;
  794. case "3"://每半年一次的
  795. if (quarter <= 2) {
  796. total = quarter1 + quarter2;
  797. } else {
  798. total = quarter3 + quarter4;
  799. }
  800. totalWarn = total <= 0;
  801. break;
  802. case "4"://每年一次的
  803. total = yearCount;
  804. totalWarn = total <= 0;
  805. break;
  806. default:
  807. break;
  808. }
  809. item.put("totalWarn", totalWarn ? 1 : 0);
  810. }
  811. item.put("SHYKTYPE", shykType);
  812. item.put("SHYKTYPENAME", shykTypeName);
  813. item.put("YY", year);
  814. item.put("QUARTER", quarter);
  815. item.put("MONTH_FIRST", month1);
  816. item.put("MONTH_SECOND", month2);
  817. item.put("MONTH_THIRD", month3);
  818. item.put("PLANTYPENAME", planTypeName);
  819. item.put("PLANTYPE", planType);
  820. item.put("TOTAL", total);
  821. dataList.add(item);
  822. }
  823. }
  824. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  825. result.setList(dataList);
  826. return result;
  827. }
  828. /**
  829. * 会议评价信息
  830. *
  831. * @param meetingUserId
  832. * @return
  833. */
  834. public ShykUserevaluateWithBLOBs getUserevaluateByUserId(String meetingUserId) {
  835. ShykUserevaluateWithBLOBs model = new ShykUserevaluateWithBLOBs();
  836. ShykUserevaluateExample example = new ShykUserevaluateExample();
  837. ShykUserevaluateExample.Criteria criteria = example.or();
  838. criteria.andMeetinguseridEqualTo(meetingUserId);
  839. List<ShykUserevaluateWithBLOBs> list = shykUserevaluateMapper.selectByExampleWithBLOBs(example);
  840. if (list.size() > 0) {
  841. model = list.get(0);
  842. }
  843. return model;
  844. }
  845. /**
  846. * 保存会议评价信息
  847. *
  848. * @param model
  849. * @param projectList
  850. * @param userId
  851. * @param userName
  852. * @return
  853. */
  854. public int saveUserevaluate(ShykUserevaluateWithBLOBs model, List<ShykUserevaluateproject> projectList, String userId, String userName) {
  855. int result = 0;
  856. ShykUserevaluateWithBLOBs dbModel = getUserevaluateByUserId(model.getMeetinguserid());
  857. boolean isExist = (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getUserevaluateid())));
  858. if (isExist) {
  859. model.setCreateuserid(userId);
  860. model.setCreateusername(userName);
  861. model.setCreatetime(new Date());
  862. //同步数据
  863. model.setOperatetime(new Date());
  864. model.setOperatestate("A");
  865. model.setSyncstate("N");
  866. result = shykUserevaluateMapper.insert(model);
  867. } else {
  868. model.setUpdateuserid(userId);
  869. model.setUpdateusername(userName);
  870. model.setUpdatetime(new Date());
  871. model.setOperatetime(new Date());
  872. model.setOperatestate("M");
  873. model.setSyncstate("N");
  874. result = shykUserevaluateMapper.updateByPrimaryKeyWithBLOBs(model);
  875. }
  876. shykcQuery.deleteMeetingEvaluateProject(model.getUserevaluateid());
  877. for (ShykUserevaluateproject project : projectList) {
  878. ShykUserevaluateproject dbProjectModel = getUserevaluateprojectById(project.getProjectid());
  879. boolean isExistProject = (dbProjectModel == null || (dbProjectModel != null && stringUtils.IsNullOrEmpty(dbProjectModel.getProjectid())));
  880. if (isExistProject) {
  881. project.setProjectid(UUID.randomUUID().toString());
  882. project.setUserevaluateid(model.getUserevaluateid());
  883. project.setCreateuserid(userId);
  884. project.setCreateusername(userName);
  885. project.setCreatetime(new Date());
  886. //同步数据
  887. project.setOperatetime(new Date());
  888. project.setOperatestate("A");
  889. project.setSyncstate("N");
  890. shykUserevaluateprojectMapper.insert(project);
  891. } else {
  892. project.setUserevaluateid(model.getUserevaluateid());
  893. project.setUpdateuserid(userId);
  894. project.setUpdateusername(userName);
  895. project.setUpdatetime(new Date());
  896. project.setOperatetime(new Date());
  897. project.setOperatestate("M");
  898. project.setSyncstate("N");
  899. shykUserevaluateprojectMapper.updateByPrimaryKeyWithBLOBs(project);
  900. }
  901. }
  902. return result;
  903. }
  904. public ShykUserevaluateproject getUserevaluateprojectById(String projectId) {
  905. return shykUserevaluateprojectMapper.selectByPrimaryKey(projectId);
  906. }
  907. /**
  908. * 会议评价项信息
  909. *
  910. * @param meetingUserId
  911. * @return
  912. */
  913. public List<HashMap<String, Object>> getMeetingEvaluateProjectList(String meetingUserId) {
  914. return shykcQuery.selectMeetingEvaluateProjectList(meetingUserId);
  915. }
  916. @Override
  917. public int savePartyPlanMulti(PartyPlanMultiVo dataModel, String dataDzzdm, List<MeetingTargetVo> targetList, String userId) {
  918. int count = 0;
  919. List<HashMap<String, Object>> partyList = partyCquery.selectPartyList(appConfig.gddwdm, null, null, dataDzzdm, dataModel.getPartyType(), null, null, null, null, null, null, null, null, null, null, null, null, null,null);
  920. List<String> dzzdms = partyList.stream().map(it -> it.get("DZZDM").toString()).collect(Collectors.toList());
  921. ShykPartytargetExample exp = new ShykPartytargetExample();
  922. ShykPartytargetExample.Criteria cri = exp.or().andPartycodeIn(dzzdms);
  923. shykPartytargetMapper.deleteByExample(exp);
  924. for (Integer i = 0; i < partyList.size(); i++) {
  925. Integer finalI = i;
  926. targetList.forEach(item -> {
  927. item.setCreatetime(new Date());
  928. item.setPartycode(partyList.get(finalI).get("DZZDM").toString());
  929. item.setCreateuserid(userId);
  930. shykPartytargetMapper.insert(item);
  931. });
  932. }
  933. return partyList.size();
  934. }
  935. @Override
  936. public ShykMbYtmb getTopicModelById(String id) {
  937. return shykMbYtmbMapper.selectByPrimaryKey(id);
  938. }
  939. @Override
  940. public PageInfo<HashMap<String, Object>> getMeetingListByApp(int page, int rows, String dzzdm, String userId, Integer type, List<String> shykTypeList, String title, String startDate,
  941. String endDate) {
  942. List<CfDictionary> dic_shykType = dictionaryService.getDictionaryListByDicTypeKey("shykType");
  943. List<CfDictionary> dic_shykStatus = dictionaryService.getDictionaryListByDicTypeKey("shykStatus");
  944. List<CfDictionary> dic_meetingApproveStatus = dictionaryService.getDictionaryListByDicTypeKey("meetingApproveStatus");
  945. PageHelper.startPage(page, rows);
  946. List<HashMap<String, Object>> list = shykcQuery.selectMeetingListByApp(dzzdm, userId, type, shykTypeList, title, startDate, endDate);
  947. for (HashMap<String, Object> item : list) {
  948. if (item.get("SHYKTYPE") != null) {
  949. item.put("SHYKTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKTYPE").toString()), dic_shykType).getDicvalue());
  950. }
  951. if (item.get("SHYKSTATUS") != null) {
  952. item.put("SHYKSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKSTATUS").toString()), dic_shykStatus).getDicvalue());
  953. }
  954. if (item.get("MEETINGAPPROVESTATUS") != null) {
  955. item.put("MEETINGAPPROVESTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("MEETINGAPPROVESTATUS").toString()), dic_meetingApproveStatus).getDicvalue());
  956. }
  957. }
  958. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  959. return result;
  960. }
  961. @Override
  962. public PageInfo<HashMap<String, Object>> getMeetingPlanTotalList(int page, int rows, String dzzdm, String dzzdmSearch, Integer year, Integer quarter, Integer month) {
  963. PageHelper.startPage(page, rows);
  964. List<HashMap<String, Object>> list = shykcQuery.selectMeetingPlanTotalList(dzzdm, dzzdmSearch, year, quarter, month);
  965. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  966. return result;
  967. }
  968. @Override
  969. public PageInfo<HashMap<String, Object>> getMyMeetingListForApp(int page, int rows, String userId) {
  970. List<CfDictionary> dic_shykType = dictionaryService.getDictionaryListByDicTypeKey("shykType");
  971. List<CfDictionary> dic_shykStatus = dictionaryService.getDictionaryListByDicTypeKey("shykStatus");
  972. PageHelper.startPage(page, rows);
  973. List<HashMap<String, Object>> list = shykcQuery.selectMyMeetingListForApp(userId);
  974. for (HashMap<String, Object> item : list) {
  975. if (item.get("SHYKTYPE") != null) {
  976. item.put("SHYKTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKTYPE").toString()), dic_shykType).getDicvalue());
  977. }
  978. if (item.get("SHYKSTATUS") != null) {
  979. item.put("SHYKSTATUSNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SHYKSTATUS").toString()), dic_shykStatus).getDicvalue());
  980. }
  981. }
  982. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  983. return result;
  984. }
  985. @Override
  986. public List<MeetingTargetVo> getMeetingTargetList() {
  987. return shykcQuery.selectMeetingTargetList();
  988. }
  989. @Override
  990. public List<MeetingMonthTotalVo>getMeetingMonthTotalList(String partyCode, Integer year){
  991. return shykcQuery.selectMeetingMonthTotalList(partyCode,year);
  992. }
  993. @Override
  994. public List<MeetingMonthTotalVo> selectMeetingStatisticsList(String partyCode, String beginTime, String endTime){
  995. return shykcQuery.selectMeetingStatisticsList(partyCode, beginTime, endTime);
  996. }
  997. }