From 06ef175a1e9f72b3863757319b2f6ff76c5a2f05 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 03 十二月 2024 09:16:55 +0800
Subject: [PATCH] zjh20241202-3

---
 ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java           |    2 
 ltkj-admin/src/test/java/zjhTest.java                                                |   51 +++
 ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java               |   35 ++
 ltkj-common/src/main/java/com/ltkj/common/excelConfig/ExcelUtils.java                |   46 +++
 ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsServiceController.java     |  123 ++++++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java       |   24 +
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java |  376 +++++++++++++++++---------
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java    |   81 ++++-
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java                         |   57 ++++
 9 files changed, 623 insertions(+), 172 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsServiceController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsServiceController.java
index 4d8f309..ec53f35 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsServiceController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsServiceController.java
@@ -13,6 +13,8 @@
 import com.ltkj.hosp.sqlDomain.LtkjExamJcbgd;
 import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd;
 import com.ltkj.system.service.ISysDeptService;
+import com.sun.jna.platform.win32.WinDef;
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import jodd.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -24,6 +26,14 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
+
+
+
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
 
 /**
  * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -49,23 +59,126 @@
     @Autowired
     private LtkjExamJcbgdService ltkjExamJcbgdService;
 
+    //    浣撴寮�妫�鏌ョ敵璇峰崟璋冪敤姝ゆ帴鍙f帹閫佺粰pacs鏈嶅姟
+    public boolean OrderAdd(String tjNumber)
+    {
+        try {
+            //浠庝綋妫�鏁版嵁搴撲腑鏌ヨ鍑虹敵璇峰崟鏁版嵁  璋冪敤  pacs  webservice 鎺ュ彛 OrderAdd瀹炵幇鐢宠鍗曟帹閫�
+            HashMap<String, Object> hashMap = new HashMap<>();
+            if (true){
+                HashMap<String, Object> result = new HashMap<>();
+//                    result.put("PatientId",0);
+//                    result.put("PatType","PatType");
+//                    result.put("Operator","Operator");
+//                    result.put("HisID","HisID");
+
+                hashMap.put("Root",result);
+            }
+            return ComSjyjtPacs(XmlUtil.mapToXmlStr(hashMap));
+        }catch (Exception ex)
+        {
+            return false;
+        }
+    }
+
+    //  浣撴鎾ら攢鐢宠鍗曞悗璋冪敤姝ゆ帴鍙f挙閿�pacs鐢宠鍗�
+    public boolean OrderDelete(String tjNumber)
+    {
+        //鍏ュ弬瀛楁
+//        <PatientId> HIS鎴栦綋妫�鐥呬汉ID </PatientId>
+//  <PatType>鐥呬汉绫诲瀷</PatType >
+//  <Operator>鎿嶄綔浜哄伐鍙�</Operator>
+//  <HisID>HIS鎴栦綋妫�鐢宠鍗曞彿</HisID>
+        try {
+            //浠庝綋妫�鏁版嵁搴撲腑鏌ヨ鍑虹敵璇峰崟鏁版嵁  璋冪敤  pacs  webservice 鎺ュ彛 OrderAdd瀹炵幇鐢宠鍗曟帹閫�
+
+            HashMap<String, Object> hashMap = new HashMap<>();
+            if (null == null){
+                HashMap<String, Object> result = new HashMap<>();
+                result.put("PatientId",0);
+                result.put("PatType","PatType");
+                result.put("Operator","Operator");
+                result.put("HisID","HisID");
+
+                hashMap.put("Root",result);
+            }
+            return ComSjyjtPacs(XmlUtil.mapToXmlStr(hashMap));
+        }catch (Exception ex)
+        {
+            return false;
+        }
+    }
+    //   闄曞仴鍖婚泦鍥㈣皟鐢╬acs鎺ュ彛Webservice
+    public boolean ComSjyjtPacs(String inputLine)
+    {
+        String apiUrl = "http://100.100.100.222:8000/WebInterfaceService.asmx"; // 鏇挎崲涓轰綘鐨凙PI URL
+
+        try {
+            URL url = new URL(apiUrl);
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestMethod("GET");
+
+            int responseCode = connection.getResponseCode();
+            if (responseCode == HttpURLConnection.HTTP_OK) {
+                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+
+                StringBuffer response = new StringBuffer();
+
+                while ((inputLine = in.readLine()) != null) {
+                    response.append(inputLine);
+                }
+
+                in.close();
+
+                // 鎵撳嵃缁撴灉
+                System.out.println(response.toString());
+            } else {
+//                System.out.println("ComSjyjtPacs闄曞仴鍖婚泦鍥㈣皟鐢╬acs鎺ュ彛Webservice璋冪敤澶辫触锛佲��);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return true;
+
+    }
+
+
     @PostMapping("InvokeRisService")
     public String InvokeRisService(String dataSourceName, String action, String message)
     {
+
+        String rusue=null;
         switch (StringUtil.toLowerCase(action) )
         {
             case "qeryorder":
-                return queryOrder(dataSourceName);
-                break;
+                rusue= queryOrder(dataSourceName);
+            break;
             case "updateorderstatus":
-                updateOrderstatus(dataSourceName);
+                rusue= updateOrderstatus(dataSourceName);
                 break;
             case "reportverifyupload":
-                return reportVerifyUpload(dataSourceName);
-                break;
+                rusue= reportVerifyUpload(dataSourceName);
+            break;
 
         }
+        HashMap<String, Object> hashMap = new HashMap<>();
+        //  <Code>鎵ц鐘舵��  鎵ц鐘舵�� 1 鎴愬姛锛� 0澶辫触</Code>
+        //  <Message>缁撴灉娑堟伅</Message>
+        HashMap<String, Object> result = new HashMap<>();
+        if(rusue==null)
+        {
+            result.put("Code", 1);
+            result.put("Message", "鎺ュ彛鎴愬姛");
+        }
+        else {
+            result.put("Code", 0);
+            result.put("Message", rusue);
+        }
+        hashMap.put("ResultInfor", result);
+        return XmlUtil.mapToXmlStr(hashMap);
     }
+
+
     private String updateOrderstatus(@RequestBody String json) {
         //    <PatientId> HIS鎴栦綋妫�鐥呬汉ID </PatientId>
         //  <PatType>鐥呬汉绫诲瀷</PatType >
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
index 328415d..7521ecc 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -609,17 +609,27 @@
 
                         return AjaxResult.success("鍚屾鎴愬姛");
 
-
-                        //鍚屾妫�鏌ラ」鐩粰redis缂撳瓨鐜板湪涓嶇敤浜�
-//                asyncService.updateCheckType(order.getTjNumber());
                     }
-//                    else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equals("Y")){
-//                    List<Map<String,Object>> maps=   testMapper.getCcXZxYyLisJgSt();
-//                    }
+                    else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equals("Y")){
+                        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber());
+                        if(null != hysqdList && !hysqdList.isEmpty()){
+                            for (LtkjHysqd hysqd : hysqdList) {
+                                LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
+                                if (null != jybgid) {
+                                    ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
+                                    ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh());
+                                }
+                                if (ltkjHysqdService.save(hysqd)) {
+                                    List<LtkjHybgd> hybgdList = testMapper.getCcXZxYyLtkjHybgdByLisVi(hysqd.getTmh());
+                                    ltkjHybgdService.saveBatch(hybgdList);
+                                }
+                            }
+                        }
+                        testMapper.tjUpdateDetatilByVi(order.getTjNumber());
+                    }
                     //鍖栭獙
                     testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                     //妫�鏌�
-//            jcsqdService.saveLtkjExamJcsqd(order.getCardId());
                     return AjaxResult.success("鍚屾鎴愬姛");
                 }
                 return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
index 0ff575c..7a07548 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -141,17 +141,24 @@
 //    @Log(title = "瀹㈡埛韬唤淇℃伅", businessType = BusinessType.EXPORT)
     public AjaxResult getInfoByIdCard(@RequestParam @ApiParam(value = "瀹㈡埛韬唤璇佸彿") String cusIdcard) {
         if (!"".equals(cusIdcard) && cusIdcard != null) {
+
+            String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh");
+//            String sfjysjh = configService.selectConfigByKey("sfjysjh");
+
             //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
-//            if(cusIdcard.length()==18){
-//                if (! MatchUtils.isIdCard(cusIdcard)) {
-//                    return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
-//                }
-//            }
-//            if(cusIdcard.length()==9){
-//                if (!MatchUtils.cardValidates(cusIdcard)) {
-//                    return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
-//                }
-//            }
+            if(sfjysfzh.equalsIgnoreCase("Y")){
+                if(cusIdcard.length()==18){
+                    if (! MatchUtils.isIdCard(cusIdcard)) {
+                        return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
+                    }
+                }
+                if(cusIdcard.length()==9){
+                    if (!MatchUtils.cardValidates(cusIdcard)) {
+                        return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
+                    }
+                }
+            }
+
 //            Date dates = new Date();
 //            final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
 
@@ -446,7 +453,6 @@
         if (null == tjCustomer.getCusIdcard() || null == tjCustomer.getCusPhone()) {
             return AjaxResult.error("璇疯緭鍏ヨ韩浠借瘉鍙锋垨鎵嬫満鍙�");
         }
-        HisApiGetMethodService hisApiGetMethodService = new HisApiGetMethodService();
 
         Date dates = new Date();
         final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
@@ -454,21 +460,32 @@
         String cusIdcard = tjCustomer.getCusIdcard();
 
         boolean b = true;
+        String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh");
+        String sfjysjh = sysConfigService.selectConfigByKey("sfjysjh");
         if (null != tjCustomer.getIdType()) {
             if (tjCustomer.getIdType().equals("1")) {
-                b = MatchUtils.isIdCard(cusIdcard);
+                //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
+                if(sfjysfzh.equalsIgnoreCase("Y")){
+                    if(cusIdcard.length()==18){
+                        b = MatchUtils.isIdCard(cusIdcard);
+                    }
+                }
+            } else {
+                if(cusIdcard.length()==9){
+                    b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType());
+                }
+
             }
-//            else {
-//                b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType());
-//            }
         } else {
             return AjaxResult.error("璇烽�夋嫨璇佷欢绫诲瀷");
         }
         if (!b) return AjaxResult.error("璇佷欢鍙锋湁璇�");
 
         //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
-        if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone())))
-            return AjaxResult.error("鎵嬫満鍙烽敊璇�");
+        if(sfjysjh.equalsIgnoreCase("Y")){
+            if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone())))
+                return AjaxResult.error("鎵嬫満鍙烽敊璇�");
+        }
 
         LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
         wq.eq(TjCustomer::getCusIdcard, cusIdcard);
@@ -550,12 +567,30 @@
         if (null == cusPhone) {
             return AjaxResult.error("鎵嬫満鍙蜂笉鑳戒负绌�");
         }
-        /*LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjCustomer::getCusPhone, cusPhone);
-        TjCustomer customer = tjCustomerService.getOne(wq);
-        if (customer != null) {
-            return AjaxResult.error("璇ユ墜鏈哄彿宸茶浣跨敤!");
-        }*/
+        String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh");
+        String sfjysjh = sysConfigService.selectConfigByKey("sfjysjh");
+
+            //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
+            if(sfjysfzh.equalsIgnoreCase("Y")){
+                if(tjCustomer.getCusIdcard().length()==18){
+                    if (!(MatchUtils.isIdCard(tjCustomer.getCusIdcard())))
+                        return AjaxResult.error("韬唤璇佸彿閿欒");
+                }
+
+                if(tjCustomer.getCusIdcard().length()==9){
+                    if (!MatchUtils.cardValidates(tjCustomer.getCusIdcard())) {
+                        return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
+                    }
+                }
+            }
+
+
+        //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
+        if(sfjysjh.equalsIgnoreCase("Y")){
+            if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone())))
+                return AjaxResult.error("鎵嬫満鍙烽敊璇�");
+        }
+
         tjCustomer.setCusPhone(cusPhone);
         tjCustomer.setPym(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),""));
         if (tjCustomerService.updateById(tjCustomer)) {
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 f3117bc..61b2f1f 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
@@ -15,6 +15,7 @@
 import cn.hutool.extra.pinyin.PinyinUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.druid.sql.visitor.functions.Isnull;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -40,10 +41,12 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
 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.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 import com.ltkj.common.core.controller.BaseController;
 import com.ltkj.common.core.domain.AjaxResult;
@@ -60,6 +63,7 @@
 @RestController
 @RequestMapping("/reservation/reservation")
 @Api(tags = "浣撴棰勭害绠$悊鎺ュ彛")
+@Slf4j
 public class TjReservationController extends BaseController {
     @Resource
     private ITjReservationService tjReservationService;
@@ -85,12 +89,8 @@
     private ITjGroupingProService groupingProService;
     @Resource
     private TjAsyncService asyncService;
-//    @Resource
-//    private OrderDelayService delayService;
     @Autowired
     private TaskService taskService;
-    @Resource
-    private ITjReportTemplateService reportTemplateService;
     @Autowired
     private ISysDictDataService dictDataService;
     @Autowired
@@ -104,7 +104,7 @@
     public void importTemplate(HttpServletResponse response) {
         //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙�
         String base64String = PDFBinaryUtil.getPDFBinary(configService.selectConfigByKey("default_excelTemplate"));
-        if(null !=base64String){
+        if (null != base64String) {
             PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + File.separator + "鍥綋棰勭害Excel妯$増.xls");
             String filePath = value + File.separator + "鍥綋棰勭害Excel妯$増.xls";
             File f = new File(filePath);
@@ -157,7 +157,6 @@
     }
 
 
-
     /**
      * 鏌ヨ浣撴棰勭害鍒楄〃
      */
@@ -186,7 +185,7 @@
     public TableDataInfo selectTjReservationByDelete(TjReservation tjReservation) {
         startPage();
         List<TjReservation> list = tjReservationService.selectTjReservationByDelete(tjReservation);
-        if(null !=list && !list.isEmpty()){
+        if (null != list && !list.isEmpty()) {
 //            for (TjReservation reservation : list) {
 //                reservation.setName(MatchUtils.hideCusName(reservation.getName()));
 //                reservation.setPhoe(MatchUtils.hidePhoneNum(reservation.getPhoe()));
@@ -227,7 +226,7 @@
         }
         int grouping = dwGroupingService.selectTjDwGroupingByDwDeptId(dwDeptId);
 
-        if(grouping==0){
+        if (grouping == 0) {
             return AjaxResult.error("璇锋鏌ラ儴闂ㄤ腑鏄惁瀛樺湪鍒嗙粍鎴栧垎缁勪腑鏄惁瀛樺湪椤圭洰!");
         }
 
@@ -239,12 +238,12 @@
         TjDwGrouping groupingWoMan = null;//濂�
         TjDwGrouping groupingWz = null;//鏈煡(涓嶅垎鎬у埆)
         try {
-            groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
-                    .eq(TjDwGrouping::getDwDeptId,dwDeptId).eq(TjDwGrouping::getSex, 0));
-            groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
-                    .eq(TjDwGrouping::getDwDeptId,dwDeptId).eq(TjDwGrouping::getSex, 1));
-            groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
-                    .eq(TjDwGrouping::getDwDeptId,dwDeptId).eq(TjDwGrouping::getSex, 2));
+            groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
+                    .eq(TjDwGrouping::getDwDeptId, dwDeptId).eq(TjDwGrouping::getSex, 0));
+            groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
+                    .eq(TjDwGrouping::getDwDeptId, dwDeptId).eq(TjDwGrouping::getSex, 1));
+            groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
+                    .eq(TjDwGrouping::getDwDeptId, dwDeptId).eq(TjDwGrouping::getSex, 2));
         } catch (Exception e) {
             return AjaxResult.error("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!");
         }
