EsmAgreementCheckController.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. package com.ydtech.modules.esm.controller;
  2. import com.ydtech.core.page.BaseController;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.core.page.PageRequest;
  5. import com.ydtech.core.page.PageResult;
  6. import com.ydtech.modules.admin.model.SysUser;
  7. import com.ydtech.modules.esm.model.*;
  8. import com.ydtech.modules.esm.service.*;
  9. import com.ydtech.utils.idgen.IdGenerate;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.springframework.beans.BeanUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.util.StringUtils;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.util.ArrayList;
  16. import java.util.Date;
  17. import java.util.List;
  18. @RestController
  19. @RequestMapping("esmAgreementCheck")
  20. public class EsmAgreementCheckController extends BaseController {
  21. @Autowired
  22. EsmAgreementCheckService esmAgreementCheckService;
  23. @Autowired
  24. EsmAgreementProdCheckService esmAgreementProdCheckService;
  25. @Autowired
  26. EsmAgreementProdfeeCheckService esmAgreementProdfeeCheckService;
  27. @Autowired
  28. EsmAgreementService esmAgreementService;
  29. @Autowired
  30. EsmAgreementProdService esmAgreementProdService;
  31. @Autowired
  32. EsmAgreementProdfeeService esmAgreementProdfeeService;
  33. @Autowired
  34. EsmInsCompanyService esmInsCompanyService;
  35. @Autowired
  36. EsmAgreementTeamfeeCheckService esmAgreementTeamfeeCheckService;
  37. @Autowired
  38. EsmAgreementTeamfeeService esmAgreementTeamfeeService;
  39. @Autowired
  40. EsmAgreementCheckhistoryService esmAgreementCheckhistoryService;
  41. /**
  42. * 保存协议信息
  43. *
  44. * @param record
  45. * @return
  46. */
  47. @PostMapping(value = "/saveAgreementCheck")
  48. public HttpResult save(@RequestBody EsmAgreementCheck record) {
  49. Integer result = 0;
  50. String msg = "保存成功";
  51. if (StringUtils.isEmpty(record.getId())) { // 协议新增
  52. // record.setAgreestatus("1");
  53. //生成临时表主键 checkid
  54. String checkid = String.valueOf(new Date().getTime());
  55. String id = IdGenerate.nextId();
  56. record.setCheckid(checkid);
  57. record.setId(id);
  58. record.setAgreestatus("0"); //提交审核
  59. record.setCreator(getUserName());
  60. record.setCreatetime(new Date());
  61. record.setUpdateby(getUserName());
  62. record.setUpdatetime(new Date());
  63. result = esmAgreementCheckService.insertSelective(record);
  64. List<EsmAgreementProdCheck> list = record.getAgreementProds();
  65. for (EsmAgreementProdCheck prod : list) {
  66. prod.setId(IdGenerate.nextId());
  67. prod.setCheckid(checkid);
  68. prod.setAgreeid(id);
  69. esmAgreementProdCheckService.insertSelective(prod);
  70. }
  71. } else if (StringUtils.isEmpty(record.getCheckid())) { //协议修改,新增记录
  72. //生成临时表主键 checkid
  73. // String checkid = String.valueOf(new Date().getTime());
  74. // record.setCheckid(checkid);
  75. // record.setAgreestatus("0"); //提交审核
  76. // record.setCreator(getUserName());
  77. // record.setCreatetime(new Date());
  78. // record.setUpdateby(getUserName());
  79. // record.setUpdatetime(new Date());
  80. // result = esmAgreementCheckService.insertSelective(record);
  81. //
  82. // List<EsmAgreementProdCheck> list = record.getAgreementProds();
  83. // for(EsmAgreementProdCheck prod : list){
  84. // prod.setCheckid(checkid);
  85. // esmAgreementProdCheckService.insertSelective(prod);
  86. // }
  87. } else { // 审核退回
  88. record.setAgreestatus("0"); //提交审核
  89. record.setCreator(null);
  90. record.setUpdateby(getUserName());
  91. record.setUpdatetime(new Date());
  92. result = esmAgreementCheckService.updateSelective(record);
  93. List<EsmAgreementProdCheck> list = record.getAgreementProds();
  94. for (EsmAgreementProdCheck prod : list) {
  95. esmAgreementProdCheckService.updateSelective(prod);
  96. }
  97. }
  98. return HttpResult.ok(msg, result);
  99. }
  100. /**
  101. * 修改协议信息
  102. *
  103. * @param record
  104. * @return
  105. */
  106. @PostMapping(value = "/updateAgreementCheck")
  107. public HttpResult update(@RequestBody EsmAgreementCheck record) {
  108. Integer result = 0;
  109. String msg = "保存成功";
  110. if (!StringUtils.isEmpty(record.getId()) && !StringUtils.isEmpty(record.getCheckid())) {
  111. //生成临时表主键 checkid
  112. String checkid = record.getCheckid();
  113. record.setCheckid(checkid);
  114. record.setAgreestatus("0"); //提交审核
  115. record.setCreator(getUserName());
  116. record.setCreatetime(new Date());
  117. record.setUpdateby(getUserName());
  118. record.setUpdatetime(new Date());
  119. result = esmAgreementCheckService.update(record);
  120. List<EsmAgreementProdCheck> list = record.getAgreementProds();
  121. for (EsmAgreementProdCheck prod : list) {
  122. prod.setCheckid(checkid);
  123. esmAgreementProdCheckService.update(prod);
  124. }
  125. //设置管理费用信息
  126. List<EsmAgreementProdfeeCheck> prodfees = record.getProdfees();
  127. for (EsmAgreementProdfeeCheck prodfee : prodfees) {
  128. prodfee.setCheckid(checkid);
  129. prodfee.setFeestatus("0");
  130. prodfee.setCreator(getUserName());
  131. prodfee.setCreatetime(new Date());
  132. prodfee.setUpdateby(getUserName());
  133. prodfee.setUpdatetime(new Date());
  134. result = esmAgreementProdfeeCheckService.update(prodfee);
  135. }
  136. }
  137. return HttpResult.ok(msg, result);
  138. }
  139. /**
  140. * 保存协议费用信息
  141. *
  142. * @param record
  143. * @return
  144. */
  145. @PostMapping(value = "/saveProdFeeCheck")
  146. public HttpResult saveProdFee(@RequestBody EsmAgreementCheck record) {
  147. Integer result = 0;
  148. String msg = "保存成功";
  149. String checkid = String.valueOf(new Date().getTime());
  150. List<EsmAgreementProdCheck> list = record.getAgreementProds();
  151. // String agreeid = "";
  152. for (EsmAgreementProdCheck prod : list) {
  153. prod.setCheckid(checkid);
  154. result = esmAgreementProdCheckService.insertSelective(prod);//设置产品佣金信息
  155. // agreeid = prod.getAgreeid();
  156. }
  157. //设置管理费用信息
  158. List<EsmAgreementProdfeeCheck> prodfees = record.getProdfees();
  159. for (EsmAgreementProdfeeCheck prodfee : prodfees) {
  160. prodfee.setCheckid(checkid);
  161. prodfee.setId(IdGenerate.nextId());
  162. prodfee.setFeestatus("0");
  163. prodfee.setCreator(getUserName());
  164. prodfee.setCreatetime(new Date());
  165. prodfee.setUpdateby(getUserName());
  166. prodfee.setUpdatetime(new Date());
  167. result = esmAgreementProdfeeCheckService.insertSelective(prodfee);
  168. }
  169. return HttpResult.ok(msg, result);
  170. }
  171. /**
  172. * 待审核的协议费用信息
  173. *
  174. * @param pageRequest
  175. * @return
  176. */
  177. @PostMapping(value = "/prodfeePage")
  178. public HttpResult prodfeePage(@RequestBody PageRequest pageRequest) {
  179. int pageNum = pageRequest.getPageNum();
  180. int pageSize = pageRequest.getPageSize();
  181. // String comcode = pageRequest.getColumnFilterValue(pageRequest, "comcode"); // 所属机构
  182. String status = pageRequest.getColumnFilterValue(pageRequest, "status"); // 协议状态
  183. // StringBuffer whereStr = new StringBuffer(" where 1=1");
  184. // ArrayList array = new ArrayList();
  185. List<EsmAgreementCheck> agreeList = new ArrayList<EsmAgreementCheck>();
  186. //需要处理传入的部门
  187. List<String> idList = esmAgreementProdfeeCheckService.queryProdfees(status);
  188. int minNum = pageSize * (pageNum - 1);
  189. int maxNum = pageSize * pageNum;
  190. if (1 == pageNum) {
  191. maxNum = idList.size() > maxNum ? maxNum : idList.size();
  192. } else {
  193. maxNum = idList.size() > maxNum ? maxNum : idList.size();
  194. }
  195. for (int i = minNum; i < maxNum; i++) {
  196. String checkid = idList.get(i);
  197. EsmAgreementCheck agreementCheck = new EsmAgreementCheck();
  198. //产品信息
  199. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{checkid});
  200. ///协议信息
  201. String agreeid = prodList.get(0).getAgreeid();
  202. EsmAgreement agreement = esmAgreementService.selectByPk(agreeid);
  203. if (agreement != null) BeanUtils.copyProperties(agreement, agreementCheck);
  204. agreementCheck.setCheckid(checkid);
  205. agreementCheck.setAgreementProds(prodList);
  206. //费用信息
  207. List<EsmAgreementProdfeeCheck> feeList = esmAgreementProdfeeCheckService.selectList(" where checkid=?", new Object[]{checkid});
  208. agreementCheck.setProdfees(feeList);
  209. agreeList.add(agreementCheck);
  210. }
  211. PageResult pageResult = new PageResult();
  212. pageResult.setPageNum(pageNum);
  213. pageResult.setPageSize(pageSize);
  214. pageResult.setTotalSize(idList.size());
  215. double value = idList.size() / pageSize;
  216. double totalpage = Math.floor(value);
  217. pageResult.setTotalPages((int) totalpage + 1);
  218. pageResult.setContent(agreeList);
  219. return HttpResult.ok(pageResult);
  220. }
  221. @ApiOperation("费用审核 传入checkid和审核状态: 0 申请审核 1 审核通过 2 审核不通过")
  222. @GetMapping(value = "/feecheck")
  223. public HttpResult feecheck(@RequestParam String checkid, @RequestParam String status, String remark) {
  224. Integer result = 0;
  225. String msg = "保存成功";
  226. if (StringUtils.isEmpty(checkid)) {
  227. return HttpResult.error("checkid不能为空");
  228. }
  229. //更新协议状态
  230. // EsmAgreementCheck agreementCheck = esmAgreementCheckService.selectByPk(checkid);
  231. // if (agreementCheck == null) {
  232. // msg = "协议不存在";
  233. // return HttpResult.ok(msg, result);
  234. // }
  235. // agreementCheck.setAgreestatus(status);
  236. // esmAgreementCheckService.updateSelective(agreementCheck);
  237. //保存审批意见
  238. EsmAgreementCheckhistory checkhis = new EsmAgreementCheckhistory();
  239. checkhis.setId(IdGenerate.nextId());
  240. checkhis.setCheckid(checkid);
  241. checkhis.setAgreeid("");
  242. checkhis.setStatus(status);
  243. checkhis.setRemark(remark);
  244. checkhis.setCheckname(getUserName());
  245. checkhis.setChecktime(new Date());
  246. result = esmAgreementCheckhistoryService.insert(checkhis);
  247. if ("1".equals(status)) {
  248. List<String> idList = new ArrayList<>();
  249. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{checkid});
  250. String agreeid = prodList.get(0).getAgreeid();
  251. esmAgreementProdService.delete(agreeid);
  252. for (EsmAgreementProdCheck prodCheck : prodList) {
  253. EsmAgreementProd prod = new EsmAgreementProd();
  254. BeanUtils.copyProperties(prodCheck, prod);
  255. esmAgreementProdService.insertSelective(prod);
  256. idList.add(prodCheck.getId());
  257. }
  258. //根据产品id删除费用信息表
  259. esmAgreementProdfeeService.delete(idList);
  260. List<EsmAgreementProdfeeCheck> feeList = esmAgreementProdfeeCheckService.selectList(" where checkid=?", new Object[]{checkid});
  261. for (EsmAgreementProdfeeCheck fee : feeList) {
  262. fee.setFeestatus("1");
  263. esmAgreementProdfeeCheckService.updateSelective(fee);
  264. EsmAgreementProdfee prodfee = new EsmAgreementProdfee();
  265. BeanUtils.copyProperties(fee, prodfee);
  266. esmAgreementProdfeeService.insertSelective(prodfee);
  267. }
  268. } else {
  269. List<EsmAgreementProdfeeCheck> feeList = esmAgreementProdfeeCheckService.selectList(" where checkid=?", new Object[]{checkid});
  270. for (EsmAgreementProdfeeCheck fee : feeList) {
  271. fee.setFeestatus(status);
  272. esmAgreementProdfeeCheckService.updateSelective(fee);
  273. }
  274. }
  275. return HttpResult.ok(msg, result);
  276. }
  277. /**
  278. * 根据主键查询费用信息
  279. *
  280. * @param checkid
  281. * @return
  282. */
  283. @GetMapping(value = "/findFeeById")
  284. public HttpResult findFeeById(@RequestParam String checkid) {
  285. EsmAgreementCheck agreementCheck = new EsmAgreementCheck();
  286. //产品信息
  287. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{checkid});
  288. ///协议信息
  289. String agreeid = prodList.get(0).getAgreeid();
  290. EsmAgreement agreement = esmAgreementService.selectByPk(agreeid);
  291. BeanUtils.copyProperties(agreement, agreementCheck);
  292. agreementCheck.setCheckid(checkid);
  293. agreementCheck.setAgreementProds(prodList);
  294. //费用信息
  295. List<EsmAgreementProdfeeCheck> feeList = esmAgreementProdfeeCheckService.selectList(" where checkid=?", new Object[]{checkid});
  296. agreementCheck.setProdfees(feeList);
  297. //最新的审核意见
  298. List<EsmAgreementCheckhistory> checkList = esmAgreementCheckhistoryService.selectList(" where checkid=? order by checktime desc", new Object[]{checkid});
  299. if (checkList.size() > 0) {
  300. agreementCheck.setRemark(checkList.get(0).getRemark());
  301. }
  302. return HttpResult.ok(agreementCheck);
  303. }
  304. /**
  305. * 保存团队费用信息
  306. *
  307. * @param record
  308. * @return
  309. */
  310. @PostMapping(value = "/saveTeamFee")
  311. public HttpResult saveTeamFee(@RequestBody List<EsmAgreementTeamfee> record) {
  312. Integer result = 0;
  313. String msg = "保存成功";
  314. for (EsmAgreementTeamfee teamFee : record) {
  315. if (teamFee.getId() == null || teamFee.getId().isEmpty()) {
  316. teamFee.setId(IdGenerate.nextId());
  317. teamFee.setCreator(getUserName());
  318. teamFee.setCreatetime(new Date());
  319. teamFee.setUpdateby(getUserName());
  320. teamFee.setUpdatetime(new Date());
  321. result = esmAgreementTeamfeeService.insertSelective(teamFee);//设置团队佣金信息
  322. } else {
  323. teamFee.setUpdateby(getUserName());
  324. teamFee.setUpdatetime(new Date());
  325. result = esmAgreementTeamfeeService.updateSelective(teamFee);
  326. }
  327. }
  328. return HttpResult.ok(msg, result);
  329. }
  330. // /**
  331. // * 查询协议团队费用信息
  332. // * @param teamcode
  333. // * @param agreeid
  334. // * @return
  335. // */
  336. // @PostMapping(value="/queryTeamFee")
  337. // public HttpResult queryTeamFee(@RequestParam String teamcode, @RequestParam String agreeid) {
  338. // StringBuffer whereStr = new StringBuffer(" where 1=1 ");
  339. // if(teamcode == null) teamcode = "";
  340. // whereStr.append(" and teamcode = ?");
  341. // whereStr.append(" and agreeid = ?");
  342. // //传入查询条件
  343. // List<EsmAgreementTeamfee> selectList =esmAgreementTeamfeeService.selectList(whereStr.toString(), new Object[]{teamcode,agreeid});
  344. // return HttpResult.ok(selectList);
  345. // }
  346. // /**
  347. // * 查询团队所属机构相匹配的协议(协议授权机构包含团队机构)
  348. // * @param comcode
  349. // * @return
  350. // */
  351. // @PostMapping(value="/queryAuthAgreement")
  352. // public HttpResult queryAuthAgreement(@RequestParam String comcode){
  353. // StringBuffer whereStr = new StringBuffer(" where 1=1 ");
  354. // if(comcode == null) comcode = "99";
  355. // whereStr.append(" and t.id in (SELECT a.agreeid FROM esm_agreement_prod a where a.authcomcode=left(?,length(a.authcomcode)))");
  356. // //传入查询条件
  357. // List<EsmAgreement> selectList =esmAgreementService.selectList(whereStr.toString(), new Object[]{comcode});
  358. // return HttpResult.ok(selectList);
  359. // }
  360. /**
  361. * 基础分页查询
  362. *
  363. * @param pageRequest
  364. * @return
  365. */
  366. @PostMapping(value = "/findPage")
  367. public HttpResult findPage(@RequestBody PageRequest pageRequest) {
  368. // return HttpResult.ok(esmTeamService.findPage(pageRequest));
  369. int pageNum = pageRequest.getPageNum();
  370. int pageSize = pageRequest.getPageSize();
  371. String comcode = pageRequest.getColumnFilterValue(pageRequest, "comcode"); // 所属机构
  372. String inscode = pageRequest.getColumnFilterValue(pageRequest, "inscode"); // 保险公司
  373. String insshortcode = pageRequest.getColumnFilterValue(pageRequest, "insshortcode"); // 保险公司简称
  374. String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate"); // 开始时间
  375. String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate"); // 截止时间
  376. String status = pageRequest.getColumnFilterValue(pageRequest, "status"); // 协议状态
  377. String productid = pageRequest.getColumnFilterValue(pageRequest, "productid"); // 产品代码
  378. String cancity = pageRequest.getColumnFilterValue(pageRequest, "cancity"); // 可承保城市
  379. StringBuffer whereStr = new StringBuffer(" where 1=1");
  380. ArrayList array = new ArrayList();
  381. if (!StringUtils.isEmpty(comcode)) {
  382. whereStr.append(" and comcode like ?");
  383. array.add("%" + comcode + "%");
  384. }
  385. if (!StringUtils.isEmpty(status)) {
  386. whereStr.append(" and agreestatus=?");
  387. array.add(status);
  388. }
  389. /*if(comcode != null && comcode.length()>0){
  390. whereStr.append(" and comcode=?");
  391. array.add(comcode);
  392. }
  393. if(inscode != null && inscode.length()>0){
  394. whereStr.append(" and (insure1=? or insure2=? or insure3=? or insure4=?)");
  395. array.add(inscode);
  396. array.add(inscode);
  397. array.add(inscode);
  398. array.add(inscode);
  399. }
  400. if(insshortcode != null && insshortcode.length()>0){
  401. whereStr.append(" and insureshort=?");
  402. array.add(insshortcode);
  403. }
  404. if(status != null && status.length()>0){
  405. //99 时查全部失效协议
  406. if(status.indexOf("99")>=0 && status.length()==2){
  407. whereStr.append(" and (current_date > t.enddate or current_date < t.startdate)");
  408. }else if(status.indexOf("99")>=0 && status.length()>2){
  409. // whereStr.append(" and agreestatus in (?) and (current_date > t.enddate or current_date < t.startdate)");
  410. // array.add(status);
  411. String[] list = status.split(",");
  412. whereStr.append(" and agreestatus in (");
  413. for(String s : list){
  414. whereStr.append("?,");
  415. array.add(s);
  416. }
  417. whereStr.deleteCharAt(whereStr.length()-1);
  418. whereStr.append(") and (current_date > t.enddate or current_date < t.startdate)");
  419. }else{
  420. //else if(status.indexOf("99")<0){
  421. String[] list = status.split(",");
  422. whereStr.append(" and agreestatus in (");
  423. for(String s : list){
  424. whereStr.append("?,");
  425. array.add(s);
  426. }
  427. whereStr.deleteCharAt(whereStr.length()-1);
  428. whereStr.append(") and current_date between t.startdate and t.enddate");
  429. }
  430. }
  431. if(startdate != null && startdate.length()>0){
  432. whereStr.append(" and DATE_FORMAT(createtime, '%Y-%m-%d') >= date ?");
  433. array.add(startdate);
  434. }
  435. if(enddate != null && enddate.length()>0){
  436. whereStr.append(" and DATE_FORMAT(createtime, '%Y-%m-%d') <= date ?");
  437. array.add(enddate);
  438. }
  439. if(productid != null && productid.length()>0){
  440. whereStr.append(" and exists(select 1 from esm_agreement_prod t1 where t1.agreeid=t.id and t1.productid=?)");
  441. array.add(productid);
  442. }
  443. if(cancity != null && cancity.length()>0){
  444. whereStr.append(" and exists(select 1 from esm_agreement_prod t1 where t1.agreeid=t.id and t1.cancity like ?)");
  445. array.add("%" +cancity+ "%");
  446. }*/
  447. //需要处理传入的部门
  448. PageResult pageResult = esmAgreementCheckService.selectPaging(pageNum, pageSize, whereStr.toString(), array.toArray());
  449. List list = pageResult.getContent();
  450. List<EsmAgreementCheck> agreeList = new ArrayList<EsmAgreementCheck>();
  451. for (Object obj : list) {
  452. EsmAgreementCheck agreement = (EsmAgreementCheck) obj;
  453. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{agreement.getCheckid()});
  454. agreement.setAgreementProds(prodList);
  455. List<EsmAgreementProdfeeCheck> feeList = new ArrayList<EsmAgreementProdfeeCheck>();
  456. for (EsmAgreementProdCheck prod : prodList) {
  457. List<EsmAgreementProdfeeCheck> prodfees = esmAgreementProdfeeCheckService.selectList(" where agreeprodid=?", new Object[]{prod.getId()});
  458. feeList.addAll(prodfees);
  459. }
  460. agreement.setProdfees(feeList);
  461. agreeList.add(agreement);
  462. }
  463. pageResult.setContent(agreeList);
  464. return HttpResult.ok(pageResult);
  465. }
  466. /**
  467. * 根据主键查询
  468. *
  469. * @param checkid
  470. * @return
  471. */
  472. @GetMapping(value = "/findById")
  473. public HttpResult findById(@RequestParam String checkid) {
  474. EsmAgreementCheck agreement = esmAgreementCheckService.selectByPk(checkid);
  475. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{checkid});
  476. // List<EsmAgreementProdfeeCheck> feeList = new ArrayList<EsmAgreementProdfeeCheck>();
  477. List<EsmAgreementProdfeeCheck> prodfees = esmAgreementProdfeeCheckService.selectList(" where checkid=?", new Object[]{checkid});
  478. agreement.setAgreementProds(prodList);
  479. agreement.setProdfees(prodfees);
  480. //最新的审核意见
  481. List<EsmAgreementCheckhistory> checkList = esmAgreementCheckhistoryService.selectList(" where checkid=? order by checktime desc", new Object[]{checkid});
  482. if (checkList.size() > 0) {
  483. agreement.setRemark(checkList.get(0).getRemark());
  484. }
  485. return HttpResult.ok(agreement);
  486. }
  487. // /**
  488. // * 删除协议
  489. // * @param id
  490. // * @return
  491. // */
  492. // @PostMapping(value="/deleteAgreement")
  493. // public HttpResult delete(@RequestParam String id) {
  494. // Integer result = 0;
  495. // String msg = "删除成功";
  496. //
  497. // if(id != null && id.length()>0){
  498. //
  499. // result = esmAgreementService.delete(id);
  500. // //删除协议产品信息
  501. // List<EsmAgreementProd> prodList = esmAgreementProdService.selectList(" where agreeid=?",new Object[]{id});
  502. // List<String> idList = new ArrayList<>();
  503. // for(EsmAgreementProd prod:prodList){
  504. // idList.add(prod.getId());
  505. // }
  506. // result = esmAgreementProdService.delete(id);
  507. // //删除产品费用信息
  508. // result = esmAgreementProdfeeService.delete(idList);
  509. //
  510. // } else {
  511. // msg = "id能为空";
  512. // return HttpResult.ok(msg, result);
  513. // }
  514. //
  515. // return HttpResult.ok(msg, result);
  516. // }
  517. @ApiOperation("协议审核 传入协议id和审核状态: 0 申请审核 1 审核通过 2 审核不通过")
  518. @GetMapping(value = "/check")
  519. public HttpResult check(@RequestParam String checkid, @RequestParam String status, String remark) {
  520. Integer result = 0;
  521. String msg = "保存成功";
  522. if (StringUtils.isEmpty(checkid)) {
  523. return HttpResult.error("checkid不能为空");
  524. }
  525. //更新协议状态
  526. EsmAgreementCheck agreementCheck = esmAgreementCheckService.selectByPk(checkid);
  527. if (agreementCheck == null) {
  528. msg = "协议不存在";
  529. return HttpResult.ok(msg, result);
  530. }
  531. agreementCheck.setAgreestatus(status);
  532. esmAgreementCheckService.updateSelective(agreementCheck);
  533. //保存审批意见
  534. EsmAgreementCheckhistory checkhis = new EsmAgreementCheckhistory();
  535. checkhis.setId(IdGenerate.nextId());
  536. checkhis.setCheckid(checkid);
  537. checkhis.setAgreeid(agreementCheck.getId());
  538. checkhis.setStatus(status);
  539. checkhis.setRemark(remark);
  540. checkhis.setCheckname(getUserName());
  541. checkhis.setChecktime(new Date());
  542. result = esmAgreementCheckhistoryService.insert(checkhis);
  543. if ("1".equals(status)) {
  544. List<EsmAgreement> list = esmAgreementService.selectList(" where id=?", new Object[]{agreementCheck.getId()});
  545. if (list != null && list.size() > 0) { //修改审核
  546. EsmAgreement agreement = list.get(0);
  547. BeanUtils.copyProperties(agreementCheck, agreement);
  548. esmAgreementService.updateSelective(agreement);
  549. esmAgreementProdService.delete(agreementCheck.getId());
  550. List<String> idList = new ArrayList<>();
  551. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{checkid});
  552. for (EsmAgreementProdCheck prodCheck : prodList) {
  553. EsmAgreementProd prod = new EsmAgreementProd();
  554. BeanUtils.copyProperties(prodCheck, prod);
  555. esmAgreementProdService.insertSelective(prod);
  556. idList.add(prodCheck.getId());
  557. }
  558. //根据产品id删除费用信息表
  559. esmAgreementProdfeeService.delete(idList);
  560. List<EsmAgreementProdfeeCheck> feeList = esmAgreementProdfeeCheckService.selectList(" where checkid=?", new Object[]{checkid});
  561. for (EsmAgreementProdfeeCheck fee : feeList) {
  562. fee.setFeestatus("1");
  563. esmAgreementProdfeeCheckService.updateSelective(fee);
  564. EsmAgreementProdfee prodfee = new EsmAgreementProdfee();
  565. BeanUtils.copyProperties(fee, prodfee);
  566. esmAgreementProdfeeService.insertSelective(prodfee);
  567. }
  568. } else { // 新增审核
  569. EsmAgreement agreement = new EsmAgreement();
  570. BeanUtils.copyProperties(agreementCheck, agreement);
  571. esmAgreementService.insertSelective(agreement);
  572. List<EsmAgreementProdCheck> prodList = esmAgreementProdCheckService.selectList(" where checkid=?", new Object[]{checkid});
  573. for (EsmAgreementProdCheck prodCheck : prodList) {
  574. EsmAgreementProd prod = new EsmAgreementProd();
  575. BeanUtils.copyProperties(prodCheck, prod);
  576. esmAgreementProdService.insertSelective(prod);
  577. }
  578. }
  579. }
  580. return HttpResult.ok(msg, result);
  581. }
  582. }