فهرست منبع

库存盘点--生成盘点任务时可添加库位前缀字母条件
人事管理--修改打卡没有打卡记录情况

haozi 5 سال پیش
والد
کامیت
bfdd73540e

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

@@ -30,7 +30,8 @@ class InventoryAccountController extends Controller
         $date_start=$request->input('date_start');
         $date_end=$request->input('date_end');
         $ownerId=$request->input('owner_id');
-        $inventoryAccount=app('inventoryAccountService')->createMission($date_start,$date_end,$ownerId);
+        $location=$request->input('location');
+        $inventoryAccount=app('inventoryAccountService')->createMission($date_start,$date_end,$ownerId,$location);
         $inventoryAccount=InventoryAccount::with('owner')->find($inventoryAccount->id);
         if (is_null($inventoryAccount)) return ['success'=>false,'data'=>'参数错误!'];
         return ['success'=>true,'data'=>$inventoryAccount];

+ 11 - 8
app/Http/Controllers/UserDutyCheckController.php

@@ -54,7 +54,7 @@ class UserDutyCheckController extends Controller
                 if ($userDutyCheck && $userDutyCheck->isNotImport == true) return "<h1 style='color: darkred;text-align:center'>当前还未入场,不可出场!</h1>";
                 if ($userDutyCheck && $userDutyCheck->import == true) return "<h1 style='color: darkred;text-align:center'>您已入场,不可再次入场!</h1>";
                 if ($userDutyCheck && $userDutyCheck->export == true) return "<h1 style='color: darkred;text-align:center'>您已出场,不可再次出场!!</h1>";
-                if (!$userDutyCheck) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
+                if ($userDutyCheck&& !$userDutyCheck->id) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
                 $laborReportService = app('LaborReportService');
                 $errorMessage = $laborReportService->makeOrChangeLaborReportByUserDutyCheck($userDutyCheck, $importAndExportQRCodeType);
                 if ($errorMessage) return $errorMessage;
@@ -80,7 +80,7 @@ class UserDutyCheckController extends Controller
         if ($userDutyCheck && $userDutyCheck->isNotImport == true) return "<h1 style='color: darkred;text-align:center'>当前还未入场,不可出场!</h1>";
         if ($userDutyCheck && $userDutyCheck->import == true) return "<h1 style='color: darkred;text-align:center'>您已入场,不可再次入场!</h1>";
         if ($userDutyCheck && $userDutyCheck->export == true) return "<h1 style='color: darkred;text-align:center'>您已出场,不可再次出场!!</h1>";
-        if (!$userDutyCheck) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
+        if ($userDutyCheck&& !$userDutyCheck->id) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
         //$userLaborToken = $userDetail->getDutyCheckToken(config('users.token_check_in_expire_minutes'));
         $laborReportService = app('LaborReportService');
         $errorMessage = $laborReportService->makeOrChangeLaborReportByUserDutyCheck($userDutyCheck, $importAndExportQRCodeType);
@@ -127,6 +127,7 @@ class UserDutyCheckController extends Controller
             }
             $userDutyCheck->type = "登入";
             $userDutyCheck->save();
+            $this->log(__METHOD__, "创建打卡记录" . __FUNCTION__, json_encode($userDutyCheck));
             return $userDutyCheck;
         }
         if ($importAndExportQRCodeType && $importAndExportQRCodeType == 'import') {
@@ -145,6 +146,7 @@ class UserDutyCheckController extends Controller
             $userDutyCheck->type = '登出';
         }
         $userDutyCheck->save();
+        $this->log(__METHOD__, "创建打卡记录" . __FUNCTION__, json_encode($userDutyCheck));
         return $userDutyCheck;
     }
     //去往登记资料页面
@@ -168,10 +170,10 @@ class UserDutyCheckController extends Controller
         $this->updateValidator($request)->validate();
         $importAndExportQRCodeType = $request->input('importAndExportQRCodeType');
         $mobile_phone = $request->input('mobile_phone');
