From 23cbab8e322e7aa6fda98dde4540b01ecf3c4fd1 Mon Sep 17 00:00:00 2001
From: lige <bestlige@outlook.com>
Date: 星期三, 28 二月 2024 12:18:18 +0800
Subject: [PATCH] 1

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java |  761 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 451 insertions(+), 310 deletions(-)

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 67959ef..8ce2102 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
@@ -5,14 +5,20 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.SysUser;
 import com.ltkj.common.core.redis.RedisCache;
+import com.ltkj.common.enums.DataSourceType;
 import com.ltkj.common.utils.SecurityUtils;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
+import com.ltkj.framework.config.UserHoder;
+import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
 import com.ltkj.hosp.domain.*;
+import com.ltkj.hosp.mapper.TestMapper;
 import com.ltkj.hosp.service.*;
+import com.ltkj.hosp.sqlDomain.*;
 import com.ltkj.hosp.vodomain.CsProVo;
 import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo;
 import com.ltkj.mall.mallOrderUtils.TjConstants;
@@ -31,6 +37,9 @@
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
+
+import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save;
+import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.setClipRect;
 
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
@@ -70,28 +79,39 @@
     private ISysConfigService configService;
     @Resource
     private ISysDeptService deptService;
-
+    @Resource
+    private TestMapper testMapper;
+    @Resource
+    private TjvLtkjvtjpatService tjvLtkjvtjpatService;
+    @Resource
+    private LtkjMiddleDetailService middleDetailService;
+    @Resource
+    private LtkjMiddleHeadService headService;
+    @Resource
+    private LtkjExamJcbgdService ltkjExamJcbgdService;
+    @Resource
+    private LtkjExamJcsqdService ltkjExamJcsqdService;
+    @Resource
+    private LtkjHybgdService ltkjHybgdService;
+    @Resource
+    private LtkjHysqdService ltkjHysqdService;
 
 
     @GetMapping("/getOperationPermissionsByTjNum")
     @ApiOperation(value = "(鍒濆椤甸潰  鍜� 鍖荤敓椤甸潰)鏍规嵁浣撴鍙疯幏鍙栨槸鍚﹀彲鎿嶄綔鏉冮檺鎺ュ彛  true鍙搷浣�  鍙嶄箣涓嶅彲")
     public AjaxResult getOperationPermissionsByTjNum(@ApiParam(value = "浣撴鍙�") @RequestParam String tjNumber) {
         TjOrder order = orderService.getOrderByTjNum(tjNumber);
-        if(null !=order){
+        if (null != order) {
             Integer status = order.getStatus();
-            if(status<300){
+            if (status < 300) {
                 return AjaxResult.success(true);
             }
-            if(status>300){
+            if (status > 300) {
                 return AjaxResult.success(false);
             }
         }
         return AjaxResult.success(false);
     }
-
-
-
-
 
 
     @GetMapping("/getCsList")
@@ -106,84 +126,90 @@
                                 @ApiParam(value = "寮�濮嬫椂闂�") @RequestParam(required = false) String beginTime,
                                 @ApiParam(value = "缁撴潫鏃堕棿") @RequestParam(required = false) String endTime) {
 
-        DateTime beginTimes = null;
-        DateTime endTimes = null;
-        if (null != beginTime && null != endTime) {
-            beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime));
-            endTimes = DateUtil.endOfDay(DateUtil.parse(endTime));
-        }
-        //鍒濆鍖栦綋妫�璁㈠崟琛�
-        List<TjOrder> orderList = null;
-        List<TjCustomer> customerList = new ArrayList<>();
-        Map<String, Object> map = new HashMap<>();
-
-        if (checkStatus == 0)
-            asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes));
-        if (checkStatus == 1)
-            asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes));
-
-        //鏍规嵁濮撳悕鏌ヨ
-        if (null != name && !"".equals(name)) {
-            List<TjCustomer> list = customerService.getTjCustomerList(name);
-            if (null != list && list.size() > 0) {
-                List<TjCustomer> lists = new ArrayList<>();
-                for (TjCustomer customer : list) {
-                    orderList = orderService.getCsTjOrderListByCusId(customer.getCusId());
-                    if (null != orderList && orderList.size() > 0) {
-                        for (TjOrder tjOrder : orderList) {
-                            customer.setTjNumber(tjOrder.getTjNumber());
-                            customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus()));
-                            customer.setOrderId(tjOrder.getOrderId());
-                            customer.setTjTime(tjOrder.getFinishTime());
-                            customer.setFinishTime(tjOrder.getFinishTime());
-                            customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
-                            customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
-                            customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
-                            customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
-                            if (tjOrder.getFirmId().equals("0")) {
-                                customer.setTjCompName(null);
-                            } else {
-                                customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName());
-                            }
-                            lists.add(customer);
-                        }
-                    }
-                }
-                List<TjCustomer> customers = null;
-                if (lists.size() > 0) {
-                    customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-                }
-                map.put("customers", customers);
-                map.put("total", lists.size());
-                return AjaxResult.success(map);
-            }
-            return AjaxResult.success("鏆傛棤鏁版嵁");
-        }
-
-        //鏉′欢鏌ヨ
-        if(null != tjNumber || null !=compId || (null !=beginTime && null !=endTime)){
-            orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
-            return getResult(page, pageSize, orderList, customerList, map);
-        }
-
-        List<TjCustomer> customers = null;
-        if (checkStatus == 0) {
-            customers = redisCache.getCacheMapValue("cScheck", "ws");
-        }
-        if (checkStatus == 1) {
-            customers = redisCache.getCacheMapValue("cScheck", "ys");
-        }
-        if (customers != null && customers.size() > 0) {
-            List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-            map.put("customers", customerLists);
-            map.put("total", customers.size());
-            return AjaxResult.success(map);
-        } else {
-            orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
-            return getResult(page, pageSize, orderList, customerList, map);
-        }
+//        DateTime beginTimes = null;
+//        DateTime endTimes = null;
+//        if (null != beginTime && null != endTime) {
+//            beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime));
+//            endTimes = DateUtil.endOfDay(DateUtil.parse(endTime));
+//        }
+//        //鍒濆鍖栦綋妫�璁㈠崟琛�
+//        List<TjOrder> orderList = null;
+//        List<TjCustomer> customerList = new ArrayList<>();
+//        Map<String, Object> map = new HashMap<>();
+//
+//        if (checkStatus == 0)
+//            asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes));
+//        if (checkStatus == 1)
+//            asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes));
+//
+//        //鏍规嵁濮撳悕鏌ヨ
+//        if (null != name && !"".equals(name)) {
+//            List<TjCustomer> list = customerService.getTjCustomerList(name);
+//            if (null != list && list.size() > 0) {
+//                List<TjCustomer> lists = new ArrayList<>();
+//                for (TjCustomer customer : list) {
+//                    orderList = orderService.getCsTjOrderListByCusId(customer.getCusId());
+//                    if (null != orderList && orderList.size() > 0) {
+//                        for (TjOrder tjOrder : orderList) {
+//                            customer.setTjNumber(tjOrder.getTjNumber());
+//                            customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus()));
+//                            customer.setOrderId(tjOrder.getOrderId());
+//                            customer.setTjTime(tjOrder.getCreateTime());
+//                            customer.setFinishTime(tjOrder.getFinishTime());
+//                            customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
+//                            customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
+//                            customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
+//                            customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
+//                            if (tjOrder.getFirmId().equals("0")) {
+//                                customer.setTjCompName(null);
+//                            } else {
+//                                customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName());
+//                            }
+//                            lists.add(customer);
+//                        }
+//                    }
+//                }
+//                List<TjCustomer> customers = null;
+//                if (lists.size() > 0) {
+//                    customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//                }
+//                map.put("customers", customers);
+//                map.put("total", lists.size());
+//                return AjaxResult.success(map);
+//            }
+//            return AjaxResult.success("鏆傛棤鏁版嵁");
+//        }
+//
+//        //鏉′欢鏌ヨ
+//        if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) {
+//            orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            return getResult(page, pageSize, orderList, customerList, map);
+//        }
+//
+//        List<TjCustomer> customers = null;
+//        if (checkStatus == 0) {
+//            customers = redisCache.getCacheMapValue("cScheck", "ws");
+//        }
+//        if (checkStatus == 1) {
+//            customers = redisCache.getCacheMapValue("cScheck", "ys");
+//        }
+//        if (customers != null && customers.size() > 0) {
+//            List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//            map.put("customers", customerLists);
+//            map.put("total", customers.size());
+//            return AjaxResult.success(map);
+//        } else {
+//            orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            return getResult(page, pageSize, orderList, customerList, map);
+//        }
+        String value = String.valueOf(compId);
+        if (tjNumber == null) tjNumber = "";
+        if (compId == null) value = "";
+        if (name == null) name = "";
+        if (beginTime == null) beginTime = "";
+        if (endTime == null) endTime = "";
+        return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name));
     }
