rev:修改工令含水计算公式

This commit is contained in:
zhangzq
2024-10-22 10:54:15 +08:00
parent 4b51f1ca9d
commit 6164a4ebd2

View File

@@ -49,6 +49,7 @@ import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
@@ -777,7 +778,8 @@ public class FormulaServiceImpl implements FormulaService {
JSONObject jsonMaterExt = materExtTab.query("material_id = '" + material_id + "'").uniqueResult(0);
JSONObject json98jj = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM001'").uniqueResult(0);
JSONObject json92jj = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM002'").uniqueResult(0);
JSONObject qm013_unload_num = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM013'").uniqueResult(0);
JSONObject qm014_unload_percentage = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM014'").uniqueResult(0);
// 生成二维码
String create_time = jsonWork.getString("create_time");
BarcodeFormat qrCode = BarcodeFormat.QR_CODE;
@@ -879,14 +881,26 @@ public class FormulaServiceImpl implements FormulaService {
throw new BadRequestException("计算有误:"+e.getMessage());
}
// 水含量计算:开单重量*液料比*含水量
double liquid_rate = NumberUtil.mul(masterbucket_qty, jsonMaterExt.getString("liquid_rate")).doubleValue();
double waterL = NumberUtil.mul(liquid_rate, NumberUtil.div(json98jj.getDoubleValue("value"), 100));
oneMap.put("water", NumberUtil.round(waterL, 2).toString());
// 酒精含量计算:开单重量*液料比*含酒精量
double alcoholL = NumberUtil.mul(liquid_rate, NumberUtil.div(json92jj.getDoubleValue("value"), 100));
oneMap.put("alcohol", NumberUtil.round(alcoholL, 2).toString());
/**
* masterbucket_qty 开单重量
* liquid_rate 液料比
* NumberUtil.div(json98jj.getDoubleValue("value"), 100) 含水量
* qm013_unload_num 卸料酒精次数
* qm014_unload_percentage 卸载量需要除以100
* v1.0 水含量计算:开单重量*液料比*含水量
* v2.0水含量=开单重量*(液料比+卸料酒精每次加量*卸料次数)*含水量
* 精含量=开单重量*液料比-水含量
*/
String unload_num = qm013_unload_num.getString("value");
String unload_percentage = qm014_unload_percentage.getString("value");
BigDecimal 开单重量_液料比 = NumberUtil.mul(jsonMaterExt.getString("liquid_rate"), masterbucket_qty).setScale(3, RoundingMode.HALF_UP);
BigDecimal 卸料酒精 = NumberUtil.div(NumberUtil.mul(masterbucket_qty, unload_num, unload_percentage), 100).setScale(3, RoundingMode.HALF_UP);
int 含水量 = NumberUtil.mul(卸料酒精.add(开单重量_液料比), (json98jj.getDoubleValue("value") / 100)).intValue();
int 酒精含量 = 开单重量_液料比.intValue() - 含水量;
oneMap.put("water", String.valueOf(含水量));
oneMap.put("alcohol", String.valueOf(酒精含量));
// String masterbucket_qty = jsonMst.getString("masterbucket_qty"); // 开单重量
JSONObject jsonQM13 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM013'").uniqueResult(0);