From aa33bb96ba9f14b16c6c7832e21bfbd88983ba6d Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期三, 24 一月 2024 18:02:39 +0800 Subject: [PATCH] zjh 2024/01/24--3 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java | 140 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 121 insertions(+), 19 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java index 3e60259..3ec2412 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java @@ -1,19 +1,26 @@ package com.ltkj.web.controller.system; +import java.io.*; import java.math.BigDecimal; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.extra.pinyin.PinyinUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.Joiner; +import com.ltkj.common.annotation.RepeatSubmit; import com.ltkj.common.excelConfig.ExcelUtils; +import com.ltkj.common.task.TaskService; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.common.utils.StringUtils; import com.ltkj.framework.config.MatchUtils; @@ -21,12 +28,17 @@ import com.ltkj.hosp.dto.ConfirmDto; import com.ltkj.hosp.dto.ExcelImportDto; import com.ltkj.hosp.service.*; +import com.ltkj.mall.mallOrderUtils.TjConstants; +import com.ltkj.web.config.pdfutils.PDFBinaryUtil; import com.ltkj.web.config.redis.OrderDelayService; +import com.ltkj.web.config.task.TjReservationTask; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; @@ -68,20 +80,79 @@ private ITjGroupingProService groupingProService; @Resource private TjAsyncService asyncService; +// @Resource +// private OrderDelayService delayService; + @Autowired + private TaskService taskService; @Resource - private OrderDelayService delayService; + private ITjReportTemplateService reportTemplateService; + + @Value("${path.filePath}") + private String value; @PostMapping("/importTemplate") @ApiOperation(value = "瀵煎嚭excel琛ㄦā鏉�") public void importTemplate(HttpServletResponse response) { - ExcelUtils.exportTemplate(response, "浣撴棰勭害Excel妯℃澘", TjReservation.class); + //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙� + String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\瑗垮畨璺嘲鏈虹數绉戞妧鏈夐檺鍏徃.xls"); + if(null !=base64String){ + PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + "\\" + "鍥綋棰勭害Excel妯$増.xls"); + String filePath = value + "\\" + "鍥綋棰勭害Excel妯$増.xls"; + File f = new File(filePath); + BufferedInputStream br = null; + OutputStream out = null; + FileInputStream fileInputStream = null; + try { + fileInputStream = new FileInputStream(f); + br = new BufferedInputStream(fileInputStream); + byte[] bs = new byte[1024]; + int len = 0; + response.reset(); // 闈炲父閲嶈 + if (true) { + // 鍦ㄧ嚎鎵撳紑鏂瑰紡 + URL u = new URL("file:///" + filePath); + //System.out.println(u); + String contentType = u.openConnection().getContentType(); + response.setContentType(contentType); + response.setHeader("Content-Disposition", "inline;filename=鍥綋棰勭害Excel妯$増.xls"); + } else { + // 绾笅杞芥柟寮� + response.setContentType("application/x-msdownload"); + response.setContentType("application/pdf;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=鍥綋棰勭害Excel妯$増.xls"); + } + out = response.getOutputStream(); + while ((len = br.read(bs)) > 0) { + out.write(bs, 0, len); + } + out.flush(); + out.close(); + br.close(); + fileInputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + //System.out.println("pdf澶勭悊鏂囦欢寮傚父" + e); + } finally { + if (out != null) { + try { + out.close(); + br.close(); + fileInputStream.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } } + /** * 鏌ヨ浣撴棰勭害鍒楄〃 */ - @PreAuthorize("@ss.hasPermi('reservation:reservation:list')") + //@PreAuthorize("@ss.hasPermi('reservation:reservation:list')") @GetMapping("/list") @ApiOperation(value = "鏌ヨ浣撴棰勭害鍒楄〃鎺ュ彛(榛樿)") public TableDataInfo list(TjReservation tjReservation) { @@ -168,6 +239,7 @@ */ @PostMapping("/newExcelImport") @ApiOperation(value = "鍥綋瀵煎叆 (鏂扮増鏈�)") + @Transactional public AjaxResult newExcelImport(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file, @RequestParam @ApiParam(value = "鍗曚綅id") String dwId, @RequestParam @ApiParam(value = "鍗曚綅閮ㄩ棬id") String dwDeptId) { @@ -320,7 +392,7 @@ reservation.setTjType(String.valueOf(1)); reservation.setTeamNo(teamNo); tjReservationService.save(reservation); - delayService.reservation(reservation.getId()); +// delayService.reservation(reservation.getId()); } LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>(); wq0.eq(TjCompPay::getCompId, compId); @@ -407,9 +479,15 @@ tjReservation.setIsExpire(2); tjReservation.setTjType(String.valueOf(2)); if (tjReservationService.save(tjReservation)) { - delayService.reservation(tjReservation.getId()); +// delayService.reservation(tjReservation.getId()); + taskService.addTask(new TjReservationTask(tjReservation.getId(), + DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS))); return AjaxResult.success("棰勭害鎴愬姛!!!"); } + LambdaQueryWrapper<TbTransition> remove=new LambdaQueryWrapper<>(); + remove.between(TbTransition::getCreateTime,DateUtil.offsetMinute(transitionService.getTbTransitionCreateTimeByCusId(tjReservation.getIdCard()),-1),new Date()); + remove.eq(TbTransition::getCusId,tjReservation.getIdCard()); + transitionService.remove(remove); return AjaxResult.error("棰勭害澶辫触"); } @@ -419,11 +497,20 @@ */ @GetMapping(value = "/{id}") @ApiOperation(value = "鏍规嵁棰勭害id鑾峰彇棰勭害璇︽儏") - public AjaxResult getInfo(@PathVariable("id") @ApiParam(value = "棰勭害id") Integer id) { + public AjaxResult getInfo(@PathVariable("id") @ApiParam(value = "棰勭害id") String id) { TjReservation tjReservation = tjReservationService.selectTjReservationById(id); if (null != tjReservation) { if (null != tjReservation.getPacId()) { - tjReservation.setPacName(packageService.getById(tjReservation.getPacId()).getPacName()); + TjPackage aPackage = packageService.getById(tjReservation.getPacId()); + if(null !=aPackage){ + tjReservation.setPacName(aPackage.getPacName()); + } + TjDwDept dwDept = dwDeptService.getById(tjReservation.getPacId()); + + if(null !=dwDept){ + tjReservation.setPacName(dwDept.getDwName()); + } + } if (null != tjReservation.getProIds()) { List<String> proNames = new ArrayList<>(); @@ -451,6 +538,7 @@ if (null != reservation && reservation.getIsExpire() == 2) { if (tjReservationService.removeById(id)) { transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard())); + taskService.removeTask(new TjReservationTask(id)); return AjaxResult.success("鎾ら攢鎴愬姛"); } return AjaxResult.error("鎾ら攢澶辫触"); @@ -471,6 +559,7 @@ if (null != reservation && reservation.getIsExpire() == 2) { if (tjReservationService.removeById(id)) { transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard())); + taskService.removeTask(new TjReservationTask(id)); } } } @@ -486,10 +575,18 @@ @PostMapping("/tjReappoint") @ApiOperation(value = "浣撴棰勭害淇敼鎺ュ彛") public AjaxResult tjReappoint(@RequestBody TjReservation tjReservation) { + TjReservation reservation = tjReservationService.getById(tjReservation.getId()); + if (tjReservation.getIsExpire() == 1) { return AjaxResult.error("棰勭害宸茶繃鏈熶笉鍙慨鏀�"); } + tjReservation.setIdCard(reservation.getIdCard()); + tjReservation.setPhoe(reservation.getPhoe()); + tjReservation.setName(reservation.getName()); if (tjReservationService.updateById(tjReservation)) { + taskService.removeTask(new TjReservationTask(tjReservation.getId())); + taskService.addTask(new TjReservationTask(tjReservation.getId(), + DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS))); return AjaxResult.success("鎿嶄綔鎴愬姛"); } return AjaxResult.error("鎿嶄綔澶辫触"); @@ -524,11 +621,11 @@ @PostMapping("/newReservationConfirm") @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)") + @Transactional + @RepeatSubmit public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) { //棰勭害鐨勬墍鏈変汉 List<TjReservation> rightList = dto.getReservations(); - - //棰勭害鏃堕棿 String reservationTime = dto.getReservationTime(); @@ -540,7 +637,8 @@ TjDwDept dwDept = dwDeptService.getById(dto.getDwDeptId()); //寮傛鏁版嵁 - asyncService.addNewReservationConfirm(rightList); +// asyncService.addNewReservationConfirm(rightList); + asyncService.saveNewReservationConfirm(rightList); //鍥綋浜烘暟鍚堣浠锋牸 BigDecimal compPay=new BigDecimal("0.00"); @@ -568,16 +666,20 @@ reservation.setCompany(dwGrouping.getDwName()); reservation.setPayType(Long.valueOf(dwGrouping.getPayType())); reservation.setPacId(dwDept.getId()); - if(dwGrouping.getPayType().equals("1")){ - compPay=compPay.add(dwGrouping.getYsPrice()); - tramNum+=1; - reservation.setTjType(String.valueOf(1)); - reservation.setTeamNo(teamNo); - }else { - reservation.setTjType(String.valueOf(2)); - } +// if(dwGrouping.getPayType().equals("1")){ +// compPay=compPay.add(dwGrouping.getYsPrice()); +// tramNum+=1; +// reservation.setTjType(String.valueOf(1)); +// reservation.setTeamNo(teamNo); +// }else { +// reservation.setTjType(String.valueOf(2)); +// } + compPay=compPay.add(dwGrouping.getYsPrice()); + tramNum+=1; + reservation.setTjType(String.valueOf(1)); + reservation.setTeamNo(teamNo); tjReservationService.save(reservation); - delayService.reservation(reservation.getId()); + taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(reservation.getReservationTime()), DateUnit.MS))); } LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>(); wq0.eq(TjCompPay::getCompId, dwDept.getDwId()); -- Gitblit v1.8.0