-
 
 
     /**
@@ -192,25 +218,42 @@
     @GetMapping("/cSWebGetProByTjNumAndOrderId")
     @ApiOperation(value = "(鍒濆椤甸潰)鐐瑰嚮浣撴浜哄憳灞曠ず浣撴椤圭洰鎺ュ彛")
     public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam(value = "浣撴鍙�") @RequestParam String tjNumber) {
-        List<TjOrderRemark> orderRemarkList = orderRemarkService.getTjOrderRemarkListByTjNum(tjNumber);
-        List<CsProVo> list = new ArrayList<>();
-        if (null != orderRemarkList && orderRemarkList.size() > 0) {
-            for (TjOrderRemark remark : orderRemarkList) {
-                CsProVo vo = new CsProVo();
-                vo.setDeptName(deptService.getById(remark.getDeptId()).getDeptName());
-                vo.setProName(projectService.getById(remark.getProId()).getProName());
-                vo.setType(remark.getType());
-                if(null !=remark.getDoctorName()){
-                    vo.setDoctorName(userService.getById(remark.getDoctorName()).getNickName());
-                    vo.setBcdoctorName(userService.getById(remark.getDoctorName()).getNickName());
+//        List<TjOrderRemark> orderRemarkList = orderRemarkService.getTjOrderRemarkListByTjNum(tjNumber);
+//        List<CsProVo> list = new ArrayList<>();
+//        if (null != orderRemarkList && orderRemarkList.size() > 0) {
+//            for (TjOrderRemark remark : orderRemarkList) {
+//                CsProVo vo = new CsProVo();
+//                vo.setDeptName(deptService.getById(remark.getDeptId()).getDeptName());
+//                vo.setProName(projectService.getById(remark.getProId()).getProName());
+//                vo.setType(remark.getType());
+//                if (null != remark.getDoctorName()) {
+//                    vo.setDoctorName(userService.getById(remark.getDoctorName()).getNickName());
+//                    vo.setBcdoctorName(userService.getById(remark.getDoctorName()).getNickName());
+//                }
+//                vo.setSffs("缁熸敹");
+//                vo.setIsPay("宸叉敹璐�");
+//                vo.setQdcreateTime(remark.getCreateTime());
+//                vo.setBcupdateTime(remark.getUpdateTime());
+//                vo.setZhupdateTime(remark.getUpdateTime());
+//                list.add(vo);
+//            }
+//            List<CsProVo> list1 = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber);
+//            Collections.sort(list, new Comparator<CsProVo>() {
+//                @Override
+//                public int compare(CsProVo o1, CsProVo o2) {
+//                    return o1.getType() - o2.getType();
+//                }
+//            });
+//        }
+
+        List<CsProVo> list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber);
+        if (null != list && list.size() > 0) {
+            list.sort(new Comparator<CsProVo>() {
+                @Override
+                public int compare(CsProVo o1, CsProVo o2) {
+                    return o1.getType() - o2.getType();
                 }
-                vo.setSffs("缁熸敹");
-                vo.setIsPay("宸叉敹璐�");
-                vo.setQdcreateTime(remark.getCreateTime());
-                vo.setBcupdateTime(remark.getUpdateTime());
-                vo.setZhupdateTime(remark.getUpdateTime());
-                list.add(vo);
-            }
+            });
         }
         return AjaxResult.success(list);
     }
@@ -220,27 +263,25 @@
      * 鍒濆
      */
     @GetMapping("/confirmOrder")
