From 76654b216b0d7a9cdafa01a037a4807204fb51ec Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 08 八月 2024 18:14:57 +0800
Subject: [PATCH] zjh 2024-08-08

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java |  215 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 170 insertions(+), 45 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 6e0525c..10f1363 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
@@ -204,7 +204,7 @@
      * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃
      */
     @PostMapping("/newExcelImport")
-    @ApiOperation(value = "鍥綋瀵煎叆 (鏂扮増鏈�)")
+    @ApiOperation(value = "鍥綋excel琛ㄥ鍏�")
     @Transactional
     public AjaxResult newExcelImport(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file,
                                      @RequestParam @ApiParam(value = "鍗曚綅id") String dwId,
@@ -329,7 +329,7 @@
      * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃
      */
     @PostMapping("/newExcelImportNotDwDeptId")
-    @ApiOperation(value = "鍥綋瀵煎叆 (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)")
+    @ApiOperation(value = "鍥綋excel琛ㄥ鍏� (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)")
     @Transactional
     public AjaxResult newExcelImportNotDwDeptId(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file,
                                      @RequestParam @ApiParam(value = "鍗曚綅id") String dwId) {
@@ -349,15 +349,15 @@
         List<TjReservation> rightList = new ArrayList<>();
         List<TjReservation> yyList = new ArrayList<>();
         Map<String, Object> map = new HashMap<>();
-        TjDwGrouping groupingMan = null;//鐢�
-        TjDwGrouping groupingWoMan = null;//濂�
-        TjDwGrouping groupingWz = null;//鏈煡(涓嶅垎鎬у埆)
+        List<TjDwGrouping> groupingMans = null;//鐢�
+        List<TjDwGrouping> groupingWoMans = null;//濂�
+        List<TjDwGrouping> groupingWzs = null;//鏈煡(涓嶅垎鎬у埆)
         try {
-            groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
+            groupingMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
                     .eq(TjDwGrouping::getSex, 0));
-            groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
+            groupingWoMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
                     .eq(TjDwGrouping::getSex, 1));
-            groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
+            groupingWzs = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
                     .eq(TjDwGrouping::getSex, 2));
         } catch (Exception e) {
             return AjaxResult.error("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!");
@@ -376,7 +376,7 @@
             String phoe = tjReservation.getPhoe();
             if (null != idCard && null != phoe) {
 //                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) {
-                if (idCard.isEmpty() || phoe.isEmpty()) {
+                if (idCard.isEmpty() || phoe.isEmpty() || null==tjReservation.getDwxm()) {
                     wrongList.add(tjReservation.getName());
                 } else {
                     //骞撮緞
@@ -384,43 +384,51 @@
                     //鍑虹敓鏃ユ湡
                     tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd"));
 
-                    if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
+                    TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().eq(TjDwDept::getDwDeptName, tjReservation.getDwxm()));
+                    if(null !=dwDept){
+                        for (TjDwGrouping groupingMan : groupingMans) {
+                            if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingMan.getDwDeptId().equals(dwDept.getId())) {
+                                tjReservation.setGroupingId(groupingMan.getId());
+                                tjReservation.setGroupingName(groupingMan.getGroupingName());
+                                tjReservation.setYsPrice(groupingMan.getYsPrice());
+                                //鍚堣
+                                hjMoney = hjMoney.add(groupingMan.getYsPrice()); count+=1;
+                                //鐢风粍浜烘暟
+                                manMoney=manMoney.add(groupingMan.getYsPrice()); manCount+=1;
+                            }
+                        }
 
-                        tjReservation.setGroupingId(groupingMan.getId());
-                        tjReservation.setGroupingName(groupingMan.getGroupingName());
-                        tjReservation.setYsPrice(groupingMan.getYsPrice());
-                        //鍚堣
-                        hjMoney = hjMoney.add(groupingMan.getYsPrice()); count+=1;
-                        //鐢风粍浜烘暟
-                        manMoney=manMoney.add(groupingMan.getYsPrice()); manCount+=1;
-
-                    } else if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
-
-                        tjReservation.setGroupingId(groupingWoMan.getId());
-                        tjReservation.setGroupingName(groupingWoMan.getGroupingName());
-                        tjReservation.setYsPrice(groupingWoMan.getYsPrice());
-                        //鍚堣
-                        hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); count+=1;
-                        woManMoney=woManMoney.add(groupingWoMan.getYsPrice());woManCount+=1;
-
-                    } else if (null != groupingWz && groupingWz.getSex().equals(String.valueOf(tjReservation.getSex()))) {
-
-                        tjReservation.setGroupingId(groupingWz.getId());
-                        tjReservation.setGroupingName(groupingWz.getGroupingName());
-                        tjReservation.setYsPrice(groupingWz.getYsPrice());
-                        //鍚堣
-                        hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=1;
-
+                        for (TjDwGrouping groupingWoMan : groupingWoMans) {
+                            if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingWoMan.getDwDeptId().equals(dwDept.getId())) {
+                                tjReservation.setGroupingId(groupingWoMan.getId());
+                                tjReservation.setGroupingName(groupingWoMan.getGroupingName());
+                                tjReservation.setYsPrice(groupingWoMan.getYsPrice());
+                                //鍚堣
+                                hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); count+=1;
+                                woManMoney=woManMoney.add(groupingWoMan.getYsPrice());woManCount+=1;
+                            }
+                        }
+                        for (TjDwGrouping groupingWz : groupingWzs) {
+                            if (null != groupingWz && groupingWz.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingWz.getDwDeptId().equals(dwDept.getId())) {
+                                tjReservation.setGroupingId(groupingWz.getId());
+                                tjReservation.setGroupingName(groupingWz.getGroupingName());
+                                tjReservation.setYsPrice(groupingWz.getYsPrice());
+                                //鍚堣
+                                hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=1;
+                            }
+                        }
+                        LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
+                        wq.eq(TjReservation::getIdCard, tjReservation.getIdCard());
+                        wq.eq(TjReservation::getIsExpire, 2);
+                        TjReservation one = tjReservationService.getOne(wq);
+                        if (null != one) {
+                            yyList.add(one);
+                        }
+                        rightList.add(tjReservation);
+                    }else {
+                        wrongList.add(tjReservation.getName());
                     }
 
