zhaowenxuan
2025-01-02 4761f2bc70814bde9929f1081a213a9ab38a7393
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -7,6 +7,7 @@
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;
@@ -35,6 +36,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.ibatis.jdbc.Null;
@@ -107,7 +109,7 @@
    @Autowired
    private ITjRulesService tjRulesService;
    @Autowired
    public RedisTemplate<Object,Object> redisTemplate;
    public RedisTemplate<Object, Object> redisTemplate;
    @Resource
    private TestMapper testMapper;
    @Autowired
@@ -124,9 +126,9 @@
    @ApiOperation("获取当前登录人对应的院区名")
    public AjaxResult getdangqiandengluyuanqu() {
        Long deptId = SecurityUtils.getDeptId();
        if(null !=deptId){
        if (null != deptId) {
            SysDept dept = deptService.getById(deptId);
            if(null !=dept){
            if (null != dept) {
                String hospName = dept.getHospName();
                return AjaxResult.success(hospName);
            }
@@ -181,8 +183,8 @@
            return AjaxResult.error("请完善科室项目信息");
        }
        List<TjCustomer> customerLis = new ArrayList<>();
        if(null==name) name="";
        if(null==tjNumber) tjNumber="";
        if (null == name) name = "";
        if (null == tjNumber) tjNumber = "";
//        //根据体检号查
//        if (null != tjNumber) {
@@ -337,7 +339,7 @@
//                .match(key).build();
//        RedisSerializer<String> redisSerializer = (RedisSerializer<String>) redisTemplate.getKeySerializer();
//        0未检,1已检
        Map<String,Object> map=null;
        Map<String, Object> map = null;
        if (type == 0) {
//            Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
//            List<TjCustomer> customers = new ArrayList<>();
@@ -401,7 +403,7 @@
            for (Long orderId : orderIds) {
                if (null != orderId) {
                    TjOrder order = orderService.getById(orderId);
                    if(null ==order){
                    if (null == order) {
                        continue;
                    }
                    if (type == 1) {
@@ -428,7 +430,7 @@
                            StringBuilder stringBuilder = new StringBuilder();
                            for (TjOrderRemark remark : list) {
                                TjProject byId = projectService.getById(remark.getProId());
                                if(null !=byId){
                                if (null != byId) {
                                    stringBuilder.append(byId.getProName()).append(";");
                                }
                            }
@@ -457,10 +459,10 @@
    @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) {
                                       @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;
@@ -495,7 +497,7 @@
//        }
//        if(sysUser.getUserName().equals("10001")){
            ksproList = projectService.getHuaYanProId();
        ksproList = projectService.getHuaYanProId();
//        }
//        else {
//            ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
@@ -801,7 +803,7 @@
//                .match(key).build();
//        RedisSerializer<String> redisSerializer = (RedisSerializer<String>) redisTemplate.getKeySerializer();
//        0未检,1已检
        Map<String,Object> map=null;
        Map<String, Object> map = null;
        if (type == 0) {
//            Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
//            List<TjCustomer> customers = new ArrayList<>();
@@ -847,10 +849,10 @@
    @GetMapping("/yingXiangGetProList")
    @ApiOperation("影像检查页面列表")
    public AjaxResult yingXiangGetProList(@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) {
                                          @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;
@@ -1043,7 +1045,7 @@
//            }
//        }
//        List<TjCustomer> customerLists = null;
        Map<String,Object> map=null;
        Map<String, Object> map = null;
        if (type == 0) {
//            Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
//            List<TjCustomer> customers = new ArrayList<>();
@@ -1103,7 +1105,7 @@
        String format = DateUtil.format(patbirth, "yyyy.MM.dd");
        List<Map<String, Object>> tjYxjcList = testMapper.getTjYxjcList(patname,sex,null);
        List<Map<String, Object>> tjYxjcList = testMapper.getTjYxjcList(patname, sex, null);
        return AjaxResult.success(tjYxjcList);
    }
@@ -1118,9 +1120,6 @@
//        List<Map<String, Object>> tjYxjcList = testMapper.getTjYxjcList(patname,sex,null,null);
//        return AjaxResult.success(tjYxjcList);
//    }
    /**
@@ -1294,9 +1293,9 @@
        dept.setUpdateBy(getUsername());
        //查询院区名字赋值
        if (dept.getHospId()!=null){
        if (dept.getHospId() != null) {
            final DictHosp byId = dictHospService.getById(dept.getHospId());
            if (byId!=null){
            if (byId != null) {
                dept.setHospName(byId.getHospAreaName());
            }
        }
@@ -1338,12 +1337,12 @@
        }
        for (TjOrderRemark orderRemark : remarklList) {
            List<String> summaryList = orderRemark.getSummaryList();
            if (null != summaryList && !summaryList.isEmpty() && !summaryList.contains(null) ) {
            if (null != summaryList && !summaryList.isEmpty() && !summaryList.contains(null)) {
                orderRemark.setSummary(Joiner.on(";").join(orderRemark.getSummaryList()));
            }else {
            } else {
                orderRemark.setSummary(null);
            }
            if(StringUtils.isBlank(orderRemark.getRemark()))orderRemark.setRemark(null);
            if (StringUtils.isBlank(orderRemark.getRemark())) orderRemark.setRemark(null);
            LambdaQueryWrapper<TjOrder> qw = new LambdaQueryWrapper<>();
            qw.eq(TjOrder::getTjNumber, orderRemark.getTjNumber());
            TjOrder order = orderService.getOne(qw);
@@ -1401,7 +1400,7 @@
                    one.setRemark(orderRemark.getRemark());
                    if (null != summaryList && !summaryList.isEmpty() && !summaryList.contains(null)) {
                        one.setSummary(Joiner.on(";").join(orderRemark.getSummaryList()));
                    }else {
                    } else {
                        one.setSummary(null);
                    }
                    one.setDoctorName(orderRemark.getDoctorName());
@@ -1409,13 +1408,13 @@
                    remarkService.updateById(one);
                }
                asyncService.updateCheckType(orderRemark.getTjNumber());
                asyncService.getOrderDetailByProParentId(orderRemark.getTjNumber(),null, String.valueOf(orderRemark.getProId()));
                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()));
        }
        remarkService.tjYishengjianchajianyi(null,null,null,null);
        remarkService.tjYishengjianchajianyi(null, null, null, null);
        return AjaxResult.success("操作成功");
    }
@@ -1442,200 +1441,205 @@
        String configByKey = configService.selectConfigByKey("sfkqdyhis");
        // 判断是否收费 请求接口
        TjOrder tjOrder = orderService.getOrderByTjNum(tjNumber);
        if(null ==tjOrder){
        if (null == tjOrder) {
            return AjaxResult.error("未找到体检记录");
        }
        LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
        tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId,tjOrder.getOrderId());
        tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getIsAddition,"N");
        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")){
        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);
                    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());
                        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());
                    } 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<>();
                    wrapper1.eq(TjFlowingWater::getOrderId,tjOrder.getOrderId());
                    wrapper1.eq(TjFlowingWater::getPayStasus,0L);
                    List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
                    if (!list.isEmpty()){
                        return AjaxResult.error("存在未缴费项目");
                    }
                }
//                String s = configService.selectConfigByKey("is_request_common_his_api");
//                if (null != s && s.equals("Y")) {
//                    LambdaQueryWrapper<TjFlowingWater> wrapper1 = new LambdaQueryWrapper<>();
//                    wrapper1.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
//                    wrapper1.eq(TjFlowingWater::getPayStasus, 0L);
//                    List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
//                    if (!list.isEmpty()) {
//                        return AjaxResult.error("存在未缴费项目");
//                    }
//                }
            }
        }else {
            log.error("路泰科技--- "+DateUtil.date()+" 未对接his接口 "+" 体检号 "+tjOrder.getTjNumber());
        } 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类型结果
        if("Y".equals(config)){
        if ("Y".equals(config)) {
            List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
            if(null !=roles && roles.size()>0){
            if (null != roles && !roles.isEmpty()) {
                List<SysRole> list = roles.stream().filter(item -> item.getRoleName().contains("前台")).collect(Collectors.toList());
                if(list.size()>0){
                    if(null !=ksId && ksId==100){
                        ksId=999;
                    }
                    if(null !=byKey && !"".equals(byKey)){
                if (!list.isEmpty()) {
//                    if (null != ksId && ksId == 100) {
//                        ksId = 999;
//                    }
                    if (null != byKey && !byKey.isEmpty()) {
                        String[] arr = byKey.split(","); // 根据逗号进行切割
                        for (String s : arr) {
                            int num = Integer.parseInt(s); // 将每个子字符串转换为integer类型
                            split.add(num); // 添加到列表中
                        }
                    }
                }else {
                } else {
                    split.add(ksId);
                }
            }else {
            } else {
                split.add(ksId);
            }
        }else {
        } else {
            split.add(ksId);
        }
        //判断当前登陆的人是不是管理员。管理员可以看当前体检号下所有项目
//        if (sysUser.getUserName().equals("10001")) {
//            QueryWrapper<TjOrderRemark> wqq = new QueryWrapper<>();
//            wqq.eq("tj_number", tjNumber);
//            List<TjOrderRemark> listq = remarkService.list(wqq);
//            if (listq.size() == 0) {
//                return AjaxResult.error("该科室下无项目!");
//            }
//            for (TjOrderRemark tjOrderRemark : listq) {
//                TjProject tjProjectq = projectService.getById(tjOrderRemark.getProId());
//                if (null != tjProjectq) {
//                    tjOrderRemark.setProName(tjProjectq.getProName());
//                }
//            }
//            return AjaxResult.success(listq);
//        LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
//        if ((null != sysUser && !sysUser.getUserName().equals("10001")) && 100!=ksId) {
//            wq2.in(TjProject::getDeptId,split);
//        }
        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("该科室下无项目!");
        }
        LambdaQueryWrapper<TjOrder> wqqq = new LambdaQueryWrapper<>();
        wqqq.eq(TjOrder::getTjNumber, tjNumber);
        TjOrder one = orderService.getOne(wqqq);
        if (null != one) {
            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.size() > 0) {
                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.size() == 0) {
                    return AjaxResult.success("该科室下无项目!");
                }
                for (TjOrderRemark tjOrderRemark : list) {
                    TjProject tjProject = projectService.getById(tjOrderRemark.getProId());
                    if (null != tjProject) {
                        tjOrderRemark.setProName(tjProject.getProName());
                    }
                }
                return AjaxResult.success(list);
//        //判断该项目是否需要打印报告
//        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);
            }
            return AjaxResult.success();
        }
        return AjaxResult.error();
            if (null ==list || list.isEmpty()) {
                return AjaxResult.error("该科室下无项目!");
            }
            for (TjOrderRemark tjOrderRemark : list) {
                TjProject tjProject = projectService.getById(tjOrderRemark.getProId());
                if (null != tjProject) {
                    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
public void extracted(TjOrder tjOrder, TjFlowingWater tjFlowingWater) {
    tjFlowingWater.setPayStasus(1L);
    tjFlowingWater.setPayType(0L);
    tjFlowingWater.setTollCollectorId("148");
    tjFlowingWaterService.updateById(tjFlowingWater);
    Long tjSerialNumber = tjFlowingWater.getTjSerialNumber();
    LambdaQueryWrapper<TjOrderDetail> tjOrderDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();
    tjOrderDetailLambdaQueryWrapper.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
    List<TjOrderDetail> tjOrderDetails = detailService.list(tjOrderDetailLambdaQueryWrapper);
    List<Long> detailIds = tjOrderDetails.stream().map(TjOrderDetail::getOrderDetailId).collect(Collectors.toList());
    LambdaUpdateWrapper<TjOrderDetail> tjOrderDetailLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
    tjOrderDetailLambdaUpdateWrapper.set(TjOrderDetail::getFlowingWaterId, tjSerialNumber);
    tjOrderDetailLambdaUpdateWrapper.in(TjOrderDetail::getOrderDetailId, detailIds);
    detailService.update(tjOrderDetailLambdaUpdateWrapper);
    remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(),tjFlowingWater.getTjSerialNumber().toString());
}
/**
 * 点击父项目显示子项目详情
 *
 * @return
 */
@GetMapping("/getOrderDetailByProParentId")
@ApiOperation("点击父项目显示子项目详情")
public AjaxResult getOrderDetailByProParentId(@ApiParam(value = "父项目id") @RequestParam String proParentId,
                                              @ApiParam(value = "体检号") @RequestParam String tjNumber) {
    if (null == SecurityUtils.getLoginUser().getUserId() || null == userService.getById(SecurityUtils.getLoginUser().getUserId())) {
        return AjaxResult.error("获取用户信息错误");
    }
    @Transactional
    public void extracted(TjOrder tjOrder, TjFlowingWater tjFlowingWater) {
        tjFlowingWater.setPayStasus(1L);
        tjFlowingWater.setPayType(0L);
        tjFlowingWater.setTollCollectorId("148");
        tjFlowingWaterService.updateById(tjFlowingWater);
        Long tjSerialNumber = tjFlowingWater.getTjSerialNumber();
        LambdaQueryWrapper<TjOrderDetail> tjOrderDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();
        tjOrderDetailLambdaQueryWrapper.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
        List<TjOrderDetail> tjOrderDetails = detailService.list(tjOrderDetailLambdaQueryWrapper);
        List<Long> detailIds = tjOrderDetails.stream().map(TjOrderDetail::getOrderDetailId).collect(Collectors.toList());
        LambdaUpdateWrapper<TjOrderDetail> tjOrderDetailLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        tjOrderDetailLambdaUpdateWrapper.set(TjOrderDetail::getFlowingWaterId,tjSerialNumber);
        tjOrderDetailLambdaUpdateWrapper.in(TjOrderDetail::getOrderDetailId,detailIds);
        detailService.update(tjOrderDetailLambdaUpdateWrapper);
    TjOrderRemark remark = remarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId);
    List<TjProject> proParentList = projectService.getTjProjectListByTbTransition(proParentId, tjNumber);
    if (null == proParentList || proParentList.isEmpty()) {
        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);
    }
    /**
     * 点击父项目显示子项目详情
     *
     * @return
     */
    @GetMapping("/getOrderDetailByProParentId")
    @ApiOperation("点击父项目显示子项目详情")
    public AjaxResult getOrderDetailByProParentId(@ApiParam(value = "父项目id") @RequestParam String proParentId,
                                                  @ApiParam(value = "体检号") @RequestParam String tjNumber) {
        if (null == SecurityUtils.getLoginUser().getUserId() || null == userService.getById(SecurityUtils.getLoginUser().getUserId())) {
            return AjaxResult.error("获取用户信息错误");
        }
        TjOrderRemark remark = remarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId);
        List<TjProject> proParentList = projectService.getTjProjectListByTbTransition(proParentId,tjNumber);
        if (null == proParentList || proParentList.isEmpty()) {
            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);
        if (null == one) {
            return AjaxResult.success("该用户暂时没有体检数据");
        }
        List<TjOrderDetail> tjOrderDetails = detailService.getTjOrderDetailListInProParentIdList(String.valueOf(one.getOrderId()), proParentIdList);
        List<TjOrderDetail> tjOrderDetailList=new ArrayList<>();
    List<Long> proParentIdList = proParentList.stream().map(TjProject::getProId).collect(Collectors.toList());
    TjOrder one = orderService.getOrderByTjNum(tjNumber);
    if (null == one) {
        return AjaxResult.success("该用户暂时没有体检数据");
    }
    List<TjOrderDetail> tjOrderDetails = detailService.getTjOrderDetailListInProParentIdList(String.valueOf(one.getOrderId()), proParentIdList);
    List<TjOrderDetail> tjOrderDetailList = new ArrayList<>();
//        TjCustomer customer = tjCustomerService.getById(one.getUserId());
        if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                TjProject project = projectService.getById(tjOrderDetail.getProId());
    if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
        for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
            TjProject project = projectService.getById(tjOrderDetail.getProId());
            if(null != project){
                //判断该项目是否需要打印报告
                if ("N".equals(project.getNeedReport())){
                if ("N".equals(project.getNeedReport())) {
                    continue;
                }
                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) {
@@ -1644,141 +1648,158 @@
                } else {
                    tjOrderDetail.setDoctorName(null);
                }
                if(StringUtil.isBlank(tjOrderDetail.getProResult())){
                    tjOrderDetail.setProResult(project.getProDefault());
                }
                tjOrderDetailList.add(tjOrderDetail);
            }
        }
        Map<String, Object> map = new HashMap<>();
        List<TjAdvice> adviceList = new ArrayList<>();
        if (null != remark) {
            String[] strings = StringUtils.split(remark.getSummary(), ";");
            if(null !=strings && strings.length>0){
                List<TjAdvice> list = tjAdviceService.getAdviceStringByIds(strings);
                adviceList.addAll(list);
            }
            map.put("xiaoJieIds", StringUtils.split(remark.getSummary(), ";"));
        } else {
            map.put("xiaoJieIds", null);
    }
    Map<String, Object> map = new HashMap<>();
    List<TjAdvice> adviceList = new ArrayList<>();
    if (null != remark) {
        String[] strings = StringUtils.split(remark.getSummary(), ";");
        if (null != strings && strings.length > 0) {
            List<TjAdvice> list = tjAdviceService.getAdviceStringByIds(strings);
            adviceList.addAll(list);
        }
        map.put("sons", tjOrderDetailList);
        map.put("xiaoJie", adviceList);
        map.put("remark", remark.getRemark());
        map.put("xiaoJieIds", StringUtils.split(remark.getSummary(), ";"));
    } else {
        map.put("xiaoJieIds", null);
    }
    map.put("sons", tjOrderDetailList);
    map.put("xiaoJie", adviceList);
    map.put("remark", remark.getRemark());
//        asyncService.getOrderDetailByProParentId(tjNumber,map,proParentId);
        return AjaxResult.success(map);
    return AjaxResult.success(map);
}
/**
 * 状态修改
 */
@PutMapping("/changeStatus")
@ApiOperation("部门状态修改")
public AjaxResult changeStatus(@RequestBody SysDept dept) {
    //判断是启用还是
    if ("1".equals(dept.getStatus())) {
        //判断用户表中有没有人在该科室下
        LambdaQueryWrapper<SysUser> wq = new LambdaQueryWrapper<>();
        wq.eq(SysUser::getDeptId, dept.getDeptId());
        List<SysUser> list = userService.list(wq);
        if (!list.isEmpty()) {
            return AjaxResult.error("该科室下有工作人员,不能停用!");
        }
    }
    /**
     * 状态修改
     */
    @PutMapping("/changeStatus")
    @ApiOperation("部门状态修改")
    public AjaxResult changeStatus(@RequestBody SysDept dept) {
        //判断是启用还是
        if ("1".equals(dept.getStatus())) {
            //判断用户表中有没有人在该科室下
            LambdaQueryWrapper<SysUser> wq = new LambdaQueryWrapper<>();
            wq.eq(SysUser::getDeptId, dept.getDeptId());
            List<SysUser> list = userService.list(wq);
            if (list.size() != 0) {
                return AjaxResult.error("该科室下有工作人员,不能停用!");
            }
        }
        dept.setUpdateBy(getUsername());
        int i = deptService.updateDeptStatus(dept);
        if (i == 0) {
            return AjaxResult.error("修改失败");
        }
        return AjaxResult.success("修改成功");
    dept.setUpdateBy(getUsername());
    int i = deptService.updateDeptStatus(dept);
    if (i == 0) {
        return AjaxResult.error("修改失败");
    }
    return AjaxResult.success("修改成功");
}
    /**
     * 根据项目id获取建议
     */
    @GetMapping("/getDeptAdvice")
    @ApiOperation(value = "根据项目id获取建议")
    public AjaxResult getDeptAdvice(@ApiParam(value = "父项目项目id") @RequestParam(required = false) String proId,
                                    @ApiParam(value = "内容") @RequestParam(required = false) String nr,
                                    @ApiParam(value = "拼音码") @RequestParam(required = false) String pym,
                                    @ApiParam(value = "页码") @RequestParam(defaultValue ="1") int page,
                                    @ApiParam(value = "每页展示条数") @RequestParam(defaultValue ="10") int pageSize) {
        LambdaQueryWrapper<TjAdvice> wq1 = new LambdaQueryWrapper<>();
        if(null !=proId){
            wq1.eq(TjAdvice::getProId, proId);
        }
        if(null !=nr && !nr.isEmpty()){
            wq1.like(TjAdvice::getTitle,nr);
        }else if (null !=pym && !pym.isEmpty()){
            wq1.like(TjAdvice::getTitle,pym);
        }
/**
 * 根据项目id获取建议
 */
@GetMapping("/getDeptAdvice")
@ApiOperation(value = "根据项目id获取建议")
public AjaxResult getDeptAdvice(@ApiParam(value = "父项目项目id") @RequestParam(required = false) String proId,
                                @ApiParam(value = "内容") @RequestParam(required = false) String nr,
                                @ApiParam(value = "拼音码") @RequestParam(required = false) String pym,
                                @ApiParam(value = "页码") @RequestParam(defaultValue = "1") int page,
                                @ApiParam(value = "每页展示条数") @RequestParam(defaultValue = "10") int pageSize) {
    LambdaQueryWrapper<TjAdvice> wq1 = new LambdaQueryWrapper<>();
    if (null != proId) {
        wq1.eq(TjAdvice::getProId, proId);
    }
    if (null != nr && !nr.isEmpty()) {
        wq1.like(TjAdvice::getTitle, nr);
    } else if (null != pym && !pym.isEmpty()) {
        wq1.like(TjAdvice::getTitle, pym);
    }
//        else {
//            wq1.last("limit 20");
//        }
        Page<TjAdvice> pages=new Page<>(page,pageSize);
        Page<TjAdvice> advicePage = tjAdviceService.page(pages, wq1);
        Map<String,Object> map=new HashMap<>();
        map.put("list",advicePage.getRecords());
        map.put("total",advicePage.getTotal());
    Page<TjAdvice> pages = new Page<>(page, pageSize);
    Page<TjAdvice> advicePage = tjAdviceService.page(pages, wq1);
    Map<String, Object> map = new HashMap<>();
    map.put("list", advicePage.getRecords());
    map.put("total", advicePage.getTotal());
//        List<TjAdvice> list = tjAdviceService.list(wq1);
        return AjaxResult.success(map);
    return AjaxResult.success(map);
}
@GetMapping("/getAdviceByTjNumAndPro")
@ApiOperation(value = "根据项目id和体检号获取建议")
public AjaxResult getAdviceByTjNumAndPro(@ApiParam(value = "父项目项目id") @RequestParam String proId,
                                         @ApiParam(value = "体检号") @RequestParam String tjNum) {
    LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
    wq.eq(TjOrderRemark::getProId, proId);
    wq.eq(TjOrderRemark::getTjNumber, tjNum);
    TjOrderRemark remark = remarkService.getOne(wq);
    List<TjAdvice> list = null;
    if (null != remark && !StringUtils.isBlank(remark.getSummary())) {
        String[] strings = StringUtils.split(remark.getSummary(), ";");
        if (null != strings && strings.length > 0) {
            list = tjAdviceService.getAdviceStringByIds(strings);
        }
    }
    return AjaxResult.success(list);
}
/**
 * 获取部门树列表
 */
//@PreAuthorize("@ss.hasPermi('system:dept:list')")
@GetMapping("/deptTree")
@ApiOperation("获取部门树列表")
public AjaxResult deptTree(SysDept dept) {
    return success(deptService.selectDeptTreeList(dept));
}
    @GetMapping("/getAdviceByTjNumAndPro")
    @ApiOperation(value = "根据项目id和体检号获取建议")
    public AjaxResult getAdviceByTjNumAndPro(@ApiParam(value = "父项目项目id") @RequestParam String proId,
                                    @ApiParam(value = "体检号") @RequestParam String tjNum) {
        LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
        wq.eq(TjOrderRemark::getProId, proId);
        wq.eq(TjOrderRemark::getTjNumber,tjNum);
        TjOrderRemark remark = remarkService.getOne(wq);
        List<TjAdvice> list =null;
        if (null != remark && !StringUtils.isBlank(remark.getSummary())) {
            String[] strings = StringUtils.split(remark.getSummary(), ";");
            if(null !=strings && strings.length>0){
                list = tjAdviceService.getAdviceStringByIds(strings);
@GetMapping("/deptTree111")
@ApiOperation("获取部门树列表1111111111")
public AjaxResult deptTree111(SysDept dept) {
    final List<TreeSelect> treeSelects = deptService.selectDeptTreeList1(dept);
    return success(treeSelects);
}
/**
 * 获取子科室部门列表
 */
@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);
}
    @GetMapping("/getxmjgz")
    @ApiOperation(value = "医生检查处获取项目规则值")
    public AjaxResult getxmjgz(@RequestParam  String proId) {
        LambdaQueryWrapper<TjRules> wq = new LambdaQueryWrapper<>();
        wq.eq(TjRules::getProId, proId);
        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);
    }
    /**
     * 获取部门树列表
     */
    //@PreAuthorize("@ss.hasPermi('system:dept:list')")
    @GetMapping("/deptTree")
    @ApiOperation("获取部门树列表")
    public AjaxResult deptTree(SysDept dept) {
        return success(deptService.selectDeptTreeList(dept));
    }
    @GetMapping("/deptTree111")
    @ApiOperation("获取部门树列表1111111111")
    public AjaxResult deptTree111(SysDept dept) {
        final List<TreeSelect> treeSelects = deptService.selectDeptTreeList1(dept);
        return success(treeSelects);
    }
    /**
     * 获取子科室部门列表
     */
    @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);
    }
}