Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

eric2h 3 vuotta sitten
vanhempi
commit
d52f15dbae

+ 12 - 3
app/Http/ApiControllers/WaybillController.php

@@ -84,7 +84,10 @@ sql;
                 $result[$item->date] = $item->sum!==null ? round((double)$item->sum) : 0.0;
             }
         }
-        $this->response(["waybills"=>$waybills,"mapping"=>$result]);
+        return response()->json(["status_code"=>200,
+            "data"=>["waybills"=>$waybills,"mapping"=>$result],
+            "message"=>null]);
+        //$this->response(["waybills"=>$waybills,"mapping"=>$result]);
     }
 
     /**
@@ -119,7 +122,10 @@ sql;
         $result = Waybill::query()->where("id",$request->input("id"))
             ->update($request->validated());
         if ($result==0)$this->response(false,204,"单据状态发生变化,修改失败");
-        $this->response(true);
+        return response()->json(["status_code"=>200,
+            "data"=>true,
+            "message"=>null]);
+        //$this->response(true);
     }
 
     /**
@@ -151,6 +157,9 @@ sql;
         $param=array('screenDate'=>$deliverAt,'billing'=>$fee);
         $waybills=app('WaybillService')->dailyBilling($param,true);
         if ($waybills===0 || $waybills===1 || !isset($waybills)) $this->response(false);
-        $this->response(true);
+        return response()->json(["status_code"=>200,
+            "data"=>true,
+            "message"=>null]);
+        //$this->response(true);
     }
 }

+ 2 - 1
app/Http/Controllers/OrderController.php

@@ -51,11 +51,12 @@ class OrderController extends Controller
         $orderService->tagOrderByOrderIssue($orders);
         app('WorkOrderService')->tagWorkOrder($orders);
         $commodities = $result['commodities'];
+        $attributes = DB::connection('oracle')->select("select CODE,CODENAME_C from BAS_CODES where CODEID='CUS_UDFPC' AND SHOW_SEQUENCE = 0");
         $customers = app(OwnerService::class)->getQuery()->select("code","name")->get();
         $page = $request["page"] ?? 1;
         $codes = DB::connection('oracle')->table('BAS_CODES')->select('code', 'codename_c')->where('codeid', 'SO_STS')->orderBy('code', 'asc')->get();
         $orderIssueType = $this->orderIssueTypeService->getOrderIssueType();
-        return view('order/index/delivering', compact('orders', 'customers', 'request', 'codes', 'commodities', 'page', 'picktotraceids', 'orderIssueType', 'logistics'));
+        return view('order/index/delivering', compact('orders', 'customers', 'request', 'codes', 'commodities', 'page', 'picktotraceids', 'orderIssueType', 'logistics','attributes'));
     }
 
     //导出

+ 2 - 0
app/Http/Controllers/PackageLogisticController.php

@@ -163,6 +163,7 @@ class PackageLogisticController extends Controller
         $row = [
             '单号',
             '状态',
+            '异常状态',
             '快递公司',
             '货主',
             '省份',
@@ -216,6 +217,7 @@ class PackageLogisticController extends Controller
             $data = [
                 $orderPackage->logistic_number ?? '',//单号
                 $orderPackage->status ?? '',//状态
+                $orderPackage->exception_status ?? '',//异常状态
                 $orderPackage->order->logistic->name ?? '',//快递公司
                 $orderPackage->order->owner->name ?? '',//货主
                 $orderPackage->order->province ?? '',//省份

+ 7 - 5
app/Http/Controllers/TestController.php

@@ -55,11 +55,13 @@ class TestController extends Controller
     }
     public function test(Request $request)
     {
-        $list = DB::connection("aliyunMysql")->select("select * from equipment where category_id = 0 and type = 0 and parent_id is null");
-        foreach ($list as $item) {
-            $obj = json_decode($item->info);
-            var_dump(DB::connection("aliyunMysql")->update("update equipment set category_id = {$obj->id} where id = {$item->id} or parent_id = {$item->id}"));
-        }
+        $req = json_decode(
+            <<<json
+{"request":[{"OrderNo":"SO220824002947","CustomerID":"HENIAN-NEW","CarrierID":"BSZFC","ConsigneeName":"\u674e\u521a","C_Tel1":"13386015319,13386015319","C_Address1":"\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02\u5e38\u719f\u5e02\u83ab\u57ce\u8857\u4e1c\u8def3\u53f7\u7199\u9ea6\u957f\u4e09\u89d2\u65f6\u5c1a\u4f9b\u5e94\u94fe\u4e00\u671f3\u697c2\u53f7\u5e93","C_Province":"\u6c5f\u82cf\u7701","C_City":"\u82cf\u5dde\u5e02","C_District":"\u5e38\u719f\u5e02","ReservedField01":"199270842873-SDO516764043198","ReservedField02":null,"ReservedField03":null,"ReservedField04":null,"ReservedField05":null,"order_list":[{"SKU_Descr_c":"Vsinger \u6d1b\u5929\u4f9d 8\u738b\u9f99\u7cfb\u5217\u76d2\u86cb\uff08BOX\uff09","SKU":"6974260921198","Alternate_sku1":"6974260921198","Qtyordered_each":"108","Cubic":"0","GrossWeight":"0","NetWeight":"0","ReservedField01":null,"ReservedField02":null,"ReservedField03":null,"ReservedField04":null,"ReservedField05":null}]}]}
+json
+
+            , true);
+        dd(Http::post("https://api.baoshi56.com/oapi/device/check/waybill/create", $req)->body());
     }
 }
 

+ 4 - 0
app/Http/Controllers/api/thirdPart/flux/WaybillController.php

@@ -15,6 +15,7 @@ use App\WMSWaybillOrder;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Http;
 use Illuminate\Support\Facades\Validator;
 use Ramsey\Uuid\Uuid;
 use Zttp\Zttp;
@@ -32,6 +33,9 @@ class WaybillController extends Controller
                 'errors'=>$errors]]])
                 ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
         }
+        try {
+            Http::post("https://api.baoshi56.com/oapi/device/check/waybill/create", $request->input());
+        } catch (\Exception $e){}
         $receivedInputtings=$request->input('request');
         foreach ($receivedInputtings as $receiveInputting){
             if(!WMSWaybill::query()->create($receiveInputting)){

+ 1 - 1
app/Http/Requests/AndroidGateRequest.php

@@ -31,7 +31,7 @@ class AndroidGateRequest extends FormRequest
         foreach ($authorities as $authority){
             if ($this->method() != Authority::METHOD[$authority->method])continue;
             if ($authority->route == $routeStr)return true; //相等
-            if (strpos($authority->route,"*")===false)continue;//无泛匹配符
+            if (!str_contains($authority->route, "*"))continue;//无泛匹配符
             $route = explode("/",$authority->route);
 
             $crLen = count($routes);

+ 2 - 2
app/Providers/AppServiceProvider.php

@@ -436,8 +436,8 @@ class AppServiceProvider extends ServiceProvider
     {
         Owner::observe(OwnerObserver::class);
         UserWorkgroup::observe(UserWorkGroupObserver::class);
-        Menu::observe(MenuObserver::class);
-        Authority::observe(AuthorityObserver::class);
+        //Menu::observe(MenuObserver::class);
+        //Authority::observe(AuthorityObserver::class);
     }
 
     private function registerProvider()

+ 1 - 0
app/Services/CheckActiveMenuService.php

@@ -76,6 +76,7 @@ class CheckActiveMenuService
      */
     public static function activeMenus()
     {
+        return collect();
         $user_id = self::getUserId();
         $result = collect();
         try {

+ 3 - 1
app/Services/DbOpenService.php

@@ -29,7 +29,9 @@ class DbOpenService
         $body = $this->formatWaybillData($waybill);
         try {
             $response = httpPost(config('api_logistic.DB.prod.uri')['create_order'], $body, $header);
-            if (!$response["result"])return null;
+            if (!$response["result"]) {
+                return null;
+            }
             return $response ?? '';
         }catch (\Exception $e){
             $this->push(__METHOD__."->".__LINE__,"德邦接口请求失败",$e->getMessage() . ' | '.json_encode($response ?? ''));

+ 2 - 2
app/Services/OrderService.php

@@ -333,7 +333,7 @@ SQL;
         ,DOC_ORDER_HEADER.ReleaseStatus,DOC_ORDER_HEADER.C_Address1,DOC_ORDER_HEADER.OrderTime,DOC_Order_Details.CustomerID,
        DOC_Order_Details.SKU,DOC_Order_Details.QtyOrdered,DOC_Order_Details.LOTNUM,DOC_Order_Details.LineStatus,DOC_Order_Details.OrderLineNo,order_code.codename_c as orderCodeName,
        order_detail_code.codename_c as orderDetailCodeName,owner.descr_c as customer_descr_c,
-       BAS_SKU.Alternate_SKU1,BAS_SKU.Descr_C,(select count(*) from DOC_ORDER_HEADER WHERE 1=1";
+       BAS_SKU.Alternate_SKU1,DOC_Order_Details.LOTATT05,BAS_SKU.Descr_C,(select count(*) from DOC_ORDER_HEADER WHERE 1=1";
         $sql = $this->preciseQuery($params, $sql);;
         $sql .= " ) as counted from (";
         if ($paginate && $page) $sql .= " select * from (";
@@ -377,7 +377,7 @@ SQL;
                       DOC_ORDER_HEADER.Picking_Print_Flag,DOC_ORDER_HEADER.EDISENDFLAG,DOC_ORDER_HEADER.ReleaseStatus,DOC_ORDER_HEADER.C_Address1,
                       DOC_ORDER_HEADER.OrderTime,DOC_Order_Details.CustomerID,DOC_Order_Details.SKU,DOC_Order_Details.QtyOrdered,DOC_Order_Details.LOTNUM,
                       DOC_Order_Details.LineStatus,DOC_Order_Details.OrderLineNo,order_code.codename_c,order_detail_code.codename_c,owner.descr_c,logistic.descr_c,
-                      BAS_SKU.Alternate_SKU1,BAS_SKU.Descr_C ORDER BY DOC_ORDER_HEADER.ADDTIME desc)";
+                      BAS_SKU.Alternate_SKU1,DOC_Order_Details.LOTATT05,BAS_SKU.Descr_C ORDER BY DOC_ORDER_HEADER.ADDTIME desc)";
         return $sql;
 
     }

+ 3 - 1
app/Services/WorkOrderInterceptService.php

@@ -200,7 +200,9 @@ class WorkOrderInterceptService extends WorkOrderService
         /** @var WorkOrderDetail $detail */
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '拦截']);
         if ($workOrder->order_issue_type_id != $issueType->id) return;