-                    LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
-                    wq.eq(TjReservation::getIdCard, tjReservation.getIdCard());
-                    wq.eq(TjReservation::getIsExpire, 2);
-                    TjReservation one = tjReservationService.getOne(wq);
-                    if (null != one) {
-                        yyList.add(one);
-                    }
-                    rightList.add(tjReservation);
                 }
             } else {
                 wrongList.add(tjReservation.getName());
@@ -435,7 +443,7 @@
         if (wrongList.size() > 0) {
             map.put("list", wrongList);
             map.put("hjMoney", hjMoney);
-            return AjaxResult.error("鎿嶄綔澶辫触, 璇锋牳瀵逛俊鎭悗閲嶆柊瀵煎叆!!!", map);
+            return AjaxResult.error("鎿嶄綔澶辫触, 璇疯鐪熸牳瀵逛俊鎭悗閲嶆柊瀵煎叆!!!", map);
         } else {
             map.put("list", rightList);
             map.put("count", count);
@@ -627,7 +635,7 @@
 
 
     @PostMapping("/newReservationConfirm")
-    @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)")
+    @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛")
     @Transactional
     @RepeatSubmit
     public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) {
@@ -737,4 +745,121 @@
         return AjaxResult.error("璇烽�夋嫨棰勭害瀵硅薄");
     }
 
