|
|
@@ -966,4 +966,97 @@ class Synchronization extends Api
|
|
|
$this->success('职位编码同步成功');
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备产量计酬云中间表数据库同步
|
|
|
+ * @return void
|
|
|
+ * @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 ProductionData()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false){
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ if(is_dir(ROOT_PATH.'public/'.date('Y-m-d',time())) == null)
|
|
|
+ {
|
|
|
+ mkdir(ROOT_PATH.'public/'.date('Y-m-d',time()),0777,true);
|
|
|
+ }
|
|
|
+ $lastID = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId');
|
|
|
+ if (empty($lastID)){
|
|
|
+ $lastID = 0;
|
|
|
+ }
|
|
|
+ $db4 = \db()->connect(config('database.db4'));
|
|
|
+ $where = [
|
|
|
+ 'sczl_rq'=>date('Y-m-d',time()),
|
|
|
+ 'UniqId' =>['>',$lastID]
|
|
|
+ ];
|
|
|
+ $productData = $db4->name('设备_产量计酬')
|
|
|
+ ->where($where)
|
|
|
+ ->select();
|
|
|
+ //获取机台信息
|
|
|
+ $machineData = \db('设备_基本资料')
|
|
|
+ ->where('mn_设备编号','<>','')
|
|
|
+ ->field('rtrim(设备编号) as 设备编号,rtrim(mn_设备编号) as 美浓设备编号')
|
|
|
+ ->select();
|
|
|
+ //获取员工资料
|
|
|
+ $employeeData = \db('人事_基本资料')
|
|
|
+ ->where('mn_员工编号','<>','')
|
|
|
+ ->field('rtrim(员工编号) as 员工编号,rtrim(mn_员工编号) as 美浓员工编号')
|
|
|
+ ->select();
|
|
|
+ //循环判断机台、员工编号
|
|
|
+ $j = 0;
|
|
|
+ $data = [];
|
|
|
+ foreach ($productData as $key=>$value){
|
|
|
+ //判断机台编号
|
|
|
+ foreach ($machineData as $v){
|
|
|
+ if ($value['sczl_jtbh'] === $v['美浓设备编号']){
|
|
|
+ $productData[$key]['sczl_jtbh'] = $v['设备编号'];
|
|
|
+ array_push($data,$productData[$key]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (empty($data)){
|
|
|
+ $this->error('未找到新的生产数据');
|
|
|
+ }
|
|
|
+ foreach ($data as $key=>$value){
|
|
|
+ $name = [];
|
|
|
+ //判断员工编号,如果不存在写入日志文件
|
|
|
+ for($i=1;$i<=10;$i++){
|
|
|
+ foreach ($employeeData as $vv){
|
|
|
+ if ($value['sczl_bh'.$i] === $vv['美浓员工编号']){
|
|
|
+ $data[$key]['sczl_bh'.$i] = $vv['员工编号'];
|
|
|
+ }else{
|
|
|
+ array_push($name,$value['sczl_bh'.$i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $name = array_unique($name);
|
|
|
+ $filename = ROOT_PATH.'public/'.date('Y-m-d',time()).'/'.$value['sczl_jtbh'].'日志文件.txt';
|
|
|
+ $handle = fopen($filename, 'w');
|
|
|
+ foreach ($name as $v){
|
|
|
+ fwrite($handle, $v);
|
|
|
+ }
|
|
|
+ fclose($handle);
|
|
|
+ //修改工单编号
|
|
|
+ if (preg_match("/[A-Za-z]/",$value['sczl_gdbh'])){
|
|
|
+ $workcode = $value['sczl_gdbh'];
|
|
|
+ }else{
|
|
|
+ $workcode = 'Y'.$value['sczl_gdbh'];
|
|
|
+ }
|
|
|
+ $data[$key]['sczl_gdbh'] = $workcode;
|
|
|
+ }
|
|
|
+ //插入设备产量计酬数据
|
|
|
+ $sql = \db('设备_产量计酬')->fetchSql(true)->insertAll($data);
|
|
|
+ $res = \db()->query($sql);
|
|
|
+ if ($res !== false){
|
|
|
+ $this->success('同步成功');
|
|
|
+ }else{
|
|
|
+ $this->error('同步失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|