|
|
@@ -59,6 +59,7 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
59
|
59
|
}
|
|
60
|
60
|
return resultJSON;
|
|
61
|
61
|
}
|
|
|
62
|
+
|
|
62
|
63
|
@Override
|
|
63
|
64
|
public ResultJSON queryByPK(String id) {
|
|
64
|
65
|
try {
|
|
|
@@ -70,30 +71,6 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
70
|
71
|
}
|
|
71
|
72
|
return resultJSON;
|
|
72
|
73
|
}
|
|
73
|
|
- @Override
|
|
74
|
|
- public ResultJSON save(String userId, String json) {
|
|
75
|
|
- try {
|
|
76
|
|
- Date date = new Date();
|
|
77
|
|
- Cargo cargo = JSON.parseObject(json, new TypeReference<Cargo>() {});
|
|
78
|
|
-
|
|
79
|
|
- if (StringUtils.isEmpty(cargo.getId())) {
|
|
80
|
|
- cargo.setCancelFlag("0");
|
|
81
|
|
- cargo.setAddId(userId);
|
|
82
|
|
- cargo.setAddTime(date);
|
|
83
|
|
- cargoMapper.insert(cargo);
|
|
84
|
|
- } else {
|
|
85
|
|
- cargo.setModifyId(userId);
|
|
86
|
|
- cargo.setModifyTime(date);
|
|
87
|
|
- cargoMapper.updateById(cargo);
|
|
88
|
|
- }
|
|
89
|
|
-
|
|
90
|
|
- resultJSON = JSONTools.toResultJSON(cargo);
|
|
91
|
|
- } catch (Exception ex) {
|
|
92
|
|
- ex.printStackTrace();
|
|
93
|
|
- resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, ex);
|
|
94
|
|
- }
|
|
95
|
|
- return resultJSON;
|
|
96
|
|
- }
|
|
97
|
74
|
|
|
98
|
75
|
@Override
|
|
99
|
76
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -103,6 +80,7 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
103
|
80
|
// 解析前端传递的数据
|
|
104
|
81
|
Map<String, Object> formData = JSON.parseObject(json, new TypeReference<Map<String, Object>>() {});
|
|
105
|
82
|
|
|
|
83
|
+ String id = (String) formData.get("id");
|
|
106
|
84
|
String uperCustomerId = (String) formData.get("uperCustomerId");
|
|
107
|
85
|
String customerId = (String) formData.get("customerId");
|
|
108
|
86
|
String subStr = (String) formData.get("subStr"); // 增加/减少
|
|
|
@@ -118,25 +96,25 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
118
|
96
|
Cargo existingCargo = cargoMapper.selectOne(queryWrapper);
|
|
119
|
97
|
|
|
120
|
98
|
Cargo cargo;
|
|
|
99
|
+ boolean isNewRecord = false;
|
|
|
100
|
+
|
|
121
|
101
|
if (existingCargo == null) {
|
|
122
|
102
|
// 新增记录
|
|
|
103
|
+ isNewRecord = true;
|
|
123
|
104
|
cargo = new Cargo();
|
|
124
|
105
|
cargo.setId(UUID.randomUUID().toString().replace("-", ""));
|
|
125
|
106
|
cargo.setUperCustomerId(uperCustomerId);
|
|
126
|
107
|
cargo.setCustomerId(customerId);
|
|
|
108
|
+ cargo.setEnableStatus("0"); // 新增记录默认未启用
|
|
127
|
109
|
|
|
128
|
110
|
if ("增加".equals(subStr)) {
|
|
129
|
|
- // 新增+增加:可使用量=0+重量,已使用量=0
|
|
|
111
|
+ // 新增+增加:可使用量=重量,已使用量=0
|
|
130
|
112
|
cargo.setSumWeight(weight);
|
|
131
|
113
|
cargo.setUseWeight(BigDecimal.ZERO);
|
|
132
|
|
- } else if ("减少".equals(subStr)) {
|
|
|
114
|
+ } else {
|
|
133
|
115
|
// 新增+减少:不允许,因为不能从0减少
|
|
134
|
116
|
resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, "无法对不存在的记录进行减少操作");
|
|
135
|
117
|
return resultJSON;
|
|
136
|
|
- } else {
|
|
137
|
|
- // 默认新增:可使用量=0+重量,已使用量=0
|
|
138
|
|
- cargo.setSumWeight(weight);
|
|
139
|
|
- cargo.setUseWeight(BigDecimal.ZERO);
|
|
140
|
118
|
}
|
|
141
|
119
|
|
|
142
|
120
|
cargo.setCancelFlag("0");
|
|
|
@@ -146,6 +124,24 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
146
|
124
|
} else {
|
|
147
|
125
|
// 更新现有记录
|
|
148
|
126
|
cargo = existingCargo;
|
|
|
127
|
+
|
|
|
128
|
+ // 检查减少操作的合法性
|
|
|
129
|
+ if ("减少".equals(subStr)) {
|
|
|
130
|
+ // 检查启用状态和可使用量
|
|
|
131
|
+ if ("1".equals(cargo.getEnableStatus()) &&
|
|
|
132
|
+ (cargo.getSumWeight() == null || cargo.getSumWeight().compareTo(BigDecimal.ZERO) == 0)) {
|
|
|
133
|
+ resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, "当前记录已启用且可使用量为0,不能进行减少操作");
|
|
|
134
|
+ return resultJSON;
|
|
|
135
|
+ }
|
|
|
136
|
+
|
|
|
137
|
+ // 检查减少的重量是否大于当前可使用量
|
|
|
138
|
+ BigDecimal oldSumWeight = cargo.getSumWeight() != null ? cargo.getSumWeight() : BigDecimal.ZERO;
|
|
|
139
|
+ if (oldSumWeight.compareTo(weight) < 0) {
|
|
|
140
|
+ resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, "减少的重量不能大于当前可使用量");
|
|
|
141
|
+ return resultJSON;
|
|
|
142
|
+ }
|
|
|
143
|
+ }
|
|
|
144
|
+
|
|
149
|
145
|
BigDecimal oldSumWeight = cargo.getSumWeight() != null ? cargo.getSumWeight() : BigDecimal.ZERO;
|
|
150
|
146
|
BigDecimal oldUseWeight = cargo.getUseWeight() != null ? cargo.getUseWeight() : BigDecimal.ZERO;
|
|
151
|
147
|
|
|
|
@@ -153,13 +149,8 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
153
|
149
|
// 增加:可使用量=原可使用量+重量,已使用量不变
|
|
154
|
150
|
cargo.setSumWeight(oldSumWeight.add(weight));
|
|
155
|
151
|
} else if ("减少".equals(subStr)) {
|
|
156
|
|
- // 减少:可使用量=原可使用量-重量,已使用量=0+重量
|
|
157
|
|
- if (oldSumWeight.compareTo(weight) < 0) {
|
|
158
|
|
- resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, "减少的重量不能大于当前可使用量");
|
|
159
|
|
- return resultJSON;
|
|
160
|
|
- }
|
|
|
152
|
+ // 减少:可使用量=原可使用量-重量,已使用量不变
|
|
161
|
153
|
cargo.setSumWeight(oldSumWeight.subtract(weight));
|
|
162
|
|
- cargo.setUseWeight(oldUseWeight.add(weight));
|
|
163
|
154
|
}
|
|
164
|
155
|
|
|
165
|
156
|
cargo.setModifyId(userId);
|
|
|
@@ -180,8 +171,6 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
180
|
171
|
changeRecord.setCancelFlag("0");
|
|
181
|
172
|
changeRecord.setAddId(userId);
|
|
182
|
173
|
changeRecord.setAddTime(date);
|
|
183
|
|
- changeRecord.setModifyId(userId);
|
|
184
|
|
- changeRecord.setModifyTime(date);
|
|
185
|
174
|
cargoChangeRecordMapper.insert(changeRecord);
|
|
186
|
175
|
|
|
187
|
176
|
resultJSON = JSONTools.toResultJSON(cargo);
|
|
|
@@ -191,13 +180,26 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
191
|
180
|
}
|
|
192
|
181
|
return resultJSON;
|
|
193
|
182
|
}
|
|
194
|
|
- /* @Override
|
|
|
183
|
+
|
|
|
184
|
+ @Override
|
|
195
|
185
|
public ResultJSON save(String userId, String json) {
|
|
196
|
186
|
try {
|
|
197
|
187
|
Date date = new Date();
|
|
198
|
188
|
Cargo cargo = JSON.parseObject(json, new TypeReference<Cargo>() {});
|
|
199
|
189
|
|
|
200
|
190
|
if (StringUtils.isEmpty(cargo.getId())) {
|
|
|
191
|
+ // 新增时检查是否已存在相同上游客户和客户的记录
|
|
|
192
|
+ QueryWrapper<Cargo> queryWrapper = new QueryWrapper<>();
|
|
|
193
|
+ queryWrapper.eq("uper_customer_id", cargo.getUperCustomerId())
|
|
|
194
|
+ .eq("customer_id", cargo.getCustomerId())
|
|
|
195
|
+ .eq("cancel_flag", "0");
|
|
|
196
|
+ Cargo existingCargo = cargoMapper.selectOne(queryWrapper);
|
|
|
197
|
+
|
|
|
198
|
+ if (existingCargo != null) {
|
|
|
199
|
+ resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, "该上游客户和客户组合的货权记录已存在");
|
|
|
200
|
+ return resultJSON;
|
|
|
201
|
+ }
|
|
|
202
|
+
|
|
201
|
203
|
cargo.setCancelFlag("0");
|
|
202
|
204
|
cargo.setAddId(userId);
|
|
203
|
205
|
cargo.setAddTime(date);
|
|
|
@@ -216,21 +218,6 @@ public class CargoServiceImp extends ServiceImpl<CargoMapper, Cargo> implements
|
|
216
|
218
|
return resultJSON;
|
|
217
|
219
|
}
|
|
218
|
220
|
|
|
219
|
|
- @Override
|
|
220
|
|
- public ResultJSON transfer(String userId, String json) {
|
|
221
|
|
- try {
|
|
222
|
|
- Date date = new Date();
|
|
223
|
|
- Cargo cargo = JSON.parseObject(json, new TypeReference<Cargo>() {});
|
|
224
|
|
- // 这里实现货权转移逻辑,包括记录变更履历
|
|
225
|
|
- // 具体实现根据业务需求来写
|
|
226
|
|
- resultJSON = JSONTools.toResultJSON(cargo);
|
|
227
|
|
- } catch (Exception ex) {
|
|
228
|
|
- ex.printStackTrace();
|
|
229
|
|
- resultJSON = JSONTools.toResultJSON(ResponseCodeMsg.CODE_EX, ex);
|
|
230
|
|
- }
|
|
231
|
|
- return resultJSON;
|
|
232
|
|
- }*/
|
|
233
|
|
-
|
|
234
|
221
|
@Override
|
|
235
|
222
|
public ResultJSON remove(String userId, String id) {
|
|
236
|
223
|
try {
|