Browse Source

Merge branch 'master' of ssh://47.103.131.176:10022/var/git/bswas

zhouzhendong 3 năm trước cách đây
mục cha
commit
1abe339389

+ 2 - 0
app/Filters/WorkOrderFilters.php

@@ -153,6 +153,8 @@ class WorkOrderFilters
     {
         if (Gate::allows('订单管理-工单处理-货主编辑') || Gate::allows('订单管理-工单处理-客服编辑')) {
             $this->queryBuilder->whereIn('owner_id', $owner_ids);
+        }else if(Gate::allows('订单管理-工单处理-承运商编辑')){
+            $this->queryBuilder->whereIn('owner_id', $owner_ids);
         }
     }
 

+ 153 - 0
app/Http/ApiControllers/RejectController.php

@@ -0,0 +1,153 @@
+<?php
+
+
+namespace App\Http\ApiControllers;
+
+
+use App\Jobs\SyncOrderRejectingStatusJob;
+use App\Logistic;
+use App\QualityLabel;
+use App\RejectedBill;
+use App\RejectedBillItem;
+use Illuminate\Http\Request;
+
+
+class RejectController
+{
+    /**
+     * @api {post} /reject/save 录入退货登记
+     * @apiName save
+     * @apiGroup reject
+     *
+     *
+     * @apiSuccess {string} message 响应描述
+     * @apiSuccess {int} status_code HTTP响应码
+     * @apiSuccess {bool} data 结果
+     *
+     * @apiSuccessExample {json} Success-Response:
+     *     HTTP/1.1 200 OK
+     *     {
+     *       "message": "请求成功",
+     *       "status_code": "200"
+     *       "data":true
+     *     }
+     *
+     */
+    public function rejectSave(Request $request)
+    {
+        $logistic_number_return=$request->input('logistic_number_return');
+        $logistics_name=$request->input('logistics_name');
+        if (!$logistic_number_return||!$logistics_name){
+            $response["message"] = "请求失败,未携带退回单号或未指定快递公司";
+            $response["code"] = 410;
+            return response()->json($response);
+        }
+        $id_logistic_return=Logistic::query()->where("belong_company",$logistics_name)->first()['id'];
+        $data=$request->all();
+        $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
+        if (!$rejectBill){
+            $rejectBillNew=new RejectedBill();
+            $rejectBillNew->logistic_number_return=$data['logistic_number_return']??'';
+            $rejectBillNew->id_owner=$data['id_owner']??'';
+            $rejectBillNew->order_number=$data['order_number']??'';
+            $rejectBillNew->sender=$data['sender']??'';
+            $rejectBillNew->mobile_sender=$data['mobile_sender']??'';
+            $rejectBillNew->remark=$data['remark']??'';
+            $rejectBillNew->id_operator=3754;
+            $rejectBillNew->id_logistic_return=$id_logistic_return;
+            $rejectBillNew->save();
+            $this->saveRejectBillItem($data,$rejectBillNew);
+            SyncOrderRejectingStatusJob::dispatch($rejectBillNew);
+        }else{
+            RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
+            $this->saveRejectBillItem($data,$rejectBill);
+            SyncOrderRejectingStatusJob::dispatch($rejectBill);
+        }
+        $response["message"] = "退件信息保存成功";
+        $response["code"] = 200;
+        return response()->json($response);
+    }
+
+    /**
+     * @api {post} /reject/delete 删除退货登记
+     * @apiName delete
+     * @apiGroup reject
+     *
+     *
+     * @apiSuccess {string} message 响应描述
+     * @apiSuccess {int} status_code HTTP响应码
+     * @apiSuccess {bool} data 结果
+     *
+     * @apiSuccessExample {json} Success-Response:
+     *     HTTP/1.1 200 OK
+     *     {
+     *       "message": "请求成功",
+     *       "status_code": "200"
+     *       "data":true
+     *     }
+     *
+     */
+    public function rejectDelete(Request $request){
+        $logistic_number_return=$request->input('logistic_number_return');
+        if (!$logistic_number_return){
+            $response["message"] = "请求失败,未携带退回单号";
+            $response["code"] = 410;
+            return response()->json($response);
+        }
+        $rejectBill=RejectedBill::query()->where("logistic_number_return",$logistic_number_return)->first();
+        if ($rejectBill){
+            RejectedBillItem::query()->where('id_rejected_bill',$rejectBill->id)->delete();
+            $rejectBill->delete();
+        }
+        $response["message"] = "退件信息删除成功";
+        $response["code"] = 200;
+        return response()->json($response);
+    }
+    /**
+     * @api {post} /rejectBillItem/delete 删除退货登记
+     * @apiName rejectBillItemDelete
+     * @apiGroup reject
+     *
+     *
+     * @apiSuccess {string} message 响应描述
+     * @apiSuccess {int} status_code HTTP响应码
+     * @apiSuccess {bool} data 结果
+     *
+     * @apiSuccessExample {json} Success-Response:
+     *     HTTP/1.1 200 OK
+     *     {
+     *       "message": "请求成功",
+     *       "status_code": "200"
+     *       "data":true
+     *     }
+     *
+     */
+    public function rejectBillItemDelete(Request $request){
+        $data=$request->all();
+        if (!$data['logistic_number_return']){
+            $response["message"] = "请求失败,未携带退回单号";
+            $response["code"] = 410;
+            return response()->json($response);
+        }
+        $rejectBill_id=RejectedBill::query()->where("logistic_number_return",$data['logistic_number_return'])->first()['id'];
+        RejectedBillItem::query()->where('id_rejected_bill',$rejectBill_id)
+            ->where('barcode_goods',$data['barcode_goods'])->delete();
+        $response["message"] = "退件明细信息删除成功";
+        $response["code"] = 200;
+        return response()->json($response);
+    }
+
+    private function saveRejectBillItem($data,$rejectBill){
+        foreach ($data['rejectItems'] as $item){
+            $id_quality_label=QualityLabel::query()->where('name',$item['quality'])->first()['id'];
+            $rejectBillItemNew = new RejectedBillItem();
+            $rejectBillItemNew->id_rejected_bill=$rejectBill->id;
+            $rejectBillItemNew->barcode_goods=$item['barcode_goods']??'';
+            $rejectBillItemNew->name_goods=$item['name_goods']??'';
+            $rejectBillItemNew->amount=$item['amount']??'';
+            $rejectBillItemNew->remark=$item['remark']??'';
+            $rejectBillItemNew->id_quality_label=$id_quality_label;
+            $rejectBillItemNew->save();
+        }
+    }
+}