-        $detail = $workOrder->details()->where('order_issue_type_id', $issueType->id)->where('status','!=', 6)->orderByDesc('created_at')->first();
+        $detail = $workOrder->details()->where('order_issue_type_id', $issueType->id)
+            ->whereNotIn('status',[5,6])
+            ->orderByDesc('created_at')->first();
         if (!$detail) return;
         $process_progress = '成功已退回,不赔偿';
         $detail->update([

+ 2 - 10
resources/views/equipment/_detailInfo.blade.php

@@ -6,14 +6,6 @@
                 <div class="col-4 form-inline h-5 font-weight-bold">
                     设备编号:<input class="form-control" :class="error.code ? 'is-invalid' : ''" v-model="current.code"></input>
                 </div>
-<!--                <div class="col-4">
-                    <div class="form-inline h-50">
-                        设备宽度/M:<input class="form-control form-control-sm" :class="error.width ? 'is-invalid' : ''" type="number" step="0.01" v-model="current.width"></input>
-                    </div>
-                    <div class="form-inline h-50 mt-1">
-                        设备深度/M:<input class="form-control form-control-sm" :class="error.depth ? 'is-invalid' : ''" type="number" step="0.01" v-model="current.depth"></input>
-                    </div>
-                </div>-->
                 <div class="col-4">
                     所属库区:
                     <select class="form-control form-control-sm" v-model="current.repository" :class="error.repositoryId ? 'is-invalid' : ''">
@@ -24,9 +16,9 @@
             </div>
             <div class="modal-body row">
                 <div class="col-6" style="border-right: 1px #D3D3D3 solid">
-                    <div v-for="layer in flipLayer" style="border: 1px #000000 solid;height: 70px;cursor: pointer" @click="nextDetail(layer)"
+                    <div v-for="(item,i) in flipChildren" style="border: 1px #000000 solid;height: 70px;cursor: pointer" @click="nextDetail(i+1)"
                         :style="[{width:100*(current.grid)+'px'}]">
-                        <span class="h-100 w-100 el-center">@{{ layer<10 ? '0'+layer : layer }}</span>
+                        <span class="h-100 w-100 el-center">@{{ item.code ? item.code : i+1 }}</span>
                     </div>
                 </div>
                 <div class="col-6 p-0" :style="[error.children ? {border: '2px red solid'} : '']">

+ 12 - 5
resources/views/equipment/index.blade.php

@@ -502,7 +502,7 @@
                         error : (err,status)=>{
                             window.tempTip.show("坐标信息加载失败");
                         },
-                        timeout:3000,
+                        timeout:8000,
                     })
                 },200);
             },
