EsmInsAttributionController.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. package com.ydtech.modules.esm.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.ydtech.core.page.HttpResult;
  8. import com.ydtech.core.page.PageRequest;
  9. import com.ydtech.core.page.PageResult;
  10. import com.ydtech.modules.base.controller.BaseController;
  11. import com.ydtech.modules.esm.model.EsmInsAttribution;
  12. import com.ydtech.modules.esm.model.EsmInsAttributionDept;
  13. import com.ydtech.modules.esm.model.EsmInsAttributionTemplate;
  14. import com.ydtech.modules.esm.model.EsmInsCompany;
  15. import com.ydtech.modules.esm.model.vo.req.EsmInsAttributionAuthorizeReq;
  16. import com.ydtech.modules.esm.service.EsmInsAttributionDeptService;
  17. import com.ydtech.modules.esm.service.EsmInsAttributionService;
  18. import com.ydtech.modules.esm.service.EsmInsAttributionTemplateService;
  19. import com.ydtech.modules.esm.service.EsmInsCompanyService;
  20. import com.ydtech.modules.order.entity.vo.zm.ZmAscriptionResponse;
  21. import com.ydtech.modules.order.entity.vo.zm.ZmAscriptionVo;
  22. import com.ydtech.modules.order.service.ZhongMeiOrderService;
  23. import com.ydtech.utils.StringUtils;
  24. import io.swagger.annotations.Api;
  25. import io.swagger.annotations.ApiImplicitParam;
  26. import io.swagger.annotations.ApiImplicitParams;
  27. import io.swagger.annotations.ApiOperation;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.transaction.annotation.Transactional;
  30. import org.springframework.web.bind.annotation.*;
  31. import javax.servlet.http.HttpServletRequest;
  32. import java.util.ArrayList;
  33. import java.util.List;
  34. @Api(tags = "归属信息")
  35. @RestController
  36. @RequestMapping("/esm/attribution")
  37. public class EsmInsAttributionController extends BaseController {
  38. @Autowired
  39. EsmInsAttributionService esmInsAttributionService;
  40. @Autowired
  41. EsmInsAttributionDeptService esmInsAttributionDeptService;
  42. @Autowired
  43. EsmInsAttributionTemplateService esmInsAttributionTemplateService;
  44. @Autowired
  45. EsmInsCompanyService esmInsCompanyService;
  46. @Autowired
  47. ZhongMeiOrderService zhongMeiOrderService;
  48. @ApiOperation(value = "获取保险公司归属信息模板")
  49. @GetMapping(value = "/gainAttributionTemplate/{insCompanyId}")
  50. @ApiImplicitParams({
  51. @ApiImplicitParam(name = "insCompanyId", value = "保险公司ID")
  52. })
  53. public HttpResult<EsmInsAttributionTemplate> gainAffiliation(@PathVariable String insCompanyId, HttpServletRequest request) {
  54. LambdaQueryWrapper<EsmInsAttributionTemplate> queryWrapper = new LambdaQueryWrapper<>();
  55. queryWrapper.eq(EsmInsAttributionTemplate::getInsCompanyId, insCompanyId);
  56. EsmInsAttributionTemplate template = esmInsAttributionTemplateService.getOne(queryWrapper);
  57. if (null == template) return HttpResult.ok("模板不存在,请联系管理员初始化模板");
  58. return HttpResult.ok(template);
  59. }
  60. // @ApiOperation(value = "获取允许报价的保险公司列表")
  61. // @GetMapping(value = "/gainAllowQuoteList")
  62. // public HttpResult gainAllowQuoteList() {
  63. //
  64. // String str = RedisUtils.get(RedisConstant.INS_COMPANY_ALLOW_QUOTE);
  65. // if (StringUtils.isNotEmpty(str)) {
  66. // LambdaQueryWrapper<EsmInsAttribution> lqw = new LambdaQueryWrapper();
  67. // lqw.eq(EsmInsAttribution::getOpenQuote, 1);
  68. // List<EsmInsAttribution> openQuoteList = esmInsAttributionService.list(lqw);
  69. // RedisUtils.set(RedisConstant.INS_COMPANY_ALLOW_QUOTE, JsonUtils.toJson(openQuoteList));
  70. // }
  71. // List<EsmInsAttribution> attrList = JsonUtils.toObjectList(str, EsmInsAttribution.class);
  72. //
  73. //// LambdaQueryWrapper<EsmInsAttribution> queryWrapper = new LambdaQueryWrapper<>();
  74. //// queryWrapper.eq(EsmInsAttribution::getOpenQuote, "1");
  75. //// List<EsmInsAttribution> attrList = esmInsAttributionService.list(queryWrapper);
  76. //
  77. // return HttpResult.ok(attrList);
  78. // }
  79. /**
  80. * @author: lig
  81. * @date: 2022年10月26日 0026
  82. */
  83. @ApiOperation(value = "保存")
  84. @PostMapping(value = "/save")
  85. @Transactional
  86. public HttpResult save(@RequestBody EsmInsAttribution eia, HttpServletRequest request) {
  87. long i = esmInsAttributionService.count(new LambdaQueryWrapper<EsmInsAttribution>()
  88. .eq(EsmInsAttribution::getUsername, eia.getUsername()));
  89. if (StringUtils.isEmpty(eia.getId()) && i > 0) return HttpResult.ok("保险公司账号不可重复!");
  90. if (StringUtils.isNotEmpty(eia.getId()) && i > 1) return HttpResult.ok("保险公司账号不可重复!");
  91. String userId = getUserId();
  92. eia.setUserId(userId);
  93. //需要调用python 新增归属信息
  94. String aValue = "{}";
  95. //中煤
  96. if (StringUtils.isNotEmpty(eia.getInsCompanyId()) && eia.getInsCompanyId().equals("000019")) {
  97. ZmAscriptionVo zmVo = EsmInsAttribution.gainZmAscriptionVo(eia);
  98. ZmAscriptionResponse zmResponse = zhongMeiOrderService.ascription(zmVo);
  99. if (null == zmResponse) return HttpResult.ok("归属保存失败,请检查参数是否正确!");
  100. aValue = JSON.toJSONString(zmResponse);
  101. }
  102. eia.setValue(aValue);
  103. if (StringUtils.isNullOrEmpty(eia.getInsCompanyName())) {
  104. //保险公司
  105. EsmInsCompany insCompany = esmInsCompanyService.getById(eia.getInsCompanyId());
  106. eia.setInsCompanyName(insCompany.getName());
  107. }
  108. esmInsAttributionService.saveOrUpdate(eia);
  109. return HttpResult.ok();
  110. }
  111. @ApiOperation(value = "获取归属通过ID")
  112. @GetMapping(value = "/{id}")
  113. public HttpResult queryById(@PathVariable String id) {
  114. return HttpResult.ok(esmInsAttributionService.getById(id));
  115. }
  116. @ApiOperation(value = "获取用户归属 分页")
  117. @GetMapping(value = "/findPage")
  118. public HttpResult findPage(PageRequest pageRequest, HttpServletRequest request) {
  119. String userId = getUserId();
  120. // int pageNum = pageRequest.getPageNum();
  121. // int pageSize = pageRequest.getPageSize();
  122. String insCompanyId = pageRequest.getColumnFilterValue(pageRequest, "ins_company_id"); // 保险公司ID
  123. LambdaQueryWrapper<EsmInsAttribution> lqw = new LambdaQueryWrapper<>();
  124. lqw.eq(StringUtils.isNotEmpty(insCompanyId), EsmInsAttribution::getInsCompanyId, insCompanyId);
  125. lqw.eq(EsmInsAttribution::getUserId, userId);
  126. Page p = PageRequest.buildPageRequest(pageRequest);
  127. IPage<EsmInsAttribution> pResult = esmInsAttributionService.page(p, lqw);
  128. return HttpResult.ok(PageResult.buildPageResult(pResult));
  129. }
  130. @ApiOperation(value = "(Python使用)获取用户归属通过用户名")
  131. @GetMapping(value = "/gainAttributionByUsername")
  132. @ApiImplicitParams({
  133. @ApiImplicitParam(name = "username", value = "保险公司用户名")
  134. })
  135. public HttpResult<EsmInsAttribution> gainAffiliation(@PathVariable String username) {
  136. LambdaQueryWrapper<EsmInsAttribution> lqw = new LambdaQueryWrapper<>();
  137. lqw.eq(EsmInsAttribution::getUsername, username);
  138. return HttpResult.ok(esmInsAttributionService.getOne(lqw));
  139. }
  140. @ApiOperation(value = "删除归属信息")
  141. @DeleteMapping(value = "/delete/{id}")
  142. @ApiImplicitParam(name = "id", value = "归属ID", required = true, paramType = "query", dataType = "Long")
  143. public HttpResult delete(@PathVariable Long id) {
  144. return HttpResult.ok(esmInsAttributionService.removeById(id));
  145. }
  146. @ApiOperation(value = "归属授权")
  147. @PostMapping(value = "/authorize")
  148. // @ApiImplicitParam(name = "deptIds", value = "部门ID集", required = true, paramType = "query", dataType = "String")
  149. public HttpResult authorize(@RequestBody EsmInsAttributionAuthorizeReq req) {
  150. LambdaUpdateWrapper<EsmInsAttributionDept> luw = new LambdaUpdateWrapper<>();
  151. luw.eq(EsmInsAttributionDept::getAttributionId, req.getAttributionId());
  152. esmInsAttributionDeptService.remove(luw);
  153. if (null != req.getDeptIds() && !req.getDeptIds().isEmpty()) {
  154. List<EsmInsAttributionDept> eiadList = new ArrayList<>();
  155. req.getDeptIds().stream().forEach(a -> {
  156. EsmInsAttributionDept eiad = new EsmInsAttributionDept();
  157. eiad.setAttributionId(Long.valueOf(req.getAttributionId()));
  158. eiad.setInsCompanyId(req.getInsCompanyId());
  159. eiad.setDeptId(a);
  160. eiadList.add(eiad);
  161. });
  162. esmInsAttributionDeptService.saveBatch(eiadList);
  163. }
  164. return HttpResult.ok();
  165. }
  166. }