From c18883f498664bcef31f31bbb6e680ed0e930e10 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 23 一月 2024 17:12:14 +0800
Subject: [PATCH] zjh 2024/01/23--3

---
 ltkj-admin/src/main/java/com/ltkj/web/config/task/TjReservationTask.java             |   58 ++++++++
 ltkj-admin/src/test/java/zjhTest.java                                                |   22 +-
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java       |   33 +---
 ltkj-common/src/main/java/com/ltkj/common/utils/bean/BeanUtil.java                   |   24 +++
 ltkj-admin/src/main/java/com/ltkj/web/config/task/MallOrderTask.java                 |   86 ++++++++++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/mall/WxMallOrderController.java     |    4 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java |  154 ++++++++++-----------
 ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java      |   22 ++
 8 files changed, 286 insertions(+), 117 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/task/MallOrderTask.java b/ltkj-admin/src/main/java/com/ltkj/web/config/task/MallOrderTask.java
new file mode 100644
index 0000000..f69122c
--- /dev/null
+++ b/ltkj-admin/src/main/java/com/ltkj/web/config/task/MallOrderTask.java
@@ -0,0 +1,86 @@
+package com.ltkj.web.config.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ltkj.common.task.Task;
+import com.ltkj.common.utils.bean.BeanUtil;
+import com.ltkj.hosp.domain.TjCustomer;
+import com.ltkj.hosp.domain.TjReservation;
+import com.ltkj.hosp.service.ITbTransitionService;
+import com.ltkj.hosp.service.ITjCustomerService;
+import com.ltkj.hosp.service.ITjReservationService;
+import com.ltkj.mall.domain.MallOrder;
+import com.ltkj.mall.domain.MallTimeConfig;
+import com.ltkj.mall.mallOrderUtils.OrderHandleOption;
+import com.ltkj.mall.mallOrderUtils.OrderUtil;
+import com.ltkj.mall.service.IMallOrderService;
+import com.ltkj.mall.service.IMallTimeConfigService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Date;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zjh
+ * @Date: 2024/1/11 0011 16:19
+ */
+public class MallOrderTask extends Task {
+
+    private final Log log = LogFactory.getLog(MallOrderTask.class);
+    private String orderId = "-1";
+
+    public MallOrderTask(String orderId, long delayInMilliseconds) {
+        super("MallOrderTask-" + orderId, delayInMilliseconds);
+        this.orderId = orderId;
+    }
+
+    public MallOrderTask(String orderId) {
+
+        super("MallOrderTask-" + orderId, 30 * 60 * 1000);
+        this.orderId = orderId;
+    }
+
+    @Override
+    public void run() {
+        IMallOrderService orderService = BeanUtil.getBean(IMallOrderService.class);
+        ITjReservationService reservationService = BeanUtil.getBean(ITjReservationService.class);
+        ITbTransitionService transitionService = BeanUtil.getBean(ITbTransitionService.class);
+        IMallTimeConfigService mallTimeConfigService = BeanUtil.getBean(IMallTimeConfigService.class);
+        ITjCustomerService tjCustomerService = BeanUtil.getBean(ITjCustomerService.class);
+        MallOrder order = orderService.getById(orderId);
+        //杩欓噷鏍规嵁orderSerialNo鍘绘鏌ョ敤鎴锋槸鍚﹀畬鎴愪簡璁㈠崟鏀粯
+        //濡傛灉鐢ㄦ埛娌℃湁鏀粯璁㈠崟锛屽幓鎵ц璁㈠崟鍏抽棴鐨勬搷浣�
+
+        if (order == null) {
+            log.info("璁㈠崟" + orderId + "涓嶅瓨鍦� 琚嚜鍔ㄥ叧闂�");
+        }else {
+            // 妫�娴嬫槸鍚﹁兘澶熷彇娑�
+            OrderHandleOption handleOption = OrderUtil.build(order);
+            if (!handleOption.isCancel()) {
+                log.info("璁㈠崟" + orderId + "涓嶈兘鍙栨秷 琚嚜鍔ㄥ叧闂�");
+            }else {
+                // 璁剧疆璁㈠崟宸插彇娑堢姸鎬�
+                order.setOrderStatus(OrderUtil.STATUS_CANCEL.longValue());
+                order.setCloseTime(new Date());
+                order.setUpdateTime(new Date());
+                orderService.updateById(order);
+                //瀵瑰簲棰勭害鏃堕棿鏁伴噺+1
+                final TjReservation byId = reservationService.getById(order.getReservationId());
+                final Date reservationTime = byId.getReservationTime();
+                LambdaQueryWrapper<MallTimeConfig> wq=new LambdaQueryWrapper<>();
+                wq.eq(MallTimeConfig::getTime,reservationTime);
+                final MallTimeConfig one = mallTimeConfigService.getOne(wq);
+                one.setNowNum(one.getNowNum()+1);
+                mallTimeConfigService.updateById(one);
+                byId.setIsExpire(1);
+                reservationService.updateById(byId);
+                TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(byId.getIdCard());
+                String cardId ="0";
+                if(null !=tjCustomer){
+                    cardId = tjCustomer.getCardId();
+                }
+                transitionService.deletedTbTransitionListByCusIdAndTjNum(byId.getIdCard(),cardId);
+            }
+        }
+    }
+}
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/task/TjReservationTask.java b/ltkj-admin/src/main/java/com/ltkj/web/config/task/TjReservationTask.java
new file mode 100644
index 0000000..c2ab2cb
--- /dev/null
+++ b/ltkj-admin/src/main/java/com/ltkj/web/config/task/TjReservationTask.java
@@ -0,0 +1,58 @@
+package com.ltkj.web.config.task;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ltkj.common.task.Task;
+import com.ltkj.common.utils.bean.BeanUtil;
+import com.ltkj.hosp.domain.TjCustomer;
+import com.ltkj.hosp.domain.TjReservation;
+import com.ltkj.hosp.service.ITbTransitionService;
+import com.ltkj.hosp.service.ITjCustomerService;
+import com.ltkj.hosp.service.ITjReservationService;
+import com.ltkj.mall.domain.MallTimeConfig;
+import com.ltkj.mall.service.IMallTimeConfigService;
+
+
+public class TjReservationTask extends Task {
+
+    private String reservationId = "-1";
+
+    public TjReservationTask(String cusRegisterId, long delayInMilliseconds) {
+        super("TjReservationTask-" + cusRegisterId, delayInMilliseconds);
+        this.reservationId = cusRegisterId;
+    }
+
+    public TjReservationTask(String cusRegisterId) {
+        super("TjReservationTask-" + cusRegisterId, 60 * 1000 * 60 * 24);
+//        super("TjReservationTask-" + cusRegisterId, 60 * 1000 *3);
+        this.reservationId = cusRegisterId;
+    }
+
+    @Override
+    public void run() {
+        ITjReservationService reservationService = BeanUtil.getBean(ITjReservationService.class);
+        ITbTransitionService transitionService = BeanUtil.getBean(ITbTransitionService.class);
+        IMallTimeConfigService mallTimeConfigService = BeanUtil.getBean(IMallTimeConfigService.class);
+        ITjCustomerService tjCustomerService = BeanUtil.getBean(ITjCustomerService.class);
+        TjReservation tjReservation = reservationService.getById(reservationId);
+        if(null!=tjReservation){
+            TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(tjReservation.getIdCard());
+            String cardId ="0";
+            if(null !=tjCustomer){
+                cardId = tjCustomer.getCardId();
+            }
+            if(tjReservation.getIsExpire()==2){
+                //瀵瑰簲棰勭害鏃堕棿鏁伴噺+1
+                LambdaQueryWrapper<MallTimeConfig> wq=new LambdaQueryWrapper<>();
+                wq.eq(MallTimeConfig::getTime,tjReservation.getReservationTime());
+                final MallTimeConfig one = mallTimeConfigService.getOne(wq);
+                one.setNowNum(one.getNowNum()+1);
+                mallTimeConfigService.updateById(one);
+                tjReservation.setIsExpire(1);
+                reservationService.updateById(tjReservation);
+                transitionService.deletedTbTransitionListByCusIdAndTjNum(tjReservation.getIdCard(),cardId);
+            }
+        }
+    }
+}
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
index 17b0d98..19a01d9 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
@@ -1,5 +1,6 @@
 package com.ltkj.web.controller.app;
 
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
@@ -7,6 +8,7 @@
 import com.google.common.base.Joiner;
 import com.ltkj.common.core.controller.BaseController;
 import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.task.TaskService;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
 import com.ltkj.framework.config.UserHoder;
