cl
9 小时以前 f72dd902d364419b9522b48d005e9501d0df250d
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
127
128
129
130
package com.vincent.rsf.openApi.controller;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.openApi.entity.dto.CommonResponse;
import com.vincent.rsf.openApi.entity.params.ErpMatnrParms;
import com.vincent.rsf.openApi.entity.params.ErpOpParams;
import com.vincent.rsf.openApi.entity.params.ReportParams;
import com.vincent.rsf.openApi.service.WmsErpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
import java.util.Objects;
 
@RestController
@RequestMapping({"/erp","/cloudwms"})
@Api("ERP接口对接")
public class WmsErpController {
 
    @Autowired
    private WmsErpService wmsErpService;
 
    /**
     * @author Ryan
     * @date 2025/9/27
     * @description: 订单信息查询
     * @version 1.0
     */
    @ApiOperation("订单信息查询")
    @PostMapping("/order")
    public CommonResponse getOrders(@RequestBody ErpOpParams params) {
        if (Objects.isNull(params)) {
            throw new CoolException("参数不能为空!!");
        }
        return wmsErpService.getOrderInfo(params);
    }
 
 
    /**
     * 入/出库通知单下发(对接协议 8.3):新增/修改/取消。operateType 1新增 2修改 3取消,不传或 1/2 时有则更新、无则新增;3 时按取消。
     * @param params 单据参数(含 orderNo、orderItems、operateType 等,见对接文档)
     * @return 操作结果
     */
    @ApiOperation("新增单据(兼容修改、取消)")
    @PostMapping("/order/add")
    public CommonResponse orderAdd(@RequestBody ErpOpParams params) {
        if (Objects.isNull(params)) {
            throw new CoolException("参数不能为空!!");
        }
        return wmsErpService.addOrUpdateOrder(params);
    }
 
    /**
     * 多条入/出库通知单下发;逐条等同 /order/add,失败条见 data.items,有失败时本地事务回滚。
     */
    @ApiOperation("批量新增单据(兼容修改、取消)")
    @PostMapping("/order/addAll")
    public CommonResponse orderAddAll(@RequestBody List<ErpOpParams> paramsList) {
        if (paramsList == null || paramsList.isEmpty()) {
            throw new CoolException("参数不能为空!!");
        }
        return wmsErpService.addOrUpdateOrders(paramsList);
    }
 
    /**
     * 取消订单/取消单据。与 /order/add 传 operateType=3 的取消逻辑一致,均转发立库 sync/orders/delete。
     * @param params 至少包含 orderNo,可选 orderItems
     */
    @ApiOperation("取消订单")
    @PostMapping({"/order/cancel", "/order/del"})
    public CommonResponse orderCancel(@RequestBody ErpOpParams params) {
        if (Objects.isNull(params)) {
            throw new CoolException("参数不能为空!!");
        }
        return wmsErpService.orderCancel(params);
    }
 
    /**
     * 物料基础信息同步(对接协议 8.2)
     * 支持 operateType:1新增 2修改 3禁用 4启用;请求体支持协议字段 matNr/makTx 与 matnr/maktx。
     */
    @ApiOperation("基础物料信息同步(支持 operateType、matNr/makTx)")
    @PostMapping("/mat/sync/auth/v1")
    public CommonResponse syncMatnrs(@RequestBody ErpMatnrParms parms) {
        if (Objects.isNull(parms)) {
            throw new CoolException("参数不能为空!!");
        }
        return wmsErpService.syncMatnrs(parms);
    }
 
 
//    @ApiOperation("订单信息上报")
//    @PostMapping("/report/order")
//    public CommonResponse reportOrders(@RequestBody ReportParams params) {
//        if (Objects.isNull(params)) {
//            throw new CoolException("参数不能为空!!");
//        }
//        return wmsErpService.reportOrders(params);
//    }
//
//    @ApiOperation("盘点差异修改")
//    @PostMapping("/check/locitem/update")
//    public CommonResponse reportCheck(@RequestBody ReportParams params) {
//        return wmsErpService.reportCheck(params);
//    }
 
    @ApiOperation("库位信息查询")
    @PostMapping("/query/locs/detls")
    public CommonResponse queryLocsDetls(@RequestBody Map<String, Object> params) {
        return wmsErpService.queryLocsDetls(params);
    }
 
    @ApiOperation("库存明细查询(对接协议8.4)")
    @PostMapping("/inventory/details")
    public CommonResponse inventoryDetails(@RequestBody(required = false) Map<String, Object> params) {
        return wmsErpService.inventoryDetails(params);
    }
 
    @ApiOperation("库存汇总查询(对接协议8.5)")
    @PostMapping("/inventory/summary")
    public CommonResponse inventorySummary(@RequestBody(required = false) Map<String, Object> params) {
        return wmsErpService.inventorySummary(params);
    }
 
}