InStandingTaskServiceImpl.java
5.2 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
package com.huaheng.api.wcs.service.InStandingTaskHandle;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.general.domain.ReturnTask;
import com.huaheng.api.general.service.IReturnTaskService;
import com.huaheng.api.general.service.ReturnService;
import com.huaheng.api.wcs.domain.InStandingTaskDomain;
import com.huaheng.api.wcs.service.taskCancel.TaskCancelService;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.support.Convert;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.service.ConfigService;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService;
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.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
public class InStandingTaskServiceImpl implements InStandingTaskService {
@Resource
TaskHeaderService taskHeaderService;
@Resource
InventoryHeaderService inventoryHeaderService;
@Resource
InventoryDetailService inventoryDetailService;
@Resource
TaskDetailService taskDetailService;
@Resource
IReturnTaskService returnTaskService;
@Resource
private ConfigService configService;
@Resource
private TaskCancelService taskCancelService;
@Resource
private ReturnService returnService;
@Override
@Transactional
public AjaxResult instanding(InStandingTaskDomain inStandingTaskDomain) {
String value = configService.getKey(QuantityConstant.RULE_PALLET_WEIGHT);
//从配置表取到重量
int weight = Integer.parseInt(value);
//获取当前任务头
TaskHeader header = taskHeaderService.getById(inStandingTaskDomain.getTaskNo());
if (header == null) {
return AjaxResult.error("任务不存在");
}
if (inStandingTaskDomain.getWeight() < weight && inStandingTaskDomain.getContainerCode().contains("M")) {
return AjaxResult.success(2);
}
//如果是D
if ((header.getContainerCode().substring(0, 1)).equals("D"))
{
//回库
return AjaxResult.success(1);
}
if (header.getTaskType() != QuantityConstant.TASK_TYPE_EMPTYRECEIPT) {
try {
LambdaQueryWrapper<InventoryHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(InventoryHeader::getLocationCode, header.getToLocation())
.eq(InventoryHeader::getContainerCode, header.getContainerCode());
InventoryHeader one = inventoryHeaderService.getOne(lambdaQueryWrapper);
LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
inventoryDetailLambdaQueryWrapper.eq(StringUtils.isNotEmpty(header.getWarehouseCode()),
InventoryDetail::getWarehouseCode, header.getWarehouseCode())
.eq(StringUtils.isNotEmpty(header.getContainerCode()),
InventoryDetail::getContainerCode, header.getContainerCode())
.eq(StringUtils.isNotEmpty(header.getToLocation()),
InventoryDetail::getLocationCode, header.getToLocation())
.eq(StringUtils.isNotEmpty(header.getCompanyCode()),
InventoryDetail::getCompanyCode, header.getCompanyCode())
.eq(StringUtils.isNotEmpty(header.getZoneCode()),
InventoryDetail::getZoneCode, header.getZoneCode())
.eq(StringUtils.isNotEmpty("" + one.getId()),
InventoryDetail::getInventoryHeaderId, one.getId());
List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
if (inventoryDetailList != null && inventoryDetailList.size() > 0) {
for (InventoryDetail inventoryDetail : inventoryDetailList) {
String zoneCode = inventoryDetail.getZoneCode();
if (zoneCode.equals("B")) {
int taskQty = inventoryDetail.getQty().intValue() - inventoryDetail.getTaskQty().intValue();
if (taskQty != 0) {
return AjaxResult.success(1);//回库
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.success(1);//回库
}
}
return AjaxResult.success(2);
}
}