1
lige
2023-12-04 77b51f625a13a8254eb2e8a9aa53bacf575f7274
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -182,6 +182,8 @@
                }
                customer.setTjTime(order.getCreateTime());
                customer.setTjNumber(order.getTjNumber());
                customer.setOrderId(order.getOrderId());
                customer.setIsHz(order.getIsHz());
                customerLis.add(customer);
            }
@@ -240,6 +242,8 @@
                            }
                            customer.setTjTime(order.getCreateTime());
                            customer.setTjNumber(order.getTjNumber());
                            customer.setOrderId(order.getOrderId());
                            customer.setIsHz(order.getIsHz());
                            list11111.add(customer);
                        }
                    }
@@ -257,7 +261,7 @@
                return AjaxResult.success("暂无数据");
            }
        }
        List<TjCustomer> customerLists = null;
        List<TjCustomer> customerLists = new ArrayList<>();
        if (type == 0) {
            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
        }
@@ -278,6 +282,201 @@
            return AjaxResult.success("暂时没有数据");
        }
    }
    /**
     * 化验检查页面列表
     */
    @GetMapping("/huaYangetProList")
    @ApiOperation("影像/化验检查页面列表")
    public AjaxResult huaYangetProList(@ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
                                 @ApiParam(value = "0未检,1已检") @RequestParam(defaultValue = "0") Integer type,
                                 @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                 @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
                                 @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize) {
        String userId = SecurityUtils.getLoginUser().getUserId();
        Integer ksId = null;
        SysUser sysUser = null;
        if (null != userId) {
            sysUser = userService.getById(Long.valueOf(userId));
            if (null != sysUser) {
                ksId = Math.toIntExact(sysUser.getDeptId());
            }
        }
        if (ksId == null) {
            return AjaxResult.error("请输入科室id");
        }
        //根据当前登陆的人的科室id,获取该科室下的所有项目
        // TODO: 2023/3/24  给超级管理员赋医生检查权限
        List<Long> postIds = sysUser.getPostIds();
        List<Long> ksproList = null;
        if (postIds != null) {
            for (Long postId : postIds) {
                LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
                wq111.eq(SysUserPost::getPostId, postId);
                SysUserPost one = userPostService.getOne(wq111);
                if (one != null) {
                    SysPost byId = postService.getById(one.getPostId());
                    if (byId.getPostName().equals("录入员")) {
                        ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
                    }
                }
            }
        } else {
            ksproList = projectService.getKsTjProjectIdList();
        }
        if (ksproList == null || ksproList.size() == 0) {
            return AjaxResult.error("请完善科室项目信息");
        }
        List<TjCustomer> customerLis = new ArrayList<>();
        //根据体检号查
        if (null != tjNumber) {
            List<TjOrder> orderList = orderService.getOrderListByLikeTjNum(tjNumber);
            if (null == orderList) {
                return AjaxResult.success("暂时没有数据");
            }
            for (TjOrder order : orderList) {
                List<TjOrderDetail> list = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
                if (list.size() == 0) {
                    continue;
                }
                LambdaQueryWrapper<TjOrderRemark> wqs = new LambdaQueryWrapper<>();
                wqs.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
                wqs.in(TjOrderRemark::getType, 0,3);
                List<TjOrderRemark> lists = remarkService.list(wqs);
                TjCustomer customer = customerService.getById(order.getUserId());
                customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
                customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
                customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
                if (null != lists && lists.size() > 0) {
                    StringBuilder stringBuilder = new StringBuilder();
                    for (TjOrderRemark remark : lists) {
                        TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
                        TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
                        if (one.getFlowingWaterId() != null) {
                            stringBuilder.append(byId.getProName()).append(";");
                        }
                    }
                    customer.setNotCheckeds(String.valueOf(stringBuilder));
                    customer.setTjStatus(0L);
                } else {
                    customer.setTjStatus(1L);
                    customer.setNotCheckeds("无");
                }
                if (order.getTjType().equals("1")) {
                    customer.setTjType("团体");
                }
                if (order.getTjType().equals("2")) {
                    customer.setTjType("个人");
                }
                customer.setTjTime(order.getCreateTime());
                customer.setTjNumber(order.getTjNumber());
                customer.setOrderId(order.getOrderId());
                customer.setIsHz(order.getIsHz());
                customerLis.add(customer);
            }
            if (customerLis.size() > 0) {
                List<TjCustomer> customerList = customerLis.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
                Collections.reverse(customerList);
                Map<String, Object> map = new HashMap<>();
                map.put("date", customerList);
                map.put("total", customerLis.size());
                return AjaxResult.success(map);
            } else {
                return AjaxResult.success("暂无数据");
            }
        }
        //根据姓名查询
        if (null != name && !"".equals(name)) {
            LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
            wq.like(TjCustomer::getCusName, name);
            List<TjCustomer> list = customerService.list(wq);
            List<TjCustomer> list11111 = new ArrayList<>();
            if (null != list && list.size() > 0) {
                for (TjCustomer customer : list) {
                    customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
                    customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
                    customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
                    List<TjOrder> orderList = orderService.getOrderListByCusId(String.valueOf(customer.getCusId()));
                    if (null != orderList && orderList.size() > 0) {
                        for (TjOrder order : orderList) {
                            List<TjOrderDetail> list111 = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
                            if (list111.size() == 0) {
                                continue;
                            }
                            List<TjOrderRemark> lists = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
                            if (null != lists && lists.size() > 0) {
                                StringBuilder stringBuilder = new StringBuilder();
                                for (TjOrderRemark remark : lists) {
                                    TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
                                    TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
                                    if (one.getFlowingWaterId() != null) {
                                        stringBuilder.append(byId.getProName()).append(";");
                                    }
                                }
                                customer.setNotCheckeds(String.valueOf(stringBuilder));
                                if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
                                customer.setTjStatus(0L);
                            } else {
                                customer.setNotCheckeds("无");
                                customer.setTjStatus(1L);
                            }
                            if (order.getTjType().equals("1")) {
                                customer.setTjType("团体");
                            }
                            if (order.getTjType().equals("2")) {
                                customer.setTjType("个人");
                            }
                            customer.setTjTime(order.getCreateTime());
                            customer.setTjNumber(order.getTjNumber());
                            customer.setOrderId(order.getOrderId());
                            customer.setIsHz(order.getIsHz());
                            list11111.add(customer);
                        }
                    }
                }
                if (list11111.size() == 0) {
                    return AjaxResult.success("暂无数据");
                }
                Map<String, Object> map = new HashMap<>();
                List<TjCustomer> customers = list11111.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
                Collections.reverse(customers);
                map.put("customers", customers);
                map.put("total", list11111.size());
                return AjaxResult.success(map);
            } else {
                return AjaxResult.success("暂无数据");
            }
        }
        List<TjCustomer> customerLists = new ArrayList<>();
        if (type == 0) {
            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
        }
        if (type == 1) {
            customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
        }
        asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
        if (customerLists != null && customerLists.size() > 0) {
            Collections.reverse(customerLists);
            List<TjCustomer> customerList = customerLists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
            Map<String, Object> map = new HashMap<>();
            map.put("date", customerList);
            map.put("total", customerLists.size());
            return AjaxResult.success(map);
        } else {
            AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
            if (map != null) return map;
            return AjaxResult.success("暂时没有数据");
        }
    }
    private AjaxResult getAjaxResult(Integer type, Integer page, Integer pageSize, List<Long> ksproList, List<TjCustomer> customerLis) {
        LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
@@ -313,6 +512,8 @@
                        }
                        customer.setTjTime(order.getCreateTime());
                        customer.setTjNumber(order.getTjNumber());
                        customer.setOrderId(orderId);
                        customer.setIsHz(order.getIsHz());
                        customer.setTjStatus(Long.valueOf(type));
                        List<TjOrderRemark> list = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
                        if (null != list && list.size() > 0) {
@@ -540,7 +741,8 @@
            return AjaxResult.success("操作失败");
        }
        for (TjOrderRemark orderRemark : remarklList) {
            if (null != orderRemark.getSummaryList()) {
            List<String> summaryList = orderRemark.getSummaryList();
            if (null != summaryList && summaryList.size()>0 && !summaryList.contains(null) ) {
                orderRemark.setSummary(Joiner.on(";").join(orderRemark.getSummaryList()));
            }
            LambdaQueryWrapper<TjOrder> qw = new LambdaQueryWrapper<>();
@@ -581,7 +783,6 @@
                        }
                    }
                }
                //-----------------------------------end
                asyncService.updateOrdeltile(tjOrderDetailList, sysUser, order);
                LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
                qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
