zhaowenxuan
2024-12-26 045dc3a1be1c2980458c6cf20de9e2f2efe7e15d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package com.ltkj.web.controller.callback;
 
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.mapper.TjSamplingMapper;
import com.ltkj.hosp.service.*;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.List;
import java.util.Map;
 
/**
 * 对接其他平台提供的回调服务
 */
@Slf4j
@RestController
@RequestMapping("callBack")
public class CallBackController {
    @Autowired
    private HisSyncDictService hisSyncDictService;
    @Autowired
    private ITjFlowingWaterService tjFlowingWaterService;
    @Autowired
    private ITjOrderRemarkService remarkService;
    @Autowired
    private ITjOrderDetailService tjOrderDetailService;
    @Autowired
    private ITbTransitionService transitionService;
    @Autowired
    private TjSamplingMapper tjSamplingMapper;
    @Autowired
    private TjProBlService blService;
    @Autowired
    private ITjOrderService tjOrderService;
    @Autowired
    private ITjCustomerService tjCustomerService;
    @Autowired
    private ITjOrderService orderService;
 
    /**
     * 收退费回调接口
     * @param params
     * @return
     */
    @PostMapping("pushZhiFuMsg")
    public AjaxResult pushZhiFuMsg(@RequestBody Map<String ,Object> params){
        log.info("回调 ->{}", JSONUtil.toJsonStr(params));
        String type = params.get("type").toString();
        // type 1为煤机医院传参
        // feiYongId 费用Id
        // yeWuLx 业务类型,1-收费;2-退费/作废
        if (type.equals("1")){
            String feiYongId = params.get("feiYongId").toString();
            String yeWuLx = params.get("yeWuLx").toString();
            // 收费
            if (yeWuLx.equals("1")){
                LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjFlowingWater::getHisWaterId, feiYongId);
                TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
                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());
                        }else {
                            tjOrderDetailService.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(water.getOrderId().toString(),water.getTjSerialNumber().toString());
                            remarkService.updateTjOrderRemarkSfbzByJxbzisnull(water.getOrderId().toString(),water.getTjSerialNumber().toString());
                        }
 
                    }
                }else {
                    return AjaxResult.error("查不到流水号: "+feiYongId);
                }
            }else {
                LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjFlowingWater::getHisTfWaterId, feiYongId).or().eq(TjFlowingWater::getHisWaterId, feiYongId);
                TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
                TjOrder order = orderService.getById(water.getOrderId());
                if (order != null){
                    // 退费
                    String bldh = water.getJxbz();
                    if (bldh != null){
                        remarkService.deleteTjOrderDetailByjxbz(bldh);
                        tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh);
                        tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh);
                        transitionService.deleteTjOrderDetailByjxbz(bldh);
                        blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, order.getTjNumber()).eq(TjProBl::getBldh, bldh));
                        tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(order.getTjNumber(), order.getUserId(),bldh);
                    }else {
                        tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                        tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
                        remarkService.deletedOrderRemarkByTjNum(order.getTjNumber());
                        tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
                        transitionService.deletedTbTransitionByTjNum(order.getTjNumber());
 
                        TjCustomer customer = tjCustomerService.getById(order.getUserId());
                        customer.setCardId("0");
                        tjCustomerService.updateById(customer);
                        tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
                    }
                }
            }
        }
        return AjaxResult.success();
    }
 
    @PostMapping("getZdList")
    public AjaxResult getZdList(@RequestBody Map<String ,Object> params){
        String hosp = params.get("hosp").toString();
        LambdaQueryWrapper<HisSyncDict> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(HisSyncDict::getHospId,hosp);
        List<HisSyncDict> list = hisSyncDictService.list(wrapper);
        return AjaxResult.success(list);
    }
 
}