@@ -254,21 +253,24 @@
         BigDecimal manMoney = new BigDecimal("0.00");
         //濂崇粍閲戦
         BigDecimal woManMoney = new BigDecimal("0.00");
-        int count=0;//鎬昏浜烘暟
-        int manCount=0;//鐢风粍浜烘暟
-        int woManCount=0;//濂崇粍浜烘暟
+        int count = 0;//鎬昏浜烘暟
+        int manCount = 0;//鐢风粍浜烘暟
+        int woManCount = 0;//濂崇粍浜烘暟
         for (TjReservation tjReservation : tjReservations) {
             String idCard = tjReservation.getIdCard();
             String phoe = tjReservation.getPhoe();
             if (null != idCard && null != phoe) {
-//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) {
+//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe));
                 if (idCard.isEmpty() || phoe.isEmpty()) {
                     wrongList.add(tjReservation.getName());
                 } else {
+                    String str = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
+
+                    tjReservation.setPhoe(str);
                     //骞撮緞
                     tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                     //鍑虹敓鏃ユ湡
-                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd"));
+                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
 
                     if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
 
@@ -276,9 +278,11 @@
                         tjReservation.setGroupingName(groupingMan.getGroupingName());
                         tjReservation.setYsPrice(groupingMan.getYsPrice());
                         //鍚堣
-                        hjMoney = hjMoney.add(groupingMan.getYsPrice()); count+=1;
+                        hjMoney = hjMoney.add(groupingMan.getYsPrice());
+                        count += 1;
                         //鐢风粍浜烘暟
-                        manMoney=manMoney.add(groupingMan.getYsPrice()); manCount+=1;
+                        manMoney = manMoney.add(groupingMan.getYsPrice());
+                        manCount += 1;
 
                     } else if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
 
@@ -286,8 +290,10 @@
                         tjReservation.setGroupingName(groupingWoMan.getGroupingName());
                         tjReservation.setYsPrice(groupingWoMan.getYsPrice());
                         //鍚堣
-                        hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); count+=1;
-                        woManMoney=woManMoney.add(groupingWoMan.getYsPrice());woManCount+=1;
+                        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()))) {
 
@@ -295,7 +301,8 @@
                         tjReservation.setGroupingName(groupingWz.getGroupingName());
                         tjReservation.setYsPrice(groupingWz.getYsPrice());
                         //鍚堣
-                        hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=1;
+                        hjMoney = hjMoney.add(groupingWz.getYsPrice());
+                        count += 1;
 
                     }
 
