InsOrdersController.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. package com.ydtech.modules.order.controller;
  2. import cn.keking.anti_reptile.annotation.AntiReptile;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.ydtech.aop.request.RequestSingleParam;
  8. import com.ydtech.core.page.HttpResult;
  9. import com.ydtech.exception.SystemException;
  10. import com.ydtech.modules.admin.model.SysUser;
  11. import com.ydtech.modules.admin.model.po.SysUserIsDial;
  12. import com.ydtech.modules.admin.service.SysUserIsDialService;
  13. import com.ydtech.modules.base.controller.BaseController;
  14. import com.ydtech.modules.fee.service.CostsCalcService;
  15. import com.ydtech.modules.ins.model.InsOrdersExcelVo;
  16. import com.ydtech.modules.inv.utils.EasyExcelUtils;
  17. import com.ydtech.modules.order.components.InsOrdersComponents;
  18. import com.ydtech.modules.order.constants.OrderLinkTypeConstants;
  19. import com.ydtech.modules.order.entity.*;
  20. import com.ydtech.modules.order.entity.dto.InquiryDetalsQueryDto;
  21. import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
  22. import com.ydtech.modules.order.entity.vo.*;
  23. import com.ydtech.modules.order.service.*;
  24. import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
  25. import com.ydtech.modules.protocol.utils.AssertionUtils;
  26. import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
  27. import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
  28. import com.ydtech.utils.StringUtils;
  29. import io.swagger.annotations.Api;
  30. import io.swagger.annotations.ApiOperation;
  31. import org.springframework.beans.BeanUtils;
  32. import org.springframework.beans.factory.annotation.Value;
  33. import org.springframework.util.ObjectUtils;
  34. import org.springframework.validation.annotation.Validated;
  35. import org.springframework.web.bind.annotation.*;
  36. import javax.validation.Valid;
  37. import java.io.IOException;
  38. import java.nio.file.Files;
  39. import java.nio.file.Path;
  40. import java.nio.file.Paths;
  41. import java.util.ArrayList;
  42. import java.util.List;
  43. import java.util.Map;
  44. import java.util.Objects;
  45. import java.util.stream.Collectors;
  46. @Api(tags = "订单")
  47. @RequestMapping("/insurance/order")
  48. @RestController
  49. public class InsOrdersController extends BaseController {
  50. private final InsOrdersService insOrdersService;
  51. private final InsAreaCompanyService insAreaCompanyService;
  52. private final InsOrdersComponents insOrdersComponents;
  53. private final InsAccidentalDrivingService insAccidentalDrivingService;
  54. private final SysUserIsDialService sysUserIsDialService;
  55. private final BatchOrderService batchOrderService;
  56. private final InsAreaCompanyPositionService insAreaCompanyPositionService;
  57. private final InsFeeOrderNewService insFeeOrderNewService;
  58. private final CostsCalcService costsCalcService;
  59. @Value("${upload.file.path}")
  60. private String uploadPath;
  61. @Value("${upload.file.url}")
  62. private String uploadUrl;
  63. public InsOrdersController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService,
  64. InsOrdersComponents insOrdersComponents, InsAccidentalDrivingService insAccidentalDrivingService,
  65. SysUserIsDialService sysUserIsDialService, BatchOrderService batchOrderService,
  66. InsAreaCompanyPositionService insAreaCompanyPositionService, InsFeeOrderNewService insFeeOrderNewService, CostsCalcService costsCalcService) {
  67. this.insAreaCompanyService = insAreaCompanyService;
  68. this.insOrdersService = insOrdersService;
  69. this.insOrdersComponents = insOrdersComponents;
  70. this.insAccidentalDrivingService = insAccidentalDrivingService;
  71. this.sysUserIsDialService = sysUserIsDialService;
  72. this.batchOrderService = batchOrderService;
  73. this.insAreaCompanyPositionService = insAreaCompanyPositionService;
  74. this.insFeeOrderNewService = insFeeOrderNewService;
  75. this.costsCalcService = costsCalcService;
  76. }
  77. @GetMapping("/getAgreementInsCompany")
  78. @ApiOperation(value = "获取协议报价保险公司")
  79. public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany(@RequestParam(required = false) String deptId) {
  80. if (StringUtils.isEmpty(deptId)) {
  81. deptId = getDeptId();
  82. }
  83. String userId = getUserId();
  84. return this.insOrdersService.getAgreementInsCompany(deptId, userId);
  85. }
  86. @PostMapping("/generateOrder")
  87. @ApiOperation(value = "生成订单")
  88. public HttpResult<InsOrders> generateOrder(@Validated @RequestBody BaseQuoteInfoVo quoteInfoVo) {
  89. SysUser user = getUser();
  90. //app 订单取消了商业险信息
  91. if (Objects.isNull(quoteInfoVo.getKindList())) {
  92. quoteInfoVo.setKindList(new ArrayList<>());
  93. }
  94. InsOrders insOrders = this.insOrdersService.generateOrder(user, quoteInfoVo);
  95. return HttpResult.ok("success", insOrders);
  96. }
  97. @PostMapping("/getByOrderNo")
  98. @ApiOperation(value = "通过订单ID查询订单信息")
  99. public HttpResult<BaseQuoteInfoVo> getByOrderNo(@RequestSingleParam(value = "orderNo") String orderNo) {
  100. BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(orderNo);
  101. return HttpResult.ok("success", null);
  102. }
  103. @PostMapping("/revise")
  104. @ApiOperation(value = "查询订单和子订单")
  105. public HttpResult<InsOrdersEditingVo> revise(@RequestSingleParam(value = "orderNo") String orderNo) {
  106. InsOrdersEditingVo insOrders = this.insOrdersService.revise(orderNo);
  107. return HttpResult.ok("success", insOrders);
  108. }
  109. @PostMapping("/reviseApp")
  110. @ApiOperation(value = "查询订单和子订单")
  111. public HttpResult<InsOrdersEditingVo> reviseApp(@RequestSingleParam(value = "orderNo") String orderNo) {
  112. InsOrdersEditingVo insOrders = this.insOrdersService.reviseApp(orderNo);
  113. return HttpResult.ok("success", insOrders);
  114. }
  115. @PostMapping("/queryPageOrder")
  116. @ApiOperation(value = "[1]分页查询订单接口")
  117. public HttpResult<BasePageResult<InsOrders>> queryPageOrder(@RequestBody @Valid OrderQueryVo orderQueryVo) {
  118. BasePageResult<InsOrders> quoteResult = this.insOrdersService.newQueryPageOrder(orderQueryVo);
  119. return HttpResult.ok("success", quoteResult);
  120. }
  121. @PostMapping("/orderExportExcel")
  122. @ApiOperation(value = "订单导出excel接口")
  123. public HttpResult<String> orderExportExcel(@RequestBody InsOrdersExcelVo insOrdersExcelVo) {
  124. return this.insOrdersService.orderExportExcel(insOrdersExcelVo);
  125. }
  126. @PostMapping("/querySuborder")
  127. @ApiOperation(value = "[2]通过订单号查询子订单")
  128. public HttpResult<List<InsAreaCompanyQueryDto>> querySuborder(@RequestSingleParam(value = "orderNo") String orderNo) {
  129. List<InsAreaCompanyQueryDto> quoteResult = this.insOrdersService.querySuborder(orderNo);
  130. return HttpResult.ok("success", quoteResult);
  131. }
  132. @PostMapping("/queryInsAreaCompany")
  133. @ApiOperation(value = "通过主订单ID查询子订单")
  134. public HttpResult<List<InsAreaCompany>> queryInsAreaCompany(@RequestSingleParam(value = "orderNo") String orderNo) {
  135. this.insOrdersService.existOrder(orderNo);
  136. List<InsAreaCompany> insAreaCompanies = this.insAreaCompanyService.lambdaQuery().eq(InsAreaCompany::getOrderno, orderNo).list();
  137. return HttpResult.ok("success", insAreaCompanies);
  138. }
  139. @PostMapping("/queryQuoteHistory")
  140. @ApiOperation(value = "查询报价历史")
  141. public HttpResult<List<InsAreaCompanyHistoryVo>> queryQuoteHistory(@RequestBody QuoteHistoryVo quoteHistoryVo) {
  142. InsOrders insOrders = this.insOrdersService.existOrder(quoteHistoryVo.getOrderNo());
  143. List<InsAreaCompany> insAreaCompanies = this.insAreaCompanyService.lambdaQuery()
  144. .eq(!ObjectUtils.isEmpty(quoteHistoryVo.getOrderNo()), InsAreaCompany::getOrderno, quoteHistoryVo.getOrderNo())
  145. .eq(!ObjectUtils.isEmpty(quoteHistoryVo.getOrderStatus()), InsAreaCompany::getOrderstatus, quoteHistoryVo.getOrderStatus())
  146. .eq(InsAreaCompany::getDelFlag, "1")
  147. .orderByDesc(InsAreaCompany::getCreatetime)
  148. .list();
  149. List<String> insAreaCompanyIdList = insAreaCompanies.stream().map(InsAreaCompany::getId).collect(Collectors.toList());
  150. List<InsFeeOrderNew> list = insFeeOrderNewService.lambdaQuery().in(InsFeeOrderNew::getInsOrderNo, insAreaCompanyIdList).list();
  151. Map<String, InsFeeOrderNew> insFeeOrderNewMap = list.stream().collect(Collectors.toMap(InsFeeOrderNew::getInsOrderNo, x -> x));
  152. List<InsAreaCompanyHistoryVo> collect = insAreaCompanies.stream().map(a -> {
  153. InsAreaCompanyHistoryVo insAreaCompanyHistoryVo = new InsAreaCompanyHistoryVo();
  154. BeanUtils.copyProperties(a, insAreaCompanyHistoryVo);
  155. insAreaCompanyHistoryVo.setLicenseno(insOrders.getLicenseno());
  156. insAreaCompanyHistoryVo.setUserName(insOrders.getUsername());
  157. insAreaCompanyHistoryVo.setUserId(insOrders.getUserid());
  158. insAreaCompanyHistoryVo.setQuoteno(insOrders.getQuoteno());
  159. InsFeeOrderNew insFeeOrderNew = insFeeOrderNewMap.get(a.getId());
  160. if (!ObjectUtils.isEmpty(insFeeOrderNew)){
  161. SubOrderExportFeeVo subOrderExportFeeVo = costsCalcService.getExportFee(insFeeOrderNew);
  162. insAreaCompanyHistoryVo.setJqExportFee(subOrderExportFeeVo.getJqExportCosts());
  163. insAreaCompanyHistoryVo.setSyExportFee(subOrderExportFeeVo.getSyExportCosts());
  164. insAreaCompanyHistoryVo.setNoExportFee(subOrderExportFeeVo.getNoExportCosts());
  165. insAreaCompanyHistoryVo.setJqExportRadio(subOrderExportFeeVo.getJqExportRadio());
  166. insAreaCompanyHistoryVo.setSyExportRadio(subOrderExportFeeVo.getSyExportRadio());
  167. insAreaCompanyHistoryVo.setNoExportRadio(subOrderExportFeeVo.getNoExportRadio());
  168. insAreaCompanyHistoryVo.setSumExportFee(subOrderExportFeeVo.getJqExportCosts()
  169. .add(subOrderExportFeeVo.getSyExportCosts())
  170. .add(subOrderExportFeeVo.getNoExportCosts()));
  171. }
  172. // 设置评分信息
  173. insAreaCompanyHistoryVo.setRatingInformation();
  174. return insAreaCompanyHistoryVo;
  175. }).collect(Collectors.toList());
  176. return HttpResult.ok("success", collect);
  177. }
  178. @PostMapping("/getByCompanyId")
  179. @ApiOperation(value = "通过子订单查询订单信息")
  180. public HttpResult<OrderVo> getByCompanyId(@RequestSingleParam(value = "companyId") String companyId) {
  181. String userId = getUserId();
  182. return this.insOrdersService.getByCompanyId(companyId, userId);
  183. }
  184. @PostMapping("/getAccidentalDriving")
  185. @ApiOperation(value = "获取驾意险")
  186. public HttpResult<List<InsAccidentalDriving>> getAccidentalDriving(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
  187. LambdaQueryWrapper<InsAccidentalDriving> wrapper = new LambdaQueryWrapper<>();
  188. wrapper.eq(InsAccidentalDriving::getCompanyCode, accidentalDrivingVo.getCompanyCode()).and(i -> i.eq(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum()).or(j -> j.le(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum()).ge(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum())));
  189. List<InsAccidentalDriving> insAccidentalDrivings = insAccidentalDrivingService.list(wrapper);
  190. if (insAccidentalDrivings.isEmpty()) {
  191. throw new SystemException("查询结果为空");
  192. }
  193. return HttpResult.ok(insAccidentalDrivings);
  194. }
  195. @PostMapping("/verifyOrders")
  196. @ApiOperation(value = "验证近期是否出过单")
  197. public HttpResult<InsOrders> verifyOrders(@RequestBody VerifyOrdersVo verifyOrdersVo) {
  198. return insOrdersService.verifyOrders(verifyOrdersVo);
  199. }
  200. @PostMapping("/getPolicyInsuranceReport")
  201. @ApiOperation(value = "分页获取保单清单数据")
  202. public HttpResult<BasePageResult<PolicyInsuranceReportResVo>> getPolicyInsuranceReport(@RequestBody PolicyInsuranceReportReqVo policyInsuranceReportReqVo) {
  203. String userId = getUserId();
  204. BasePageResult<PolicyInsuranceReportResVo> quoteResult = insOrdersService.getPolicyInsuranceReport(policyInsuranceReportReqVo,
  205. userId);
  206. return HttpResult.ok("success", quoteResult);
  207. }
  208. @PostMapping("/exportPolicyInsuranceReport")
  209. @ApiOperation(value = "导出保单清单数据")
  210. public HttpResult<String> exportPolicyInsuranceReport(@RequestBody PolicyInsuranceReportReqVo policyInsuranceReportReqVo) {
  211. String userId = getUserId();
  212. return insOrdersService.exportPolicyInsuranceReport(policyInsuranceReportReqVo, userId);
  213. }
  214. /**
  215. * @version
  216. * @author: hxl
  217. * @Date: 2024/4/17 15:32
  218. * @Description: 添加待客录单查询订单接口
  219. */
  220. @PostMapping("/queryPageHospitalityOrder")
  221. @ApiOperation(value = "通过用户id和订单状态查询待客录单接口+分页")
  222. public HttpResult<BasePageResult<InsOrders>> queryPageHospitalityOrder(@RequestBody OrderQueryVo orderQueryVo) {
  223. if (orderQueryVo.getUserId() == null || "".equals(orderQueryVo.getUserId())) {
  224. return HttpResult.error("待客录单人员id不能为空");
  225. }
  226. try {
  227. //前台传的部门不对赋值null
  228. orderQueryVo.setDeptId(null);
  229. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageHospitalityOrder(orderQueryVo);
  230. return HttpResult.ok("success", quoteResult);
  231. } catch (Exception e) {
  232. return HttpResult.error("查询失败" + e.getMessage());
  233. }
  234. }
  235. /**
  236. * @version
  237. * @author: hxl
  238. * @Date: 2024/4/17 15:32
  239. * @Description: 通过用户id和订单状态查询关联渠道的订单数据+分页
  240. */
  241. @AntiReptile
  242. @PostMapping("/queryPageHospitalityByChannel")
  243. @ApiOperation(value = "通过用户id和订单状态查询关联渠道的订单数据+分页")
  244. public HttpResult<Object> queryPageHospitalityByChannel(@RequestBody OrderQueryVo orderQueryVo) {
  245. if (orderQueryVo.getUserId() == null || "".equals(orderQueryVo.getUserId())) {
  246. return HttpResult.error("待客录单人员id不能为空");
  247. }
  248. try {
  249. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo, OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_1.getCode());
  250. return HttpResult.ok("success", quoteResult);
  251. } catch (Exception e) {
  252. return HttpResult.error("查询失败" + e.getMessage());
  253. }
  254. }
  255. /**
  256. * @version
  257. * @author: hxl
  258. * @Date: 2024/4/17 15:32
  259. * @Description: 通过用户id和订单状态查询关联代理人的订单数据+分页
  260. */
  261. @AntiReptile
  262. @PostMapping("/queryPageHospitalityLinkagent")
  263. @ApiOperation(value = "通过用户id和订单状态查询关联代理人的订单数据+分页")
  264. public HttpResult<Object> queryPageHospitalityLinkagent(@RequestBody OrderQueryVo orderQueryVo) {
  265. if (orderQueryVo.getUserId() == null || "".equals(orderQueryVo.getUserId())) {
  266. return HttpResult.error("待客录单人员id不能为空");
  267. }
  268. try {
  269. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo, OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_2.getCode());
  270. return HttpResult.ok("success", quoteResult);
  271. } catch (Exception e) {
  272. return HttpResult.error("查询失败" + e.getMessage());
  273. }
  274. }
  275. /**
  276. * @version
  277. * @author: hxl
  278. * @Date: 2024/4/17 15:32
  279. * @Description: 通过用户id和订单状态查询关联保险公司的订单数据+分页
  280. */
  281. @AntiReptile
  282. @PostMapping("/queryPageHospitalityByInsuranceCompany")
  283. @ApiOperation(value = "通过用户id和订单状态查询关联保险公司的订单数据+分页")
  284. public HttpResult<Object> queryPageHospitalityByInsuranceCompany(@RequestBody OrderQueryVo orderQueryVo) {
  285. if (orderQueryVo.getUserId() == null || "".equals(orderQueryVo.getUserId())) {
  286. return HttpResult.error("待客录单人员id不能为空");
  287. }
  288. //if(orderQueryVo.getOrderStatus()==null || "".equals(orderQueryVo.getOrderStatus())){
  289. // return HttpResult.error("订单状态不能为空");
  290. // }
  291. try {
  292. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo, OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_3.getCode());
  293. return HttpResult.ok("success", quoteResult);
  294. } catch (Exception e) {
  295. return HttpResult.error("查询失败" + e.getMessage());
  296. }
  297. }
  298. @AntiReptile
  299. @PostMapping("/queryPageTelemarketingLinkAgent")
  300. @ApiOperation(value = "通过用户id和订单状态查询电销人员的订单数据+分页")
  301. public HttpResult<Object> queryPageTelemarketingLinkAgent(@RequestBody OrderQueryVo orderQueryVo) {
  302. try {
  303. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo, OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_4.getCode());
  304. return HttpResult.ok("success", quoteResult);
  305. } catch (Exception e) {
  306. return HttpResult.error("查询失败" + e.getMessage());
  307. }
  308. }
  309. @PostMapping("/getTaskByCompanyId")
  310. @ApiOperation(value = "通过子订单查询订单信息(任务管理)")
  311. public HttpResult<OrderVo> getTaskByCompanyId(@RequestSingleParam(value = "companyId") String companyId) {
  312. String userId = getUserId();
  313. return this.insOrdersService.getTaskByCompanyId(companyId, userId);
  314. }
  315. /**
  316. * @version
  317. * @author: hxl
  318. * @Date: 2024/5/13 8:41
  319. * @Description: 批量更新子订单的险种信息
  320. */
  321. @GetMapping("/updateBatchPruductById")
  322. @ApiOperation(value = "批量更新子订单的险种信息")
  323. public HttpResult updateBatchPruductById(String subOrderId) {
  324. return this.insAreaCompanyService.updateBatchPruductById(subOrderId);
  325. }
  326. @GetMapping("/getMobileByOrderNo")
  327. @ApiOperation(value = "通过订单号查询手机号码")
  328. public HttpResult getMobileByOrderNo(String orderNo, String type) {
  329. JSONObject result = new JSONObject();
  330. String phone = insOrdersService.getMobileByOrderNo(orderNo, type);
  331. result.put("phone", phone);
  332. SysUserIsDial sysUserIsDial = sysUserIsDialService.getByUserId(getUserId());
  333. if (sysUserIsDial != null) {
  334. if (sysUserIsDial.getIsDial().equals("1")) {
  335. result.put("username", sysUserIsDial.getDialUserName());
  336. result.put("password", sysUserIsDial.getDialPassWord());
  337. }
  338. }
  339. return HttpResult.ok(result);
  340. }
  341. /**
  342. * 获取快到期的保单
  343. *
  344. * @return
  345. */
  346. @PostMapping("/getExpirationInsure")
  347. @ApiOperation(value = "获取快到期的保单")
  348. public HttpResult getExpirationInsure(@RequestBody OrderExpirationQueryVo orderExpirationQueryVo) {
  349. Page page = buildPageRequest(orderExpirationQueryVo.getPageDto());
  350. orderExpirationQueryVo.setUserid(getUserId());
  351. return HttpResult.ok(insOrdersService.getExpirationInsure(page, orderExpirationQueryVo));
  352. }
  353. /**
  354. * 获取快到期的保单的数量
  355. *
  356. * @return
  357. */
  358. @PostMapping("/getExpirationInsureCount")
  359. @ApiOperation(value = "获取快到期的保单数量")
  360. public HttpResult getExpirationInsureCount(@RequestBody OrderExpirationQueryVo orderExpirationQueryVo) {
  361. orderExpirationQueryVo.setUserid(getUserId());
  362. return HttpResult.ok(insOrdersService.getExpirationInsureCount(orderExpirationQueryVo));
  363. }
  364. /**
  365. * 批单操作
  366. *
  367. * @param batchOrderVo
  368. * @return
  369. */
  370. @PostMapping("/batchOrder")
  371. @ApiOperation(value = "批单")
  372. public HttpResult batchOrder(@RequestBody BatchOrderVo batchOrderVo) {
  373. boolean result = batchOrderService.batchOrder(batchOrderVo);
  374. if (result) {
  375. return HttpResult.ok("批单修改成功,等待审核");
  376. } else {
  377. return HttpResult.error("批单修改失败");
  378. }
  379. }
  380. /**
  381. * 获取批单信息
  382. *
  383. * @param subOrderNo
  384. * @return
  385. */
  386. @GetMapping("/getBatchOrder")
  387. @ApiOperation(value = "获取批单信息")
  388. public HttpResult getBatchOrder(String subOrderNo) {
  389. BatchOrder batchOrderBySubOrderNo = batchOrderService.getBatchOrderBySubOrderNo(subOrderNo);
  390. if (batchOrderBySubOrderNo != null) {
  391. return HttpResult.ok(batchOrderBySubOrderNo);
  392. } else {
  393. return HttpResult.error("获取批单失败");
  394. }
  395. }
  396. @PostMapping("/getBatchOrderList")
  397. @ApiOperation(value = "获取批单列表")
  398. public HttpResult getBatchOrderList(@RequestBody BatchOrderQueryVo batchOrderQueryVo) {
  399. Page page = buildPageRequest(batchOrderQueryVo.getPageDto());
  400. if (batchOrderQueryVo.getIsAudit() == null) {
  401. batchOrderQueryVo.setIsAudit(0);
  402. }
  403. return HttpResult.ok(batchOrderService.getBatchOrderList(page, batchOrderQueryVo));
  404. }
  405. @PostMapping("/getBtachOrderRejectList")
  406. @ApiOperation(value = "获取批单驳回列表")
  407. public HttpResult getBatchOrderRejectList(@RequestBody BatchOrderQueryVo batchOrderQueryVo) {
  408. Page page = buildPageRequest(batchOrderQueryVo.getPageDto());
  409. batchOrderQueryVo.setUserId(getUserId());
  410. if (batchOrderQueryVo.getIsAudit() == null) {
  411. batchOrderQueryVo.setIsAudit(2);
  412. }
  413. return HttpResult.ok(batchOrderService.getBatchOrderRejectList(page, batchOrderQueryVo));
  414. }
  415. @PostMapping("/auditBatchOrder")
  416. @ApiOperation(value = "批单审核")
  417. public HttpResult auditBatchOrder(@RequestBody BatchOrderAuditVo batchOrderAuditVo) {
  418. boolean result = batchOrderService.auditBatchOrder(batchOrderAuditVo);
  419. if (result) {
  420. return HttpResult.ok("批单审核成功");
  421. } else {
  422. return HttpResult.error("批单审核失败");
  423. }
  424. }
  425. @PostMapping("/savePosition")
  426. @ApiOperation(value = "保存位置信息")
  427. public HttpResult savePosition(@RequestBody InsAreaCompanyPosition insAreaCompanyPosition) {
  428. return HttpResult.ok(insAreaCompanyPositionService.save(insAreaCompanyPosition));
  429. }
  430. /**
  431. * @version
  432. * @author: hxl
  433. * @Date: 2024/6/24 18:07
  434. * @Description: 通过子订单ids获取比价信息
  435. */
  436. @PostMapping("/getInquiryDetalsBySubOrderNos")
  437. @ApiOperation(value = "通过子订单ids获取比价信息")
  438. public HttpResult<InquiryDetalsVo> getInquiryDetalsBySubOrderNos(@RequestBody InquiryDetalsQueryDto inquiryDetalsDto) {
  439. return HttpResult.ok(insOrdersService.getInquiryDetalsBySubOrderIds(inquiryDetalsDto));
  440. }
  441. @PostMapping("/queryHxOrdersCount")
  442. @ApiOperation(value = "查询后线人员代课录单次数")
  443. public HttpResult<IPage<QueryHxOrdersCountVo>> queryHxOrdersCount(@RequestBody QueryHxOrdersCountVo queryHxOrdersCountVo) {
  444. IPage<QueryHxOrdersCountVo> result = insOrdersService.queryHxOrdersCount(queryHxOrdersCountVo);
  445. return HttpResult.ok("success", result);
  446. }
  447. @PostMapping("/exportHxOrdersCount")
  448. @ApiOperation(value = "导出后线人员代课录单次数")
  449. public HttpResult exportHxOrdersCount(@RequestBody QueryHxOrdersCountVo queryHxOrdersCountVo) throws IOException {
  450. List<QueryHxOrdersCountExcel> result = insOrdersService.exportHxOrdersCount(queryHxOrdersCountVo);
  451. String uploadPath = this.uploadPath + "/excel/";
  452. Path path = Paths.get(uploadPath);
  453. if (!Files.exists(path)) {
  454. Files.createDirectories(path);
  455. }
  456. String fileName = EasyExcelUtils.downExcel(uploadPath, "后线人员代课录单统计报表", QueryHxOrdersCountExcel.class, result);
  457. return HttpResult.ok("", uploadUrl + "excel/" + fileName);
  458. }
  459. @PostMapping("/queryLicenseInOrder")
  460. @ApiOperation(value = "查询订单中的车牌")
  461. public HttpResult<List<String>> queryLicenseInOrder(@RequestBody QueryLicenseInOrderVo queryLicenseInOrderVo){
  462. List<String> licenseList = insOrdersService.queryLicenseInOrder(queryLicenseInOrderVo);
  463. return HttpResult.ok(licenseList);
  464. }
  465. @PostMapping("/queryInsuredInOrder")
  466. @ApiOperation(value = "查询订单中的被保人")
  467. public HttpResult<List<String>> queryInsuredInOrder(@RequestBody QueryLicenseInOrderVo queryInsuredInOrderVo){
  468. List<String> insured = insOrdersService.queryInsuredInOrder(queryInsuredInOrderVo);
  469. return HttpResult.ok(insured);
  470. }
  471. @PostMapping("/shutDown/{orderNo}")
  472. @ApiOperation(value = "关闭订单")
  473. public HttpResult shutDown(@PathVariable String orderNo) {
  474. InsOrders insOrders = insOrdersService.getById(orderNo);
  475. insOrders.setDelFlag("0");
  476. boolean b = insOrdersService.updateById(insOrders);
  477. AssertionUtils.isSucceed(b, "关闭订单失败");
  478. return HttpResult.ok();
  479. }
  480. }