Forráskód Böngészése

优化订单列表展示

xian 4 éve
szülő
commit
95d5d784bd

+ 23 - 20
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/InventoryServiceImpl.java

@@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper;
 import com.iamberry.rst.core.fm.InventoryInfo;
 import com.iamberry.rst.core.fm.InventoryLog;
 import com.iamberry.rst.core.order.OrderWarehouse;
+import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.order.ProductCombinatInfo;
 import com.iamberry.rst.core.page.PageRequest;
@@ -192,31 +193,33 @@ public class InventoryServiceImpl implements InventoryService {
     @Override
     public synchronized Integer minusInventory(InventoryInfo invent) {
         Integer flag = 0;
+        if(invent == null ){
+            throw new RuntimeException("数据为空,请核查");
+        }
+
         //查询是否是组合产品
-        if(invent != null ){
-            List<ProductCombinatInfo> listproduct = new ArrayList<>();
-            if(invent.getInventoryProductColorId() != null){
-               listproduct = productMapper.combinatList(productColorMapper.getProductColorById(invent.getInventoryProductColorId()).getColorProductId());
-            }else if(invent.getInventoryProductBar() != null){
-               listproduct = productMapper.combinatList(productColorMapper.getProductColorByBar(invent.getInventoryProductBar()).getColorProductId());
-            }
+        List<ProductCombinatInfo> listproduct = new ArrayList<>();
+        if(invent.getInventoryProductColorId() != null){
+            listproduct = productMapper.combinatList(productColorMapper.getProductColorById(invent.getInventoryProductColorId()).getColorProductId());
+        }else if(invent.getInventoryProductBar() != null){
+            listproduct = productMapper.combinatList(productColorMapper.getProductColorByBar(invent.getInventoryProductBar()).getColorProductId());
+        }
 
-            if(listproduct.size() > 0){
-                for(ProductCombinatInfo info : listproduct){
-                    invent.setInventoryProductColorId(info.getCombinatItemColorId());
-                    invent.setInventoryProductBar(info.getColorBar());
-                    if(invent.getInventoryGoodProductNum() != null && invent.getInventoryGoodProductNum() != 0 ){
-                        invent.setInventoryGoodProductNum(invent.getInventoryGoodProductNum() * info.getCombinatItemNum());
-                    }else if(invent.getInventoryDefectiveProductNum() != null && invent.getInventoryDefectiveProductNum() != 0 ){
-                        invent.setInventoryDefectiveProductNum(invent.getInventoryDefectiveProductNum() * info.getCombinatItemNum());
-                    }
-                    flag = minus(invent);
+        if(listproduct.isEmpty()){
+            // 非组合产品
+            flag = minus(invent);
+        }else{
+            // 组合产品
+            for(ProductCombinatInfo info : listproduct){
+                invent.setInventoryProductColorId(info.getCombinatItemColorId());
+                invent.setInventoryProductBar(info.getColorBar());
+                if(invent.getInventoryGoodProductNum() != null && invent.getInventoryGoodProductNum() != 0 ){
+                    invent.setInventoryGoodProductNum(invent.getInventoryGoodProductNum() * info.getCombinatItemNum());
+                }else if(invent.getInventoryDefectiveProductNum() != null && invent.getInventoryDefectiveProductNum() != 0 ){
+                    invent.setInventoryDefectiveProductNum(invent.getInventoryDefectiveProductNum() * info.getCombinatItemNum());
                 }
-            }else{
                 flag = minus(invent);
             }
-        }else{
-            flag = minus(invent);
         }
 
         return flag;

+ 17 - 11
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -1450,33 +1450,35 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return salesOrderMapper.getSalesOrderByPostNum(postNum);
     }
 
-    @Transactional
     @Override
+    @Transactional(rollbackFor = {Exception.class}, isolation = Isolation.REPEATABLE_READ)
     public synchronized Integer updateDeliver(SalesOrder salesOrder) {
         Integer flag = 0;
-        flag = salesOrderMapper.updateDeliver(salesOrder);  //修改出库状态
+        //修改出库状态
+        flag = salesOrderMapper.updateDeliver(salesOrder);
         if(flag < 1){
             throw new RuntimeException("出库失败,订单出库失败。");
         }
-
-        boolean isMachineRetuen = false; //是否原机退回
+        //是否原机退回
+        boolean isMachineRetuen = false;
         ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();
         complaintDetectInfo.setSalesOrderId(salesOrder.getSalesOrderId());
         List<ComplaintDetectInfo> complaintDetectInfoList = complaintDetectInfoMapper.listComplaintDetectByOrderId(complaintDetectInfo);
         if(complaintDetectInfoList != null && complaintDetectInfoList.size() > 0) {
             ComplaintDetectInfo cdinfo = complaintDetectInfoList.get(0);
-            if (5 == cdinfo.getDetectProcessingResults()) { //detectProcessingResults
+            if (5 == cdinfo.getDetectProcessingResults()) {
                 isMachineRetuen = true;
             }
         }
         if(isMachineRetuen){
-            //减去售后仓库不良品
+            // 减去售后仓库不良品
             ComplaintDetectInfo cdinfo = complaintDetectInfoList.get(0);
             InventoryInfo inventoryInfo1 = new InventoryInfo();
             inventoryInfo1.setInventoryDefectiveProductNum(1);
             inventoryInfo1.setInventoryProductColorId(cdinfo.getProductColorId());
             inventoryInfo1.setWarehouseId(2);
-            inventoryInfo1.setQualityType(2);   //产品质量类型 1良品 2 不良品
+            //产品质量类型 1良品 2 不良品
+            inventoryInfo1.setQualityType(2);
             inventoryInfo1.setInventoryRecentRecord("维修机器-原机返回(维修ID:" + cdinfo.getDetectNumber() + ")");
             flag = inventoryService.minusInventory(inventoryInfo1);
             if (flag < 1) {
@@ -1487,15 +1489,19 @@ public class SalesOrderServiceImpl implements SalesOrderService {
             SalesOrder so = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());SalesOrderItem salesOrderItem = new SalesOrderItem();
             salesOrderItem.setItemOrderId(so.getSalesId());
             List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
-            if(salesOrder.getSalesDeliver() == 2){//标记出库,修改库存
+            if(salesOrder.getSalesDeliver() == 2){
+                //标记出库,修改库存
                 // 如果已出库则返还库存
                 for (SalesOrderItem soi:listOrderitem) {
                     InventoryInfo inventoryInfo2 = new InventoryInfo();
-                    inventoryInfo2.setInventoryGoodProductNum(soi.getItemNum());    //良品数量
+                    //良品数量
+                    inventoryInfo2.setInventoryGoodProductNum(soi.getItemNum());
                     inventoryInfo2.setInventoryProductBar(soi.getItemColorBar());
                     inventoryInfo2.setWarehouseId(so.getSalesWarehouseId());
-                    inventoryInfo2.setLogType(1);   //类型1.采购 2.发货 3.次品
-                    inventoryInfo2.setQualityType(1);   //产品质量类型 1良品 2 不良品
+                    //类型1.采购 2.发货 3.次品
+                    inventoryInfo2.setLogType(1);
+                    //产品质量类型 1良品 2 不良品
+                    inventoryInfo2.setQualityType(1);
                     inventoryInfo2.setInventoryRecentRecord("出库-订单号:"+ so.getSalesDealCode());
                     inventoryService.minusInventory(inventoryInfo2);
                 }