TrussRobotController.java
4.49 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
123
124
125
126
127
128
package com.huaheng.api.acs.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.acs.domain.pickContainer.ContainerPositionDomain;
import com.huaheng.api.acs.service.AcsService;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.service.ConfigService;
import com.huaheng.pc.sap.domain.Zarsi;
import com.huaheng.pc.sap.service.ZarshService;
import com.huaheng.pc.sap.service.ZarsiService;
import com.huaheng.pc.task.agvTask.domain.AgvTask;
import com.huaheng.pc.task.agvTask.service.AgvTaskService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/***
* 商片包装 自动行架抓取
* @author tongzonghao
*
*/
@RestController
@RequestMapping("/API/WMS/v2")
public class TrussRobotController {
@Resource
private AgvTaskService agvTaskService;
@Resource
private ZarshService zarshService;
@Resource
private ZarsiService zarsiService;
@Resource
private AcsService acsService;
@PostMapping("/pickContainerPosition")
@ApiOperation("商片分拣物料")
@ResponseBody
@ApiLogger(apiName = "商片分拣物料", from = "acs")
public AjaxResult pickContainerPosition(@RequestBody ContainerPositionDomain domain) {
if(StringUtils.isNull(domain)){
AjaxResult.error("请求内容未空");
}
String containerCode = domain.getContainerCode();
Integer position = domain.getPosition();
String port = domain.getPort();
if(StringUtils.isNull(position)){
return AjaxResult.error("位置号不能为空");
}
if(StringUtils.isEmpty(containerCode)){
return AjaxResult.error("站台不能为空");
}
if(!"P2026".equals(port)){
return AjaxResult.error("不是指定站台P2026");
}
//AGV任务
AgvTask agvTask = agvTaskService.getOne(new LambdaQueryWrapper<AgvTask>()
.eq(AgvTask::getContainerCode,containerCode)
.eq(AgvTask::getState,60)
.eq(AgvTask::getIsEmpty,1)
.isNotNull(AgvTask::getUniqueId)
.lt(AgvTask::getPush,7));
if(agvTask == null){
return AjaxResult.error("未找到到位托盘");
}
String uniqueId = agvTask.getUniqueId();
List<Zarsi> zarsis = zarsiService.getListByUniq(uniqueId);
if(zarsis.isEmpty()){
return AjaxResult.error("未找到库存记录");
}
zarsis = zarsis.stream().filter(e -> "X".equals(e.getUseFlag())).collect(Collectors.toList());
if(zarsis.isEmpty()){
return AjaxResult.error("未找到库存记录");
}
zarsis = zarsis.stream().sorted(Comparator.comparing(Zarsi::getPosnr)).collect(Collectors.toList());
Zarsi zarsi = null;
for (Zarsi zarsi1 : zarsis) {
if(zarsi1.getPosnr().compareTo(position) == 0){
zarsi = zarsi1;
zarsi1.setUseFlag("XX");
boolean b = zarsiService.updateById(zarsi1);
if(!b){
throw new ServiceException("更新上游库存位置记录失败");
}
break;
}
}
int push = agvTask.getPush().intValue();
++push;
if(push >= 7){
acsService.busTaskFinish(agvTask);
}
agvTask.setPush(push);
agvTaskService.updateById(agvTask);
JSONObject jsonObject = new JSONObject();
if(zarsi == null){
jsonObject.put("empty","1");
return AjaxResult.success(jsonObject);
}
jsonObject.put("empty","0");
jsonObject.put("rollNumber",zarsi.getCharg());
jsonObject.put("position",zarsi.getPosnr());
return AjaxResult.success(jsonObject);
}
@PostMapping("/leavedContainerPosition")
@ApiOperation("离开托盘位置")
@ResponseBody
@ApiLogger(apiName = "离开托盘位置", from = "acs")
public AjaxResult leavedContainerPosition(@RequestBody ContainerPositionDomain domain) {
return AjaxResult.success();
}
}