From 246d78931aa779d0ea2ae6a262cd23494476e80b Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 10 六月 2025 15:58:53 +0800
Subject: [PATCH] zjh20250610

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java             |    3 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java   |   33 +
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java |   60 +++
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjBzProServiceImpl.java       |   18 
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java     |    5 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java     |  796 ++++++++++++++++++++++++++++++++---------
 ltkj-hosp/src/main/resources/mapper/DictCompMapper.xml                           |    1 
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjBzPro.java                        |   50 ++
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java                  |   84 ++++
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictComp.java                       |    9 
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjBzProMapper.java                  |   16 
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java                |    5 
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java         |    2 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java |    2 
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java            |    7 
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java                        |   14 
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjBzProService.java                |   15 
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java |    5 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/DictCompController.java  |    9 
 19 files changed, 952 insertions(+), 182 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/DictCompController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/DictCompController.java
index 4e42584..4b6c83f 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/DictCompController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/DictCompController.java
@@ -63,6 +63,15 @@
         return getDataTable(list);
     }
 
+    @GetMapping("/getZybCompList")
+    @ApiOperation(value = "鑾峰彇鑱屼笟鐥呭崟浣嶄俊鎭泦鍚堟帴鍙�")
+    public AjaxResult getZybCompList() {
+        LambdaQueryWrapper<DictComp> wq = new LambdaQueryWrapper<>();
+        wq.eq(DictComp::getDwlx,"1");
+        return AjaxResult.success(dictCompService.list(wq));
+    }
+
+
     /**
      * 瀵煎嚭浣撴鍗曚綅淇℃伅缁存姢鍒楄〃
      */
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
index 326905a..f418e9f 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
@@ -446,7 +446,7 @@
                     String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("銆倈锛泑;|,|锛�");
                     for (String jg : split) {
                         if(StringUtil.isNotBlank(jg) && !jg.contains("鏈寮傚父")
-                                && !jg.contains("鏈鏄庢樉寮傚父") && !jg.contains("鏈鍗犱綅")
+                                && !jg.contains("鏈鏄庢樉寮傚父") && !jg.contains("鏈鍗犱綅")  && !jg.contains("鏃犲紓甯�")
                                 && !jg.contains("鏈鏄庢樉")&& !jg.contains("姝e父")&& !jg.contains("鍙屼晶妞庨棿瀛旀棤鐙獎")&& !jg.contains("鏃犳畩")){
                             TjJcycxm jcycxm=new TjJcycxm();
                             jcycxm.setTjh(s);
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 ccc28f2..421a5bb 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
@@ -13,6 +13,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ltkj.common.annotation.RepeatSubmit;
 import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.domain.entity.SysUser;
 import com.ltkj.common.core.redis.RedisCache;
 import com.ltkj.common.enums.DataSourceType;
@@ -2093,4 +2094,36 @@
         return AjaxResult.success(list);
     }
 
+
+    @GetMapping("/csymxmxzqtyybcjk")
+    @ApiOperation(value = "鍒濆椤甸潰椤圭洰閫夋嫨鍏朵粬鍘熷洜淇濆瓨鎺ュ彛")
+    @Transactional
+    public AjaxResult csymxmxzqtyybcjk(@RequestParam @ApiParam("浣撴鍙�") String tjNum,@RequestParam @ApiParam("椤圭洰ID") String proId,
+                                       @RequestParam @ApiParam("鍘熷洜") String yy) {
+
+        try {
+            String czydm = SecurityUtils.getUsername();
+            String czy = SecurityUtils.getLoginUser().getUser().getNickName();
+            TjProject tjProject = projectService.getById(proId);
+            if(null !=  tjProject){
+                SysDept dept = deptService.getById(tjProject.getDeptId());
+
+                LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
+                wq.eq(TjOrderRemark::getTjNumber, tjNum);
+                wq.eq(TjOrderRemark::getProId, proId);
+                TjOrderRemark remark = orderRemarkService.getOne(wq);
+                remark.setType(1);
+                if (orderRemarkService.updateById(remark)) {
+                    orderRemarkService.csymxmxzqtyybcjk(tjNum,proId,yy,dept.getOrgType(),czy,czydm);
+                    return AjaxResult.success();
+                }
+            }
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            throw new RuntimeException(ex);
+        }
+        return AjaxResult.error();
+    }
+
+
 }
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
index 85781cc..f1b3506 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
@@ -72,6 +72,8 @@
     private RedisCache redisCache;
     @Autowired
     private TjProjectXgjlService xgjlService;
+    @Autowired
+    private TjBzProService bzProService;
 
 
     @GetMapping("/getTjHyBgList")
@@ -805,4 +807,62 @@
 //        }
 //    }
 