@@ -342,7 +349,7 @@
     @ApiOperation(value = "鍥綋excel琛ㄥ鍏� (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)")
     @Transactional
     public AjaxResult newExcelImportNotDwDeptId(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file,
-                                     @RequestParam @ApiParam(value = "鍗曚綅id") String dwId) {
+                                                @RequestParam @ApiParam(value = "鍗曚綅id") String dwId) {
         List<TjReservation> tjReservations = null;
         try {
             tjReservations = ExcelUtils.readMultipartFile(file, TjReservation.class);
@@ -351,7 +358,7 @@
         }
         int grouping = dwGroupingService.selectTjDwGroupingByDwId(dwId);
 
-        if(grouping==0){
+        if (grouping == 0) {
             return AjaxResult.error("璇锋鏌ヨ鍗曚綅鏄惁瀛樺惁瀛樺湪椤圭洰!");
         }
 
@@ -363,90 +370,191 @@
         List<TjDwGrouping> groupingWoMans = null;//濂�
         List<TjDwGrouping> groupingWzs = null;//鏈煡(涓嶅垎鎬у埆)
         try {
-            groupingMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
+            groupingMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
                     .eq(TjDwGrouping::getSex, 0));
-            groupingWoMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
+            groupingWoMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
                     .eq(TjDwGrouping::getSex, 1));
-            groupingWzs = dwGroupingService.list(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("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!");
         }
+
+        String sfjysfzh = configService.selectConfigByKey("sfjysfzh");
+        String sfjysjh = configService.selectConfigByKey("sfjysjh");
+
         //璁$畻鍚堣
         BigDecimal hjMoney = new BigDecimal("0.00");
         //鐢风粍閲戦
         BigDecimal manMoney = new BigDecimal("0.00");
         //濂崇粍閲戦
         BigDecimal woManMoney = new BigDecimal("0.00");
-        int count=0;//鎬昏浜烘暟
-        int manCount=0;//鐢风粍浜烘暟
-        int woManCount=0;//濂崇粍浜烘暟
+        int count = 0;//鎬昏浜烘暟
+        int manCount = 0;//鐢风粍浜烘暟
+        int woManCount = 0;//濂崇粍浜烘暟
+        List<String> ids=new ArrayList<>();
+
         for (TjReservation tjReservation : tjReservations) {
             String idCard = tjReservation.getIdCard();
             String phoe = tjReservation.getPhoe();
-            if (null != idCard && null != phoe) {
-//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) {
-                if (idCard.isEmpty() || phoe.isEmpty() || null==tjReservation.getDwxm()) {
-                    wrongList.add(tjReservation.getName());
-                } else {
-                    //骞撮緞
-                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
-                    //鍑虹敓鏃ユ湡
-                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd"));
+                  idCard= idCard.replaceAll("[',锛�;.銆� 鈥樷�淽","");
 
-                    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;
-                            }
-                        }
+            if (!StringUtils.isBlank(idCard) || !StringUtils.isBlank(phoe) || null != tjReservation.getDwxm()) {
+                //灏嗙瀛﹁鏁扮殑鎵嬫満鍙疯浆鎹㈡垚鏂囨湰褰㈠紡
+                phoe = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
 
-                        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.getDwDeptId().equals(dwDept.getId())) {
-                                tjReservation.setGroupingId(groupingWz.getId());
-                                tjReservation.setGroupingName(groupingWz.getGroupingName());
-                                tjReservation.setYsPrice(groupingWz.getYsPrice());
-                                //鍚堣
-                                hjMoney = hjMoney.add(groupingWz.getYsPrice());count+=1;
-                                if(tjReservation.getSex()==0){
-                                    manMoney=manMoney.add(groupingWz.getYsPrice()); manCount+=1;
-                                }
-                                if(tjReservation.getSex()==1){
-                                    woManMoney=woManMoney.add(groupingWz.getYsPrice());woManCount+=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());
-                    }
-
+                if(!ids.isEmpty() && ids.contains(tjReservation.getIdCard())){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("姝よ韩浠借瘉鍙�: "+tjReservation.getIdCard()+" 閲嶅,璇锋牳瀵瑰悗涓婁紶!");
                 }
+
+                ids.add(tjReservation.getIdCard());
+
+//                if (sfjysfzh.equalsIgnoreCase("Y") || sfjysjh.equalsIgnoreCase("Y")) {
+                    if ((sfjysfzh.equalsIgnoreCase("Y") && !MatchUtils.isIdCard(idCard)) ||
+                            (sfjysjh.equalsIgnoreCase("Y") && !MatchUtils.isMobileNO(phoe))) {
+                        wrongList.add(tjReservation.getName());
+                        log.info(tjReservation.getName()+idCard+MatchUtils.isIdCard(idCard)+MatchUtils.isMobileNO(phoe));
+                    }else {
+
+
+                        tjReservation.setPhoe(phoe);
+
+                        //骞撮緞
+                        tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
+                        //鍑虹敓鏃ユ湡
+                        tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
+
+                        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;
+                                }
+                            }
+
+                            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.getDwDeptId().equals(dwDept.getId())) {
+                                    tjReservation.setGroupingId(groupingWz.getId());
+                                    tjReservation.setGroupingName(groupingWz.getGroupingName());
+                                    tjReservation.setYsPrice(groupingWz.getYsPrice());
+                                    //鍚堣
+                                    hjMoney = hjMoney.add(groupingWz.getYsPrice());
+                                    count += 1;
+                                    if (tjReservation.getSex() == 0) {
+                                        manMoney = manMoney.add(groupingWz.getYsPrice());
+                                        manCount += 1;
+                                    }
+                                    if (tjReservation.getSex() == 1) {
+                                        woManMoney = woManMoney.add(groupingWz.getYsPrice());
+                                        woManCount += 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());
+                        }
+                    }
+//                }
+//                else {
+//                    //灏嗙瀛﹁鏁扮殑鎵嬫満鍙疯浆鎹㈡垚鏂囨湰褰㈠紡
+//                    String str = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
+//                    tjReservation.setPhoe(str);
+//
+//                    //骞撮緞
+//                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
+//                    //鍑虹敓鏃ユ湡
+//                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
+//
+//                    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;
+//                            }
+//                        }
+//
+//                        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.getDwDeptId().equals(dwDept.getId())) {
+//                                tjReservation.setGroupingId(groupingWz.getId());
+//                                tjReservation.setGroupingName(groupingWz.getGroupingName());
+//                                tjReservation.setYsPrice(groupingWz.getYsPrice());
+//                                //鍚堣
+//                                hjMoney = hjMoney.add(groupingWz.getYsPrice());
+//                                count += 1;
+//                                if (tjReservation.getSex() == 0) {
+//                                    manMoney = manMoney.add(groupingWz.getYsPrice());
+//                                    manCount += 1;
+//                                }
+//                                if (tjReservation.getSex() == 1) {
+//                                    woManMoney = woManMoney.add(groupingWz.getYsPrice());
+//                                    woManCount += 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());
+//                    }
+//                }
+
             } else {
                 wrongList.add(tjReservation.getName());
             }
