Files
duolamaojiazhen/application/api/controller/Webmaster.php
2025-12-22 13:59:40 +08:00

340 lines
14 KiB
PHP

<?php
namespace app\api\controller;
use app\api\logic\WebmasterLogic;
use app\common\server\UrlServer;
use think\Db;
class Webmaster extends ApiBase
{
public $like_not_need_login = ['staffList','Leaveapproval','leavethroug','leavethroug','reject','punishlists','punishthroug','punishreject','material','materialthroug','materialreject','Scheduling','occupy','occupy_del'];
/**
* note 获取站长下面的员工
* create_time 2020/10/21 19:05
*/
public function staffList(){
$param = $this->request->get();
$data = Db::name('staff')
->alias('s1')
->field('s1.*, s2.*')
->where('s1.id', $param['id'])
->where('s2.onwork',1)
->join('staff s2', 's1.grouping_id = s2.grouping_id')
->select();
$this->_success('获取数据成功', $data);
}
/**
* note 请假审批
* create_time 2020/10/21 19:05
*/
public function Leaveapproval(){
$param = $this->request->get();
$data = Db::name('staff')
->alias('s1')
->field('s1.*, s2.*')
->where('s1.id', $param['id'])
->where('s2.onwork',1)
->join('staff s2', 's1.grouping_id = s2.grouping_id')
->select();
if($data){
$ids = array_column($data, 'id');
$leave=Db::name('leavesd')
->whereIN('staff_id',$ids)
->where('status',$param['status'])
->order('id', 'asc')
->page($param['page'], $param['limt'])
->select();
foreach ($leave as &$item){
$item['time']=date('Y-m-d',$item['time']);
$item['create_time']=date('Y-m-d H:i:s',$item['create_time']);
}
$this->_success('获取数据成功', $leave);
}else{
$this->_error('获取数据失败');
}
}
/**
* note 请假审批通过
* create_time 2020/10/21 19:05
*/
public function leavethroug(){
$param = $this->request->post();
$data=Db::name('leavesd')->where('id',$param['id'])->update(['status'=>1]);
$this->_success('审批成功');
}
/**
* note 驳回请假
* create_time 2020/10/21 19:05
*/
public function reject(){
$param = $this->request->post();
$data=Db::name('leavesd')->where('id',$param['id'])->update(['status'=>2,'refuse'=>$param['refuse']]);
$this->_success('修改成功');
}
/**
* note 处罚的列表
* create_time 2020/10/21 19:05
*/
public function punishlists(){
$param = $this->request->get();
$data = Db::name('staff')
->alias('s1')
->field('s1.*, s2.*')
->where('s1.id', $param['id'])
->where('s2.onwork',1)
->join('staff s2', 's1.grouping_id = s2.grouping_id')
->select();
if($data){
$ids = array_column($data, 'id');
$punish=Db::name('fine')
->whereIN('staff_id',$ids)
->where('status',$param['status'])
->order('id', 'asc')
->page($param['page'], $param['limt'])
->select();
foreach($punish as &$item){
$item['create_time']=date("Y-m-d H:i:s");
$user=Db::name('order_exe')->where('id',$item['order_id'])->find();
$item['user_name']=$user['name'];
$item['user_phone']=$user['phone'];
$order=Db::name('order')->where('order_sn',$user['order_sn'])->find();
$item['user_adder']=$order['address'];
$staff=Db::name('staff')->where('id',$item['staff_id'])->find();
$item['staff_name']= $staff['name'];
$item['staff_phone']= $staff['mobile'];
}
$this->_success('获取数据成功', $punish);
}else{
$this->_error('网络错误');
}
}
/**
* note 审批处罚通过
* create_time 2020/10/21 19:05
*/
public function punishthroug(){
$param = $this->request->post();
$data=Db::name('fine')->where('id',$param['id'])->update(['status'=>1]);
$this->_success('审批成功');
}
/**
* note 驳回处罚的审核
* create_time 2020/10/21 19:05
*/
public function punishreject(){
$param = $this->request->post();
$data=Db::name('fine')->where('id',$param['id'])->update(['status'=>2]);
$this->_success('修改成功');
}
/**
* note 物料的申请列表
* create_time 2020/10/21 19:05
*/
public function material(){
$param = $this->request->post();
$param = $this->request->get();
$data = Db::name('staff')
->alias('s1')
->field('s1.*, s2.*')
->where('s1.id', $param['id'])
->where('s2.onwork',1)
->join('staff s2', 's1.grouping_id = s2.grouping_id')
->select();
if($data){
$ids = array_column($data, 'id');
$material=Db::name('erp_staff')
->whereIN('staff_id',$ids)
->where('status',$param['status'])
->order('id', 'asc')
->page($param['page'], $param['limt'])
->select();
foreach ($material as &$item){
$erp_goods=Db::name('epr')->where('id',$item['goods_id'])->find();
if($erp_goods){
$item['goods_name']= $erp_goods['name'];
$item['goods_img']=UrlServer::getFileUrl($erp_goods['abs_avatar']);
}else{
$item['goods_name']='-';
$item['goods_img']='-';
}
}
$this->_success('获取数据成功', $material);
}
}
/**
* note 无聊审批通过
* create_time 2020/10/21 19:05
*/
public function materialthroug(){
$param = $this->request->post();
$data=Db::name('erp_staff')->where('id',$param['id'])->update(['status'=>2]);
$this->_success('审批成功');
}
/**
* note 物料驳回申请
* create_time 2020/10/21 19:05
*/
public function materialreject(){
$param = $this->request->post();
$data=Db::name('erp_staff')->where('id',$param['id'])->update(['status'=>3,'reason'=>$param['reason']]);
$this->_success('修改成功');
}
/**
* note 员工排班
* create_time 2020/10/21 19:05
*/
public function Scheduling(){
$param = $this->request->get();
if (!isset($param['id']) || empty($param['id'])) {
throw new Exception('员工ID不能为空');
}
$where=[];
//判断检索框
$selval = trim($param['selval'] ?? '');
if (!empty($selval)) {
if (preg_match('/^1[3-9]\d{9}$/', $selval)) {
$where[] = ['s2.mobile', '=', $selval];
} else {
$where[] = ['s2.name', 'LIKE', '%' . $selval . '%'];
}
} else {
$where = [];
}
//判断时间的检索
if($param['startDate']){
$startTime = strtotime($param['startDate']); //开始时间
$endTime = strtotime($param['startDate'] . ' 23:59:59'); //结束时间
}else{
$startTime = strtotime(date('Y-m-d'));
$endTime = strtotime(date('Y-m-d') . ' 23:59:59');
}
$data = Db::name('staff')
->alias('s1')
->field('s1.*, s2.*')
->where('s1.id', $param['id'])
->where('s2.onwork',1)
->where($where)
->join('staff s2', 's1.grouping_id = s2.grouping_id')
->select();
foreach ($data as &$item){
$item['sw_order']=Db::name('order_exe')
->where('staff_id',$item['id'])
->whereBetween('autotime', [$startTime, $endTime])
->field('id')
->where('addtime',1)
->find();
$item['xw_order']=Db::name('order_exe')
->where('staff_id',$item['id'])
->whereBetween('autotime', [$startTime, $endTime])
->field('id')
->where('addtime',2)
->find();
$item['sw_zy']=Db::name('leave')
->where('user_id',$item['id'])
->whereBetween('time', [$startTime, $endTime])
->field('id')
->where('addtime',1)
->find();
$item['xw_zy']=Db::name('leave')
->where('user_id',$item['id'])
->whereBetween('time', [$startTime, $endTime])
->field('id')
->where('addtime',2)
->find();
$item['sw_qj']=Db::name('leavesd')
->where('staff_id',$item['id'])
->whereBetween('time', [$startTime, $endTime])
->where('status',1)
->where('addtime',1)
->field('id')
->find();
$item['xw_qj']=Db::name('leavesd')
->where('staff_id',$item['id'])
->whereBetween('time', [$startTime, $endTime])
->field('id')
->where('status',1)
->where('addtime',2)
->find();
}
$this->_success('获取数据成功',$data);
}
/**
* note 员工占用列表
* create_time 2020/10/21 19:05
*/
public function occupy(){
$param = $this->request->get();
if (!isset($param['id']) || empty($param['id'])) {
throw new Exception('站长ID不能为空');
}
$where=[];
$selval = trim($param['selval'] ?? '');
if (!empty($selval)) {
if (preg_match('/^1[3-9]\d{9}$/', $selval)) {
$where[] = ['phone','=',$selval];
} else {
$where[] = ['name', 'LIKE', '%' . $selval . '%'];
}
} else {
$where = [];
}
//检索框
$data = Db::name('staff')
->alias('s1')
->field('s1.*, s2.*')
->where('s1.id', $param['id'])
->where('s2.onwork',1)
->join('staff s2', 's1.grouping_id = s2.grouping_id')
->select();
if($data){
$ids = array_column($data, 'id');
$occupy=Db::name('leave')
->whereIN('user_id',$ids)
->where($where)
->order('id', 'desc')
->page($param['page'], $param['limt'])
->select();
foreach ($occupy as &$item){
$item['time']=date('Y-m-d',$item['time']);
$item['create_time']=date('Y-m-d H:i:s',$item['create_time']);
$admin=Db::name('admin')->where('id',$item['admin_id'])->find();
if($admin){
$item['admin_name']=$admin['name'];
}else{
$item['admin_name']='-';
}
$type=Db::name('leave_statype')->where('id',$item['type'])->find();
if($type){
$item['type_name']=$type['name'];
}else{
$item['type_name']='-';
}
}
}
$this->_success('修改成功', $occupy);
}
/**
* note 删除占用数据
* create_time 2020/10/21 19:05
*/
public function occupy_del(){
$param = $this->request->get();
$data=Db::name('leave')->where('id',$param['id'])->delete();
$this->_success('删除数据成功');
}
}