EsmUserInternalController.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  1. package com.ydtech.modules.esm.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.ydtech.constants.SysConstants;
  5. import com.ydtech.core.page.BaseController;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.core.page.PageRequest;
  8. import com.ydtech.core.page.PageResult;
  9. import com.ydtech.modules.admin.model.SysUser;
  10. import com.ydtech.modules.admin.service.SysUserService;
  11. import com.ydtech.modules.esm.model.*;
  12. import com.ydtech.modules.esm.service.*;
  13. import com.ydtech.modules.esm.vo.*;
  14. import com.ydtech.modules.ins.model.InsOrder;
  15. import com.ydtech.modules.ins.service.InsOrderService;
  16. import com.ydtech.security.utils.PasswordUtils;
  17. import com.ydtech.utils.StringUtils;
  18. import com.ydtech.utils.idgen.IdGenerate;
  19. import io.swagger.annotations.ApiOperation;
  20. import org.apache.poi.util.StringUtil;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.security.access.prepost.PreAuthorize;
  23. import org.springframework.web.bind.annotation.*;
  24. import java.math.BigDecimal;
  25. import java.util.*;
  26. /**
  27. * ---------------------------
  28. * 人员管理 (EsmUserController)
  29. * ---------------------------
  30. * 作者:qfl
  31. * ---------------------------
  32. */
  33. @RestController
  34. @RequestMapping("esmUserInternal")
  35. public class EsmUserInternalController extends BaseController {
  36. @Autowired
  37. private SysUserService sysUserService;
  38. @Autowired
  39. private EsmUserInternalService esmUserInternalService;
  40. @Autowired
  41. private EsmUserAgentService esmUserAgentService;
  42. @Autowired
  43. private SysUserCheckService sysUserCheckService;
  44. @Autowired
  45. private EsmUserInternalCheckService esmUserInternalCheckService;
  46. @Autowired
  47. private EsmUserAgentCheckService esmUserAgentCheckService;
  48. @Autowired
  49. InsOrderService insOrderService;
  50. /**
  51. * 更新人员银行卡等信息
  52. *
  53. * @param record
  54. * @return
  55. */
  56. @PostMapping(value = "/saveUser")
  57. public HttpResult save(@RequestBody EsmUserInternal record) {
  58. if (StringUtils.isNullOrEmpty(record.getId())) {
  59. return HttpResult.error("id不能为空");
  60. }
  61. esmUserInternalService.updateSelective(record);
  62. return HttpResult.ok("保存成功");
  63. }
  64. @PreAuthorize("hasAuthority('sys:user:delete')")
  65. @PostMapping(value = "/delete")
  66. public HttpResult delete(@RequestBody List<SysUser> records) {
  67. List<EsmUserInternal> esmUserInternals = new ArrayList<>();
  68. List<EsmUserAgent> esmUserAgents = new ArrayList<>();
  69. List<SysUserCheck> sysUserChecks = new ArrayList<>();
  70. List<EsmUserInternalCheck> esmUserInternalChecks = new ArrayList<>();
  71. List<EsmUserAgentCheck> esmUserAgentChecks = new ArrayList<>();
  72. for (SysUser record : records) {
  73. SysUser sysUser = sysUserService.selectByPk(record.getId());
  74. if (sysUser != null && SysConstants.ADMIN.equalsIgnoreCase(sysUser.getName())) {
  75. return HttpResult.error("超级管理员不允许删除!");
  76. }
  77. EsmUserInternal esmUserInternal = new EsmUserInternal();
  78. esmUserInternal.setId(record.getId());
  79. esmUserInternals.add(esmUserInternal);
  80. EsmUserAgent esmUserAgent = new EsmUserAgent();
  81. esmUserAgent.setId(record.getId());
  82. esmUserAgents.add(esmUserAgent);
  83. EsmUserInternalCheck esmUserInternalCheck = new EsmUserInternalCheck();
  84. esmUserInternalCheck.setId(record.getId());
  85. esmUserInternalChecks.add(esmUserInternalCheck);
  86. EsmUserAgentCheck esmUserAgentCheck = new EsmUserAgentCheck();
  87. esmUserAgentCheck.setId(record.getId());
  88. esmUserAgentChecks.add(esmUserAgentCheck);
  89. SysUserCheck sysUserCheck = new SysUserCheck();
  90. sysUserCheck.setId(record.getId());
  91. sysUserChecks.add(sysUserCheck);
  92. }
  93. //EsmUserInternal esmUserInternal = esmUserInternalService.selectByPk(record.getId());
  94. sysUserService.delete(records);
  95. esmUserInternalService.delete(esmUserInternals);
  96. esmUserAgentService.delete(esmUserAgents);
  97. sysUserCheckService.delete(sysUserChecks);
  98. esmUserInternalCheckService.delete(esmUserInternalChecks);
  99. esmUserAgentCheckService.delete(esmUserAgentChecks);
  100. return HttpResult.ok("删除成功");
  101. }
  102. /**
  103. * 基础分页查询
  104. *
  105. * @param pageRequest
  106. * @return
  107. */
  108. @PostMapping(value = "/findPage")
  109. public HttpResult findPage(@RequestBody PageRequest pageRequest) {
  110. int pageNum = pageRequest.getPageNum();
  111. int pageSize = pageRequest.getPageSize();
  112. String name = pageRequest.getColumnFilterValue(pageRequest, "name");
  113. String deptId = pageRequest.getColumnFilterValue(pageRequest, "deptId");
  114. String usertype = pageRequest.getColumnFilterValue(pageRequest, "usertype");
  115. String status = pageRequest.getColumnFilterValue(pageRequest, "status");
  116. String isteamleader = pageRequest.getColumnFilterValue(pageRequest, "isteamleader");
  117. String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
  118. String id = pageRequest.getColumnFilterValue(pageRequest, "id");
  119. String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate");
  120. String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate");
  121. StringBuffer whereStr = new StringBuffer(" where 1=1 ");
  122. ArrayList<Object> params = new ArrayList<Object>();
  123. if (!StringUtils.isNullOrEmpty(name)) {
  124. whereStr.append(" and t1.name like ?");
  125. params.add("%" + name + "%");
  126. }
  127. if (!StringUtils.isNullOrEmpty(mobile)) {
  128. whereStr.append(" and t1.mobile = ?");
  129. params.add(mobile);
  130. }
  131. if (!StringUtils.isNullOrEmpty(id)) {
  132. whereStr.append(" and t1.id = ?");
  133. params.add(id);
  134. }
  135. if (deptId != null) {
  136. String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
  137. if (containsSubDept != null && containsSubDept.equalsIgnoreCase("1")) {
  138. whereStr.append(" and t1.dept_id like ?");
  139. params.add(deptId + "%");
  140. } else {
  141. whereStr.append(" and t1.dept_id = ?");
  142. params.add(deptId);
  143. }
  144. }
  145. if (status != null) {
  146. //ArrayList<String> ls = new ArrayList<>();
  147. String andStr = " and t2.status in (";
  148. String pre = "";
  149. String[] sa = status.split(",");
  150. for (String s : sa) {
  151. andStr += pre + "'" + s.trim() + "'";
  152. pre = ",";
  153. }
  154. andStr += ")";
  155. whereStr.append(andStr);
  156. }
  157. if (!StringUtils.isNullOrEmpty(isteamleader)) {
  158. whereStr.append(" and t2.isteamleader = ?");
  159. params.add(isteamleader.trim());
  160. }
  161. if (!StringUtils.isNullOrEmpty(startdate)) {
  162. whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') >= date ?");
  163. params.add(startdate);
  164. }
  165. if (!StringUtils.isNullOrEmpty(enddate)) {
  166. whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') <= date ?");
  167. params.add(enddate);
  168. }
  169. //后线人员 usertype为A
  170. if (usertype != null) {
  171. whereStr.append(" and usertype = ?");
  172. params.add(usertype.trim());
  173. }
  174. //过滤离司人员 这里del_flag用作离司
  175. whereStr.append(" and t1.del_flag <> ?");
  176. params.add("1");
  177. //传入查询条件
  178. PageResult pageResult = esmUserInternalService.selectPagingCustom(pageNum, pageSize, whereStr.toString(), params.toArray());
  179. return HttpResult.ok(pageResult);
  180. }
  181. /**
  182. * 根据机构查询推荐人列表
  183. */
  184. @PostMapping("/queryRecommender")
  185. public HttpResult queryRecommender(@RequestParam String comcode) {
  186. StringBuffer whereStr = new StringBuffer(" where 1=1 ");
  187. ArrayList<String> params = new ArrayList<>();
  188. if (comcode != null) {
  189. whereStr.append(" and dept_id = ?");
  190. params.add(comcode);
  191. }
  192. List<SysUser> list = sysUserService.selectList(whereStr.toString(), params.toArray());
  193. return HttpResult.ok(list);
  194. }
  195. /**
  196. * 根据选择的推荐人代码,查询推荐人的上三级信息返回
  197. */
  198. @GetMapping("/getSuperior")
  199. public HttpResult getSuperior(@RequestParam String id) {
  200. List<SysUser> userList = new ArrayList<SysUser>();
  201. // for(int i=0;i<3;i++){
  202. // StringBuffer whereStr = new StringBuffer(" where 1=1 ");
  203. // ArrayList<String> params = new ArrayList<String>();
  204. // if(id != null){
  205. // whereStr.append(" and id = ?");
  206. // params.add(id);
  207. // }
  208. // List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(),params.toArray());
  209. // if(list != null && list.size()>0){
  210. // id = list.get(0).getRecommenderid(); //上级推荐人代码
  211. // if(StringUtils.isNullOrEmpty(id)){
  212. // break;
  213. // }
  214. // SysUser user = sysUserService.selectByPk(id);
  215. // userList.add(user);
  216. // }
  217. // }
  218. userList = esmUserInternalService.getSuperior(id);
  219. return HttpResult.ok(userList);
  220. }
  221. /**
  222. * 查询团队人数:我的团队人数,一级团队人数,二级团队人数,三级团队人数,临时用户人数
  223. *
  224. * @param record
  225. * @return
  226. */
  227. @PostMapping("/queryTeamNum")
  228. public HttpResult queryTeamNum(@RequestBody TeamUserQryVO record) {
  229. List<TeamUserVO> teamList = new ArrayList<TeamUserVO>();
  230. StringBuffer sbStr = new StringBuffer(" where 1=1 ");
  231. ArrayList<String> paramList = new ArrayList<String>();
  232. if (!StringUtils.isNullOrEmpty(record.getId())) {
  233. sbStr.append(" and id = ?");
  234. paramList.add(record.getId());
  235. }
  236. if (!StringUtils.isNullOrEmpty(record.getName())) {
  237. sbStr.append(" and name = ?");
  238. paramList.add(record.getName());
  239. }
  240. if (!StringUtils.isNullOrEmpty(record.getMobile())) {
  241. sbStr.append(" and mobile = ?");
  242. paramList.add(record.getMobile());
  243. }
  244. String dateStr = "";
  245. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  246. }
  247. List<SysUser> users = sysUserService.selectList(sbStr.toString(), paramList.toArray());
  248. for (SysUser user : users) {
  249. TeamUserVO teamUserVO = new TeamUserVO();
  250. teamUserVO.setId(user.getId());
  251. teamUserVO.setName(user.getName());
  252. teamUserVO.setDeptid(user.getDeptId());
  253. teamUserVO.setDeptname("");
  254. teamUserVO.setSex(user.getSex());
  255. teamUserVO.setMobile(user.getMobile());
  256. teamUserVO.setJobcode(user.getJobCode());
  257. //判断是否团队长
  258. // EsmUserInternal userInternal = esmUserInternalService.selectByPk(user.getId());
  259. // if("1".equals(userInternal.getIsteamleader())){
  260. // // 查询团队人数
  261. // ArrayList<String> param = new ArrayList<>();
  262. // param.add(user.getDeptId());
  263. // List<SysUser> ls = sysUserService.selectList(" where dept_id=?", param.toArray());
  264. // teamUserVO.setTeamnum(ls==null?0:ls.size());
  265. // //临时用户人数
  266. // teamUserVO.setTempnum(esmUserInternalService.queryTempNum(user.getDeptId()));
  267. // }
  268. //一级人数
  269. StringBuffer whereStr = new StringBuffer();
  270. ArrayList<String> params = new ArrayList<String>();
  271. whereStr.append(" where recommenderid=? ");
  272. params.add(user.getId());
  273. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  274. whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  275. params.add(record.getStartdate());
  276. params.add(record.getEnddate());
  277. }
  278. List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
  279. JSONArray objects = JSONObject.parseArray(JSONObject.toJSONString(list));
  280. System.out.println("一级用户" + objects);
  281. double sum1 = 0;
  282. int outSingle1 = 0;
  283. if (list != null && list.size() > 0) {
  284. Map map = queryPrice(record, list);
  285. sum1 = (double) map.get("sum");
  286. outSingle1 = (int) map.get("OutSingle");
  287. }
  288. BigDecimal bs = new BigDecimal(sum1);
  289. double f = bs.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  290. teamUserVO.setList1Premium(f);
  291. teamUserVO.setOutSingle1(outSingle1);
  292. teamUserVO.setLevel1num(list == null ? 0 : list.size());
  293. //二级人数
  294. List<EsmUserAgent> list2 = new ArrayList<>();
  295. double sum2 = 0;
  296. int outSingle2 = 0;
  297. List<EsmUserAgent> ls = null;
  298. for (EsmUserAgent agent : list) {
  299. whereStr = new StringBuffer();
  300. params = new ArrayList<String>();
  301. whereStr.append(" where recommenderid=? ");
  302. params.add(agent.getId());
  303. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  304. whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  305. params.add(record.getStartdate());
  306. params.add(record.getEnddate());
  307. }
  308. ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
  309. list2.addAll(ls);
  310. }
  311. if (list2 != null && list2.size() > 0) {
  312. Map map = queryPrice(record, list2);
  313. sum2 = (double) map.get("sum");
  314. outSingle2 = (int) map.get("OutSingle");
  315. }
  316. JSONArray objects1 = JSONObject.parseArray(JSONObject.toJSONString(list2));
  317. BigDecimal b = new BigDecimal(sum2);
  318. double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  319. System.out.println("二级用户" + objects1);
  320. teamUserVO.setLevel2num(list2.size());
  321. teamUserVO.setList2Premium(f1);
  322. teamUserVO.setOutSingle2(outSingle2);
  323. double sum3 = 0;
  324. int outSingle3 = 0;
  325. //三级人数
  326. List<EsmUserAgent> list3 = new ArrayList<>();
  327. for (EsmUserAgent agent : list2) {
  328. whereStr = new StringBuffer();
  329. params = new ArrayList<String>();
  330. whereStr.append(" where recommenderid=? ");
  331. params.add(agent.getId());
  332. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  333. whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  334. params.add(record.getStartdate());
  335. params.add(record.getEnddate());
  336. }
  337. ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
  338. list3.addAll(ls);
  339. }
  340. JSONArray objects3 = JSONObject.parseArray(JSONObject.toJSONString(list3));
  341. System.out.println("三级用户" + objects3);
  342. if (list3 != null && list3.size() > 0) {
  343. Map map = queryPrice(record, list3);
  344. sum3 = (double) map.get("sum");
  345. outSingle3 = (int) map.get("OutSingle");
  346. }
  347. BigDecimal bs3 = new BigDecimal(sum3);
  348. double f3 = bs3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  349. teamUserVO.setLevel3num(list3.size());
  350. teamUserVO.setList3Premium(f3);
  351. teamUserVO.setOutSingle3(outSingle3);
  352. //临时用户:推荐的未生效人员
  353. List<String> lss = esmUserInternalService.queryTeamUser(user.getId());
  354. teamUserVO.setTempnum(lss == null ? 0 : lss.size());
  355. int teamnum = teamUserVO.getLevel1num() + teamUserVO.getLevel2num() + teamUserVO.getLevel3num() + teamUserVO.getTempnum();
  356. teamUserVO.setTeamnum(teamnum);
  357. BigDecimal countPre = new BigDecimal(teamUserVO.getList1Premium() + teamUserVO.getList2Premium() + teamUserVO.getList3Premium());
  358. double countPremium = countPre.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  359. teamUserVO.setCountPremium(countPremium);
  360. teamUserVO.setCountSingle(teamUserVO.getOutSingle1() + teamUserVO.getOutSingle2() + teamUserVO.getOutSingle3());
  361. teamList.add(teamUserVO);
  362. }
  363. return HttpResult.ok(teamList);
  364. }
  365. /**
  366. * 通过工号查询该人员所有下级人员信息(一级、二级、三级、临时团队)
  367. *
  368. * @param record
  369. * @return
  370. */
  371. @PostMapping("/queryTeamUser")
  372. public HttpResult queryTeamUser(@RequestBody TeamUserQryVO record) {
  373. List<VoEsmUserInternal> level1List = new ArrayList<VoEsmUserInternal>();
  374. List<VoEsmUserInternal> level2List = new ArrayList<VoEsmUserInternal>();
  375. List<VoEsmUserInternal> level3List = new ArrayList<VoEsmUserInternal>();
  376. List<VoEsmUserInternalCheck> tempList = new ArrayList<VoEsmUserInternalCheck>();
  377. SysUser user = sysUserService.selectByPk(record.getId());
  378. //一级人数
  379. // List<EsmUserAgent> list = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{id});
  380. StringBuffer whereStr = new StringBuffer();
  381. ArrayList<String> params = new ArrayList<String>();
  382. whereStr.append(" where recommenderid=? ");
  383. params.add(user.getId());
  384. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  385. whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  386. params.add(record.getStartdate());
  387. params.add(record.getEnddate());
  388. }
  389. List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
  390. //二级人数
  391. List<EsmUserAgent> list2 = new ArrayList<>();
  392. for (EsmUserAgent agent : list) {
  393. // level1List.add(findUserById(agent.getId()));
  394. level1List.add(findUserBy(agent.getId(), record, list));
  395. whereStr = new StringBuffer();
  396. params = new ArrayList<String>();
  397. whereStr.append(" where recommenderid=? ");
  398. params.add(agent.getId());
  399. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  400. whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  401. params.add(record.getStartdate());
  402. params.add(record.getEnddate());
  403. }
  404. List<EsmUserAgent> ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
  405. // List<EsmUserAgent> ls = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{agent.getId()});
  406. list2.addAll(ls);
  407. }
  408. //三级人数
  409. List<EsmUserAgent> list3 = new ArrayList<>();
  410. for (EsmUserAgent agent : list2) {
  411. // level2List.add(findUserById(agent.getId()));
  412. level2List.add(findUserBy(agent.getId(), record, list2));
  413. whereStr = new StringBuffer();
  414. params = new ArrayList<String>();
  415. whereStr.append(" where recommenderid=? ");
  416. params.add(agent.getId());
  417. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  418. whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  419. params.add(record.getStartdate());
  420. params.add(record.getEnddate());
  421. }
  422. List<EsmUserAgent> ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
  423. // List<EsmUserAgent> ls = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{agent.getId()});
  424. list3.addAll(ls);
  425. }
  426. //三级人员信息
  427. for (EsmUserAgent agent : list3) {
  428. // level3List.add(findUserById(agent.getId()));
  429. level3List.add(findUserBy(agent.getId(), record, list3));
  430. }
  431. //临时用户:推荐的未生效人员
  432. List<String> ls = esmUserInternalService.queryTeamUser(record.getId());
  433. for (String userId : ls) {
  434. SysUserCheck sysUser = sysUserCheckService.selectByPk(userId);
  435. if (sysUser != null) {
  436. sysUser.setPassword("");
  437. sysUser.setSalt("");
  438. }
  439. EsmUserInternalCheck esmUserInternal = esmUserInternalCheckService.selectByPk(userId);
  440. EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(userId);
  441. VoEsmUserInternalCheck voEsmUserInternal = new VoEsmUserInternalCheck();
  442. voEsmUserInternal.setSysUser(sysUser);
  443. voEsmUserInternal.setEsmUserInternal(esmUserInternal);
  444. voEsmUserInternal.setEsmUserAgent(esmUserAgent);
  445. tempList.add(voEsmUserInternal);
  446. }
  447. Map map = new HashMap<>();
  448. map.put("level1", level1List);
  449. map.put("level2", level2List);
  450. map.put("level3", level3List);
  451. map.put("temp", tempList);
  452. return HttpResult.ok(map);
  453. }
  454. /**
  455. * 根据主键查询
  456. *
  457. * @param id
  458. * @return
  459. */
  460. @GetMapping(value = "/findById")
  461. public HttpResult findById(@RequestParam String id) {
  462. VoEsmUserInternal voEsmUserInternal = findUserById(id);
  463. return HttpResult.ok(voEsmUserInternal);
  464. }
  465. public VoEsmUserInternal findUserById(String id) {
  466. SysUser sysUser = sysUserService.selectByPk(id);
  467. sysUser.setPassword("");
  468. sysUser.setSalt("");
  469. EsmUserInternal esmUserInternal = esmUserInternalService.selectByPk(id);
  470. EsmUserAgent esmUserAgent = esmUserAgentService.selectByPk(id);
  471. VoEsmUserInternal voEsmUserInternal = new VoEsmUserInternal();
  472. voEsmUserInternal.setSysUser(sysUser);
  473. voEsmUserInternal.setEsmUserInternal(esmUserInternal);
  474. voEsmUserInternal.setEsmUserAgent(esmUserAgent);
  475. return voEsmUserInternal;
  476. }
  477. public Map queryPrice(TeamUserQryVO record, List<EsmUserAgent> list) {
  478. Map map = new HashMap();
  479. List<InsOrder> orderList = null;
  480. double sum = 0;
  481. int count = 0;
  482. if (list != null && list.size() > 0) {
  483. for (int i = 0; i < list.size(); i++) {
  484. StringBuffer whereStrs = new StringBuffer();
  485. ArrayList<String> param = new ArrayList<String>();
  486. whereStrs = new StringBuffer();
  487. param = new ArrayList<String>();
  488. whereStrs.append(" where orderstatus=7 ");
  489. whereStrs.append(" and userid=? ");
  490. param.add(list.get(i).getId());
  491. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  492. whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  493. param.add(record.getStartdate());
  494. param.add(record.getEnddate());
  495. }
  496. orderList = insOrderService.selectList(whereStrs.toString(), param.toArray());
  497. if (orderList != null && orderList.size() > 0) {
  498. count = count + 1;
  499. for (int j = 0; j < orderList.size(); j++) {
  500. double sumpremium = orderList.get(j).getSumpremium();
  501. double taxamount = orderList.get(j).getTaxamount();
  502. if (sumpremium > 0) {
  503. sum = sum + sumpremium - taxamount;
  504. }
  505. }
  506. System.out.println("大小" + orderList.size());
  507. }
  508. }
  509. }
  510. map.put("OutSingle", count);
  511. map.put("sum", sum);
  512. System.out.println("总共===" + count);
  513. return map;
  514. }
  515. private TeamUserCountPriceVO queryBillPrice(TeamUserQryVO record, String id) {
  516. Map map = new HashMap();
  517. List<InsOrder> orderList = null;
  518. int count = 0;
  519. TeamUserCountPriceVO teamUserCountPriceVO = new TeamUserCountPriceVO();
  520. List listteam = new ArrayList();
  521. StringBuffer whereStrs = new StringBuffer();
  522. ArrayList<String> param = new ArrayList<String>();
  523. whereStrs = new StringBuffer();
  524. param = new ArrayList<String>();
  525. whereStrs.append(" where orderstatus=7 ");
  526. whereStrs.append(" and userid=? ");
  527. param.add(id);
  528. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  529. whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  530. param.add(record.getStartdate());
  531. param.add(record.getEnddate());
  532. }
  533. //查询签单保费
  534. orderList = insOrderService.selectList(whereStrs.toString(), param.toArray());
  535. if (orderList != null && orderList.size() > 0) {
  536. double sum = 0;
  537. whereStrs = new StringBuffer();
  538. param = new ArrayList<String>();
  539. whereStrs.append(" where orderstatus=7 ");
  540. whereStrs.append(" and userid=? ");
  541. param.add(id);
  542. if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
  543. whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
  544. param.add(record.getStartdate());
  545. param.add(record.getEnddate());
  546. }
  547. //查询出单笔数
  548. Integer count1 = insOrderService.count(whereStrs.toString(), param.toArray());
  549. whereStrs.replace(19, 20, "5");
  550. //查询核保笔数
  551. Integer underwriting = insOrderService.count(whereStrs.toString(), param.toArray());
  552. teamUserCountPriceVO.setId(id);
  553. teamUserCountPriceVO.setIssue(count1);
  554. teamUserCountPriceVO.setUnderwriting(underwriting);
  555. count = count + 1;
  556. for (int j = 0; j < orderList.size(); j++) {
  557. double sumpremium = orderList.get(j).getSumpremium();
  558. double taxamount = orderList.get(j).getTaxamount();
  559. if (sumpremium > 0) {
  560. sum = sum + sumpremium - taxamount;
  561. }
  562. }
  563. BigDecimal b = new BigDecimal(sum);
  564. double price = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  565. teamUserCountPriceVO.setBillPrice(price);
  566. // listteam.add(teamUserCountPriceVO);
  567. System.out.println("大小" + orderList.size());
  568. }
  569. JSONArray objects3 = JSONObject.parseArray(JSONObject.toJSONString(listteam));
  570. System.out.println("listteam==================" + objects3);
  571. return teamUserCountPriceVO;
  572. }
  573. public VoEsmUserInternal findUserBy(String id, TeamUserQryVO record, List<EsmUserAgent> list) {
  574. SysUser sysUser = sysUserService.selectByPk(id);
  575. sysUser.setPassword("");
  576. sysUser.setSalt("");
  577. EsmUserInternal esmUserInternal = esmUserInternalService.selectByPk(id);
  578. EsmUserAgent esmUserAgent = esmUserAgentService.selectByPk(id);
  579. TeamUserCountPriceVO teamUserCountPriceVO = queryBillPrice(record, id);
  580. VoEsmUserInternal voEsmUserInternal = new VoEsmUserInternal();
  581. voEsmUserInternal.setSysUser(sysUser);
  582. voEsmUserInternal.setEsmUserInternal(esmUserInternal);
  583. voEsmUserInternal.setEsmUserAgent(esmUserAgent);
  584. voEsmUserInternal.setTeamUserCountPriceVO(teamUserCountPriceVO);
  585. return voEsmUserInternal;
  586. }
  587. }