@@ -483,18 +591,18 @@
         if (null == tjReservation) return AjaxResult.error();
         if (null == tjReservation.getName()) return AjaxResult.error("濮撳悕涓嶈兘涓虹┖");
         if (null == tjReservation.getReservationTime()) return AjaxResult.error("璇烽�夋嫨棰勭害鏃堕棿");
-        boolean b=true;
-        if(null !=tjReservation.getIdType()){
-            if(tjReservation.getIdType().equals("1")){
-                 b = MatchUtils.isIdCard(tjReservation.getIdCard());
-            }else {
-                 b = MatchUtils.cardValidate(tjReservation.getIdCard(), tjReservation.getIdType());
+        boolean b = true;
+        if (null != tjReservation.getIdType()) {
+            if (tjReservation.getIdType().equals("1")) {
+                b = MatchUtils.isIdCard(tjReservation.getIdCard());
+            } else {
+                b = MatchUtils.cardValidate(tjReservation.getIdCard(), tjReservation.getIdType());
             }
-        }else {
+        } else {
             return AjaxResult.error("璇烽�夋嫨璇佷欢绫诲瀷");
         }
 
-        if(!b) return AjaxResult.error("璇佷欢鍙锋湁璇�");
+        if (!b) return AjaxResult.error("璇佷欢鍙锋湁璇�");
         LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
         wq.eq(TjReservation::getIdCard, tjReservation.getIdCard());
         wq.eq(TjReservation::getIsExpire, 2);
@@ -512,12 +620,12 @@
         if (tjReservationService.save(tjReservation)) {
 //            delayService.reservation(tjReservation.getId());
             taskService.addTask(new TjReservationTask(tjReservation.getId(),
-                    DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS)));
+                    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());
+        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("棰勭害澶辫触");
     }
