Kaynağa Gözat

修改首页弹出框的展示

xian 5 yıl önce
ebeveyn
işleme
7a36c74310

+ 47 - 46
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -165,14 +165,14 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return  salesOrderMapper.updateSalesOrder(salesOrder);
     }
 
-    @Transactional
     @Override
+    @Transactional(rollbackFor = {SQLException.class, Exception.class}, isolation = Isolation.REPEATABLE_READ)
     public Integer updateOrderInfo(SalesOrder salesOrder) {
         int flag = 0;
         if(salesOrder.getSalesId()==null){
             throw new RuntimeException("订单ID不存在!");
         }
-
+        // 处理订单项
         for (SalesOrderItem addItem:salesOrder.getSalesOrderItemList()) {
             if(addItem.getItemNum() > 0 && addItem.getItemColorId() > 0){
                 ProductColor productColor = productService.getProduceColor(addItem.getItemColorId());
@@ -206,7 +206,6 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         SalesOrderItem soi = new SalesOrderItem();
         soi.setItemOrderId(salesOrder.getSalesId());
         List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(soi);
-//        List<SalesOrderItem> addsaleSOrderItemList = new ArrayList<>();
         List<SalesOrderItem> updateSalesOrderItemList = new ArrayList<>();
         List<SalesOrderItem>deleteSalesOrderItemList = new ArrayList<>();
 
@@ -249,7 +248,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         }
 
         //批量修改订单
-        if(updateSalesOrderItemList != null && updateSalesOrderItemList.size() > 0) {
+        if(updateSalesOrderItemList.size() > 0) {
             for (SalesOrderItem salesOrderItem : updateSalesOrderItemList) {
                 flag = salesOrderMapper.updateOrderItemObj(salesOrderItem);
             }
@@ -620,69 +619,71 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     }
 
     @Override
-    @Transactional(rollbackFor = {SQLException.class, RuntimeException.class, Exception.class}, isolation = Isolation.READ_COMMITTED)
+    @Transactional(rollbackFor = {SQLException.class, Exception.class}, isolation = Isolation.REPEATABLE_READ)
     public boolean addRstOrderinfo(SalesOrder mainOrder,List<SalesOrder> listSalesOrder,String[] detectIds) {
-         Integer flag = salesOrderMapper.getOrderBySalesDealCodeNum(mainOrder.getSalesDealCode());
+        // 查询交易号的数量(注意,此处可能重复,应该增加唯一索引)
+        Integer flag = salesOrderMapper.getOrderBySalesDealCodeNum(mainOrder.getSalesDealCode());
         if(flag > 0){
-            throw  new RuntimeException("交易号("+ mainOrder.getSalesDealCode() +")重复,请重新生成交易号!");
+            throw new RuntimeException("交易号("+ mainOrder.getSalesDealCode() +")重复,请重新生成交易号!");
         }
 
         if(mainOrder.getSalesAddressPostcode() == null){
-            throw  new RuntimeException("未获取到邮政编码信息,请检查地址信息!");
+            throw new RuntimeException("未获取到邮政编码信息,请检查地址信息!");
         }
 
         if(mainOrder.getSalesCreateTime() == null){
             /*保证时间与以前一样*/
             mainOrder.setSalesCreateTime(new Date());
         }
-
+        // 计算金额
         calculationTotal(mainOrder,mainOrder.getSalesOrderItemList());
-        int orderNum = salesOrderMapper.addSalesOrder(mainOrder);
-        if (orderNum <= 0) {
-            throw  new RuntimeException("添加订单出错--------!");
+        // 保存订单信息
+        int res = salesOrderMapper.addSalesOrder(mainOrder);
+        if (res <= 0) {
+            throw new RuntimeException("添加订单出错,请核查内容");
         }
         for (SalesOrderItem item : mainOrder.getSalesOrderItemList()) {
             item.setItemOrderId(mainOrder.getSalesId());
         }
         //批量添加订单项数据
-        int itemNum = salesOrderMapper.addOrderItemList(mainOrder.getSalesOrderItemList());
-        if (itemNum <= 0) {
-            throw  new RuntimeException("添加订单出错--------!");
-        }else{
-            if(listSalesOrder.size() > 0){
-                for (int i = 0;i<listSalesOrder.size();i++){
-                    listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
-                    if(listSalesOrder.get(i).getSalesOrderId() != null && !"".equals(listSalesOrder.get(i).getSalesOrderId())){
-                        listSalesOrder.get(i).setSalesOrderId(listSalesOrder.get(i).getSalesOrderId()+"-"+(i+1));
-                    }
-                    listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
-                    listSalesOrder.get(i).setSalesId(null);
-                    calculationTotal(listSalesOrder.get(i),listSalesOrder.get(i).getSalesOrderItemList());
-                    orderNum = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
-                    if (orderNum <= 0) {
-                        throw  new RuntimeException("添加订单出错--------!");
-                    }
-                    for (SalesOrderItem item : listSalesOrder.get(i).getSalesOrderItemList()) {
-                        item.setItemOrderId(listSalesOrder.get(i).getSalesId());
-                    }
-                    //批量添加订单项数据
-                    itemNum = salesOrderMapper.addOrderItemList(listSalesOrder.get(i).getSalesOrderItemList());
-                    if (itemNum <= 0) {
-                        throw  new RuntimeException("添加订单出错--------!");
-                    }
+        res = salesOrderMapper.addOrderItemList(mainOrder.getSalesOrderItemList());
+        if (res <= 0) {
+            throw  new RuntimeException("添加订单出错,保存订单项失败");
+        }
+        // 保存子订单的内容
+        if(listSalesOrder.size() > 0){
+            for (int i = 0;i<listSalesOrder.size();i++){
+                // 生产交易号
+                listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
+                if(listSalesOrder.get(i).getSalesOrderId() != null && !"".equals(listSalesOrder.get(i).getSalesOrderId())){
+                    listSalesOrder.get(i).setSalesOrderId(listSalesOrder.get(i).getSalesOrderId()+"-"+(i+1));
+                }
+                // 主订单id
+                listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
+                listSalesOrder.get(i).setSalesId(null);
+                calculationTotal(listSalesOrder.get(i),listSalesOrder.get(i).getSalesOrderItemList());
+                res = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
+                if (res <= 0) {
+                    throw  new RuntimeException("添加子订单出错");
+                }
+                for (SalesOrderItem item : listSalesOrder.get(i).getSalesOrderItemList()) {
+                    item.setItemOrderId(listSalesOrder.get(i).getSalesId());
+                }
+                // 批量添加订单项数据
+                res = salesOrderMapper.addOrderItemList(listSalesOrder.get(i).getSalesOrderItemList());
+                if (res <= 0) {
+                    throw  new RuntimeException("添加子订单出错,保存订单项失败");
                 }
             }
         }
         // 修为维修记录为已下单
-        if(detectIds != null){
-            if(detectIds.length > 0){
-                for(String detectId : detectIds){
-                    ComplaintDetectInfo detectInfo = new ComplaintDetectInfo();
-                    detectInfo.setDetectId(Integer.valueOf(detectId));
-                    detectInfo.setDetectPlaceorder(2);
-                    detectInfo.setSalesOrderId(mainOrder.getSalesOrderId());
-                    complaintDetectInfoMapper.updateDetectById(detectInfo);
-                }
+        if(detectIds != null && detectIds.length > 0){
+            for(String detectId : detectIds){
+                ComplaintDetectInfo detectInfo = new ComplaintDetectInfo();
+                detectInfo.setDetectId(Integer.valueOf(detectId));
+                detectInfo.setDetectPlaceorder(2);
+                detectInfo.setSalesOrderId(mainOrder.getSalesOrderId());
+                complaintDetectInfoMapper.updateDetectById(detectInfo);
             }
         }
         // 缓存订单项

+ 37 - 53
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -1055,29 +1055,29 @@ public class AdminOrderController {
         }else{
             batchId = orderBatch;
         }
-        StringBuffer sb = new StringBuffer();
-         for(SalesOrder salesOrders: mapsalesOrderList.values()){
-             String salesDealCode = salesOrders.getSalesDealCode();
-             salesOrders.setSalesBatchId(batchId);
-             //增加订单方式 1:手动增加 2:Excel导入
-
-             try{
-                 DealerChannel dealerChannel = new DealerChannel();
-                 boolean flag = true;
-                 if(salesOrders.getSalesStoreId() != null){
-                     dealerChannel.setStoreId(salesOrders.getSalesStoreId());
-                     List<DealerChannel>  dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
-                     if(dealerChannelList!= null && dealerChannelList.size() > 0){
-                         dealerChannel = dealerChannelList.get(0);
-                     }else{
-                         salesOrders.setSalesDealCode("1");  //salesDealCode
-                         throw new Exception("订单导入失败-查询店铺对应客户信息失败,店铺ID:"+salesOrders.getSalesStoreId()+"。");
-                     }
+        StringBuilder sb = new StringBuilder();
+        for(SalesOrder salesOrders: mapsalesOrderList.values()){
+            String salesDealCode = salesOrders.getSalesDealCode();
+            salesOrders.setSalesBatchId(batchId);
+            //增加订单方式 1:手动增加 2:Excel导入
+
+            try{
+                DealerChannel dealerChannel = new DealerChannel();
+                boolean flag = true;
+                if(salesOrders.getSalesStoreId() != null){
+                    dealerChannel.setStoreId(salesOrders.getSalesStoreId());
+                    List<DealerChannel>  dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
+                    if(dealerChannelList!= null && dealerChannelList.size() > 0){
+                        dealerChannel = dealerChannelList.get(0);
+                    }else{
+                        salesOrders.setSalesDealCode("1");
+                        throw new Exception("订单导入失败-查询店铺对应客户信息失败,店铺ID:"+salesOrders.getSalesStoreId()+"。");
+                    }
 
-                     DealerProduct smallDp = new DealerProduct();
-                     smallDp.setDealerId(dealerChannel.getDealerId());
-                     smallDp.setDealChannelId(dealerChannel.getDealChannelId());
-                     List<DealerProduct> smallDpList = dealerProductService.getProductByChannelList(smallDp);
+                    DealerProduct smallDp = new DealerProduct();
+                    smallDp.setDealerId(dealerChannel.getDealerId());
+                    smallDp.setDealChannelId(dealerChannel.getDealChannelId());
+                    List<DealerProduct> smallDpList = dealerProductService.getProductByChannelList(smallDp);
 
                      //表示分配剩余总金额
                      Integer lastTotal = salesOrders.getSalesAmount();
@@ -1107,11 +1107,11 @@ public class AdminOrderController {
                                  }
                              }
                              if(!isHaveColorId){
-                                 salesOrders.setSalesDealCode("1");  //salesDealCode
+                                 salesOrders.setSalesDealCode("1");
                                  throw new Exception("订单导入-未能从该客户中获取到对应产品的信息,客户名称:"+dealerChannel.getDealerName()+",---产品:"+ salesOrderItem.getItemProductName()+"("+ salesOrderItem.getItemProductColor() +")。");
                              }
                          }else{
-                             salesOrders.setSalesDealCode("1");  //salesDealCode
+                             salesOrders.setSalesDealCode("1");
                              throw new Exception("订单导入-未能从该客户中获取到对应产品的信息,客户名称:"+dealerChannel.getDealerName()+",---产品:"+ salesOrderItem.getItemProductName()+"("+ salesOrderItem.getItemProductColor() +")。");
                          }
 
@@ -1154,35 +1154,19 @@ public class AdminOrderController {
                              }
                          }
                      }
-                 }else{
-                     salesOrders.setSalesDealCode("1");  //salesDealCode
-                     throw new Exception("订单导入-获取店铺ID失败,店铺ID:"+salesOrders.getSalesStoreId()+"。");
-                 }
-
-                 //计算订单总金额
-//                 Integer itemProductPrice=0;   //产品市场价
-//                 Integer itemProductDiscount=0; //产品折扣价
-                 for (SalesOrderItem salesOrderItem:salesOrders.getSalesOrderItemList()) {
-                     salesOrderItem.setItemProductPrice(0);
-                     salesOrderItem.setItemProductDiscount(0);
-                 }
-                 salesOrders.setSalesPayMoney(salesOrders.getSalesAmount());
-
-
-//                    bl = salesOrderService.addRstOrderAndIteminfo(salesOrders);
-//                    if(bl == false){
-//                        logger.info("合并订单出错+:"+bl + "错误交易号为:"+salesDealCode);
-//                        for(EfastOrder efastOrderStyle:orderEfasts){
-//                            if(salesDealCode.equals(efastOrderStyle.getPlatformOrderId()))
-//                                efastOrderStyle.setStyleColor("color:red;");
-//                        }
-//                    }else{
-//                        for(EfastOrder efastOrderStyle:orderEfasts){
-//                            if(salesDealCode.equals(efastOrderStyle.getPlatformOrderId()))
-//                                efastOrderStyle.setStyleColor("color:black;");
-//                        }
-//                        sb.append(salesDealCode+"\r\n");
-//                    }
+                     }else{
+                         salesOrders.setSalesDealCode("1");
+                         throw new Exception("订单导入-获取店铺ID失败,店铺ID:"+salesOrders.getSalesStoreId()+"。");
+                     }
+
+                    //计算订单总金额
+                    //Integer itemProductPrice=0;   //产品市场价
+                    //Integer itemProductDiscount=0; //产品折扣价
+                    for (SalesOrderItem salesOrderItem:salesOrders.getSalesOrderItemList()) {
+                        salesOrderItem.setItemProductPrice(0);
+                        salesOrderItem.setItemProductDiscount(0);
+                    }
+                    salesOrders.setSalesPayMoney(salesOrders.getSalesAmount());
                     bl = salesOrderService.addRstOrderinfo(salesOrders,new ArrayList<SalesOrder>(),null);
                 }catch (Exception e){
                     e.printStackTrace();