-        @ApiOperation(value = "鍒濆(骞朵慨鏀圭姸鎬�)鎺ュ彛")
-//    @PreAuthorize("@ss.hasPermi('check:check:confirmOrder')")
+    @ApiOperation(value = "鍒濆(骞朵慨鏀圭姸鎬�)鎺ュ彛")
     @Transactional
     public AjaxResult confirmOrder(@ApiParam(value = "tjNumber") @RequestParam String tjNumber,
-                                   @ApiParam(value = "鐘舵�� 0鍚屾剰1鎷掔粷 榛樿鍚屾剰") @RequestParam(defaultValue = "0") Integer status,
+                                   @ApiParam(value = "鐘舵�� 0鍚屾剰 1鎷掔粷 榛樿鍚屾剰") @RequestParam(defaultValue = "0") Integer status,
                                    @ApiParam(value = "椹冲洖鐞嗙敱") @RequestParam(required = false) String remark) {
         int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
-        if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘瀹℃牳!");
+        if (num > 0) return AjaxResult.error("璇峰厛鍚屾浣撴椤圭洰!");
         if (null != tjNumber) {
             Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
             SysUser sysUser = userService.getById(userId);
-            LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
-            wq1.eq(TjOrder::getTjNumber, tjNumber);
-            TjOrder tjOrder = orderService.getOne(wq1);
+            TjOrder tjOrder = orderService.getOrderByTjNum(tjNumber);
             if (null != tjOrder) {
                 tjOrder.setConfirmTime(new DateTime());
                 tjOrder.setConfirmDoctor(sysUser.getNickName());
-                tjOrder.setConfirmStatus(remark);
-                if(status==0){
+                tjOrder.setConfirmStatus(String.valueOf(status));
+                if (status == 0) {
                     tjOrder.setStatus(TjConstants.TJ_CHECK);
-                }else {
+                    asyncService.updateCheckType(tjNumber);
+                } else {
                     tjOrder.setStatus(TjConstants.TJ_REFUSED);
                 }
                 if (orderService.updateById(tjOrder)) {
@@ -249,6 +290,8 @@
                     confirmLog.setTjNum(tjNumber);
                     confirmLog.setStatus(status);
                     confirmLogService.save(confirmLog);
+                    asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 0, null, null, null));
+                    asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 1, null, null, null));
                     return AjaxResult.success("鎿嶄綔鎴愬姛");
                 }
                 return AjaxResult.error("鎿嶄綔澶辫触");
