AddressServiceImpl.java
5.18 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
136
137
138
139
140
141
142
package com.huaheng.pc.config.address.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.huaheng.common.utils.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.pc.config.address.domain.Address;
import com.huaheng.pc.config.address.mapper.AddressMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class AddressServiceImpl extends ServiceImpl<AddressMapper, Address> implements AddressService {
@Autowired
private AddressMapper addressMapper;
@Override
public String selectAddress(String param, String warehouseCode) {
return selectAddress(param,warehouseCode,null);
}
@Override
public String selectAddress(String param, String warehouseCode, String area) {
if(StringUtils.isEmpty(param)){
throw new ServiceException("参数为空");
}
LambdaQueryWrapper<Address> addressLam = Wrappers.lambdaQuery();
addressLam.eq(Address::getParam,param)
.eq(Address::getWarehouseCode, warehouseCode)
.eq(StringUtils.isNotEmpty(area),Address::getNumber, area);
Address address=this.getOne(addressLam);
if(address == null){
throw new ServiceException("参数错误,系统没有此参数对应的地址");
}
if(StringUtils.isEmpty(address.getUrl())){
throw new ServiceException("地址为空");
}
return address.getUrl();
}
@Override
public String selectAddress(String param, String warehouseCode, String area, Integer roadway) {
if(StringUtils.isEmpty(param)){
throw new ServiceException("参数为空");
}
LambdaQueryWrapper<Address> addressLam = Wrappers.lambdaQuery();
addressLam.eq(Address::getParam,param)
.eq(Address::getWarehouseCode, warehouseCode)
.eq(Address::getArea, area)
.eq(Address::getRoadway, roadway);
Address address=this.getOne(addressLam);
if(address == null){
throw new ServiceException("参数错误,系统没有此参数对应的地址");
}
if(StringUtils.isEmpty(address.getUrl())){
throw new ServiceException("地址为空");
}
return address.getUrl();
}
@Override
public String selectAddress(String param) {
if(StringUtils.isEmpty(param)){
throw new ServiceException("参数为空");
}
LambdaQueryWrapper<Address> addressLam = Wrappers.lambdaQuery();
addressLam.eq(Address::getParam,param)
.eq(Address::getWarehouseCode, ShiroUtils.getWarehouseCode());
Address address=this.getOne(addressLam);
if(address == null){
throw new ServiceException("参数错误,系统没有此参数对应的地址");
}
if(StringUtils.isEmpty(address.getUrl())){
throw new ServiceException("地址为空");
}
return address.getUrl();
}
/**
* 复制地址表
* @param warehouseCode 原仓库编码
* @param newWarehouseCode 新仓库编码
* @return 是否复制成功
*/
@Override
@Transactional
public Boolean addressCopy(String warehouseCode, String newWarehouseCode) {
log.trace("开始复制地址表");
LambdaQueryWrapper<Address> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(Address::getWarehouseCode, newWarehouseCode);
if (!this.list(lambdaQueryWrapper).isEmpty()){
log.error("该仓库已存在");
return false;
}
lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(Address::getWarehouseCode, warehouseCode);
List<Address> addressList = this.list(lambdaQueryWrapper);
for (Address address : addressList) {
address.setId(null);
address.setWarehouseCode(newWarehouseCode);
}
if ( this.saveBatch(addressList) ){
log.trace("复制地址表成功,新仓库编码是:"+newWarehouseCode);
return true;
} else {
return false;
}
}
@Override
public Address getAddressByUrl(String url, String warehouseCode) {
LambdaQueryWrapper<Address> addressLam = Wrappers.lambdaQuery();
addressLam.eq(Address::getUrl,url);
if(StringUtils.isEmpty(warehouseCode)) {
addressLam.eq(Address::getWarehouseCode, QuantityConstant.ryTask_warehouse_code);
} else {
addressLam.eq(Address::getWarehouseCode, warehouseCode);
}
Address address=this.getOne(addressLam);
return address;
}
@Override
public Address selectEntity(Address address) {
return addressMapper.selectEntity(address);
}
}