AcsReceiptService.java
5.97 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
package com.huaheng.api.acs.service;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSONException;
import com.huaheng.api.general.service.BasicDataApiService;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.exception.BusinessException;
import com.huaheng.common.utils.DataUtils;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.mobile.receipt.ReceiptBill;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.sap.domain.SapReceiptData;
import com.huaheng.pc.sap.domain.SapReceiptDetailData;
import com.huaheng.pc.sap.service.SapReceiptDataService;
import com.huaheng.pc.sap.service.SapReceiptDetailDataService;
/**
* @ClassName AcsServiceImpl
* @Description TODO
* @Author Administrator
* @Date 2019/12/2615:38
*/
@Service
public class AcsReceiptService {
private static final Logger logger = LoggerFactory.getLogger(AcsReceiptService.class);
@Resource
private SapReceiptDataService sapReceiptDataService;
@Resource
private SapReceiptDetailDataService sapReceiptDetailDataService;
@Resource
private MaterialService materialService;
@Resource
private BasicDataApiService basicDataApiService;
/**
* 商片仓拍照入库
* @param receiptBills
* @return
*/
public AjaxResult getReceiptContainerByB(List<ReceiptBill> receiptBills) {
if (receiptBills == null || receiptBills.size() <= 0) {
throw new JSONException("商片仓入库:没有信息");
}
String containerCode = receiptBills.get(0).getContainerCode();
// int area = receiptBills.get(0).getArea();
if (StringUtils.isEmpty(containerCode)) {
throw new JSONException("商片仓入库:没有托盘信息");
}
receiptBills.get(0).setArea(2);
return saveReceiptContainer(receiptBills);
}
@Transactional
public AjaxResult saveReceiptContainer(List<ReceiptBill> receiptBills) {
String containerCode = receiptBills.get(0).getContainerCode();
int area = receiptBills.get(0).getArea();
boolean tag = sapReceiptDataService.checkDataExist(containerCode, null);
if (!tag) {
throw new BusinessException("入库:请不要重复发送相同的数据");
}
SapReceiptData sapReceiptData = new SapReceiptData();
if (area == 2) {
sapReceiptData.setLgort("SF22");
sapReceiptData.setLgnum("SP2");
sapReceiptData.setFromPos("2B01");
sapReceiptData.setPlType(0);
} else if (area == 8) {
sapReceiptData.setLgort("SF21");
sapReceiptData.setLgnum("WJ2");
sapReceiptData.setFromPos(receiptBills.get(0).getFromPort());
sapReceiptData.setPlType(1);
}
sapReceiptData.setUniqueId(DataUtils.createUniqueId());
sapReceiptData.setDrumId(containerCode);
sapReceiptData.setMFlag("2");
sapReceiptData.setDatum(DateUtils.getDate());
sapReceiptData.setUzeit(DateUtils.getTimes());
sapReceiptData.setInKind(1);
if (!sapReceiptDataService.save(sapReceiptData)) {
throw new BusinessException("入库:保存信息异常");
}
saveSapReceiptDetail(receiptBills, sapReceiptData);
return AjaxResult.success();
}
public void saveSapReceiptDetail(List<ReceiptBill> receiptBills, SapReceiptData sapReceiptData) {
List<SapReceiptDetailData> list = new ArrayList<>();
for (ReceiptBill receiptBill : receiptBills) {
if (StringUtils.isEmpty(receiptBill.getMaterialCode())) {
throw new BusinessException("入库:请扫物料条码");
}
if (StringUtils.isEmpty(receiptBill.getRollNumber())) {
throw new BusinessException("入库:请扫卷号条码");
}
if (sapReceiptData.getLgnum().equals("SP2")) {
if (StringUtils.isNull(receiptBill.getContainerNumber())) {
throw new BusinessException("入库:没有位置号");
}
}
if (sapReceiptData.getLgnum().equals("WJ2")) {
if (StringUtils.isNull(receiptBill.getLevel())) {
throw new BusinessException("入库:没有等级");
}
}
if (StringUtils.isNull(receiptBill.getQty())) {
throw new BusinessException("入库:数量为空");
}
SapReceiptDetailData sapReceiptDetailData = new SapReceiptDetailData();
sapReceiptDetailData.setDrumId(sapReceiptData.getDrumId());
sapReceiptDetailData.setLgnum(sapReceiptData.getLgnum());
sapReceiptDetailData.setLgort(sapReceiptData.getLgort());
sapReceiptDetailData.setUniqueId(sapReceiptData.getUniqueId());
sapReceiptDetailData.setVerme(receiptBill.getQty());
sapReceiptDetailData.setCharg(receiptBill.getRollNumber());
sapReceiptDetailData.setMatnr(receiptBill.getMaterialCode());
Material material = materialService.getMaterialByCode(receiptBill.getMaterialCode(), QuantityConstant.WAREHOUSECODE);
if (StringUtils.isNull(material)) {
material = new Material();
material.setCode(receiptBill.getMaterialCode());
material.setName(receiptBill.getMaterialCode());
basicDataApiService.material(material);
}
list.add(sapReceiptDetailData);
}
if (!sapReceiptDetailDataService.saveBatch(list)) {
throw new BusinessException("入库:保存信息异常1");
}
}
}