zjh
2024-06-19 2ece722bfafa27e3ef5dd5e060ee0624e6f263a6
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -1,10 +1,15 @@
package com.ltkj.web.controller.system;
import java.io.*;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -108,6 +113,8 @@
    private ITjFlowingWaterService tjFlowingWaterService;
    @Autowired
    private HisApiGetMethodService hisApiGetMethodService;
    @Autowired
    private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
    /**
     * 该体检科室下客户列表显示接口
@@ -1413,30 +1420,64 @@
            LambdaQueryWrapper<TjOrder> tjOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
            tjOrderLambdaQueryWrapper.eq(TjOrder::getTjNumber,tjNumber);
            TjOrder tjOrder = orderService.getOne(tjOrderLambdaQueryWrapper);
            LambdaQueryWrapper<TjCustomer> tjCustomerLambdaQueryWrapper = new LambdaQueryWrapper<>();
            tjCustomerLambdaQueryWrapper.eq(TjCustomer::getCusId,tjOrder.getUserId());
            TjCustomer tjCustomer = tjCustomerService.getOne(tjCustomerLambdaQueryWrapper);
            HashMap<String, Object> hisRequestParams = new HashMap<>();
            hisRequestParams.put("card_no",tjCustomer.getCusIdcard());
            hisRequestParams.put("patientId",tjCustomer.getPationId());
            AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
            if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
                tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId,tjOrder.getOrderId());
                TjFlowingWater tjFlowingWater = tjFlowingWaterService.getOne(tjFlowingWaterLambdaQueryWrapper);
                tjFlowingWater.setPayStasus(1L);
                tjFlowingWater.setPayType(0L);
                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);
            }
            LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
            tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId,tjOrder.getOrderId());
            tjFlowingWaterLambdaQueryWrapper.ne(TjFlowingWater::getPayStasus,2);
            tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getIsAddition,"N");
            TjFlowingWater tjFlowingWater = tjFlowingWaterService.getOne(tjFlowingWaterLambdaQueryWrapper);
//            if (tjFlowingWater1.getPayStasus() != 1){
                LambdaQueryWrapper<TjCustomer> tjCustomerLambdaQueryWrapper = new LambdaQueryWrapper<>();
                tjCustomerLambdaQueryWrapper.eq(TjCustomer::getCusId,tjOrder.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(tjCustomerLambdaQueryWrapper);
                HashMap<String, Object> hisRequestParams = new HashMap<>();
                // 不在需要身份证号
//                hisRequestParams.put("card_no",tjCustomer.getCusIdcard());
                hisRequestParams.put("patientId",tjOrder.getCardId());
                AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
                if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                    List<Map<String, String>> data = (List<Map<String, String>>) queryPay.get("data");
                    ArrayList<String> sqdhs = new ArrayList<>();
                    ArrayList<String> xmfls = new ArrayList<>();
                    BigDecimal cateFeeAll = BigDecimal.ZERO;
                    for (Map<String, String> datum : data) {
                        String advId = datum.get("Adv_Id").split("_")[1];
                        BigDecimal cateFee = new BigDecimal(datum.get("CateFee"));
                        String cateCode = datum.get("CateCode");
                        cateFeeAll = cateFeeAll.add(cateFee);
                        sqdhs.add(advId);
                        xmfls.add(cateCode);
                    }
                    LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
                    queryWrapper.in(LtkjJianchajianyanTree::getSqdh, sqdhs)
                            .in(LtkjJianchajianyanTree::getXmfl, xmfls)
                            .eq(LtkjJianchajianyanTree::getCardId,tjOrder.getCardId())
                            .groupBy(LtkjJianchajianyanTree::getType)
                            .select(LtkjJianchajianyanTree::getFyhj);
                    List<LtkjJianchajianyanTree> results = ltkjJianchajianyanTreeService.list(queryWrapper);
                    BigDecimal total = results.stream()
                            .map(item -> new BigDecimal(item.getFyhj()))
                            .reduce(BigDecimal.ZERO, BigDecimal::add);
                    if (cateFeeAll.compareTo(total) != 0){
                        return AjaxResult.error("存在未缴费项目");
                    }
                    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);
                }else {
                    return AjaxResult.error("未查询到缴费记录");
                }
//            }
        }
        String config = configService.selectConfigByKey("qt_open_xdt");
        String byKey = configService.selectConfigByKey("qt_kjksid");