From 2a9583fd376451ca77a0400af7f3a02d1b80e7f5 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期二, 24 六月 2025 18:04:34 +0800
Subject: [PATCH] 2025-06-24

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java |  598 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 352 insertions(+), 246 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 d6edbfa..bd54ce1 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;
@@ -25,6 +26,7 @@
 import com.ltkj.hosp.mapper.TestMapper;
 import com.ltkj.hosp.service.*;
 import com.ltkj.hosp.sqlDomain.*;
+import com.ltkj.hosp.vo.ProFcListVo;
 import com.ltkj.hosp.vodomain.CsProVo;
 import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo;
 import com.ltkj.mall.mallOrderUtils.TjConstants;
@@ -1001,105 +1003,19 @@
                               @ApiParam(value = "浣撴鍗曞彿") @RequestParam(required = false) String tjNumber,
                               @ApiParam(value = "鍗曚綅") @RequestParam(required = false) Long compId,
                               @ApiParam(value = "濮撳悕)") @RequestParam(required = false) String name,
+                              @ApiParam(value = "瀹℃牳鍖荤敓)") @RequestParam(required = false) String shys,
                               @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()));
-//                            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);
-//        }
+                              @ApiParam(value = "缁撴潫鏃堕棿") @RequestParam(required = false) String endTime,
+                              @ApiParam(value = "浣撴绫诲瀷") @RequestParam(required = false) String tjCategory) {
 
         String value = String.valueOf(compId);
         if (tjNumber == null) tjNumber = "";
         if (compId == null) value = "";
         if (name == null) name = "";
+        if (shys == null) shys = "";
         if (beginTime == null) beginTime = "";
         if (endTime == null) endTime = "";
-        return AjaxResult.success(orderService.getCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name));
+        return AjaxResult.success(orderService.getCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name,shys,tjCategory));
     }
 
 