@@ -16,6 +18,7 @@
 import com.ltkj.mall.service.IMallTimeConfigService;
 import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.web.config.redis.OrderDelayService;
+import com.ltkj.web.config.task.TjReservationTask;
 import com.ltkj.web.wxUtils.WxUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -55,8 +58,10 @@
     private IMallTimeConfigService mallTimeConfigService;
     @Resource
     private ISysConfigService configService;
-    @Resource
-    private OrderDelayService delayService;
+//    @Resource
+//    private OrderDelayService delayService;
+    @Autowired
+    private TaskService taskService;
 
     @PostMapping
     @ApiOperation(value = "涓汉棰勭害")
@@ -105,7 +110,9 @@
             tjReservation.setProIds(join);
         }
         if (reservationService.save(tjReservation)) {
-            delayService.reservation(tjReservation.getId());
+
+            taskService.addTask(new TjReservationTask(tjReservation.getId(),
+                    DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS)));
 
             TjCustomer one = customerService.getOne(new LambdaQueryWrapper<TjCustomer>().eq(TjCustomer::getCusIdcard,tjReservation.getIdCard()));
             if(null !=one){
@@ -210,6 +217,7 @@
         if (reservation.getId()==null){
             return AjaxResult.success("鍑洪敊浜嗭紝璇疯仈绯诲伐浣滀汉鍛橈紒");
         }
+        taskService.removeTask(new TjReservationTask(reservation.getId()));
         TjReservation one = reservationService.getById(reservation.getId());
         if (null != one) {
             String isPays = configService.selectConfigByKey("isPay");
@@ -226,6 +234,7 @@
 
             transitionService.deletedTbTransitionByCusId(reservation.getIdCard());
             reservationService.removeById(one);
+
 
             //鍙戣鍗曚俊鎭粰wx璁㈤槄鏈嶅姟娑堟伅鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�攕tart鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��
             Map<String, Object> res = new HashMap<>();
@@ -333,7 +342,12 @@
             mallTimeConfigService.updateById(config1);
 
             one.setReservationTime(tjReservation.getReservationTime());
-            reservationService.updateById(one);
+            if (reservationService.updateById(one)) {
+                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("棰勭害涓嶅瓨鍦ㄦ垨宸茶秴鏃� 涓嶅彲淇敼!");
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/WxMallOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/WxMallOrderController.java
index 7c7a802..25f7d17 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/WxMallOrderController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/WxMallOrderController.java
@@ -19,6 +19,7 @@
 import com.google.common.base.Joiner;
 import com.ltkj.common.core.domain.AjaxResult;
 import com.ltkj.common.exception.user.DataNotFoundException;
+import com.ltkj.common.task.TaskService;
 import com.ltkj.common.utils.IpUtil;
 import com.ltkj.common.utils.JacksonUtil;
 import com.ltkj.framework.config.UserHoder;
@@ -84,7 +85,8 @@
     private WxPayService wxPayService;
     @Resource
     private ITbTransitionService transitionService;
-
+    @Autowired
+    private TaskService taskService;
     @Resource
     private OrderDelayService delayService;
 
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
index 0d03dae..caee526 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -599,26 +599,17 @@
                 return AjaxResult.success("鏆傛棤鏁版嵁");
             }
         }
-        List<TjCustomer> customerLists = new ArrayList<>();
+        List<TjCustomer> customerLists = null;
         if (type == 0) {
-            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
+//            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
         }
         if (type == 1) {
-            customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
+//            customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
         }
         asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
-        if (customerLists != null && customerLists.size() > 0) {
-            Collections.reverse(customerLists);
-            List<TjCustomer> customerList = customerLists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-            Map<String, Object> map = new HashMap<>();
-            map.put("date", customerList);
-            map.put("total", customerLists.size());
-            return AjaxResult.success(map);
-        } else {
-            AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
-            if (map != null) return map;
-            return AjaxResult.success("鏆傛椂娌℃湁鏁版嵁");
-        }
+        AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
+        if (map != null) return map;
+        return AjaxResult.success("鏆傛椂娌℃湁鏁版嵁");
     }
 
 
