zjh
9 天以前 57e9aceebe283f45bac772a58f43e88dcb3b1753
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1040,11 +1040,11 @@
            }
            tjReservation.setIsExpire(1);
            tjReservationService.updateById(tjReservation);
            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
                tjOrder.setTjType("1");
            } else if (tjOrder.getTjType().equals("2")) {
                tjOrder.setTjType("2");
            }
//            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
//                tjOrder.setTjType("1");
//            } else if (tjOrder.getTjType().equals("2")) {
//                tjOrder.setTjType("2");
//            }
        }
        if (StringUtil.isBlank(tjOrder.getFirmId())) {
            tjOrder.setFirmId("0");
@@ -1506,6 +1506,21 @@
            List<TbTransition> list = tbTransitionService.list(wrapper);
            BigDecimal zongjia = new BigDecimal("0.0");
            // his直接单开体检费单项目总价编码
            String tjfhisxmbm = configService.selectConfigByKey("tjfhisxmbm");
            // 是否开启his直接单开体检费单项目 N使用明细开单 其他都为单项目开总价
            String lycdzjhmxj = configService.selectConfigByKey("lycdzjhmxj");
            // 是否使用his价格传递规则 Y开启
            String sfsyhisjgrule = configService.selectConfigByKey("sfsyhisjgrule");
            // his价格传递规则保留得位数 默认2位
            String sfsyhisjgrulebaoliuweishu = configService.selectConfigByKey("sfsyhisjgrulebaoliuweishu");
            // his价格传递规则 1四舍五入 2直接舍去
            String sfsyhisjgrulesconfig = configService.selectConfigByKey("sfsyhisjgrulesconfig");
            // 传递项目是否使用his科室
            String isUseHisKs = configService.selectConfigByKey("isCreateMenZhenFyUseHisKs");
            String createMenZhenFyZJUseHisKs = configService.selectConfigByKey("createMenZhenFyZJUseHisKs");
            for (TbTransition transition : list) {
                LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.eq(TjProject::getProId, transition.getProId());
@@ -1520,17 +1535,63 @@
                int sl = 1;
                BigDecimal danjia = transition.getNowPrice();
                BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
                if (StrUtil.isNotBlank(sfsyhisjgrule) && sfsyhisjgrule.equalsIgnoreCase("Y")){
                    int baoliuweishu = 2;
                    if (StrUtil.isNotBlank(sfsyhisjgrulebaoliuweishu)){
                        try {
                            baoliuweishu = Integer.parseInt(sfsyhisjgrulebaoliuweishu);
                        } catch (NumberFormatException e) {
                            log.error("his价格传递规则保留位数转换异常 配置值->{}\n{}{}",sfsyhisjgrulebaoliuweishu,e,e.getMessage());
                            return AjaxResult.error();
                        }
                    }
                    if (StrUtil.isNotBlank(sfsyhisjgrulesconfig) && !sfsyhisjgrulesconfig.equalsIgnoreCase("1")){
                        // 其他自定义的规则计算方法
                    }else {
                        // 四舍五入
                        danjia = danjia.setScale(baoliuweishu, RoundingMode.HALF_UP);
                        allPrice = danjia.multiply(new BigDecimal(sl)).setScale(baoliuweishu, RoundingMode.HALF_UP);
                    }
                }
                obj.putOpt("danJia", danjia);
                obj.putOpt("jieSuanJe", allPrice);
                obj.putOpt("shuliang", sl);
                obj.putOpt("zhiXingKs", dept.getDeptId());
                obj.putOpt("zhiXingKsMc", dept.getDeptName());
                if (isUseHisKs.equalsIgnoreCase("Y")){
                    obj.putOpt("zhiXingKs", dept.getHisksid());
                    obj.putOpt("zhiXingKsMc", dept.getHisksmc());
                }else {
                    obj.putOpt("zhiXingKs", dept.getDeptId());
                    obj.putOpt("zhiXingKsMc", dept.getDeptName());
                }
                obj.putOpt("shouFeiXmId", project.getHisXmbm());
                obj.putOpt("shouFeiXmMc", project.getHisXmmc());
                array.add(obj);
                zongjia = zongjia.add(allPrice);
            }
            map.put("feiYongInfoList", array);
            if(StringUtil.isNotBlank(lycdzjhmxj) && lycdzjhmxj.equalsIgnoreCase("N")){
                map.put("feiYongInfoList", array);
            }else {
                zongjia = tjFlowingWater.getPaidIn();
                JSONArray zjarray = JSONUtil.createArray();
                JSONObject obj = JSONUtil.createObj();
                int sl = 1;
                obj.putOpt("danJia", zongjia);
                obj.putOpt("jieSuanJe", zongjia);
                obj.putOpt("shuliang", sl);
                if (isUseHisKs.equalsIgnoreCase("Y")){
                    if (StrUtil.isBlank(createMenZhenFyZJUseHisKs)) return AjaxResult.error();
                    obj.putOpt("zhiXingKs", createMenZhenFyZJUseHisKs);
                }else {
                    obj.putOpt("zhiXingKs", "100");
                }
                obj.putOpt("zhiXingKsMc","体检中心");
                obj.putOpt("shouFeiXmId", tjfhisxmbm);
                obj.putOpt("shouFeiXmMc", "体检费");
                zjarray.add(obj);
                map.put("feiYongInfoList", zjarray);
            }
            log.info("调用His接口前 收费总价:{}", zongjia.toString());
            String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
@@ -3214,13 +3275,14 @@
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        if (null != order) {
//            String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
//            if (null != payByTjNum) {
//                return AjaxResult.error("该用户已收费不可撤销签到!");
//            }
            if (null != order.getFinishTime()) return AjaxResult.error("该人员已签离,不可撤销!!!");
            Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
            String username = SecurityUtils.getUsername();
            LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjCustomer::getCusId, order.getUserId());
            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
            String s = configService.selectConfigByKey("is_request_common_his_api");
//            if (null != s && s.equals("Y") && "2".equals(order.getTjType())) {
@@ -3234,9 +3296,7 @@
                wrapper1.eq(TjFlowingWater::getOrderId, order.getOrderId());
                wrapper1.orderByDesc(TjFlowingWater::getJxbz);
                List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
                LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjCustomer::getCusId, order.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
                for (TjFlowingWater water : list) {
                    if (water.getPayStasus() == 0L) {
@@ -3246,24 +3306,31 @@
                    }
                }
                log.info("工号为: "+username+" 的用户即将撤销 体检号为:"+tjNum+" 的体检记录;" );
                AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, tjNum);
                if (error != null && !error.get("code").toString().equals("200")) return error;
                if (error != null && !error.get("code").toString().equals("200")){
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+tjNum+" 并且未支付的体检记录;" );
                    return error;
                }
                AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, tjNum);
                if (error1 != null && !error.get("code").toString().equals("200")) return error1;
                if (error1 != null && !error.get("code").toString().equals("200"))
                {
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+tjNum+" 并且已支付的体检记录;" );
                    return error1;
                }
            } else {
                tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                tjCustomer.setCardId("0");
                tjCustomerService.updateById(tjCustomer);
/*                tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
                remarkService.deletedOrderRemarkByTjNum(tjNum);
                tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
                transitionService.deletedTbTransitionByTjNum(tjNum);
                ycxmService.delOrderYcXmJyByTjh(tjNum);
                TjCustomer customer = tjCustomerService.getById(order.getUserId());
                customer.setCardId("0");
                tjCustomerService.updateById(customer);
                xdPictureService.deleteTjXdPictureBytjNum(tjNum);
                tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());
                tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());*/
                tjOrderService.removeById(order.getOrderId());
            }
            String configByKey = configService.selectConfigByKey("sfkqdyhis");