@@ -1226,8 +1142,9 @@
 //    @PreAuthorize("@ss.hasPermi('check:check:getTjdetailList')")
     public AjaxResult getTjdetailList(@ApiParam(value = "浣撴tjNumber") @RequestParam String tjNumber,
                                       @ApiParam(value = "鎬绘寤鸿") @RequestParam(required = false) String advice,
-                                      @ApiParam(value = "瀹℃牳鐘舵��0寰呭鏍�1宸插鏍�") @RequestParam Integer checkStatus) {
-
+                                      @ApiParam(value = "瀹℃牳鐘舵��0寰呭鏍�1宸插鏍�") @RequestParam Integer checkStatus,
+                                      @ApiParam(value = "鑱屼笟缁撹") @RequestParam(required = false) String zhiyeJl,
+                                      @ApiParam(value = "鑱屼笟缁撴灉") @RequestParam(required = false) String zhiyeJg) {
         String config = configService.selectConfigByKey("sfjcwjhyqxm");
         if (null != config && config.equalsIgnoreCase("Y")) {
             int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
@@ -1248,6 +1165,10 @@
                 tjOrder.setCheckTime(date);
                 tjOrder.setStatus(401);
                 tjOrder.setFinishTime(date);
+                if (StrUtil.isNotBlank(zhiyeJl))
+                    tjOrder.setZhiyeJl(zhiyeJl);
+                if (StrUtil.isNotBlank(zhiyeJg))
+                    tjOrder.setZhiyeJg(zhiyeJg);
                 if (orderService.updateById(tjOrder)) {
                     TjCustomer customer = customerService.getById(tjOrder.getUserId());
                     if (null != customer) {
@@ -1496,6 +1417,8 @@
                 parent.put("parent", remark.getProName());
                 parent.put("parentId", remark.getProsId());
                 parent.put("xmlb", remark.getXmlb());
+                parent.put("zhiyejl",one.getZhiyeJl());
+                parent.put("zhiyejg", one.getZhiyeJg());
                 parent.put("", remark.getXmlb());
                 List<TjOrderDetail> dels = new ArrayList<>();
                 if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
@@ -1540,7 +1463,11 @@
                                 } catch (NumberFormatException ignored) {
                                 }
                             } else {
-                                tjOrderDetail.setYcbz("");
+                                if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�"))
+                                    tjOrderDetail.setYcbz("");
+
+                                if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�"))
+                                    tjOrderDetail.setYcbz("鈫�");
                                 tjOrderDetail.setProResult(tjOrderDetail.getProResult());
                             }
 
@@ -1559,12 +1486,13 @@
                     if (dels.isEmpty()) {
                         continue;
                     }
-                    dels = dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
-                    dels = dels.stream()
-                            .sorted(Comparator.comparingInt(
-                                    tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
-                            ))
-                            .collect(Collectors.toList());
+//                    dels = dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
+//                    dels = dels.stream()
+//                            .sorted(Comparator.comparingInt(
+//                                    tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
+//                            ))
+//                            .collect(Collectors.toList());
+                    dels = dels.stream().sorted(Comparator.comparing(TjOrderDetail::getXh)).collect(Collectors.toList());
                     parent.put("sons", dels);
                     parent.put("remark", remark.getRemark());
                     parent.put("jgbx", remark.getJgbx());
@@ -1652,81 +1580,275 @@
     @GetMapping("/getzongjianyishengchakanyichangxiangmu")
     @ApiOperation(value = "鎬绘鏌ョ湅寮傚父椤圭洰鎺ュ彛")
     public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) {
-        if (StrUtil.isNotBlank(tjNum)) {
-            TjOrder one = orderService.getOrderByTjNum(tjNum);
+        try {
+            if (StrUtil.isNotBlank(tjNum)) {
+                TjOrder one = orderService.getOrderByTjNum(tjNum);
 
-            if (one == null) {
-                return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+                if (one == null) {
+                    return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+                }
+                yichangxiangmu(tjNum);
+                LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
+                wq.eq(TjOrderYcxm::getTjh, tjNum);
+                List<TjOrderYcxm> list = ycxmService.list(wq);
+                if (null != list && !list.isEmpty()) {
+                    Collections.reverse(list);
+                    return getOrderYcxmList(list);
+                } else {
+                    return zongjianyishengchakanyichangxiangmu(tjNum);
+                }
             }
-
-            LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
-            wq.eq(TjOrderYcxm::getTjh, tjNum);
-            List<TjOrderYcxm> list = ycxmService.list(wq);
-            if (null != list && !list.isEmpty()) {
-                Collections.reverse(list);
-                return getOrderYcxmList(list);
-            } else {
-                return zongjianyishengchakanyichangxiangmu(tjNum);
-            }
+            return AjaxResult.error();
+        } catch (Exception ex) {
+            //throw new RuntimeException(ex);
+            log.error(ex.getMessage());
+            return AjaxResult.error();
         }
-        return AjaxResult.error();
     }
 
     private static AjaxResult getOrderYcxmList(List<TjOrderYcxm> list) {
-        Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
-        List<Map<String, Object>> maps = new ArrayList<>();
-        for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
-            Map<String, Object> parent = new HashMap<>();
-            List<TjOrderDetail> dels = new ArrayList<>();
-            for (TjOrderYcxm ycxm : entry.getValue()) {
-                TjOrderDetail detail = new TjOrderDetail();
-                detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
-                detail.setProName(ycxm.getJcxm());
-                detail.setProResult(ycxm.getJcjg());
-                detail.setStanId(ycxm.getCkfw());
-                detail.setProAdvice(ycxm.getDw());
-                List<Map<String, Object>> btnrlist = new ArrayList<>();
-                String jynr = ycxm.getJynr();
-                JSONArray array = JSONUtil.parseArray(jynr);
-                for (Object object : array) {
-                    Map<String, Object> objectMap = new HashMap<>();
-                    JSONObject jsonObject = (JSONObject) object;
-                    String bt = jsonObject.getStr("bt");
-                    String nr = jsonObject.getStr("nr");
-                    objectMap.put("bt", bt);
-                    objectMap.put("nr", nr);
-                    if (null != bt || null != nr) btnrlist.add(objectMap);
-                }
-                detail.setAdvices(btnrlist);
-                dels.add(detail);
+        try {
+            List<Map<String, Object>> maps = getYcxmMapList(list);
+            if (!maps.isEmpty()) {
+                List<Map<String, Object>> collect1 = maps.stream()
+                        .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
+                        .collect(Collectors.toList());
+                return AjaxResult.success(collect1);
             }
-
-            parent.put("proName", entry.getKey());
-            parent.put("jyjc", entry.getValue().get(0).getJyjc());
-            parent.put("sone", dels);
-            maps.add(parent);
+            return AjaxResult.success(maps);
+        } catch (Exception ex) {
+//            throw new RuntimeException(ex);
+            log.error(ex.getMessage());
+            return AjaxResult.error();
         }
-        //            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
-
-
-//            List<Map<String, Object>> collect = mapList.stream()
-//                    .filter(b -> maps.stream()
-//                            .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 杩囨护鎺夊湪 maps 涓瓨鍦ㄧ殑鐩稿悓鍏冪礌
-//                    .collect(Collectors.toList());
-
-
-//            if(!collect.isEmpty()){
-//                maps.addAll(collect);
-//            }
-        if (!maps.isEmpty()) {
-            List<Map<String, Object>> collect1 = maps.stream()
-                    .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
-                    .collect(Collectors.toList());
-            return AjaxResult.success(collect1);
-        }
-        return AjaxResult.success(maps);
     }
 
+    private static List<Map<String, Object>> getYcxmMapList(List<TjOrderYcxm> list) {
+        try {
+            Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
+            List<Map<String, Object>> maps = new ArrayList<>();
+            for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
+                Map<String, Object> parent = new HashMap<>();
+                List<TjOrderDetail> dels = new ArrayList<>();
+                for (TjOrderYcxm ycxm : entry.getValue()) {
+                    TjOrderDetail detail = new TjOrderDetail();
+                    detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
+                    detail.setProName(ycxm.getJcxm());
+                    detail.setProResult(ycxm.getJcjg());
+                    detail.setStanId(ycxm.getCkfw());
+                    detail.setProAdvice(ycxm.getDw());
+                    List<Map<String, Object>> btnrlist = new ArrayList<>();
+                    String jynr = ycxm.getJynr();
+                    JSONArray array = JSONUtil.parseArray(jynr);
+                    for (Object object : array) {
+                        Map<String, Object> objectMap = new HashMap<>();
+                        JSONObject jsonObject = (JSONObject) object;
+                        String bt = jsonObject.getStr("bt");
+                        String nr = jsonObject.getStr("nr");
+                        objectMap.put("bt", bt);
+                        objectMap.put("nr", nr);
+                        if (null != bt || null != nr) btnrlist.add(objectMap);
+                    }
+                    detail.setAdvices(btnrlist);
+                    dels.add(detail);
+                }
+
+                parent.put("proName", entry.getKey());
+                parent.put("jyjc", entry.getValue().get(0).getJyjc());
+                parent.put("sone", dels);
+                maps.add(parent);
+            }
+            return maps;
+        } catch (NumberFormatException ex) {
+//            throw new RuntimeException(ex);
+            log.error(ex.getMessage());
+            return null;
+        }
+    }
+
+    private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) {
+        List<Map<String, Object>> list = new ArrayList<>();
+        try {
+            List<TjOrderYcxm> tjOrderYcxms = new ArrayList<>();
+            TjOrder order = orderService.getOrderByTjNum(tjNumber);
+            if (null != order) {
+                String xb= customerService.getSexByTjh(order.getTjNumber());
+                List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
+                List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
+                LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
+                wq.eq(TjOrderYcxm::getTjh, tjNumber);
+                List<TjOrderYcxm> ycxmList = ycxmService.list(wq);
+                if (null != remarkList && !remarkList.isEmpty()) {
+                    for (TjOrderRemark remark : remarkList) {
+                        Map<String, Object> parent = new HashMap<>();
+                        if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
+                            List<TjOrderDetail> dels = new ArrayList<>();
+                            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                                if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
+                                    if (null != tjOrderDetail.getYcbz()) {
+                                        if (!tjOrderDetail.getDeptId().equals("2")) {
+                                            String replacedAll = tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "")
+                                                    .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", "").replaceAll("鈼�", "");
+
+                                            List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(replacedAll,replacedAll,
+                                                    tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber,replacedAll, tjOrderDetail.getProResult());
+
+
+                                            if (null != maps && !maps.isEmpty()) {
+                                                tjOrderDetail.setAdvices(maps);
+                                            }
+
+                                        } else {
+                                            String regex = configService.selectConfigByKey("jcycjgfgzz");
+                                            if(StringUtil.isBlank(regex)) regex="銆倈锛泑;|,|锛�";
+                                            String[] split = tjOrderDetail.getProResult().replaceAll("\n", "").split(regex);
+                                            List<Map<String, Object>> mapList = new ArrayList<>();
+                                            for (String s : split) {
+                                                if(StringUtil.isNotBlank(s)){
+                                                    s = s.replaceAll("\n", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "").replaceAll(" ","")
+                                                            .replaceAll("[0-9]", "");
+                                                    Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s.replaceAll(" ",""), "0",xb);
+                                                    if (null != maps && !maps.isEmpty()) {
+                                                        Object bt = maps.get("bt");
+                                                        Object nr = maps.get("nr");
+                                                        if (null != bt || null != nr) mapList.add(maps);
+                                                    }
+
+                                                }
+                                            }
+                                            tjOrderDetail.setAdvices(mapList);
+                                        }
+
+                                    }
+                                    if (null == ycxmList || ycxmList.isEmpty()) {
+                                        TjOrderYcxm ycxm = new TjOrderYcxm();
+                                        ycxm.setTjh(tjNumber);
+                                        ycxm.setParentName(remark.getProName());
+                                        ycxm.setJcxm(tjOrderDetail.getProName());
+                                        ycxm.setJcjg(tjOrderDetail.getProResult());
+                                        ycxm.setCkfw(tjOrderDetail.getStanId());
+                                        ycxm.setDw(tjOrderDetail.getProAdvice());
+                                        ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices()));
+                                        ycxm.setJyjc(remark.getJyjc());
+                                        if (ycxmService.save(ycxm)) {
+                                            tjOrderYcxms.add(ycxm);
+                                        }
+                                    }
+                                    dels.add(tjOrderDetail);
+                                }
+                            }
+                            if (!dels.isEmpty()) {
+                                parent.put("proName", remark.getProName());
+                                parent.put("jyjc", remark.getJyjc());
+                                parent.put("sone", dels);
+                                list.add(parent);
+                            }
+                        }
+                    }
+                    if (!tjOrderYcxms.isEmpty()) {
+                        Collections.reverse(tjOrderYcxms);
+                        return getOrderYcxmList(tjOrderYcxms);
+                    }
+
+                }
+            }
+            return AjaxResult.success(list);
+        } catch (Exception ex) {
+//            throw new RuntimeException(ex);
+            log.error(ex.getMessage());
+            return AjaxResult.success(list);
+        }
+    }
+
+    private void yichangxiangmu(String tjNumber) {
+        try {
+            List<TjOrderYcxm> tjOrderYcxmList= ycxmService.selectListByTjh(tjNumber);
+
+            if(null !=tjOrderYcxmList && !tjOrderYcxmList.isEmpty()){
+
+            List<Map<String, Object>> list = new ArrayList<>();
+            TjOrder order = orderService.getOrderByTjNum(tjNumber);
+            if (null != order) {
+                String xb= customerService.getSexByTjh(order.getTjNumber());
+                List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
+                List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
+                if (null != remarkList && !remarkList.isEmpty()) {
+                    for (TjOrderRemark remark : remarkList) {
+                        Map<String, Object> parent = new HashMap<>();
+                        if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
+                            List<TjOrderDetail> dels = new ArrayList<>();
+                            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                                if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
+                                    if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) {
+                                        if (!tjOrderDetail.getDeptId().equals("2")) {
+                                            String replacedAll = tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "")
+                                                    .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", "").replaceAll("鈼�", "");
+
+                                            List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
+                                                    ,replacedAll,tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber,replacedAll, tjOrderDetail.getProResult());
+
+
+                                            if (null != maps && !maps.isEmpty()) {
+                                                tjOrderDetail.setAdvices(maps);
+                                            }
+
+                                        } else {
+                                            String[] split = tjOrderDetail.getProResult().split("銆倈,|锛�");
+                                            List<Map<String, Object>> mapList = new ArrayList<>();
+                                            for (String s : split) {
+                                                s = s.replaceAll("\n", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "");;
+                                                Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0",xb);
+                                                if (null != maps && !maps.isEmpty()) {
+                                                    Object bt = maps.get("bt");
+                                                    Object nr = maps.get("nr");
+                                                    if (null != bt || null != nr) mapList.add(maps);
+                                                }
+                                            }
+                                            tjOrderDetail.setAdvices(mapList);
+                                        }
+
+                                    }
+                                    dels.add(tjOrderDetail);
+                                }
+                            }
+                            if (!dels.isEmpty()) {
+                                parent.put("proName", remark.getProName());
+                                parent.put("jyjc", remark.getJyjc());
+                                parent.put("sone", dels);
+                                list.add(parent);
+                            }
+                        }
+                    }
+                }
+            }
+                List<Map<String, Object>> maps = getYcxmMapList(tjOrderYcxmList);
+                List<Map<String, Object>> collect = list.stream()
+                        .filter(b -> maps.stream()
+                                .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 杩囨护鎺夊湪 maps 涓瓨鍦ㄧ殑鐩稿悓鍏冪礌
+                        .collect(Collectors.toList());
+
+                if(!collect.isEmpty()){
+                    for (Map<String, Object> map : collect) {
+                        for (TjOrderDetail detail : (List<TjOrderDetail>) map.get("sone")) {
+                            TjOrderYcxm ycxm = new TjOrderYcxm();
+                            ycxm.setTjh(tjNumber);
+                            ycxm.setParentName(map.get("proName").toString());
+                            ycxm.setJcxm(detail.getProName());
+                            ycxm.setJcjg(detail.getProResult());
+                            ycxm.setCkfw(detail.getStanId());
+                            ycxm.setDw(detail.getProAdvice());
+                            ycxm.setJynr(JSONUtil.toJsonStr(detail.getAdvices()));
+                            ycxm.setJyjc(map.get("jyjc").toString());
+                            ycxmService.save(ycxm);
+                        }
+                    }
+                }
+            }
+
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+        }
+    }
 
     @GetMapping("/delzongjianyishengchakanyichangxiangmu")
     @ApiOperation(value = "鎬绘鍒犻櫎寮傚父椤圭洰鎺ュ彛")
