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 |  136 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 117 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 f5451b9..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,7 +479,9 @@
         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<>();
@@ -423,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<>();
@@ -455,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("鎾ら攢澶辫触");
@@ -475,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));
                     }
                 }
             }
@@ -490,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("鎿嶄綔澶辫触");
@@ -528,11 +621,11 @@
 
     @PostMapping("/newReservationConfirm")
     @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)")
+    @Transactional
+    @RepeatSubmit
     public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) {
         //棰勭害鐨勬墍鏈変汉
         List<TjReservation> rightList = dto.getReservations();
-
-
 
         //棰勭害鏃堕棿
         String reservationTime = dto.getReservationTime();
@@ -544,7 +637,8 @@
         TjDwDept dwDept = dwDeptService.getById(dto.getDwDeptId());
 
         //寮傛鏁版嵁
-        asyncService.addNewReservationConfirm(rightList);
+//        asyncService.addNewReservationConfirm(rightList);
+        asyncService.saveNewReservationConfirm(rightList);
 
         //鍥綋浜烘暟鍚堣浠锋牸
         BigDecimal compPay=new BigDecimal("0.00");
@@ -572,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