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.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 传 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 params) { return wmsErpService.queryLocsDetls(params); } @ApiOperation("库存明细查询(对接协议8.4)") @PostMapping("/inventory/details") public CommonResponse inventoryDetails(@RequestBody(required = false) Map params) { return wmsErpService.inventoryDetails(params); } @ApiOperation("库存汇总查询(对接协议8.5)") @PostMapping("/inventory/summary") public CommonResponse inventorySummary(@RequestBody(required = false) Map params) { return wmsErpService.inventorySummary(params); } }