@@ -1735,88 +1857,7 @@
         return AjaxResult.success();
     }
 
-    private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) {
-        List<Map<String, Object>> list = new ArrayList<>();
-        List<TjOrderYcxm> tjOrderYcxms = new ArrayList<>();
-        TjOrder order = orderService.getOrderByTjNum(tjNumber);
-        if (null != order) {
-            List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
-            List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
-            LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
-            wq.eq(TjOrderYcxm::getTjh, tjNumber);
-            List<TjOrderYcxm> ycxmList = ycxmService.list(wq);
-            if (null != remarkList && !remarkList.isEmpty()) {
-                for (TjOrderRemark remark : remarkList) {
-                    Map<String, Object> parent = new HashMap<>();
-                    if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
-                        List<TjOrderDetail> dels = new ArrayList<>();
-                        for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
-                            if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
-                                if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) {
-                                    if (!tjOrderDetail.getDeptId().equals("2")) {
-                                        List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
-                                                , tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[锛�)]", "")
-                                                        .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", ""), tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber
-                                                , tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "")
-                                                        .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", "")
-                                                , tjOrderDetail.getProResult());
 
-
-                                        if (null != maps && !maps.isEmpty()) {
-                                            tjOrderDetail.setAdvices(maps);
-                                        }
-
-                                    } else {
-                                        String[] split = tjOrderDetail.getProResult().split("銆倈,|锛�");
-                                        List<Map<String, Object>> mapList = new ArrayList<>();
-                                        for (String s : split) {
-                                            s = s.replaceAll("\n", "");
-//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
-                                            Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0");
-                                            if (null != maps && !maps.isEmpty()) {
-                                                Object bt = maps.get("bt");
-                                                Object nr = maps.get("nr");
-                                                if (null != bt || null != nr) mapList.add(maps);
-                                            }
-                                        }
-                                        tjOrderDetail.setAdvices(mapList);
-                                    }
-
-                                }
-                                if (null == ycxmList || ycxmList.isEmpty()) {
-                                    TjOrderYcxm ycxm = new TjOrderYcxm();
-                                    ycxm.setTjh(tjNumber);
-                                    ycxm.setParentName(remark.getProName());
-                                    ycxm.setJcxm(tjOrderDetail.getProName());
-                                    ycxm.setJcjg(tjOrderDetail.getProResult());
-                                    ycxm.setCkfw(tjOrderDetail.getStanId());
-                                    ycxm.setDw(tjOrderDetail.getProAdvice());
-                                    ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices()));
-                                    ycxm.setJyjc(remark.getJyjc());
-                                    if (ycxmService.save(ycxm)) {
-                                        tjOrderYcxms.add(ycxm);
-                                    }
-                                }
-                                dels.add(tjOrderDetail);
-                            }
-                        }
-                        if (!tjOrderYcxms.isEmpty()) {
-                            Collections.reverse(tjOrderYcxms);
-                            return getOrderYcxmList(tjOrderYcxms);
-                        }
-                        if (!dels.isEmpty()) {
-                            parent.put("proName", remark.getProName());
-                            parent.put("jyjc", remark.getJyjc());
-                            parent.put("sone", dels);
-                            list.add(parent);
-                        }
-                    }
-                }
-
-            }
-        }
-        return AjaxResult.success(list);
-    }
 
     @GetMapping("/chushenyemianchakanxiangmujieguo")
     @ApiOperation(value = "鍒濆椤甸潰鏌ョ湅椤圭洰缁撴灉鎺ュ彛")
