SAPApiController.java
6.25 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
package com.huaheng.api.sap.controller;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import com.huaheng.api.sap.domain.ZarDomain;
import com.huaheng.api.sap.service.ReturnSapTaskService;
import com.huaheng.api.sap.service.ZarApiService;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.sap.domain.ReturnSapTaskLog;
import com.huaheng.pc.sap.domain.Zarsh;
import com.huaheng.pc.sap.service.BackSapStatusService;
import com.huaheng.pc.sap.service.LockSapUniqueIdService;
import com.huaheng.pc.sap.service.ReturnSapTaskLogService;
import com.huaheng.pc.sap.service.SapTaskLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("/api/zarapi")
@Api(tags = {"入库单接口"}, value = "入库单接口receipt")
public class SAPApiController extends BaseController {
@Resource
private ZarApiService zarApiService;
@Resource
private BackSapStatusService backSapStatusService;
@Resource
private SapTaskLogService sapTaskLogService;
@Resource
private LockSapUniqueIdService lockSapUniqueIdService;
@Resource
private ReturnSapTaskService returnSapTaskService;
@Resource
private ReturnSapTaskLogService returnSapTaskLogService;
/**
* SAP下发任务单据
*/
@Log(title = "SAP下发任务单据", action = BusinessType.INSERT)
@PostMapping("/save")
@ApiOperation("SAP下发任务单据")
@ResponseBody
@ApiLogger(apiName = "SAP下发任务单据", from = "ERP")
public AjaxResult save(@RequestBody ZarDomain zarDomain) {
if (StringUtils.isNull(zarDomain)) {
throw new ServiceException("参数为空");
}
Zarsh zarsh = zarDomain.getZarsh();
if (zarsh == null) {
throw new ServiceException("zarsh参数为空");
}
if (StringUtils.isEmpty(zarsh.getUniqueId())) {
throw new ServiceException("唯一号uniqueId参数为空");
}
// 判断出库、入库,然后在判断是否空托盘出入库
if (StringUtils.isEmpty(zarsh.getLgnum())) {
throw new ServiceException("仓库号为空");
}
if (StringUtils.isEmpty(zarsh.getMFlag())) {
throw new ServiceException("入库出库标志为空");
}
AjaxResult ajaxResult = handleMultiProcess("save", new MultiProcessListener() {
@Override
public AjaxResult doProcess() {
AjaxResult ajaxResult = null;
try {
ajaxResult = zarApiService.saveSapData(zarDomain);
sapTaskLogService.addSapTaskLog(zarDomain, ajaxResult.getMsg(), 0);
if (ajaxResult.hasErr()) {
lockSapUniqueIdService.lockStaionByUniqueId(zarsh);
} else {
lockSapUniqueIdService.unlockStaionByUniqueId(zarsh);
}
} catch (Exception e) {
// 调用sap的api,传递任务状态
ajaxResult = AjaxResult.error(e.getMessage());
backSapStatusService.addBackSapStatus(zarsh.getUniqueId(), zarsh.getLgnum(), null, "1", "C", null, e.getMessage());
sapTaskLogService.addSapTaskLog(zarDomain, e.getMessage(), 1);
lockSapUniqueIdService.lockStaionByUniqueId(zarsh);
}
return ajaxResult;
}
});
// if (ajaxResult == null || ajaxResult.hasErr()) {
// String msg = ajaxResult == null ? "" : ajaxResult.getMsg();
// // 调用sap的api,传递任务状态
// backSapStatusService.addBackSapStatus(zarsh.getUniqueId(), zarsh.getLgnum(), null, "1", "C", null, msg);
// sapTaskLogService.addSapTaskLog(zarsh, msg, 1);
// } else {
// sapTaskLogService.addSapTaskLog(zarsh, null, 0);
// }
return ajaxResult;
}
/**
* SAP同步WMS库存
*/
@Log(title = "SAP同步WMS库存", action = BusinessType.INSERT)
@PostMapping("/saveSapInventory")
@ApiOperation("SAP同步WMS库存")
@ResponseBody
@ApiLogger(apiName = "SAP同步WMS库存", from = "ERP")
public AjaxResult saveSapInventory(@RequestBody List<ReturnSapTaskLog> returnSapTaskLogs) {
if (returnSapTaskLogs == null) {
return AjaxResult.error("sap同步wms:参数为空");
}
ReturnSapTaskLog returnSapTaskLog = returnSapTaskLogs.get(0);
if (StringUtils.isNull(returnSapTaskLog)) {
return AjaxResult.error("sap同步wms:参数为空");
}
if (StringUtils.isEmpty(returnSapTaskLog.getLgnum())) {
return AjaxResult.error("sap同步wms:仓库号为空");
}
if (StringUtils.isEmpty(returnSapTaskLog.getLgort())) {
return AjaxResult.error("sap同步wms:参数为空");
}
if (StringUtils.isEmpty(returnSapTaskLog.getDrum_id())) {
return AjaxResult.error("sap同步wms:库存地点不能为空");
}
if (StringUtils.isEmpty(returnSapTaskLog.getLgpla())) {
return AjaxResult.error("sap同步wms:库位不能为空");
}
AjaxResult ajaxResult = handleMultiProcess("saveSapInventory", new MultiProcessListener() {
@Override
public AjaxResult doProcess() {
AjaxResult ajaxResult = null;
try {
ajaxResult = returnSapTaskService.saveSapInventory(returnSapTaskLogs);
returnSapTaskLogService.saveReturnSapTaskLog(returnSapTaskLogs, ajaxResult.getMsg());
} catch (Exception e) {
returnSapTaskLogService.saveReturnSapTaskLog(returnSapTaskLogs, e.getMessage());
e.printStackTrace();
}
return ajaxResult;
}
});
return ajaxResult;
}
}