@@ -260,16 +303,62 @@
 
 
     /**
+     * 鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛
+     */
+    @GetMapping("/dataSynchronization")
+    @ApiOperation(value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
+    @RepeatSubmit
+    public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
+        //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
+        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
+        if ("Y".equals(getInfoFromSqlData)) {
+            TjOrder order = orderService.getOrderByTjNum(tjNumber);
+            if (null != order) {
+                List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
+                if (one != null && one.size() > 0) {
+                    for (LtkjHysqd ltkjHysqd : one) {
+//                        DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+                        LtkjHysqd hysqd = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh());
+                        if (hysqd == null) {
+                            ltkjHysqdService.save(ltkjHysqd);
+                            DynamicDataSourceContextHolder.clearDataSourceType();
+                            List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
+                            if (one1 != null && one1.size() > 0) {
+                                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+                                ltkjHybgdService.saveBatch(one1);
+                                DynamicDataSourceContextHolder.clearDataSourceType();
+                            }
+                        }
+                    }
+                }
+
+//                List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
+//                if (one2 != null && one2.size() > 0) {
+//                    DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+//                    ltkjExamJcsqdService.saveBatch(one2);
+//                    DynamicDataSourceContextHolder.clearDataSourceType();
+//                    for (LtkjExamJcsqd ltkjExamJcsqd : one2) {
+//                        List<LtkjExamJcbgd> one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh());
+//                        if (one3 != null && one3.size() > 0) {
+//                            DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+//                            ltkjExamJcbgdService.saveBatch(one3);
+//                            DynamicDataSourceContextHolder.clearDataSourceType();
+//                        }
+//                    }
+//                }
+                //鍚屾鍖栭獙椤圭洰
+                testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                //鍚屾妫�鏌ラ」鐩�
+                testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                asyncService.updateCheckType(order.getTjNumber());
+            }
+        }
+        return AjaxResult.success("鍚屾鎴愬姛");
+    }
+
+
+    /**
      * 鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃
-     *
-     * @param tjNumber
-     * @param checkStatus
-     * @param page
-     * @param pageSize
-     * @param compId
-     * @param beginTime
-     * @param endTime
-     * @return
      */
     @GetMapping("/getList")
     @ApiOperation(value = "鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃")//0寰�1宸�
