zjh
2025-03-14 0f658843b92eb41a87cb113c9eb6416e25e76a2e
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -2,11 +2,13 @@
import java.io.*;
import java.math.BigDecimal;
import java.sql.Struct;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.date.DateUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -27,6 +29,7 @@
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.vodomain.CsProVo;
import com.ltkj.system.domain.SysPost;
import com.ltkj.system.domain.SysUserPost;
import com.ltkj.system.service.*;
@@ -1351,7 +1354,7 @@
            }
            List<TjOrderDetail> tjOrderDetailList = orderRemark.getTjOrderDetailList();
            final TjCustomer byId1 = customerService.getById(order.getUserId());
//            final TjCustomer byId1 = customerService.getById(order.getUserId());
            if (null != tjOrderDetailList && !tjOrderDetailList.isEmpty()) {
                //----------------------------------start
//                for (TjOrderDetail tjOrderDetail : tjOrderDetailList) {
@@ -1379,7 +1382,7 @@
//                        }
//                    }
//                }
                asyncService.updateOrdeltile(tjOrderDetailList, sysUser, order);
                asyncService.updateOrdeltile(tjOrderDetailList, sysUser, order,orderRemark);
                LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
                qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
                qww.eq(TjOrderDetail::getProId, orderRemark.getProId());
@@ -1426,6 +1429,7 @@
//    @Transactional
    @GetMapping("/getParentList")
    @ApiOperation(value = "医生点击体检信息详情(只显示父项目列表)")
//    修改按照科室查询
    public AjaxResult getParentList(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
        String userId = SecurityUtils.getLoginUser().getUserId();
        Integer ksId = null;
@@ -1443,31 +1447,35 @@
        if (null == tjOrder) {
            return AjaxResult.error("未找到体检记录");
        }
        LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
        tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
        tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getIsAddition, "N");
        TjFlowingWater tjFlowingWater = tjFlowingWaterService.getOne(tjFlowingWaterLambdaQueryWrapper);
        if (null != tjFlowingWater) {
            if (tjFlowingWater.getPayStasus() != 1 && tjFlowingWater.getPayStasus() != 3) {
                if (configByKey.equals("Y")) {
                    HashMap<String, Object> hisRequestParams = new HashMap<>();
                    // 不在需要身份证号
                    hisRequestParams.put("patientId", tjOrder.getCardId());
                    log.info("ltkj--- " + DateUtil.date() + "操作人id: " + userId + "操作科室: " + sysUser.getDeptId() + "操作的体检人: " + tjNumber);
                    AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
                    if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                        int sfsf = ltkjJianchajianyanTreeService.getSfsfByCardId(tjOrder.getCardId());
                        if (sfsf > 0) {
                            log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就单数  " + sfsf);
                            log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                            return AjaxResult.error("存在未缴费项目");
        SysDept dept = deptService.getById(ksId);
        if(null !=dept && !dept.getDeptName().contains("体检中心")){
            LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
            tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
            tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getIsAddition, "N");
            TjFlowingWater tjFlowingWater = tjFlowingWaterService.getOne(tjFlowingWaterLambdaQueryWrapper);
            if (null != tjFlowingWater) {
                if (tjFlowingWater.getPayStasus() != 1 && tjFlowingWater.getPayStasus() != 3) {
                    if (configByKey.equals("Y")) {
                        HashMap<String, Object> hisRequestParams = new HashMap<>();
                        // 不在需要身份证号
                        hisRequestParams.put("patientId", tjOrder.getCardId());
                        log.info("ltkj--- " + DateUtil.date() + "操作人id: " + userId + "操作科室: " + sysUser.getDeptId() + "操作的体检人: " + tjNumber);
                        AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
                        if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                            int sfsf = ltkjJianchajianyanTreeService.getSfsfByCardId(tjOrder.getCardId());
                            if (sfsf > 0) {
                                log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就单数  " + sfsf);
                                log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                                return AjaxResult.error("存在未缴费项目");
                            }
                            extracted(tjOrder, tjFlowingWater);
                        } else {
                            log.error("路泰科技--- " + DateUtil.date() + " 未查询到缴费记录的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                            return AjaxResult.error("未查询到缴费记录");
                        }
                        extracted(tjOrder, tjFlowingWater);
                    } else {
                        log.error("路泰科技--- " + DateUtil.date() + " 未查询到缴费记录的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                        return AjaxResult.error("未查询到缴费记录");
                    }
                }
//                String s = configService.selectConfigByKey("is_request_common_his_api");
//                if (null != s && s.equals("Y")) {
//                    LambdaQueryWrapper<TjFlowingWater> wrapper1 = new LambdaQueryWrapper<>();
@@ -1478,23 +1486,22 @@
//                        return AjaxResult.error("存在未缴费项目");
//                    }
//                }
                }
            } else {
                log.error("路泰科技--- " + DateUtil.date() + " 未对接his接口 " + " 体检号 " + tjOrder.getTjNumber());
                return AjaxResult.error("未查询到缴费记录");
            }
        } else {
            log.error("路泰科技--- " + DateUtil.date() + " 未对接his接口 " + " 体检号 " + tjOrder.getTjNumber());
            return AjaxResult.error("未查询到缴费记录");
        }
        String config = configService.selectConfigByKey("qt_open_xdt");
        String byKey = configService.selectConfigByKey("qt_kjksid");
        List<Integer> split = new ArrayList<>(); // 存放转换后的integer类型结果
        Set<Integer> split = new HashSet<>(); // 存放转换后的integer类型结果
        split.add(ksId);
        if ("Y".equals(config)) {
            List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
            if (null != roles && !roles.isEmpty()) {
                List<SysRole> list = roles.stream().filter(item -> item.getRoleName().contains("前台")).collect(Collectors.toList());
                if (!list.isEmpty()) {
//                    if (null != ksId && ksId == 100) {
//                        ksId = 999;
//                    }
                    if (null != byKey && !byKey.isEmpty()) {
                        String[] arr = byKey.split(","); // 根据逗号进行切割
                        for (String s : arr) {
@@ -1502,36 +1509,15 @@
                            split.add(num); // 添加到列表中
                        }
                    }
                } else {
                    split.add(ksId);
                }
            } else {
                split.add(ksId);
            }
        } else {
            split.add(ksId);
        }
//        LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
//        if ((null != sysUser && !sysUser.getUserName().equals("10001")) && 100!=ksId) {
//            wq2.in(TjProject::getDeptId,split);
//        }
//        //判断该项目是否需要打印报告
//        wq2.eq(TjProject::getNeedReport,"Y");
//        List<TjProject> Deptlist = projectService.list(wq2);
//        List<Long> proIdList = Deptlist.stream().map(TjProject::getProId).collect(Collectors.toList());
//        if (Deptlist.isEmpty() || proIdList.isEmpty()) {
//            return AjaxResult.error("该科室下无项目!");
//        }
            List<TjOrderRemark> list;
            if(null != sysUser && sysUser.getUserName().equals("10001")){
                list=remarkService.yiShengJianChaGetPrentProCJGLY(tjNumber);
            }else {
                list= remarkService.yiShengJianChaGetPrentPro(tjNumber, split);
            }
            if (null ==list || list.isEmpty()) {
                return AjaxResult.error("该科室下无项目!");
            }
@@ -1541,39 +1527,7 @@
                    tjOrderRemark.setProName(tjProject.getProName());
                }
            }
            return AjaxResult.success(list);
//            LambdaQueryWrapper<TjOrderDetail> wqq = new LambdaQueryWrapper<>();
//            wqq.eq(TjOrderDetail::getOrderId, one.getOrderId());
//            wqq.isNotNull(TjOrderDetail::getFlowingWaterId);
//            wqq.in(TjOrderDetail::getProId, proIdList);
//            wqq.notIn(TjOrderDetail::getProId, proIdList,projectService.getNneedReprotProId());
//            List<TjOrderDetail> detailList = detailService.list(wqq);
//            if (detailList != null && !detailList.isEmpty()) {
//                List<Long> collect = detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList());
//                QueryWrapper<TjOrderRemark> wq = new QueryWrapper<>();
//                wq.eq("tj_number", tjNumber);
//                wq.in("pro_id", collect);
//                wq.ne("type", 2);
//                wq.ne("dept_id",241);
//                wq.notIn("pro_id", proIdList,projectService.getNneedReprotProId());
//                List<TjOrderRemark> list = remarkService.list(wq);
//                if (list.isEmpty()) {
//                    return AjaxResult.success("该科室下无项目!");
//                }
//                for (TjOrderRemark tjOrderRemark : list) {
//                    TjProject tjProject = projectService.getById(tjOrderRemark.getProId());
//                    if (null != tjProject) {
//                        tjOrderRemark.setProName(tjProject.getProName());
//                    }
//                }
//                return AjaxResult.success(list);
//            }
//            return AjaxResult.success();
//    }
}
@Transactional
@@ -1638,6 +1592,7 @@
                List<TjRules> rulesList = tjRulesService.getTjRulesListByTjNumAndProId(tjNumber, tjOrderDetail.getProId());
                tjOrderDetail.setRulesList(rulesList);
                tjOrderDetail.setProject(project);
                tjOrderDetail.setResultType(project.getResultType());
                if (null != remark.getDoctorName()) {
                    SysUser byId = userService.getById(remark.getDoctorName());
                    if (byId != null) {
@@ -1784,4 +1739,70 @@
    return success(depts);
}
    @GetMapping("/getxmjgz")
    @ApiOperation(value = "医生检查处获取项目规则值")
    public AjaxResult getxmjgz(@RequestParam  String proId,@RequestParam(required = false)  String xmgz) {
        LambdaQueryWrapper<TjRules> wq = new LambdaQueryWrapper<>();
        wq.eq(TjRules::getProId, proId);
        if(StringUtil.isNotBlank(xmgz))wq.like(TjRules::getRuleStr,xmgz);
        List<TjRules> list = tjRulesService.list(wq);
        if(null !=list && !list.isEmpty()){
            for (TjRules tjRules : list) {
                if(null !=tjRules){
                    tjRules.setJm(PinyinUtil.getFirstLetter(tjRules.getRuleStr(),""));
                }
            }
        }
        return AjaxResult.success(list);
    }
    @GetMapping ("/ysjcbGetProByTjNumAndOrderId")
    @ApiOperation (value = "医生检查页面查询检验检查项目接口")
    public AjaxResult ysjcbGetProByTjNumAndOrderId(@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());
//                }
//                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 = getysjcProVos(tjNumber);
        return AjaxResult.success(list);
    }
    public List<CsProVo> getysjcProVos(String tjNumber) {
        List<CsProVo> list = remarkService.ysjcGetProByTjNumAndOrderId(tjNumber);
        if (null != list && !list.isEmpty()) {
            list.sort(new Comparator<CsProVo>() {
                @Override
                public int compare(CsProVo o1, CsProVo o2) {
                    return o1.getType() - o2.getType();
                }
            });
        }
        return list;
    }
}