|
|
@@ -81,7 +81,7 @@ class Staff extends Api
|
|
|
$where['staff_no|staff_name'] = array('like','%'.$params['search'].'%');
|
|
|
}
|
|
|
if (!empty($params['department_code'])){
|
|
|
- $where['team_name|big_process|dept_name'] = $params['department_code'];
|
|
|
+ $where['big_process|dept_name'] = $params['department_code'];
|
|
|
}
|
|
|
|
|
|
$limit = $params['limit'];
|
|
|
@@ -98,10 +98,7 @@ class Staff extends Api
|
|
|
staff_no as 员工编号,
|
|
|
staff_name as 员工姓名,
|
|
|
gender as 性别,
|
|
|
- team_id,
|
|
|
- team_name as 所在小组,
|
|
|
big_process as 生产工序,
|
|
|
- position as 职称职务,
|
|
|
dept_name as 所在部门,
|
|
|
status as 状态,
|
|
|
sys_rq as 创建日期,
|
|
|
@@ -139,10 +136,7 @@ class Staff extends Api
|
|
|
staff_no as 员工编号,
|
|
|
staff_name as 员工姓名,
|
|
|
gender as 性别,
|
|
|
- team_id,
|
|
|
- team_name as 所在小组,
|
|
|
big_process as 生产工序,
|
|
|
- position as 职称职务,
|
|
|
dept_name as 所在部门,
|
|
|
status as 状态,
|
|
|
sys_rq as 创建日期,
|
|
|
@@ -181,9 +175,6 @@ class Staff extends Api
|
|
|
$data['staff_name'] = $params['员工姓名'];
|
|
|
$data['gender'] = $params['性别'];
|
|
|
$data['big_process'] = $params['生产工序'];
|
|
|
- $data['position'] = $params['职称职务'];
|
|
|
- $data['team_name'] = $params['所在小组'];
|
|
|
- $data['team_id'] = $params['UniqId'];
|
|
|
$data['dept_name'] = '生产部';
|
|
|
$data['status'] = 1;
|
|
|
$data['sys_rq'] = date('Y-m-d H:i:s');
|
|
|
@@ -244,9 +235,6 @@ class Staff extends Api
|
|
|
$data['staff_name'] = $params['员工姓名'];
|
|
|
$data['gender'] = $params['性别'];
|
|
|
$data['big_process'] = $params['生产工序'];
|
|
|
- $data['position'] = $params['职称职务'];
|
|
|
- $data['team_name'] = $params['所在小组'];
|
|
|
- $data['team_id'] = $params['UniqId'];
|
|
|
$data['dept_name'] = '生产部';
|
|
|
$data['updatetime'] = date('Y-m-d H:i:s');
|
|
|
$data['sys_id'] = $params['sys_id'];
|
|
|
@@ -287,16 +275,229 @@ class Staff extends Api
|
|
|
* 获取设备编组
|
|
|
*/
|
|
|
public function GetDeviceNameList(){
|
|
|
- if (Request::instance()->isGet() == false){
|
|
|
+ if (!Request::instance()->isGet()){
|
|
|
$this->error('非法请求');
|
|
|
}
|
|
|
+
|
|
|
+ // 定义需要过滤、不返回给前端的设备编组
|
|
|
+ $filterGroups = [
|
|
|
+ '自动裁床01组',
|
|
|
+ '自动裁床02组',
|
|
|
+ '模板机01组',
|
|
|
+ '模板机02组',
|
|
|
+ '上袖机01组',
|
|
|
+ '上袖机02组',
|
|
|
+ '裁床1',
|
|
|
+ '裁床2',
|
|
|
+ '模版机'
|
|
|
+ ];
|
|
|
+
|
|
|
$list = Db::name('设备_基本资料')
|
|
|
->field('UniqId,设备编组,生产工序,工序')
|
|
|
- ->where('设备名称','1')
|
|
|
+ ->where('设备名称', 1)
|
|
|
->whereNull('mod_rq')
|
|
|
+ ->whereNotIn('设备编组', $filterGroups) // 过滤不想要的数据
|
|
|
->group('设备编组')
|
|
|
->order('工序,UniqId asc')
|
|
|
->select();
|
|
|
+
|
|
|
$this->success('获取设备编组成功', $list);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取小组及人员列表
|
|
|
+ * 支持按工序/小组名称搜索,返回每个小组下的成员信息
|
|
|
+ */
|
|
|
+ public function GetTeamStaffList()
|
|
|
+ {
|
|
|
+ if (Request::instance()->isGet() == false){
|
|
|
+ $this->error('非法请求');
|
|
|
+ }
|
|
|
+ $params = Request::instance()->param();
|
|
|
+
|
|
|
+ $where = [];
|
|
|
+ if (!empty($params['search'])){
|
|
|
+ $where['a.team_name|a.big_process'] = array('like','%'.$params['search'].'%');
|
|
|
+ }
|
|
|
+
|
|
|
+ $list = Db::name('人员_小组资料')->alias('a')
|
|
|
+ ->field('
|
|
|
+ b.staff_no as 员工编号,
|
|
|
+ b.staff_name as 员工姓名,
|
|
|
+ a.*
|
|
|
+ ')
|
|
|
+ ->join('人员_基本资料 b', 'a.staff_no = b.staff_no')
|
|
|
+ ->where($where)
|
|
|
+ ->whereNull('a.mod_rq')
|
|
|
+ ->whereNull('b.mod_rq')
|
|
|
+ ->order('a.id asc')
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ // 整理成"小组+成员"的树形结构
|
|
|
+ $result = [];
|
|
|
+ foreach ($list as $item) {
|
|
|
+ $teamId = $item['team_id'];
|
|
|
+ if (!isset($result[$teamId])) {
|
|
|
+ $result[$teamId] = [
|
|
|
+ '小组ID' => $teamId,
|
|
|
+ '小组名称' => $item['team_name'],
|
|
|
+ '生产工序' => $item['big_process'],
|
|
|
+ 'staff_list' => []
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ // 添加成员信息
|
|
|
+ $result[$teamId]['staff_list'][] = [
|
|
|
+ 'id' => $item['id'],
|
|
|
+ '员工编号' => $item['员工编号'],
|
|
|
+ '员工姓名' => $item['员工姓名'],
|
|
|
+ '职位' => $item['position']
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转为索引数组返回
|
|
|
+ $data = array_values($result);
|
|
|
+ $this->success('获取成功', $data);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增小组人员
|
|
|
+ */
|
|
|
+ public function AddTeamStaff()
|
|
|
+ {
|
|
|
+ if (!Request::instance()->isPost()) {
|
|
|
+ $this->error('非法请求');
|
|
|
+ }
|
|
|
+
|
|
|
+ $params = Request::instance()->param();
|
|
|
+
|
|
|
+ // 1. 校验员工是否存在
|
|
|
+ $staffInfo = Db::name('人员_基本资料')
|
|
|
+ ->where('staff_no', $params['staff_no'])
|
|
|
+ ->whereNull('mod_rq')
|
|
|
+ ->find();
|
|
|
+ if (!$staffInfo) {
|
|
|
+ $this->error('员工不存在或已删除');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 校验该员工是否已在小组中
|
|
|
+ $exist = Db::name('人员_小组资料')
|
|
|
+ ->where('staff_no', $params['staff_no'])
|
|
|
+ ->whereNull('mod_rq')
|
|
|
+ ->find();
|
|
|
+ if ($exist) {
|
|
|
+ $this->error('该员工已在其他小组中');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 组装数据
|
|
|
+ $data = [
|
|
|
+ 'big_process' => $params['big_process'],
|
|
|
+ 'team_id' => $params['team_id'],
|
|
|
+ 'team_name' => $params['team_name'],
|
|
|
+ 'staff_no' => $params['staff_no'],
|
|
|
+ 'staff_name' => $params['staff_name'],
|
|
|
+ 'position' => $params['position'],
|
|
|
+ 'status' => 1,
|
|
|
+ 'sys_id' => $params['sys_id'],
|
|
|
+ 'createtime' => date('Y-m-d H:i:s')
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = Db::name('人员_小组资料')->insert($data);
|
|
|
+ if ($res) {
|
|
|
+ $this->success('新增成功');
|
|
|
+ } else {
|
|
|
+ $this->error('新增失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改小组人员
|
|
|
+ */
|
|
|
+ public function EditTeamStaff()
|
|
|
+ {
|
|
|
+ if (!Request::instance()->isPost()) {
|
|
|
+ $this->error('非法请求');
|
|
|
+ }
|
|
|
+
|
|
|
+ $params = Request::instance()->param();
|
|
|
+ echo "<pre>";
|
|
|
+ print_r($params);
|
|
|
+ echo "<pre>";die;
|
|
|
+ // 必传参数校验
|
|
|
+ if (empty($params['id'])) {
|
|
|
+ $this->error('参数不完整');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 1. 校验该记录是否存在
|
|
|
+ $info = Db::name('人员_小组资料')
|
|
|
+ ->where('id', $params['id'])
|
|
|
+ ->whereNull('mod_rq')
|
|
|
+ ->find();
|
|
|
+ if (!$info) {
|
|
|
+ $this->error('记录不存在或已删除');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 如果修改了员工ID,校验新员工是否已在该小组中(排除自身)
|
|
|
+ if (!empty($params['staff_id']) && $params['staff_id'] != $info['staff_id']) {
|
|
|
+ $exist = Db::name('人员_小组资料')
|
|
|
+ ->where('team_id', $params['team_id'] ?? $info['team_id'])
|
|
|
+ ->where('staff_id', $params['staff_id'])
|
|
|
+ ->where('id', '<>', $params['id'])
|
|
|
+ ->whereNull('mod_rq')
|
|
|
+ ->find();
|
|
|
+ if ($exist) {
|
|
|
+ $this->error('该员工已在此小组中');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 组装更新数据
|
|
|
+ $data = [];
|
|
|
+ if (isset($params['big_process'])) $data['big_process'] = $params['big_process'];
|
|
|
+ if (isset($params['team_id'])) $data['team_id'] = $params['team_id'];
|
|
|
+ if (isset($params['team_name'])) $data['team_name'] = $params['team_name'];
|
|
|
+ if (isset($params['staff_id'])) {
|
|
|
+ $data['staff_id'] = $params['staff_id'];
|
|
|
+ // 更新员工姓名
|
|
|
+ $staffInfo = Db::name('人员_基本资料')->where('id', $params['staff_id'])->find();
|
|
|
+ if ($staffInfo) {
|
|
|
+ $data['staff_name'] = $staffInfo['staff_name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isset($params['position'])) $data['position'] = $params['position'];
|
|
|
+ $data['updatetime'] = date('Y-m-d H:i:s');
|
|
|
+
|
|
|
+ $res = Db::name('人员_小组资料')
|
|
|
+ ->where('id', $params['id'])
|
|
|
+ ->update($data);
|
|
|
+
|
|
|
+ if ($res !== false) {
|
|
|
+ $this->success('修改成功');
|
|
|
+ } else {
|
|
|
+ $this->error('修改失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除小组人员
|
|
|
+ */
|
|
|
+ public function DelTeamStaff()
|
|
|
+ {
|
|
|
+ if (!Request::instance()->isPost()) {
|
|
|
+ $this->error('非法请求');
|
|
|
+ }
|
|
|
+
|
|
|
+ $params = Request::instance()->param();
|
|
|
+
|
|
|
+ $res = Db::name('人员_小组资料')
|
|
|
+ ->where('id', $params['id'])
|
|
|
+ ->update([
|
|
|
+ 'mod_rq' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if ($res !== false) {
|
|
|
+ $this->success('删除成功');
|
|
|
+ } else {
|
|
|
+ $this->error('删除失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|