InsOrdersController.java 20 KB

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