-        $userDetail = UserDetail::where('mobile_phone', $mobile_phone)->first();
+        $userDetail = UserDetail::query()->where('mobile_phone', $mobile_phone)->first();
         if (!$userDetail) return view('exception.404', ['error' => '临时工信息不存在!']);
         $labor_company_id = $request->input('labor_company_id');
-        $userLabor = UserLabor::where('user_id', $userDetail->user_id)->first();
+        $userLabor = UserLabor::query()->where('user_id', $userDetail->user_id)->first();
         $userLabor->update([
             'labor_company_id' => $labor_company_id,
         ]);
@@ -180,7 +182,7 @@ class UserDutyCheckController extends Controller
         if ($userDutyCheck && $userDutyCheck->isNotImport == true) return "<h1 style='color: darkred;text-align:center'>当前还未入场,不可出场!</h1>";
         if ($userDutyCheck && $userDutyCheck->import == true) return "<h1 style='color: darkred;text-align:center'>您已入场,不可再次入场!</h1>";
         if ($userDutyCheck && $userDutyCheck->export == true) return "<h1 style='color: darkred;text-align:center'>您已出场,不可再次出场!!</h1>";
-        if (!$userDutyCheck) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
+        if ($userDutyCheck&& !$userDutyCheck->id) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
         $userLaborToken = $userDetail->getDutyCheckToken(config('users.token_check_in_expire_minutes'));
         $laborReportService = app('LaborReportService');
         $laborReportService->makeOrChangeLaborReportByUserDutyCheck($userDutyCheck, $importAndExportQRCodeType);
@@ -238,10 +240,11 @@ class UserDutyCheckController extends Controller
         $userLabor->save();
         $laborReportService = app('LaborReportService');
         $userDutyCheck=$this->importAndExportDutyCheck($userDetail->user_id,$importAndExportQRCodeType);
+        if ($userDutyCheck && $userDutyCheck->isNotImport == true) return "<h1 style='color: darkred;text-align:center'>当前还未入场,不可出场!</h1>";
+        if ($userDutyCheck && $userDutyCheck->import == true) return "<h1 style='color: darkred;text-align:center'>您已入场,不可再次入场!</h1>";
+        if ($userDutyCheck && $userDutyCheck->export == true) return "<h1 style='color: darkred;text-align:center'>您已出场,不可再次出场!!</h1>";
+        if ($userDutyCheck&& !$userDutyCheck->id) return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
         $laborReportService->makeLaborReportByUserDutyCheck($userDutyCheck);
-        if ($userDutyCheck&&$userDutyCheck->import==true)return "<h1 style='color: darkred;text-align:center'>您已入场,不可再次入场!</h1>";
-        if ($userDutyCheck&&$userDutyCheck->export==true)return "<h1 style='color: darkred;text-align:center'>您已出场,不可再次出场!</h1>";
-        if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
         $userLaborToken=$userDetail->getDutyCheckToken(config('users.token_check_in_expire_minutes'));
         Controller::logS(__METHOD__,"录入临时工,用户,对应工作组,打卡记录".__FUNCTION__,json_encode($userDetail));
         $laravelEchoPrefix = config('database.redis.options.prefix');

+ 8 - 5
app/Services/InventoryAccountService.php

@@ -61,7 +61,7 @@ class InventoryAccountService
             ->whereIn('id',explode(',',$queryParam['data']))->get();
     }
     //动盘查询
