Prechádzať zdrojové kódy

退货管理-导出去除软删除数据
订单管理-分箱号拆出一条SQL单独查询

Zhouzhendong 5 rokov pred
rodič
commit
10fb9f8f35

+ 1 - 1
app/Http/Controllers/RejectedController.php

@@ -411,7 +411,7 @@ class RejectedController extends Controller
         }
         return response($post,200, [
             "Content-type"=>"application/octet-stream",
-            "Content-Disposition"=>"attachment; filename=单列表-".date('ymdHis').'.xlsx',
+            "Content-Disposition"=>"attachment; filename=退货单列表-".date('ymdHis').'.xlsx',
         ]);
     }
 

+ 12 - 11
app/Services/OrderService.php

@@ -199,7 +199,7 @@ class OrderService
                     'paginate'=>$paginate,'page'=>$page]);
             $params['ordernos'] = $ordernos;
         }
-        $sql="select ACT_ALLOCATION_DETAILS.picktotraceid,ACT_ALLOCATION_DETAILS.CHECKTIME,DOC_ORDER_HEADER.addtime,DOC_ORDER_HEADER.C_PROVINCE,DOC_ORDER_HEADER.C_CITY,DOC_ORDER_HEADER.C_DISTRICT,DOC_ORDER_HEADER.C_CONTACT,DOC_ORDER_HEADER.OrderNo,DOC_ORDER_HEADER.SOStatus,DOC_ORDER_HEADER.WAREHOUSEID,DOC_ORDER_HEADER.CustomerID
+        $sql="select ACT_ALLOCATION_DETAILS.CHECKTIME,DOC_ORDER_HEADER.addtime,DOC_ORDER_HEADER.C_PROVINCE,DOC_ORDER_HEADER.C_CITY,DOC_ORDER_HEADER.C_DISTRICT,DOC_ORDER_HEADER.C_CONTACT,DOC_ORDER_HEADER.OrderNo,DOC_ORDER_HEADER.SOStatus,DOC_ORDER_HEADER.WAREHOUSEID,DOC_ORDER_HEADER.CustomerID
         ,DOC_ORDER_HEADER.C_Tel2,DOC_ORDER_HEADER.C_Tel1,DOC_ORDER_HEADER.CarrierName,DOC_ORDER_HEADER.IssuePartyName,DOC_ORDER_HEADER.EDIREMARKS2,
        DOC_ORDER_HEADER.WaveNo,DOC_ORDER_HEADER.SOReference1
         ,DOC_ORDER_HEADER.soreference5,DOC_ORDER_HEADER.EDISENDFLAG2,DOC_ORDER_HEADER.EDISendTime2,DOC_ORDER_HEADER.Notes,DOC_ORDER_HEADER.ERPCANCELFLAG,
@@ -239,9 +239,9 @@ class OrderService
                       left join BAS_CODES  order_detail_code on order_detail_code.CODE=DOC_ORDER_DETAILS.linestatus and order_detail_code.codeid='SO_STS'
                       left join BAS_Customer on BAS_Customer.customerid=DOC_ORDER_HEADER.customerid
                       left join  BAS_SKU on DOC_Order_Details.CustomerID=BAS_SKU.CustomerID and DOC_Order_Details.SKU=BAS_SKU.SKU