+
+    @PostMapping("/newReservationConfirmxbb")
+    @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)")
+    @Transactional
+    @RepeatSubmit
+    public AjaxResult newReservationConfirmxbb(@RequestBody ConfirmDto dto) {
+        //棰勭害鐨勬墍鏈変汉
+        List<TjReservation> rightList = dto.getReservations();
+
+        //棰勭害鏃堕棿
+        String reservationTime = dto.getReservationTime();
+        if (null == reservationTime) {
+            return AjaxResult.error("璇烽�夋嫨棰勭害鏃堕棿!");
+        }
+
+        Date date = new Date();
+
+        //寮傛鏁版嵁
+//        asyncService.addNewReservationConfirm(rightList);
+        asyncService.saveNewReservationConfirm(rightList);
+
+        //浣撴鍗曚綅閮ㄩ棬
+        DictComp comp = compService.getById(dto.getDwId());
+
+        String teamNo = PinyinUtil.getFirstLetter(comp.getCnName(), "") + DateUtil.format(date, "yyMMddHHmmss");
+
+        //鍥綋浜烘暟鍚堣浠锋牸
+        BigDecimal compPay=new BigDecimal("0.00");
+
+        if (null != rightList && !rightList.isEmpty()) {
+
+            for (TjReservation reservation : rightList) {
+
+                TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId());
+
+                TjDwDept dwDept = dwDeptService.getById(dwGrouping.getDwDeptId());
+
+                LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
+                wq.eq(TjReservation::getIdCard, reservation.getIdCard());
+                wq.eq(TjReservation::getIsExpire, 2);
+                TjReservation one = tjReservationService.getOne(wq);
+                if (null != one) {
+                    continue;
+                }
+                LambdaQueryWrapper<TjGroupingPro> wq1 = new LambdaQueryWrapper<>();
+                wq1.eq(TjGroupingPro::getGroupingId, reservation.getGroupingId());
+                List<String> proIds = groupingProService.list(wq1).stream().map(TjGroupingPro::getProId).collect(Collectors.toList());
+                reservation.setProIds(Joiner.on(",").join(proIds));
+                reservation.setReservationTime(DateUtil.parse(reservationTime, "yyyy-MM-dd"));
+                reservation.setCompanyId(dwGrouping.getDwId());
+                reservation.setCompany(dwGrouping.getDwDeptName());
+                reservation.setPayType(Long.valueOf(dwGrouping.getPayType()));
+                reservation.setPacId(dwDept.getId());
+                compPay=compPay.add(dwGrouping.getYsPrice());
+                reservation.setTjType(String.valueOf(1));
+                reservation.setTeamNo(teamNo);
+                reservation.setYxts(dto.getYxts());
+                tjReservationService.save(reservation);
+                taskService.addTask(new TjReservationTask(reservation.getId(),
+                        DateUtil.between(date,DateUtil.endOfDay(DateUtil.offsetDay(reservation.getReservationTime(),dto.getYxts())), DateUnit.MS)));
+            }
+
+            LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>();
+            wq0.eq(TjCompPay::getCompId,dto.getDwId());
+            wq0.eq(TjCompPay::getTeamNo, teamNo);
+            TjCompPay one = compPayService.getOne(wq0);
+            if (null != one) {
+                one.setCopeWith(compPay);
+                one.setSerialNumber(SecurityUtils.getUsername() + DateUtil.format(date, "yyMMddHHmmssSSS"));
+                one.setInvoiceNo("FP" + DateUtil.format(date, "yyMMddHHmmssSSS"));
+                one.setPaidIn(new BigDecimal("0.00"));
+                compPayService.updateById(one);
+            } else {
+                TjCompPay tjCompPay = new TjCompPay();
+                tjCompPay.setCompId(dto.getDwId());
+                tjCompPay.setTeamNo(teamNo);
+                tjCompPay.setCopeWith(compPay);
+                tjCompPay.setSerialNumber(SecurityUtils.getUsername() + DateUtil.format(date, "yyMMddHHmmssSSS"));
+                tjCompPay.setInvoiceNo("FP" + DateUtil.format(date, "yyMMddHHmmssSSS"));
+                tjCompPay.setPaidIn(new BigDecimal("0.00"));
+                tjCompPay.setDifference(tjCompPay.getCopeWith().subtract(BigDecimal.valueOf(0.00)));
+                compPayService.save(tjCompPay);
+            }
+
+            Map<String, List<TjReservation>> collect = rightList.stream().collect(Collectors.groupingBy(TjReservation::getPacId));
+
+            if(!collect.isEmpty()){
+                for (Map.Entry<String, List<TjReservation>> entry : collect.entrySet()) {
+                    LambdaQueryWrapper<TjTeamSelectRecord> wq = new LambdaQueryWrapper<>();
+                    wq.eq(TjTeamSelectRecord::getTeamNo, teamNo);
+                    wq.eq(TjTeamSelectRecord::getCompId,dto.getDwId());
+                    TjTeamSelectRecord recordServiceOne = selectRecordService.getOne(wq);
+                    if (null != recordServiceOne) {
+                        recordServiceOne.setPacId(entry.getKey());
+                        recordServiceOne.setCompId(dto.getDwId());
+                        recordServiceOne.setTeamNo(teamNo);
+                        recordServiceOne.setTransactionAmount(new BigDecimal("0.00"));
+                        recordServiceOne.setCount(entry.getValue().size());
+                        recordServiceOne.setDifference(compPay);
+                        selectRecordService.updateById(recordServiceOne);
+                    }else {
+                        TjTeamSelectRecord selectRecord = new TjTeamSelectRecord();
+                        selectRecord.setCompId(dto.getDwId());
+                        selectRecord.setPacId(entry.getKey());
+                        selectRecord.setTeamNo(teamNo);
+                        selectRecord.setTransactionAmount(new BigDecimal("0.00"));
+                        selectRecord.setCount(entry.getValue().size());
+                        selectRecord.setDifference(compPay);
+                        selectRecordService.save(selectRecord);
+                    }
+                }
+            }
+            return AjaxResult.success("棰勭害鎴愬姛");
+        }
+        return AjaxResult.error("璇烽�夋嫨棰勭害瀵硅薄");
+    }
+
 }

--
Gitblit v1.8.0