-    public function conditionPortStock($date_start,$date_end,$ownerId){
+    public function conditionPortStock($date_start,$date_end,$ownerId,$location){
         if (!$ownerId) return null;
         $descr_c=Owner::where('id',$ownerId)->value('name');
         $sql='select * from (select result.*,rownum rn from (';
@@ -95,6 +95,7 @@ class InventoryAccountService
         $sql.=' left join INV_LOT_ATT lot on lot.LOTNUM=stockLog.FMLOTNUM ';
         $sql.=' left join INV_LOT_LOC_ID storeStatus on storeStatus.LOTNUM=stockLog.FMLOTNUM ';;
         $sql.=' and storeStatus.LocationID=stockLog.库位 ';
+        if ($location)$sql.=" where storeStatus.LocationID like '".$location."%' ";
         $sql.=' group by 库位,customer.Descr_C,sku.SKU,sku.ALTERNATE_SKU1,sku.ALTERNATE_SKU2,sku.ALTERNATE_SKU3 ';
         $sql.=' ,sku.Descr_C,FMLotNum,lot.LotAtt05,lot.LotAtt01,lot.LotAtt08,lot.LotAtt02,lot.LotAtt04 ';
         $sql.=' , storeStatus.QTY, storeStatus.QtyAllocated,stockLog.客户  ';
@@ -112,7 +113,7 @@ class InventoryAccountService
         return DB::connection('oracle')->select($sql);
     }
     //全盘查询
-    private function conditionTotalStock($ownerId){
+    private function conditionTotalStock($ownerId,$location){
         $descr_c=Owner::where('id',$ownerId)->value('name');
         $sql='select * from (select result.* from (';
         $sql.=' select customer.Descr_C as 货主,storeStatus.CUSTOMERID 客户,storeStatus.LocationID 库位, sku.SKU 产品编码, sku.ALTERNATE_SKU1 产品条码1, sku.ALTERNATE_SKU2 产品条码2, sku.ALTERNATE_SKU3 产品条码3, ';
@@ -123,6 +124,7 @@ class InventoryAccountService
         $sql.=' left join BAS_Customer customer on customer.CustomerID=storeStatus.CUSTOMERID ';
         $sql.=' left join BAS_SKU sku on sku.SKU=storeStatus.SKU and sku.CUSTOMERID=storeStatus.CUSTOMERID ';
         $sql.=' left join INV_LOT_ATT lot on lot.LOTNUM = storeStatus.LOTNUM AND lot.CUSTOMERID = storeStatus.CUSTOMERID ';
+        if ($location)$sql.=" where storeStatus.LocationID like '".$location."%' ";
         $sql.=' group by storeStatus.LocationID,customer.Descr_C,sku.SKU,sku.ALTERNATE_SKU1,sku.ALTERNATE_SKU2,sku.ALTERNATE_SKU3 ';
         $sql.=' ,sku.Descr_C,lot.LotAtt05,lot.LotAtt08,lot.LotAtt02,lot.LotAtt04 ';
         $sql.=' ,storeStatus.CUSTOMERID,lot.LotAtt01 ';
@@ -133,19 +135,19 @@ class InventoryAccountService
 
     }
     //创建盘点任务
-    public function createMission($date_start,$date_end,$ownerId){
+    public function createMission($date_start,$date_end,$ownerId,$location){
         if (!$ownerId) return null;
         if ($date_start&&$date_end){
             $date_end_time=$date_end.' 23:59:59';
             $type='动盘';
-            $wmsInventories=$this->conditionPortStock($date_start,$date_end,$ownerId);
+            $wmsInventories=$this->conditionPortStock($date_start,$date_end,$ownerId,$location);
         }elseif (!$date_start&&!$date_end){
             $name=Owner::where('id',$ownerId)->value('name');
             $ownerName=OracleBasCustomer::where('customer_type','OW')->where('active_flag','Y')->where('descr_c',$name)->value('customerid');
             $date_start=OracleInvLotLocId::where('customerid',$ownerName)->orderBy('addtime','ASC')->value('addtime');
             $date_end_time=OracleInvLotLocId::where('customerid',$ownerName)->orderBy('addtime','DESC')->value('addtime');
             $type='全盘';
-            $wmsInventories=$this->conditionTotalStock($ownerId);
+            $wmsInventories=$this->conditionTotalStock($ownerId,$location);
         }else{
             return null;
         }
@@ -166,6 +168,7 @@ class InventoryAccountService
             'date_start'=>$date_start,
             'date_end'=>$date_end,
             'ownerId'=>$ownerId,
+            'location'=>$location,
             'inventoryId'=>$inventory['id'],
         ];
         Controller::logS(__METHOD__,"创建盘点任务__".__FUNCTION__,json_encode($request),Auth::user()['id']);

+ 13 - 5
resources/views/inventory/stockInventory/mission.blade.php

@@ -9,7 +9,7 @@
             <span class="form-inline ml-5">
                  <span class="btn btn-sm btn-outline-secondary tooltipTarget" @click="syncOwners">同步货主</span>
                 <select class="form-control form-control-sm tooltipTarget" name="owner_id" id="owner_id" style="width: 150px;position: relative" title="选择指定货主">
-                    <option value=" ">货主</option>
+                    <option value="">货主</option>
                     <option v-for="owner in fakeOwners" :value="owner.id">@{{ owner.name }}</option>
                 </select>
                 <input placeholder="定位货主" id="ownerName" autocomplete="off" class="form-control form-control-sm tooltipTarget" style="width: 100px" @input="定位货主()" title="输入关键字定位货主">
@@ -17,6 +17,8 @@
             <span class="form-inline">
                 <input type="date" @change="hasDateStart" class="form-control form-control-sm ml-5 tooltipTarget" name="date_start" id="date_start"  title="选择创建日期的开始时间" style="width: 150px">
                 <input type="date" @change="hasDateEnd" class="form-control form-control-sm ml-5 tooltipTarget" name="date_end" id="date_end"  title="选择创建日期的结束时间" style="width: 150px">
+                <input type="text" @change="hasLocation" class="form-control form-control-sm ml-5 tooltipTarget" name="location" id="location"  title="选择创建盘点任务库位的前缀字母" placeholder="库位前缀字母" style="width: 150px">
+
             </span>
             <span class="ml-5">
             @can('库存管理-盘点')
@@ -111,6 +113,7 @@
                 // formData:{},
                 date_end:'',
                 date_start:'',
+                location:'',
                 fakeOwners:'',
             },
             mounted: function () {
@@ -194,8 +197,10 @@
                     let _this=this;
                     const date_end=document.getElementById('date_end').value;
                     const date_start=document.getElementById('date_start').value;
-                    const owner_id=document.getElementById('owner_id').value;
-                    if(document.getElementById('owner_id').value==''){
+                    const owner_id=$('#owner_id').val();
+                    const location=$('#location').val().trim();
+                    //console.log(location)
+                    if(owner_id===''){
                         tempTip.setDuration(2000);
                         tempTip.show('生成盘点任务失败'+'   '+'请先选择货主!');
                         return;
@@ -218,7 +223,7 @@
                     //     return;
                     // }
                     let url='{{url('inventory/stockInventory/createStockInventoryMission')}}';
-                    axios.post(url,{date_end:date_end,date_start:date_start,owner_id:owner_id}).then(function (response) {
+                    axios.post(url,{date_end:date_end,date_start:date_start,owner_id:owner_id,location:location}).then(function (response) {
                         tempTip.setDuration(2000);
                         tempTip.cancelWaitingTip();
                         if(!response.data.success){
@@ -232,7 +237,7 @@
                             tempTip.showSuccess('生成盘点任务成功!');
                             // tempTip.setDuration(99999);
                             // tempTip.waitingTip('页面跳转中');
-                            location.href='{{url('inventory/stockInventory/enterStockInventory')}}/'+inventory.id;
+                            window.location.href='{{url('inventory/stockInventory/enterStockInventory')}}/'+inventory.id;
                         }
                     }).catch(function (err) {
                         tempTip.cancelWaitingTip();
@@ -310,6 +315,9 @@
                 hasDateEnd(){
                     this.date_end=document.getElementById('date_end').value;
                 },
+                hasLocation(){
+                    this.location=$('#location').val().trim();
+                },
             }
         });
     </script>

+ 1 - 1
routes/web.php

@@ -360,7 +360,7 @@ Route::group(['prefix'=>'inventory'],function(){
     /** 库存盘点 */
     Route::group(['prefix'=>'stockInventory'],function(){
         Route::get('mission','InventoryAccountController@mission');
-        Route::post('createStockInventoryMission','InventoryAccountController@createStockInventoryMission');
+        //Route::post('createStockInventoryMission','InventoryAccountController@createStockInventoryMission');
         Route::any('enterStockInventory/{id}','InventoryAccountController@enterStockInventory');
         Route::any('inventoryAccountMission/export','InventoryAccountController@exportInventoryAccountMission');
         Route::get('mission','InventoryAccountController@mission');