+ 10 - 4
app/Http/Controllers/HandInStorageController.php

@@ -12,6 +12,7 @@ use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Log;
+use PhpParser\Node\Stmt\DeclareDeclare;
 
 class HandInStorageController extends Controller
 {
@@ -109,8 +110,8 @@ class HandInStorageController extends Controller
         if ($info['lotatt02']&&Carbon::now()->gt($info['lotatt02']))$this->error('失效日期超过入库效期');
         if (!$info['customerid']||$isSku===false||!$info['asnno']||$isReceivedqty===false||$isExpectedqty===false) $this->error('参数错误');
         if ($info['amount'] + $info['receivedqty'] > $info['expectedqty']) $this->error('收货数大于预期数');
-        //九干仓禁止使用当前app收货
-        $res=$this->screenWarehouseAndContrast($info['customerid']);
+        //入库类型为CGRK的九干仓泗砖仓货主禁止使用当前app收货
+        $res=$this->screenWarehouseAndContrast($info['customerid'],$info['asnno']);
         if ($res)$this->error('禁止使用当前app收货,请换用新版app收货!');
         /** @var HandInStorageService $handInStorageService  */
         $handInStorageService=app('HandInStorageService');
@@ -148,8 +149,13 @@ class HandInStorageController extends Controller
         }
     }
 
