PublicityServiceImpl.java 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725
  1. package com.ghsc.partybuild.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.ghsc.partybuild.AppConfig;
  5. import com.ghsc.partybuild.mapper.*;
  6. import com.ghsc.partybuild.model.*;
  7. import com.ghsc.partybuild.service.*;
  8. import com.ghsc.partybuild.util.DateUtils;
  9. import com.ghsc.partybuild.util.MapUtils;
  10. import com.ghsc.partybuild.util.StringUtils;
  11. import com.ghsc.partybuild.vo.*;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Propagation;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import reactor.core.Exceptions;
  18. import java.math.BigDecimal;
  19. import java.util.*;
  20. import java.util.stream.Collectors;
  21. /**
  22. * 宣传阵地管理、职工思想动态分析、领导人员5+3管理、党费管理、党组织经费管理
  23. *
  24. * @author pj
  25. */
  26. @Service("publicityService")
  27. public class PublicityServiceImpl implements PublicityService {
  28. @Autowired
  29. private AppConfig appConfig;
  30. @Autowired
  31. private PublicityCQuery publicityCQuery;
  32. @Autowired
  33. private StringUtils stringUtils;
  34. @Autowired
  35. private PeJoinuserMapper peJoinuserMapper;
  36. @Autowired
  37. private MapUtils mapUtils;
  38. @Autowired
  39. private DictionaryService dictionaryService;
  40. @Autowired
  41. private DateUtils dateUtils;
  42. @Autowired
  43. private PubPublicitypositionMapper pubPublicitypositionMapper;
  44. @Autowired
  45. private PubPublicitypositionPanelMapper pubPublicitypositionPanelMapper;
  46. @Autowired
  47. private UsUserthoughtMapper usUserthoughtMapper;
  48. @Autowired
  49. private UsUserthoughttotalMapper usUserthoughttotalMapper;
  50. @Autowired
  51. private UsUserleaderMapper usUserleaderMapper;
  52. @Autowired
  53. private UsPartyduesMapper usPartyduesMapper;
  54. @Autowired
  55. private UsPartyduesDetailMapper usPartyduesDetailMapper;
  56. @Autowired
  57. private UsPartyoutlayMapper usPartyoutlayMapper;
  58. @Autowired
  59. private PartyCQuery partyCQuery;
  60. @Autowired
  61. private PartyUserService partyUserService;
  62. @Autowired
  63. private DjFundsincomeMapper fundsincomeMapper;
  64. @Autowired
  65. private ZzZzqkxxMapper zzZzqkxxMapper;
  66. @Autowired
  67. private ZzRyjbxxMapper zzRyjbxxMapper;
  68. @Autowired
  69. private PartyUserCQuery partyUserCquery;
  70. @Autowired
  71. private PartyService partyService;
  72. @Autowired
  73. private UsUserleaderDetailMapper usUserleaderDetailMapper;
  74. @Autowired
  75. private RsRyjbxxfbMapper rsRyjbxxfbMapper;
  76. @Autowired
  77. private PayOrderService payOrderService;
  78. //region 宣传阵地管理
  79. /**
  80. * @param page
  81. * @param rows
  82. * @param partyCode
  83. * @param positionName
  84. * @param positionType
  85. * @param positionLevel
  86. * @param address
  87. * @param beginTime
  88. * @param endTime
  89. * @param positionState
  90. * @param headUserName
  91. * @param zzfbType
  92. * @return
  93. */
  94. @Override
  95. public PageInfo<HashMap<String, Object>> getPublicityList(int page, int rows, String partyCode, String positionName, List<Integer> positionType, List<Integer> positionLevel, String address, String beginTime, String endTime, List<Integer> positionState, String headUserName, Integer zzfbType) {
  96. List<CfDictionary> dic_positionType = dictionaryService.getDictionaryListByDicTypeKey("positionType");
  97. List<CfDictionary> dic_positionLevel = dictionaryService.getDictionaryListByDicTypeKey("psiLevel");
  98. List<CfDictionary> dic_positionState = dictionaryService.getDictionaryListByDicTypeKey("positionState");
  99. PageHelper.startPage(page, rows);
  100. List<HashMap<String, Object>> list = publicityCQuery.selectPublicityList(partyCode, positionName, positionType, positionLevel, address, beginTime, endTime, positionState, headUserName, zzfbType);
  101. for (HashMap<String, Object> item : list) {
  102. if (item.get("POSITIONTYPE") != null) {
  103. item.put("POSITIONTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("POSITIONTYPE").toString()), dic_positionType).getDicvalue());
  104. }
  105. if (item.get("POSITIONLEVEL") != null) {
  106. item.put("POSITIONLEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("POSITIONLEVEL").toString()), dic_positionLevel).getDicvalue());
  107. }
  108. if (item.get("POSITIONSTATE") != null) {
  109. item.put("POSITIONSTATENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("POSITIONSTATE").toString()), dic_positionState).getDicvalue());
  110. }
  111. }
  112. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  113. return result;
  114. }
  115. /**
  116. * @param id
  117. * @return
  118. */
  119. @Override
  120. public PubPublicityposition getPublicityPositionById(String id) {
  121. return pubPublicitypositionMapper.selectByPrimaryKey(id);
  122. }
  123. /**
  124. * @param model
  125. * @param userId
  126. * @param userName
  127. * @return
  128. */
  129. @Override
  130. public int savePublicityPosition(PubPublicityposition model, String userId, String userName) {
  131. int result = 0;
  132. PubPublicityposition dbModel = getPublicityPositionById(model.getPublicitypositionid());
  133. if (dbModel == null || (model != null && stringUtils.IsNullOrEmpty(model.getPublicitypositionid()))) {
  134. model.setCreatetime(new Date());
  135. model.setCreateuserid(userId);
  136. model.setCreateusername(userName);
  137. model.setOperatestate("A");
  138. model.setOperatetime(new Date());
  139. model.setSyncstate("N");
  140. result = pubPublicitypositionMapper.insert(model);
  141. } else {
  142. model.setUpdatetime(new Date());
  143. model.setUpdateuserid(userId);
  144. model.setUpdateusername(userName);
  145. model.setOperatestate("M");
  146. model.setOperatetime(new Date());
  147. model.setSyncstate("N");
  148. result = pubPublicitypositionMapper.updateByPrimaryKey(model);
  149. }
  150. return result;
  151. }
  152. /**
  153. * @param id
  154. * @return
  155. */
  156. @Override
  157. public int deletePublicityPositionById(String id) {
  158. PubPublicitypositionPanelExample exp = new PubPublicitypositionPanelExample();
  159. PubPublicitypositionPanelExample.Criteria cri = exp.or();
  160. cri.andPublicitypositionidEqualTo(id);
  161. pubPublicitypositionPanelMapper.deleteByExample(exp);
  162. return pubPublicitypositionMapper.deleteByPrimaryKey(id);
  163. }
  164. @Override
  165. public int deletePanel(String id) {
  166. return pubPublicitypositionPanelMapper.deleteByPrimaryKey(id);
  167. }
  168. /**
  169. * @param page
  170. * @param rows
  171. * @param publicityPositionId
  172. * @param partyCode
  173. * @return
  174. */
  175. @Override
  176. public PageInfo<HashMap<String, Object>> getPublicityPanelRecordList(int page, int rows, String publicityPositionId, String partyCode) {
  177. List<CfDictionary> dic_panelCycle = dictionaryService.getDictionaryListByDicTypeKey("panelCycle");
  178. List<CfDictionary> dic_panelState = dictionaryService.getDictionaryListByDicTypeKey("panelState");
  179. PageHelper.startPage(page, rows);
  180. List<HashMap<String, Object>> list = publicityCQuery.selectPublicityPanelRecordList(publicityPositionId, partyCode);
  181. for (HashMap<String, Object> item : list) {
  182. if (item.get("PANELCYCLE") != null) {
  183. item.put("PANELCYCLENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("PANELCYCLE").toString()), dic_panelCycle).getDicvalue());
  184. }
  185. if (item.get("PANELSTATE") != null) {
  186. item.put("PANELSTATENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("PANELSTATE").toString()), dic_panelState).getDicvalue());
  187. }
  188. }
  189. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  190. return result;
  191. }
  192. /**
  193. * @param id
  194. * @return
  195. */
  196. @Override
  197. public PubPublicitypositionPanel getPublicityPositionPanelById(String id) {
  198. return pubPublicitypositionPanelMapper.selectByPrimaryKey(id);
  199. }
  200. /**
  201. * @param model
  202. * @param userId
  203. * @param userName
  204. * @return
  205. */
  206. @Override
  207. public int savePublicityPanel(PubPublicitypositionPanel model, String userId, String userName) {
  208. int result = 0;
  209. PubPublicitypositionPanel dbModel = getPublicityPositionPanelById(model.getPanelid());
  210. if (dbModel == null || (model != null && stringUtils.IsNullOrEmpty(model.getPanelid()))) {
  211. model.setCreatetime(new Date());
  212. model.setPanelstate(0);//待审核
  213. model.setCreateuserid(userId);
  214. model.setCreateusername(userName);
  215. model.setOperatestate("A");
  216. model.setOperatetime(new Date());
  217. model.setSyncstate("N");
  218. result = pubPublicitypositionPanelMapper.insert(model);
  219. } else {
  220. model.setUpdatetime(new Date());
  221. model.setUpdateuserid(userId);
  222. model.setUpdateusername(userName);
  223. model.setOperatestate("M");
  224. model.setOperatetime(new Date());
  225. model.setSyncstate("N");
  226. result = pubPublicitypositionPanelMapper.updateByPrimaryKey(model);
  227. }
  228. return result;
  229. }
  230. /**
  231. * @param panelId
  232. * @param isPass
  233. * @param userId
  234. * @param userName
  235. * @return
  236. */
  237. @Override
  238. public int approvePanel(String panelId, boolean isPass, String userId, String userName) {
  239. PubPublicitypositionPanel dbModel = getPublicityPositionPanelById(panelId);
  240. dbModel.setPanelstate(isPass ? 1 : 2);
  241. dbModel.setUpdatetime(new Date());
  242. dbModel.setUpdateuserid(userId);
  243. dbModel.setUpdateusername(userName);
  244. dbModel.setOperatestate("M");
  245. dbModel.setOperatetime(new Date());
  246. dbModel.setSyncstate("N");
  247. return pubPublicitypositionPanelMapper.updateByPrimaryKey(dbModel);
  248. }
  249. /**
  250. * @param page
  251. * @param rows
  252. * @param partyCode
  253. * @param positionName
  254. * @param positionType
  255. * @param positionLevel
  256. * @param address
  257. * @param beginTime
  258. * @param endTime
  259. * @param positionState
  260. * @param headUserName
  261. * @param panelState
  262. * @param isExpired
  263. * @param zzfbType
  264. * @param updateTime_bt
  265. * @param updateTime_et
  266. * @return
  267. */
  268. @Override
  269. public PageInfo<HashMap<String, Object>> getPublicityPanelList(int page, int rows, String partyCode, String positionName, Integer positionType, Integer positionLevel, String address, String beginTime, String endTime, Integer positionState, String headUserName,
  270. Integer panelState, Integer isExpired, Integer zzfbType, String updateTime_bt, String updateTime_et) {
  271. List<CfDictionary> dic_positionType = dictionaryService.getDictionaryListByDicTypeKey("positionType");
  272. List<CfDictionary> dic_positionLevel = dictionaryService.getDictionaryListByDicTypeKey("positionLevel");
  273. List<CfDictionary> dic_positionState = dictionaryService.getDictionaryListByDicTypeKey("positionState");
  274. PageHelper.startPage(page, rows);
  275. List<HashMap<String, Object>> list = publicityCQuery.selectPublicityPanelList(partyCode, positionName, positionType, positionLevel, address, beginTime, endTime, positionState, headUserName, panelState, isExpired, zzfbType, updateTime_bt, updateTime_et);
  276. for (HashMap<String, Object> item : list) {
  277. if (item.get("POSITIONTYPE") != null) {
  278. item.put("POSITIONTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("POSITIONTYPE").toString()), dic_positionType).getDicvalue());
  279. }
  280. if (item.get("POSITIONLEVEL") != null) {
  281. item.put("POSITIONLEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("POSITIONLEVEL").toString()), dic_positionLevel).getDicvalue());
  282. }
  283. if (item.get("POSITIONSTATE") != null) {
  284. item.put("POSITIONSTATENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("POSITIONSTATE").toString()), dic_positionState).getDicvalue());
  285. }
  286. }
  287. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  288. return result;
  289. }
  290. //endregion
  291. //region 职工思想动态分析
  292. /**
  293. * @param page
  294. * @param rows
  295. * @param partyCode
  296. * @param thoughtType
  297. * @param questionType
  298. * @param userName
  299. * @param beginTime
  300. * @param endTime
  301. * @param handleType
  302. * @param destroyType
  303. * @param handleState
  304. * @param zzfbType
  305. * @return
  306. */
  307. @Override
  308. public PageInfo<HashMap<String, Object>> getUserThoughtList(int page, int rows, String partyCode, Integer thoughtType, Integer questionType, String userName, String beginTime,
  309. String endTime, Integer handleType, Integer destroyType, Integer handleState, Integer zzfbType) {
  310. List<CfDictionary> dic_thoughtType = dictionaryService.getDictionaryListByDicTypeKey("thoughtType");
  311. List<CfDictionary> dic_questionType = dictionaryService.getDictionaryListByDicTypeKey("questionType");
  312. List<CfDictionary> dic_handleType = dictionaryService.getDictionaryListByDicTypeKey("handleType");
  313. List<CfDictionary> dic_destroyType = dictionaryService.getDictionaryListByDicTypeKey("destroyType");
  314. List<CfDictionary> dic_handleState = dictionaryService.getDictionaryListByDicTypeKey("handleState");
  315. PageHelper.startPage(page, rows);
  316. List<HashMap<String, Object>> list = publicityCQuery.selectUserThoughtList(partyCode, thoughtType, questionType, userName, beginTime, endTime, handleType, destroyType, handleState, zzfbType);
  317. for (HashMap<String, Object> item : list) {
  318. if (item.get("THOUGHTTYPE") != null) {
  319. item.put("THOUGHTTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("THOUGHTTYPE").toString()), dic_thoughtType).getDicvalue());
  320. }
  321. if (item.get("QUESTIONTYPE") != null) {
  322. item.put("QUESTIONTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("QUESTIONTYPE").toString()), dic_questionType).getDicvalue());
  323. }
  324. if (item.get("HANDLETYPE") != null) {
  325. item.put("HANDLETYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("HANDLETYPE").toString()), dic_handleType).getDicvalue());
  326. }
  327. if (item.get("DESTROYTYPE") != null) {
  328. item.put("DESTROYTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DESTROYTYPE").toString()), dic_destroyType).getDicvalue());
  329. }
  330. if (item.get("HANDLESTATE") != null) {
  331. item.put("HANDLESTATENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("HANDLESTATE").toString()), dic_handleState).getDicvalue());
  332. }
  333. }
  334. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  335. return result;
  336. }
  337. /**
  338. * @param id
  339. * @return
  340. */
  341. @Override
  342. public UsUserthought getUserthoughtById(String id) {
  343. return usUserthoughtMapper.selectByPrimaryKey(id);
  344. }
  345. /**
  346. * @param model
  347. * @param userId
  348. * @param userName
  349. * @return
  350. */
  351. @Override
  352. public int saveUserthought(UsUserthought model, String userId, String userName) {
  353. int result = 0;
  354. UsUserthought dbModel = getUserthoughtById(model.getUserthoughtid());
  355. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getUserthoughtid()))) {
  356. model.setCreatetime(new Date());
  357. model.setCreateuserid(userId);
  358. model.setCreateusername(userName);
  359. model.setOperatestate("A");
  360. model.setOperatetime(new Date());
  361. model.setSyncstate("N");
  362. result = usUserthoughtMapper.insert(model);
  363. } else {
  364. model.setUpdatetime(new Date());
  365. model.setUpdateuserid(userId);
  366. model.setUpdateusername(userName);
  367. model.setOperatestate("M");
  368. model.setOperatetime(new Date());
  369. model.setSyncstate("N");
  370. result = usUserthoughtMapper.updateByPrimaryKey(model);
  371. }
  372. return result;
  373. }
  374. /**
  375. * @param id
  376. * @return
  377. */
  378. @Override
  379. public int deleteUserthoughtById(String id) {
  380. return usUserthoughtMapper.deleteByPrimaryKey(id);
  381. }
  382. /**
  383. * @param page
  384. * @param rows
  385. * @param partyCode
  386. * @param month
  387. * @param writeUser
  388. * @param zzfbType
  389. * @return
  390. */
  391. @Override
  392. public PageInfo<HashMap<String, Object>> getUserThoughtTotalList(int page, int rows, String partyCode, Integer month, String writeUser, Integer zzfbType) {
  393. PageHelper.startPage(page, rows);
  394. List<HashMap<String, Object>> list = publicityCQuery.selectUserThoughtTotalList(partyCode, month, writeUser, zzfbType);
  395. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  396. return result;
  397. }
  398. /**
  399. * @param id
  400. * @return
  401. */
  402. @Override
  403. public UsUserthoughttotal getUserthoughtTotalById(String id) {
  404. return usUserthoughttotalMapper.selectByPrimaryKey(id);
  405. }
  406. /**
  407. * @param model
  408. * @param userId
  409. * @param userName
  410. * @return
  411. */
  412. @Override
  413. public int savetUserthoughtTotal(UsUserthoughttotal model, String userId, String userName) {
  414. int result = 0;
  415. UsUserthoughttotal dbModel = getUserthoughtTotalById(model.getUserthoughttotalid());
  416. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getUserthoughttotalid()))) {
  417. model.setCreatetime(new Date());
  418. model.setCreateuserid(userId);
  419. model.setCreateusername(userName);
  420. model.setOperatestate("A");
  421. model.setOperatetime(new Date());
  422. model.setSyncstate("N");
  423. result = usUserthoughttotalMapper.insert(model);
  424. } else {
  425. model.setUpdatetime(new Date());
  426. model.setUpdateuserid(userId);
  427. model.setUpdateusername(userName);
  428. model.setOperatestate("M");
  429. model.setOperatetime(new Date());
  430. model.setSyncstate("N");
  431. result = usUserthoughttotalMapper.updateByPrimaryKeyWithBLOBs(model);
  432. }
  433. return result;
  434. }
  435. /**
  436. * @param id
  437. * @return
  438. */
  439. @Override
  440. public int deletetUserthoughtTotalById(String id) {
  441. return usUserthoughttotalMapper.deleteByPrimaryKey(id);
  442. }
  443. /**
  444. * @param page
  445. * @param rows
  446. * @param partyCode
  447. * @param year
  448. * @param month
  449. * @return
  450. */
  451. @Override
  452. public PageInfo<HashMap<String, Object>> getThoughtTotal(int page, int rows, String partyCode, Integer year, Integer month) {
  453. PageHelper.startPage(page, rows);
  454. List<HashMap<String, Object>> list = publicityCQuery.selectThoughtTotal(partyCode, year, month);
  455. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  456. return result;
  457. }
  458. /**
  459. * @param page
  460. * @param rows
  461. * @param partyCode
  462. * @param year
  463. * @return
  464. */
  465. @Override
  466. public PageInfo<HashMap<String, Object>> getThoughtSummary(int page, int rows, String partyCode, Integer year) {
  467. PageHelper.startPage(page, rows);
  468. List<HashMap<String, Object>> list = publicityCQuery.selectThoughtSummary(partyCode, year);
  469. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  470. return result;
  471. }
  472. //endregion
  473. // region 领导人员5+3管理
  474. /**
  475. * 领导人员5+3管理
  476. */
  477. @Override
  478. public PageInfo<HashMap<String, Object>> getUserLeaderList(int page, int rows, String partyCode, String userName, Integer leaderType, String beginTime,
  479. String endTime, Integer zzfbType, String rybm) {
  480. List<CfDictionary> dic_leaderType = dictionaryService.getDictionaryListByDicTypeKey("leaderType");
  481. PageHelper.startPage(page, rows);
  482. List<HashMap<String, Object>> list = publicityCQuery.selectUserLeaderList(partyCode, userName, leaderType, beginTime, endTime, zzfbType, rybm);
  483. for (HashMap<String, Object> item : list) {
  484. if (item.get("LEADERTYPE") != null) {
  485. item.put("LEADERTYPENAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("LEADERTYPE").toString()), dic_leaderType).getDicvalue());
  486. }
  487. }
  488. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  489. return result;
  490. }
  491. /**
  492. * @param id
  493. * @return
  494. */
  495. @Override
  496. public UsUserleader getUserLeaderById(String id) {
  497. return usUserleaderMapper.selectByPrimaryKey(id);
  498. }
  499. /**
  500. * @param model
  501. * @param userId
  502. * @param userName
  503. * @return
  504. */
  505. @Override
  506. @Transactional(rollbackFor = Exception.class)
  507. public int saveUserLeader(UsUserleader model, List<UsUserleaderDetail> userList, String userId, String userName) {
  508. int result = 0;
  509. boolean isAdd = false;
  510. UsUserleader dbModel = getUserLeaderById(model.getUserleaderid());
  511. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getUserleaderid()))) {
  512. model.setCreatetime(new Date());
  513. model.setCreateuserid(userId);
  514. model.setCreateusername(userName);
  515. model.setOperatestate("A");
  516. model.setOperatetime(new Date());
  517. model.setSyncstate("N");
  518. result = usUserleaderMapper.insert(model);
  519. isAdd = true;
  520. } else {
  521. model.setUpdatetime(new Date());
  522. model.setUpdateuserid(userId);
  523. model.setUpdateusername(userName);
  524. model.setOperatestate("M");
  525. model.setOperatetime(new Date());
  526. model.setSyncstate("N");
  527. result = usUserleaderMapper.updateByPrimaryKeyWithBLOBs(model);
  528. }
  529. UsUserleaderDetailExample exp = new UsUserleaderDetailExample();
  530. UsUserleaderDetailExample.Criteria cri = exp.or().andUserleaderidEqualTo(model.getUserleaderid());
  531. usUserleaderDetailMapper.deleteByExample(exp);
  532. if (userList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getUsercode()) && it.getUsercode().equals(model.getUsercode())).collect(Collectors.toList()).size() <= 0) {
  533. UsUserleaderDetail detail = new UsUserleaderDetail();
  534. detail.setUsercode(model.getUsercode());
  535. detail.setUsername(model.getUsername());
  536. userList.add(detail);
  537. }
  538. userList.forEach(item -> {
  539. if (!model.getUsercode().equals(item.getUsercode())) {
  540. item.setDetailid(UUID.randomUUID().toString());
  541. item.setUserleaderid(model.getUserleaderid());
  542. item.setCreatetime(new Date());
  543. item.setCreateuserid(userId);
  544. item.setCreateusername(userName);
  545. item.setOperatestate("A");
  546. item.setOperatetime(new Date());
  547. item.setSyncstate("N");
  548. usUserleaderDetailMapper.insert(item);
  549. }
  550. });
  551. if (isAdd && model.getLeadertype().equals(3)) {
  552. userList.stream().filter(it -> !it.getUsercode().equals(model.getUsercode())).collect(Collectors.toList()).forEach(it -> {
  553. RsRyjbxxfb rsRyjbxxfb = rsRyjbxxfbMapper.selectByPrimaryKey(it.getUsercode());
  554. if (rsRyjbxxfb != null && rsRyjbxxfb.getSfsldry().equals(1)) {
  555. UsUserleader usUserleader = model;
  556. usUserleader.setUserleaderid(UUID.randomUUID().toString());
  557. usUserleader.setUsercode(it.getUsercode());
  558. usUserleader.setUsername(it.getUsername());
  559. usUserleader.setCreatetime(new Date());
  560. usUserleader.setCreateuserid(userId);
  561. usUserleader.setCreateusername(userName);
  562. usUserleader.setOperatestate("A");
  563. usUserleader.setOperatetime(new Date());
  564. usUserleader.setSyncstate("N");
  565. usUserleaderMapper.insert(usUserleader);
  566. userList.forEach(item -> {
  567. if (!usUserleader.getUsercode().equals(item.getUsercode())) {
  568. item.setDetailid(UUID.randomUUID().toString());
  569. item.setUserleaderid(usUserleader.getUserleaderid());
  570. item.setCreatetime(new Date());
  571. item.setCreateuserid(userId);
  572. item.setCreateusername(userName);
  573. item.setOperatestate("A");
  574. item.setOperatetime(new Date());
  575. item.setSyncstate("N");
  576. usUserleaderDetailMapper.insert(item);
  577. }
  578. });
  579. }
  580. });
  581. }
  582. return result;
  583. }
  584. @Override
  585. public int saveUserLeaderList(List<UsUserleader> modelList, String userId, String userName) {
  586. int result = 0;
  587. for (UsUserleader item : modelList) {
  588. UsUserleader dbModel = getUserLeaderById(item.getUserleaderid());
  589. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getUserleaderid()))) {
  590. item.setUserleaderid(UUID.randomUUID().toString());
  591. item.setCreatetime(new Date());
  592. item.setCreateuserid(userId);
  593. item.setCreateusername(userName);
  594. item.setOperatestate("A");
  595. item.setOperatetime(new Date());
  596. item.setSyncstate("N");
  597. result = usUserleaderMapper.insert(item);
  598. } else {
  599. item.setUpdatetime(new Date());
  600. item.setUpdateuserid(userId);
  601. item.setUpdateusername(userName);
  602. item.setOperatestate("M");
  603. item.setOperatetime(new Date());
  604. item.setSyncstate("N");
  605. result = usUserleaderMapper.updateByPrimaryKeyWithBLOBs(item);
  606. }
  607. }
  608. return result;
  609. }
  610. /**
  611. * @param id
  612. * @return
  613. */
  614. @Override
  615. public int deleteUserLeaderById(String id) {
  616. UsUserleaderDetailExample exp = new UsUserleaderDetailExample();
  617. UsUserleaderDetailExample.Criteria cri = exp.or().andUserleaderidEqualTo(id);
  618. usUserleaderDetailMapper.deleteByExample(exp);
  619. return usUserleaderMapper.deleteByPrimaryKey(id);
  620. }
  621. @Override
  622. public List<HashMap<String, Object>> getUserleaderDetailList(String id) {
  623. return publicityCQuery.selectUserleaderDetailList(id);
  624. }
  625. /**
  626. * 统计领导人员5+3情况
  627. */
  628. @Override
  629. public PageInfo<HashMap<String, Object>> getUserLeaderTotalList(int page, int rows, String partyCode, String userName, String beginTime,
  630. String endTime, Integer partyLength) {
  631. PageHelper.startPage(page, rows);
  632. List<HashMap<String, Object>> list = publicityCQuery.selectUserLeaderTotalList(partyCode, userName, beginTime, endTime, partyLength);
  633. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  634. return result;
  635. }
  636. @Override
  637. public List<UserLeaderVo> importUserLeader(List<UserLeaderVo> userList, String userId, String userName) throws Exception {
  638. List<UserLeaderVo> errorList = new ArrayList<>();
  639. List<UsUserleader> usUserleaderList = new ArrayList<>();
  640. ZzZzqkxx dwModel = null;
  641. //个人所属党委
  642. HashMap<String, Object> userInfo = partyUserService.getPartyUserInfoByRybm(userId);
  643. if (userInfo != null && userInfo.get("SZDZBDM") != null) {
  644. dwModel = partyService.getUserDwInfo(userInfo.get("SZDZBDM").toString());
  645. }
  646. if (dwModel == null || stringUtils.IsNullOrEmpty(dwModel.getDzzdm())) {
  647. throw new Exception("个人所属党委获取失败");
  648. }
  649. List<String> names = userList.stream().map(it -> it.getUserName().trim().concat(it.getPartyName().trim())).collect(Collectors.toList());
  650. //List<String> partys = userList.stream().map(it -> it.getPartyName().trim()).collect(Collectors.toList());
  651. List<HashMap<String, Object>> users = partyUserCquery.selectUserListByName(names);
  652. //ZzZzqkxxExample exp = new ZzZzqkxxExample();
  653. //ZzZzqkxxExample.Criteria cri = exp.or().andDzzmcIn(partys);
  654. //List<ZzZzqkxx> zzZzqkxxList = zzZzqkxxMapper.selectByExample(exp);
  655. List<CfDictionary> dic_leaderType = dictionaryService.getDictionaryListByDicTypeKey("leaderType");
  656. for (int i = 0; i < userList.size(); i++) {
  657. UsUserleader model = new UsUserleader();
  658. UserLeaderVo item = userList.get(i);
  659. String errorInfo = "";
  660. if (stringUtils.IsNullOrEmpty(item.getUserName())) {
  661. errorInfo += "请填写姓名!";
  662. }
  663. if (stringUtils.IsNullOrEmpty(item.getPartyName())) {
  664. errorInfo += "请填写所在支部!";
  665. }
  666. if (stringUtils.IsNullOrEmpty(item.getLeadertype())) {
  667. errorInfo += "请选择类别!";
  668. }
  669. if (stringUtils.IsNullOrEmpty(item.getLeadertime())) {
  670. errorInfo += "请填写时间!";
  671. }
  672. if (stringUtils.IsNullOrEmpty(errorInfo)) {
  673. /*List<ZzZzqkxx> party = zzZzqkxxList.stream().filter(it -> it.getDzzmc().equals(item.getPartyName())).collect(Collectors.toList());
  674. if (party.size() <= 0) {
  675. errorInfo += "所在支部匹配失败!";
  676. } else {
  677. item.setPartyCode(party.get(0).getDzzdm());
  678. List<HashMap<String, Object>> user = users.stream().filter(it -> it.get("XM").toString().equals(item.getUserName()) && it.get("SZDZBDM").toString().equals(item.getPartyCode())).collect(Collectors.toList());
  679. if (user.size() <= 0) {
  680. errorInfo += "姓名匹配失败!";
  681. } else {
  682. item.setUserCode(user.get(0).get("RYBM").toString());
  683. }
  684. }*/
  685. List<HashMap<String, Object>> user = users.stream().filter(it -> it.get("XM").toString().equals(item.getUserName().trim()) && it.get("DZZMC").toString().equals(item.getPartyName().trim())).collect(Collectors.toList());
  686. if (user.size() <= 0) {
  687. errorInfo += "姓名支部匹配失败!";
  688. } else {
  689. item.setUserCode(user.get(0).get("RYBM").toString());
  690. item.setPartyCode(user.get(0).get("SZDZBDM").toString());
  691. }
  692. try {
  693. Date leaderTime = dateUtils.StrToDate(item.getLeadertime(), "yyyy-MM-dd");
  694. if (leaderTime == null) {
  695. throw new Exception("");
  696. }
  697. model.setLeadertime(leaderTime);
  698. } catch (Exception ex) {
  699. errorInfo += "时间格式错误!";
  700. }
  701. try {
  702. Integer leaderType = Integer.parseInt(dic_leaderType.stream().filter(it -> it.getDicvalue().equals(item.getLeadertype())).collect(Collectors.toList()).get(0).getDickey().toString());
  703. model.setLeadertype(leaderType);
  704. } catch (Exception ex) {
  705. errorInfo += "类别匹配失败!";
  706. }
  707. }
  708. if (!stringUtils.IsNullOrEmpty(errorInfo)) {
  709. item.setErrorInfo("第" + (i + 1) + "行," + errorInfo);
  710. errorList.add(item);
  711. } else {
  712. model.setUserleaderid(UUID.randomUUID().toString());
  713. model.setUsercode(item.getUserCode());
  714. model.setUsername(item.getUserName());
  715. model.setPartycode(dwModel.getDzzdm());
  716. model.setPartyname(dwModel.getDzzmc());
  717. model.setAddress(item.getAddress());
  718. model.setContent(item.getContent());
  719. model.setCreatetime(new Date());
  720. model.setCreateuserid(userId);
  721. model.setCreateusername(userName);
  722. model.setOperatestate("A");
  723. model.setOperatetime(new Date());
  724. model.setSyncstate("N");
  725. usUserleaderList.add(model);
  726. }
  727. }
  728. if (errorList.size() <= 0) {
  729. usUserleaderList.forEach(item -> {
  730. usUserleaderMapper.insert(item);
  731. });
  732. }
  733. return errorList;
  734. }
  735. //endregion
  736. //region 党费管理
  737. /**
  738. *
  739. */
  740. @Override
  741. public PageInfo<HashMap<String, Object>> getPartyDuesList(int page, int rows, String partyCode, Integer year, String userName, Integer zzfbType, Integer isStudent) {
  742. PageHelper.startPage(page, rows);
  743. List<HashMap<String, Object>> dataList = publicityCQuery.selectPartyDuesList(partyCode, year, userName, zzfbType, isStudent);
  744. PageInfo<HashMap<String, Object>> result = new PageInfo(dataList);
  745. List<String> partyDuesIdList = dataList.stream().filter(it -> it.get("PARTYDUESID") != null).map(it -> it.get("PARTYDUESID").toString()).collect(Collectors.toList());
  746. List<HashMap<String, Object>> detailList = new ArrayList<>();
  747. if (partyDuesIdList.size() > 0) {
  748. detailList = publicityCQuery.selectPartyDuesDetailList(year, null, null, null, partyDuesIdList);
  749. }
  750. for (HashMap<String, Object> item : dataList) {
  751. /**查询缴费**/
  752. List<HashMap<String, Object>> dList = detailList.stream().filter(d -> d.get("PARTYDUESID").equals(item.get("PARTYDUESID"))).collect(Collectors.toList());
  753. for (int i = 1; i <= 12; i++) {
  754. String key = Integer.toString(i);
  755. String money = "";
  756. String keyName = "";
  757. switch (i) {
  758. case 1:
  759. keyName = "Jan";
  760. break;
  761. case 2:
  762. keyName = "Feb";
  763. break;
  764. case 3:
  765. keyName = "Mar";
  766. break;
  767. case 4:
  768. keyName = "Apr";
  769. break;
  770. case 5:
  771. keyName = "May";
  772. break;
  773. case 6:
  774. keyName = "Jun";
  775. break;
  776. case 7:
  777. keyName = "Jul";
  778. break;
  779. case 8:
  780. keyName = "Aug";
  781. break;
  782. case 9:
  783. keyName = "Sept";
  784. break;
  785. case 10:
  786. keyName = "Oct";
  787. break;
  788. case 11:
  789. keyName = "Nov";
  790. break;
  791. case 12:
  792. keyName = "Dec";
  793. break;
  794. default:
  795. break;
  796. }
  797. List<HashMap<String, Object>> detail = dList.stream().filter(d -> d.get("MONTH").toString().equals(key)
  798. && item.get("yearMonth").toString().indexOf(year.toString() + String.format("%02d", Integer.parseInt(d.get("MONTH").toString()))) >= 0).collect(Collectors.toList());
  799. if (detail.size() > 0) {
  800. if (detail.get(0).get("MONEY") == null) {
  801. money = "";
  802. } else {
  803. money = new BigDecimal(detail.get(0).get("MONEY").toString()).stripTrailingZeros().toPlainString();
  804. }
  805. }
  806. item.put(keyName, money);
  807. }
  808. }
  809. return result;
  810. }
  811. /*@Override
  812. public List<HashMap<String, Object>> getPartyDuesTotal(String partyCode, Integer year, String userName, Integer zzfbType) {
  813. List<HashMap<String, Object>> dataList = publicityCQuery.selectPartyDuesTotal(partyCode, year, userName, zzfbType);
  814. return dataList;
  815. }*/
  816. /*@Override
  817. public BigDecimal getPartyDuesTotalMoney(String partyCode, Integer year, String userName, Integer zzfbType) {
  818. return publicityCQuery.selectPartyDuesTotalMoney(partyCode, year, userName, zzfbType);
  819. }*/
  820. /**
  821. * @param year
  822. * @param partyCode
  823. * @param month
  824. * @param partyDuesId
  825. * @return
  826. */
  827. @Override
  828. public List<HashMap<String, Object>> getPartyDuesDetailList(Integer year, String partyCode, Integer month, String partyDuesId) {
  829. return publicityCQuery.selectPartyDuesDetailList(year, partyCode, month, partyDuesId, null);
  830. }
  831. /**
  832. * @param partyCode
  833. * @param year
  834. * @return
  835. */
  836. @Override
  837. public List<HashMap<String, Object>> getPartyDuesUserList(String partyCode, Integer year) {
  838. return publicityCQuery.selectPartyDuesUserList(partyCode, year);
  839. }
  840. /**
  841. * @param userId
  842. * @param year
  843. * @return
  844. */
  845. @Override
  846. public UsPartydues getPartyduesByUserId(String userId, int year) {
  847. UsPartydues model = new UsPartydues();
  848. UsPartyduesExample exp = new UsPartyduesExample();
  849. UsPartyduesExample.Criteria cri = exp.or();
  850. cri.andUsercodeEqualTo(userId);
  851. cri.andYearEqualTo(year);
  852. List<UsPartydues> list = usPartyduesMapper.selectByExample(exp);
  853. if (list.size() > 0) {
  854. model = list.get(0);
  855. }
  856. return model;
  857. }
  858. /**
  859. * 初始化党员缴费基数(学生党员默认为0.2,一般不会去设置,需系统自动初始化,逻辑为:用户登录时进行检测,若未配置,则由系统初始化)
  860. *
  861. * @param userId
  862. * @param year
  863. * @param createUserId
  864. * @return
  865. */
  866. @Override
  867. public UsPartydues defaultPartyduesByUserId(String userId, int year, String createUserId) {
  868. PartyUserInfoVo userInfoVo = partyUserService.getUserInfo(userId);
  869. if (!(userInfoVo.getRyzt().equals("2") || userInfoVo.getRyzt().equals("3")))
  870. return null;
  871. UsPartydues uModel = getPartyduesByUserId(userId, year);
  872. if (uModel == null || (uModel != null && stringUtils.IsNullOrEmpty(uModel.getPartyduesid()))) {
  873. uModel = new UsPartydues();
  874. uModel.setPartyduesid(UUID.randomUUID().toString());
  875. uModel.setYear(year);
  876. uModel.setUsercode(userId);
  877. uModel.setUsername(userInfoVo.getXm());
  878. uModel.setPartycode(userInfoVo.getSzdzbdm());
  879. uModel.setPartyname(userInfoVo.getDzzmc());
  880. uModel.setCreateuserid(createUserId);
  881. uModel.setCreatetime(new Date());
  882. if (userInfoVo.getIsStudent() != null && userInfoVo.getIsStudent() == true)
  883. uModel.setMoney(new BigDecimal(0.2));
  884. uModel.setOperatetime(new Date());
  885. uModel.setOperatestate("A");
  886. uModel.setSyncstate("N");
  887. /*usPartyduesMapper.insert(uModel);*/
  888. }
  889. //添加明细
  890. /*for (int i = 1; i <= 12; i++) {
  891. UsPartyduesDetail detail = getPartyduesDetailByUserId(uModel.getPartyduesid(), i);
  892. if (detail == null || (detail != null && stringUtils.IsNullOrEmpty(detail.getDetailid()))) {
  893. detail = new UsPartyduesDetail();
  894. detail.setDetailid(UUID.randomUUID().toString());
  895. detail.setPartyduesid(uModel.getPartyduesid());
  896. detail.setCreatetime(new Date());
  897. detail.setCreateuserid(createUserId);
  898. detail.setMoney(uModel.getMoney());
  899. detail.setMonth(i);
  900. detail.setOperatetime(new Date());
  901. detail.setOperatestate("A");
  902. detail.setSyncstate("N");
  903. *//*detail.setPaystate(0);//未缴费*//*
  904. usPartyduesDetailMapper.insert(detail);
  905. }
  906. }*/
  907. return uModel;
  908. }
  909. /**
  910. * @param id
  911. * @return
  912. */
  913. @Override
  914. public UsPartydues getPartyduesById(String id) {
  915. return usPartyduesMapper.selectByPrimaryKey(id);
  916. }
  917. @Override
  918. public Integer updatePartyduesPayState(String detailId, String outTradeNo, String userId) throws Exception {
  919. Integer result = 0;
  920. if (stringUtils.IsNullOrEmpty(detailId) && !stringUtils.IsNullOrEmpty(outTradeNo)) {
  921. CfPayorder cfPayorder = payOrderService.getPayorderByNo(outTradeNo);
  922. detailId = cfPayorder != null ? cfPayorder.getPayRelId() : null;
  923. }
  924. if (stringUtils.IsNullOrEmpty(detailId))
  925. throw new Exception("未查询到当月党费");
  926. UsPartyduesDetail detail = usPartyduesDetailMapper.selectByPrimaryKey(detailId);
  927. UsPartydues usPartydues = usPartyduesMapper.selectByPrimaryKey(detail.getPartyduesid());
  928. //PartyUserInfoVo userInfoVo = partyUserService.getUserInfo(usPartydues.getUsercode());
  929. if (detail == null)
  930. throw new Exception("未查询到当月党费");
  931. if (detail.getPaystate() == null || detail.getPaystate().equals(0)) {
  932. if (detail.getPaystate() == null)
  933. detail.setPaystate(0);//待缴费
  934. detail.setUpdatetime(new Date());
  935. detail.setUpdateuserid(userId);
  936. /*if (userInfoVo != null)
  937. detail.setPartycode(userInfoVo.getSzdzbdm());*/
  938. result = usPartyduesDetailMapper.updateByPrimaryKey(detail);
  939. syncPartyDuesWxPayState(detailId);
  940. } else {
  941. throw new Exception("当前月党费已缴");
  942. }
  943. return result;
  944. }
  945. /**
  946. * @param year
  947. * @param userCode
  948. * @return
  949. */
  950. @Override
  951. public List<HashMap<String, Object>> getPartyDuesUserMonthList(Integer year, String userCode) {
  952. return publicityCQuery.selectPartyDuesUserMonthList(year, userCode);
  953. }
  954. /**
  955. * @param partyduesId
  956. * @param month
  957. * @return
  958. */
  959. public UsPartyduesDetail getPartyduesDetailByUserId(String partyduesId, int month) {
  960. UsPartyduesDetail model = new UsPartyduesDetail();
  961. UsPartyduesDetailExample exp = new UsPartyduesDetailExample();
  962. UsPartyduesDetailExample.Criteria cri = exp.or();
  963. cri.andPartyduesidEqualTo(partyduesId);
  964. cri.andMonthEqualTo(month);
  965. List<UsPartyduesDetail> list = usPartyduesDetailMapper.selectByExample(exp);
  966. if (list.size() > 0) {
  967. model = list.get(0);
  968. }
  969. return model;
  970. }
  971. /**
  972. * 保存党员党费基数
  973. *
  974. * @param model
  975. * @param userId
  976. * @param userName
  977. * @return
  978. */
  979. @Override
  980. public int savePartyDuesUser(UsPartydues model, String userId, String userName, List<UsPartyduesDetail> monthList) {
  981. int result = 0;
  982. String dzzdm = partyUserService.getUserDzzdm(model.getUsercode());
  983. UsPartydues dbModel = getPartyduesByUserId(model.getUsercode(), model.getYear());
  984. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getPartyduesid()))) {
  985. dbModel = model;
  986. dbModel.setCreatetime(new Date());
  987. dbModel.setCreateuserid(userId);
  988. dbModel.setCreateusername(userName);
  989. //同步数据
  990. dbModel.setOperatestate("A");
  991. dbModel.setOperatetime(new Date());
  992. dbModel.setSyncstate("N");
  993. result = usPartyduesMapper.insert(dbModel);
  994. } else {
  995. dbModel.setMoney(model.getMoney());
  996. dbModel.setBasenumber(model.getBasenumber());
  997. dbModel.setUpdateuserid(userId);
  998. dbModel.setUpdateusername(userName);
  999. dbModel.setUpdatetime(new Date());
  1000. dbModel.setOperatetime(new Date());
  1001. dbModel.setOperatestate("M");
  1002. dbModel.setSyncstate("N");
  1003. result += usPartyduesMapper.updateByPrimaryKey(dbModel);
  1004. }
  1005. /*this.batchInsertPartyDuesDetail(dbModel.getYear(), Arrays.asList(dbModel.getUsercode()));*/
  1006. for (UsPartyduesDetail item : monthList) {
  1007. UsPartyduesDetail mModel = getPartyduesDetailByUserId(dbModel.getPartyduesid(), item.getMonth());
  1008. if (mModel == null || (mModel != null && stringUtils.IsNullOrEmpty(mModel.getDetailid()))) {
  1009. item.setDetailid(UUID.randomUUID().toString());
  1010. item.setPartyduesid(dbModel.getPartyduesid());
  1011. item.setPartycode(dzzdm);
  1012. item.setCreateuserid(userId);
  1013. item.setCreateusername(userName);
  1014. item.setCreatetime(new Date());
  1015. //同步数据
  1016. item.setOperatetime(new Date());
  1017. item.setOperatestate("A");
  1018. item.setSyncstate("N");
  1019. usPartyduesDetailMapper.insert(item);
  1020. } else {
  1021. mModel.setMoney(item.getMoney());
  1022. mModel.setSpecialexpenses(item.getSpecialexpenses());
  1023. mModel.setRemarks(item.getRemarks());
  1024. mModel.setUpdateuserid(userId);
  1025. mModel.setUpdateusername(userName);
  1026. mModel.setUpdatetime(new Date());
  1027. mModel.setOperatetime(new Date());
  1028. mModel.setOperatestate("M");
  1029. mModel.setSyncstate("N");
  1030. mModel.setPaystate(item.getPaystate());
  1031. usPartyduesDetailMapper.updateByPrimaryKey(mModel);
  1032. }
  1033. }
  1034. return result;
  1035. }
  1036. /**
  1037. * 批量保存党费基数
  1038. *
  1039. * @param userList
  1040. * @param userId
  1041. * @param userName
  1042. * @return
  1043. */
  1044. @Override
  1045. public int savePartyDues(List<UsPartydues> userList, String userId, String userName) {
  1046. int result = 0;
  1047. List<String> userCodes = userList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getUsercode())).map(it -> it.getUsercode().trim()).collect(Collectors.toList());
  1048. List<ZzRyjbxx> partyUserList = partyUserService.getZzRyjbxxList(userCodes);
  1049. for (UsPartydues item : userList) {
  1050. ZzRyjbxx zzRyjbxx = partyUserList.stream().filter(it -> it.getRybm().equals(item.getUsercode())).findFirst().orElse(null);
  1051. if (stringUtils.IsNullOrEmpty(item.getPartycode()) && zzRyjbxx != null)
  1052. item.setPartycode(zzRyjbxx.getSzdzbdm());
  1053. UsPartydues uModel = getPartyduesByUserId(item.getUsercode(), item.getYear());
  1054. if (uModel == null || (uModel != null && stringUtils.IsNullOrEmpty(uModel.getPartyduesid()))) {
  1055. item.setPartyduesid(UUID.randomUUID().toString());
  1056. item.setCreateuserid(userId);
  1057. item.setCreateusername(userName);
  1058. item.setCreatetime(new Date());
  1059. //同步数据
  1060. item.setOperatetime(new Date());
  1061. item.setOperatestate("A");
  1062. item.setSyncstate("N");
  1063. result += usPartyduesMapper.insert(item);
  1064. } else {
  1065. uModel.setMoney(item.getMoney());
  1066. uModel.setBasenumber(item.getBasenumber());
  1067. uModel.setUpdateuserid(userId);
  1068. uModel.setUpdateusername(userName);
  1069. uModel.setUpdatetime(new Date());
  1070. uModel.setOperatetime(new Date());
  1071. uModel.setOperatestate("M");
  1072. uModel.setSyncstate("N");
  1073. result += usPartyduesMapper.updateByPrimaryKey(uModel);
  1074. }
  1075. }
  1076. this.batchInsertPartyDuesDetail(userList.get(0).getYear(), userCodes);
  1077. return result;
  1078. }
  1079. @Override
  1080. public int deleteDuesById(String id,String userId) {
  1081. UsPartyduesDetail detail = usPartyduesDetailMapper.selectByPrimaryKey(id);
  1082. detail.setMoney(null);
  1083. detail.setPaystate(0);
  1084. detail.setUpdatetime(new Date());
  1085. detail.setUpdateuserid(userId);
  1086. return usPartyduesDetailMapper.updateByPrimaryKey(detail);
  1087. }
  1088. /**
  1089. * @param page
  1090. * @param rows
  1091. * @param year
  1092. * @param month
  1093. * @param partyCode
  1094. * @param userIdList
  1095. * @param removeUserList
  1096. * @param userName
  1097. * @return
  1098. */
  1099. @Override
  1100. public PageInfo<HashMap<String, Object>> getPartyDuesUserListOfAddfee(int page, int rows, Integer year, Integer month, String partyCode, String userName) {
  1101. Integer yearMonth = Integer.parseInt(year + String.format("%02d", month));
  1102. PageHelper.startPage(page, rows);
  1103. List<HashMap<String, Object>> list = publicityCQuery.selectPartyDuesUserListOfAddfee(year, month, partyCode, userName, yearMonth);
  1104. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1105. return result;
  1106. }
  1107. /**
  1108. * @param userList
  1109. * @param userId
  1110. * @param userName
  1111. * @return
  1112. */
  1113. @Override
  1114. public int savePartyDuesMulti(List<UsPartyduesDetail> userList, String userId, String userName) {
  1115. int result = 0;
  1116. for (UsPartyduesDetail item : userList) {
  1117. UsPartyduesDetail mModel = getPartyduesDetailByUserId(item.getPartyduesid(), item.getMonth());
  1118. if (mModel == null || (mModel != null && stringUtils.IsNullOrEmpty(mModel.getDetailid()))) {
  1119. item.setDetailid(UUID.randomUUID().toString());
  1120. item.setCreateuserid(userId);
  1121. item.setCreateusername(userName);
  1122. item.setCreatetime(new Date());
  1123. //同步数据
  1124. item.setOperatetime(new Date());
  1125. item.setOperatestate("A");
  1126. item.setSyncstate("N");
  1127. item.setPaystate(1);
  1128. result += usPartyduesDetailMapper.insert(item);
  1129. } else {
  1130. mModel.setMoney(item.getMoney());
  1131. mModel.setSpecialexpenses(item.getSpecialexpenses());
  1132. mModel.setUpdateuserid(userId);
  1133. mModel.setUpdateusername(userName);
  1134. mModel.setUpdatetime(new Date());
  1135. mModel.setOperatetime(new Date());
  1136. mModel.setOperatestate("M");
  1137. mModel.setSyncstate("N");
  1138. mModel.setPaystate(1);
  1139. result += usPartyduesDetailMapper.updateByPrimaryKey(mModel);
  1140. }
  1141. }
  1142. return result;
  1143. }
  1144. /**
  1145. * 统计党支部党费已缴情况
  1146. **/
  1147. @Override
  1148. public PageInfo<HashMap<String, Object>> getDuesPayTotal(int page, int rows, String dzzdm, String ssdzzdm, Integer year, Integer month) {
  1149. PageHelper.startPage(page, rows);
  1150. List<HashMap<String, Object>> list = publicityCQuery.selectDuesPayTotal(dzzdm, ssdzzdm, year, month);
  1151. for (HashMap<String, Object> item : list) {
  1152. if (item.get("DZZDM") != null) {
  1153. String TOTALCOUNT = partyCQuery.selectPartyUserCount(item.get("DZZDM").toString());
  1154. item.put("DYZS", !stringUtils.IsNullOrEmpty(TOTALCOUNT) ? TOTALCOUNT : 0);
  1155. }
  1156. }
  1157. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1158. return result;
  1159. }
  1160. @Override
  1161. public PageInfo<HashMap<String, Object>> getUserDuesList(int page, int rows, String ssdzzdm, String xm, Integer year, Integer month) {
  1162. PageHelper.startPage(page, rows);
  1163. List<HashMap<String, Object>> list = publicityCQuery.selectUserDuesList(ssdzzdm, xm, year, month);
  1164. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1165. return result;
  1166. }
  1167. @Override
  1168. public UsPartyduesDetail getUserduesDetailById(String detailId) {
  1169. return usPartyduesDetailMapper.selectByPrimaryKey(detailId);
  1170. }
  1171. @Override
  1172. public int savePartyduesDetail(UsPartyduesDetail model, String userId, String userName) {
  1173. int result = 0;
  1174. UsPartyduesDetail dbModel = getUserduesDetailById(model.getDetailid());
  1175. if (dbModel == null || (model != null && stringUtils.IsNullOrEmpty(model.getDetailid()))) {
  1176. model.setCreatetime(new Date());
  1177. model.setCreateuserid(userId);
  1178. model.setCreateusername(userName);
  1179. model.setOperatestate("A");
  1180. model.setOperatetime(new Date());
  1181. model.setSyncstate("N");
  1182. result = usPartyduesDetailMapper.insert(model);
  1183. } else {
  1184. model.setUpdatetime(new Date());
  1185. model.setUpdateuserid(userId);
  1186. model.setUpdateusername(userName);
  1187. model.setOperatestate("M");
  1188. model.setOperatetime(new Date());
  1189. model.setSyncstate("N");
  1190. result = usPartyduesDetailMapper.updateByPrimaryKey(model);
  1191. }
  1192. return result;
  1193. }
  1194. public PageInfo<HashMap<String, Object>> getSettingDuesUserList(int page, int rows, Integer year, String dzzdm
  1195. , String rybm, String xm, String szdzb, Integer isStudent) {
  1196. PageHelper.startPage(page, rows);
  1197. List<HashMap<String, Object>> list = publicityCQuery.selectSettingDuesUserList(year, dzzdm, rybm, xm, szdzb, isStudent);
  1198. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1199. return result;
  1200. }
  1201. @Override
  1202. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
  1203. public List<ImportUserDuesVo> importSettingDues(List<ImportUserDuesVo> dataList, String userId, String userName) throws Exception {
  1204. if (dataList.size() <= 0) {
  1205. throw new Exception("请添加导入数据");
  1206. }
  1207. List<ImportUserDuesVo> errorList = new ArrayList<>();
  1208. List<String> partyNames = dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getPartyName())).map(it -> it.getPartyName().trim()).collect(Collectors.toList());
  1209. List<String> userAndPartyNames = dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getUserName()) && !stringUtils.IsNullOrEmpty(it.getPartyName())).map(it -> it.getUserName().trim().concat(it.getPartyName().trim())).collect(Collectors.toList());
  1210. List<HashMap<String, Object>> users = partyUserCquery.selectUserListByName(userAndPartyNames);
  1211. List<ZzZzqkxx> zzZzqkxxList = partyUserService.getZzZzqkxxByNameList(partyNames);
  1212. List<UsPartydues> resultList = new ArrayList<>();
  1213. for (int i = 0; i < dataList.size(); i++) {
  1214. ImportUserDuesVo item = dataList.get(i);
  1215. HashMap<String, Object> userInfo = users.stream().filter(it -> it.get("XM").toString().equals(item.getUserName().trim()) && it.get("DZZMC").toString().equals(item.getPartyName().trim())).findFirst().orElse(null);
  1216. ZzZzqkxx zzZzqkxx = zzZzqkxxList.stream().filter(it -> it.getDzzmc().equals(item.getPartyName())).findFirst().orElse(null);
  1217. String errorInfo = "";
  1218. BigDecimal money = new BigDecimal(0);
  1219. Integer year = null;
  1220. if (stringUtils.IsNullOrEmpty(item.getUserName()))
  1221. errorInfo += "请填写党员姓名!";
  1222. if (stringUtils.IsNullOrEmpty(item.getPartyName()))
  1223. errorInfo += "请填写所在党组织!";
  1224. if (stringUtils.IsNullOrEmpty(item.getYear()))
  1225. errorInfo += "请填写年度!";
  1226. if (stringUtils.IsNullOrEmpty(item.getMoney()))
  1227. errorInfo += "请填写交纳金额!";
  1228. if (!stringUtils.IsNullOrEmpty(item.getYear())) {
  1229. try {
  1230. year = Integer.parseInt(item.getYear());
  1231. } catch (Exception ex) {
  1232. errorInfo += "年度格式错误!";
  1233. }
  1234. }
  1235. if (!stringUtils.IsNullOrEmpty(item.getMoney())) {
  1236. try {
  1237. money = new BigDecimal(item.getMoney());
  1238. } catch (Exception ex) {
  1239. errorInfo += "交纳金额格式错误!";
  1240. }
  1241. }
  1242. if (userInfo == null)
  1243. errorInfo += "党员信息匹配失败!请核对姓名和所在党组织是否正确!";
  1244. if (stringUtils.IsNullOrEmpty(errorInfo)) {
  1245. UsPartydues usPartydues = new UsPartydues();
  1246. usPartydues.setUsername(userInfo.get("XM").toString());
  1247. usPartydues.setUsercode(userInfo.get("RYBM").toString());
  1248. usPartydues.setPartycode(zzZzqkxx.getDzzdm());
  1249. usPartydues.setPartyname(zzZzqkxx.getDzzmc());
  1250. usPartydues.setMoney(userInfo.get("ISSTUDENT") != null && userInfo.get("ISSTUDENT").toString().equals("true") ? new BigDecimal(0.2) : money);
  1251. usPartydues.setYear(year);
  1252. resultList.add(usPartydues);
  1253. } else {
  1254. item.setErrorInfo("第" + (i + 1) + "行," + errorInfo);
  1255. errorList.add(item);
  1256. }
  1257. }
  1258. if (errorList.size() <= 0) {
  1259. resultList.forEach(item -> {
  1260. UsPartydues dbModel = getPartyduesByUserId(item.getUsercode(), item.getYear());
  1261. if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getPartyduesid()))) {
  1262. dbModel = item;
  1263. dbModel.setPartyduesid(UUID.randomUUID().toString());
  1264. dbModel.setCreatetime(new Date());
  1265. dbModel.setCreateuserid(userId);
  1266. dbModel.setCreateusername(userName);
  1267. //同步数据
  1268. dbModel.setOperatestate("A");
  1269. dbModel.setOperatetime(new Date());
  1270. dbModel.setSyncstate("N");
  1271. usPartyduesMapper.insert(dbModel);
  1272. } else {
  1273. dbModel.setMoney(item.getMoney());
  1274. dbModel.setUpdateuserid(userId);
  1275. dbModel.setUpdateusername(userName);
  1276. dbModel.setUpdatetime(new Date());
  1277. dbModel.setOperatetime(new Date());
  1278. dbModel.setOperatestate("M");
  1279. dbModel.setSyncstate("N");
  1280. usPartyduesMapper.updateByPrimaryKey(dbModel);
  1281. }
  1282. this.batchInsertPartyDuesDetail(item.getYear(), Arrays.asList(item.getUsercode()));
  1283. });
  1284. }
  1285. return errorList;
  1286. }
  1287. //endregion
  1288. // region 领导人员5+3管理
  1289. /**
  1290. * @return
  1291. */
  1292. @Override
  1293. public PageInfo<HashMap<String, Object>> getPartyOutlayList(int page, int rows, String partyCode, String beginTime,
  1294. String endTime, Integer zzfbType, Integer paytype, String dzzmc) {
  1295. PageHelper.startPage(page, rows);
  1296. List<HashMap<String, Object>> list = publicityCQuery.selectPartyOutlayList(partyCode, beginTime, endTime, zzfbType, paytype, dzzmc);
  1297. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1298. return result;
  1299. }
  1300. /**
  1301. * @param id
  1302. * @return
  1303. */
  1304. @Override
  1305. public UsPartyoutlay getPartyOutlayById(String id) {
  1306. return usPartyoutlayMapper.selectByPrimaryKey(id);
  1307. }
  1308. /**
  1309. * @param model
  1310. * @param userId
  1311. * @param userName
  1312. * @return
  1313. */
  1314. @Override
  1315. public int savePartyOutlay(UsPartyoutlay model, String userId, String userName) {
  1316. int result = 0;
  1317. UsPartyoutlay dbModel = getPartyOutlayById(model.getPartyoutlayid());
  1318. if (dbModel == null || (model != null && stringUtils.IsNullOrEmpty(model.getPartyoutlayid()))) {
  1319. model.setCreatetime(new Date());
  1320. model.setCreateuserid(userId);
  1321. model.setCreateusername(userName);
  1322. model.setOperatestate("A");
  1323. model.setOperatetime(new Date());
  1324. model.setSyncstate("N");
  1325. result = usPartyoutlayMapper.insert(model);
  1326. } else {
  1327. model.setUpdatetime(new Date());
  1328. model.setUpdateuserid(userId);
  1329. model.setUpdateusername(userName);
  1330. model.setOperatestate("M");
  1331. model.setOperatetime(new Date());
  1332. model.setSyncstate("N");
  1333. result = usPartyoutlayMapper.updateByPrimaryKey(model);
  1334. }
  1335. return result;
  1336. }
  1337. /**
  1338. * @param id
  1339. * @return
  1340. */
  1341. @Override
  1342. public int deletePartyOutlayById(String id) {
  1343. return usPartyoutlayMapper.deleteByPrimaryKey(id);
  1344. }
  1345. //endregion
  1346. /**
  1347. * @param page
  1348. * @param rows
  1349. * @param partyCode
  1350. * @param year
  1351. * @return
  1352. */
  1353. @Override
  1354. public PageInfo<HashMap<String, Object>> getpublicityPositionSummary(int page, int rows, String partyCode, Integer year) {
  1355. PageHelper.startPage(page, rows);
  1356. List<HashMap<String, Object>> list = publicityCQuery.selectpublicityPositionSummary(partyCode, year);
  1357. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1358. return result;
  1359. }
  1360. /**
  1361. * @param dzzdm
  1362. * @param year
  1363. * @return
  1364. */
  1365. @Override
  1366. public DjFundsincome getFundsIncome(String dzzdm, Integer year) {
  1367. DjFundsincomeExample example = new DjFundsincomeExample();
  1368. example.or().andPartycodeEqualTo(dzzdm).andYearEqualTo(year);
  1369. List<DjFundsincome> list = fundsincomeMapper.selectByExample(example);
  1370. if (list.size() > 0) {
  1371. return list.get(0);
  1372. }
  1373. return null;
  1374. }
  1375. /**
  1376. * @param model
  1377. * @param userId
  1378. * @param userName
  1379. * @return
  1380. */
  1381. @Override
  1382. public int saveFundsIncome(DjFundsincome model, String userId, String userName) {
  1383. int result = 0;
  1384. DjFundsincome dbModel = fundsincomeMapper.selectByPrimaryKey(model.getFundsbudgetid());
  1385. if (dbModel == null) {
  1386. model.setCreatetime(new Date());
  1387. model.setCreateuserid(userId);
  1388. model.setCreateusername(userName);
  1389. model.setOperatestate("A");
  1390. model.setOperatetime(new Date());
  1391. model.setSyncstate("N");
  1392. result = fundsincomeMapper.insert(model);
  1393. } else {
  1394. model.setUpdatetime(new Date());
  1395. model.setUpdateuserid(userId);
  1396. model.setUpdateusername(userName);
  1397. model.setOperatestate("M");
  1398. model.setOperatetime(new Date());
  1399. model.setSyncstate("N");
  1400. result = fundsincomeMapper.updateByPrimaryKey(model);
  1401. }
  1402. return result;
  1403. }
  1404. /**
  1405. * @param page
  1406. * @param rows
  1407. * @param partyCode
  1408. * @param year
  1409. * @return
  1410. */
  1411. @Override
  1412. public PageInfo<HashMap<String, Object>> getFundsIncomeSummary(int page, int rows, String partyCode, Integer year) {
  1413. PageHelper.startPage(page, rows);
  1414. List<HashMap<String, Object>> list = publicityCQuery.selectFundsIncomeSummary(partyCode, year);
  1415. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  1416. return result;
  1417. }
  1418. public BigDecimal getPartyDuesAmount(String detailId) {
  1419. UsPartyduesDetail detail = usPartyduesDetailMapper.selectByPrimaryKey(detailId);
  1420. UsPartydues usPartydues = usPartyduesMapper.selectByPrimaryKey(detail.getPartyduesid());
  1421. return usPartydues.getMoney();
  1422. }
  1423. @Override
  1424. public void syncPartyDuesWxPayState(String detailId) {
  1425. UsPartyduesDetailExample exp = new UsPartyduesDetailExample();
  1426. UsPartyduesDetailExample.Criteria cri = exp.or();
  1427. cri.andPaystateEqualTo(0);
  1428. if (!stringUtils.IsNullOrEmpty(detailId)) {
  1429. cri.andDetailidEqualTo(detailId);
  1430. }
  1431. List<UsPartyduesDetail> detailList = usPartyduesDetailMapper.selectByExample(exp);
  1432. detailList.forEach(it -> {
  1433. CfPayorder cfPayorder = payOrderService.getSuccessPayOrderByRefId(it.getDetailid());
  1434. if (cfPayorder != null) {
  1435. it.setMoney(cfPayorder.getPayAmount());
  1436. it.setPaystate(1);
  1437. it.setUpdatetime(new Date());
  1438. usPartyduesDetailMapper.updateByPrimaryKey(it);
  1439. }
  1440. });
  1441. }
  1442. @Override
  1443. public PageInfo<PartyDuesPayVo> getPartyDuesPayList(int page, int rows, String partyCode, String userName, Integer payState, Date startDate, Date endDate, Integer year, Integer month) {
  1444. List<CfDictionary> dic_wxPayState = dictionaryService.getDictionaryListByDicTypeKey("wxPayState");
  1445. PageHelper.startPage(page, rows);
  1446. List<PartyDuesPayVo> list = publicityCQuery.selectPartyDuesPayList(partyCode, userName, payState, startDate, endDate, year, month);
  1447. for (PartyDuesPayVo item : list) {
  1448. item.payStateName = item.getPayState() == null ? "" : dictionaryService.getDicByKey(item.getPayState(), dic_wxPayState).getDicvalue();
  1449. }
  1450. PageInfo<PartyDuesPayVo> result = new PageInfo(list);
  1451. return result;
  1452. }
  1453. @Override
  1454. public Integer batchInsertPartyDues(Integer year, List<String> userCodeList) {
  1455. Integer yearMonth = Integer.parseInt(year.toString() + String.format("%02d", 12));
  1456. return publicityCQuery.batchInsertPartyDues(year, yearMonth, userCodeList);
  1457. }
  1458. @Override
  1459. public Integer batchInsertPartyDuesDetail(Integer year, List<String> userCodeList) {
  1460. return publicityCQuery.batchInsertPartyDuesDetail(year, userCodeList);
  1461. }
  1462. }