+
+
+    @PostMapping("/addOrupdateProByBz")
+    @ApiOperation(value = "鏂板鎴栦慨鏀规墍閫夐」鐩殑瀵瑰簲鐥呯淇℃伅")
+    @Transactional
+    public AjaxResult addOrupdateProByBz(@ApiParam(value = "椤圭洰ID闆嗗悎")@RequestParam(required = false) List<String> proIds,
+                                         @ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz) {
+        try {
+            if(null !=  proIds && !proIds.isEmpty()){
+                bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz));
+                for (String proId : proIds) {
+                    TjBzPro bzPro=new TjBzPro();
+                    bzPro.setBzId(Long.valueOf(bz));
+                    bzPro.setProId(Long.valueOf(proId));
+                    bzProService.save(bzPro);
+                }
+            }
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @GetMapping("/getProByBz")
+    @ApiOperation(value = "鏌ヨ鐥呯瀵瑰簲椤圭洰")
+    public AjaxResult getProByBz(@ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz) {
+        try {
+            LambdaQueryWrapper<TjBzPro> tjBzProLambdaQueryWrapper = new LambdaQueryWrapper<>(TjBzPro.class);
+            if(StringUtil.isNotBlank(bz)){
+                tjBzProLambdaQueryWrapper.eq(TjBzPro::getBzId, bz);
+                List<TjBzPro> list = bzProService.list(tjBzProLambdaQueryWrapper);
+                for (TjBzPro bzPro : list) {
+                    TjProject tjProject = tjProjectService.getById(bzPro.getProId());
+                    if(null != tjProject)bzPro.setProName(tjProject.getProName());
+                }
+                return AjaxResult.success(list);
+            }else {
+                List<TjProject> list = tjProjectService.selectTjProjectListByBz();
+                return AjaxResult.success(list);
+            }
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @DeleteMapping("/delProByBz")
+    @ApiOperation(value = "鍒犻櫎鐥呯瀵瑰簲椤圭洰")
+    public AjaxResult delProByBz(@ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz,
+                                 @ApiParam(value = "椤圭洰ID")@RequestParam(required = false)String proId) {
+        try {
+            bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz).eq(TjBzPro::getProId,proId));
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
 }
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java
index 816ef09..a84dfa2 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java
@@ -1,7 +1,9 @@
 package com.ltkj.web.controller.system;
 
 import cn.hutool.core.codec.Base64;
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.pinyin.PinyinUtil;
@@ -9,11 +11,19 @@
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.common.base.Joiner;
+import com.ltkj.common.annotation.RepeatSubmit;
 import com.ltkj.common.core.domain.AjaxResult;
 import com.ltkj.common.core.domain.entity.SysDept;
+import com.ltkj.common.core.domain.entity.SysDictData;
 import com.ltkj.common.core.domain.entity.SysUser;
+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;
 import com.ltkj.hosp.domain.*;
+import com.ltkj.hosp.dto.ConfirmDto;
 import com.ltkj.hosp.idutil.IdUtils;
 import com.ltkj.hosp.mapper.TjSamplingMapper;
 import com.ltkj.hosp.service.*;
@@ -27,34 +37,36 @@
 import com.ltkj.system.service.ISysDeptService;
 import com.ltkj.system.service.ISysDictDataService;
 import com.ltkj.system.service.ISysUserService;
+import com.ltkj.web.config.pdfutils.PDFBinaryUtil;
+import com.ltkj.web.config.task.TjReservationTask;
 import com.ltkj.web.controller.his.HisApiMethod;
 import com.ltkj.web.controller.his.HisApiMethodService;
 import com.ltkj.web.controller.lis.LisApiMethod;
 import com.ltkj.web.wxUtils.HttpClientUtils;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.NoTransactionException;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
 import java.math.BigDecimal;
+import java.net.URL;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
 
 /**
  * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -64,6 +76,7 @@
 @Slf4j
 @RestController
 @RequestMapping("/zhiye/order")
+@Api(tags = "鑱屼笟鐥呯浉鍏虫帴鍙�")
 public class ZhiYeController {
     @Autowired
     private ISysUserService userService;
@@ -71,16 +84,28 @@
     private ITjCustomerService tjCustomerService;
     @Autowired
     private ITjReservationService tjReservationService;
+    @Resource
+    private ITjDwGroupingService dwGroupingService;
+    @Resource
+    private ITjGroupingProService groupingProService;
     @Autowired
     private IMallOrderService mallOrderService;
-    @Autowired
-    private ITjDwGroupingService dwGroupingService;
     @Autowired
     private ITbTransitionService transitionService;
     @Autowired
     private ITjOrderService tjOrderService;
     @Autowired
     private ISysConfigService configService;
+    @Resource
+    private IDictCompService compService;
+    @Resource
+    private ITjDwDeptService dwDeptService;
+    @Resource
+    private TjAsyncService asyncService;
+    @Resource
+    private ITjCompPayService compPayService;
+    @Resource
+    private ITjTeamSelectRecordService selectRecordService;
     @Autowired
     private IdUtils idUtils;
     @Autowired
@@ -121,6 +146,10 @@
     private ISysDeptService sysDeptService;
     @Autowired
     private TjFlowingWaterHisService tjFlowingWaterHisService;
+    @Autowired
+    private ISysDictDataService dictDataService;
+    @Autowired
+    private TaskService taskService;
 
     ReentrantLock lock = new ReentrantLock();
 
@@ -135,6 +164,7 @@
         wq.eq(TjCustomer::getCusId, tjOrder.getUserId());
         TjCustomer tjCustomer = tjCustomerService.getOne(wq);
         if (tjCustomer == null) return AjaxResult.error("璇ュ鎴锋湭鐧昏");
+
         TjFlowingWater tjFlowingWater = new TjFlowingWater();
         LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>();
         wq1.eq(TjReservation::getIdCard, tjCustomer.getCusIdcard());
@@ -156,6 +186,21 @@
             if (null != tjReservation.getJobNo()) tjOrder.setFirmWorkId(tjReservation.getJobNo());
             if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId());
             if (null != tjReservation.getTjCategory()) tjOrder.setTjCategory(tjReservation.getTjCategory());
+
+            if (null != tjReservation.getZhiyeJhgln()) tjOrder.setZhiyeJhgln(tjReservation.getZhiyeJhgln());
+            if (null != tjReservation.getZhiyeJhgly()) tjOrder.setZhiyeJhgly(tjReservation.getZhiyeJhgly());
+            if (null != tjReservation.getZhiyeKsjhrq()) tjOrder.setZhiyeKsjhrq(tjReservation.getZhiyeKsjhrq());
+            if (null != tjReservation.getZhiyeGh()) tjOrder.setZhiyeGh(tjReservation.getZhiyeGh());
+            if (null != tjReservation.getZhiyeGz()) tjOrder.setZhiyeGz(tjReservation.getZhiyeGz());
+            if (null != tjReservation.getZhiyeZgln()) tjOrder.setZhiyeZgln(tjReservation.getZhiyeZgln());
+            if (null != tjReservation.getZhiyeZgly()) tjOrder.setZhiyeZgly(tjReservation.getZhiyeZgly());
+            if (null != tjReservation.getZhiyeJhys()) tjOrder.setZhiyeJhys(tjReservation.getZhiyeJhys());
+            if (null != tjReservation.getZhiyeRzsj()) tjOrder.setZhiyeRzsj(tjReservation.getZhiyeRzsj());
+            if (null != tjReservation.getZhiyeScdw()) tjOrder.setZhiyeScdw(tjReservation.getZhiyeScdw());
+            if (null != tjReservation.getZhiyeZysksrq()) tjOrder.setZhiyeZysksrq(tjReservation.getZhiyeZysksrq());
+            if (null != tjReservation.getZhiyeZysjsrq()) tjOrder.setZhiyeZysjsrq(tjReservation.getZhiyeZysjsrq());
+            if (null != tjReservation.getZhiyeZysszdw()) tjOrder.setZhiyeZysszdw(tjReservation.getZhiyeZysszdw());
+
             if (null != tjReservation.getGroupingId()) {
                 TjDwGrouping dwGrouping = dwGroupingService.getById(tjReservation.getGroupingId());
                 tjOrder.setGroupId(tjReservation.getGroupingId());
@@ -163,7 +208,7 @@
             }
             tjReservation.setIsExpire(1);
             tjReservationService.updateById(tjReservation);
-            if (null != tjReservation.getTeamNo()) {
+            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
                 tjOrder.setTjType("1");
             } else if (tjOrder.getTjType().equals("2")) {
                 tjOrder.setTjType("2");
@@ -213,7 +258,8 @@
             }
         }catch (Exception e){
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error(String.valueOf(e));
+            log.error(String.valueOf(e),e.getMessage());
+            e.printStackTrace();
         }
         finally {
             lock.unlock();
@@ -221,15 +267,12 @@
         return AjaxResult.error();
     }
 
-    @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟
+
+    @Transactional(propagation = Propagation.REQUIRED)
     public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) {
+
         //鑾峰彇鎷兼帴鍓嶇紑
-        String sfkqtjhqz = configService.selectConfigByKey("sfkqtjhqz");
-        String makeLisTmhPrefix = "";
-        if(sfkqtjhqz.equalsIgnoreCase("Y")){
-            makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
-        }
-        //鐢熸垚浣撴鍙�
+        String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
         String tjNumber = null;
         int a =0;
         while (tjNumber ==null){
@@ -252,12 +295,14 @@
                 }
             } catch (Exception e) {
                 log.error(e.getMessage());
+                throw new IllegalStateException();
             }finally {
                 a++;
             }
         }
-        if(StringUtil.isBlank(tjNumber)) return AjaxResult.error("鐧昏澶辫触 閲嶆柊鎿嶄綔");
+
         tjOrder.setTjNumber(tjNumber);
+
         BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount()));
         tjOrder.setDiscount(discount.toString());
         if (tjOrderService.save(tjOrder)) {
@@ -346,38 +391,27 @@
             /*璋冪敤his鎺ュ彛*/
             String config = configService.selectConfigByKey("sfkqdyhis");
             if (null != config && config.equals("Y")) {
-                if(tjCustomer.getPationId().equals("0")){
-                    AjaxResult result = controller.Outpincreateapply(tjCustomer);
-                    String result1 = getAjaxResult(result);
-                    JSONObject object = getJSONObject(result1);
-                    String code = object.getStr("ResultCode");
-                    if (code.equals("0")) {
-                        JSONArray resultDatass = object.getJSONArray("ResultData");
-                        Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0);
-                        if (null != resultData && !resultData.isEmpty()) {
-                            String pationid = resultData.get("PationId").toString();
-                            if (null != pationid) {
-                                tjCustomer.setPationId(pationid);
-                                tjCustomerService.updateById(tjCustomer);
-                            }
+                AjaxResult result = null;
+                try {
+                    result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
+                    if (!result.get("code").toString().equals("200")) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        Object jzh = result.get("jzh");
+                        if (null != jzh && null != jzh.toString()) {
+                            hisApiMethod.ZfHisApiMethod(jzh.toString());
                         }
+                        log.info("璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId());
+                        return AjaxResult.error("鎸傚彿澶辫触!" + result.get("msg").toString());
                     }
+                } catch (NoTransactionException e) {
+                    log.error(e.getMessage());
+                    throw new RuntimeException(e);
                 }
-                AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
-                if (!result.get("code").toString().equals("200")) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    Object jzh = result.get("jzh");
-                    if (null != jzh && null != jzh.toString()) {
-                        hisApiMethod.ZfHisApiMethod(jzh.toString());
-                    }
-                    log.info("璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId());
-                    throw new IllegalStateException("鎸傚彿澶辫触!" + result.get("msg").toString());
-                }
+
                 log.info("璇ョ櫥璁颁汉鐨刪is灏辫瘖鍙锋槸: " + tjOrder.getCardId());
                 // 鏌ヨ 瀵规帴Lis銆丳acs鐢宠濡傛灉绫诲瀷鍖呭惈鍦ㄩ厤缃唴鍒欎娇鐢ㄥ鎺is銆乸acs
                 try {
                     if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
-                        log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ヤ綋妫�浜哄憳涓嶆敹璐�:"+tjOrder.getTjNumber());
                         // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁
                         tjFlowingWater.setPayStasus(1L);
                         newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
@@ -388,24 +422,17 @@
                         remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                         List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                         xdPictureService.saveBatch(xdPictureList);
-                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
-                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
-                        log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ユ柟娉曟墽琛屽畬姣�");
                     } else {
-                        log.info("璋冪敤his寮�鍚� 杩涘叆鏀惰垂鏂规硶 璇ヤ綋妫�浜哄憳鏀惰垂:"+tjOrder.getTjNumber());
                         newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                         List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                         addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
-                        String isUseMx = configService.selectConfigByKey("jcxhis_is_use_mx");
-                        if (isUseMx.equalsIgnoreCase("Y"))
-                            hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
-                        else hisApiMethod.tijianshenqingJinchuanNew(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
+                        hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
                     }
+                    return AjaxResult.success(tjNumber);
                 } catch (Exception e) {
                     log.error(e.getMessage());
-                    throw new IllegalStateException();
+                    throw new RuntimeException(e);
                 }
-                return AjaxResult.success(tjNumber);
             } else {
                 tjCustomer.setCardId(tjOrder.getTjNumber());
                 tjCustomerService.updateById(tjCustomer);
@@ -413,45 +440,38 @@
                 tjOrder.setCardId(tjOrder.getTjNumber());
                 tjOrderService.updateById(tjOrder);
             }
+            String drrysfsf = configService.selectConfigByKey("drrysfsf");
+            try {
+                if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
+                    if(StringUtil.isNotBlank(drrysfsf) && drrysfsf.equalsIgnoreCase("Y")){
+                        if(null != tjReservation){
+                            return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
+                        }else {
+                            newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
+                            AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
+                            if (error != null) return error;
 
-            // 鏌ヨ 瀵规帴Lis銆丳acs鐢宠濡傛灉绫诲瀷鍖呭惈鍦ㄩ厤缃唴鍒欎娇鐢ㄥ鎺is銆乸acs
-            log.info("绛惧埌鐧昏鎺ュ彛璇ヤ汉鍛�: "+tjOrder.getTjNumber()+" 鐨勪綋妫�绫诲瀷鏄�:"+tjOrder.getTjType());
-            if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
-                try {
-                    log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏杩涘叆鏈敹璐规柟娉�");
-                    // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁
-                    tjFlowingWater.setPayStasus(1L);
+                            return AjaxResult.success(tjNumber);
+                        }
+                    }
+                    return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
+
+                } else {
                     newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
-                    tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
-                            sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
-                    remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
-                    List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
-                    xdPictureService.saveBatch(xdPictureList);
-                    List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
-                    log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏:閲囨牱鏁版嵁鏌ヨ涓暟"+detailList.size());
-                    addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
-                    return AjaxResult.success(tjNumber);
-                } catch (Exception e) {
-                    log.error(e.getMessage());
-                    throw new IllegalStateException(e);
+                    AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
+                    if (error != null) return error;
                 }
-            } else {
-                try {
-                    log.info(tjOrder.getTjNumber()+"else绛惧埌鐧昏杩涘叆鏀惰垂鏂规硶");
-                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
-                    isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
-                } catch (Exception e) {
-                    log.error("processOrderWithTransaction 鏂规硶寮傚父"+e.getMessage());
-                    throw new RuntimeException("璋冪敤鍏叡鏂规硶澶辫触 寮哄埗瑙﹀彂鍥炴粴");
-                }
+            } catch (Exception e) {
+                log.error(e.getMessage());
+                throw new RuntimeException(e);
             }
 
             return AjaxResult.success(tjNumber);
         }
-        throw new RuntimeException("浣撴璁板綍淇濆瓨澶辫触 寮哄埗瑙﹀彂鍥炴粴");
+        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        return AjaxResult.error();
     }
 
-    @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟
     public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
         try {
             tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
@@ -495,104 +515,120 @@
                 xdPictureService.saveBatch(xdPictureList);
             }
         } catch (Exception e) {
+            log.error(e.getMessage());
             throw new RuntimeException(e);
         }
     }
 