@@ -1014,9 +1014,15 @@
             },
             //子设备选定时的库位加载
             nextDetail(index){
-                if (!this.current.eqId)return;
+                let children = this.current.children[index-1];
+                if (!this.current.eqId) {
+                    window.tempTip.index = 1050;
+                    window.tempTip.inputVal("子设备编码", (val)=> {
+                        this.$set(this.current.children[index-1], 'code', val);
+                    })
+                    return;
+                }
                 this.batchSign = false;
-                this.currentEqChildIndex = index-1;
                 this.isLoadLocation = true;
                 this._locationAttrDefault();
                 setTimeout(function (){
@@ -1026,7 +1032,6 @@
                     childDom.style.minHeight = parentDom.offsetHeight+'px';
                     $("#locationModal").modal("show");
                 },20);
-                let children = this.current.children[this.currentEqChildIndex];
                 this.current.children.forEach(item=>{
                     item.row = Number(item.row);
                     item.column = Number(item.column);
@@ -1098,6 +1103,7 @@
               this.error = {};
               let error = this._checkEquipmentData(this.current);
               if (JSON.stringify(error)!=="{}"){
+                  console.log(error)
                   this.error = error;return;
               }
               this.exeSave(this.current);
@@ -1151,8 +1157,9 @@
                 if (!equipment.code)error.code = "设备编号未填写";
                 if (equipment.layer !== equipment.children.length)error.children = "设备绑定错误";
                 for (let i=0;i<equipment.layer;i++){
+                    console.log(equipment.children[i])
                     if (!equipment.children[i].height)error["children["+i+"].height"] = "设备高度不得为空"
-                    if (!equipment.children[i].area)error["children["+i+"].height"] = "设备折算面积不得为空"
+                    if (!equipment.children[i].area)error["children["+i+"].area"] = "设备折算面积不得为空"
                     if (!equipment.children[i].column && equipment.children[i].column!=0)error["children["+i+"].column"] = "库位列数不得为空"
                     if (!equipment.children[i].row && equipment.children[i].row!=0)error["children["+i+"].row"] = "库位行数不得为空"
                 }

+ 7 - 0
resources/views/order/index/delivering.blade.php

@@ -160,6 +160,7 @@
                         </td>
                         <td class="text-nowrap"><span>@{{ order.waveno }}</span></td>
                         <td class="text-nowrap"><span> @{{ order.warehouseid }}</span></td>
+                        <td class="text-nowrap"><span> @{{ attributes[order.lotatt05] }}</span></td>
                         <td class="text-nowrap"><span v-if="order.edisendflag2=='Y'">是</span><span
                                 v-if="order.edisendflag2=='N'">否</span><span v-if="order.edisendflag2=='W'">错误</span>
                         </td>
@@ -369,6 +370,11 @@
                     },
                     @endforeach
                 ],
+                attributes: {
+                    @foreach($attributes as $attribute)
+                    '{{$attribute->code}}':'{{$attribute->codename_c}}',
+                    @endforeach
+                },
                 selectedStyle: '',
                 picktotraceidMap: {!! $picktotraceids !!},
                 pagePlaceholder: "",
@@ -611,6 +617,7 @@
                     {name: 'c_address1', value: '收货人地址'},
                     {name: 'waveno', value: '波次编号'},
                     {name: 'warehouseid', value: '仓库'},
+                    {name: 'lotatt05', value: 'ERP属性仓'},
                     {name: 'edisendflag2', value: '快递获取标记'},
                     {name: 'edisendtime2', value: '快递获取时间'},
                     {

+ 11 - 34
resources/views/process/index.blade.php

@@ -157,12 +157,12 @@
         </div>
         <table class="table table-sm text-nowrap table-bordered td-min-width-80" id="table">
             <template>
-            <tr v-for="(processOne,i) in processes" :class="[(count(i,processes)%2===0?'row-even':'' ),selectTr===i+1?'focusing':'']" :id="processOne.id?processOne.id:processes[i-1].id+'-2'"
-                :name="'process_table_'+count(i,processes)" @click="selectTr===i+1?(selectTr=0):selectTr=i+1">
+            <tr v-for="(processOne,i) in processes" :class="[(i%2===0?'row-even':'' ),selectTr===i+1?'focusing':'']" :id="processOne.id?processOne.id:processes[i-1].id+'-2'"
+                :name="'process_table_'+i" @click="selectTr===i+1?(selectTr=0):selectTr=i+1">
                 <td v-if="processOne.id" :rowspan="processOne.is_multi_row?2:''">
                     <input class="checkItem" type="checkbox" :value="processOne.id">
                 </td>
-                <td v-if="processOne.id" class="text-muted" :rowspan="processOne.is_multi_row?2:''" >@{{ count(i,processes) }}</td>
+                <td v-if="processOne.id" class="text-muted" :rowspan="processOne.is_multi_row?2:''" >@{{ i+1 }}</td>
                 <td v-if="processOne.id" style="min-width:200px;" :rowspan="processOne.is_multi_row?2:''">
                     @can("二次加工管理-审核")
                     <button v-if="!processOne.openProcessHour && (processOne.status=='待审核' || processOne.status=='已驳回')" class="btn btn-sm btn-outline-success" @click="audit(processOne)"><span>审核</span></button>@endcan
@@ -295,7 +295,8 @@
                     <div v-else :style="[{background: (!processOne.id || processOne.is_multi_row)  ? (!processOne.id) ? '#e8eef6' :'rgb(246, 238, 232)' : (processOne.processesContents.length>0 ? ((processOne.processesContents[0].type==='成品单') ? '#e8eef6' : 'rgb(246, 238, 232)') :'')}
                     ,{'-webkit-transform':'scale('+(1/Math.ceil(processOne.array.length/2))+')'},{height: (35*Math.ceil(processOne.array.length/2))+'px'}
                     ,{width: (100*Math.ceil(processOne.array.length/2))+'%'},{'margin-left': (-100*((Math.ceil(processOne.array.length/2))-1)/2)+'%'}
-                    ,{'margin-top': (-35*((Math.ceil(processOne.array.length/2))-1)/2)+'px'},{'margin-bottom': (-35*((Math.ceil(processOne.array.length/2))-1)/2)+'px'}]">
+                    ,{'margin-top': (-35*((Math.ceil(processOne.array.length/2))-1)/2)+'px'},
+                    {'margin-bottom': (-35*((Math.ceil(processOne.array.length/2))-1)/2)+'px'}]">
                         <div v-for="(processesContent,i) in processOne.array"  class=" row  p-1" style="float: left;margin-right: 10px;-webkit-transform-origin: 0" :style="[{opacity:1/0.7},
                         {'margin-left': processOne.array.length >3 ? (parseInt(processOne.array.length/3))+'px' : '0px'}]">
                             <span>@{{ processesContent.bill_type }}</span>&nbsp;&nbsp;
