unknown 9 miesięcy temu
rodzic
commit
1101a638b4
1 zmienionych plików z 25 dodań i 18 usunięć
  1. 25 18
      application/api/controller/Decision.php

+ 25 - 18
application/api/controller/Decision.php

@@ -704,29 +704,36 @@ class Decision extends Api
                 $data[$key]['车间'] = $value['车间名称'];
             }
         }
-        $result = [];
+        $grouped = [];
         foreach ($data as $item) {
-            $workshop = $item['车间'];
-            $process = $item['工序名称'];
-            $ink = $item['墨色'];
-
-            // 生成唯一分组键
-            $key = $workshop . '|' . $process;
-
-            if (isset($result[$key])) {
-                // 累加墨色值
-                $result[$key]['墨色'] += $ink;
-            } else {
-                // 创建新分组
-                $result[$key] = [
-                    '工序名称' => $process,
-                    '墨色' => $ink,
-                    '车间' => $workshop
+            $key = $item['车间'] . '|' . $item['工序名称'];
+            if (!isset($grouped[$key])) {
+                $grouped[$key] = [
+                    '车间' => $item['车间'],
+                    '工序名称' => $item['工序名称'],
+                    '墨色' => 0
                 ];
             }
+            $grouped[$key]['墨色'] += $item['墨色'];
         }
 
-        $result = array_values($result);
+        $workshopOrder = [
+            '胶印车间' => 1,
+            '凹丝印车间' => 2,
+            '印后车间' => 3,
+            '检验车间' => 4
+        ];
+        usort($grouped, function ($a, $b) use ($workshopOrder) {
+            $orderA = $workshopOrder[$a['车间']] ?? 999;
+            $orderB = $workshopOrder[$b['车间']] ?? 999;
+
+
+            if ($orderA !== $orderB) {
+                return $orderA <=> $orderB;
+            }
+            return $a['工序名称'] <=> $b['工序名称'];
+        });
+        $result = array_values($grouped);
 
         $this->success('成功', $result);
     }