Browse Source

人事资料数据同步

qiuenguang 1 year ago
parent
commit
db8e68f5e8
1 changed files with 142 additions and 0 deletions
  1. 142 0
      application/api/controller/Synchronization.php

+ 142 - 0
application/api/controller/Synchronization.php

@@ -296,4 +296,146 @@ class Synchronization extends Api
             $this->success('存货结构同步成功');
         }
     }
+
+    /**
+     * 人事基本资料同步
+     * @return void
+     * @throws \think\Exception
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function PersonnelData()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $db3 = \db()->connect(config('database.db3'));
+        $PersonnelDataList = $db3->name('U8_02人事资料')
+            ->where('MES接收时间',null)
+            ->where('MES接收状态','0')
+            ->select();
+        if (empty($PersonnelDataList)){
+            $this->success('未找到新的人事资料');
+        }
+        $i = 0;
+        foreach ($PersonnelDataList as $key=>$value){
+            $data = [
+                '工卡编号'=>'',
+                '卡钟设定'=>'',
+                '打卡设置'=>'',
+                '员工编号'=>$value['员工编号'],
+                '员工姓名'=>$value['员工姓名'],
+                '性别'=>$value['性别'],
+                '聘用日期'=>$value['聘用日期'],
+                '转正日期'=>$value['转正日期'],
+                'U8离职日期'=>$value['离职日期'],
+                'MES离职日期'=>$value['离职日期'],
+                '扣减司龄'=>0,
+                '部门编码'=>$value['部门编码'],
+                '所在部门'=>$value['所在部门'],
+                '人员类别'=>$value['人员类别'],
+                '人员性质'=>$value['人员性质'],
+                '班次类型'=>'',
+                '标准工时制'=>'',
+                '职称职务'=>$value['职称职务'],
+                '薪资级别'=>$value['级别'],
+                '工资表类别'=>'',
+                '基本工资'=>'',
+                '绩效工资1'=>'',
+                '绩效工资2'=>'',
+                '技能工资'=>'',
+                '岗位津贴'=>'',
+                '竞业补贴'=>'',
+                '专业技术津贴'=>'',
+                '技工技师津贴'=>'',
+                '特殊工种津贴'=>'',
+                '各类奖项津贴'=>'',
+                '职危津贴'=>'',
+                '夜班津贴'=>'',
+                '全勤津贴'=>'',
+                '住房津贴'=>'',
+                '高温津贴'=>'',
+                '用餐津贴'=>'',
+                '司龄津贴'=>'',
+                '联系电话'=>$value['联系电话'],
+                '合同类型'=>'',
+                '合同起始日期'=>'1900-01-01 00:00:00',
+                '合同终止日期'=>'1900-01-01 00:00:00',
+                '合同备注'=>'',
+                '出生日期'=>$value['出生日期'],
+                'pycode'=>$value['pycode'],
+                '籍贯'=>'',
+                '民族'=>'',
+                '身份证号'=>$value['身份证号'],
+                '证件有效日期'=>'1900-01-01 00:00:00',
+                '发证机关'=>'',
+                '家庭住址'=>'',
+                '学历'=>'',
+                '婚姻状况'=>'',
+                '社保开始日期'=>'1900-01-01 00:00:00',
+                '开户银行'=>$value['开户银行'],
+                '开户账号'=>$value['开户账号'],
+                '存折办理日期'=>'1900-01-01 00:00:00',
+                '紧急电话'=>'',
+                '照片ID'=>'',
+                '在职状态'=>$value['在职状态'],
+                'U8在职'=>$value['在职状态'],
+                '薪酬核算分组'=>'',
+                '考勤类型'=>'',
+                '班组代号'=>'',
+                'sys_id'=>'[272/超级用户]',
+                'sys_rq'=>date('Y-m-d H:i:s',time()),
+                'mod_rq'=>'1900-01-01 00:00:00',
+                'U8UID'=>$value['U8_UID'],
+                'UniqID'=>$value['UniqId']
+            ];
+            $number = \db('人事_基本资料')
+                ->where('Uniqid',$value['UniqId'])
+                ->count();
+            if ($number === 0){
+                $sql = \db('人事_基本资料')->fetchSql(true)->insert($data);
+                $res = \db()->query($sql);
+                if ($res === false){
+                    $i++;
+                }else{
+                    $sqlString = $db3->name('U8_02人事资料')
+                        ->where('UniqId', $value['UniqId'])
+                        ->fetchSql(true)
+                        ->update([
+                            'MES接收时间' => date('Y-m-d H:i:s', time()),
+                            'MES接收状态' => '1'
+                        ]);
+                    $db3->execute($sqlString);
+                }
+            }else{
+                $sql = \db('人事_基本资料')
+                    ->fetchSql(true)
+                    ->where('UniqId',$value['UniqId'])
+                    ->update($data);
+                $res = \db()->query($sql);
+                if ($res === false){
+                    $i++;
+                }else{
+
+                    $sqlString = $db3->name('U8_02人事资料')
+                        ->where('UniqId', $value['UniqId'])
+                        ->fetchSql(true)
+                        ->update([
+                            'MES接收时间' => date('Y-m-d H:i:s', time()),
+                            'MES接收状态' => '1'
+                        ]);
+                    $db3->execute($sqlString);
+
+                }
+            }
+        }
+        if ($i !== 0){
+            $this->error('人事资料同步失败');
+        }else{
+            $this->success('人事资料同步成功');
+        }
+    }
 }