ZarApiService.java
4.7 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
package com.huaheng.api.sap.service;
import com.huaheng.api.sap.domain.ZarDomain;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
import com.huaheng.pc.sap.domain.Zarsh;
import com.huaheng.pc.sap.domain.Zarsi;
import com.huaheng.pc.sap.service.BackSapStatusService;
import com.huaheng.pc.sap.service.ZarshService;
import com.huaheng.pc.sap.service.ZarsiService;
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Component
@Transactional
public class ZarApiService {
@Resource
private ZarshService zarshService;
@Resource
private ZarsiService zarsiService;
@Resource
private BackSapStatusService backSapStatusService;
@Resource
private ReceiptHeaderService receiptHeaderService;
@Resource
private ShipmentHeaderService shipmentHeaderService;
@Resource
private TaskHeaderService taskHeaderService;
@Resource
private TaskDetailService taskDetailService;
/**
*
* @param zarDomain 入库出库单
*/
public AjaxResult saveSapData(ZarDomain zarDomain) {
if(StringUtils.isNull(zarDomain)){
throw new ServiceException("参数为空");
}
List<Zarsi> zarsiList = zarDomain.getZarsiList();
Zarsh zarsh=zarDomain.getZarsh();
if(zarsiList==null||zarsiList.size()==0){
throw new ServiceException("zarsiList参数为空");
}
if(zarsh==null){
throw new ServiceException("zarsh参数为空");
}
if(StringUtils.isEmpty(zarsh.getUniqueId())){
throw new ServiceException("唯一号uniqueId参数为空");
}
Zarsh zarsh1=zarshService.checkZarshByUniqueId(zarsh.getUniqueId());
if(StringUtils.isNotEmpty(zarsh.getCFlag())&&zarsh.getCFlag().equals("D")){
//取消
return cancelTaskBySap(zarsh);
}
if(zarsh1!=null){
throw new ServiceException("单据已存在,请不要重复下发");
}
if(!zarshService.save(zarsh)){
throw new ServiceException("保存主表数据失败");
}
if(!zarsiService.saveBatch(zarsiList)){
throw new ServiceException("保存子表数据失败");
}
AjaxResult ajaxResult= zarshService.saveSapDataByApi(zarDomain);
if(ajaxResult==null||ajaxResult.hasErr()){
String msg=ajaxResult.getMsg();
//调用sap的api,传递任务状态
backSapStatusService.saveBackSapStatus(zarsh.getUniqueId(), zarsh.getLgnum(), null, 1, "C", null,msg);
}
return ajaxResult;
}
/**
* 上游系统取消任务,入库已组盘不能取消;出库已下发任务不能取消
* @param zarsh
*/
public AjaxResult cancelTaskBySap(Zarsh zarsh){
Integer mflag=zarsh.getMFlag();
String uniqueId=zarsh.getUniqueId();
Zarsh zarsh1=zarshService.checkZarshByUniqueId(zarsh.getUniqueId());
if(zarsh1!=null){
throw new ServiceException("找不到该任务,"+uniqueId);
}
switch (mflag){
case 2:
case 8:
ReceiptHeader receiptHeader=receiptHeaderService.getReceiptByReferCode(uniqueId);
if(receiptHeader==null){
throw new ServiceException("找不到该任务,"+uniqueId);
}
if(receiptHeader.getFirstStatus()> QuantityConstant.RECEIPT_HEADER_RECEIVING){
throw new ServiceException("任务已经在执行,不能取消");
}
break;
case 1:
case 3:
/*TaskHeader taskHeader=taskDetailService.getRollNumberByTaskId(uniqueId);
if(taskHeader==null){
throw new ServiceException("找不到该单据,"+uniqueId);
}*/
break;
default:
break;
}
//更新zarsh表
zarsh1.setCFlag("D");
zarshService.updateById(zarsh1);
return AjaxResult.success();
}
}