|
1
2
3
4
5
6
|
package com.huaheng.pc.task.taskHeader.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
7
8
|
import com.huaheng.api.wcs.service.taskCancel.TaskCancelService;
import com.huaheng.common.constant.QuantityConstant;
|
|
9
|
import com.huaheng.common.exception.service.ServiceException;
|
|
10
11
12
13
14
15
16
17
18
19
|
import com.huaheng.common.support.Convert;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
|
|
20
21
22
|
import com.huaheng.framework.web.service.ConfigService;
import com.huaheng.pc.config.configValue.domain.ConfigValue;
import com.huaheng.pc.config.configValue.service.ConfigValueService;
|
|
23
24
25
26
27
28
29
30
|
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.config.warehouse.domain.Warehouse;
import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail;
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.mapper.TaskHeaderMapper;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
|
|
31
|
import com.huaheng.pc.task.taskHeader.service.WorkTaskService;
|
|
32
33
34
35
36
37
38
39
|
import io.swagger.annotations.ApiParam;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
|
|
40
41
|
import java.util.AbstractList;
import java.util.ArrayList;
|
|
42
43
44
45
46
47
48
49
50
51
52
53
|
import java.util.List;
@Controller
@RequestMapping("/task/taskHeader")
public class TaskHeaderController extends BaseController {
@Resource
private TaskHeaderService taskHeaderService;
|
|
54
55
|
@Resource
private WorkTaskService workTaskService;
|
|
56
57
58
59
|
@Resource
private TaskCancelService taskCancelService;
@Resource
private ConfigService configService;
|
|
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
|
private String prefix = "task/taskHeader";
@RequiresPermissions("task:taskHeader:view")
@GetMapping()
public String taskHeader(HttpServletRequest request, ModelMap mmap) {
String InternalTaskType= request.getParameter("InternalTaskType");
mmap.put("InternalTaskType",InternalTaskType);
return prefix + "/taskHeader";
}
/**
* 查询任务列表
*/
@RequiresPermissions("task:taskHeader:list")
@Log(title = "任务-上架任务", operating = "查看任务列表", action = BusinessType.GRANT)
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(TaskHeader taskHeader,@ApiParam(name="InternalTaskType",value="类型") Integer InternalTaskType,
@ApiParam(name="createdBegin",value="类型") String createdBegin,@ApiParam(name="createdEnd",value="类型") String createdEnd) {
LambdaQueryWrapper<TaskHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(TaskHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
.eq(StringUtils.isNotNull(InternalTaskType),TaskHeader::getInternalTaskType,InternalTaskType)
.eq(StringUtils.isNotNull(taskHeader.getId()),TaskHeader::getId,taskHeader.getId())
.eq(StringUtils.isNotEmpty(taskHeader.getContainerCode()),TaskHeader::getContainerCode,taskHeader.getContainerCode())
.eq(StringUtils.isNotEmpty(taskHeader.getToLocation()),TaskHeader::getToLocation,taskHeader.getToLocation())
|
|
86
|
.eq(StringUtils.isNotEmpty(taskHeader.getZoneCode()),TaskHeader::getZoneCode,taskHeader.getZoneCode())
|
|
87
88
|
.gt(StringUtils.isNotEmpty(createdBegin),TaskHeader::getCreated,createdBegin)
.lt(StringUtils.isNotEmpty(createdEnd),TaskHeader::getCreated,createdEnd)
|
|
89
90
|
.orderByAsc(TaskHeader::getStatus)
.orderByDesc(TaskHeader::getId);
|
|
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
|
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
/**
* 使用分页查询
*/
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
Page<TaskHeader> page = new Page<>(pageNum, pageSize);
IPage<TaskHeader> iPage = taskHeaderService.page(page, lambdaQueryWrapper);
List<TaskHeader> iPages = iPage.getRecords();
return getMpDataTable(iPages, iPage.getTotal());
} else {
List<TaskHeader> list = taskHeaderService.list(lambdaQueryWrapper);
return getDataTable(list);
}
}
/**
* 下发任务
*/
@RequiresPermissions("task:taskHeader:execute")
@Log(title = "任务-任务管理", operating = "下发立库任务", action = BusinessType.UPDATE)
@PostMapping( "/execute")
@ResponseBody
public AjaxResult execute(String taskId)
{
|
|
118
|
if (StringUtils.isEmpty(taskId)){
|
|
119
|
return AjaxResult.error("taskId不能为空");
|
|
120
|
}
|
|
121
122
123
124
125
126
127
128
129
130
131
132
|
AjaxResult ajaxResult = taskHeaderService.sendTaskToWcs(Convert.toIntArray(taskId));
return ajaxResult;
}
/**
* 完成任务
*/
@RequiresPermissions("task:taskHeader:complete")
@Log(title = "任务-任务管理", operating = "PC完成立库任务", action = BusinessType.UPDATE)
@PostMapping( "/completeTaskByWMS")
@ResponseBody
public AjaxResult completeTaskByWMS(String taskId){
|
|
133
|
if (StringUtils.isEmpty(taskId)){
|
|
134
|
return AjaxResult.error("taskId不能为空");
|
|
135
|
}
|
|
136
137
138
139
140
141
142
143
144
145
146
147
|
return taskHeaderService.completeTaskByWMS(Convert.toIntArray(taskId), null);
}
/**
* 删除立库任务
*/
@RequiresPermissions("task:taskHeader:remove")
@Log(title = "任务-任务管理", operating = "删除立库任务", action = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
|
|
148
|
if (StringUtils.isEmpty(ids)) {
|
|
149
|
return AjaxResult.error("taskId不能为空");
|
|
150
|
}
|
|
151
152
153
154
155
|
String value = configService.getKey(QuantityConstant.RULE_CONNECT_WCS);
int connectWCS = Integer.parseInt(value);
if(connectWCS == QuantityConstant.RULE_WCS_CONNECT) {
Integer[] idList = Convert.toIntArray(ids);
for (int id : idList) {
|
|
156
157
158
159
|
TaskHeader taskHeader = taskHeaderService.getById(id);
if(taskHeader.getStatus().intValue() <= QuantityConstant.TASK_STATUS_BUILD) {
continue;
}
|
|
160
161
162
163
164
165
166
|
AjaxResult ajaxResult = taskCancelService.TaskCance(id);
if (ajaxResult.hasErr()) {
return ajaxResult;
}
}
}
|
|
167
|
return taskHeaderService.cancelTask(Convert.toIntArray(ids));
|
|
168
169
|
}
|
|
170
171
172
173
174
175
176
177
178
179
|
/**
* 自动分配任务库位
* WCS
* @param taskId
* @param high
* @return
*/
@PostMapping("/setLocationCode")
@ResponseBody
public AjaxResult setLocationCode( Integer taskId, Integer high){
|
|
180
|
if (taskId == null){
|
|
181
|
return AjaxResult.error("任务id不能为空");
|
|
182
183
|
}
if (high == null){
|
|
184
|
return AjaxResult.error("高库位标识不能为空");
|
|
185
|
}
|
|
186
187
|
return taskHeaderService.setLocationCode(taskId, high);
}
|
|
188
|
|
|
189
190
191
|
@Log(title = "库位监控-出库查看", operating = "出库查看", action = BusinessType.GRANT)
@PostMapping("/checkLocationCode")
@ResponseBody
|
|
192
193
|
public AjaxResult checkLocationCode (String locationCode) {
if (StringUtils.isEmpty(locationCode)) {
|
|
194
195
|
return AjaxResult.error("库位不能为空!");
}
|
|
196
197
|
List<String> list = new ArrayList<>();
list.add(locationCode);
|
|
198
|
return workTaskService.createCheckOutTask(list, null);
|
|
199
200
|
}
|
|
201
|
/**
|
|
202
|
* 选择出库口
|
|
203
204
205
206
207
208
209
|
*/
@GetMapping("/chooseStation/{taskId}")
public String chooseStation(@PathVariable("taskId")String taskId, ModelMap mmap) {
TaskHeader taskHeader = taskHeaderService.getById(taskId);
String containerCode = taskHeader.getContainerCode();
mmap.put("containerCode", containerCode);
mmap.put("id", taskId);
|
|
210
211
212
213
214
215
216
217
218
219
220
221
|
int taskType = taskHeader.getTaskType().intValue();
if(taskType == QuantityConstant.TASK_TYPE_WHOLESHIPMENT ||
taskType == QuantityConstant.TASK_TYPE_EMPTYSHIPMENT) {
mmap.put("type", QuantityConstant.STATION_OUT);
} else if(taskType == QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT ||
taskType == QuantityConstant.TASK_TYPE_SORTINGSHIPMENT ||
taskType == QuantityConstant.TASK_TYPE_VIEW ||
taskType == QuantityConstant.TASK_TYPE_CYCLECOUNT) {
mmap.put("type", QuantityConstant.STATION_PICK);
} else {
throw new ServiceException("任务类型不需要选站台");
}
|
|
222
223
224
225
226
227
228
229
230
231
232
|
return prefix + "/chooseStation";
}
@Log(title = "设置站台", operating = "设置站台", action = BusinessType.GRANT)
@PostMapping("/setStation")
@ResponseBody
public AjaxResult setStation (TaskHeader taskHeader){
Integer taskiId = taskHeader.getId();
LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
taskHeaderLambdaQueryWrapper.eq(TaskHeader::getId, taskiId);
TaskHeader taskHeader1 = taskHeaderService.getOne(taskHeaderLambdaQueryWrapper);
|
|
233
|
taskHeader1.setPort(taskHeader.getPort());
|
|
234
235
236
|
taskHeaderService.update(taskHeader1, taskHeaderLambdaQueryWrapper);
return execute(String.valueOf(taskiId));
}
|
|
237
|
}
|