-    @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟
     public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser, String jxbz) {
-        try {
-            String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
-            String config = configService.selectConfigByKey("sfkqdyhis");
-            Boolean lisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
-            if (null != detailList && detailList1) {
-                Date date = new Date();
-                String format = DateUtil.format(date, "yyMMddHHmmssSSS");
-                for (TjOrderDetail detail : detailList) {
-                    int i = samplingService.isExistProId(order.getTjNumber(), String.valueOf(detail.getProId()));
-                    if(i>0) continue;
-                    TjSampling sampling = new TjSampling();
-                    if (null == projectService.getById(detail.getProId())) continue;
-                    TjProject project = projectService.getById(detail.getProId());
-                    Long proParentId = project.getProParentId();
-                    String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType());
-                    if (null != proParentId && proParentId == 0) {
-                        sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
-                        sampling.setSpecimenTypeCode(project.getSpecimenType());
-                        sampling.setSpecimenType(dictLabel);
-                        if (config.equals("Y") && lisAndPacsRegister)
-                            sampling.setJyxmdm(project.getLisXmbm());
-                        else sampling.setJyxmdm(project.getProId().toString());
+        String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
+        String config = configService.selectConfigByKey("sfkqdyhis");
+        Boolean lisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
+        if (null != detailList && detailList1) {
+            Date date = new Date();
+            String format = DateUtil.format(date, "yyMMddHHmmssSSS");
+            for (TjOrderDetail detail : detailList) {
+                int i = samplingService.isExistProId(order.getTjNumber(), String.valueOf(detail.getProId()));
+                if(i>0) continue;
+                TjSampling sampling = new TjSampling();
+                if (null == projectService.getById(detail.getProId())) continue;
+                TjProject project = projectService.getById(detail.getProId());
+                Long proParentId = project.getProParentId();
+                String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType());
+                if (null != proParentId && proParentId == 0) {
+                    sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
+                    sampling.setSpecimenTypeCode(project.getSpecimenType());
+                    sampling.setSpecimenType(dictLabel);
+                    if (config.equals("Y") && lisAndPacsRegister)
+                        sampling.setJyxmdm(project.getLisXmbm());
+                    else sampling.setJyxmdm(project.getProId().toString());
+                } else {
+                    TjProject project1 = projectService.getById(proParentId);
+                    sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
+
+                    sampling.setSpecimenTypeCode(project1.getSpecimenType());
+                    sampling.setSpecimenType(dictLabel);
+                    if (config.equals("Y") && lisAndPacsRegister)
+                        sampling.setJyxmdm(project1.getLisXmbm());
+                    else sampling.setJyxmdm(project1.getProId().toString());
+
+                }
+                sampling.setSamplingNumber(format);
+                sampling.setTjNum(order.getTjNumber());
+                sampling.setCusId(String.valueOf(order.getUserId()));
+                if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
+                    sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
+                }
+                sampling.setApplicationTime(date);
+                sampling.setTjTime(order.getCreateTime());
+                sampling.setProId(String.valueOf(detail.getProId()));
+                sampling.setProName(projectService.getById(detail.getProId()).getProName());
+                sampling.setCreateBy(sysUser.getNickName());
+                sampling.setCreateTime(date);
+                sampling.setUpdateBy(sysUser.getNickName());
+                sampling.setUpdateTime(date);
+                sampling.setCreateId(String.valueOf(sysUser.getUserId()));
+                sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
+                sampling.setJxbz(jxbz);
+                samplingService.save(sampling);
+            }
+        }
+        if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) {
+            AjaxResult ajaxResult = lisApiMethod.getJyFlHb();
+            if (ajaxResult.get("code").toString().equals("200")) {
+                String str = ajaxResult.get("data").toString();
+                str = str.replace("=", ":");
+                JSONArray array = JSONUtil.parseArray(str);
+                for (Object o : array) {
+                    JSONObject object = (JSONObject) o;
+                    LisJyflhb lisJyflhb = new LisJyflhb();
+                    lisJyflhb.setHbhxm(object.getStr("hbhxm"));
+                    lisJyflhb.setFlmc(object.getStr("flmc"));
+                    lisJyflhb.setMc(object.getStr("mc"));
+                    lisJyflhb.setFlbm(object.getStr("flbm"));
+                    LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(LisJyflhb::getFlbm, lisJyflhb.getFlbm());
+                    LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper);
+                    if (jyflhb == null) {
+                        lisJyflhb.setId(IdUtil.getSnowflake().nextId());
+                        lisJyflhbService.save(lisJyflhb);
                     } else {
-                        TjProject project1 = projectService.getById(proParentId);
-                        sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
-
-                        sampling.setSpecimenTypeCode(project1.getSpecimenType());
-                        sampling.setSpecimenType(dictLabel);
-                        if (config.equals("Y") && lisAndPacsRegister)
-                            sampling.setJyxmdm(project1.getLisXmbm());
-                        else sampling.setJyxmdm(project1.getProId().toString());
-
-                    }
-                    sampling.setSamplingNumber(format);
-                    sampling.setTjNum(order.getTjNumber());
-                    sampling.setCusId(String.valueOf(order.getUserId()));
-                    if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
-                        sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
-                    }
-                    sampling.setApplicationTime(date);
-                    sampling.setTjTime(order.getCreateTime());
-                    sampling.setProId(String.valueOf(detail.getProId()));
-                    sampling.setProName(projectService.getById(detail.getProId()).getProName());
-                    sampling.setCreateBy(sysUser.getNickName());
-                    sampling.setCreateTime(date);
-                    sampling.setUpdateBy(sysUser.getNickName());
-                    sampling.setUpdateTime(date);
-                    sampling.setCreateId(String.valueOf(sysUser.getUserId()));
-                    sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
-                    sampling.setJxbz(jxbz);
-                    samplingService.save(sampling);
-                }
-            }
-            if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) {
-                AjaxResult ajaxResult = lisApiMethod.getJyFlHb();
-                if (ajaxResult.get("code").toString().equals("200")) {
-                    String str = ajaxResult.get("data").toString();
-                    str = str.replace("=", ":");
-                    JSONArray array = JSONUtil.parseArray(str);
-                    for (Object o : array) {
-                        JSONObject object = (JSONObject) o;
-                        LisJyflhb lisJyflhb = new LisJyflhb();
-                        lisJyflhb.setHbhxm(object.getStr("hbhxm"));
-                        lisJyflhb.setFlmc(object.getStr("flmc"));
-                        lisJyflhb.setMc(object.getStr("mc"));
-                        lisJyflhb.setFlbm(object.getStr("flbm"));
-                        LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>();
-                        wrapper.eq(LisJyflhb::getFlbm, lisJyflhb.getFlbm());
-                        LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper);
-                        if (jyflhb == null) {
-                            lisJyflhb.setId(IdUtil.getSnowflake().nextId());
-                            lisJyflhbService.save(lisJyflhb);
-                        } else {
-                            lisJyflhb.setId(jyflhb.getId());
-                            lisJyflhbService.updateById(lisJyflhb);
-                        }
+                        lisJyflhb.setId(jyflhb.getId());
+                        lisJyflhbService.updateById(lisJyflhb);
                     }
                 }
