|
@@ -1164,84 +1164,8 @@ class OrderSuperLoss extends Api
|
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
|
* @throws \think\exception\DbException
|
|
* @throws \think\exception\DbException
|
|
|
*/
|
|
*/
|
|
|
-// public function EmployeeDataCollect()
|
|
|
|
|
-// {
|
|
|
|
|
-// if ($this->request->isPost() === false) {
|
|
|
|
|
-// $this->error('请求错误');
|
|
|
|
|
-// }
|
|
|
|
|
-// $params = $this->request->post();
|
|
|
|
|
-// if (empty($params)) {
|
|
|
|
|
-// $this->error('参数错误');
|
|
|
|
|
-// }
|
|
|
|
|
-// $date = date('Ym', strtotime($params['date']));
|
|
|
|
|
-// $list = \db('工单_质量考核汇总')
|
|
|
|
|
-// ->alias('a')
|
|
|
|
|
-// ->join('工单_印件资料 b', 'a.Gy0_gdbh = b.Yj_Gdbh AND a.印件及工序 = b.yj_Yjno')
|
|
|
|
|
-// ->join('成品入仓 c', 'a.Gy0_gdbh = c.jjcp_gdbh AND a.印件及工序 = c.jjcp_yjno')
|
|
|
|
|
-// ->where('a.sys_ny', $date)
|
|
|
|
|
-// ->where(function ($query) {
|
|
|
|
|
-// $query->where('b.质量考核', 0)
|
|
|
|
|
-// ->whereOr('b.质量考核', null);
|
|
|
|
|
-// })
|
|
|
|
|
-// ->where('c.jjcp_smb', 'like', '末%')
|
|
|
|
|
-// ->select();
|
|
|
|
|
-// $data = [];
|
|
|
|
|
-//
|
|
|
|
|
-// foreach ($list as $item) {
|
|
|
|
|
-// $workshop = $item["车间名称"] ?? '';
|
|
|
|
|
-//
|
|
|
|
|
-// for ($i = 1; $i <= 8; $i++) {
|
|
|
|
|
-// $bh = $item["sczl_bh{$i}"] ?? '';
|
|
|
|
|
-// $xm = $item["Xm{$i}"] ?? '';
|
|
|
|
|
-// $rateValue = $item["sczl_rate{$i}"] ?? '';
|
|
|
|
|
-//
|
|
|
|
|
-// // 关键优化:如果分配比例为 0 或空,默认为 1
|
|
|
|
|
-// $rate = (empty($rateValue) || (float)$rateValue == 0) ? 1 : (float)$rateValue;
|
|
|
|
|
-// echo ($rate);echo '//';
|
|
|
|
|
-// if (!empty($bh) && $bh !== '') {
|
|
|
|
|
-// $je = round((float)$item["CjsJe"] * $rate, 4);
|
|
|
|
|
-// $data[] = [
|
|
|
|
|
-// "bh" => $bh,
|
|
|
|
|
-// "xm" => $xm,
|
|
|
|
|
-// "je" => (float)number_format($je, 4, '.', ''),
|
|
|
|
|
-// "cj" => $workshop
|
|
|
|
|
-// ];
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// $result = [];
|
|
|
|
|
-//
|
|
|
|
|
-// foreach ($data as $item) {
|
|
|
|
|
-// $cj = $item['cj'];
|
|
|
|
|
-// $bh = $item['bh'];
|
|
|
|
|
-// $je = round($item['je'], 2); // 保留两位小数
|
|
|
|
|
-//
|
|
|
|
|
-// if (!isset($result[$cj])) {
|
|
|
|
|
-// $result[$cj] = [];
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// if (isset($result[$cj][$bh])) {
|
|
|
|
|
-// $result[$cj][$bh]['je'] += (float)$je;
|
|
|
|
|
-// } else {
|
|
|
|
|
-// $result[$cj][$bh] = [
|
|
|
|
|
-// 'bh' => $bh,
|
|
|
|
|
-// 'xm' => $item['xm'],
|
|
|
|
|
-// 'je' => (float)$je,
|
|
|
|
|
-// 'cj' => $cj
|
|
|
|
|
-// ];
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// // 将每个车间的子数组转换为索引数组
|
|
|
|
|
-// foreach ($result as $cjName => &$items) {
|
|
|
|
|
-// $items = array_values($items);
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// $this->success('成功', $result);
|
|
|
|
|
-// }
|
|
|
|
|
public function EmployeeDataCollect()
|
|
public function EmployeeDataCollect()
|
|
|
{
|
|
{
|
|
|
- // Validate request and parameters
|
|
|
|
|
if ($this->request->isPost() === false) {
|
|
if ($this->request->isPost() === false) {
|
|
|
$this->error('请求错误');
|
|
$this->error('请求错误');
|
|
|
}
|
|
}
|
|
@@ -1249,8 +1173,6 @@ class OrderSuperLoss extends Api
|
|
|
if (empty($params)) {
|
|
if (empty($params)) {
|
|
|
$this->error('参数错误');
|
|
$this->error('参数错误');
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // Query data
|
|
|
|
|
$date = date('Ym', strtotime($params['date']));
|
|
$date = date('Ym', strtotime($params['date']));
|
|
|
$list = \db('工单_质量考核汇总')
|
|
$list = \db('工单_质量考核汇总')
|
|
|
->alias('a')
|
|
->alias('a')
|
|
@@ -1263,47 +1185,63 @@ class OrderSuperLoss extends Api
|
|
|
})
|
|
})
|
|
|
->where('c.jjcp_smb', 'like', '末%')
|
|
->where('c.jjcp_smb', 'like', '末%')
|
|
|
->select();
|
|
->select();
|
|
|
-
|
|
|
|
|
- $result = [];
|
|
|
|
|
|
|
+ $data = [];
|
|
|
|
|
|
|
|
foreach ($list as $item) {
|
|
foreach ($list as $item) {
|
|
|
$workshop = $item["车间名称"] ?? '';
|
|
$workshop = $item["车间名称"] ?? '';
|
|
|
|
|
|
|
|
for ($i = 1; $i <= 8; $i++) {
|
|
for ($i = 1; $i <= 8; $i++) {
|
|
|
- $bh = $item["sczl_bh{$i}"] ?? '';
|
|
|
|
|
- $xm = $item["Xm{$i}"] ?? '';
|
|
|
|
|
- $rateValue = $item["sczl_rate{$i}"] ?? '';
|
|
|
|
|
-
|
|
|
|
|
- $rate = (empty($rateValue) || (float)$rateValue == 0) ? 1 : (float)$rateValue;
|
|
|
|
|
-
|
|
|
|
|
- if (!empty($bh)) {
|
|
|
|
|
- $je = round((float)$item["CjsJe"] * $rate, 4);
|
|
|
|
|
|
|
+ if (!empty($item["sczl_bh{$i}"]) && $item["sczl_bh{$i}"]!== ''){
|
|
|
|
|
+ $bh = $item["sczl_bh{$i}"] ?? '';
|
|
|
|
|
+ $xm = $item["Xm{$i}"] ?? '';
|
|
|
|
|
+ $rateValue = $item["sczl_rate{$i}"] ?? '';
|
|
|
|
|
|
|
|
- if (!isset($result[$workshop])) {
|
|
|
|
|
- $result[$workshop] = [];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (isset($result[$workshop][$bh])) {
|
|
|
|
|
- $result[$workshop][$bh]['je'] += $je;
|
|
|
|
|
- } else {
|
|
|
|
|
- $result[$workshop][$bh] = [
|
|
|
|
|
- 'bh' => $bh,
|
|
|
|
|
- 'xm' => $xm,
|
|
|
|
|
- 'je' => $je,
|
|
|
|
|
- 'cj' => $workshop
|
|
|
|
|
|
|
+ // 关键优化:如果分配比例为 0 或空,默认为 1
|
|
|
|
|
+ $rate = (empty($rateValue) || (float)$rateValue == 0) ? 1 : (float)$rateValue;
|
|
|
|
|
+ if (!empty($bh) && $bh !== '') {
|
|
|
|
|
+ $je = round((float)$item["CjsJe"] * $rate, 4);
|
|
|
|
|
+ $data[] = [
|
|
|
|
|
+ "bh" => $bh,
|
|
|
|
|
+ "xm" => $xm,
|
|
|
|
|
+ "je" => (float)number_format($je, 4, '.', ''),
|
|
|
|
|
+ "cj" => $workshop
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ $result = [];
|
|
|
|
|
+
|
|
|
|
|
+ foreach ($data as $item) {
|
|
|
|
|
+ $cj = $item['cj'];
|
|
|
|
|
+ $bh = $item['bh'];
|
|
|
|
|
+ $je = round($item['je'], 2); // 保留两位小数
|
|
|
|
|
|
|
|
- foreach ($result as &$workshopData) {
|
|
|
|
|
- $workshopData = array_values($workshopData);
|
|
|
|
|
|
|
+ if (!isset($result[$cj])) {
|
|
|
|
|
+ $result[$cj] = [];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (isset($result[$cj][$bh])) {
|
|
|
|
|
+ $result[$cj][$bh]['je'] += (float)$je;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $result[$cj][$bh] = [
|
|
|
|
|
+ 'bh' => $bh,
|
|
|
|
|
+ 'xm' => $item['xm'],
|
|
|
|
|
+ 'je' => (float)$je,
|
|
|
|
|
+ 'cj' => $cj
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 将每个车间的子数组转换为索引数组
|
|
|
|
|
+ foreach ($result as $cjName => &$items) {
|
|
|
|
|
+ $items = array_values($items);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$this->success('成功', $result);
|
|
$this->success('成功', $result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 单条工单超节损计算
|
|
* 单条工单超节损计算
|
|
|
* @param $gdbh
|
|
* @param $gdbh
|