-                      left join ACT_ALLOCATION_DETAILS on DOC_Order_Details.orderno=ACT_ALLOCATION_DETAILS.orderno and
-                      DOC_Order_Details.orderlineno=ACT_ALLOCATION_DETAILS.orderlineno GROUP BY ACT_ALLOCATION_DETAILS.picktotraceid,
-                      ACT_ALLOCATION_DETAILS.CHECKTIME,DOC_ORDER_HEADER.addtime,DOC_ORDER_HEADER.C_PROVINCE,DOC_ORDER_HEADER.C_CITY,
+                      left join  ACT_ALLOCATION_DETAILS on DOC_Order_Details.orderno = ACT_ALLOCATION_DETAILS.orderno 
+                      and DOC_Order_Details.ORDERLINENO = ACT_ALLOCATION_DETAILS.ORDERLINENO
+                      GROUP BY ACT_ALLOCATION_DETAILS.CHECKTIME,DOC_ORDER_HEADER.addtime,DOC_ORDER_HEADER.C_PROVINCE,DOC_ORDER_HEADER.C_CITY,
                       DOC_ORDER_HEADER.C_DISTRICT,DOC_ORDER_HEADER.C_CONTACT,DOC_ORDER_HEADER.OrderNo,DOC_ORDER_HEADER.SOStatus,DOC_ORDER_HEADER.WAREHOUSEID,
                       DOC_ORDER_HEADER.CustomerID,DOC_ORDER_HEADER.C_Tel2,DOC_ORDER_HEADER.C_Tel1,DOC_ORDER_HEADER.CarrierName,DOC_ORDER_HEADER.IssuePartyName,
                       DOC_ORDER_HEADER.EDIREMARKS2,DOC_ORDER_HEADER.WaveNo,DOC_ORDER_HEADER.SOReference1, DOC_ORDER_HEADER.soreference5,
@@ -287,19 +287,13 @@ class OrderService
 
     private function orderFormat($orders){
         $commodities=[];
+        $orderNos = "(''";
         $picktotraceids=[];
         /*
          * 第二种扁平化方式(节省空间): 使用快慢指针,因拿到数据正常为顺序数据,自下标1开始与上一条对比orderno唯一标识,不同则更新慢指针下标,
          *  相同则为指定下标map类型数组追加一个键值对属性来记录同类数量,如N条,每次追加属性时先看属性是否存在,存在+1
          * */
         foreach ($orders as $index=>$order){
-            if ($order->picktotraceid){
-                if (array_key_exists($order->orderno,$picktotraceids)){
-                    if (!in_array($order->picktotraceid,$picktotraceids[$order->orderno],true)){
-                        array_push($picktotraceids[$order->orderno],$order->picktotraceid);
-                    };
-                }else $picktotraceids[$order->orderno] = [$order->picktotraceid];
-            }
             if (isset($commodities[$order->orderno])){
                 array_push($commodities[$order->orderno],
                     ["sku"=>$order->sku,"alternate_sku1"=>$order->alternate_sku1,"descr_c"=>$order->descr_c,"qtyordered"=>$order->qtyordered
@@ -309,6 +303,13 @@ class OrderService
             }
             $commodities[$order->orderno]=[["sku"=>$order->sku,"alternate_sku1"=>$order->alternate_sku1,
                 "descr_c"=>$order->descr_c,"qtyordered"=>$order->qtyordered,"checktime"=>$order->checktime,"orderdetailcodename"=>$order->orderdetailcodename]];
+            $orderNos .= ",'".$order->orderno."'";
+        }
+        $orderNos .= ")";
+        $allocations = DB::connection("oracle")->select(DB::raw("SELECT DROPID,ORDERNO FROM ACT_ALLOCATION_DETAILS WHERE orderno IN ".$orderNos." GROUP BY (DROPID,ORDERNO)"));
+        foreach ($allocations as $allocation){
+            if (isset($picktotraceids[$allocation->orderno])) $picktotraceids[$allocation->orderno][] = $allocation->dropid;
+            else $picktotraceids[$allocation->orderno] = [$allocation->dropid];
         }
         $picktotraceids=json_encode($picktotraceids);
         $orders=array_values($orders);

+ 1 - 1
app/Services/RejectedService.php

@@ -126,7 +126,7 @@ class RejectedService
                 rejected_bill_items.batch_number item_batch_number,
                 rejected_bill_items.made_at item_made_at,
                 rejected_bill_items.validity_at item_validity_at,
-                rejected_bill_items.remark item_remark')
+                rejected_bill_items.remark item_remark')->whereNull("rejected_bill_items.deleted_at")
             ->leftJoin('quality_labels','rejected_bill_items.id_quality_label','=','quality_labels.id')
             ->selectRaw('quality_labels.name quality_label_name')
             ->leftJoin('users','rejected_bills.id_operator','=','users.id')