Blame view

src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java 10.1 KB
mahuandong authored
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;
mahuandong authored
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;
mahuandong authored
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;
mahuandong authored
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;
mahuandong authored
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;
mahuandong authored
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())
mahuandong authored
87
88
                          .gt(StringUtils.isNotEmpty(createdBegin),TaskHeader::getCreated,createdBegin)
                          .lt(StringUtils.isNotEmpty(createdEnd),TaskHeader::getCreated,createdEnd)
89
90
                          .orderByAsc(TaskHeader::getStatus)
                          .orderByDesc(TaskHeader::getId);
mahuandong authored
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)
    {
xqs authored
118
        if (StringUtils.isEmpty(taskId)){
mahuandong authored
119
            return AjaxResult.error("taskId不能为空");
xqs authored
120
        }
mahuandong authored
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){
xqs authored
133
        if (StringUtils.isEmpty(taskId)){
mahuandong authored
134
            return AjaxResult.error("taskId不能为空");
xqs authored
135
        }
mahuandong authored
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)
    {
mahuandong authored
148
        if (StringUtils.isEmpty(ids)) {
mahuandong authored
149
            return AjaxResult.error("taskId不能为空");
mahuandong authored
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;
                }
            }
        }
mahuandong authored
167
        return taskHeaderService.cancelTask(Convert.toIntArray(ids));
mahuandong authored
168
169
    }
游杰 authored
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){
xqs authored
180
        if (taskId == null){
游杰 authored
181
            return AjaxResult.error("任务id不能为空");
xqs authored
182
183
        }
        if (high == null){
游杰 authored
184
            return AjaxResult.error("高库位标识不能为空");
xqs authored
185
        }
游杰 authored
186
187
        return taskHeaderService.setLocationCode(taskId, high);
    }
mahuandong authored
188
189
190
191
    @Log(title = "库位监控-出库查看", operating = "出库查看", action = BusinessType.GRANT)
    @PostMapping("/checkLocationCode")
    @ResponseBody
游杰 authored
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);
游杰 authored
198
        return workTaskService.createCheckOutTask(list, null);
199
200
    }
游杰 authored
201
    /**
游杰 authored
202
     * 选择出库口
游杰 authored
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("任务类型不需要选站台");
        }
游杰 authored
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);
游杰 authored
233
        taskHeader1.setPort(taskHeader.getPort());
游杰 authored
234
235
236
        taskHeaderService.update(taskHeader1, taskHeaderLambdaQueryWrapper);
        return execute(String.valueOf(taskiId));
    }
mahuandong authored
237
}