@@ -282,94 +371,102 @@
                               @ApiParam(value = "濮撳悕)") @RequestParam(required = false) String name,
                               @ApiParam(value = "寮�濮嬫椂闂�") @RequestParam(required = false) String beginTime,
                               @ApiParam(value = "缁撴潫鏃堕棿") @RequestParam(required = false) String endTime) {
-
-        String config = configService.selectConfigByKey("tj_confirm");
-        DateTime beginTimes = null;
-        DateTime endTimes = null;
-        if (null != beginTime && null != endTime) {
-            beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime));
-            endTimes = DateUtil.endOfDay(DateUtil.parse(endTime));
-        }
-        asyncService.checkSetCustomerLisByRedis(config);
-        //鍒濆鍖栦綋妫�璁㈠崟琛�
-        List<TjOrder> orderList = null;
-        List<TjCustomer> customerList = new ArrayList<>();
-        Map<String, Object> map = new HashMap<>();
-
-        //濮撳悕鏌ヨ
-        if (null != name && !"".equals(name)) {
-            List<TjCustomer> list = customerService.getTjCustomerList(name);
-            if (null != list && list.size() > 0) {
-                List<TjCustomer> lists = new ArrayList<>();
-                for (TjCustomer customer : list) {
-                    if ("Y".equals(config)) {
-                        orderList = orderService.getCsTjOrderListByCusId1(customer.getCusId());
-                    } else {
-                        orderList = orderService.getTjOrderListByCusId(customer.getCusId());
-                    }
-                    if (null != orderList && orderList.size() > 0) {
-                        for (TjOrder tjOrder : orderList) {
-                            customer.setTjNumber(tjOrder.getTjNumber());
-                            customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus()));
-                            customer.setOrderId(tjOrder.getOrderId());
-                            customer.setTjTime(tjOrder.getFinishTime());
-                            customer.setFinishTime(tjOrder.getFinishTime());
-                            customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
-                            customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
-                            customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
-                            customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
-                            if (tjOrder.getFirmId().equals("0")) {
-                                customer.setTjCompName(null);
-                            } else {
-                                customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName());
-                            }
-                            lists.add(customer);
-                        }
-                    }
-                }
-                List<TjCustomer> customers = null;
-                if (lists.size() > 0) {
-                    customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-                }
-                map.put("customers", customers);
-                map.put("total", lists.size());
-                return AjaxResult.success(map);
-            }
-            return AjaxResult.success("鏆傛棤鏁版嵁");
-        }
-
-        //鏉′欢鏌ヨ
-        if(null != tjNumber || null !=compId || (null !=beginTime && null !=endTime)){
-            //鍒ゆ柇鏄惁寮�鍚垵瀹�
-            if ("Y".equals(config)) {
-                orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes);
-            } else {
-                orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
-            }
-            return getResult(page, pageSize, orderList, customerList, map);
-        }
-
-        List<TjCustomer> customers = null;
-        if (null != checkStatus && checkStatus == 0) {
-            customers = redisCache.getCacheMapValue("check", "ws");
-        }
-        if (null != checkStatus && checkStatus == 1) {
-            customers = redisCache.getCacheMapValue("check", "ys");
-        }
-        if (customers != null && customers.size() > 0) {
-            List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-            map.put("customers", customerLists);
-            map.put("total", customers.size());
-            return AjaxResult.success(map);
-        } else {
-            //鍒ゆ柇鏄惁寮�鍚垵瀹�
-            if ("Y".equals(config)) {
-                orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes);
-            } else {
-                orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
-            }
-            return getResult(page, pageSize, orderList, customerList, map);
-        }
+        //        String config = configService.selectConfigByKey("tj_confirm");
+//        DateTime beginTimes = null;
+//        DateTime endTimes = null;
+//        if (null != beginTime && null != endTime) {
+//            beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime));
+//            endTimes = DateUtil.endOfDay(DateUtil.parse(endTime));
+//        }
+//        asyncService.checkSetCustomerLisByRedis(config);
+//        //鍒濆鍖栦綋妫�璁㈠崟琛�
+//        List<TjOrder> orderList = null;
+//        List<TjCustomer> customerList = new ArrayList<>();
+//        Map<String, Object> map = new HashMap<>();
+//
+//        //濮撳悕鏌ヨ
+//        if (null != name && !"".equals(name)) {
+//            List<TjCustomer> list = customerService.getTjCustomerList(name);
+//            if (null != list && list.size() > 0) {
+//                List<TjCustomer> lists = new ArrayList<>();
+//                for (TjCustomer customer : list) {
+//                    if ("Y".equals(config)) {
+//                        orderList = orderService.getCsTjOrderListByCusId1(customer.getCusId());
+//                    } else {
+//                        orderList = orderService.getTjOrderListByCusId(customer.getCusId());
+//                    }
+//                    if (null != orderList && orderList.size() > 0) {
+//                        for (TjOrder tjOrder : orderList) {
+//                            customer.setTjNumber(tjOrder.getTjNumber());
+//                            customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus()));
+//                            customer.setOrderId(tjOrder.getOrderId());
+//                            customer.setTjTime(tjOrder.getFinishTime());
+//                            customer.setFinishTime(tjOrder.getFinishTime());
+//                            customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
+//                            customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
+//                            customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
+//                            customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
+//                            customer.setTjCategory(tjOrder.getTjCategory());
+//                            if (tjOrder.getFirmId().equals("0")) {
+//                                customer.setTjCompName(null);
+//                            } else {
+//                                customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName());
+//                            }
+//                            lists.add(customer);
+//                        }
+//                    }
+//                }
+//                List<TjCustomer> customers = null;
+//                if (lists.size() > 0) {
+//                    customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//                }
+//                map.put("customers", customers);
+//                map.put("total", lists.size());
+//                return AjaxResult.success(map);
+//            }
+//            return AjaxResult.success("鏆傛棤鏁版嵁");
+//        }
+//
+//        //鏉′欢鏌ヨ
+//        if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) {
+//            //鍒ゆ柇鏄惁寮�鍚垵瀹�
+//            if ("Y".equals(config)) {
+//                orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            } else {
+//                orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            }
+//            return getResult(page, pageSize, orderList, customerList, map);
+//        }
+//
+//        List<TjCustomer> customers = null;
+//        if (null != checkStatus && checkStatus == 0) {
+//            customers = redisCache.getCacheMapValue("check", "ws");
+//        }
+//        if (null != checkStatus && checkStatus == 1) {
+//            customers = redisCache.getCacheMapValue("check", "ys");
+//        }
+//        if (customers != null && customers.size() > 0) {
+////            asyncService.addRedis(customers);
+//            List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//            map.put("customers", customerLists);
+//            map.put("total", customers.size());
+//            return AjaxResult.success(map);
+//        } else {
+//            //鍒ゆ柇鏄惁寮�鍚垵瀹�
+//            if ("Y".equals(config)) {
+//                orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            } else {
+//                orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            }
+//            return getResult(page, pageSize, orderList, customerList, map);
+//        }
+        String value = String.valueOf(compId);
+        if (tjNumber == null) tjNumber = "";
+        if (compId == null) value = "";
+        if (name == null) name = "";
+        if (beginTime == null) beginTime = "";
+        if (endTime == null) endTime = "";
+        return AjaxResult.success(orderService.getCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name));
     }
 
     /**
@@ -409,7 +506,9 @@
                         if (customerService.updateById(customer)) {
                             LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
                             wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
+                            wqq.eq(TbTransition::getCardId, customer.getCardId());
                             transitionService.remove(wqq);
+                            asyncService.updateCheckType(tjNumber);
                             return AjaxResult.success("鎿嶄綔鎴愬姛");
                         }
                         return AjaxResult.error("鎿嶄綔澶辫触");
@@ -424,96 +523,169 @@
 
 
     /**
-     * 鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏
+     * 鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�旈潪鍖栭獙椤圭洰
      *
      * @param tjNumber
      * @return
      */
     @GetMapping("/updateCheckType")