-    public function screenWarehouseAndContrast($ownerCode): bool
+    public function screenWarehouseAndContrast($ownerCode,$asnno): bool
     {
+        $asnHeader=OracleDOCASNHeader::query()
+            ->where('asnno',$asnno)
+            ->select('asntype')
+            ->first();
+        if ($asnHeader&&$asnHeader['asntype']!='CGRK')return false;
         $owners=Owner::query()
             ->select('code')
             ->whereIn('warehouse_id',[2,3])//3 代表九干仓仓库id  2代表泗砖仓id
@@ -218,7 +224,7 @@ class HandInStorageController extends Controller
         $checkData=$request->input('checkData')[0];
 
         //九干仓禁止使用当前app上架
-        $res=$this->screenWarehouseAndContrast($checkData['customerid']);
+        $res=$this->screenWarehouseAndContrast($checkData['customerid'],$checkData['docno']);
         if ($res)$this->error('禁止使用当前app上架,请换用新版app上架!');
 
         /** @var HandInStorageService $handInStorageService  */

+ 1 - 0
app/Http/Controllers/StoreCountGoodsAndReceiveController.php

@@ -10,6 +10,7 @@ use App\Services\HandInStorageService;
 use Carbon\Carbon;
 use Doctrine\DBAL\Exception;
 use Doctrine\DBAL\Exception\DatabaseObjectExistsException;
+use Doctrine\DBAL\Schema\AbstractAsset;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;

+ 16 - 11
resources/views/order/workOrder/index.blade.php

@@ -319,17 +319,20 @@
                                 <template v-if="receivingInfo">
                                     <td  class="text-muted text-wrap text-letter"
                                          >
-                                        <div class="text-overflow-warp-200 warp-min-200" v-text="item.consignee_name">
-                                        </div>
+                                        <span class="text-overflow-warp-200 warp-min-200" v-text="item.consignee_name">
+                                        </span>
                                     </td>
                                     <td class="text-muted text-wrap text-letter">
-                                        <div class="text-overflow-warp-200 warp-min-200"
-                                             v-text="item.consignee_phone"></div>
+                                        <span class="text-overflow-warp-200 warp-min-200"
+                                             v-text="item.consignee_phone"></span>
                                     </td>
                                     <td v-text="item.province"></td>
                                     <td v-text="item.city"></td>
                                     <td v-text="item.district"></td>
-                                    <td v-text="item.address"></td>
+                                    <td class="text-muted text-wrap text-letter">
+                                        <span class="text-overflow-warp-200 warp-min-200"
+                                             v-text="item.address"></span>
+                                    </td>
                                 </template>
                                 <td v-text="item.status"></td>
                                 <td v-text="item.result_explain ? item.result_explain: item.remark"></td>
@@ -912,6 +915,10 @@
                         //
                     ],
                     [
+                        // 快递单号
+                        {
+                            name: 'logistic_number', type: 'input', placeholder: '快递单号'
+                        },
                         // 承运人
                         {
                             name: 'logistic',
@@ -920,10 +927,7 @@
                             tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的承运商'],
                             placeholder: ['承运商', '定位或多选承运商']
                         },
-                        // 快递单号
-                        {
-                            name: 'logistic_number', type: 'input', placeholder: '快递单号'
-                        },
+
                         // 当前处理人
                         {
                             name: 'status', type: 'select_multiple_select',
@@ -1085,6 +1089,9 @@
                         {name: 'client_code', type: 'input', placeholder: '客户订单号'},
 
                     ], [
+
+                        // 快递单号
+                        {name: 'logistic_number', type: 'input', placeholder: '快递单号'},
                         // 承运商
                         {
                             name: 'logistic',
@@ -1093,8 +1100,6 @@
                             tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的承运商'],
                             placeholder: ['承运商', '定位或多选承运商']
                         },
-                        // 快递单号
-                        {name: 'logistic_number', type: 'input', placeholder: '快递单号'},
                         // 当前处理人
                         {
                             name: 'status', type: 'select_multiple_select',

+ 5 - 3
resources/views/rejected/rejectedPushTask/index.blade.php

@@ -172,7 +172,7 @@
             <div class="modal-dialog " style="max-width: 100% !important;">
                 <div class="modal-content ">
                     <div class="modal-header ">
-                        <h5 class="modal-title" id="staticBackdropLabel">明细</h5>
+                        <h5 class="modal-title" id="staticBackdropLabel">订单明细</h5>
                         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                             <span aria-hidden="true">&times;</span>
                         </button>
@@ -233,7 +233,7 @@
             <div class="modal-dialog modal-lg">
                 <div class="modal-content ">
                     <div class="modal-header ">
-                        <h5 class="modal-title" id="staticBackdropLabel">明细</h5>
+                        <h5 class="modal-title" id="staticBackdropLabel">商品明细</h5>
                         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                             <span aria-hidden="true">&times;</span>
                         </button>
@@ -244,6 +244,7 @@
                             <table class="table table-sm"
                                    style="background: #fff;" id="tableCommodity">
                                 <tr v-for="(item,i) in showDetailData.commodityDetail.data" :key="i">
+                                    <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
                                     <td class="td-warm text-muted"><span>@{{ item.taskNum }}</span></td>
                                     <td class="td-warm text-muted"><span>@{{ item.sku }}</span></td>
                                     <td class="td-warm text-muted"><span>@{{ item.nameGoods }}</span></td>
@@ -494,7 +495,7 @@
                     let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/init?ownerId=${this.assign.ownerId}`
                     axios.get(url).then(res => {
                         if (res.data.code !== 200) {
-                            tempTip.show('接口异常!');
+                            tempTip.show(res.data.message);
                             tempTip.setDuration(2000)
                         } else {
                             this.searchData();
@@ -629,6 +630,7 @@
                     } else {
                         idList = [id];
                     }
+                    if(!confirm('确定要停止攒单吗?')){return};
                     axios.post(url, {idList}).then(res => {
                         if (res.data.code !== 200) {
                             tempTip.show(res.data.message);

+ 5 - 0
routes/api.php

@@ -44,4 +44,9 @@ Route::prefix("v1")->group(function (){
             });
         });
 });
+Route::prefix("reject")->group(function () {
+    Route::POST('save', 'RejectController@rejectSave');
+    Route::GET('delete', 'RejectController@rejectDelete');
+    Route::GET('itemDelete', 'RejectController@rejectBillItemDelete');
+});