@@ -571,6 +572,7 @@
             },
             methods: {
                 arrayFilter: function (processOne) {
+                    console.log("arrayFilter")
                     if (!processOne.is_multi_row && processOne.id) return processOne.processesContents;
                     let array = [];
                     let type = '成品单';
@@ -582,6 +584,7 @@
                 },
                 //重组数据
                 resetProcessData: function () {
+                    console.log("resetProcessData")
                     let indexs = [];
                     let count = 0;
                     for (let i = 0; i < this.processes.length; i++) {
@@ -646,6 +649,7 @@
 
                 //重组加工单加工日记录数据
                 resetProcessDaily(processDailies,process_id){
+                    console.log("resetProcessDaily")
                     let _this=this;
                     _this.processDailies = [];
                     _this.processDailyParticipants = [];
@@ -791,7 +795,6 @@
                     if (!confirm('确定驳回该单吗?')) {
                         return
                     }
-                    ;
                     let url = "{{url('process/reject')}}" + "/" + id;
                     let _this = this;
                     axios.post(url)
@@ -840,7 +843,6 @@
                     if (!confirm('确定“' + process.code + '”交接完成吗?')) {
                         return
                     }
-                    ;
                     let url = "{{url('process/accomplish')}}";
                     axios.post(url, {id: process.id})
                         .then(function (response) {
@@ -984,6 +986,7 @@
                 },
                 //验证时间合法性
                 hourFilter(processDailyParticipant, is_create) {
+                    console.log("hourFilter")
                     let start = new Date('2020/1/1 12:00:00').getTime();
                     let end = new Date('2020/1/1 13:00:00').getTime();
                     if (is_create) {
@@ -1004,6 +1007,7 @@
                 },
                 //提交参与人
                 submitProcessDailyParticipant(e) {
+                    console.log("submitProcessDailyParticipant")
                     let request = {};
                     request['user_id'] = $("#" + e + "user_id").val();
                     request['started_at'] = $("#" + e + "started_at").val();
@@ -1153,34 +1157,6 @@
                         tempTip.show('修改参与人发生了一些严重错误:' + err);
                     })
                 },
-                {{--//登记工时参与人审核
-                processDailyParticipantAudit(id) {
-                    if (!confirm('审核后不能撤销及修改,确定通过审核吗?')) {
-                        return
-                    }
-                    ;
-                    let _this = this;
-                    axios.post("{{url('process/processDailyParticipantAudit')}}" + "/" + id)
-                        .then(function (response) {
-                            if (response.data.success) {
-                                _this.processDailyParticipants.every(function (processDailyParticipant) {
-                                    if (processDailyParticipant.id == response.data.processDailyParticipant.id) {
-                                        processDailyParticipant.status = response.data.processDailyParticipant.status;
-                                        return false;
-                                    }
-                                    return true;
-                                });
-                                tempTip.setDuration(3000);
-                                tempTip.showSuccess('参与人审核通过!');
-                                return;
-                            }
-                            tempTip.setDuration(3000);
-                            tempTip.show('参与人失败!');
-                        }).catch(function (err) {
-                        tempTip.setDuration(5000);
-                        tempTip.show('审核参与人发生了一些严重错误:' + err);
-                    });
-                },--}}
                 //临时工详情
                 showUserDetail(id) {
                     window.open("{{url('maintenance/userLabor')}}/" + id);
@@ -1474,6 +1450,7 @@
                     })
                 },
                 resetProcessDailyParticipants(index){
+                    console.log("resetProcessDailyParticipants")
                     if (this.processDailyParticipants[index].daily_id){
                         if (this.processDailyParticipants[index+1] && !this.processDailyParticipants[index+1].daily_id){
                             this.processDailyParticipants[index+1].daily_id=this.processDailyParticipants[index].daily_id;

+ 7 - 3
resources/views/transport/waybill/index.blade.php

@@ -1466,11 +1466,15 @@
             LODOP.ADD_PRINT_BARCODE("117mm","45mm","50mm","8mm","128Auto", barcode);
 
             //设定固定打印机
-            let print_name = "{{$print_name}}";
-            if(LODOP.SET_PRINTER_INDEX(print_name))LODOP.SET_PRINTER_INDEX(print_name);
+            let print_name = window.localStorage.getItem("PRINT_NAME") || "{{$print_name}}";
+            console.log(print_name);
+            if(LODOP.SET_PRINTER_INDEX(print_name)){
+                console.log("设置打印机:"+print_name)
+                LODOP.SET_PRINTER_INDEX(print_name);
+            }
 
             //打印
-            // LODOP.PREVIEW();
+            //LODOP.PREVIEW();
             LODOP.PRINT();
             //	LODOP.PRINT_DESIGN();