-    @ApiOperation(value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏")
-//    @PreAuthorize("@ss.hasPermi('check:check:updateCheckType')")
+    @ApiOperation(value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�旈潪鍖栭獙椤圭洰")
     public AjaxResult updateCheckType(@ApiParam(value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
+//        if (redisCache.hasKey("updateCheckType" + tjNumber)) {
+//            List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber);
+//            return AjaxResult.success(cacheMapValue);
+//        }
+        return getAjaxResult(tjNumber);
+    }
+
+    private AjaxResult getAjaxResult(String tjNumber) {
+
+        asyncService.updateCheckType(tjNumber);
         List<Map<String, Object>> list = new ArrayList<>();
-        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
-        wq1.eq(TjOrder::getTjNumber, tjNumber);
-        TjOrder one = orderService.getOne(wq1);
+        TjOrder one = orderService.getOrderByTjNum(tjNumber);
+
         if (one == null) {
             return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
         }
-        LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>();
-        wq22.eq(TjCustomer::getCusId, one.getUserId());
-        TjCustomer customer = customerService.getOne(wq22);
-        LambdaQueryWrapper<TjOrderRemark> wqm = new LambdaQueryWrapper<>();
-        wqm.eq(TjOrderRemark::getTjNumber, tjNumber);
-        wqm.eq(TjOrderRemark::getType, 1);
-        List<TjOrderRemark> remarkList = orderRemarkService.list(wqm);
+
+        TjCustomer customer = customerService.getById(one.getUserId());
+        List<TjOrderRemark> remarkList = orderRemarkService.getRemarkListByTjNumAndType(tjNumber);
+
         if (null != remarkList && remarkList.size() > 0) {
             for (TjOrderRemark remark : remarkList) {
                 Map<String, Object> parent = new HashMap<>();
                 parent.put("checkAdvice", one.getCheckAdvice());
                 TjProject project = projectService.selectTjProjectByProId(remark.getProId());
+                //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛�
+                if ("N".equals(project.getNeedReport())) {
+                    continue;
+                }
+
+
+                //鍒ゆ柇璇ラ」鐩槸鍚︽楠岀椤圭洰  2024/2/28g
+                if (project.getDeptId() == 241) {
+                    continue;
+                }
+
+
                 if (null != project) {
                     parent.put("parent", project.getProName());
                     parent.put("parentId", project.getProId().toString());
                 }
-                LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
-                wq2.eq(TjProject::getProParentId, remark.getProId());
-                List<Long> sonsTjProjectList = projectService.list(wq2).stream().map(TjProject::getProId).collect(Collectors.toList());
-                if (sonsTjProjectList.size() > 0) {
-                    LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
-                    wq.eq(TjOrderDetail::getOrderId, one.getOrderId());
-                    wq.in(TjOrderDetail::getProId, sonsTjProjectList);
-                    List<TjOrderDetail> tjOrderDetails = detailService.list(wq);
-                    if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
-                        for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
-                            LambdaQueryWrapper<TjProject> wqqqq = new LambdaQueryWrapper<>();
-                            wqqqq.eq(TjProject::getProId, tjOrderDetail.getProId());
-                            tjOrderDetail.setProject(projectService.getOne(wqqqq));
-                            LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
-                            wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
-                            List<TjStandard> list2 = tjStandardService.list(wq6);
-                            if (list2.size() == 0) {
-                                tjOrderDetail.setStandard(new TjStandard());
-                            } else if (list2.size() == 1) {
-                                tjOrderDetail.setStandard(list2.get(0));
-                            } else {
-                                for (TjStandard tjStandard : list2) {
-                                    LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
-                                    if (tjStandard.getTjSex() != null) {
-                                        wq8.eq(TjStandard::getTjSex, customer.getCusSex());
-                                    }
-                                    if (tjStandard.getTjType() != null) {
-                                        wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
-                                    }
-                                    tjOrderDetail.setStandard(tjStandardService.getOne(wq8));
-                                }
-                            }
-                        }
-                        String summary = remark.getSummary();
-                        if (null != summary) {
-                            String[] split = summary.split(";");
-                            LambdaQueryWrapper<TjAdvice> wq3 = new LambdaQueryWrapper<>();
-                            wq3.in(TjAdvice::getId, Arrays.asList(split));
-                            List<TjAdvice> advices = tjAdviceService.list(wq3);
-                            if (null != advices && advices.size() > 0) {
-                                StringBuilder string = new StringBuilder();
-                                for (TjAdvice advice : advices) {
-                                    string.append(advice.getTitle()).append(";");
-                                }
-                                parent.put("parentAdvice", string);
-                            }
+                List<TjOrderDetail> tjOrderDetails = detailService.getDetailByOrderIdAndParId(one.getOrderId(), remark.getProId());
+                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                        final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
+                        if (null == byId) {
+                            detailService.removeById(tjOrderDetail.getOrderDetailId());
                         } else {
-                            parent.put("parentAdvice", null);
+                            tjOrderDetail.setProject(byId);
                         }
-                        parent.put("sons", tjOrderDetails);
-                        parent.put("remark", remark.getRemark());
-                        if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) {
-                            parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName());
+                        List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
+                        if (list2.size() == 0) {
+                            tjOrderDetail.setStandard(new TjStandard());
+                        } else if (list2.size() == 1) {
+                            tjOrderDetail.setStandard(list2.get(0));
+                        } else {
+                            final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday()));
+                            TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId()));
+                            tjOrderDetail.setStandard(tjStandard1);
                         }
-                        list.add(parent);
-                    } else {
-                        return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
                     }
+                    String summary = remark.getSummary();
+                    if (null != summary) {
+                        String[] split = summary.split(";");
+//                        List<Long> longList = new ArrayList<>();
+//                        for (String str : split) {
+//                            if(!"".equals(str)){
+//                                longList.add(Long.valueOf(str));
+//                            }
+//                        }
+                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split));
+
+                    } else {
+                        parent.put("parentAdvice", null);
+                    }
+                    parent.put("sons", tjOrderDetails);
+                    parent.put("remark", remark.getRemark());
+                    if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) {
+                        parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName());
+                    }
+                    list.add(parent);
+                } else {
+                    return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
+                }
+            }
+            return AjaxResult.success(list);
+        }
+        return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁锛�");
+    }
+
+
+    /**
+     * 鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�斿寲楠岄」鐩�
+     *
+     * @param tjNumber
+     * @return
+     */
+    @GetMapping("/updateCheckTypeHuaYan")
+    @ApiOperation(value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�斿寲楠岄」鐩�")
+    public AjaxResult updateCheckTypeHuaYan(@ApiParam(value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
+//        asyncService.updateCheckType(tjNumber);
+        List<Map<String, Object>> list = new ArrayList<>();
+        TjOrder one = orderService.getOrderByTjNum(tjNumber);
+
+        if (one == null) {
+            return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+        }
+        TjCustomer customer = customerService.getById(one.getUserId());
+        List<TjOrderRemark> remarkList = orderRemarkService.addHuaYanTable(tjNumber);
+        List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanTable(tjNumber);
+
+
+        if (null != remarkList && remarkList.size() > 0) {
+            for (TjOrderRemark remark : remarkList) {
+                Map<String, Object> parent = new HashMap<>();
+                parent.put("checkAdvice", one.getCheckAdvice());
+                parent.put("parent", remark.getProName());
+                parent.put("parentId", remark.getProId().toString());
+
+                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                        final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
+                        if (null == byId) {
+                            detailService.removeById(tjOrderDetail.getOrderDetailId());
+                        } else {
+                            tjOrderDetail.setProject(byId);
+                        }
+                        List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
+                        if (list2.size() == 0) {
+                            tjOrderDetail.setStandard(new TjStandard());
+                        } else if (list2.size() == 1) {
+                            tjOrderDetail.setStandard(list2.get(0));
+                        } else {
+                            final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday()));
+                            TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId()));
+                            tjOrderDetail.setStandard(tjStandard1);
+                        }
+                    }
+
+                    String summary = remark.getSummary();
+                    if (null != summary) {
+                        String[] split = summary.split(";");
+                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split));
+                    } else {
+                        parent.put("parentAdvice", null);
+                    }
+                    parent.put("sons", tjOrderDetails);
+                    parent.put("remark", remark.getRemark());
+                    if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) {
+                        parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName());
+                    }
+
+                    list.add(parent);
+                } else {
+                    return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
                 }
             }
             return AjaxResult.success(list);
