Преглед на файлове

[CODE]: 库存不足回滚

maxianghua преди 4 години
родител
ревизия
88ab558f0f
променени са 1 файла, в които са добавени 16 реда и са изтрити 7 реда
  1. 16 7
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

+ 16 - 7
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -26,6 +26,7 @@ import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.math.BigDecimal;
 import java.util.*;
@@ -359,6 +360,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if (tWarehousebillsitems != null && !"2".equals(warehouseBills.getfBillstatus())) {
             JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
             List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+            int i=1;
             for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
                 // 查询总账是否存在
                 TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, wbItem);
@@ -372,23 +374,27 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     }
                 } else if ("SJCK".equals(billsType)) { // 出库 查询
                     if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
-                        return AjaxResult.error("库存为空");
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第"+i+"行库存为空");
                     } else { // 非空修改库存总账
                         if ("6".equals(warehouseBills.getfBillstatus())) {
                             //  库存 <  出库件数  提示库存不足
                             if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
-                                return AjaxResult.error("库存不足");
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error("库存明细第"+i+"行库存不足");
                             }
                             updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
                         }
                     }
                 } else if ("CKDB".equals(billsType)) { // 调拨查询
                     if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
-                        return AjaxResult.error("库存为空");
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第"+i+"行库存为空");
                     } else { // 非空修改库存总账
                         if ("6".equals(warehouseBills.getfBillstatus())) {
                             if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {  //  1、  库存 <  调拨件数  提示库存不足
-                                return AjaxResult.error("库存不足");
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error("库存明细第"+i+"行库存不足");
                             } else {  // 2、 库存足够 先 进行出库操作
                                 updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
                             }
@@ -406,11 +412,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     }
                 }  else if ("HQZY".equals(billsType)) { // 货转
                     if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
-                        return AjaxResult.error("库存为空");
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第"+i+"行库存为空");
                     } else { // 非空修改库存总账
                         if ("6".equals(warehouseBills.getfBillstatus())) {
                             if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {  //  1、  库存 <  调拨件数  提示库存不足
-                                return AjaxResult.error("库存不足");
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error("库存明细第"+i+"行库存不足");
                             } else {  // 2、 库存足够 先 进行出库操作
                                 updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
                             }
@@ -421,12 +429,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                                 instalTWhgenleg(warehouseBills, wbItem, loginUser.getUser());
                             } else { // 4、 存在 进行跟新库存
                                 if ("6".equals(warehouseBills.getfBillstatus())) {
-                                    updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJRK");
+                                    updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
                                 }
                             }
                         }
                     }
                 }
+                i++;
             }
         }
         // 库存明细添加