_dealArray($old_list); $new_list = $this->_dealArray($new_list); $scoreByName = []; foreach ($new_list as $v) { $scoreByName[$v['xingming']] = $v; } $list = []; foreach ($old_list as $v) { if (empty($scoreByName[$v['xingming']])) { return $v['xingming'] . '在绩效得分表中未找到'; } $item = []; $item['xuhao'] = $v['xuhao']; $item['xingming'] = $v['xingming']; $item['zhiwei'] = $v['zhiwei']; $item['bumen'] = $v['bumen']; $item['jixiaofen1'] = $scoreByName[$v['xingming']]['defen1']; $item['jixiaofen2'] = $scoreByName[$v['xingming']]['defen2']; $item['jixiaofen3'] = $scoreByName[$v['xingming']]['defen3']; $item['jixiaoxishu1'] = $item['jixiaofen1'] > 100 ? 1 : $v['jixiaofen1'] / 100; $item['jixiaoxishu2'] = $item['jixiaofen2'] > 100 ? 1 : $v['jixiaofen2'] / 100; $item['jixiaoxishu3'] = $item['jixiaofen3'] > 100 ? 1 : $v['jixiaofen3'] / 100; $item['jixiaogongzijishu'] = $v['jixiaogongzijishu']; $chuqinlv1 = $v['shichuqin1'] / $v['yingchuqin1']; $chuqinlv2 = $v['shichuqin2'] / $v['yingchuqin2']; $chuqinlv3 = $v['shichuqin3'] / $v['yingchuqin3']; $item['jixiaogongzi1'] = round($item['jixiaogongzijishu'] * $item['jixiaoxishu1'] * $chuqinlv1, 2); $item['jixiaogongzi2'] = round($item['jixiaogongzijishu'] * $item['jixiaoxishu2'] * $chuqinlv2, 2); $item['jixiaogongzi3'] = round($item['jixiaogongzijishu'] * $item['jixiaoxishu3'] * $chuqinlv3, 2); $item['jixiaogongziheji'] = $item['jixiaogongzi1'] + $item['jixiaogongzi2'] + $item['jixiaogongzi3']; $item['yufagongzi1'] = $item['yufagongzi2'] = $item['yufagongzi3'] = $item['jixiaogongzijishu'] * 0.8; $item['yufagongziheji'] = $item['yufagongzi1'] * 3; $item['bufa'] = $item['jixiaogongziheji'] - $item['yufagongziheji']; if ($item['bufa'] > 0) { $item['gonghui'] = round($item['bufa'] * 0.005, 2); } else { $item['gonghui'] = 0; } $item['shifa'] = round($item['bufa'] - $item['gonghui'], 2); $list[] = $item; } $xlsCell = [ ['xuhao', '序号'], ['xingming', '姓名'], ['zhiwei', '职位'], ['bumen', '部门'], ['jixiaofen1', '绩效得分第1月'], ['jixiaofen2', '绩效得分第2月'], ['jixiaofen3', '绩效得分第3月'], ['jixiaoxishu1', '绩效系数第1月'], ['jixiaoxishu2', '绩效系数第2月'], ['jixiaoxishu3', '绩效系数第3月'], ['jixiaogongzijishu', '绩效工资基数'], ['jixiaogongzi1', '绩效工资第1月'], ['jixiaogongzi2', '绩效工资第2月'], ['jixiaogongzi3', '绩效工资第3月'], ['jixiaogongziheji', '绩效工资合计'], ['yufagongzi1', '已预发工资第1月'], ['yufagongzi2', '已预发工资第2月'], ['yufagongzi3', '已预发工资第3月'], ['yufagongziheji', '已预发工资合计'], ['bufa', '应补发绩效工资'], ['gonghui', '工会会费'], ['shifa', '实际补发绩效工资'], ]; // unlink($old_file); // unlink($new_file); export_exl("绩效工资", $xlsCell, $list); } public function match1() { $old_file = input('old_file/s', ""); if (!file_exists($old_file)) { return '旧名单文件不存在'; } $new_file = input('new_file/s', ""); if (!file_exists($new_file)) { return '新名单文件不存在'; } //初始化数据 $data1 = [ 'xuhao', 'xingming', 'zhiwei', 'bumen', 'jixiaofen1', 'jixiaofen2', 'jixiaofen3', 'jixiaoxishu1', 'jixiaoxishu2', 'jixiaoxishu3', 'jixiaogongzijishu', 'jixiaogongzi1', 'jixiaogongzi2', 'jixiaogongzi3', 'jixiaogongziheji', 'yufagongzi1', 'yufagongzi2', 'yufagongzi3', 'yufagongziheji', ]; $data2 = [ 'xuhao', 'bumen', 'xingming', 'afen1', 'afen2', 'afen3', 'ziping', 'bumen', 'fenguan', 'heyue', 'defen1', 'defen2', 'defen3', ]; $old_list = import_exl_jixiao($old_file, $data1, 4); $new_list = import_exl_jixiao($new_file, $data2, 3); if (empty($old_list)) { return '旧名单文件无数据'; } if (empty($new_list)) { return '新名单文件无数据'; } $old_list = $this->_dealArray($old_list); $new_list = $this->_dealArray($new_list); $scoreByName = []; foreach ($new_list as $v) { $scoreByName[$v['xingming']] = $v; } $list = []; foreach ($old_list as $v) { if (empty($scoreByName[$v['xingming']])) { return $v['xingming'] . '在绩效得分表中未找到'; } $v['jixiaofen1'] = $scoreByName[$v['xingming']]['defen1']; $v['jixiaofen2'] = $scoreByName[$v['xingming']]['defen2']; $v['jixiaofen3'] = $scoreByName[$v['xingming']]['defen3']; $v['jixiaoxishu1'] = $scoreByName[$v['xingming']]['defen1'] > 100 ? 1 : $scoreByName[$v['xingming']]['defen1'] / 100; $v['jixiaoxishu2'] = $scoreByName[$v['xingming']]['defen2'] > 100 ? 1 : $scoreByName[$v['xingming']]['defen2'] / 100; $v['jixiaoxishu3'] = $scoreByName[$v['xingming']]['defen3'] > 100 ? 1 : $scoreByName[$v['xingming']]['defen3'] / 100; $v['jixiaogongzi1'] = $v['jixiaogongzijishu'] * $v['jixiaoxishu1']; $v['jixiaogongzi2'] = $v['jixiaogongzijishu'] * $v['jixiaoxishu2']; $v['jixiaogongzi3'] = $v['jixiaogongzijishu'] * $v['jixiaoxishu3']; $v['jixiaogongziheji'] = $v['jixiaogongzi1'] + $v['jixiaogongzi2'] + $v['jixiaogongzi3']; $v['yufagongzi1'] = $v['jixiaogongzijishu'] * 0.8; $v['yufagongzi2'] = $v['jixiaogongzijishu'] * 0.8; $v['yufagongzi3'] = $v['jixiaogongzijishu'] * 0.8; $v['yufagongziheji'] = $v['yufagongzi1'] + $v['yufagongzi2'] + $v['yufagongzi3']; $v['bufa'] = $v['jixiaogongziheji'] - $v['yufagongziheji']; $v['gonghui'] = round($v['bufa'] * 0.005, 2); $v['shifa'] = round($v['bufa'] - $v['gonghui'], 2); $list[] = $v; } $xlsCell = [ ['xuhao', '序号'], ['xingming', '姓名'], ['zhiwei', '职位'], ['bumen', '部门'], ['jixiaofen1', '绩效得分第1月'], ['jixiaofen2', '绩效得分第2月'], ['jixiaofen3', '绩效得分第3月'], ['jixiaoxishu1', '绩效系数第1月'], ['jixiaoxishu2', '绩效系数第2月'], ['jixiaoxishu3', '绩效系数第3月'], ['jixiaogongzijishu', '绩效工资基数'], ['jixiaogongzi1', '绩效工资第1月'], ['jixiaogongzi2', '绩效工资第2月'], ['jixiaogongzi3', '绩效工资第3月'], ['jixiaogongziheji', '绩效工资合计'], ['yufagongzi1', '已预发工资第1月'], ['yufagongzi2', '已预发工资第2月'], ['yufagongzi3', '已预发工资第3月'], ['yufagongziheji', '已预发工资合计'], ['bufa', '应补发绩效工资'], ['gonghui', '工会会费'], ['shifa', '实际补发绩效工资'], ]; unlink($old_file); unlink($new_file); export_exl("绩效工资", $xlsCell, $list); } private function _dealArray($arr) { $res = []; foreach ($arr as $v) { if (!empty($v['xingming'])) { $res[] = $v; } } return $res; } }