@@ -531,6 +703,7 @@
 
     /**
      * 鎬绘淇敼澶囨敞
+     *
      * @return
      */
     @PostMapping("/checkUpdateOrderRemark")
@@ -568,6 +741,7 @@
                 customer.setTjTime(tjOrder.getCreateTime());
                 customer.setFinishTime(tjOrder.getFinishTime());
                 customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
+                customer.setTjCategory(tjOrder.getTjCategory());
                 if (tjOrder.getFirmId() == null) {
                     customer.setTjCompName("鏃�");
                 } else {
@@ -585,37 +759,4 @@
         return AjaxResult.success(map);
     }
 
-    /*private boolean getAjaxResult(@RequestParam(defaultValue = "1") @ApiParam("椤电爜鏁�(榛樿1)") Integer page,
-                                  @RequestParam(defaultValue = "10") @ApiParam("鏄剧ず鏉℃暟(榛樿10)") Integer pageSize,
-                                  List<TjOrder> orderList,
-                                  List<TjCustomer> customerList,
-                                  Map<String, Object> map) {
-        if (null != orderList && orderList.size() > 0) {
-            for (TjOrder tjOrder : orderList) {
-                TjCustomer customer = customerService.selectTjCustomerByCusId(tjOrder.getUserId());
-                if (null == customer) {
-                    continue;
-                }
-                customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
-                customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
-                customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
-                customer.setTjNumber(tjOrder.getTjNumber());
-                customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus()));
-                customer.setOrderId(tjOrder.getOrderId());
-                customer.setTjTime(tjOrder.getCreateTime());
-                customer.setFinishTime(tjOrder.getFinishTime());
-                if (tjOrder.getFirmId() == null || tjOrder.getFirmId().equals("0")) {
-                    customer.setTjCompName("鏃�");
-                } else {
-                    customer.setTjCompName(compService.getById(tjOrder.getFirmId()).getCnName());
-                }
-                customerList.add(customer);
-            }
-            List<TjCustomer> customers = customerList.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-            map.put("customers", customers);
-            map.put("total", customerList.size());
-            return true;
-        }
-        return false;
-    }*/
 }

--
Gitblit v1.8.0