+            }
 
-            }
-            if (StrUtil.isNotBlank(jxbz)) {
-                tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), jxbz);
-            } else {
-                tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
-            }
-        } catch (Exception e) {
-            log.error(e.getMessage());
+        }
+        if (StrUtil.isNotBlank(jxbz)) {
+            tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), jxbz);
+        } else {
+            tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
         }
     }
 
-    @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟
-    public void isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) {
+    private AjaxResult isUseLisAndPacsRegister(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, SysUser sysUser, BigDecimal discount, String tjNumber) {
+        try {
+            log.info("绛惧埌鐧昏杩涘叆鏈敹璐规柟娉�");
+            // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁
+            tjFlowingWater.setPayStasus(1L);
+            newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
+            tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
+                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
+            remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
+            List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
+            xdPictureService.saveBatch(xdPictureList);
+            List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
+            log.info("绛惧埌鐧昏:閲囨牱鏁版嵁鏌ヨ涓暟"+detailList.size());
+            addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
+            return AjaxResult.success(tjNumber);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new RuntimeException(e);
+        }
+    }
+
+    private AjaxResult isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) {
         String s = configService.selectConfigByKey("is_request_common_his_api");
         if (null != s && s.equals("Y")) {
             String apiUrl = configService.selectConfigByKey("common_api_url");
@@ -625,6 +661,7 @@
                 SysDept dept = sysDeptService.getOne(wrapper2);
 
                 JSONObject obj = JSONUtil.createObj();
+//                Integer sl = project.getSl();
                 int sl = 1;
                 BigDecimal danjia = transition.getNowPrice();
                 BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
@@ -653,19 +690,418 @@
                 }
                 tjFlowingWaterService.updateById(tjFlowingWater);
             } else {
-                log.error("isRequestCommonHisApi 鏂规硶寮傚父");
-                throw new RuntimeException("is_request_common_his_api 寮哄埗瑙﹀彂鍥炴粴");
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error();
             }
