success('请求成功'); } /** * 获取工序大废品惩奖侧边栏 * @ApiMethod (GET) */ public function getTab() { //get请求 if(!$this->request->isGet()){ $this->error('请求方式错误'); } $rows = db()->table('db_大废品') ->field('DISTINCT(LEFT(sys_rq, 7)) AS mouth,LEFT(sys_rq, 10) as date, COUNT(*) as counts') ->group('date') ->order('UniqId desc') ->limit(40) ->select(); $list = []; foreach($rows as $key=>$value){ if (!isset($list[$value['mouth']])){ $list[$value['mouth']] = []; } $arr['date'] = str_replace('-', '.', $rows[$key]['date']); $arr['counts'] = $rows[$key]['counts']; array_push($list[$value['mouth']],$arr); // $list[$value['mouth']]['date'] = str_replace('-', '.', $rows[$key]['date']); } $this->success('成功',$list); } /** * 获取工序大废品惩奖侧边栏根据工单 * @ApiMethod (GET) */ public function getTabByGd() { //get请求 if(!$this->request->isGet()){ $this->error('请求方式错误'); } $rows = db()->table('db_大废品') ->field('sczl_gdbh,rtrim(g.成品名称) as 成品名称') ->join('工单_基本资料 g','g.Gd_gdbh=db_大废品.sczl_gdbh','LEFT') ->group('sczl_gdbh') ->whereTime('db_大废品.sys_rq', '>=', strtotime('-60 days')) ->order('sczl_gdbh desc') ->select(); foreach($rows as $key=>$value){ $data[$key]['label']=$value['sczl_gdbh'].' 【'.$value['成品名称'].'】'; $data[$key]['sczl_gdbh']=$value['sczl_gdbh']; } $this->success('成功',$data); } /** * 获取工序大废品惩奖列表 * 月份导出 */ // public function Apigetexcel(){ // // } /** * 获取工序大废品惩奖列表 */ public function getList() { if (!$this->request->isGet()) { $this->error('请求方式错误'); } $req = $this->request->param(); $rq = $req['date']; $page = 1; $limit = 15; // 处理分页 if (isset($req['page']) && !empty($req['page'])) $page = $req['page']; if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit']; // 规范化日期格式 $date = substr($req['date'], 0, 10); $req['date'] = str_replace('.', '-', $date); $where = []; /* * 按月份查询是按照生产月份进行筛选 * 按日查询是按照添加时间筛选 */ if (!empty($req['date'])) { // 根据日期中是否包含中文字符,决定查询条件 if (preg_match('/[\x{4e00}-\x{9fa5}]/u', $rq) > 0) { $where['sys_rq'] = ['LIKE', $req['date'] . '%']; $order = [ 'sys_rq' => 'DESC', 'UniqId' => 'DESC' ]; } else { $where['sczl_rq'] = ['LIKE', $req['date'] . '%']; $order = [ 'sczl_rq' => 'DESC', 'UniqId' => 'DESC' ]; } } else { $this->error('参数错误'); } // 查询数据库,获取数据 $res = db()->table('db_大废品') ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno, rtrim(责任部门) as 责任部门, sczl_cl, rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, jl_jtbh as Jl_bzdh, sczl_jtbh as sczl_bzdh,rtrim(sys_id) as sys_id, sys_rq, UniqId, sczl_bh1,sczl_bh2,sczl_bh3,sczl_bh4, sczl_je1, sczl_je2, sczl_je3, sczl_je4, JL_bh1,JL_bh2,JL_bh3, JL_bh4, JL_Je1, JL_Je2, JL_Je3, JL_Je4 ') // ->where('sczl_gdbh', $req['date']) ->where($where) ->order($order) ->page($page, $limit) ->select(); // 如果查询不到数据,则使用备用查询条件 if ($res) { $rows = $res; // $total = db()->table('db_大废品')->where('sczl_gdbh', $req['date'])->count(); $total = db()->table('db_大废品')->where($where)->count(); } else { $rows = db()->table('db_大废品') ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno, rtrim(责任部门) as 责任部门, sczl_cl, rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, jl_jtbh as Jl_bzdh, sczl_jtbh as sczl_bzdh,rtrim(sys_id) as sys_id, sys_rq, UniqId, sczl_bh1,sczl_bh2,sczl_bh3,sczl_bh4, sczl_je1, sczl_je2, sczl_je3, sczl_je4, JL_bh1,JL_bh2,JL_bh3, JL_bh4, JL_Je1, JL_Je2, JL_Je3, JL_Je4 ') ->where($where) ->order($order) ->page($page, $limit) ->select(); $total = db()->table('db_大废品')->where($where)->count(); } // 获取相关数据用于转换 $gd = db()->table('工单_印件资料')->column('Yj_Gdbh, yj_yjmc'); $rs = db()->table('人事_基本资料')->where('员工姓名', '<>', '通用编号')->column('员工编号, 员工姓名'); //查询结果 foreach ($rows as $key => $value) { $rows[$key]['yj_yjmc'] = array_key_exists($value['sczl_gdbh'], $gd) ? sprintf("%02d", $value['sczl_yjno']) . '-' . trim($gd[$value['sczl_gdbh']]) : ''; $rows[$key]['JL_bh1'] = array_key_exists($value['JL_bh1'], $rs) ? trim($rs[$value['JL_bh1']]) : ''; $rows[$key]['JL_bh2'] = array_key_exists($value['JL_bh2'], $rs) ? trim($rs[$value['JL_bh2']]) : ''; $rows[$key]['JL_bh3'] = array_key_exists($value['JL_bh3'], $rs) ? trim($rs[$value['JL_bh3']]) : ''; $rows[$key]['JL_bh4'] = array_key_exists($value['JL_bh4'], $rs) ? trim($rs[$value['JL_bh4']]) : ''; $rows[$key]['sczl_bh1'] = array_key_exists($value['sczl_bh1'], $rs) ? trim($rs[$value['sczl_bh1']]) : ''; $rows[$key]['sczl_bh2'] = array_key_exists($value['sczl_bh2'], $rs) ? trim($rs[$value['sczl_bh2']]) : ''; $rows[$key]['sczl_bh3'] = array_key_exists($value['sczl_bh3'], $rs) ? trim($rs[$value['sczl_bh3']]) : ''; $rows[$key]['sczl_bh4'] = array_key_exists($value['sczl_bh4'], $rs) ? trim($rs[$value['sczl_bh4']]) : ''; $rows[$key]['sczl_fplxB'] = $value['sczl_fplxB'] == 1 ? '制程废' : ''; /* * 惩罚金额人员规则 * 1、机长(sczl_je1) 当天超过 1000,显示 1000 * 2、组员(sczl_je2、sczl_je3、sczl_je4) 当天超过 500,显示 500 */ for ($i = 1; $i <= 4; $i++) { // 惩罚人员编号 $bhKey = "sczl_bh{$i}"; // 惩罚金额 $jeKey = "sczl_je{$i}"; // 如果人员编号不为空,且惩罚金额大于 0,则进行计算 if (!empty($rows[$key][$bhKey]) && $value[$jeKey] > 0) { // 计算原始惩罚金额,并保留 2 位小数 $originalAmount = round($value[$jeKey] * $value['sczl_cl'], 2); $info = ["惩罚:$originalAmount"]; // 机长(sczl_je1)超过 1000,固定扣除 1000 if ($i == 1 && $originalAmount > 1000) { $info[] = "封顶:1000"; } // 组员(sczl_je2, sczl_je3, sczl_je4)超过 500,固定扣除 500 elseif ($i > 1 && $originalAmount > 500) { $info[] = "封顶:500"; } // 用 `implode()` 拼接成字符串,确保格式整洁 $rows[$key][$bhKey] .= "(" . implode(" | ", $info) . ")"; } } /* * 奖励金额人员规则 */ // 计算有效奖励人数和总奖励金额 $validCount = 0; $totalJLAmt = 0; // 先计算总奖励金额,并统计有值的奖励人数 for ($i = 1; $i <= 4; $i++) { $jlKey = "JL_Je{$i}"; if (!empty($value[$jlKey]) && $value[$jlKey] > 0) { $totalJLAmt += $value[$jlKey]; // 累加奖励金额 $validCount++; // 统计有值的奖励人数 } } // 计算平分后的奖励金额 if ($validCount > 0) { // 总金额 * 系数,并保留两位小数 $totalJLAmt = round($totalJLAmt * $value['sczl_cl'], 2); if ($totalJLAmt > 200) { // 超过 200,按 200 平分,并保留 2 位小数 $distributedAmount = round(200 / $validCount, 2); } else { // 没超过 200,按实际金额平分,并保留 2 位小数 $distributedAmount = round($totalJLAmt / $validCount, 2); } } else { $distributedAmount = 0; } for ($i = 1; $i <= 4; $i++) { // 奖励人员编号 $jlbhKey = "JL_bh{$i}"; // 奖励金额 $jlKey = "JL_Je{$i}"; // 只有当编号不为空,并且有奖励金额时才计算 if (!empty($rows[$key][$jlbhKey]) && $value[$jlKey] > 0) { // 计算个人原始奖励金额,并保留 2 位小数 $originalAmount = round($value[$jlKey] * $value['sczl_cl'], 2); $info = ["奖励:$originalAmount"]; // 只有当总奖励金额超过 200 时,才显示封顶金额 if ($totalJLAmt > 200) { $info[] = "封顶:$distributedAmount"; } // 用 `implode()` 拼接成字符串,确保格式整洁 $rows[$key][$jlbhKey] .= "(" . implode(" | ", $info) . ")"; } } // /* // * 惩罚金额人员规则 // * 1、如果惩罚金额【机长是sczl_je1】当天超过1000,【组员是sczl_je2、sczl_je3、sczl_je4】当天超过500 // * 2、则机长显示1000、组员显示500(列如:机长(1000),组员(500)格式) // */ // for ($i = 1; $i <= 4; $i++) { // //惩罚人员编号 // $bhKey = "sczl_bh{$i}"; // // 惩罚金额 // $jeKey = "sczl_je{$i}"; // // 如果人员编号不为空,且惩罚金额大于 0,则进行计算 // if (!empty($rows[$key][$bhKey]) && $value[$jeKey] > 0) { // // 计算原始惩罚金额 // $originalAmount = $value[$jeKey] * $value['sczl_cl']; // // 初始化扣除值为空 // $deductedAmount = ''; // // 机长(sczl_je1)超过 1000,固定扣除 1000 // if ($i == 1 && $originalAmount > 1000) { // $deductedAmount = "(-1000)"; // } // // 组员(sczl_je2, sczl_je3, sczl_je4)超过 500,固定扣除 500 // elseif ($i > 1 && $originalAmount > 500) { // $deductedAmount = "(-500)"; // } // // 拼接格式:原来的数值(超过的固定值),只有超过时才显示扣除值 // $rows[$key][$bhKey] .= "({$originalAmount}){$deductedAmount}"; // } // } // // // /* // * 奖励金额人员规则 // */ // // 计算有效奖励人数和总奖励金额 // $validCount = 0; // $totalJLAmt = 0; // // // 先计算总奖励金额,并统计有值的奖励人数 // for ($i = 1; $i <= 4; $i++) { // $jlKey = "JL_Je{$i}"; // if (!empty($value[$jlKey]) && $value[$jlKey] > 0) { // $totalJLAmt += $value[$jlKey]; // 累加奖励金额 // $validCount++; // 统计有值的奖励人数 // } // } // // // 计算平分后的奖励金额 // if ($validCount > 0) { // // 总金额 * 系数 // $totalJLAmt *= $value['sczl_cl']; // if ($totalJLAmt > 200) { // // 超过 200,按 200 平分并四舍五入 // $distributedAmount = round(200 / $validCount,2); // } else { // // 没超过 200,按实际金额平分并四舍五入 // $distributedAmount = round($totalJLAmt / $validCount,2); // } // } else { // $distributedAmount = 0; // } // for ($i = 1; $i <= 4; $i++) { // // 奖励人员编号 // $jlbhKey = "JL_bh{$i}"; // // 奖励金额 // $jlKey = "JL_Je{$i}"; // // 只有当编号不为空,并且有奖励金额时才计算 // if (!empty($rows[$key][$jlbhKey]) && $value[$jlKey] > 0) { // // 个人原始奖励金额 // $originalAmount = $value[$jlKey] * $value['sczl_cl']; // // // 未超过200,只显示原始金额 // if ($totalJLAmt <= 200) { // $rows[$key][$jlbhKey] .= "({$originalAmount})"; // } else { // // 超过200,显示原始金额和分摊金额 // $rows[$key][$jlbhKey] .= "({$originalAmount})({$distributedAmount})"; // } // } // } // 移除 sczl_yjno 字段 unset($rows[$key]['sczl_yjno']); } $data = [ 'total' => $total, 'rows' => $rows, ]; $this->success('成功', $data); } // public function getList() // { // if(!$this->request->isGet()){ // $this->error('请求方式错误'); // } // $req = $this->request->param(); // $rq = $req['date']; // $page = 1; // $limit = 15; // if (isset($req['page']) && !empty($req['page'])) $page = $req['page']; // if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit']; // $date = substr($req['date'],0,10); // $req['date'] = str_replace('.','-',$date); // $where = []; // if (isset($req['date']) && !empty($req['date'])){ // if (preg_match('/[\x{4e00}-\x{9fa5}]/u', $rq)>0){ // $where['sys_rq'] = ['LIKE',$req['date'].'%']; // }else{ // $where['sczl_rq'] = ['LIKE',$req['date'].'%']; // } // // }else{ // $this->error('参数错误'); // } // $res = db()->table('db_大废品') // ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno, // rtrim(责任部门) as 责任部门,sczl_cl, // rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, jl_jtbh as Jl_bzdh, JL_bh1, // sczl_jtbh as sczl_bzdh, sczl_bh1, sczl_je1, sczl_bh2, sczl_je2, sczl_bh3,sczl_bh4, sczl_je3,sczl_je4,rtrim(sys_id) as sys_id, sys_rq, UniqId') // ->where('sczl_gdbh',$req['date']) // ->order('UniqId desc') // ->page($page,$limit) // ->select(); // if($res){ // $rows=$res; // $total = db()->table('db_大废品')->where('sczl_gdbh',$req['date'])->count();; // }else{ // $rows = db()->table('db_大废品') // ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno, // rtrim(责任部门) as 责任部门, sczl_cl, // rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, jl_jtbh as Jl_bzdh, JL_bh1, // sczl_jtbh as sczl_bzdh, sczl_bh1, sczl_je1, sczl_bh2, sczl_je2, sczl_bh3,sczl_bh4, sczl_je3,sczl_je4, rtrim(sys_id) as sys_id, sys_rq, UniqId') // ->where($where) // ->order('UniqId desc') // ->page($page,$limit) // ->select(); // $total = db()->table('db_大废品')->where($where)->count(); // } // $gd = db()->table('工单_印件资料')->column('Yj_Gdbh, yj_yjmc'); // $rs = db()->table('人事_基本资料')->where('员工姓名','<>','通用编号')->column('员工编号, 员工姓名'); // foreach ($rows as $key=>$value) { // $rows[$key]['yj_yjmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? sprintf("%02d", $value['sczl_yjno']).'-'.trim($gd[$value['sczl_gdbh']]) : ''; // $rows[$key]['JL_bh1'] = array_key_exists($value['JL_bh1'],$rs) ? trim($rs[$value['JL_bh1']]) : ''; // $rows[$key]['sczl_bh1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : ''; // $rows[$key]['sczl_bh2'] = array_key_exists($value['sczl_bh2'],$rs) ? trim($rs[$value['sczl_bh2']]) : ''; // $rows[$key]['sczl_bh3'] = array_key_exists($value['sczl_bh3'],$rs) ? trim($rs[$value['sczl_bh3']]) : ''; // $rows[$key]['sczl_bh4'] = array_key_exists($value['sczl_bh4'],$rs) ? trim($rs[$value['sczl_bh4']]) : ''; // $rows[$key]['sczl_fplxB'] = $value['sczl_fplxB'] == 1 ? '制程废' : ''; // if ($rows[$key]['sczl_bh1'] != '' && $value['sczl_je1'] > 0){ // $number = $value['sczl_je1']*$value['sczl_cl']; // if ($number > 200){ // $number = 200; // } // $rows[$key]['sczl_bh1'] = $rows[$key]['sczl_bh1'].'(-'.$number.')'; // } // if ($rows[$key]['sczl_bh2'] != '' && $value['sczl_je2'] > 0){ // $number = $value['sczl_je1']*$value['sczl_cl']; // if ($number > 200){ // $number = 200; // } // $rows[$key]['sczl_bh2'] = $rows[$key]['sczl_bh2'].'(-'.$number.')'; // } // if ($rows[$key]['sczl_bh3'] != '' && $value['sczl_je3'] > 0){ // $number = $value['sczl_je1']*$value['sczl_cl']; // if ($number > 200){ // $number = 200; // } // $rows[$key]['sczl_bh3'] = $rows[$key]['sczl_bh3'].'(-'.$number.')'; // } // if ($rows[$key]['sczl_bh4'] != '' && $value['sczl_je4'] > 0){ // $number = $value['sczl_je1']*$value['sczl_cl']; // if ($number > 200){ // $number = 200; // } // $rows[$key]['sczl_bh4'] = $rows[$key]['sczl_bh4'].'(-'.$number.')'; // } // unset($rows[$key]['sczl_yjno']); // } // $data = [ // 'total' => $total, // '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_大废品')->alias('d') ->field('sczl_gdbh,rtrim(g.Gd_cpmc) as Gd_cpmc,sczl_yjno,rtrim(yj.yj_yjmc) as yj_yjmc, rtrim(sczl_gxmc) as sczl_gxmc,sczl_gxh,rtrim(sczl_numDesc) as sczl_numDesc,LEFT(sczl_rq, 10) as sczl_rq,sczl_cl,sczl_ls,rtrim(sczl_fplxA) as sczl_fplxA,sczl_fplxB,rtrim(责任部门) as 责任部门, rtrim(jl_bzdh) as Jl_bzdh,jl_jtbh,JL_bh1,JL_bh2,JL_bh3,JL_bh4,JL_bh5,JL_bh6,JL_bh7,JL_bh8,JL_bh9, rtrim(jl1.员工姓名) as jlname1,rtrim(jl2.员工姓名) as jlname2,rtrim(jl3.员工姓名) as jlname3 ,rtrim(jl4.员工姓名) as jlname4,rtrim(jl5.员工姓名) as jlname5,rtrim(jl6.员工姓名) as jlname6 ,rtrim(jl7.员工姓名) as jlname7,rtrim(jl8.员工姓名) as jlname8,rtrim(jl9.员工姓名) as jlname9 ,JL_Je1,JL_Je2,JL_Je3,JL_Je4,JL_Je5,JL_Je6,JL_Je7,JL_Je8,JL_Je9,rtrim(sczl_bzdh) as sczl_bzdh, sczl_jtbh,sczl_bh1,sczl_bh2,sczl_bh3,sczl_bh4,sczl_bh5,sczl_bh6,sczl_bh7,sczl_bh8,sczl_bh9, rtrim(jl_bzdh) as Jl_bzdh,jl_jtbh,JL_bh1,JL_bh2,JL_bh3,JL_bh4,JL_bh5,JL_bh6,JL_bh7,JL_bh8,JL_bh9, rtrim(zr1.员工姓名) as zrname1,rtrim(zr2.员工姓名) as zrname2,rtrim(zr3.员工姓名) as zrname3 ,rtrim(zr4.员工姓名) as zrname4,rtrim(zr5.员工姓名) as zrname5,rtrim(zr6.员工姓名) as zrname6 ,rtrim(zr7.员工姓名) as zrname7,rtrim(zr8.员工姓名) as zrname8,rtrim(zr9.员工姓名) as zrname9 ,sczl_je1,sczl_je2,sczl_je3,sczl_je4,sczl_je5,sczl_je6,sczl_je7,sczl_je8,sczl_je9') ->join('工单_基本资料 g','g.Gd_gdbh=db_大废品.sczl_gdbh') ->join('工单_印件资料 yj','yj.Yj_Gdbh=db_大废品.sczl_gdbh','LEFT') ->join('人事_基本资料 jl1','jl1.员工编号=db_大废品.JL_bh1','LEFT') ->join('人事_基本资料 jl2','jl2.员工编号=db_大废品.JL_bh2','LEFT') ->join('人事_基本资料 jl3','jl3.员工编号=db_大废品.JL_bh3','LEFT') ->join('人事_基本资料 jl4','jl4.员工编号=db_大废品.JL_bh4','LEFT') ->join('人事_基本资料 jl5','jl5.员工编号=db_大废品.JL_bh5','LEFT') ->join('人事_基本资料 jl6','jl6.员工编号=db_大废品.JL_bh6','LEFT') ->join('人事_基本资料 jl7','jl7.员工编号=db_大废品.JL_bh7','LEFT') ->join('人事_基本资料 jl8','jl8.员工编号=db_大废品.JL_bh8','LEFT') ->join('人事_基本资料 jl9','jl9.员工编号=db_大废品.JL_bh9','LEFT') ->join('人事_基本资料 zr1','zr1.员工编号=db_大废品.sczl_bh1','LEFT') ->join('人事_基本资料 zr2','zr2.员工编号=db_大废品.sczl_bh2','LEFT') ->join('人事_基本资料 zr3','zr3.员工编号=db_大废品.sczl_bh3','LEFT') ->join('人事_基本资料 zr4','zr4.员工编号=db_大废品.sczl_bh4','LEFT') ->join('人事_基本资料 zr5','zr5.员工编号=db_大废品.sczl_bh5','LEFT') ->join('人事_基本资料 zr6','zr6.员工编号=db_大废品.sczl_bh6','LEFT') ->join('人事_基本资料 zr7','zr7.员工编号=db_大废品.sczl_bh7','LEFT') ->join('人事_基本资料 zr8','zr8.员工编号=db_大废品.sczl_bh8','LEFT') ->join('人事_基本资料 zr9','zr9.员工编号=db_大废品.sczl_bh9','LEFT') ->where('d.UniqId',$UniqId)->limit(1)->select(); $this->success('成功',$rows); } /** * 工单编号获取 * @return void * @throws \think\exception\DbException * @throws db\exception\DataNotFoundException * @throws db\exception\ModelNotFoundException */ public function JunkWorkOrderList() { if ($this->request->isGet() === false){ $this->error('非法请求'); } $params = $this->request->param(); if (empty($params['search'])){ $this->error('参数错误'); } $list = \db('工单_基本资料') ->field('rtrim(Gd_gdbh) as 工单编号,rtrim(成品名称) as 产品名称') ->where('Gd_gdbh','like','%'.$params['search'].'%') ->select(); if (empty($list)){ $this->success('未找到工单信息'); } $this->success('成功',$list); } /** * 印件编号获取 * @return void * @throws \think\exception\DbException * @throws db\exception\DataNotFoundException * @throws db\exception\ModelNotFoundException */ public function PrintCodeList() { if ($this->request->isGet() === false){ $this->error('非法请求'); } $param = $this->request->param(); if (empty($param['workorder'])){ $this->error('参数错误'); } $list = \db('工单_印件资料') ->field('rtrim(yj_Yjno) as 印件号,rtrim(yj_yjmc) as 印件名称') ->where('Yj_Gdbh',$param['workorder']) ->select(); if (empty($list)){ $this->success('未找到该工单印件'); } $this->success('成功',$list); } /** * 工单工序获取 * @return void * @throws \think\exception\DbException * @throws db\exception\DataNotFoundException * @throws db\exception\ModelNotFoundException */ public function ProcessList() { if ($this->request->isGet() === false){ $this->error('非法请求'); } $param = $this->request->param(); if (empty($param['workorder']) || empty($param['yjno'])){ $this->error('参数错误'); } $list = \db('工单_工艺资料') ->field('rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc') ->where('Gy0_gdbh',$param['workorder']) ->where('Gy0_yjno',$param['yjno']) ->select(); if (empty($list)){ $this->success('未找到该工单工艺'); } $data = []; foreach ($list as $key=>$value){ if ((int)$value['gxh'] < 10){ $value['gxh'] = '0'.$value['gxh']; } $data[$key] = $value['gxh'].'-'.$value['gxmc']; } $this->success('成功',$data); } /** * 机台编号获取 * @return void * @throws \think\exception\DbException * @throws db\exception\DataNotFoundException * @throws db\exception\ModelNotFoundException */ public function MachineList() { if ($this->request->isGet() === false){ $this->error('非法请求'); } $param = $this->request->param(); $list = \db('设备_产量计酬') ->alias('a') ->join('人事_基本资料 b1','a.sczl_bh1 = b1.员工编号','left') ->join('人事_基本资料 b2','a.sczl_bh2 = b2.员工编号','left') ->join('人事_基本资料 b3','a.sczl_bh3 = b3.员工编号','left') ->join('人事_基本资料 b4','a.sczl_bh4 = b4.员工编号','left') ->join('人事_基本资料 b5','a.sczl_bh5 = b5.员工编号','left') ->join('人事_基本资料 b6','a.sczl_bh6 = b6.员工编号','left') ->join('人事_基本资料 b7','a.sczl_bh7 = b7.员工编号','left') ->join('人事_基本资料 b8','a.sczl_bh8 = b8.员工编号','left') ->join('人事_基本资料 b9','a.sczl_bh9 = b9.员工编号','left') ->join('人事_基本资料 b10','a.sczl_bh10 = b10.员工编号','left') ->field('a.sczl_gxmc as 工序名称,a.sczl_jtbh as 机台编号,a.sczl_bh1 as 员工编号1,rtrim(b1.员工姓名) as 员工姓名1 ,a.sczl_bh2 as 员工编号2,rtrim(b2.员工姓名) as 员工姓名2,a.sczl_bh3 as 员工编号3,rtrim(b3.员工姓名) as 员工姓名3 ,a.sczl_bh4 as 员工编号4,rtrim(b4.员工姓名) as 员工姓名4,a.sczl_bh5 as 员工编号5,rtrim(b5.员工姓名) as 员工姓名5 ,a.sczl_bh6 as 员工编号6,rtrim(b6.员工姓名) as 员工姓名6,a.sczl_bh7 as 员工编号7,rtrim(b7.员工姓名) as 员工姓名7 ,a.sczl_bh8 as 员工编号8,rtrim(b8.员工姓名) as 员工姓名8,a.sczl_bh9 as 员工编号9,rtrim(b9.员工姓名) as 员工姓名9 ,a.sczl_bh10 as 员工编号10,rtrim(b10.员工姓名) as 员工姓名10') ->where('a.sczl_gdbh',$param['gdbh']) ->where('a.sczl_yjno',$param['yjno']) ->where('a.sczl_bzdh','like',substr($param['bzdh'],0,1).'%') ->group('机台编号,员工编号1,员工编号2,员工编号3,员工编号4,员工编号5,员工编号6,员工编号7,员工编号8,员工编号9,员工编号10') ->select(); // $list = \db('设备_基本资料') // ->field('rtrim(设备编号) as 设备编号') // ->where('sys_sbID','<>','') // ->select(); if (empty($list)){ $this->success('未找到机台编号'); } $this->success('成功',$list); } /** * 机台班组获取 * @return void * @throws \think\exception\DbException * @throws db\exception\DataNotFoundException * @throws db\exception\ModelNotFoundException */ public function MachineClassList() { if ($this->request->isGet() === false){ $this->error('非法请求'); } $param = $this->request->param(); if (empty($param['machine'])){ $this->error('参数错误'); } $list = \db('设备_班组资料') ->where('sczl_jtbh',$param['machine']) ->field('rtrim(sczl_bh1) as bh1,rtrim(sczl_bh2) as bh2,rtrim(sczl_bh3) as bh3, rtrim(sczl_bh4) as bh4,rtrim(sczl_bh5) as bh5,rtrim(sczl_bh6) as bh6, rtrim(sczl_bh7) as bh7,rtrim(sczl_bh8) as bh8,rtrim(sczl_bh9) as bh9, rtrim(sczl_bh10) as bh10,rtrim(sczl_bzdh) as 班组代号') ->select(); if (empty($list)){ $this->success('未找到该机台班组'); } foreach ($list as $key=>$value){ for ($i=1;$i<=10;$i++){ if (!empty($value['bh'.$i])){ $name = \db('人事_基本资料')->where('员工编号',$value['bh'.$i])->field('rtrim(员工姓名) as name')->find(); if (isset($name['name'])){ $list[$key]['组员'.$i] = [ '编号' => $value['bh'.$i], '姓名' => $name['name'] ]; } }else{ $list[$key]['组员'.$i] = [ '编号' => '', '姓名' => '' ]; } unset($list[$key]['bh'.$i]); } } $this->success('成功',$list); } /** * 大废品数据修改 * @return void * @throws \think\Exception * @throws \think\exception\PDOException * @throws db\exception\BindParamException */ public function JunkDetailEdit() { // 判断请求方式是否为 POST if (Request::instance()->isPost() === false) { $this->error('非法请求'); } // 获取请求参数 $param = Request::instance()->post(); if (empty($param['sczl_gdbh']) || empty($param['UniqId'])) { $this->error('参数错误'); } $param['mod_rq'] = date('Y-m-d H:i:s', time()); // $data = $param['sczl_rq'].' 00:00:00'; // 奖励班组封顶限制【记录是否存在超限的标志】 // $over_limit = false; // 遍历 JL_bh1 ~ JL_bh10,检查当天和本月金额限制 // for ($i = 1; $i <= 10; $i++) { // $jl_bh = 'JL_bh' . $i; // 获取 JL_bh1 到 JL_bh10 // $jl_je = 'JL_Je' . $i; // 获取 JL_Je1 到 JL_Je10 // if (!empty($param[$jl_bh]) && isset($param[$jl_je])) { // 确保 JL_bh 和 JL_Je 不为空 // $person_id = $param[$jl_bh]; // 当前人员的 ID // $amount = $param[$jl_je]; // 当前人员的金额 // // 获取当天的所有记录金额总和 // $daily_total = \db('db_大废品') // ->where('sczl_rq', $data) // ->sum($jl_je); // // // $daUniqId = \db('db_大废品') // ->where('UniqId', $param['UniqId']) // ->sum($jl_je); // 将当天的金额总和与接口传过来的金额加起来 // $total_amount = ($daily_total + $amount) - $daUniqId; // 假设传入的是 JL_Je1 // // 检查金额是否超过 200 元 // if ($total_amount > 200) { // $this->error("【{$person_id}】当天金额超限!当天金额不能超过 200 元!"); // $over_limit = true; // break; // } // 获取当月的所有记录金额总和 // $month = substr($data, 5, 2); // $year = substr($data, 0, 4); // $start_date = $year . '-' . $month . '-01'; // $end_date = date('Y-m-t', strtotime($start_date)); // $monthly_total = \db('db_大废品') // ->whereBetween('sczl_rq', [$start_date, $end_date]) // ->where($jl_bh, $person_id) // ->sum($jl_je); // // 检查本月是否超过 1500 元 // if ($monthly_total + $amount - $daUniqId > 1500) { // $this->error("【{$person_id}】本月金额超限!本月金额不能超过 1500 元!"); // $over_limit = true; // break; // } // } // } // // 如果存在超限,停止执行 // if ($over_limit) { // return; // } // 扣罚金额封顶限制 // $kfover_limit = false; // // 检查 sczl_bh1 的限制(不能超过 1000 元) // if (!empty($param['sczl_bh1']) && isset($param['sczl_je1'])) { // $person_id = $param['sczl_bh1']; // $amount = $param['sczl_je1']; // // 获取该人员当天的扣罚金额总和 // $daily_total = \db('db_大废品') // ->where('sczl_rq', $data) // ->where('sczl_bh1', $person_id) // ->sum('sczl_je1'); // // $daUniqId = \db('db_大废品') // ->where('UniqId', $param['UniqId']) // ->sum("sczl_je1"); // // 判断是否超过 1000 元 // if (($daily_total + $amount) - $daUniqId > 1000) { // $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 1000 元!"); // $kfover_limit = true; // } // } // // 遍历 sczl_bh2 ~ sczl_bh10,检查当天金额是否超过 500 元 // for ($i = 2; $i <= 10; $i++) { // $sczl_bh = 'sczl_bh' . $i; // $sczl_je = 'sczl_je' . $i; // if (!empty($param[$sczl_bh]) && isset($param[$sczl_je])) { // $person_id = $param[$sczl_bh]; // $amount = $param[$sczl_je]; // 获取该人员当天的扣罚金额总和 // $daily_total = \db('db_大废品') // ->where('sczl_rq', $data) // ->sum($sczl_je); // $daUniqId = \db('db_大废品') // ->where('UniqId', $param['UniqId']) // ->sum($sczl_je); // $total_amount = ($daily_total + $amount) - $daUniqId; // 假设传入的是 JL_Je1 // // 判断是否超过 500 元 // if ($total_amount > 500) { // $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 500 元!"); // $kfover_limit = true; // break; // 如果超限,停止检查 // } // } // } // // 如果超限就不插入数据 // if ($kfover_limit) { // return; // 直接终止 // } // 执行更新操作 // unset($data['UniqId']); $sql = \db('db_大废品') ->where('UniqId', $param['UniqId']) ->fetchSql(true) ->update($param); $res = \db()->query($sql); if ($res !== false) { $this->success('修改成功'); } else { $this->error('修改失败'); } } /** * 大废品数据添加 * @return void * @throws \think\exception\PDOException * @throws db\exception\BindParamException */ public function JunkDetailAdd() { if (Request::instance()->isPost() === false) { $this->error('非法请求'); } $param = Request::instance()->post(); if (empty($param['sczl_gdbh'])) { $this->error('参数错误'); } // 获取最后一条记录的UniqId $lastID = \db('db_大废品')->order('UniqId desc')->value('UniqId'); // 设置当前时间和其他初始化数据 $param['sys_rq'] = date('Y-m-d H:i:s', time()); $param['mod_rq'] = '1900-01-01 00:00:00'; $param['UniqId'] = $lastID + 1; // $data = $param['sczl_rq']; // //奖励班组封顶限制【记录是否存在超限的标志】 // $over_limit = false; // // 遍历参数,检查每个人当天和本月的消费情况 // for ($i = 1; $i <= 10; $i++) { // $jl_bh = 'JL_bh' . $i; // $jl_je = 'JL_Je' . $i; // // if (!empty($param[$jl_bh]) && isset($param[$jl_je])) { // $person_id = $param[$jl_bh]; // $amount = $param[$jl_je]; // // // 获取当天的所有记录金额总和 // $daily_total = \db('db_大废品') // ->where('sczl_rq', $data) // ->where($jl_bh, $person_id) // ->sum($jl_je); // // // 获取当月的所有记录金额总和 // $month = substr($data, 5, 2); // $year = substr($data, 0, 4); // $start_date = $year . '-' . $month . '-01'; // $end_date = date('Y-m-t', strtotime($start_date)); // $monthly_total = \db('db_大废品') // ->whereBetween('sczl_rq', [$start_date, $end_date]) // ->where($jl_bh, $person_id) // ->sum($jl_je); // // 检查当天是否超过 200 // if ($daily_total + ($amount * $param['sczl_cl']) > 200) { // $this->error("【{$person_id}】当天金额超限!当天金额不能超过200元!"); // $over_limit = true; // break; // } // // // 检查本月是否超过 1500 // if ($monthly_total + ($amount * $param['sczl_cl']) > 1500) { // $this->error("【{$person_id}】本月金额超限!本月金额不能超过1500元!"); // $over_limit = true; // break; // } // } // } // // 如果超限就不插入数据 // if ($over_limit) { // // 提示超限后停止执行 // return; // } // // 记录是否存在超限 // $kfover_limit = false; // // 获取 sczl_bh1 的值,并检查它是否存在 // if (!empty($param['sczl_bh1']) && isset($param['sczl_je1'])) { // $person_id = $param['sczl_bh1']; // $amount = $param['sczl_je1']; // // // 获取该人员当天的扣罚金额总和 // $daily_total = \db('db_大废品') // ->where('sczl_rq', $data) // ->where('sczl_bh1', $person_id) // ->sum('sczl_je1'); // // // 判断是否超过 1000 // if ($daily_total + ($amount * $param['sczl_cl']) > 1000) { // $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 1000 元!"); // $kfover_limit = true; // } // } // // 遍历 sczl_bh2 ~ sczl_bh10 // for ($i = 2; $i <= 10; $i++) { // $sczl_bh = 'sczl_bh' . $i; // $sczl_je = 'sczl_je' . $i; // // if (!empty($param[$sczl_bh]) && isset($param[$sczl_je])) { // $person_id = $param[$sczl_bh]; // $amount = $param[$sczl_je]; // // // 获取该人员当天的扣罚金额总和 // $daily_total = \db('db_大废品') // ->where('sczl_rq', $data) // ->where($sczl_bh, $person_id) // ->sum($sczl_je); // // // 判断是否超过 500 // if ($daily_total + ($amount * $param['sczl_cl']) > 500) { // $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 500 元!"); // $kfover_limit = true; // break; // 只要有一个超限就停止检查 // } // } // } // // 如果超限就不插入数据 // if ($kfover_limit) { // return; // 直接终止 // } // 插入数据 $sql = \db('db_大废品')->fetchSql(true)->insert($param); $res = \db()->query($sql); if ($res !== false) { $this->success('添加成功'); } else { $this->error('失败'); } } /** * 大废品数据删除 * @return void * @throws \think\Exception * @throws \think\exception\PDOException */ public function JunkDetailDel() { if ($this->request->isGet() === false){ $this->error('非法请求'); } $param = $this->request->param(); if (empty($param['UniqId'])){ $this->error('参数错误'); } $idList = explode(',',$param['UniqId']); $res = \db('db_大废品') ->whereIn('UniqId',$idList) ->delete(); if ($res !== false){ $this->success('删除成功'); }else{ $this->error('失败'); } } }