@@ -533,12 +641,12 @@
         if (null != tjReservation) {
             if (null != tjReservation.getPacId()) {
                 TjPackage aPackage = packageService.getById(tjReservation.getPacId());
-                if(null !=aPackage){
+                if (null != aPackage) {
                     tjReservation.setPacName(aPackage.getPacName());
                 }
                 TjDwDept dwDept = dwDeptService.getById(tjReservation.getPacId());
 
-                if(null !=dwDept){
+                if (null != dwDept) {
                     tjReservation.setPacName(dwDept.getDwName());
                 }
 
@@ -618,7 +726,7 @@
         if (tjReservationService.updateById(tjReservation)) {
             taskService.removeTask(new TjReservationTask(tjReservation.getId()));
             taskService.addTask(new TjReservationTask(tjReservation.getId(),
-                    DateUtil.between(new Date(),DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(),reservation.getYxts())), DateUnit.MS)));
+                    DateUtil.between(new Date(), DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(), reservation.getYxts())), DateUnit.MS)));
             return AjaxResult.success("鎿嶄綔鎴愬姛");
         }
         return AjaxResult.error("鎿嶄綔澶辫触");
@@ -632,15 +740,15 @@
     @ApiOperation(value = "鏍规嵁鍗曚綅id鍜屽洟闃熺紪鍙疯幏鍙栭绾﹁鎯�")
     public AjaxResult getSelectRecordByTeamNo(@RequestParam @ApiParam(value = "鍒嗙粍id") String groupingId) {
         LambdaQueryWrapper<TjGroupingPro> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjGroupingPro::getGroupingId,groupingId);
+        wq.eq(TjGroupingPro::getGroupingId, groupingId);
         List<TjGroupingPro> proList = groupingProService.list(wq);