+        }
+        return null;
+    }
+
+
+
+    @PostMapping("/importTemplate")
+    @ApiOperation(value = "瀵煎嚭excel琛ㄦā鏉�")
+    public void importTemplate(HttpServletResponse response) {
+        String value = configService.selectConfigByKey("path_filePath");
+        //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙�
+        try {
+            String base64String = PDFBinaryUtil.getPDFBinary(value + File.separator + "瑗垮畨璺嘲鏈虹數绉戞妧鏈夐檺鍏徃.xls");
+            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);
+                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 (Exception e) {
+            ExcelUtils.exportTemplate(response,"鍥綋棰勭害Excel妯$増",TjReservation.class);
+            throw new RuntimeException(e);
         }
     }
 
-    public String getAjaxResult(AjaxResult result) {
-        return result.get("data").toString();
+
+    @PostMapping("/newExcelImportNotDwDeptId")
+    @ApiOperation(value = "鍥綋excel琛ㄥ鍏� (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)")
+    @Transactional
+    public AjaxResult newExcelImportNotDwDeptId(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file,
+                                                @RequestParam @ApiParam(value = "鍗曚綅id") String dwId) {
+        List<TjReservation> tjReservations = null;
+        try {
+            tjReservations = ExcelUtils.readMultipartFile(file, TjReservation.class);
+        } catch (Exception e) {
+            return AjaxResult.error("瀵煎叆鏂囦欢鏈夎璇锋鏌ュ鍏ユ枃浠�!");
+        }
+        int grouping = dwGroupingService.selectTjDwGroupingByDwId(dwId);
+
+        if (grouping == 0) {
+            return AjaxResult.error("璇锋鏌ヨ鍗曚綅鏄惁瀛樺惁瀛樺湪椤圭洰!");
+        }
+
+        List<String> wrongList = new ArrayList<>();
+        List<TjReservation> rightList = new ArrayList<>();
+        List<String> yyList = new ArrayList<>();
+        Map<String, Object> map = new HashMap<>();
+        List<TjDwGrouping> groupingMans = null;//鐢�
+        List<TjDwGrouping> groupingWoMans = null;//濂�
+        List<TjDwGrouping> groupingWzs = null;//鏈煡(涓嶅垎鎬у埆)
+        try {
+            groupingMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
+                    .eq(TjDwGrouping::getSex, 0));
+            groupingWoMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
+                    .eq(TjDwGrouping::getSex, 1));
+            groupingWzs = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId)
+                    .eq(TjDwGrouping::getSex, 2));
+        } catch (Exception e) {
+            return AjaxResult.error("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!");
+        }
+
+        try {
+            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;//濂崇粍浜烘暟
+            List<String> ids = new ArrayList<>();
+
+//            String errMsg = "";
+            for (TjReservation tjReservation : tjReservations) {
+                String name = tjReservation.getName();
+                String idCard = tjReservation.getIdCard();
+                String phoe = tjReservation.getPhoe();
+                name = name.replaceAll("[',锛�;.銆� 鈥樷�淽", "").replaceAll(" ", "");
+                phoe = phoe.replaceAll("[',锛�;.銆� 鈥樷�淽", "").replaceAll(" ", "");
+                idCard = idCard.replaceAll("[',锛�;.銆� 鈥樷�淽", "").replaceAll(" ", "");
+
+                if (!StringUtils.isBlank(idCard) || !StringUtils.isBlank(phoe) || null != tjReservation.getDwxm()) {
+                    //灏嗙瀛﹁鏁扮殑鎵嬫満鍙疯浆鎹㈡垚鏂囨湰褰㈠紡
+                    phoe = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
+
+                    if (!ids.isEmpty() && ids.contains(idCard)) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("姝よ韩浠借瘉鍙�: " + tjReservation.getIdCard() + " 閲嶅,璇锋牳瀵瑰悗涓婁紶!");
+                    }
+
+                    ids.add(idCard);
+
+                    if (!Objects.equals(tjReservation.getSex(), MatchUtils.getSexByIdCard(idCard))){
+                        wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"浠ヤ笅浜哄憳鎬у埆 涓嶅噯纭�");
+                        log.info(tjReservation.getName() + " " + idCard);
+                    }
+
+                    if ((sfjysfzh.equalsIgnoreCase("Y") && !MatchUtils.isIdCard(idCard)) ||
+                            (sfjysjh.equalsIgnoreCase("Y") && !MatchUtils.isMobileNO(phoe))) {
+                        wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"韬唤璇佸彿/鎵嬫満鍙� 鏍煎紡涓嶅噯纭�");
+//                            errMsg = "韬唤璇佸彿/鎵嬫満鍙� 鏍煎紡涓嶅噯纭�";
+                        log.info(tjReservation.getName() + " " + idCard + MatchUtils.isIdCard(idCard) + " " + phoe + " " + MatchUtils.isMobileNO(phoe));
+                    }
+//                        else {
+
+                    tjReservation.setPhoe(phoe);
+
+                    tjReservation.setName(name);
+
+                    tjReservation.setIdCard(idCard);
+
+                    //骞撮緞
+                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard().replaceAll(" ", ""))));
+                    //鍑虹敓鏃ユ湡
+                    try {
+                        tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", "")));
+                    } catch (Exception e) {
+//                            return AjaxResult.error("韬唤璇佸彿涓嶆纭�");
+                    }
+
+                    TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().
+                            eq(TjDwDept::getDwDeptName, tjReservation.getDwxm().trim()).eq(TjDwDept::getDwId,dwId));
+                    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.getName() + " " + tjReservation.getIdCard());
+                        } else {
+                            rightList.add(tjReservation);
+                        }
+
+                    } else {
+                        wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"鎵�濉啓鐨勫椁愬垎绫诲悕 涓嶆纭�");
+                    }
+//                        }
+
+                }
+                else {
+                    wrongList.add(tjReservation.getName()+"韬唤璇佸彿/鎵嬫満鍙�/濂楅鍒嗙被鍚嶅悕涓虹┖");
+                }
+            }
+
+
+            if (!yyList.isEmpty()) {
+                map.put("list", yyList);
+                map.put("hjMoney", hjMoney);
+                return AjaxResult.error("鎿嶄綔澶辫触,浠ヤ笂浜哄憳宸茬粡棰勭害鏃犻渶瀵煎叆!!!", map);
+            }
+
+            if (!wrongList.isEmpty()) {
+                map.put("list", wrongList);
+                map.put("hjMoney", hjMoney);
+                return AjaxResult.error("鎿嶄綔澶辫触, 璇疯鐪熸牳瀵归敊璇俊鎭悗閲嶆柊瀵煎叆!!!", map);
+            } else {
+                map.put("list", rightList);
+                map.put("count", count);
+                map.put("hjMoney", hjMoney);
+                map.put("manCount", manCount);
+                map.put("manMoney", manMoney);
+                map.put("woManCount", woManCount);
+                map.put("woManMoney", woManMoney);
+                return AjaxResult.success("鎿嶄綔鎴愬姛", map);
+            }
+        } catch (NoTransactionException e) {
+//            throw new RuntimeException(e);
+            log.error(String.valueOf(e), e.getMessage());
+            return AjaxResult.error();
+        }
     }
 
