rev:球磨参数修改以及工艺指令卡参数修改

This commit is contained in:
2024-09-10 14:22:18 +08:00
parent 189397697e
commit cbec03671b
2 changed files with 114 additions and 0 deletions

View File

@@ -879,6 +879,15 @@ 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());
// String masterbucket_qty = jsonMst.getString("masterbucket_qty"); // 开单重量
JSONObject jsonQM13 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM013'").uniqueResult(0);
JSONObject jsonQM14 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM014'").uniqueResult(0);
@@ -1042,6 +1051,70 @@ public class FormulaServiceImpl implements FormulaService {
workBook.finish();
}
/**
* 纯粉重量计算
* @param workorder_code、
* @return 纯粉重量
*/
private double calculatePureWeight (String workorder_code) {
/*
计算纯粉重量:
配方明细中【是否需要配粉】为是的和,其中若为软废,需要乘以物料扩展属性的纯粉系数
*/
WQLObject formDtlTab = WQLObject.getWQLObject("pdm_bi_formuladtl"); // 配方明细表
WQLObject materExtTab = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); // 成品扩展属性表
// 查询出配方主表
JSONObject form_jo = WQLObject.getWQLObject("PDM_BI_Formula").query("is_delete='0' and workorder_code = '" +workorder_code + "' AND bucket_type = '01'").uniqueResult(0);
if (ObjectUtil.isEmpty(form_jo)) {
throw new BadRequestException("没有工令号为【"+workorder_code+"】的配方!");
}
// 1. 找出所有明细
List<JSONObject> jsonDtlAll = formDtlTab.query("formula_id = '" + form_jo.getString("formula_id") + "' and is_need_manage = '1'").getResultJSONArray(0).toJavaList(JSONObject.class);
if (ObjectUtil.isEmpty(jsonDtlAll)) throw new BadRequestException("纯粉重量异常,请检查!");
// 2.过滤出是物料的
List<JSONObject> jsonDtlAll_mater = jsonDtlAll.stream()
.filter(item -> item.getString("material_type").equals("01"))
.collect(Collectors.toList());
// 3.计算物料分类重量
double class_qty = jsonDtlAll.stream()
.filter(item -> item.getString("material_type").equals("02"))
.collect(Collectors.summarizingDouble(item -> item.getDoubleValue("formula_qty")))
.getSum();
String masterbucket_qty1 = String.valueOf(class_qty);
try {
for (JSONObject jsonDtl : jsonDtlAll_mater) {
String formula_qty = jsonDtl.getString("formula_qty");
// 判断是否是软废
boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), jsonDtl.getString("material_id"), null);
if (is_rf) {
// 软废:重量*纯粉系数
String net_rate = materExtTab.query("material_id ='" + jsonDtl.getString("material_id") + "'").uniqueResult(0).getString("net_rate");
// 软废纯粉计算
String rf_qty = NumberUtil.mul(formula_qty, NumberUtil.div(net_rate, "100").toString()).toString();
masterbucket_qty1 = NumberUtil.add(masterbucket_qty1, rf_qty).toString();
} else {
// 直接相加
masterbucket_qty1 = NumberUtil.add(masterbucket_qty1, formula_qty).toString();
}
}
} catch (Exception e) {
throw new BadRequestException("纯粉计算有误:" + e.getMessage());
}
return Double.parseDouble(masterbucket_qty1);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> localStorage(Map whereJson, Pageable page) {

View File

@@ -47,6 +47,7 @@
v-model="tableData[scope.$index].value"
:controls="false"
controls-position="right"
@blur="blurOne(scope.row)"
precision="2"
style="width: 100px"
:min="0"
@@ -120,6 +121,46 @@ export default {
duration: 2500
})
},
blurOne(data) {
if (data.para_code === 'QM001') {
if (data.value !== undefined) {
if (parseFloat(data.value) >= 0 && parseFloat(data.value) <= 100) {
const QM002 = 100 - parseFloat(data.value)
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].para_code === 'QM002') {
this.tableData[i].value = QM002
}
}
} else {
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].para_code === 'QM001') {
this.tableData[i].value = undefined
}
}
this.notify('含水量参数必须在0-100之间', 'info')
}
}
}
if (data.para_code === 'QM002') {
if (data.value !== undefined) {
if (parseFloat(data.value) >= 0 && parseFloat(data.value) <= 100) {
const QM001 = 100 - parseFloat(data.value)
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].para_code === 'QM001') {
this.tableData[i].value = QM001
}
}
} else {
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].para_code === 'QM002') {
this.tableData[i].value = undefined
}
}
this.notify('含酒精量参数必须在0-100之间', 'info')
}
}
}
},
close() {
this.$emit('update:dialogShow', false)
}