|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace App\Service;
|
|
|
|
|
|
+use App\Model\Asset;
|
|
|
use App\Model\Employee;
|
|
|
use App\Model\InventoryOrder;
|
|
|
use App\Model\InventoryOrderAsset;
|
|
@@ -16,6 +17,9 @@ class InventoryService extends Service
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
$inventory_model = InventoryOrder::where('order_no',$data['order_no'])->first();
|
|
|
+ $inventory_model->inventory_time = $data['inventory_time'] ? json_encode($data['inventory_time']) : '';
|
|
|
+ $inventory_model->inventory_start_time = $data['inventory_start_time'] ?? 0;
|
|
|
+ $inventory_model->inventory_end_time = $data['inventory_end_time'] ?? 0;
|
|
|
$inventory_model->order_no = $data['order_no'];
|
|
|
$inventory_model->oa_employee_id = $data['oa_employee_id'] ?? 0;
|
|
|
$inventory_model->save();
|
|
@@ -28,9 +32,8 @@ class InventoryService extends Service
|
|
|
foreach ($data['sub'] as $value){
|
|
|
$sub[] = [
|
|
|
'asset_id' => $value['asset_id'],
|
|
|
- 'remark' => $value['remark'],
|
|
|
'order_no' => $data['order_no'],
|
|
|
- 'area' => $value['area'],
|
|
|
+ 'located' => $value['located'],
|
|
|
];
|
|
|
}
|
|
|
InventoryOrderAsset::insert($sub);
|
|
@@ -48,10 +51,14 @@ class InventoryService extends Service
|
|
|
public function add($data,$user){
|
|
|
list($status,$msg) = $this->orderRule($data);
|
|
|
if(!$status) return [$status,$msg];
|
|
|
+
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
$inventory_model = new InventoryOrder();
|
|
|
$inventory_model->order_no = $data['order_no'];
|
|
|
+ $inventory_model->inventory_time = $data['inventory_time'] ? json_encode($data['inventory_time']) : '';
|
|
|
+ $inventory_model->inventory_start_time = $data['inventory_start_time'] ?? 0;
|
|
|
+ $inventory_model->inventory_end_time = $data['inventory_end_time'] ?? 0;
|
|
|
$inventory_model->oa_employee_id = $data['oa_employee_id'] ?? 0;
|
|
|
$inventory_model->crt_id = $user['id'];
|
|
|
$inventory_model->save();
|
|
@@ -61,9 +68,8 @@ class InventoryService extends Service
|
|
|
foreach ($data['sub'] as $value){
|
|
|
$sub[] = [
|
|
|
'asset_id' => $value['asset_id'],
|
|
|
- 'remark' => $value['remark'],
|
|
|
'order_no' => $data['order_no'],
|
|
|
- 'area' => $value['area'],
|
|
|
+ 'located' => $value['located'],
|
|
|
];
|
|
|
}
|
|
|
InventoryOrderAsset::insert($sub);
|
|
@@ -81,38 +87,63 @@ class InventoryService extends Service
|
|
|
public function detail($data){
|
|
|
if($this->isEmpty($data,'order_no')) return [false,'请选择数据'];
|
|
|
|
|
|
- $order = InventoryOrder::where('order_no',$data['order_number'])
|
|
|
+ $order = InventoryOrder::where('order_no',$data['order_no'])
|
|
|
->where('del_time',0)
|
|
|
- ->select('id','order_no','crt_time','state','crt_id')
|
|
|
+ ->select('id','order_no','crt_time','state','crt_id','inventory_time')
|
|
|
->first();
|
|
|
if(empty($order)) return [true,[]];
|
|
|
$order = $order->toArray();
|
|
|
+ if($order['inventory_time']) {
|
|
|
+ $return = $this->changeDateToNewDate(json_decode($order['inventory_time'],true));
|
|
|
+ $order['inventory_time'] = $return[0] . '-' . $return[1];
|
|
|
+ }
|
|
|
|
|
|
$apply = InventoryOrderAsset::where('order_no',$data['order_no'])
|
|
|
->where('del_time',0)
|
|
|
- ->select('id','asset_id','state','remark','order_no','area')
|
|
|
+ ->select('id','asset_id','state','remark','order_no','located')
|
|
|
->get()
|
|
|
->toArray();
|
|
|
- $order['sub'] = $apply;
|
|
|
+ $asset = Asset::whereIn('id',array_column($apply,'asset_id'))->get()->toArray();
|
|
|
+ $asset = array_column($asset,null,'id');
|
|
|
+
|
|
|
+ $sub = [];$externalArray = [];
|
|
|
+ foreach ($apply as $value){
|
|
|
+ $tmp = [];
|
|
|
+ $tmp = $asset[$value['asset_id']];
|
|
|
+ $tmp['t_id'] = $value['id'];
|
|
|
+ $tmp['t_state'] = $value['state'];
|
|
|
+ $tmp['t_remark'] = $value['remark'];
|
|
|
+ if(! isset($sub[$value['located']])){
|
|
|
+ $sub[$value['located']] = [
|
|
|
+ 'located' => $value['located'],
|
|
|
+ 'children' => [$tmp]
|
|
|
+ ];
|
|
|
+ }else{
|
|
|
+ $sub[$value['located']]['children'] = array_merge($sub[$value['located']]['children'] ,[$tmp]);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- return [true,$order];
|
|
|
+ $order['sub'] = array_values($sub);
|
|
|
+
|
|
|
+ return [true, $order];
|
|
|
}
|
|
|
|
|
|
public function del($data){
|
|
|
if($this->isEmpty($data,'order_no')) return [false,'请选择数据!'];
|
|
|
|
|
|
- $bool = InventoryOrder::whereIn('order_no',$data['order_no'])
|
|
|
- ->where('status','>',InventoryOrder::STATE_ZERO)
|
|
|
+ $bool = InventoryOrder::where('order_no',$data['order_no'])
|
|
|
+ ->where('state','>',InventoryOrder::STATE_ZERO)
|
|
|
->exists();
|
|
|
if($bool) return [false,'请确认盘点单状态,删除失败!'];
|
|
|
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
- InventoryOrder::whereIn('order_no',$data['order_no'])
|
|
|
+ InventoryOrder::where('order_no',$data['order_no'])
|
|
|
->where('del_time',0)
|
|
|
->update(['del_time' => time()]);
|
|
|
- InventoryOrderAsset::whereIn('order_no',$data['order_no'])
|
|
|
+ InventoryOrderAsset::where('order_no',$data['order_no'])
|
|
|
->where('del_time',0)
|
|
|
->update(['del_time' => time()]);
|
|
|
|
|
@@ -127,13 +158,18 @@ class InventoryService extends Service
|
|
|
|
|
|
public function getList($data){
|
|
|
$model = InventoryOrder::where('del_time',0)
|
|
|
- ->select('order_no','id','crt_time','state','crt_id')
|
|
|
+ ->select('order_no','id','crt_time','state','crt_id','inventory_time')
|
|
|
->orderby('id', 'desc');
|
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])){
|
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
$model->where('crt_time','>=',$return[0]);
|
|
|
$model->where('crt_time','<',$return[1]);
|
|
|
}
|
|
|
+ if(! empty($data['inventory_time'][0]) && ! empty($data['inventory_time'][1])){
|
|
|
+ $return = $this->changeDateToTimeStampAboutRange($data['inventory_time']);
|
|
|
+ $model->where('inventory_start_time','>=',$return[0]);
|
|
|
+ $model->where('inventory_end_time','<',$return[1]);
|
|
|
+ }
|
|
|
if(! empty($data['order_no'])) $model->where('order_no', 'LIKE', '%'.$data['order_no'].'%');
|
|
|
if(! empty($data['state'])) $model->where('state', $data['state']);
|
|
|
|
|
@@ -152,6 +188,11 @@ class InventoryService extends Service
|
|
|
foreach ($data['data'] as $key => $value){
|
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d",$value['crt_time']) : '';
|
|
|
$data['data'][$key]['crt_name'] = $emp_map[$value['crt_id']] ?? '';
|
|
|
+ if($value['inventory_time']) {
|
|
|
+ $return = $this->changeDateToNewDate(json_decode($value['inventory_time'],true));
|
|
|
+ $value['inventory_time'] = $return[0] . ' ' . $return[1];
|
|
|
+ }
|
|
|
+ $data['data'][$key]['inventory_time'] = $value['inventory_time'];
|
|
|
}
|
|
|
|
|
|
return $data;
|
|
@@ -171,8 +212,13 @@ class InventoryService extends Service
|
|
|
->exists();
|
|
|
if($bool) return [false,'编辑失败,请确认盘点单状态!'];
|
|
|
}
|
|
|
+ if(! empty($data['inventory_time'])){
|
|
|
+ $return = $this->changeDateToTimeStampAboutRange($data['inventory_time']);
|
|
|
+ $data['inventory_start_time'] = $return[0];
|
|
|
+ $data['inventory_end_time'] = $return[1];
|
|
|
+ }
|
|
|
|
|
|
- return [true, ];
|
|
|
+ return [true, ''];
|
|
|
}
|
|
|
|
|
|
public function createOrderNumber(){
|