@@ -1867,5 +1908,70 @@
         return AjaxResult.success();
     }
 
+    /**
+     * 鏌ヨ澶嶆煡椤圭洰鍒楄〃
+     * @param tjNum 浣撴鍙�
+     * @param type 澶嶆煡鐘舵�� 0鏈鏌ョ姸鎬� 1澶嶆煡鐘舵��
+     * @return
+     */
+    @GetMapping("/getFcList")
+    public AjaxResult getFcList(@RequestParam("tjNum") String tjNum,@RequestParam("type") Integer type){
+        TjOrder order = orderService.getOrderByTjNum(tjNum);
+        if (order == null)
+            return AjaxResult.error();
+        List<ProFcListVo> list = detailService.getFcList(order.getOrderId(),type);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 澶嶆煡椤圭洰鎻愪氦
+     * @param json
+     * @return
+     */
+    @PostMapping("/UpdFcPro")
+    public AjaxResult updFcPro(@RequestBody String json) {
+        return detailService.updFcPro(json);
+    }
+
+
+    @GetMapping("/zongjianyishengHuiFuyichangxiangmu")
+    @ApiOperation(value = "鎬绘鎭㈠寮傚父椤圭洰鎺ュ彛")
+    public AjaxResult zongjianyishengHuiFuyichangxiangmu(@RequestParam String tjNum) {
+
+        List<TjOrderYcxm> list = ycxmService.zongjianyishengHuiFuyichangxiangmu(tjNum);
+        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();
+    }
 
 }

--
Gitblit v1.8.0