Index: yunna/src/main/java/com/freshport/entity/YwHddzJzxxx.java
===================================================================
--- yunna/src/main/java/com/freshport/entity/YwHddzJzxxx.java	(revision 33894)
+++ yunna/src/main/java/com/freshport/entity/YwHddzJzxxx.java	(revision 33895)
@@ -3,6 +3,8 @@
 import java.math.BigDecimal;
 import java.util.Date;
 
+import lombok.Builder;
+
 public class YwHddzJzxxx {
     private Integer id;
 
@@ -4643,4 +4645,12 @@
     public void setMtmDianQ(Integer mtmDianQ) {
         this.mtmDianQ = mtmDianQ;
     }
+
+    // 构造部分字段
+    @Builder(builderMethodName = "customizeBuilder")
+    YwHddzJzxxx(String ywbh, String jzxh, Date xcsj) {
+        this.ywbh = ywbh;
+        this.jzxh = jzxh;
+        this.xcsj = xcsj;
+    }
 }
\ No newline at end of file
Index: yunna/src/main/java/com/freshport/service/impl/FruitShipPortServiceImpl.java
===================================================================
--- yunna/src/main/java/com/freshport/service/impl/FruitShipPortServiceImpl.java	(revision 33894)
+++ yunna/src/main/java/com/freshport/service/impl/FruitShipPortServiceImpl.java	(revision 33895)
@@ -29,7 +29,6 @@
 import com.freshport.dao.YwShipPortLoadingMapper;
 import com.freshport.dao.YwShipPortLogMapper;
 import com.freshport.dao.YwShipPortResultMapper;
-import com.freshport.entity.JsonModel;
 import com.freshport.entity.YwShipPortError;
 import com.freshport.entity.YwShipPortLoading;
 import com.freshport.entity.YwShipPortLogWithBLOBs;
@@ -216,7 +215,8 @@
 
     }
 
-    @Transactional
+    @SystemYunnaLog
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
     @Override
     public void saveShipPortResult(List<ShipPortResultVO> list, String type, String batchNo) {
         List<YwShipPortResult> resultList = new ArrayList<YwShipPortResult>();
@@ -228,20 +228,21 @@
             resultList.add(rs);
         }
 
