Эх сурвалжийг харах

看板确认目的地异常优化

qiangxuan 3 өдөр өмнө
parent
commit
a1795674de

+ 16 - 15
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java

@@ -532,10 +532,8 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 				}
 			} catch (Exception e) {
 				// 记录详细的异常信息
-				log.error("钢坯装运单编辑,未知目的地数据同步发生异常", e);
-				// 手动标记事务回滚
-				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-				return Result.error("钢坯装运单编辑,未知目的地数据同步发生异常:" + e.getMessage());
+				log.warn("钢坯装运单编辑,未知目的地数据同步发生异常", e);
+				return Result.error("钢坯装运单编辑,数据同步异常!");
 			}
 		} else {
 			log.info("{}{}", "B端编辑钢坯装运单", old.getLicensePlate() + "===" + storageBill.getLicensePlate());
@@ -1798,18 +1796,21 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 					return Result.error(errorMessage);
 				}
 			} catch (Exception e) {
-				// 更新typeConfigId和destination
-//				bill.setTypeConfigId(storageBill.getTypeConfigId());
-//				bill.setDestination(storageBill.getDestination());
-//				storageBillService.getBaseMapper().updateById(bill);
-				log.error("B端监控看板确认目的地,同步发生异常", e.getMessage());
-				// 手动标记事务回滚
-				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-				return Result.error("看板确认目的地发生异常:" + e.getMessage());
+				// 记录完整异常信息
+				log.error("B端监控看板确认目的地同步发生异常", e);
+				// 判断是否为已知业务异常(通过错误信息模式匹配)
+				if (e.getMessage() != null && (e.getMessage().contains("钢坯热送信息不存在") ||
+						e.getMessage().contains("炉次传递单不存在") ||
+						e.getMessage().contains("钢坯实绩不存在"))) {
+					return Result.error(e.getMessage());
+				} else {
+					// 未知系统异常,返回友好提示
+					return Result.error("看板确认目的地发生异常,请联系管理员");
+				}
 			}
-		}else {
-			log.info("{}{}", "看板确认目的地参数有误:", JSON.toJSON(storageBill));
-			return Result.OK("看板确认目的地失败!");
+		} else {
+			log.info("看板确认目的地参数有误:{}", JSON.toJSON(storageBill));
+			return Result.error("看板确认目的地失败!");
 		}
 	}
 

+ 25 - 11
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -3042,11 +3042,17 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
             result.put("success", "B端编辑装运单未知目的地明细同步成功!");
             return result;
         } catch (Exception e) {
-            // 记录异常日志
-            log.error("编辑装运单未知目的地明细同步发生异常", e);
-            result.put("fail", "编辑装运单明细同步异常!");
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            // 使用RuntimeException包装异常,并附带业务错误信息
+            String errorMessage = "编辑装运单明细同步异常";
+            // 针对已知业务场景添加特定错误信息
+            if (e.getMessage() != null && e.getMessage().contains("钢坯热送信息不存在")) {
+                errorMessage = "钢坯热送信息不存在,编辑失败!";
+            } else if (e.getMessage() != null && e.getMessage().contains("炉次传递单不存在")) {
+                errorMessage = "炉次传递单不存在,编辑失败!";
+            } else if (e.getMessage() != null && e.getMessage().contains("钢坯实绩不存在")) {
+                errorMessage = "钢坯实绩不存在,编辑失败!";
+            }
+            result.put("fail", errorMessage);
             return result;
         }
     }
@@ -3327,12 +3333,20 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
             log.info("{}{}", "******监控看板确认目的地,临时表同步成功总条数:", billetBasicInfoAllList.size());
             result.put("success", "监控看板确认目的地同步成功!");
             return result;
-        }catch (Exception e){
-            // 记录异常日志
-            log.error("监控看板确认目的地,同步发生异常", e.getMessage());
-            result.put("fail", "编辑装运单明细同步异常!");
-            // 手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        } catch (Exception e) {
+            // 记录完整异常日志
+            log.error("监控看板确认目的地同步发生异常", e);
+            // 使用RuntimeException包装异常,并附带业务错误信息
+            String errorMessage = "编辑装运单明细同步异常";
+            // 针对已知业务场景添加特定错误信息
+            if (e.getMessage() != null && e.getMessage().contains("钢坯热送信息不存在")) {
+                errorMessage = "钢坯热送信息不存在,编辑失败!";
+            } else if (e.getMessage() != null && e.getMessage().contains("炉次传递单不存在")) {
+                errorMessage = "炉次传递单不存在,编辑失败!";
+            } else if (e.getMessage() != null && e.getMessage().contains("钢坯实绩不存在")) {
+                errorMessage = "钢坯实绩不存在,编辑失败!";
+            }
+            result.put("fail", errorMessage);
             return result;
         }
     }