zjh
5 天以前 cf37087d3a1bd7247e0fa7acc4c3c6c1e30ea01b
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;
@@ -22,6 +23,7 @@
import com.ltkj.framework.config.UserHoder;
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.dto.CheckUpdateStatusDto;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.*;
@@ -1004,7 +1006,8 @@
                              @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) {
                              @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime,
                              @ApiParam(value = "体检类型") @RequestParam(required = false) String tjCategory) {
        String value = String.valueOf(compId);
        if (tjNumber == null) tjNumber = "";
@@ -1013,7 +1016,7 @@
        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,shys));
        return AjaxResult.success(orderService.getCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name, shys, tjCategory));
    }
@@ -1135,44 +1138,35 @@
     * @param checkStatus
     * @return
     */
    @PutMapping("/getTjdetailList")
    @PostMapping("/getTjdetailList")
    @ApiOperation(value = "根据体检订单号获取体检详情信息(并修改状态)接口")
//    @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) {
    public AjaxResult getTjdetailList(@RequestBody CheckUpdateStatusDto dto) {
        String config = configService.selectConfigByKey("sfjcwjhyqxm");
        if (null != config && config.equalsIgnoreCase("Y")) {
            int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
            int num = orderRemarkService.getTjYqOrderRemarkByTjNum(dto.getTjNumber());
            if (num > 0) return AjaxResult.error("存在未检或延期项目暂不能生成报告!!!");
        }
        Date date = new Date();
        if (null != tjNumber) {
        if (null != dto.getTjNumber()) {
            Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
            SysUser sysUser = userService.getById(userId);
            LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
            wq1.eq(TjOrder::getTjNumber, tjNumber);
            wq1.eq(TjOrder::getTjNumber, dto.getTjNumber());
            TjOrder tjOrder = orderService.getOne(wq1);
            if (null != tjOrder) {
                tjOrder.setCheckAdvice(advice);
                tjOrder.setCheckStatus(checkStatus);
                tjOrder.setCheckAdvice(dto.getAdvice());
                tjOrder.setCheckStatus(dto.getCheckStatus());
                tjOrder.setStatus(TjConstants.TJ_CHECK);
                tjOrder.setCheckDoctor(sysUser.getNickName());
                tjOrder.setCheckTime(date);
                tjOrder.setStatus(401);
                tjOrder.setFinishTime(date);
                if (StrUtil.isNotBlank(dto.getZhiyeJl()))
                    tjOrder.setZhiyeJl(dto.getZhiyeJl());
                if (StrUtil.isNotBlank(dto.getZhiyeJg()))
                    tjOrder.setZhiyeJg(dto.getZhiyeJg());
                if (orderService.updateById(tjOrder)) {
                    TjCustomer customer = customerService.getById(tjOrder.getUserId());
                    if (null != customer) {
                        customer.setCusNumber(customer.getCusNumber() + 1);
                        customer.setCardId("0");
                        if (customerService.updateById(customer)) {
                            asyncService.updateCheckType(tjNumber);
                            return AjaxResult.success("操作成功");
                        }
                        return AjaxResult.error("操作失败");
                    }
                    return AjaxResult.success("操作成功");
                }
                return AjaxResult.error("操作失败");
            }
@@ -1410,6 +1404,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()) {
@@ -1454,7 +1450,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());
                            }
@@ -1659,7 +1659,7 @@
            List<TjOrderYcxm> tjOrderYcxms = new ArrayList<>();
            TjOrder order = orderService.getOrderByTjNum(tjNumber);
            if (null != order) {
                String xb= customerService.getSexByTjh(order.getTjNumber());
                String xb = customerService.getSexByTjh(order.getTjNumber());
                List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
                List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
                LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
@@ -1677,8 +1677,8 @@
                                            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());
                                            List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(replacedAll, replacedAll,
                                                    tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber, replacedAll, tjOrderDetail.getProResult());
                                            if (null != maps && !maps.isEmpty()) {
@@ -1686,16 +1686,21 @@
                                            }
                                        } else {
                                            String[] split = tjOrderDetail.getProResult().split("[。,,::.\\s]+");
                                            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) {
                                                s = s.replaceAll("\n", "").replaceAll("[((][^))]*[))]", "").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);
                                                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);
@@ -1744,72 +1749,73 @@
    private void yichangxiangmu(String tjNumber) {
        try {
            List<TjOrderYcxm> tjOrderYcxmList= ycxmService.selectListByTjh(tjNumber);
            List<TjOrderYcxm> tjOrderYcxmList = ycxmService.selectListByTjh(tjNumber);
            if(null !=tjOrderYcxmList && !tjOrderYcxmList.isEmpty()){
            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>> 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());
                                                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(maps);
                                                }
                                            }
                                            tjOrderDetail.setAdvices(mapList);
                                        }
                                            } 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);
                                    }
                                    dels.add(tjOrderDetail);
                                }
                            }
                            if (!dels.isEmpty()) {
                                parent.put("proName", remark.getProName());
                                parent.put("jyjc", remark.getJyjc());
                                parent.put("sone", dels);
                                list.add(parent);
                                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()){
                if (!collect.isEmpty()) {
                    for (Map<String, Object> map : collect) {
                        for (TjOrderDetail detail : (List<TjOrderDetail>) map.get("sone")) {
                            TjOrderYcxm ycxm = new TjOrderYcxm();
@@ -1838,7 +1844,6 @@
        ycxmService.removeById(id);
        return AjaxResult.success();
    }
    @GetMapping("/chushenyemianchakanxiangmujieguo")
@@ -1892,21 +1897,23 @@
    /**
     * 查询复查项目列表
     *
     * @param tjNum 体检号
     * @param type 复查状态 0未复查状态 1复查状态
     * @param type  复查状态 0未复查状态 1复查状态
     * @return
     */
    @GetMapping("/getFcList")
    public AjaxResult getFcList(@RequestParam("tjNum") String tjNum,@RequestParam("type") Integer type){
    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);
        List<ProFcListVo> list = detailService.getFcList(order.getOrderId(), type);
        return AjaxResult.success(list);
    }
    /**
     * 复查项目提交
     *
     * @param json
     * @return
     */
@@ -1916,4 +1923,52 @@
    }
    @GetMapping("/zongjianyishengHuiFuyichangxiangmu")
    @ApiOperation(value = "总检恢复异常项目接口")
    public AjaxResult zongjianyishengHuiFuyichangxiangmu(@RequestParam String tjNum) {
        List<TjOrderYcxm> list = ycxmService.zongjianyishengHuiFuyichangxiangmu(tjNum);
        return AjaxResult.success(list);
    }
    @GetMapping("/zongjianyishengHuiFuyichangxiangmuanniu")
    @ApiOperation(value = "总检恢复异常项目按钮接口")
    public AjaxResult zongjianyishengHuiFuyichangxiangmuanniu(@RequestParam String id) {
        int a = ycxmService.zongjianyishengHuiFuyichangxiangmuanniu(id);
        return AjaxResult.success(a);
    }
    @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();
    }
}