@@ -3471,11 +3538,9 @@
    public AjaxResult revokeTjOrderByTjh(@RequestParam @ApiParam(value = "体检号") String tjNum) {
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        String username = SecurityUtils.getUsername();
        log.info("工号为: "+username+" 的用户即将强制撤销 体检号为:"+tjNum+" 的体检记录;" );
        if (null != order) {
//            String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
//            if (null != payByTjNum) {
//                return AjaxResult.error("该用户已收费不可撤销签到!");
//            }
            //这里删除的是这个人所有项目包括补录项目
            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
            tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
@@ -3533,7 +3598,10 @@
        }
        TjOrder order = tjOrderService.getOrderByTjNum(dto.getTjh());
        String username = SecurityUtils.getUsername();
        if (null != order) {
            log.info("工号为: "+username+" 的用户即将撤销 体检号为:"+dto.getTjh()+"补录单号为: " + dto.getBldhs()+ " 的 补录体检记录;" );
            String configByKey = configService.selectConfigByKey("sfkqdyhis");
            if (null != configByKey && configByKey.equals("Y")) {
                log.info("dto的数据是" + JSONUtil.toJsonStr(dto));
@@ -3595,10 +3663,18 @@
                wrapper.eq(TjCustomer::getCusId, order.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
                AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, dto.getTjh());
                if (error != null && !error.get("code").toString().equals("200")) return error;
                if (error != null && !error.get("code").toString().equals("200"))
                {
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+dto.getTjh()+"补录单号为: " + dto.getBldhs()+ " 并且未支付的补录体检记录;" );
                    return error;
                }
                AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, dto.getTjh());
                if (error1 != null && !error.get("code").toString().equals("200")) return error1;
                if (error1 != null && !error.get("code").toString().equals("200"))
                {
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+dto.getTjh()+"补录单号为: " + dto.getBldhs()+ " 并且已支付的补录体检记录;" );
                    return error1;
                }
                return AjaxResult.success();
            } else {
                try {
@@ -3723,12 +3799,13 @@
                            tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh);
                        } else {
                            //这里删除的是这个人所有项目包括补录项目
                            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                /*            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                            tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
                            remarkService.deletedOrderRemarkByTjNum(tjNum);
                            tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
                            transitionService.deletedTbTransitionByTjNum(tjNum);
                            tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
                            tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());*/
                            tjOrderService.removeById(order.getOrderId());
                        }
                    }