|
@@ -283,27 +283,28 @@ class RuleSetService extends Service
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// --- 2. 设备列表校验 ---
|
|
// --- 2. 设备列表校验 ---
|
|
|
- if (empty($data['device_list'])) return [false, '设备不能为空'];
|
|
|
|
|
- $deviceRates = [];
|
|
|
|
|
- foreach ($data['device_list'] as $key => $value) {
|
|
|
|
|
- if (empty($value['type'])) return [false, '类型不能为空'];
|
|
|
|
|
- if (empty($value['data_id'])) return [false, '设备ID不能为空'];
|
|
|
|
|
- if (empty($value['item_id'])) return [false, '项目不能为空'];
|
|
|
|
|
|
|
+ if (! empty($data['device_list'])){
|
|
|
|
|
+ $deviceRates = [];
|
|
|
|
|
+ foreach ($data['device_list'] as $key => $value) {
|
|
|
|
|
+ if (empty($value['type'])) return [false, '类型不能为空'];
|
|
|
|
|
+ if (empty($value['data_id'])) return [false, '设备ID不能为空'];
|
|
|
|
|
+ if (empty($value['item_id'])) return [false, '项目不能为空'];
|
|
|
|
|
|
|
|
- $res = $this->checkNumber($value['rate'], 2, 'non-negative');
|
|
|
|
|
- if (!$res['valid']) return [false, '设备工时分摊比例:' . $res['error']];
|
|
|
|
|
|
|
+ $res = $this->checkNumber($value['rate'], 2, 'non-negative');
|
|
|
|
|
+ if (!$res['valid']) return [false, '设备工时分摊比例:' . $res['error']];
|
|
|
|
|
|
|
|
- $data['device_list'][$key]['top_depart_id'] = $data['top_depart_id'];
|
|
|
|
|
|
|
+ $data['device_list'][$key]['top_depart_id'] = $data['top_depart_id'];
|
|
|
|
|
|
|
|
- $devId = $value['data_id'];
|
|
|
|
|
- $deviceRates[$devId] = ($deviceRates[$devId] ?? 0) + $value['rate'];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ $devId = $value['data_id'];
|
|
|
|
|
+ $deviceRates[$devId] = ($deviceRates[$devId] ?? 0) + $value['rate'];
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 校验设备比例 (错误提示加入设备名称)
|
|
|
|
|
- foreach ($deviceRates as $dId => $total) {
|
|
|
|
|
- if (abs($total - 100) > 0.0001) {
|
|
|
|
|
- $displayName = $devMap[$dId] ?? "ID:{$dId}";
|
|
|
|
|
- return [false, "设备{$displayName}的分摊比例合计为{$total}%,必须等于100%"];
|
|
|
|
|
|
|
+ // 校验设备比例 (错误提示加入设备名称)
|
|
|
|
|
+ foreach ($deviceRates as $dId => $total) {
|
|
|
|
|
+ if (abs($total - 100) > 0.0001) {
|
|
|
|
|
+ $displayName = $devMap[$dId] ?? "ID:{$dId}";
|
|
|
|
|
+ return [false, "设备{$displayName}的分摊比例合计为{$total}%,必须等于100%"];
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|