@@ -680,7 +671,7 @@
                 )
                 .collect(Collectors.toList());
 
-        if (ksproList == null || ksproList.size() == 0) {
+        if (ksproList.size() == 0) {
             return AjaxResult.error("璇峰畬鍠勭瀹ら」鐩俊鎭�");
         }
         List<TjCustomer> customerLis = new ArrayList<>();
@@ -821,15 +812,15 @@
                 return AjaxResult.success("鏆傛棤鏁版嵁");
             }
         }
-        List<TjCustomer> customerLists = new ArrayList<>();
+        List<TjCustomer> customerLists = null;
         if (type == 0) {
-            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
+//            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
         }
         if (type == 1) {
-            customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
+//            customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
         }
-        asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
-        if (customerLists != null && customerLists.size() > 0) {
+//        asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
+        if (customerLists.size() > 0) {
             Collections.reverse(customerLists);
             List<TjCustomer> customerList = customerLists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
             Map<String, Object> map = new HashMap<>();
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 996055d..5f3396d 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
@@ -9,6 +9,7 @@
 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;
@@ -18,6 +19,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.base.Joiner;
 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;
@@ -28,6 +30,7 @@
 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;
@@ -76,8 +79,10 @@
     private ITjGroupingProService groupingProService;
     @Resource
     private TjAsyncService asyncService;
-    @Resource
-    private OrderDelayService delayService;
+//    @Resource
+//    private OrderDelayService delayService;
+    @Autowired
+    private TaskService taskService;
     @Resource
     private ITjReportTemplateService reportTemplateService;
 
@@ -88,71 +93,54 @@
     @ApiOperation(value = "瀵煎嚭excel琛ㄦā鏉�")
     public void importTemplate(HttpServletResponse response) {
         //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙�
-//        ExcelUtils.exportTemplate(response, "浣撴棰勭害Excel妯℃澘", TjReservation.class);
         String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\瑗垮畨璺嘲鏈虹數绉戞妧鏈夐檺鍏徃.xls");
-//        TjReportTemplate tem = new TjReportTemplate();
-//        tem.setName("鍥綋棰勭害Excel妯$増");
-//        tem.setRemark("鍥綋棰勭害Excel妯$増");
-//        tem.setTemplate(base64String);
-//        tem.setFlag("1");
-//        tem.setOpen("0");
-//        reportTemplateService.save(tem);
+        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();
 
-//        LambdaQueryWrapper<TjReportTemplate> wq = new LambdaQueryWrapper<>();
-//        wq.eq(TjReportTemplate::getFlag, 4);
-//        wq.eq(TjReportTemplate::getName, "");
-//        wq.eq(TjReportTemplate::getOpen, 0);
-//         reportTemplateService.getOne(wq);
-
-        PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + "\\" + "鍥綋棰勭害Excel妯$増.xls");
-        String filePath = value + "\\" + "鍥綋棰勭害Excel妯$増.xls";
-        File f = new File(filePath);
-        if (filePath.isEmpty()) {
-            System.out.println("鏂囦欢涓嶅瓨鍦紒");
-            return;
-        }
-        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();
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
                 }
             }
         }
