InStandingTaskServiceImpl.java
5 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
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.wcs.domain.InStandingTaskDomain;
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.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.domain.TaskDetail;
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.ArrayList;
import java.util.List;
@Service
public class InStandingTaskServiceImpl implements InStandingTaskService {
@Resource
TaskHeaderService taskHeaderService;
@Resource
InventoryHeaderService inventoryHeaderService;
@Resource
InventoryDetailService inventoryDetailService;
@Resource
TaskDetailService taskDetailService;
@Resource
private ConfigService configService;
@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());//获取当前任务头
LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();//获取当前任务子明细
taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId, header.getId());
List<TaskDetail> details = taskDetailService.list(taskDetailLambdaQueryWrapper);
if (header.getInternalTaskType() != 200) {
throw new ServiceException("当前任务非分拣任务");
}
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);
List<InventoryDetail> removeInventoryDetailList = new ArrayList<>();
if (inventoryDetailList != null && inventoryDetailList.size() > 0) {
for (InventoryDetail inventoryDetail : inventoryDetailList) {
String zoneCode = inventoryDetail.getZoneCode();
if (zoneCode.equals("B")) {
int taskQty = inventoryDetail.getTaskQty().intValue() - inventoryDetail.getTaskQty().intValue();
if (taskQty != 0 && (inStandingTaskDomain.getWeight() > weight||inStandingTaskDomain.getWeight()==0) ) {
return AjaxResult.success(1);//回库
}
removeInventoryDetailList.add(inventoryDetail);
}
}
}
}catch (Exception e) {
e.printStackTrace();
if (inStandingTaskDomain.getWeight() > weight)
{
return AjaxResult.success(1);//回库
}
}
return AjaxResult.success(2);
}
//强制完成
}