-        if(null !=proList && proList.size()>0){
+        if (null != proList && proList.size() > 0) {
             for (TjGroupingPro groupingPro : proList) {
                 TjProject project = projectService.getById(groupingPro.getProId());
-                if(null !=project){
-                    if (project.getProType()==null || project.getProType().equals("")) {
+                if (null != project) {
+                    if (project.getProType() == null || project.getProType().equals("")) {
                         groupingPro.setProType("2");
-                    }else {
+                    } else {
                         groupingPro.setProType(project.getProType());
                     }
                     groupingPro.setProCheckMethod(project.getProCheckMethod());
@@ -673,10 +781,10 @@
         asyncService.saveNewReservationConfirm(rightList);
 
         //鍥綋浜烘暟鍚堣浠锋牸
-        BigDecimal compPay=new BigDecimal("0.00");
+        BigDecimal compPay = new BigDecimal("0.00");
 
         //鍥綋浜烘暟
-        int tramNum=0;
+        int tramNum = 0;
         if (null != rightList && rightList.size() > 0) {
             String teamNo = PinyinUtil.getFirstLetter(dwDept.getDwName(), "") + DateUtil.format(new Date(), "yyMMddHHmmss");
             for (TjReservation reservation : rightList) {
@@ -706,13 +814,13 @@
 //                }else {
 //                    reservation.setTjType(String.valueOf(2));
 //                }
-                compPay=compPay.add(dwGrouping.getYsPrice());
-                tramNum+=1;
+                compPay = compPay.add(dwGrouping.getYsPrice());
+                tramNum += 1;
                 reservation.setTjType(String.valueOf(1));
                 reservation.setTeamNo(teamNo);
                 reservation.setYxts(dto.getYxts());
                 tjReservationService.save(reservation);
-                taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(DateUtil.offsetDay(reservation.getReservationTime(),dto.getYxts())), DateUnit.MS)));
+                taskService.addTask(new TjReservationTask(reservation.getId(), DateUtil.between(new Date(), DateUtil.endOfDay(DateUtil.offsetDay(reservation.getReservationTime(), dto.getYxts())), DateUnit.MS)));
             }
             LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>();
             wq0.eq(TjCompPay::getCompId, dwDept.getDwId());
@@ -747,7 +855,7 @@
                 recordServiceOne.setCount(tramNum);
                 recordServiceOne.setDifference(compPay);
                 selectRecordService.updateById(recordServiceOne);
-            }else {
+            } else {
                 TjTeamSelectRecord selectRecord = new TjTeamSelectRecord();
                 selectRecord.setCompId(dwDept.getDwId());
                 selectRecord.setPacId(dwDept.getId());
@@ -789,13 +897,23 @@
         String teamNo = PinyinUtil.getFirstLetter(comp.getCnName(), "") + DateUtil.format(date, "yyMMddHHmmss");
 
         //鍥綋浜烘暟鍚堣浠锋牸
-        BigDecimal compPay=new BigDecimal("0.00");
+        BigDecimal compPay = new BigDecimal("0.00");
 
         String payTypeGlTjType = configService.selectConfigByKey("reservation_pay_type_gl_tj_type");
         JSONObject parseObj = JSONUtil.parseObj(payTypeGlTjType);
         if (null != rightList && !rightList.isEmpty()) {
 
+            List<String> ids=new ArrayList<>();
+
             for (TjReservation reservation : rightList) {
+
+                if(!ids.isEmpty() && ids.contains(reservation.getIdCard())){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("姝よ韩浠借瘉鍙�: "+reservation.getIdCard()+" 閲嶅,璇锋牳瀵瑰悗涓婁紶!");
+
+                }
+
+                ids.add(reservation.getIdCard());
 
                 TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId());
 
@@ -817,29 +935,29 @@
                 reservation.setCompany(dwGrouping.getDwName());
                 reservation.setPayType(Long.valueOf(dwGrouping.getPayType()));
                 LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<>();
-                wrapper.eq(SysDictData::getDictType,"reservation_pay_type");
-                wrapper.eq(SysDictData::getDictValue,reservation.getPayType());
+                wrapper.eq(SysDictData::getDictType, "reservation_pay_type");
+                wrapper.eq(SysDictData::getDictValue, reservation.getPayType());
                 SysDictData dictData = dictDataService.getOne(wrapper);
                 for (Map.Entry<String, Object> entry : parseObj.entrySet()) {
                     String[] split = entry.getValue().toString().split("-");
-                    if (split[0].equals(String.valueOf(dictData.getDictCode()))){
+                    if (split[0].equals(String.valueOf(dictData.getDictCode()))) {
                         reservation.setTjType(dictDataService.selectDictDataById(Long.valueOf(split[1])).getDictValue());
                     }
                 }
 
 
                 reservation.setPacId(dwDept.getId());
-                compPay=compPay.add(dwGrouping.getYsPrice());
+                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)));
+                        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::getCompId, dto.getDwId());
             wq0.eq(TjCompPay::getTeamNo, teamNo);
             TjCompPay one = compPayService.getOne(wq0);
             if (null != one) {
@@ -860,13 +978,15 @@
                 compPayService.save(tjCompPay);
             }
 
+//            .filter(a-> null != a.getPacId())
+
             Map<String, List<TjReservation>> collect = rightList.stream().collect(Collectors.groupingBy(TjReservation::getPacId));
 
-            if(!collect.isEmpty()){
+            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());
+                    wq.eq(TjTeamSelectRecord::getCompId, dto.getDwId());
                     TjTeamSelectRecord recordServiceOne = selectRecordService.getOne(wq);
                     if (null != recordServiceOne) {
                         recordServiceOne.setPacId(entry.getKey());
@@ -876,7 +996,7 @@
                         recordServiceOne.setCount(entry.getValue().size());
                         recordServiceOne.setDifference(compPay);
                         selectRecordService.updateById(recordServiceOne);
-                    }else {
+                    } else {
                         TjTeamSelectRecord selectRecord = new TjTeamSelectRecord();
                         selectRecord.setCompId(dto.getDwId());
                         selectRecord.setPacId(entry.getKey());
diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java
index 8298b15..81e55b4 100644
--- a/ltkj-admin/src/test/java/zjhTest.java
+++ b/ltkj-admin/src/test/java/zjhTest.java
@@ -9,6 +9,7 @@
 import com.ltkj.LtkjApplication;
 import com.ltkj.common.core.redis.RedisCache;
 import com.ltkj.common.utils.SecurityUtils;
+import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
 import com.ltkj.hosp.domain.DictHosp;
 import com.ltkj.hosp.domain.TjCustomer;
@@ -33,6 +34,7 @@
 import javax.annotation.Resource;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
+import java.math.BigDecimal;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.sql.Connection;
@@ -46,6 +48,8 @@
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
@@ -129,13 +133,54 @@
 
 
         public static void main(String[] args) {
-//            System.out.println(DateUtil.date());
-//            System.out.println(DateUtil.offsetMonth(DateUtil.date(),-1));
+
+        String s ="612129197611110029";
+
+        String ss ="13335337160";
+
+            boolean idCard = MatchUtils.isIdCard(s);
+            System.out.println(idCard);
+
+
+            System.out.println(MatchUtils.isMobileNO(ss));
+
         }
 
+    /**
+     * 灏嗙瀛﹁鏁版硶鏂囨湰杞崲鎴愬瓧绗︽枃鏈�
+     * @param number
+     * @return
+     */
+    public static String translateToPlainStr(String number) {
+
+        return getString(number);
+    }
+
+    private static String getString(String number) {
+        if (null == number || number.trim().length() == 0) {
+            return number;
+        }
+        String regEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$";
+        // 缂栬瘧姝e垯琛ㄨ揪寮�
+        Pattern pattern = Pattern.compile(regEx);
+        // 蹇界暐澶у皬鍐欑殑鍐欐硶
+        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(number);
+        // 瀛楃涓叉槸鍚︿笌姝e垯琛ㄨ揪寮忕浉鍖归厤
+        boolean rs = matcher.matches();
+        // 鍒ゆ柇鏄惁涓哄瓧绗︿覆鐨勭瀛﹁鏁版硶
+        if(rs){
+            // 绉戝璁℃暟娉曡浆鏁板瓧
+            BigDecimal originValue = new BigDecimal(number);
+            System.out.println("鎵嬫満鍙蜂负 ==> " + originValue.toPlainString());
+            // 鏁板瓧杞瓧绗︿覆
+            return originValue.toPlainString();
+        }
+        return number;
+    }
 
 
-        public static void forwardUrl(String targetUrl, String forwardUrl) throws Exception {
+    public static void forwardUrl(String targetUrl, String forwardUrl) throws Exception {
             // 鍒涘缓URL瀵硅薄
             URL url = new URL(forwardUrl);
 
diff --git a/ltkj-common/src/main/java/com/ltkj/common/excelConfig/ExcelUtils.java b/ltkj-common/src/main/java/com/ltkj/common/excelConfig/ExcelUtils.java
index 8c49cf0..8ad42e9 100644
--- a/ltkj-common/src/main/java/com/ltkj/common/excelConfig/ExcelUtils.java
+++ b/ltkj-common/src/main/java/com/ltkj/common/excelConfig/ExcelUtils.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFDataValidation;
 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -34,6 +35,7 @@
  * 鍘熸枃閾炬帴锛堜笉瀹氭椂澧炲姞鏂板姛鑳斤級: https://zyqok.blog.csdn.net/article/details/121994504
  */
 @SuppressWarnings("unused")
+@Slf4j
 public class ExcelUtils {
 
     private static final String XLSX = ".xlsx";
@@ -61,6 +63,7 @@
 
     public static <T> List<T> readMultipartFile(MultipartFile mFile, Class<T> clazz) throws Exception {
         JSONArray array = readMultipartFile(mFile);
+        log.info("array鎵ц鍑烘潵鏄�:"+array);
         return getBeanList(array, clazz);
     }
 
@@ -214,8 +217,9 @@
         }
         // 鍏朵綑鎯呭喌鏍规嵁绫诲瀷璧嬪��
         String fieldClassName = field.getType().getSimpleName();
+        String name = field.getName();
         try {
-            if ("String".equalsIgnoreCase(fieldClassName)) {
+            if ("String".equalsIgnoreCase(fieldClassName) || name.equals("phoe")) {
                 field.set(t, val);
             } else if ("boolean".equalsIgnoreCase(fieldClassName)) {
                 field.set(t, Boolean.valueOf(val));
@@ -298,6 +302,7 @@
             return null;
         }
         in.close();
+//        Workbook zhuanhuanexcel = zhuanhuanexcel(in);
         return book;
     }
 
@@ -1005,4 +1010,43 @@
         return s.trim();
     }
 
+    private static Workbook zhuanhuanexcel(InputStream inputStream){
+        Workbook workbook = null;
+        try {
+            workbook = WorkbookFactory.create(inputStream);
+            Sheet sheet = workbook.getSheetAt(0); // 鑾峰彇绗竴涓猄heet椤�
+
+            for (Row row : sheet) {
+                for (Cell cell : row) {
+                    // 妫�鏌ュ崟鍏冩牸鐨勭被鍨嬪苟杞崲涓烘枃鏈�
+                    switch (cell.getCellType()) {
+                        case STRING:
+                            System.out.print(cell.getStringCellValue() + "\t");
+                            break;
+                        case NUMERIC:
+                            System.out.print(cell.getNumericCellValue() + "\t");
+                            break;
+                        case BOOLEAN:
+                            System.out.print(cell.getBooleanCellValue() + "\t");
+                            break;
+                        case FORMULA:
+                            System.out.print(cell.getCellFormula() + "\t");
+                            break;
+                        default: break;
+                    }
+                }
+                System.out.println(); // 鎹㈣锛岃〃绀轰竴琛屾暟鎹粨鏉�
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        } finally {
+            try {
+                workbook.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return workbook;
+    }
+
 }
diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java b/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
index d31baca..6ccf547 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
@@ -2,6 +2,7 @@
 
 import com.ltkj.common.utils.StringUtils;
 
+import java.math.BigDecimal;
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.HashMap;
@@ -211,9 +212,9 @@
         if (matches && idCardBuilder.length() == SECOND_ID_CARD_LENGTH) {
             int index = getIdCardCheckIndex(idCardBuilder);
             // 鑾峰彇浼犲叆韬唤璇佺殑妫�楠岀爜
-            //String check = String.valueOf(idCardBuilder.charAt(idCardBuilder.length() - 1));
+            String check = String.valueOf(idCardBuilder.charAt(idCardBuilder.length() - 1));
             // 妫�楠岀爜鏍¢獙
-            //return StringUtils.equalsIgnoreCase(CHECK_INDEX[index], check);
+            return StringUtils.equalsIgnoreCase(CHECK_INDEX[index], check);
         }
         return matches;
     }
@@ -311,7 +312,7 @@
     /**
      * @desc 璁$畻鍑烘牎楠岀爜鎵�鍦ㄦ牎楠岀爜鏁扮粍鐨勪笅鏍囧��
      */
-    private static int getIdCardCheckIndex(StringBuilder idCardBuilder) {
+    public static int getIdCardCheckIndex(StringBuilder idCardBuilder) {
         // 鍒ゆ柇浼犲叆鐨勬槸17浣嶈繕鏄�18浣嶈韩浠借瘉鍙�
         int length = idCardBuilder.length() == SECOND_ID_CARD_LENGTH ? idCardBuilder.length() - 1 : idCardBuilder.length();
         // 璁$畻鍑烘牎楠岀爜
@@ -367,6 +368,34 @@
         return nativePlace;
     }
 
+    /**
+     *  灏唀xcel琛ㄤ腑绉戝璁℃暟鏍煎紡鐨勬墜鏈哄彿杞垚瀛楃涓插舰寮�
+     * @param  number
+     * @return
+     */
+    public static String translateToPlainStr(String number) {
+        if (null == number || number.trim().length() == 0) {
+            return number;
+        }
+        String regEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$";
+        // 缂栬瘧姝e垯琛ㄨ揪寮�
+        Pattern pattern = Pattern.compile(regEx);
+        // 蹇界暐澶у皬鍐欑殑鍐欐硶
+        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(number);
+        // 瀛楃涓叉槸鍚︿笌姝e垯琛ㄨ揪寮忕浉鍖归厤
+        boolean rs = matcher.matches();
+        // 鍒ゆ柇鏄惁涓哄瓧绗︿覆鐨勭瀛﹁鏁版硶
+        if(rs){
+            // 绉戝璁℃暟娉曡浆鏁板瓧
+            BigDecimal originValue = new BigDecimal(number);
+//            System.out.println("鎵嬫満鍙蜂负 ==> " + originValue.toPlainString());
+            // 鏁板瓧杞瓧绗︿覆
+            return originValue.toPlainString();
+        }
+        return number;
+    }
+
     private static String getNameString(int code) {
         switch (code) {
             case 11:
diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java b/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java
index 716effb..b3763b6 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java
@@ -111,7 +111,7 @@
                 .antMatchers("/login", "/register", "/captchaImage","/cus/**","/getCaptchaConfigKey","/report/jmreport/**",
                         "/sqlserver/getdata/**","/api/His/**","/system/config/zx","/system/config/gxxmpym","/system/report/savePdf",
                         "/system/dyjl/saveGjddyjl","/system/dyjl/saveBlGjddyjl","/check/ceshi").permitAll()
-                .antMatchers("/common/uploadImgExe","/common/listExeVal").permitAll()
+                .antMatchers("/common/uploadImgExe","/common/listExeVal","/pacs/InvokeRisService/**").permitAll()
                 .antMatchers("/check/dataSynchronizationApi").permitAll()
                 // 闈欐�佽祫婧愶紝鍙尶鍚嶈闂�
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
index 1971cac..9c0e3c5 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
@@ -84,6 +84,13 @@
                                    @Param("dockerId")String dockerId);
 
     @DataSource(value = DataSourceType.MASTER)
+    @Select("call tj_update_detatil_by_vi(#{tjnum,mode=IN}")
+    public void tjUpdateDetatilByVi(@Param("tjnum")String tjnum);
+
+
+
+
+    @DataSource(value = DataSourceType.MASTER)
     @Select("call tj_jc_update_detatil(#{cardId,mode=IN},#{orderId,mode=IN},#{tjnum,mode=IN},#{dockerId,mode=IN})")
     public void updateDetailByTjJcCall(@Param("cardId") String cardId,
                                    @Param("orderId")String orderId,
@@ -227,6 +234,54 @@
 
 
     @DataSource(value = DataSourceType.SLAVE_LIS)
-    @Select("SELECT * FROM vi_his_patientresult LIMIT 10")
+    @Select("SELECT * FROM vi_his_patientresult ")
     List<Map<String, Object>> getCcXZxYyLisJgSt();
+
+
+    @DataSource(value = DataSourceType.SLAVE_LIS)
+    @Select("SELECT\n" +
+            "  a.GH_PATIENTNO tjh,\n" +
+            "  a.SAMPLEID tmh,\n" +
+            "  NULL bbbh,\n" +
+            "  NULL bbmc,\n" +
+            "  a.SFXMID xmid,\n" +
+            "  a.SFXMNAME xmmc,\n" +
+            "  a.SENDDATE sqsj,\n" +
+            "  a.SENDDOCTOR sqys,\n" +
+            "  a.CHECKDATE jgsj,\n" +
+            "  a.TXM sqdh,\n" +
+            "  a.SENDDOCTOR sqrxm,\n" +
+            "  '8001' sqrdm,\n" +
+            "  a.AUDITDOCTOR shrxm,\n" +
+            "  '宸插' jybgjg\n" +
+            "  \n" +
+            "FROM\n" +
+            "  vi_his_patientinfo a\n" +
+            "WHERE a.HOSPITALID='chkwyy' AND  a.PATIENTTYPE=3 AND a.GH_PATIENTNO =#{tjNum}")
+    List<LtkjHysqd> getCcXZxYyLtkjHysqdByLisVi(String tjNum);
+
+
+    @DataSource(value = DataSourceType.SLAVE_LIS)
+    @Select("SELECT\n" +
+            "  a.SAMPLEID tmh,\n" +
+            "  a.ITEMCODE jcxmid,\n" +
+            "  a.ITEMNAME jcxm,\n" +
+            "  NULL tdh,\n" +
+            "  a.RESULT jyjg,\n" +
+            "  a.UNIT jgdw,\n" +
+            "  a.RANGEDOWN fwzdz,\n" +
+            "  a.RANGEUP fwzgz,\n" +
+            "  CONCAT(a.RANGEDOWN,'-',a.RANGEUP) fwz,\n" +
+            "  b.CHECKDATE jysj,\n" +
+            "  b.CHECKER jyys,\n" +
+            "  b.AUDITDATE shsj,\n" +
+            "  NULL shys,\n" +
+            "  b.AUDITDOCTOR shysmc,\n" +
+            "  NULL tpurl,\n" +
+            "  a.JUDGE ycbz\n" +
+            "FROM\n" +
+            "  vi_his_patientresult a JOIN vi_his_patientinfo b ON b.SAMPLEID=a.SAMPLEID\n" +
+            "WHERE b.HOSPITALID='chkwyy' AND b.PATIENTTYPE=3 AND\n" +
+            "  a.SAMPLEID = #{tmh}")
+    List<LtkjHybgd> getCcXZxYyLtkjHybgdByLisVi(String tmh);
 }

--
Gitblit v1.8.0