فهرست منبع

员工超节损

qiuenguang 11 ماه پیش
والد
کامیت
fcf13df705
1فایلهای تغییر یافته به همراه36 افزوده شده و 43 حذف شده
  1. 36 43
      application/api/controller/OrderSuperLoss.php

+ 36 - 43
application/api/controller/OrderSuperLoss.php

@@ -1181,55 +1181,48 @@ class OrderSuperLoss extends Api
                     ->whereOr('b.质量考核',null); // 检查为空
             })
             ->select();
+
+//        $data = [];
+//        foreach ($list as $item) {
+//            for ($i = 1; $i < 9; $i++) {
+//                if ($item['sczl_bh' . $i] !== '' && $item['sczl_bh' . $i] !== null) {
+//                    if ($item['sczl_rate' . $i] === null) {
+//                        $item['sczl_rate' . $i] = 1;
+//                    }
+//                    $res = [
+//                        'bh' => $item['sczl_bh' . $i],
+//                        'xm' => $item['Xm' . $i],
+//                        'je' => $item['CjsJe'] * $item['sczl_rate' . $i],
+//                        'cj' => rtrim($item['车间名称'])
+//                    ];
+//                    array_push($data, $res);
+//
+//                }
+//            }
+//        }
         $data = [];
+
         foreach ($list as $item) {
-            for ($i = 1; $i < 9; $i++) {
-                if ($item['sczl_bh' . $i] !== '' && $item['sczl_bh' . $i] !== null && $item['sczl_bh' . $i] !== '0000') {
-                    if ($item['sczl_rate' . $i] === null) {
-                        $item['sczl_rate' . $i] = 1;
-                    }
-                    $res = [
-                        'bh' => $item['sczl_bh' . $i],
-                        'xm' => $item['Xm' . $i],
-                        'je' => $item['CjsJe'] * $item['sczl_rate' . $i],
-                        'cj' => rtrim($item['车间名称'])
+            $workshop = $item["车间名称"] ?? ''; // 获取车间名称
+
+            // 遍历 8 个可能的员工字段
+            for ($i = 1; $i <= 8; $i++) {
+                $bh = $item["sczl_bh{$i}"] ?? '';
+                $xm = $item["Xm{$i}"] ?? '';
+                $rate = (float)($item["sczl_rate{$i}"] ?? 0);
+
+                if (!empty($bh)) {
+                    $je = round((float)$item["CjsJe"] * $rate, 4);
+
+                    $data[] = [
+                        "bh" => $bh,
+                        "xm" => $xm,
+                        "je" => (float)number_format($je, 4, '.', ''), // 保证4位小数
+                        "cj" => $workshop
                     ];
-                    array_push($data, $res);
                 }
             }
         }
-
-//        $result = [];
-//        foreach ($data as $item) {
-//            $cj = $item['cj'];
-//            $bh = $item['bh'];
-//            $je = round($item['je'],2); // 保留为整数格式
-//
-//            // 如果 cj 不存在于结果数组中,则初始化
-//            if (!isset($result[$cj])) {
-//                $result[$cj] = array();
-//            }
-//
-//            // 检查 bh 是否已经存在于当前 cj 的子数组中
-//            $found = false;
-//            foreach ($result[$cj] as &$subItem) {
-//                if ($subItem['bh'] === $bh) {
-//                    $subItem['je'] = (float)($subItem['je'] ?? 0);
-//                    $found = true;
-//                    break;
-//                }
-//            }
-//
-//            // 如果 bh 不存在,则添加新的子数组
-//            if (!$found) {
-//                $result[$cj][] = array(
-//                    'bh' => $bh,
-//                    'xm' => $item['xm'],
-//                    'je' => (float)$je, // 保留为浮点数格式
-//                    'cj' => $cj
-//                );
-//            }
-//        }
         $result = [];
 
         foreach ($data as $item) {