liuhairui 11 ماه پیش
والد
کامیت
970f57ff4a
2فایلهای تغییر یافته به همراه573 افزوده شده و 280 حذف شده
  1. 52 11
      application/api/controller/Facility.php
  2. 521 269
      application/api/controller/LargeWasteRewardPunish.php

+ 52 - 11
application/api/controller/Facility.php

@@ -1395,13 +1395,14 @@ class Facility extends Api
             $data['status'] = $status['状态'];
         }
         //检验数据
-        $list = \db('制程检验_记录')
+                $list = \db('制程检验_记录')
             ->where('开工时间',$param['start'])
             ->where('设备编号',$param['machine'])
             ->where('sys_rq','>',$param['start'])
             ->where('工单编号',$machineDetail['工单编号'])
             ->field('rtrim(类别) as 类别,提交时间')
             ->select();
+
         $data['首件'] = $data['自检'] = $data['IPQC'] = [];
         if (!empty($list)){
             foreach ($list as $key=>$value){
@@ -1492,16 +1493,10 @@ class Facility extends Api
     }
 
     /**
+     * 车间报工
      * 制程检验记录->检测记录添加
-     * @ApiMethod (POST)
-     * @param void
-     * @return void
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
      */
-    public function ProcessInspectionRecordsItemAdd()
-    {
+    public function ProcessInspectionRecordsItemAdd(){
         if (Request::instance()->isPost() === false){
             $this->error('请求错误');
         }
@@ -1519,10 +1514,53 @@ class Facility extends Api
             ->field('rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc,rtrim(Add_gxmc) as add_gxmc')
             ->find();
         $startTime = \db('设备_产量采集')
-            ->where('设备编号','like','%'.$param[0]['machine'].'#%')
-            ->where('工单编号',$param[0]['workOrder'])
+            ->where('设备编号', 'like', '%' . $param[0]['machine'] . '#%')
+            ->where('工单编号', $param[0]['workOrder'])
             ->order('UniqId desc')
             ->find();
+
+
+        // 解决车间因未更换班组,导致开工时间仍为前一个班次,导致下一个班组进行上报时数据录到了前一个班次中的问题
+        if (!$startTime) {
+            $this->error('未找到对应的开工时间');
+        }
+        /*
+         * 系统提交时间(应报工时间)和开工时间
+         */
+        $startTime = $startTime['开工时间'];
+        $rqTime = isset($param[0]['rq']) ? $param[0]['rq'] :  date('Y-m-d H:i:s');
+        //转换为时间戳
+        $rqTimestamp = strtotime($rqTime);
+        $startTimestamp = strtotime($startTime);
+        // 计算时间差(秒)
+        $timeDiff = abs($rqTimestamp - $startTimestamp); // 取绝对值,防止负数
+        /*
+         * 计算时间差
+         */
+        // 转换时间差为 天、小时、分钟、秒
+        $days = floor($timeDiff / 86400);
+        $hours = floor(($timeDiff % 86400) / 3600);
+        $minutes = floor(($timeDiff % 3600) / 60);
+        $seconds = $timeDiff % 60;
+        // 格式化时间差
+        $formattedDiff = "";
+        if ($days > 0) $formattedDiff .= $days . "天";
+        if ($hours > 0) $formattedDiff .= $hours . "小时";
+        if ($minutes > 0) $formattedDiff .= $minutes . "分钟";
+        if ($seconds > 0) $formattedDiff .= $seconds . "秒";
+
+        //测试进行时间比较,查看时间判断是否正确
+//        echo "<pre>";
+//        print_r("系统提交时间:" .$rqTime);
+//        print_r("\n当前开工时间:" . $startTime);
+//        print_r("\n时间差:" . $formattedDiff);
+//        echo "<pre>";
+
+        // 判断是否超过 12 小时(12 * 3600 = 43200 秒)
+        if ($timeDiff > 43200) {
+            $this->error('请先更换班组后,再提交数据');
+        }
+
         if ((int)$process['gxh']<10){
             $process['gxh'] = '0'.$process['gxh'];
         }
@@ -1557,6 +1595,9 @@ class Facility extends Api
                 'UniqId' => $startID + $key +1
             ];
         }
+        echo "<pre>";
+        print_r($data);
+        echo "<pre>";die;
         $res = \db('制程检验_记录')->insertAll($data);
         if ($res !== false){
             $this->success('成功');

+ 521 - 269
application/api/controller/LargeWasteRewardPunish.php

@@ -78,108 +78,376 @@ class LargeWasteRewardPunish extends Api
         }
         $this->success('成功',$data);
     }
+
     /**
      * 获取工序大废品惩奖列表
-     * @ApiMethod (GET)
-     * @param string $date 时间
      */
     public function getList()
     {
-        //get请求
-        if(!$this->request->isGet()){
+        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);
+
+        // 规范化日期格式
+        $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'].'%'];
+        /*
+         * 按月份查询是按照生产月份进行筛选
+         * 按日查询是按照添加时间筛选
+         */
+        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{
+        } 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)
+                    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();;
-        }else{
+
+        // 如果查询不到数据,则使用备用查询条件
+        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, 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')
+                    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('UniqId desc')
-                ->page($page,$limit)
+                ->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]['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']]) : '';
+        $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 ? '制程废' : '';
-            if ($rows[$key]['sczl_bh1'] != '' && $value['sczl_je1'] > 0){
-                $number = $value['sczl_je1']*$value['sczl_cl'];
-                if ($number > 200){
-                    $number = 200;
+
+
+            /*
+             * 惩罚金额人员规则
+             * 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) . ")";
                 }
-                $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;
+
+            /*
+             * 奖励金额人员规则
+             */
+        // 计算有效奖励人数和总奖励金额
+            $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++; // 统计有值的奖励人数
                 }
-                $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;
+
+        // 计算平分后的奖励金额
+            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);
                 }
-                $rows[$key]['sczl_bh3'] = $rows[$key]['sczl_bh3'].'(-'.$number.')';
+            } else {
+                $distributedAmount = 0;
             }
-            if ($rows[$key]['sczl_bh4'] != '' && $value['sczl_je4'] > 0){
-                $number = $value['sczl_je1']*$value['sczl_cl'];
-                if ($number > 200){
-                    $number = 200;
+
+            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) . ")";
                 }
-                $rows[$key]['sczl_bh4'] = $rows[$key]['sczl_bh4'].'(-'.$number.')';
             }
+
+//            /*
+//            * 惩罚金额人员规则
+//             * 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,
+            'total' => $total,
+            'rows' => $rows,
         ];
-        $this->success('成功',$data);
+        $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)
@@ -440,122 +708,111 @@ class LargeWasteRewardPunish extends Api
 
         $param['mod_rq'] = date('Y-m-d H:i:s', time());
 
-        $data = $param['sczl_rq'].' 00:00:00';
-
+//        $data = $param['sczl_rq'].' 00:00:00';
         // 奖励班组封顶限制【记录是否存在超限的标志】
-        $over_limit = false;
-
+//        $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;
-        }
+//        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)
-//                    ->where($sczl_bh, $person_id)
-                    ->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;  // 如果超限,停止检查
-                }
-            }
-        }
+//        $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;  // 直接终止
+//        }
 
-        // 如果超限就不插入数据
-        if ($kfover_limit) {
-            return;  // 直接终止
-        }
         // 执行更新操作
 //        unset($data['UniqId']);
         $sql = \db('db_大废品')
@@ -594,104 +851,99 @@ class LargeWasteRewardPunish extends Api
         $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; // 直接终止
-        }
+//        $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);