success('请求成功'); } /** * 获取机台生产日报表侧边栏 * @ApiMethod (GET) */ public function getTab() { //get请求 if(!$this->request->isGet()){ $this->error('请求方式错误'); } $rows = db()->table('设备_产量计酬') ->field('LEFT(sys_rq, 10) as date, COUNT(*) as counts') ->group('date') ->order('UniqId desc') ->limit(30) ->select(); $rows1 = db()->table('db_sczl') ->group('date') ->order('UniqId desc') ->limit(40) ->column('LEFT(sys_rq, 10) as date, COUNT(*) as counts'); $arr2 = db()->table('设备_产量计酬') ->field('LEFT(sys_rq, 10) as date, rtrim(sys_id) as sys_id, COUNT(sys_id) as count') ->where('sys_rq','>=',$rows[29]['date']) ->group('date, sys_id') ->select(); $arr1 = db()->table('db_sczl') ->field('LEFT(sys_rq, 10) as date, rtrim(sys_id) as sys_id, COUNT(sys_id) as count') ->where('sys_rq','>=',$rows[29]['date']) ->group('date, sys_id') ->select(); $result = []; // 遍历第一个数组 foreach ($arr1 as $item) { $date = $item['date']; $sysId = $item['sys_id']; $count = $item['count']; // 如果结果数组中不存在该日期和系统ID的记录,则创建新记录 if (!isset($result[$date][$sysId])) { $result[$date][$sysId] = 0; } // 将count累加到对应的记录中 $result[$date][$sysId] += $count; } // 遍历第二个数组 foreach ($arr2 as $item) { $date = $item['date']; $sysId = $item['sys_id']; $count = $item['count']; // 如果结果数组中不存在该日期和系统ID的记录,则创建新记录 if (!isset($result[$date][$sysId])) { if (substr($sysId,1,3)=='00-'){ if (isset($result[$date])){ $result[$date] = array_merge([$sysId=>0],$result[$date]); }else{ $result[$date][$sysId] = 0; } // }else if (substr($sysId,5,1)=='/'){ // $num = substr($sysId,1,4); // $i = $flag = 0; // foreach ($result[$date] as $k => $v) { // if (substr($k, 4, 1) === "/") { // dump(substr($k, 1, 4)); // dump($k); // dump($result[$date][$i+1]); // if (substr($k, 1, 4)<$num && substr($result[$date][$i+1], 1, 4)>$num){ // $flag = $i; // break; // } // } // $i++; // } // dump($flag); // if (isset($result[$date])){ // $result[$date] = array_merge([$sysId=>0],$result[$date]); // }else{ // $result[$date][$sysId] = 0; // } }else{ $result[$date][$sysId] = 0; } } // 将count累加到对应的记录中 $result[$date][$sysId] += $count; } foreach($rows as $key=>$value){ if(array_key_exists($value['date'],$rows1)){ $rows[$key]['counts'] = $value['counts']+$rows1[$value['date']]; }else{ $rows[$key]['counts'] = $value['counts']; } $rows[$key]['sys'] = $result[$value['date']]; $rows[$key]['date'] = str_replace('-', '.', $rows[$key]['date']); } $this->success('成功',$rows); } /** * 获取机台生产日报表列表 * @ApiMethod (GET) * @param string $date 时间 * @param string $sys_id 用户 */ public function getList() { //get请求 if(!$this->request->isGet()){ $this->error('请求方式错误'); } $req = $this->request->param(); $page = 1; $limit = 15; if (isset($req['page']) && !empty($req['page'])) $page = $req['page']; if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit']; $where = []; if (isset($req['date']) && !empty($req['date'])){ $where['sys_rq'] = ['LIKE',$req['date'].'%']; }else{ $this->error('参数错误'); } if (isset($req['sys_id']) && !empty($req['sys_id'])) $where['sys_id'] = ['LIKE','%'.$req['sys_id'].'%']; //拆片联拼系数 拆片条小盒系数 日定额 千件工价 补产标准 $rows1 = db()->table('设备_产量计酬') ->field('sczl_gdbh, sczl_yjno, sczl_gxmc, LEFT(sczl_rq, 10) as sczl_rq, sczl_jtbh, sczl_bzdh, sczl_num, CAST(sczl_cl AS SIGNED) as sczl_cl, CAST(sczl_ms AS SIGNED) as sczl_ms, CAST(sczl_zcfp AS SIGNED) as sczl_zcfp, CAST(sczl_zccp AS SIGNED) as sczl_zccp, CAST(sczl_来料少数 AS SIGNED) as sczl_来料少数, CAST(sczl_装版工时 AS SIGNED) as sczl_装版工时, CAST(sczl_保养工时 AS SIGNED) as sczl_保养工时, CAST(sczl_打样工时 AS SIGNED) as sczl_打样工时, CAST(sczl_异常停机工时 AS SIGNED) as sczl_异常停机工时, CAST(sczl_设备运行工时 AS SIGNED) as sczl_设备运行工时, sczl_bh1, sczl_bh2, sczl_bh3, sczl_bh4, sczl_bh5, sczl_bh6, CAST(sczl_工价系数 AS SIGNED) as sczl_工价系数, rtrim(sys_id) as sys_id, sys_rq, mod_rq, UniqId') ->where($where) ->order('UniqId desc') ->page($page,$limit) ->select(); $total1 = db()->table('设备_产量计酬')->where($where)->count(); //来料异常 日定额 千件工价 补产标准 //制程废 次品 $rows2 = db()->table('db_sczl') ->field('sczl_gdbh, sczl_yjno, sczl_gxmc, LEFT(sczl_rq, 10) as sczl_rq, sczl_jtbh, sczl_bzdh, sczl_num, CAST(sczl_cl AS SIGNED) as sczl_cl, CAST(sczl_ms AS SIGNED) as sczl_ms, CAST(sczl_fp AS SIGNED) as sczl_zcfp, CAST(sczl_cp AS SIGNED) as sczl_zccp, CAST(sczl_装版工时 AS SIGNED) as sczl_装版工时, CAST(sczl_保养工时 AS SIGNED) as sczl_保养工时, CAST(sczl_打样工时 AS SIGNED) as sczl_打样工时, CAST(sczl_异常停机工时 AS SIGNED) as sczl_异常停机工时, CAST(sczl_设备运行工时 AS SIGNED) as sczl_设备运行工时, sczl_bh1, sczl_bh2, sczl_bh3, sczl_bh4, sczl_bh5, sczl_bh6, CAST(拆片联拼系数 AS SIGNED) as 拆片联拼系数, CAST(拆片条小盒系数 AS SIGNED) as 拆片条小盒系数, CAST(sczl_工价系数 AS SIGNED) as sczl_工价系数, rtrim(sys_id) as sys_id, sys_rq, mod_rq, UniqId') ->where($where) ->order('UniqId desc') ->page($page,$limit) ->select(); $total2 = db()->table('db_sczl')->where($where)->count(); $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc'); $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名'); foreach ($rows2 as $key=>$value){ $rows2[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : ''; $rows2[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : ''; for ($i=2;$i<=6;$i++){ if ($value['sczl_bh'.$i]){ if ($value['sczl_bh'.$i]==$value['sczl_bh1']){ $rows2[$key]['name'.$i] = $rows2[$key]['name1']; }else{ $rows2[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : ''; } }else{ $rows2[$key]['name'.$i] = ''; } } $rows2[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.trim($value['sczl_gxmc']); $rows2[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num']; $rows2[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : $value['sczl_cl']; $rows2[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : $value['sczl_ms']; $rows2[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : $value['sczl_zcfp']; $rows2[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : $value['sczl_zccp']; $rows2[$key]['sczl_装版工时'] = $value['sczl_装版工时'] == 0 ? '' : $value['sczl_装版工时']; $rows2[$key]['sczl_保养工时'] = $value['sczl_保养工时'] == 0 ? '' : $value['sczl_保养工时']; $rows2[$key]['sczl_打样工时'] = $value['sczl_打样工时'] == 0 ? '' : $value['sczl_打样工时']; $rows2[$key]['sczl_异常停机工时'] = $value['sczl_异常停机工时'] == 0 ? '' : $value['sczl_异常停机工时']; $rows2[$key]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : $value['sczl_设备运行工时']; $rows2[$key]['拆片联拼系数'] = $value['拆片联拼系数'] == 0 ? '' : $value['拆片联拼系数']; $rows2[$key]['拆片条小盒系数'] = $value['拆片条小盒系数'] == 0 ? '' : $value['拆片条小盒系数']; $rows2[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : $value['sczl_工价系数']; unset($rows2[$key]['sczl_yjno']); unset($rows2[$key]['sczl_gxmc']); } foreach ($rows1 as $key=>$value){ $rows1[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : ''; $rows1[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : ''; for ($i=2;$i<=6;$i++){ if ($value['sczl_bh'.$i]){ if ($value['sczl_bh'.$i]==$value['sczl_bh1']){ $rows1[$key]['name'.$i] = $rows1[$key]['name1']; }else{ $rows1[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : ''; } }else{ $rows1[$key]['name'.$i] = ''; } } $rows1[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.trim($value['sczl_gxmc']); $rows1[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num']; $rows1[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : $value['sczl_cl']; $rows1[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : $value['sczl_ms']; $rows1[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : $value['sczl_zcfp']; $rows1[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : $value['sczl_zccp']; $rows1[$key]['sczl_来料少数'] = $value['sczl_来料少数'] == 0 ? '' : $value['sczl_来料少数']; $rows1[$key]['sczl_装版工时'] = $value['sczl_装版工时'] == 0 ? '' : $value['sczl_装版工时']; $rows1[$key]['sczl_保养工时'] = $value['sczl_保养工时'] == 0 ? '' : $value['sczl_保养工时']; $rows1[$key]['sczl_打样工时'] = $value['sczl_打样工时'] == 0 ? '' : $value['sczl_打样工时']; $rows1[$key]['sczl_异常停机工时'] = $value['sczl_异常停机工时'] == 0 ? '' : $value['sczl_异常停机工时']; $rows1[$key]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : $value['sczl_设备运行工时']; $rows1[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : $value['sczl_工价系数']; unset($rows1[$key]['sczl_yjno']); unset($rows1[$key]['sczl_gxmc']); } $rows = array_merge($rows2,$rows1); $data = [ 'total' => $total1+$total2, 'rows' => $rows, ]; $this->success('成功',$data); } /** * 获取机台生产日报表信息 * @ApiMethod (GET) * @param string $UniqId UniqId */ public function getInfo() { //get请求 if(!$this->request->isGet()){ $this->error('请求方式错误'); } $req = $this->request->param(); if (isset($req['UniqId']) && !empty($req['UniqId'])){ $UniqId = $req['UniqId']; }else{ $this->error('参数错误'); } $rows = db()->table('db_sczl')->alias('d') ->field('d.*, ') ->join('工单_基本资料 g', 'd.') ->where('d.UniqId',$UniqId) ->select(); $this->success('成功',$rows); } }