@@ -250,6 +238,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) {
@@ -402,7 +391,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);
@@ -489,7 +478,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<>();
@@ -546,6 +537,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("鎾ら攢澶辫触");
@@ -566,6 +558,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));
                     }
                 }
             }
@@ -590,6 +583,9 @@
         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("鎿嶄綔澶辫触");
@@ -628,8 +624,6 @@
     public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) {
         //棰勭害鐨勬墍鏈変汉
         List<TjReservation> rightList = dto.getReservations();
-
-
 
         //棰勭害鏃堕棿
         String reservationTime = dto.getReservationTime();
@@ -670,16 +664,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());
diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java
index d0cc02f..f9ba367 100644
--- a/ltkj-admin/src/test/java/zjhTest.java
+++ b/ltkj-admin/src/test/java/zjhTest.java
@@ -1,5 +1,6 @@
 
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.LtkjApplication;
@@ -80,19 +81,14 @@
 
 
     public static void main(String[] args) {
-        // lat 39.97646
-        //log 116.3039
-//        String add = getAdd("116.3039", "39.97646");
-//        JSONObject jsonObject = JSONObject.parseObject(add);
-//        JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("addrList"));
-//        JSONObject j_2 = JSONObject.parseObject(String.valueOf(jsonArray.get(0)));
-//        String allAdd = j_2.getString("admName");
-//        String arr[] = allAdd.split(",");
-//        System.out.println("鐪侊細"+arr[0]+"\n甯傦細"+arr[1]+"\n鍖猴細"+arr[2]);
-
-//        String a ="浣犲ソ鍝堝搱鍝堝搱鍝堝搱";
-//        String s = a.toUpperCase(Locale.ROOT);
-//        System.out.println(s);
+//        String dateStr1 = "2024-03-01 22:33:23";
+//        Date date1 = DateUtil.parse(dateStr1);
+//
+////鐩稿樊涓�涓湀锛�31澶�
+//        long betweenDay = DateUtil.between(new Date(),date1, DateUnit.DAY);
+//        System.out.println(betweenDay);
+//        System.out.println(DateUtil.between(new Date(),date1, DateUnit.MS));
+//        System.out.println(DateUtil.between(new Date(),date1, DateUnit.SECOND));
     }
 //
 //    public static String getAdd(String log, String lat ){
diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/bean/BeanUtil.java b/ltkj-common/src/main/java/com/ltkj/common/utils/bean/BeanUtil.java
new file mode 100644
index 0000000..96f58ab
--- /dev/null
+++ b/ltkj-common/src/main/java/com/ltkj/common/utils/bean/BeanUtil.java
@@ -0,0 +1,24 @@
+package com.ltkj.common.utils.bean;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component
+public class BeanUtil implements ApplicationContextAware {
+    protected static ApplicationContext context;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        context = applicationContext;
+    }
+
+    public static Object getBean(String name) {
+        return context.getBean(name);
+    }
+
+    public static <T> T getBean(Class<T> c){
+        return context.getBean(c);
+    }
+}

--
Gitblit v1.8.0