-        try {
-            if (!CommonUtils.isEmpty(resultList)) {
-                // 分组保存
-                List<List<YwShipPortResult>> splitList = CommonUtils.splitList(resultList,
-                        CommonInfo.SQLSERVER_BATCH_GROUPING_COUNT_HUNDRED_80);
-                for (int i = 0; i < splitList.size(); i++) {
-                    ywShipPortResultMapper.insertList(splitList.get(i));
-                }
+        // try {
+        if (!CommonUtils.isEmpty(resultList)) {
+            // 分组保存
+            List<List<YwShipPortResult>> splitList = CommonUtils.splitList(resultList,
+                    CommonInfo.SQLSERVER_BATCH_GROUPING_COUNT_HUNDRED_80);
+            for (int i = 0; i < splitList.size(); i++) {
+                ywShipPortResultMapper.insertList(splitList.get(i));
             }
-        } catch (Exception e) {
-
-            e.printStackTrace();
-            throw new ShipPortDBException("saveShipPortResult_error", "保存yw_ship_port_result-数据库异常:" + e.getMessage());
         }
+        // } catch (Exception e) {
+        //
+        // e.printStackTrace();
+        // throw new ShipPortDBException("saveShipPortResult_error",
+        // "保存yw_ship_port_result-数据库异常:" + e.getMessage());
+        // }
     }
 
     /**
@@ -276,7 +277,7 @@
         return rs;
     }
 
-    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Transactional
     @Override
     public void saveShipInfo(List<ShipPortResultVO> result) {
 
@@ -293,16 +294,17 @@
         // 1. 保存原始数据表
         fruitShipPortService.saveShipPortResult(result, CommonInfo.TYPE_SHIP, batchNo);
 
-        // 2. 保存日志
-        fruitShipPortService.saveShipPortLog(JSONObject.toJSON(result).toString(),
-                JSONObject.toJSON(JsonModel.success(null)).toString(), CommonInfo.LOG_TYPE_RESULT_SHIP, result.size(),
-                batchNo);
+        // // 2. 保存日志--> 放到 YunnaLogAspect 中统一处理
+        // fruitShipPortService.saveShipPortLog(JSONObject.toJSON(result).toString(),
+        // JSONObject.toJSON(JsonModel.success(null)).toString(),
+        // CommonInfo.LOG_TYPE_RESULT_SHIP, result.size(),
+        // batchNo);
 
         // 3. 预警 / 反写
         shipService.updateHddzAndWarnningInfo(batchNo);
     }
 
-    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Transactional
     @Override
     public void savePortInfo(List<ShipPortResultVO> result) {
 
@@ -319,10 +321,11 @@
         // 1. 保存原始数据表
         fruitShipPortService.saveShipPortResult(result, CommonInfo.TYPE_PORT, batchNo);
 
-        // 2. 保存日志
-        fruitShipPortService.saveShipPortLog(JSONObject.toJSON(result).toString(),
-                JSONObject.toJSON(JsonModel.success(null)).toString(), CommonInfo.LOG_TYPE_RESULT_PORT, result.size(),
-                batchNo);
+        // // 2. 保存日志
+        // fruitShipPortService.saveShipPortLog(JSONObject.toJSON(result).toString(),
+        // JSONObject.toJSON(JsonModel.success(null)).toString(),
+        // CommonInfo.LOG_TYPE_RESULT_PORT, result.size(),
+        // batchNo);
 
         // 3. 预警 / 反写 TODO 上线前三天不更新，比对数据
         portService.updateHddzAndWarnningInfo(batchNo);
@@ -447,7 +450,7 @@
         ywShipPortErrorMapper.insert(error);
     }
 
-    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Transactional
     @Override
     public void savePortOrShipInfo(String type, String batchNo) {
         if (CommonInfo.TYPE_SHIP.equals(type)) {
Index: yunna/src/main/java/com/freshport/service/impl/PortServiceImpl.java
===================================================================
--- yunna/src/main/java/com/freshport/service/impl/PortServiceImpl.java	(revision 33894)
+++ yunna/src/main/java/com/freshport/service/impl/PortServiceImpl.java	(revision 33895)
@@ -79,7 +79,7 @@
         return shipPortMapper.listLoadingNumberForPortTmp();
     }
 
-    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
     @Override
     public void updateHddzAndWarnningInfo(String batchNo) {
         /**
@@ -288,10 +288,13 @@
             if (!CommonUtils.isEmpty(mapList)) {
                 PortForHddzVO list0 = mapList.get(0);
 
-                YwHddzJzxxx jzx = new YwHddzJzxxx();
-                jzx.setYwbh(list0.getBusinessNo());
-                jzx.setJzxh(list0.getContainerNumber());
-                jzx.setXcsj(list0.getUnloadingTime());
+                // YwHddzJzxxx jzx = new YwHddzJzxxx();
+                // jzx.setYwbh(list0.getBusinessNo());
+                // jzx.setJzxh(list0.getContainerNumber());
+                // jzx.setXcsj(list0.getUnloadingTime());
+                // 通过Builder方式创建对象
+                YwHddzJzxxx jzx = YwHddzJzxxx.customizeBuilder().ywbh(list0.getBusinessNo())
+                        .jzxh(list0.getContainerNumber()).xcsj(list0.getUnloadingTime()).build();
                 jzxhList.add(jzx);
 
                 /**PortForHddzVO jzxhVo = new PortForHddzVO();


Index: yunna/src/main/java/com/freshport/service/impl/ShipServiceImpl.java
===================================================================
--- yunna/src/main/java/com/freshport/service/impl/ShipServiceImpl.java	(revision 33894)
+++ yunna/src/main/java/com/freshport/service/impl/ShipServiceImpl.java	(revision 33895)
@@ -80,7 +80,7 @@
         return shipPortMapper.listLoadingNumberForShipTmp();
     }
 
-    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
     @Override
     public void updateHddzAndWarnningInfo(String batchNo) {
 
Index: yunna/src/main/java/com/freshport/util/aspect/YunnaLogAspect.java
===================================================================
--- yunna/src/main/java/com/freshport/util/aspect/YunnaLogAspect.java	(revision 33894)
+++ yunna/src/main/java/com/freshport/util/aspect/YunnaLogAspect.java	(revision 33895)
@@ -90,8 +90,7 @@
      */
     @AfterThrowing(value = "yunnaAspect()", throwing = "ex")
     public void afterThrowingMethod(JoinPoint joinPoint, Exception ex) throws Exception {
-        fruitShipPortService.saveShipPortError(CommonInfo.ERROR_CODE_DATABASE, "",
-                "保存yw_ship_port_loading-数据库异常:" + ex.getMessage());
+        fruitShipPortService.saveShipPortError(CommonInfo.ERROR_CODE_DATABASE, "", "保存数据库异常:" + ex.getMessage());
     }
 
     @After(value = "yunnaAspect()")
