SapReceiptDataService.java
3.64 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
package com.huaheng.pc.sap.service;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.http.OkHttpUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.domain.AjaxResultSAP;
import com.huaheng.pc.config.address.service.AddressService;
import com.huaheng.pc.sap.domain.SapReceiptData;
import com.huaheng.pc.sap.domain.SapReceiptDetailData;
import com.huaheng.pc.sap.mapper.SapReceiptDataMapper;
/**
* Created by Cotter on 2023/2/1.
* @author zhouhong
*/
@Service
public class SapReceiptDataService extends ServiceImpl<SapReceiptDataMapper, SapReceiptData> {
@Resource
private SapReceiptDetailDataService sapReceiptDetailDataService;
@Resource
private AddressService addressService;
public Boolean checkDataExist(String containerCode, String rollNumber) {
LambdaQueryWrapper<SapReceiptData> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(SapReceiptData::getDrumId, containerCode);
queryWrapper.eq(SapReceiptData::getDatum, DateUtils.getDate());
List<SapReceiptData> list = this.list(queryWrapper);
if (list != null && list.size() > 0) {
return false;
}
return true;
}
public AjaxResult sendSapReceipts() {
LambdaQueryWrapper<SapReceiptData> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(SapReceiptData::getStatus, 1);
queryWrapper.orderByAsc(SapReceiptData::getId);
List<SapReceiptData> list = this.list(queryWrapper);
for (SapReceiptData sapReceiptData : list) {
try {
sendSapReceipt(sapReceiptData);
} catch (Exception e) {
}
}
return AjaxResult.success();
}
public void sendSapReceipt(SapReceiptData sapReceiptData) {
String uniqueId = sapReceiptData.getUniqueId();
List<SapReceiptDetailData> detaillist = sapReceiptDetailDataService.findListByHeaderId(uniqueId);
sapReceiptData.setItem_data(detaillist);
String JsonParam = sapReceiptData.toString();
AjaxResultSAP tag = sendReceiptToSap(JsonParam);
// 回传成功修改回传状态
sapReceiptData.setLastUpdated(new Date());
if (!tag.hasErr()) {
// 1未回传 2已回传
sapReceiptData.setStatus(2);
this.updateById(sapReceiptData);
} else {
sapReceiptData.setSendNum(sapReceiptData.getSendNum() + 1);
sapReceiptData.setStatus(3);
sapReceiptData.setSapMsg(tag.getMsg());
this.updateById(sapReceiptData);
}
}
public AjaxResultSAP sendReceiptToSap(String JsonParam) {
String url = addressService.selectAddress(QuantityConstant.PLATFORM_SAP_RECEIPT, QuantityConstant.WAREHOUSECODE, null);
// System.out.println(JsonParam);
String result = OkHttpUtils.bodypost(url, JsonParam);
if (StringUtils.isEmpty(result)) {
return AjaxResultSAP.error("接口地址错误或返回为空");
}
result = result.replaceAll("\\u0000", "");
result = result.replaceAll("\"", "");
if ("SUCCESS".equals(result)) {
return AjaxResultSAP.success(result);
}
return AjaxResultSAP.error(result);
}
}