|
|
1
2
3
4
|
package com.huaheng.api.sap.service;
import com.huaheng.api.sap.domain.ZarDomain;
|
|
|
5
|
import com.huaheng.api.wcs.service.taskCancel.TaskCancelService;
|
|
|
6
|
import com.huaheng.common.constant.QuantityConstant;
|
|
|
7
|
import com.huaheng.common.exception.service.ServiceException;
|
|
|
8
|
import com.huaheng.common.support.Convert;
|
|
|
9
|
import com.huaheng.common.utils.StringUtils;
|
|
|
10
|
import com.huaheng.common.utils.ZoneAreaUtils;
|
|
|
11
12
|
import com.huaheng.framework.web.domain.AjaxResult;
|
|
|
13
14
|
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
|
|
|
15
16
17
18
|
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;
|
|
|
19
|
import com.huaheng.pc.sap.service.ZarsiService;
|
|
|
20
21
|
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
|
|
|
22
|
import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
|
|
|
23
24
25
|
import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
|
|
|
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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
|
|
|
39
40
|
private ZarsiService zarsiService;
@Resource
|
|
|
41
|
private BackSapStatusService backSapStatusService;
|
|
|
42
43
44
45
46
47
48
49
|
@Resource
private ReceiptHeaderService receiptHeaderService;
@Resource
private ShipmentHeaderService shipmentHeaderService;
@Resource
private TaskHeaderService taskHeaderService;
@Resource
private TaskDetailService taskDetailService;
|
|
|
50
51
|
@Resource
private TaskCancelService taskCancelService;
|
|
|
52
|
|
|
|
53
54
55
56
57
58
59
60
61
62
63
64
|
/**
*
* @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){
|
|
|
65
|
// throw new ServiceException("zarsiList参数为空");
|
|
|
66
67
68
69
70
71
72
|
}
if(zarsh==null){
throw new ServiceException("zarsh参数为空");
}
if(StringUtils.isEmpty(zarsh.getUniqueId())){
throw new ServiceException("唯一号uniqueId参数为空");
}
|
|
|
73
74
75
76
77
78
79
80
|
Zarsh zarsh1=zarshService.checkZarshByUniqueId(zarsh.getUniqueId());
if(StringUtils.isNotEmpty(zarsh.getCFlag())&&zarsh.getCFlag().equals("D")){
//取消
return cancelTaskBySap(zarsh);
}
if(zarsh1!=null){
throw new ServiceException("单据已存在,请不要重复下发");
}
|
|
|
81
82
83
|
if(!zarshService.save(zarsh)){
throw new ServiceException("保存主表数据失败");
}
|
|
|
84
|
if(!zarsiService.saveBatchs(zarsiList,zarsh)){
|
|
|
85
86
|
throw new ServiceException("保存子表数据失败");
}
|
|
|
87
88
89
90
91
92
93
94
95
|
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;
}
|
|
|
96
97
98
99
100
101
102
103
104
105
106
|
/**
* 上游系统取消任务,入库已组盘不能取消;出库已下发任务不能取消
* @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);
}
|
|
|
107
|
AjaxResult ajaxResult=null;
|
|
|
108
109
110
111
112
113
114
115
116
117
|
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("任务已经在执行,不能取消");
}
|
|
|
118
|
ajaxResult=receiptHeaderService.removeById(receiptHeader.getId().toString());
|
|
|
119
120
121
|
break;
case 1:
case 3:
|
|
|
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
//取消任务
List<TaskDetail> list=taskHeaderService.getTaskByUnique(uniqueId);
String ids="";
for (TaskDetail detail:list){
Integer taskId=detail.getTaskId();
TaskHeader taskHeader = taskHeaderService.getById(taskId);
if(taskHeader.getStatus().intValue() <= QuantityConstant.TASK_STATUS_BUILD) {
continue;
}
String containerCode = taskHeader.getContainerCode();
if (StringUtils.isEmpty(containerCode)) {
return AjaxResult.error("空托盘");
}
//获取任务库区,调用该库区wcs
Integer area= ZoneAreaUtils.getAreaByZoneCode(taskHeader.getZoneCode());
AjaxResult ajaxResult1 = taskCancelService.cancelTask(String.valueOf(taskId),
taskHeader.getWarehouseCode(), area.toString());
if (ajaxResult1.hasErr()) {
return ajaxResult1;
}
ids=taskId+",";
}
ajaxResult=taskHeaderService.cancelTask(Convert.toIntArray(ids));
|
|
|
145
146
147
148
149
|
break;
default:
break;
}
|
|
|
150
151
152
|
if(ajaxResult==null||ajaxResult.hasErr()){
return ajaxResult;
}
|
|
|
153
154
155
|
//更新zarsh表
zarsh1.setCFlag("D");
zarshService.updateById(zarsh1);
|
|
|
156
|
return ajaxResult;
|
|
|
157
|
}
|
|
|
158
159
|
}
|