TrussRobotController.java
4.85 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
129
130
131
132
133
134
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();
String port = domain.getStationCode();
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::getPalletNo,containerCode)
.eq(AgvTask::getState,60)
.eq(AgvTask::getIsEmpty,1)
);
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());
JSONObject jsonObject = new JSONObject();
if(zarsis.isEmpty()){
acsService.busTaskFinish(agvTask);
jsonObject.put("back",1);
return AjaxResult.success(jsonObject);
}
zarsis = zarsis.stream().sorted(Comparator.comparing(Zarsi::getPosnr)).collect(Collectors.toList());
Zarsi zarsi = zarsis.stream().findFirst().get();
jsonObject.put("back",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) {
String containerCode = domain.getContainerCode();
Integer position = domain.getPosition();
String rollNumber = domain.getRollNumber();
if(StringUtils.isEmpty(containerCode)){
return AjaxResult.error("抓取容器号不能为空");
}
if(StringUtils.isNull(position)){
return AjaxResult.error("抓取位置号不能为空");
}
if(StringUtils.isEmpty(rollNumber)){
return AjaxResult.error("抓取批次不能为空");
}
AgvTask agvTask = agvTaskService.getOne(new LambdaQueryWrapper<AgvTask>()
.eq(AgvTask::getPalletNo,containerCode)
.eq(AgvTask::getState,60)
.eq(AgvTask::getIsEmpty,1)
.isNotNull(AgvTask::getUniqueId));
if(agvTask == null){
return AjaxResult.error("未找到到达容器");
}
String uniqueId = agvTask.getUniqueId();
List<Zarsi> zarsis = zarsiService.getListByUniq(uniqueId);
for (Zarsi zarsi : zarsis) {
if(zarsi.getCharg().equals(rollNumber)){
zarsi.setUseFlag("XX");
zarsiService.updateById(zarsi);
return AjaxResult.success(zarsi);
}
}
return AjaxResult.success();
}
}