where('super_type_id', 0)->select(); for ($i = 0; $i < count($FirstLeveType); $i++) { $SecondLeveType = db('asset_type')->where('super_type_id', $FirstLeveType[$i]['type_id'])->select(); for ($m = 0; $m < count($SecondLeveType); $m++) { $count = db('asset_info')->where('asset_type', $SecondLeveType[$m]['type_id'])->where('del_time', null)->count(); if ($count > 0) { $SecondLeveType[$m]['type_name'] .= '【' . $count . '】'; } } for ($j = 0; $j < count($SecondLeveType); $j++) { $ThridLeveType = db('asset_type')->where('super_type_id', $SecondLeveType[$j]['type_id'])->select(); for ($k = 0; $k < count($ThridLeveType); $k++) { $count = db('asset_info')->where('asset_type', $ThridLeveType[$k]['type_id'])->where('del_time', null)->count(); if ($count > 0) { $ThridLeveType[$k]['type_name'] .= '【' . $count . '】'; } } $SecondLeveType[$j]['sub_type'] = $ThridLeveType; } $FirstLeveType[$i]['sub_type'] = $SecondLeveType; } return $this->sendSuccess($FirstLeveType); } //根据资产类型获取资产列表 public function GetAssetsInfoList() { $param = request()->post(); $AssetList = db('asset_info')->alias('i') ->join('asset_state s', 'i.asset_state=s.id', 'left') ->join('asset_apply a', 'a.asset_id=i.asset_id', 'left') ->join('hr_staff f', 'f.staff_id=a.apply_staff', 'left') ->where('i.asset_type', $param['type']) ->where('a.del_time', null) ->where('i.del_time', null) ->field('i.*, s.desp as asset_state_desp,f.staff_name') ->group('i.asset_id') ->select(); return $this->sendSuccess($AssetList); } public function AddAssetsType() { $param = request()->post(); $ret = []; if ($param['type_id'] > 0) { //添加子类型 $ret = db('asset_type')->where('type_id', $param['type_id'])->field('type_id,super_type_id')->find(); } else { //添加基类型 $ret['type_id'] = 0; } if ($ret != null) { $insert = []; $insert['type_name'] = $param['type_name']; $insert['super_type_id'] = $ret['type_id']; $insert['create_time'] = date('Y-m-d H:i:s'); db('asset_type')->insert($insert); } } public function delType() { $param = request()->post(); if ($param != null) { $ret = db('asset_type')->where('super_type_id', $param['type_id'])->select(); if ($ret) { db('asset_type')->where('super_type_id', $param['type_id'])->delete(); $ret1 = db('asset_type')->where('type_id', $param['type_id'])->delete(); if ($ret1) { return $this->sendSuccess('删除成功'); } else { return $this->sendError('删除失败'); } } else { $ret2 = db('asset_type')->where('type_id', $param['type_id'])->delete(); if ($ret2) { return $this->sendSuccess('删除成功'); } else { return $this->sendError('删除失败'); } } } return $this->sendError('删除失败'); } public function delAssetInfo() { $param = request()->post(); if ($param) { $update = []; $update['asset_id'] = $param['asset_id']; $update['del_time'] = date('Y-m-d H:i:s'); $ret = db('asset_info')->where('asset_id', $param['asset_id'])->update($update); if ($ret) { $ApplyList = db('asset_apply')->alias('a') ->join('asset_state s', 'a.operate_type=s.id', 'left') ->join('asset_info i', 'i.asset_id=a.asset_id', 'left') ->join('hr_staff f', 'f.staff_id=a.apply_staff', 'left') ->field('i.asset_number, i.asset_name, s.desp as asset_state_desp, f.staff_name , a.operate_time') ->select(); if ($ApplyList) { foreach ($ApplyList as $item) { if ($item['asset_number'] == $param['asset_number']) { $asset_info = db('asset_info')->where('asset_number', $item['asset_number'])->select(); if ($asset_info) { $updateApply = []; $updateApply['del_time'] = date('Y-m-d H:i:s'); foreach ($asset_info as $item2) { $ret = db('asset_apply')->where('asset_id', $item2['asset_id'])->update($updateApply); if ($ret) { return $this->sendSuccess('删除成功'); } else { return $this->sendError('删除失败'); } } } } } } return $this->sendSuccess('删除成功'); } } } public function AddAssetsInfo() { $param = request()->post(); $ret = db('asset_type')->where('type_id', $param['asset_type'])->field('type_id,super_type_id')->find(); if ($ret != null) { $insert_info = []; $insert_info['asset_number'] = $param['asset_number']; $insert_info['asset_name'] = $param['asset_name']; $insert_info['asset_price'] = $param['asset_price']; $insert_info['asset_type'] = $ret['type_id']; $insert_info['asset_count'] = $param['asset_count']; $insert_info['asset_margin'] = $param['asset_count']; $insert_info['create_time'] = $param['create_time']; if ($param['asset_url'] == '') { $insert_info['asset_url'] = ''; } else { $insert_info['asset_url'] = $param['asset_url']; } db('asset_info')->insert($insert_info); } } public function updateAssetInfo() { $param = request()->post(); if ($param != null) { $update = []; $update['asset_name'] = $param['asset_name']; $update['asset_number'] = $param['asset_number']; $update['asset_url'] = $param['asset_url']; $update['asset_price'] = $param['asset_price']; $update['create_time'] = $param['create_time']; $update['asset_count'] = $param['asset_count']; $update['asset_margin'] = $param['asset_margin']; $update['asset_state'] = $param['asset_state']; $ret = db('asset_info')->where('asset_id', $param['asset_id'])->update($update); if ($ret) { return $this->sendSuccess('修改成功'); } else { return $this->sendError('修改失败'); } } } public function updateAssetState() { $param = request()->post(); if ($param != null) { if ($param['asset_state'] === 2) { $apply = db('asset_apply')->where('apply_staff', $param['staff_id'])->where('asset_id', $param['asset_id'])->where('del_time', null)->find(); $info = db('asset_info')->where('asset_id', $param['asset_id'])->find(); if (!$info) { return $this->sendError('', '资产信息不存在!'); } if ($info['asset_margin'] < $param['only_count']) { return $this->sendError('', '申领数量不足!'); } if ($param['only_count'] > $info['asset_margin']) { return $this->sendError('', '认领数量不能大于申领余量!'); } if ($apply && $apply['operate_type'] !== 4) { $updateInfo = []; $updateInfo['asset_margin'] = $info['asset_margin'] - $param['only_count']; $ret2 = db('asset_info')->where('asset_id', $param['asset_id'])->update($updateInfo); if ($ret2) { $updateApply = []; $updateApply['only_count'] = $apply['only_count'] + $param['only_count']; $updateApply['operate_type'] = $param['asset_state']; $updateApply['remarks'] = $param['remarks']; $updateApply['operate_time'] = $param['operate_time']; $ret3 = db('asset_apply')->where('apply_id', $apply['apply_id'])->update($updateApply); if ($ret3) { return $this->sendSuccess('修改成功'); } else { return $this->sendError('', '修改申请记录失败'); } } else { return $this->sendError('', '修改资产信息失败'); } } else { $updateInfo = []; $updateInfo['asset_margin'] = $info['asset_margin'] - $param['only_count']; $ret2 = db('asset_info')->where('asset_id', $param['asset_id'])->update($updateInfo); if ($ret2) { $insertApply = []; $insertApply['asset_id'] = $param['asset_id']; $insertApply['apply_staff'] = $param['staff_id']; $insertApply['operate_type'] = $param['asset_state']; $insertApply['operate_time'] = $param['operate_time']; $insertApply['remarks'] = $param['remarks']; $insertApply['only_count'] = $param['only_count']; $ret4 = db('asset_apply')->insert($insertApply); if ($ret4) { return $this->sendSuccess('认领成功'); } else { return $this->sendError('', '认领申请记录失败'); } } else { return $this->sendError('', '修改资产信息失败'); } } } elseif ($param['asset_state'] === 3) { $info = db('asset_info')->where('asset_id', $param['asset_id'])->find(); $apply = db('asset_apply')->where('apply_staff', $param['staff_id'])->where('asset_id', $param['asset_id'])->where('del_time', null)->find(); if ($apply['only_count'] < $param['only_count']) { return $this->sendError('', '归还数量不能大于已领数量!'); } if ($info && $apply) { $updateApply = []; $updateApply['operate_type'] = $param['asset_state']; $updateApply['only_count'] = $apply['only_count'] - $param['only_count']; $updateApply['remarks'] = $param['remarks']; $updateApply['operate_time'] = $param['operate_time']; $ret = db('asset_apply')->where('asset_id', $param['asset_id'])->where('apply_staff', $param['staff_id'])->update($updateApply); if ($ret) { $updateInfo = []; $updateInfo['asset_margin'] = $info['asset_margin'] + $param['only_count']; $ret_info = db('asset_info')->where('asset_id', $param['asset_id'])->update($updateInfo); if ($ret_info) { if ($apply['only_count'] < 0) { $updateApply = []; $updateApply['apply_state'] = $param['asset_state']; $updateApply['remarks'] = $param['remarks']; $updateApply['operate_time'] = $param['operate_time']; $ret = db('asset_apply')->where('apply_id', $apply['apply_id'])->where('apply_staff', $param['staff_id'])->update($updateApply); if ($ret) { return $this->sendSuccess('修改成功'); } else { return $this->sendError('', '修改失败'); } } return $this->sendSuccess('修改成功'); } else { return $this->sendError('', '修改资产信息失败'); } } else { return $this->sendError('', '修改申请记录失败'); } } else { return $this->sendError('', '资产信息不存在!'); } } } } //根据资产类型获取资产列表 public function GetAssetsApplyList() { $param = request()->post(); $currPage = empty($param['currPage']) ? 1 : $param['currPage']; $pageSize = empty($param['pageSize']) ? 10 : $param['pageSize']; $query = db('asset_apply')->alias('a') ->join('asset_state s', 'a.operate_type=s.id', 'left') ->join('asset_info i', 'i.asset_id=a.asset_id', 'left') ->join('hr_staff f', 'f.staff_id=a.apply_staff', 'left') ->where('i.del_time', null) ->field('a.apply_id, i.asset_number, i.asset_name, s.desp as asset_state_desp, f.staff_name , a.operate_time'); $countQuery = clone $query; $ApplyList = $query->page($currPage, $pageSize) ->order('a.operate_time', 'desc') ->select(); $total = $countQuery->count(); $ret = []; $ret['data'] = $ApplyList; $ret['total'] = $total; return $this->sendSuccess($ret); } //根据资产编号获取资产列表 public function GetOnlyApply() { $param = request()->post(); $currPage = empty($param['currPage']) ? 1 : $param['currPage']; $pageSize = empty($param['pageSize']) ? 10 : $param['pageSize']; if ($param) { $ApplyList = db('asset_apply')->alias('a') ->join('asset_state s', 'a.operate_type=s.id', 'left') ->join('asset_info i', 'i.asset_id=a.asset_id', 'left') ->join('hr_staff f', 'f.staff_id=a.apply_staff', 'left') ->where('i.del_time', null) ->where('i.asset_number', $param['asset_number']) ->where('a.operate_type',$param['operate_type']) ->page($currPage, $pageSize) ->field('i.asset_number, i.asset_type, i.asset_name, s.desp as asset_state_desp,i.asset_price,a.only_count, f.staff_name , a.operate_time , a.apply_id, a.asset_id, a.operate_type,a.apply_staff,a.remarks') ->order('a.operate_time', 'desc') ->select(); $count = db('asset_apply')->alias('a') ->join('asset_state s', 'a.operate_type=s.id', 'left') ->join('asset_info i', 'i.asset_id=a.asset_id', 'left') ->join('hr_staff f', 'f.staff_id=a.apply_staff', 'left') ->where('i.del_time', null) ->where('i.asset_number', $param['asset_number']) ->where('a.operate_type',$param['operate_type']) ->count(); $ret = []; $ret['data'] = $ApplyList; $ret['total'] = $count; return $this->sendSuccess($ret); } } //获取指定员工申领的资产 public function GetAssetsOfStaff() { $param = request()->post(); $ApplyList = db('asset_apply')->alias('a') ->join('asset_state s', 'a.operate_type=s.id', 'left') ->join('asset_info i', 'i.asset_id=a.asset_id', 'left') ->join('hr_staff f', 'f.staff_id=a.apply_staff', 'left') ->where('a.apply_staff', $param['apply_staff']) ->where('i.del_time', null) ->field('i.asset_number, i.asset_name, s.desp as asset_state_desp, f.staff_name , a.operate_time') ->select(); return $this->sendSuccess($ApplyList); } public function UpdateScrap() { $param = request()->post(); if ($param) { $ret = db('asset_apply')->where('apply_id', $param['apply_id'])->update(['operate_type' => 4]); if ($ret) { $info = db('asset_info')->where('asset_id', $param['asset_id'])->find(); $updateInfo = []; $updateInfo['asset_count'] = $info['asset_count'] - $param['only_count']; if ($info['asset_margin'] === 0) { $updateInfo['asset_margin'] = 0; } $ret2 = db('asset_info')->where('asset_id', $param['asset_id'])->update($updateInfo); if ($ret2) { return $this->sendSuccess('修改成功'); } else { return $this->sendError('', '修改失败'); } } else { return $this->sendError('', '修改失败'); } } } public function UpdateRemark() { $param = request()->post(); if ($param){ $ret = db('asset_apply')->where('apply_id',$param['apply_id'])->update(['remarks'=>$param['remarks']]); if($ret){ return $this->sendSuccess( '修改成功'); }else{ return $this->sendError('', '修改失败'); } } } }