CreateWXAgvTaskApiService.java
3.11 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
package com.huaheng.api.sap.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.sap.domain.WxAgvTaskDomain;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.station.domain.Station;
import com.huaheng.pc.config.station.service.StationService;
import com.huaheng.pc.config.zone.service.ZoneService;
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;
@Service
public class CreateWXAgvTaskApiService {
@Resource
private ZarshService zarshService;
@Resource
private ZarsiService zarsiService;
@Resource
private ZoneService zoneService;
@Resource
private ZarApiService zarApiService;
@Resource
private AgvTaskService agvTaskService;
@Resource
private StationService stationService;
/**
* @param wxAgvTaskDomain
*/
public AjaxResult createWXAgvTask(WxAgvTaskDomain wxAgvTaskDomain) {
Station from_station = stationService.getStaionByCode(wxAgvTaskDomain.getFromPos());
Station to_station = stationService.getStaionByCode(wxAgvTaskDomain.getFromPos());
if (from_station.getIsWXF() != 2 || to_station.getIsWXF() != 2) {
return AjaxResult.error("起点或终点只能是维修房或提升间");
}
String fromPos = wxAgvTaskDomain.getFromPos();
String toPos = wxAgvTaskDomain.getToPos();
if (fromPos.equals(toPos)) {
return AjaxResult.error("起点和终点不能重复");
}
String[] splitstr = wxAgvTaskDomain.getStopPoint().split(",");
for (int a = 0; a < splitstr.length; a++) {
Station stop_station = stationService.getStaionByCode(splitstr[a]);
if (stop_station.getIsWXF() != 3) {
return AjaxResult.error("不是暂停点" + splitstr[a]);
}
}
// 重复任务判断
LambdaQueryWrapper<AgvTask> wrapper = Wrappers.lambdaQuery();
wrapper.eq(AgvTask::getFromPoint, fromPos);
wrapper.eq(AgvTask::getToPoint, toPos);
wrapper.lt(AgvTask::getState, 100);
wrapper.last("limit 1");
AgvTask agvTask1 = agvTaskService.getOne(wrapper);
if (agvTask1 != null) {
return AjaxResult.error("已经存在任务,请不要重复下发" + fromPos + ":" + toPos);
}
AgvTask agvTask = new AgvTask();
agvTask.setFromPoint(wxAgvTaskDomain.getFromPos());
agvTask.setToPoint(wxAgvTaskDomain.getToPos());
agvTask.setStopPoint(wxAgvTaskDomain.getStopPoint());
agvTask.setUniqueId(wxAgvTaskDomain.getUniqueId());
agvTask.setZoneCode(QuantityConstant.AGV_ZONE);
if (!agvTaskService.save(agvTask)) {
return AjaxResult.error("创建任务失败");
}
return AjaxResult.success();
}
}