|
1
2
3
|
package com.huaheng.mobile.receipt;
import com.alibaba.fastjson.JSONException;
|
|
4
|
import com.huaheng.common.utils.security.ShiroUtils;
|
|
5
6
7
8
|
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.general.container.service.IContainerService;
|
|
9
|
import com.huaheng.pc.general.location.domain.Location;
|
|
10
11
12
13
|
import com.huaheng.pc.general.location.service.ILocationService;
import com.huaheng.pc.general.material.domain.Material;
import com.huaheng.pc.general.material.service.IMaterialService;
import com.huaheng.pc.receipt.receiptContainerDetail.service.IReceiptContainerDetailService;
|
|
14
15
|
import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerView;
import com.huaheng.pc.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService;
|
|
16
|
import com.huaheng.pc.receipt.receiptDetail.service.IReceiptDetailService;
|
|
17
|
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
|
|
18
19
20
21
|
import com.huaheng.pc.receipt.receiptHeader.service.IReceiptHeaderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
|
|
22
|
import org.apache.poi.ss.formula.functions.T;
|
|
23
24
|
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
|
|
25
|
import java.util.ArrayList;
|
|
26
27
28
29
30
31
32
33
34
35
36
|
import java.util.List;
import java.util.Map;
@CrossOrigin
@RestController
@RequestMapping("/mobile/receipt/batch")
@Api(tags = {"MobileBatchReceiptController"}, description = "移动端收货")
public class MobileBatchReceiptController {
@Resource
private IReceiptContainerHeaderService receiptContainerHeaderService;
|
|
37
38
39
40
41
42
43
44
45
46
|
@Resource
private IMaterialService materialService;
@Resource
private ILocationService locationService;
@Resource
private IReceiptHeaderService receiptHeaderService;
@Resource
private IReceiptDetailService receiptDetailService;
@Resource
private IReceiptContainerDetailService receiptContainerDetailService;
|
|
47
48
49
50
51
52
53
|
@PostMapping("/scanBill")
@ApiOperation("移动端扫描入库单")
@Log(title = "移动端扫描入库单", action = BusinessType.OTHER)
public AjaxResult scanBill(@RequestBody @ApiParam(value="收货单号") Map<String, String> param) throws Exception {
if (param.get("code") == null || param.get("code").trim().length() < 1)
throw new JSONException("收货单号(code)不能为空");
|
|
54
|
AjaxResult result = receiptContainerHeaderService.scanReceiptCode(param.get("code"));
|
|
55
56
57
58
59
60
61
62
63
|
return result;
}
@PostMapping("/scanContainer")
@ApiOperation("移动端入库扫描容器")
@Log(title = "移动端入库扫描容器", action = BusinessType.OTHER)
public AjaxResult scanContainer(@RequestBody @ApiParam(value="容器号") Map<String, String> param) throws Exception {
if (param.get("code") == null || param.get("code").trim().length() < 1)
throw new JSONException("容器号(code)不能为空");
|
|
64
65
|
ReceiptContainerView receiptContainerView = new ReceiptContainerView();
receiptContainerView.setReceiptContainerCode(param.get("code"));
|
|
66
|
receiptContainerView.setTaskType((short)100);
|
|
67
|
AjaxResult result = receiptContainerHeaderService.checkContainer(receiptContainerView);
|
|
68
69
70
71
72
73
|
return result;
}
@PostMapping("/save")
@ApiOperation("移动端收货保存")
@Log(title = "移动端收货保存", action = BusinessType.OTHER)
|
|
74
|
public AjaxResult save(@RequestBody @ApiParam(value="收货单") List<ReceiptContainerView> record) throws Exception {
|
|
75
|
AjaxResult result = receiptContainerHeaderService.batchSave(record);
|
|
76
77
78
|
return result;
}
|
|
79
80
81
82
83
84
85
|
@PostMapping("/getMaterial")
@ApiOperation("移动端获取物料信息")
@Log(title = "移动端获取物料信息", action = BusinessType.OTHER)
public AjaxResult getMaterial(@RequestBody @ApiParam(value="物料号") Map<String, String> param) throws Exception {
if (param.get("code") == null || param.get("code").trim().length() < 1)
throw new JSONException("容器号(code)不能为空");
|
|
86
87
88
89
|
if (param.get("companyCode") == null || param.get("companyCode").trim().length() < 1)
throw new JSONException("(companyCode)不能为空");
if (param.get("companyId") == null || param.get("companyId").trim().length() < 1)
throw new JSONException("(companyId)不能为空");
|
|
90
|
Material material = materialService.getMaterial(param.get("code"));
|
|
91
92
93
94
95
96
|
if(material == null) {
return AjaxResult.error("没有该物料");
}
MaterialInfo materialInfo = new MaterialInfo();
materialInfo.setMaterialCode(material.getCode());
materialInfo.setMaterialName(material.getName());
|
|
97
|
materialInfo.setType(material.getSpecification());
|
|
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
return AjaxResult.success(materialInfo);
}
@PostMapping("/checkLocation")
@ApiOperation("移动端验证库位")
@Log(title = "移动端验证库位", action = BusinessType.OTHER)
public AjaxResult checkLocation(@RequestBody @ApiParam(value="物料号") Map<String, String> param) throws Exception {
if (param.get("code") == null || param.get("code").trim().length() < 1)
throw new JSONException("容器号(code)不能为空");
boolean result = locationService.checkLocation(param.get("code"));
if(!result) {
return AjaxResult.error("没有该库位");
}
return AjaxResult.success(result);
}
@PostMapping("/quickSaveGoods")
@ApiOperation("移动端收货保存")
@Log(title = "移动端收货保存", action = BusinessType.OTHER)
public AjaxResult quickSaveGoods(@RequestBody @ApiParam(value="收货单") List<ReceiptBill> receiptBills) throws Exception {
if (receiptBills == null || receiptBills.size() <=0) {
throw new JSONException("没有收货信息");
}
|
|
121
|
ReceiptContainerView record = new ReceiptContainerView();
|
huhai
authored
|
122
|
record.setReceiptContainerCode(receiptBills.get(0).getReceiptContainerCode());
|
|
123
|
record.setLocationCode(receiptBills.get(0).getLocationCode());
|
huhai
authored
|
124
|
record.setTaskType((short)100);
|
|
125
126
|
record.setCompanyId(receiptBills.get(0).getCompanyId());
record.setCompanyCode(receiptBills.get(0).getCompanyCode());
|
huhai
authored
|
127
|
receiptContainerHeaderService.checkContainer(record);
|
|
128
|
receiptContainerHeaderService.mobileCheckLocationCode(record);
|
|
129
|
int receiptHeaderId = receiptHeaderService.createTodayHeader(receiptBills.get(0).getCompanyId(), receiptBills.get(0).getCompanyCode());
|
|
130
|
ReceiptHeader receiptHeader = receiptHeaderService.selectEntityById(receiptHeaderId);
|
|
131
|
List<Integer> receiptDetailIds = receiptDetailService.insertTodayReceiptDetail(receiptHeaderId, receiptBills, true, receiptBills.get(0).getCompanyId(), receiptBills.get(0).getCompanyCode());
|
|
132
|
if(receiptDetailIds != null && receiptDetailIds.size() > 0) {
|
|
133
|
int containerHeaderId = receiptContainerHeaderService.insertTodayReceiptContainerHeader(receiptBills.get(0), receiptHeader.getCode());
|
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
if(containerHeaderId > 0) {
List<Integer> receiptContainerDetailIds = receiptContainerDetailService.insertTodayReceiptcContainerDetail(containerHeaderId, receiptHeaderId, receiptDetailIds, receiptBills);
if(receiptContainerDetailIds != null && receiptContainerDetailIds.size() > 0) {
} else {
return AjaxResult.error("入库组盘失败");
}
} else {
return AjaxResult.error("插入入库容器表单头失败");
}
} else {
return AjaxResult.error("插入入库明细表单失败");
}
return AjaxResult.success("收货成功");
}
|
|
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
@PostMapping("/replenishWarehouse")
@ApiOperation("移动端补充入库")
@Log(title = "移动端补充入库", action = BusinessType.OTHER)
public AjaxResult replenishWarehouse(@RequestBody @ApiParam(value="收货单") List<ReceiptBill> receiptBills) throws Exception {
if (receiptBills == null || receiptBills.size() <=0) {
throw new JSONException("没有收货信息");
}
Location condition = new Location();
condition.setCode(receiptBills.get(0).getLocationCode());
condition.setWarehouseId(ShiroUtils.getWarehouseId());
condition.setDeleted(false);
Location location1 = locationService.selectFirstEntity(condition);
if(location1 == null) {
return AjaxResult.error("没有该库位");
}
String containerCode = location1.getContainerCode();
|
|
166
167
168
169
|
ReceiptContainerView receiptContainerView2 = new ReceiptContainerView();
receiptContainerView2.setReceiptContainerCode(containerCode);
receiptContainerView2.setTaskType((short) 200);
receiptContainerView2.setLocationCode(location1.getCode());
|
|
170
171
|
receiptContainerView2.setCompanyId(receiptBills.get(0).getCompanyId());
receiptContainerView2.setCompanyCode(receiptBills.get(0).getCompanyCode());
|
|
172
|
receiptContainerHeaderService.checkContainer(receiptContainerView2);
|
|
173
|
receiptContainerHeaderService.mobileCheckLocationCode(receiptContainerView2);
|
|
174
|
int receiptHeaderId = receiptHeaderService.createTodayHeader(receiptBills.get(0).getCompanyId(), receiptBills.get(0).getCompanyCode());
|
|
175
|
ReceiptHeader receiptHeader = receiptHeaderService.selectEntityById(receiptHeaderId);
|
|
176
177
|
List<Integer> receiptDetailIds = receiptDetailService.insertTodayReceiptDetail(receiptHeaderId,
receiptBills, false, receiptBills.get(0).getCompanyId(), receiptBills.get(0).getCompanyCode());
|
|
178
179
180
181
182
183
184
185
186
187
|
List<ReceiptContainerView> receiptContainerViews = new ArrayList<>();
for(int i=0; i<receiptBills.size(); i++) {
ReceiptBill receiptBill = receiptBills.get(i);
ReceiptContainerView receiptContainerView = new ReceiptContainerView();
receiptContainerView.setTaskType((short) 200);
receiptContainerView.setReceiptContainerCode(containerCode);
receiptContainerView.setQty(receiptBill.getQty());
receiptContainerView.setLocationCode(receiptBills.get(0).getLocationCode());
receiptContainerView.setReceiptCode(receiptHeader.getCode());
receiptContainerView.setReceiptDetailId(receiptDetailIds.get(i));
|
|
188
189
|
receiptContainerView.setCompanyId(receiptBill.getCompanyId());
receiptContainerView.setCompanyCode(receiptBill.getCompanyCode());
|
|
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
receiptContainerViews.add(receiptContainerView);
}
return receiptContainerHeaderService.batchSave(receiptContainerViews);
}
@PostMapping("/getContainerCode")
@ApiOperation("移动端验证库位")
@Log(title = "移动端验证库位", action = BusinessType.OTHER)
public AjaxResult getContainerCode(@RequestBody @ApiParam(value="物料号") Map<String, String> param) throws Exception {
if (param.get("code") == null || param.get("code").trim().length() < 1)
throw new JSONException("容器号(code)不能为空");
Location condition = new Location();
condition.setCode(param.get("code"));
condition.setWarehouseId(ShiroUtils.getWarehouseId());
condition.setDeleted(false);
Location location = locationService.selectFirstEntity(condition);
if(location == null) {
return AjaxResult.error("没有该库位");
}
return AjaxResult.success("成功", location.getContainerCode());
}
|
|
211
|
}
|