zjh
2025-01-09 9017efdeaa64c6d5f0fd0bae4c9f28dcfcf53220
ltkj-admin/src/main/java/com/ltkj/web/controller/callback/CallBackController.java
@@ -1,11 +1,22 @@
package com.ltkj.web.controller.callback;
import cn.hutool.core.util.StrUtil;
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.update.LambdaUpdateWrapper;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.mapper.TjProjectMapper;
import com.ltkj.hosp.mapper.TjSamplingMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.system.service.ISysConfigService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.controller.system.TjOrderController;
import com.ltkj.web.wxUtils.HttpClientUtils;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -13,8 +24,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 对接其他平台提供的回调服务
@@ -43,6 +57,14 @@
    private ITjCustomerService tjCustomerService;
    @Autowired
    private ITjOrderService orderService;
    @Autowired
    private TjProjectMapper tjProjectMapper;
    @Autowired
    private ISysConfigService sysConfigService;
    @Autowired
    private TjOrderController tjOrderController;
    @Autowired
    private ISysUserService userService;
    /**
     * 收退费回调接口
@@ -64,8 +86,36 @@
                LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjFlowingWater::getHisWaterId, feiYongId);
                TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
                water.setPayStasus(1L);
                tjFlowingWaterService.updateById(water);
                if(null !=water){
                    water.setPayStasus(1L);
                    if (tjFlowingWaterService.updateById(water)) {
                        String jxbz = water.getJxbz();
                        if(StringUtil.isNotBlank(jxbz)){
                            tjOrderDetailService.updateTjOrderDetailsFlowingWaterIdByJxbz(water.getOrderId().toString(),jxbz,water.getTjSerialNumber().toString());
                            remarkService.updateTjOrderRemarkSfbzByJxbz(water.getOrderId().toString(),jxbz,water.getTjSerialNumber().toString());
//                            LambdaUpdateWrapper<TjSampling> wrapper1 = new LambdaUpdateWrapper<>();
//                            wrapper1.eq(TjSampling::getJxbz,jxbz);
//                            wrapper1.set(TjSampling::getIsPay,1);
//                            tjSamplingService.update(wrapper1);
                        }else {
                            tjOrderDetailService.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(water.getOrderId().toString(),water.getTjSerialNumber().toString());
                            remarkService.updateTjOrderRemarkSfbzByJxbzisnull(water.getOrderId().toString(),water.getTjSerialNumber().toString());
//                            LambdaUpdateWrapper<TjSampling> wrapper1 = new LambdaUpdateWrapper<>();
//                            wrapper1.isNull(TjSampling::getJxbz);
//                            wrapper1.set(TjSampling::getIsPay,1);
//                            tjSamplingService.update(wrapper1);
                        }
                        SysUser user = null;
                        if (water.getCreateId()!= null)
                            user = userService.getById(water.getCreateId());
                        else user = userService.getById(1L);
                        TjOrder tjOrder = orderService.getById(water.getOrderId());
                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(water.getOrderId());
                        tjOrderController.addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, user, null);
                    }
                }else {
                    return AjaxResult.error("查不到流水号: "+feiYongId);
                }
            }else {
                LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjFlowingWater::getHisTfWaterId, feiYongId).or().eq(TjFlowingWater::getHisWaterId, feiYongId);
@@ -74,6 +124,7 @@
                if (order != null){
                    // 退费
                    String bldh = water.getJxbz();
//                    lisRevoke(water.getTjNumber(),bldh);
                    if (bldh != null){
                        remarkService.deleteTjOrderDetailByjxbz(bldh);
                        tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh);
@@ -99,6 +150,50 @@
        return AjaxResult.success();
    }
    private void lisRevoke(String tjNum,String jxbz){
        LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TjSampling::getTjNum,tjNum);
        if (StrUtil.isNotBlank(jxbz))
            wrapper.eq(TjSampling::getJxbz,jxbz);
        List<TjSampling> list = tjSamplingMapper.selectList(wrapper);
        List<TjSampling> isMergeList = list.stream().filter(i -> i.getIsMerge() == 1).collect(Collectors.toList());
        JSONArray array = JSONUtil.createArray();
        for (TjSampling sampling : isMergeList) {
            String[] proIds = sampling.getProId().split(",");
            for (String proId : proIds) {
                JSONObject object = JSONUtil.createObj();
                TjProject project = tjProjectMapper.selectById(proId);
                object.putOpt("txm",sampling.getJyxh());
                object.putOpt("sfxmid",project.getProId());
                object.putOpt("sfxmname",project.getProName());
                object.putOpt("primaryKey",proId);
                array.add(object);
            }
            list = list.stream().filter(i -> !i.getProId().equals(sampling.getProId())).collect(Collectors.toList());
        }
        for (TjSampling sampling : list) {
            String proId = sampling.getProId();
            JSONObject object = JSONUtil.createObj();
            TjProject project = tjProjectMapper.selectById(proId);
            object.putOpt("txm",sampling.getJyxh());
            object.putOpt("sfxmid",project.getProId());
            object.putOpt("sfxmname",project.getProName());
            object.putOpt("primaryKey",proId);
            array.add(object);
        }
        String apiUrl = sysConfigService.selectConfigByKey("common_api_url");
        String hospbm = sysConfigService.selectConfigByKey("common_api_service_hospbm");
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("list",array);
        String post = HttpClientUtils.sendPost(apiUrl + "/api/lis/"+ hospbm +"/revoke", hashMap);
    }
    /**
     * 获取所有的His字典集合
     * @param params
     * @return
     */
    @PostMapping("getZdList")
    public AjaxResult getZdList(@RequestBody Map<String ,Object> params){
        String hosp = params.get("hosp").toString();
@@ -108,4 +203,29 @@
        return AjaxResult.success(list);
    }
    /**
     * 获取所有的检验项目
     * @param params
     * @return
     */
    @PostMapping("getLisXmList")
    public AjaxResult getLisXmList(@RequestBody Map<String ,Object> params){
        List<Map<String, Object>> list = tjProjectMapper.getLisViewList();
        return AjaxResult.success(list);
    }
    /**
     * Lis确认撤销回调
     * @param params
     * @return
     */
    @PostMapping("lisRevoke")
    public AjaxResult lisRevoke(@RequestBody Map<String ,Object> params){
        List<String> keys = (List<String>) params.get("keys");
        String czy = params.get("czy").toString();
        String hospid = params.get("hospid").toString();
        return AjaxResult.success();
    }
}