|
|
@@ -233,13 +233,15 @@ class OrderSuperLoss extends Api
|
|
|
$plan_loss = [];//工单计划损耗
|
|
|
$machine_plan_loss = 0;//机检计划损耗
|
|
|
foreach ($gy_data as $k=>$v){
|
|
|
- if ($v['Gy0_计划接货数'] > 0){
|
|
|
- $rate = round($v['Gy0_计划损耗'] / $v['Gy0_计划接货数'],5);
|
|
|
- }else{
|
|
|
- $rate = 0;
|
|
|
+ if (strpos($v['Gy0_gxmc'],'检') === false){
|
|
|
+ if ($v['Gy0_计划接货数'] > 0){
|
|
|
+ $rate = round($v['Gy0_计划损耗'] / $v['Gy0_计划接货数'],5);
|
|
|
+ }else{
|
|
|
+ $rate = 0;
|
|
|
+ }
|
|
|
+ $arr[$k] = floor($rate * 10000) /10000;
|
|
|
+ $plan_loss[$k] = $v['Gy0_计划损耗']*$v['Gy0_ls']*$value['yj_ks'];
|
|
|
}
|
|
|
- $arr[$k] = floor($rate * 10000) /10000;
|
|
|
- $plan_loss[$k] = $v['Gy0_计划损耗']*$v['Gy0_ls']*$value['yj_ks'];
|
|
|
}
|
|
|
if ((int)$value['yj_ls'] > 0){
|
|
|
$value['实际投料'] = number_format(((int)$value['实际投料']/10000)*$value['yj_ls']*$value['yj_ks'],4);
|
|
|
@@ -305,6 +307,12 @@ class OrderSuperLoss extends Api
|
|
|
$change[$l]= $entry[$slKey];
|
|
|
$l++;
|
|
|
}
|
|
|
+
|
|
|
+ //机检废品
|
|
|
+ if (substr($entry[$labelKey],0,1) == 'K' ){
|
|
|
+ $machine[$o]= $entry[$slKey];
|
|
|
+ $o++;
|
|
|
+ }
|
|
|
}
|
|
|
$quality[$m]= $entry[$slKey];
|
|
|
$m++;
|
|
|
@@ -322,7 +330,7 @@ class OrderSuperLoss extends Api
|
|
|
* 机检节损数 = 机检计划损耗 - 机检质检废品
|
|
|
*/
|
|
|
$machine_loss = $machine_plan_loss - $machine_waste;
|
|
|
- $order_loss = $data[$key]['工单计划损耗'] - ($data[$key]['废品合计'] - array_sum($list) - array_sum($material)+$data[$key]['工单无形损'] );
|
|
|
+ $order_loss = $data[$key]['工单计划损耗'] - ($data[$key]['废品合计'] - array_sum($list) - array_sum($material)+$data[$key]['工单无形损'] +$machine_waste);
|
|
|
$guige = \db('物料_存货编码')
|
|
|
->where('物料代码',$data[$key]['成品编码'])
|
|
|
->value('rtrim(规格)');
|
|
|
@@ -346,6 +354,7 @@ class OrderSuperLoss extends Api
|
|
|
$data[$key]['外发废'] = array_sum($list);//外发废
|
|
|
$data[$key]['分摊废'] = '';//分摊废
|
|
|
$data[$key]['工单质检废'] = array_sum($quality); //质检废
|
|
|
+ $data[$key]['机检废'] = $machine_waste;
|
|
|
}
|
|
|
$res = [
|
|
|
'data'=>$data,
|
|
|
@@ -508,10 +517,12 @@ class OrderSuperLoss extends Api
|
|
|
$quality = [];//质检废数组
|
|
|
$material = [];//材料废数组
|
|
|
$change = [];//零头处理数组
|
|
|
+ $jijian = [];//机检数据
|
|
|
$j = 0;
|
|
|
$m = 0;
|
|
|
$n = 0;
|
|
|
$l = 0;
|
|
|
+ $s = 0;
|
|
|
foreach ($waste_out as $entry) {
|
|
|
for ($i = 1; $i <= 13; $i++) {
|
|
|
$labelKey = "fp_lb" . $i;
|
|
|
@@ -534,6 +545,12 @@ class OrderSuperLoss extends Api
|
|
|
$change[$l]= $entry[$slKey];
|
|
|
$l++;
|
|
|
}
|
|
|
+
|
|
|
+ //机检数据
|
|
|
+ if (substr($entry[$labelKey],0,1) == 'K' ){
|
|
|
+ $jijian[$s]= $entry[$slKey];
|
|
|
+ $s++;
|
|
|
+ }
|
|
|
}
|
|
|
$quality[$m]= $entry[$slKey];
|
|
|
$m++;
|
|
|
@@ -543,7 +560,11 @@ class OrderSuperLoss extends Api
|
|
|
$data['零头处理'] = array_sum($change); //零头处理
|
|
|
$data['外发废'] = array_sum($list);//外发废
|
|
|
$data['工单质检废'] = array_sum($quality);//质检废
|
|
|
- $plan_total =db('工单_工艺资料')->where(['Gy0_gdbh' => $order,'Gy0_yjno' => $params['yjno'], 'Gy0_gxh' => ['in', $gxh_values]])->value('SUM(Gy0_计划损耗 * Gy0_ls * Gy0_ks)');
|
|
|
+ $data['机检废品'] = array_sum($jijian);
|
|
|
+ $plan_total =db('工单_工艺资料')
|
|
|
+ ->where(['Gy0_gdbh' => $order,'Gy0_yjno' => $params['yjno'], 'Gy0_gxh' => ['in', $gxh_values]])
|
|
|
+ ->where('Gy0_gxmc','NOT LIKE','%检%')
|
|
|
+ ->value('SUM(Gy0_计划损耗 * Gy0_ls * Gy0_ks)');
|
|
|
if($plan_total == 0){
|
|
|
$this->error('计划损耗数据为 0,请到工单资料管理页面修改工艺资料中选择正确的工序损耗');
|
|
|
return;
|
|
|
@@ -566,10 +587,17 @@ class OrderSuperLoss extends Api
|
|
|
$gy_data[$k]['total_cl'] = $item['total_cl'] * $item['Gy0_ls'];
|
|
|
//无形损
|
|
|
if (floatval($item['无形损承担比例']) > 0){
|
|
|
- $gy_data[$k]['intangible_loss'] = round(number_format($gy_data[$k]['Gy0_计划损耗']/$plan_total,4) * $data['intangible_loss'] * floatval($item['无形损承担比例']));
|
|
|
-
|
|
|
+ if (strpos($item['Gy0_gxmc'],'机检') === false){
|
|
|
+ $gy_data[$k]['intangible_loss'] = round(number_format($gy_data[$k]['Gy0_计划损耗']/$plan_total,4) * $data['intangible_loss'] * floatval($item['无形损承担比例']));
|
|
|
+ }else{
|
|
|
+ $gy_data[$k]['intangible_loss'] = 0;
|
|
|
+ }
|
|
|
}else{
|
|
|
- $gy_data[$k]['intangible_loss'] = round(number_format($gy_data[$k]['Gy0_计划损耗']/$plan_total,4) * $data['intangible_loss']);
|
|
|
+ if (strpos($item['Gy0_gxmc'],'机检') === false){
|
|
|
+ $gy_data[$k]['intangible_loss'] = round(number_format($gy_data[$k]['Gy0_计划损耗']/$plan_total,4) * $data['intangible_loss']);
|
|
|
+ }else{
|
|
|
+ $gy_data[$k]['intangible_loss'] = 0;
|
|
|
+ }
|
|
|
}
|
|
|
foreach ($waste_out as $entry) {
|
|
|
for ($i = 1; $i <= 13; $i++) {
|
|
|
@@ -577,16 +605,17 @@ class OrderSuperLoss extends Api
|
|
|
$slKey = "fp_sl" . $i;
|
|
|
if (substr($entry[$gxmcKey],0,2) == $item['Gy0_gxh']){
|
|
|
$gy_data[$k]['waste_quality'] += $entry[$slKey];
|
|
|
-
|
|
|
+ }elseif (strpos($item['Gy0_gxmc'],'机检') !== false){
|
|
|
+ $gy_data[$k]['waste_quality'] = $data['机检废品'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//报废合计
|
|
|
- if ($gy_data[$k]['intangible_loss'] < 0){
|
|
|
- $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['total_fp'];
|
|
|
- }else{
|
|
|
+// if ($gy_data[$k]['intangible_loss'] < 0){
|
|
|
+// $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['total_fp'];
|
|
|
+// }else{
|
|
|
$gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['intangible_loss'] + $gy_data[$k]['total_fp'];
|
|
|
- }
|
|
|
+// }
|
|
|
//工序节损数
|
|
|
$gy_data[$k]['loss'] = $item['Gy0_计划损耗']*$item['Gy0_ls']*$item['Gy0_ks'] - $gy_data[$k]['total_waste'];
|
|
|
//占投料报废率
|
|
|
@@ -611,6 +640,7 @@ class OrderSuperLoss extends Api
|
|
|
}
|
|
|
if (strpos($item['Gy0_gxmc'],'机检') !== false){
|
|
|
$gy_data[$k]['工序超节损金额'] = '0.000000';
|
|
|
+ $gy_data[$k]['waste_quality'] = $data['机检废品'];
|
|
|
}else{
|
|
|
$gy_data[$k]['工序超节损金额'] = number_format($gy_data[$k]['loss'] * $item['超节损承担比例'] * $moneyRate,4);
|
|
|
}
|
|
|
@@ -1091,7 +1121,7 @@ class OrderSuperLoss extends Api
|
|
|
$data[$key]['PD_WG'] = '完工';
|
|
|
}
|
|
|
if ($item['印刷方式'] === '卷对卷'){
|
|
|
- $data[$key]['sczl_cl'] = ceil($data[$key]['sczl_cl'] * $item['版距']/1000);
|
|
|
+ $data[$key]['sczl_cl'] = ceil($data[$key]['sczl_cl']/$item['版距']*1000);
|
|
|
}
|
|
|
}
|
|
|
$this->success('请求成功',$data);
|