@@ -600,7 +801,7 @@
                    remarkService.save(remark);
                } else {
                    one.setRemark(orderRemark.getRemark());
                    if (orderRemark.getSummaryList() != null) {
                    if (null != summaryList && summaryList.size()>0 && !summaryList.contains(null)) {
                        one.setSummary(Joiner.on(";").join(orderRemark.getSummaryList()));
                    }
                    one.setDeptId(orderRemark.getDeptId());
@@ -608,8 +809,12 @@
                    one.setType(1);
                    remarkService.updateById(one);
                }
                asyncService.updateCheckType(orderRemark.getTjNumber());
                asyncService.getOrderDetailByProParentId(orderRemark.getTjNumber(),null, String.valueOf(orderRemark.getProId()));
                return AjaxResult.success("操作成功");
            }
            asyncService.updateCheckType(orderRemark.getTjNumber());
            asyncService.getOrderDetailByProParentId(orderRemark.getTjNumber(),null, String.valueOf(orderRemark.getProId()));
        }
        return AjaxResult.success("操作成功");
    }
@@ -675,7 +880,7 @@
                wq.ne("type", 2);
                List<TjOrderRemark> list = remarkService.list(wq);
                if (list.size() == 0) {
                    return AjaxResult.error("该科室下无项目!");
                    return AjaxResult.success("该科室下无项目!");
                }
                for (TjOrderRemark tjOrderRemark : list) {
                    TjProject tjProject = projectService.getById(tjOrderRemark.getProId());
@@ -699,13 +904,24 @@
    @ApiOperation("点击父项目显示子项目详情")
    public AjaxResult getOrderDetailByProParentId(@ApiParam(value = "父项目id") @RequestParam String proParentId,
                                                  @ApiParam(value = "体检号") @RequestParam String tjNumber) {
        TjOrderRemark remark = remarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId);
        if (null == SecurityUtils.getLoginUser().getUserId() || null == userService.getById(SecurityUtils.getLoginUser().getUserId())) {
            return AjaxResult.error("获取用户信息错误");
        }
//        if(redisCache.hasHKey("getOrderDetailByProParentId"+tjNumber,proParentId)){
//            Map<String, Object> mapValue = redisCache.getCacheMapValue("getOrderDetailByProParentId" + tjNumber, proParentId);
//            return AjaxResult.success(mapValue);
//        }
        TjOrderRemark remark = remarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId);
        List<TjProject> proParentList = projectService.getTjProjectListBySoneId(proParentId);
        if (null == proParentList) {
            return AjaxResult.error("该项目下暂时没数据");
        if (null == proParentList || proParentList.size()==0) {
            Map<String, Object> map = new HashMap<>();
            map.put("xiaoJieIds", null);
            map.put("sons", projectService.list(new LambdaQueryWrapper<TjProject>().eq(TjProject::getProId,proParentId)));
            map.put("xiaoJie", null);
            map.put("remark", remark.getRemark());
            return AjaxResult.success(map);
        }
        List<Long> proParentIdList = proParentList.stream().map(TjProject::getProId).collect(Collectors.toList());
        TjOrder one = orderService.getOrderByTjNum(tjNumber);
@@ -718,16 +934,17 @@
            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                TjProject project = projectService.getById(tjOrderDetail.getProId());
                //病种回显
                LambdaQueryWrapper<TjOrderDetailRules> wq=new LambdaQueryWrapper<>();
                wq.eq(TjOrderDetailRules::getProId,project.getProId());
                wq.eq(TjOrderDetailRules::getTjNumber,tjNumber);
                List<TjOrderDetailRules> list = tjOrderDetailRulesService.list(wq);
                List<TjRules> res=new ArrayList<>();
                for (TjOrderDetailRules orderDetailRules : list) {
                    final TjRules byId = tjRulesService.getById(orderDetailRules.getAid());
                    res.add(byId);
                }
                tjOrderDetail.setRulesList(res);
//                LambdaQueryWrapper<TjOrderDetailRules> wq=new LambdaQueryWrapper<>();
//                wq.eq(TjOrderDetailRules::getProId,project.getProId());
//                wq.eq(TjOrderDetailRules::getTjNumber,tjNumber);
//                List<TjOrderDetailRules> list = tjOrderDetailRulesService.list(wq);
//                List<TjRules> res=new ArrayList<>();
//                for (TjOrderDetailRules orderDetailRules : list) {
//                    final TjRules byId = tjRulesService.getById(orderDetailRules.getAid());
//                    res.add(byId);
//                }
                List<TjRules> rulesList = tjRulesService.getTjRulesListByTjNumAndProId(tjNumber, tjOrderDetail.getProId());
                tjOrderDetail.setRulesList(rulesList);
                //查标准和单位----start
                List<TjStandard> list26 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
@@ -789,10 +1006,14 @@
        List<TjAdvice> adviceList = new ArrayList<>();
        if (null != remark) {
            String[] strings = StringUtils.split(remark.getSummary(), ";");
            if (null != strings && strings.length > 0) {
                for (String string : strings) {
                    adviceList.add(tjAdviceService.getById(string));
                }
//            if (null != strings && strings.length > 0) {
//                for (String string : strings) {
//                    adviceList.add(tjAdviceService.getById(string));
//                }
//            }
            if(null !=strings && strings.length>0){
                List<TjAdvice> list = tjAdviceService.getAdviceStringByIds(strings);
                adviceList.addAll(list);
            }
            map.put("xiaoJieIds", StringUtils.split(remark.getSummary(), ";"));
        } else {
@@ -801,6 +1022,8 @@
        map.put("sons", tjOrderDetails);
        map.put("xiaoJie", adviceList);
        map.put("remark", remark.getRemark());
//        asyncService.getOrderDetailByProParentId(tjNumber,map,proParentId);
        return AjaxResult.success(map);
    }
@@ -860,4 +1083,20 @@
        return success(deptService.selectDeptTreeList(dept));
    }
    /**
     * 获取子科室部门列表
     */
    @GetMapping("/getChildList")
    @ApiOperation(value = "获取子科室部门列表")
    public AjaxResult getChildList(String deptName) {
        LambdaQueryWrapper<SysDept> wq=new LambdaQueryWrapper<>();
        wq.ne(SysDept::getParentId,0);
        if (deptName!=null){
            wq.like(SysDept::getDeptName,deptName);
        }
        List<SysDept> depts = deptService.list(wq);
        return success(depts);
    }
}