BackSapStatusService.java
5.77 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
135
package com.huaheng.pc.sap.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.api.sap.service.ZarApiService;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.pc.config.station.domain.Station;
import com.huaheng.pc.config.station.service.StationService;
import com.huaheng.pc.config.zone.domain.Zone;
import com.huaheng.pc.config.zone.service.ZoneService;
import com.huaheng.pc.sap.domain.BackSapStatus;
import com.huaheng.pc.sap.domain.Zarsh;
import com.huaheng.pc.sap.mapper.BackSapStatusMapper;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* Created by Cotter on 2023/2/1.
*
* @author zhouhong
*/
@Service
public class BackSapStatusService extends ServiceImpl<BackSapStatusMapper, BackSapStatus> {
@Resource
private ZarApiService zarApiService;
@Resource
private TaskHeaderService taskHeaderService;
@Resource
private StationService stationService;
@Resource
private ZoneService zoneService;
@Resource
private ZarshService zarshService;
@Resource
private BackSapStatusService backSapStatusService;
/**
* @param uniqueIds
* @param lgnum
* @param locationCode
* @param mFlag 1入库 2出库
* @param cFlag 命令状态:1:正在执行 2执行成功 C异常 -1使用者取消
* @param taskId
* @return
*/
public boolean saveBackSapStatus(String uniqueIds, String lgnum, String locationCode, Integer mFlag, String cFlag, Integer taskId, String msg) {
boolean flag = false;
if (StringUtils.isEmpty(uniqueIds)) {
return true;
}
Zarsh zarsh = zarshService.getZarshByUnique(uniqueIds);
if (zarsh == null) {
return true;
}
LambdaQueryWrapper<BackSapStatus> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(BackSapStatus::getUniqueIds, uniqueIds).eq(BackSapStatus::getLgnum, lgnum)
.eq(StringUtils.isNotEmpty(locationCode), BackSapStatus::getLocation, locationCode).eq(BackSapStatus::getMFlag, mFlag)
// .eq(BackSapStatus::getCFlag, cFlag)
.eq(StringUtils.isNotNull(taskId), BackSapStatus::getTaskId, taskId);
queryWrapper.last("limit 1");
BackSapStatus backSapStatus1 = this.getOne(queryWrapper);
// //解决SAP 移库回传问题.
// if (StringUtils.isNotNull(taskId)) {
// TaskHeader taskHeader = taskHeaderService.getById(taskId);
// if (taskHeader.getTaskType() == QuantityConstant.TASK_STATUS_COMPLETED) {
// Station station = stationService.getStaionByCode(taskHeader.getPort());
// Station staionByCode = stationService.getStaionByCode(station.getByPassPort());
// if (staionByCode != null) {
// Integer area = staionByCode.getArea();
// Zone zone = zoneService.getZoneByArea(area.toString());
// lgnum = zone.getCode();
// }
// }
// }
if (backSapStatus1 == null) {
BackSapStatus backSapStatus = new BackSapStatus();
backSapStatus.setStatus(1);
backSapStatus.setCFlag(cFlag);
backSapStatus.setLocation(locationCode);
backSapStatus.setMFlag(mFlag);
backSapStatus.setTaskId(taskId);
backSapStatus.setLgnum(lgnum);
backSapStatus.setUniqueIds(uniqueIds);
backSapStatus.setMsg(msg);
flag = this.save(backSapStatus);
} else {
backSapStatus1.setCFlag(cFlag);
backSapStatus1.setStatus(1);
flag = this.updateById(backSapStatus1);
}
if (cFlag.equals("D")) {
}
// 判断 分拣叠盘
if (backSapStatus1 != null && StringUtils.isNotNull(taskId) && mFlag == 2) {
backSapStatus1.setLocation(locationCode);
flag = this.updateById(backSapStatus1);
}
return flag;
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public boolean addBackSapStatus(String uniqueIds, String lgnum, String locationCode, Integer mFlag, String cFlag, Integer taskId, String msg){
LambdaQueryWrapper<BackSapStatus> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(BackSapStatus::getUniqueIds, uniqueIds).eq(BackSapStatus::getLgnum, lgnum)
.eq(StringUtils.isNotEmpty(locationCode), BackSapStatus::getLocation, locationCode).eq(BackSapStatus::getMFlag, mFlag)
.eq(StringUtils.isNotNull(taskId), BackSapStatus::getTaskId, taskId);
queryWrapper.last("limit 1");
BackSapStatus backSapStatus1 = this.getOne(queryWrapper);
if (backSapStatus1 == null) {
BackSapStatus backSapStatus = new BackSapStatus();
backSapStatus.setStatus(1);
backSapStatus.setCFlag(cFlag);
backSapStatus.setLocation(locationCode);
backSapStatus.setMFlag(mFlag);
backSapStatus.setTaskId(taskId);
backSapStatus.setLgnum(lgnum);
backSapStatus.setUniqueIds(uniqueIds);
backSapStatus.setMsg(msg);
backSapStatusService.save(backSapStatus);
} else {
backSapStatus1.setCFlag(cFlag);
backSapStatus1.setStatus(1);
backSapStatusService.updateById(backSapStatus1);
}
return true;
}
}