|
@@ -387,7 +387,29 @@ class OrderSuperLoss extends Api
|
|
|
$total['loss'] += $gy_data[$k]['loss'];
|
|
$total['loss'] += $gy_data[$k]['loss'];
|
|
|
$total['reward'] += floatval(str_replace(',', '', $gy_data[$k]['工序超节损金额']));
|
|
$total['reward'] += floatval(str_replace(',', '', $gy_data[$k]['工序超节损金额']));
|
|
|
}
|
|
}
|
|
|
- $total['reward'] = number_format($total['reward'],2);
|
|
|
|
|
|
|
+ $feedQty = floatval($data['实际投料']) * 10000;
|
|
|
|
|
+ $realRateVal = $feedQty > 0 ? (floatval($cp_data[0]['cp_sl']) / $feedQty * 100) : 0;
|
|
|
|
|
+ $rewardMultiplier = $this->resolveSuperLossRewardMultiplier(
|
|
|
|
|
+ floatval($target_rate),
|
|
|
|
|
+ $realRateVal,
|
|
|
|
|
+ floatval($data['材料废'] ?? 0),
|
|
|
|
|
+ $feedQty
|
|
|
|
|
+ );
|
|
|
|
|
+ $data['reward_rate'] = (string)$rewardMultiplier;
|
|
|
|
|
+ $data['材料废占比'] = $feedQty > 0
|
|
|
|
|
+ ? number_format(floatval($data['材料废'] ?? 0) / $feedQty * 100, 4) . '%'
|
|
|
|
|
+ : null;
|
|
|
|
|
+ if ($rewardMultiplier > 1) {
|
|
|
|
|
+ $total['reward'] = 0;
|
|
|
|
|
+ foreach ($gy_data as $k => $item) {
|
|
|
|
|
+ $baseReward = floatval(str_replace(',', '', (string)$gy_data[$k]['工序超节损金额']));
|
|
|
|
|
+ if ($baseReward != 0.0) {
|
|
|
|
|
+ $gy_data[$k]['工序超节损金额'] = number_format($baseReward * $rewardMultiplier, 4);
|
|
|
|
|
+ }
|
|
|
|
|
+ $total['reward'] += floatval(str_replace(',', '', $gy_data[$k]['工序超节损金额']));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $total['reward'] = number_format($total['reward'], 2);
|
|
|
$data['gy_data'] = $gy_data;
|
|
$data['gy_data'] = $gy_data;
|
|
|
$data['total'] = $total;
|
|
$data['total'] = $total;
|
|
|
$this->success('请求成功',$data);
|
|
$this->success('请求成功',$data);
|
|
@@ -2243,15 +2265,15 @@ class OrderSuperLoss extends Api
|
|
|
|
|
|
|
|
$diff = $realRate - $targetRate;
|
|
$diff = $realRate - $targetRate;
|
|
|
|
|
|
|
|
- if ($targetRate >= 97) {
|
|
|
|
|
|
|
+ if ($targetRate > 97) {
|
|
|
$triggerHigh = 1.5;
|
|
$triggerHigh = 1.5;
|
|
|
$triggerLow = -2.0;
|
|
$triggerLow = -2.0;
|
|
|
$multiplier = 1.3;
|
|
$multiplier = 1.3;
|
|
|
- } elseif ($targetRate >= 95) {
|
|
|
|
|
|
|
+ } elseif ($targetRate > 95) {
|
|
|
$triggerHigh = 2.0;
|
|
$triggerHigh = 2.0;
|
|
|
$triggerLow = -2.5;
|
|
$triggerLow = -2.5;
|
|
|
$multiplier = 1.3;
|
|
$multiplier = 1.3;
|
|
|
- } elseif ($targetRate >= 90) {
|
|
|
|
|
|
|
+ } elseif ($targetRate > 90) {
|
|
|
$triggerHigh = 3.0;
|
|
$triggerHigh = 3.0;
|
|
|
$triggerLow = -3.0;
|
|
$triggerLow = -3.0;
|
|
|
$multiplier = 1.3;
|
|
$multiplier = 1.3;
|