-    public JSONObject getJSONObject(String builder) {
-        String Response = JSONUtil.parseObj(builder).getStr("Response");
-        return JSONUtil.parseObj(Response);
+
+
+    @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");
+
+        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()+" 閲嶅,璇锋牳瀵瑰悗涓婁紶!");
+
+                }
+                reservation.setName(reservation.getName().replaceAll("銆�","").replaceAll(" ",""));
+                ids.add(reservation.getIdCard());
+
+                TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId());
+
+                if(null !=dwGrouping){
+                    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.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());
+                    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()))) {
+                            reservation.setTjType(dictDataService.selectDictDataById(Long.valueOf(split[1])).getDictValue());
+                        }
+                    }
+
+
+                    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);
+            }
+
+//            .filter(a-> null != a.getPacId())
+
+            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("璇烽�夋嫨棰勭害瀵硅薄");
     }
 
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictComp.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictComp.java
index 72161d2..b01947b 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictComp.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictComp.java
@@ -226,6 +226,15 @@
     @Excel(name = "浜旂瑪绠�鐮�")
     private String wbm;
 
+    private String dwlx;
+    private String ssdq;
+    private String lsgx;
+    private String jjlx;
+    private String qygm;
+    private String hyfl;
+    private String fxpg;
+
+
     @TableField(exist = false)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date startTime;
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjBzPro.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjBzPro.java
new file mode 100644
index 0000000..e133706
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjBzPro.java
@@ -0,0 +1,50 @@
+package com.ltkj.hosp.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.ltkj.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * ClassName: TjBzPro <br/>
+ * Description: <br/>
+ * date: 2025/5/27 17:55<br/>
+ *
+ * @author zjh<br />
+ */
+
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "浣撴椤圭洰瀵瑰簲鐥呯瀵硅薄")
+public class TjBzPro extends BaseEntity {
+    /**
+     * 涓婚敭id
+     */
+    @TableId(type = IdType.AUTO)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+
+
+    @ApiModelProperty(value = "椤圭洰ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long proId;
+
+
+    @ApiModelProperty(value = "鐥呯ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long bzId;
+
+
+    @TableField(exist = false)
+    private String proName;
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java
index 3e15a2a..247df6f 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java
@@ -480,12 +480,13 @@
     /**
      * 寮�濮嬫帴瀹虫棩鏈�
      */
-    private Date zhiyeKsjhrq;
+    private String zhiyeKsjhrq;
 
     /**
      * 宸ュ彿
      */
     private String zhiyeGh;
+
 
     /**
      * 杞﹂棿
@@ -502,6 +503,17 @@
      */
     private String zhiyeJg;
 
+
+    private String zhiyeGz;
+    private String zhiyeZgln;
+    private String zhiyeZgly;
+    private String zhiyeJhys;
+    private String zhiyeRzsj;
+    private String zhiyeScdw;
+    private String zhiyeZysksrq;
+    private String zhiyeZysjsrq;
+    private String zhiyeZysszdw;
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java
index 2aace84..6314bca 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java
@@ -357,6 +357,90 @@
     @ApiModelProperty("鏈夋晥澶╂暟")
     private Integer yxts;
 
+    /**
+     * 鎺ュ宸ラ緞骞�
+     */
+    @ExcelImport("鎺ュ宸ラ緞骞�")
+    @ApiModelProperty("鎺ュ宸ラ緞骞�")
+    private String zhiyeJhgln;
+
+    /**
+     * 鎺ュ宸ラ緞鏈�
+     */
+    @ExcelImport("鎺ュ宸ラ緞鏈�")
+    @ApiModelProperty("鎺ュ宸ラ緞鏈�")
+    private String zhiyeJhgly;
+
+    /**
+     * 寮�濮嬫帴瀹虫棩鏈�
+     */
+    @ExcelImport("寮�濮嬫帴瀹虫棩鏈�")
+    @ApiModelProperty("寮�濮嬫帴瀹虫棩鏈�")
+    private String zhiyeKsjhrq;
+
+    /**
+     * 宸ュ彿
+     */
+    @ExcelImport("宸ュ彿")
+    @ApiModelProperty("宸ュ彿")
+    private String zhiyeGh;
+
+    /**
+     * 杞﹂棿
+     */
+    @ApiModelProperty("杞﹂棿")
+    private String zhiyeCj;
+
+    /**
+     * 鑱屼笟缁撹
+     */
+    @ApiModelProperty("鑱屼笟缁撹")
+    private String zhiyeJl;
+
+    /**
+     * 鑱屼笟缁撴灉
+     */
+    @ApiModelProperty("鑱屼笟缁撴灉")
+    private String zhiyeJg;
+
+    @ExcelImport("宸ョ")
+    @ApiModelProperty("宸ョ")
+    private String zhiyeGz;
+
+    @ExcelImport("鎬诲伐榫勫勾")
+    @ApiModelProperty("鎬诲伐榫勫勾")
+    private String zhiyeZgln;
+
+    @ExcelImport("鎬诲伐榫勬湀")
+    @ApiModelProperty("鎬诲伐榫勬湀")
+    private String zhiyeZgly;
+
+    @ExcelImport("鎺ュ鍥犵礌")
+    @ApiModelProperty("鎺ュ鍥犵礌")
+    private String zhiyeJhys;
+
+    @ExcelImport("鍏ヨ亴鏃堕棿")
+    @ApiModelProperty("鍏ヨ亴鏃堕棿")
+    private String zhiyeRzsj;
+
+    @ExcelImport("鎵�澶勫崟浣�")
+    @ApiModelProperty("鎵�澶勫崟浣�")
+    private String zhiyeScdw;
+
+    @ExcelImport("鑱屼笟鍙插紑濮嬫棩鏈�")
+    @ApiModelProperty("鑱屼笟鍙插紑濮嬫棩鏈�")
+    private String zhiyeZysksrq;
+
+    @ExcelImport("鑱屼笟鍙茬粨鏉熸棩鏈�")
+    @ApiModelProperty("鑱屼笟鍙茬粨鏉熸棩鏈�")
+    private String zhiyeZysjsrq;
+
+    @ExcelImport("鑱屼笟鍙叉墍鍦ㄥ崟浣�")
+    @ApiModelProperty("鑱屼笟鍙叉墍鍦ㄥ崟浣�")
+    private String zhiyeZysszdw;
+
+
+
 
 
     @Override
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjBzProMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjBzProMapper.java
new file mode 100644
index 0000000..58e0e11
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjBzProMapper.java
@@ -0,0 +1,16 @@
+package com.ltkj.hosp.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ltkj.hosp.domain.TjBzPro;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * ClassName: TjBzProMapper <br/>
+ * Description: <br/>
+ * date: 2025/5/28 16:15<br/>
+ *
+ * @author zjh<br />
+ */
+@Mapper
+public interface TjBzProMapper extends BaseMapper<TjBzPro> {
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java
index c4121cf..182a3e4 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java
@@ -317,4 +317,11 @@
     @Update("UPDATE tj_order_remark a " +
             "SET a.type=1 WHERE a.tj_number=#{tjNumber} and a.pro_id=#{proId}")
     int updateTjOrderRemarkByTjzt(@Param("tjNumber") String tjNumber,@Param("proId") String proId);
+
+
+    @Select("call csymxmxzqtyybcjk(#{tjh,mode=IN},#{xmid,mode=IN},#{yy,mode=IN},#{kslx,mode=IN},#{czy,mode=IN}," +
+            "#{czydm,mode=IN}) ")
+    void csymxmxzqtyybcjk(@Param("tjh")String tjNum,@Param("xmid") String proId,@Param("yy") String yy,
+                          @Param("kslx") String orgType,@Param("czy") String czy,@Param("czydm") String czydm);
+
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java
index 9429211..294788c 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java
@@ -208,4 +208,9 @@
     List<TjProject> getProListByBwwh(String bw);
 
 
+    @Select("SELECT * FROM tj_project a WHERE a.deleted=0 AND a.pro_status=0 AND a.pro_parent_id=0 AND a.pro_id NOT IN (SELECT pro_id FROM tj_bz_pro )")
+    List<TjProject> selectTjProjectListByBz();
+
+
+
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java
index d11357d..f678dc2 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java
@@ -104,4 +104,6 @@
     List<CsProVo> getYxJcXx(String tjNumber,String ks);
 
     int updateTjOrderRemarkByTjzt(String tjNumber,String proId);
+
+    void csymxmxzqtyybcjk(String tjNum, String proId, String yy, String orgType, String czy, String czydm);
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java
index bde7d45..fc5f135 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java
@@ -146,4 +146,7 @@
     List<TjProject> getProListByBblx(String bblx);
 
     List<TjProject> getProListByBwwh(String bw);
+
+    List<TjProject> selectTjProjectListByBz();
+
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjBzProService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjBzProService.java
new file mode 100644
index 0000000..66b7568
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjBzProService.java
@@ -0,0 +1,15 @@
+package com.ltkj.hosp.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ltkj.hosp.domain.TjBzPro;
+
+/**
+ * ClassName: TjBzProService <br/>
+ * Description: <br/>
+ * date: 2025/5/28 16:15<br/>
+ *
+ * @author zjh<br />
+ */
+
+public interface TjBzProService extends IService<TjBzPro> {
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjBzProServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjBzProServiceImpl.java
new file mode 100644
index 0000000..7b9a6bb
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjBzProServiceImpl.java
@@ -0,0 +1,18 @@
+package com.ltkj.hosp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ltkj.hosp.domain.TjBzPro;
+import com.ltkj.hosp.mapper.TjBzProMapper;
+import com.ltkj.hosp.service.TjBzProService;
+import org.springframework.stereotype.Service;
+
+/**
+ * ClassName: TjBzProServiceImpl <br/>
+ * Description: <br/>
+ * date: 2025/5/28 16:16<br/>
+ *
+ * @author zjh<br />
+ */
+@Service
+public class TjBzProServiceImpl extends ServiceImpl<TjBzProMapper, TjBzPro> implements TjBzProService {
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java
index dddcdf8..6084973 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java
@@ -214,4 +214,9 @@
         return mapper.updateTjOrderRemarkByTjzt(tjNumber, proId);
     }
 
+    @Override
+    public void csymxmxzqtyybcjk(String tjNum, String proId, String yy, String orgType, String czy, String czydm) {
+        mapper.csymxmxzqtyybcjk( tjNum,  proId,  yy,  orgType,  czy,  czydm);
+    }
+
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java
index da863d8..c2fddfb 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java
@@ -358,4 +358,9 @@
         return tjProjectMapper.getProListByBwwh(bw);
     }
 
+    @Override
+    public List<TjProject> selectTjProjectListByBz() {
+        return tjProjectMapper.selectTjProjectListByBz();
+    }
+
 }
diff --git a/ltkj-hosp/src/main/resources/mapper/DictCompMapper.xml b/ltkj-hosp/src/main/resources/mapper/DictCompMapper.xml
index 7f22d75..235b510 100644
--- a/ltkj-hosp/src/main/resources/mapper/DictCompMapper.xml
+++ b/ltkj-hosp/src/main/resources/mapper/DictCompMapper.xml
@@ -234,6 +234,7 @@
             <if test="validTime != null">valid_time = #{validTime},</if>
             <if test="wbm != null">wbm = #{wbm},</if>
             <if test="deleted != null">deleted = #{deleted},</if>
+            <if test="dwlx != null">dwlx = #{dwlx},</if>
         </trim>
         where drug_manufacturer_id = #{drugManufacturerId}
     </update>

--
Gitblit v1.8.0