FEI пре 3 недеља
родитељ
комит
84ff2f2956

+ 2
- 1
sto/src/main/java/com/shinsoft/sto/mapper/main/CargoMapper.xml Прегледај датотеку

@@ -27,6 +27,7 @@
27 27
         <result column="customer_id" property="customerId" jdbcType="VARCHAR"/>
28 28
         <result column="sum_weight" property="sumWeight" jdbcType="NUMERIC"/>
29 29
         <result column="use_weight" property="useWeight" jdbcType="NUMERIC"/>
30
+        <result column="enable_status" property="enableStatus" jdbcType="VARCHAR"/>
30 31
 
31 32
         <!-- 关联上游客户信息 -->
32 33
         <association property="uperCustomer" javaType="com.shinsoft.sto.model.main.Customer">
@@ -47,7 +48,7 @@
47 48
         c.id, c.process_instance_id, c.process_instance_status, c.add_id, c.add_code, c.add_name,
48 49
         c.add_dept_id, c.add_dept_code, c.add_dept_name, c.add_time, c.modify_id, c.modify_code, c.modify_name,
49 50
         c.modify_time, c.cancel_id, c.cancel_code, c.cancel_name, c.cancel_time, c.cancel_flag,
50
-        c.belong_id, c.uper_customer_id, c.customer_id, c.sum_weight, c.use_weight,
51
+        c.belong_id, c.uper_customer_id, c.customer_id, c.sum_weight, c.use_weight, c.enable_status,
51 52
         uper.customer_nm as uper_customer_nm, uper.customer_short_nm as uper_customer_short_nm,
52 53
         cust.customer_nm as customer_nm, cust.customer_short_nm as customer_short_nm
53 54
     </sql>

+ 3
- 0
sto/src/main/java/com/shinsoft/sto/model/main/Cargo.java Прегледај датотеку

@@ -30,6 +30,9 @@ public class Cargo extends BaseModel {
30 30
     @ApiModelProperty("使用重量")
31 31
     private BigDecimal useWeight = BigDecimal.ZERO;
32 32
 
33
+    @ApiModelProperty("启用状态,0未启用,1启用")
34
+    private String enableStatus = "0";
35
+
33 36
     // 关联上游客户信息
34 37
     @TableField(exist = false)
35 38
     @ApiModelProperty("上游客户信息")

+ 41
- 54
sto/src/main/java/com/shinsoft/sto/service/impl/main/CargoServiceImp.java Прегледај датотеку

@@ -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 {

Loading…
Откажи
Сачувај