rev:软废碳平衡修正维护,袋标签打印,分配货位重复,球磨工艺酒精计算,入库删除

This commit is contained in:
2023-07-10 17:18:48 +08:00
parent 01980f65df
commit 71edee2319
6 changed files with 160 additions and 10 deletions

View File

@@ -18,7 +18,9 @@ import org.nl.pda.pdm.service.PdmWorkTaskService;
import org.nl.pda.st.vehicle.service.impl.EmptyVehicleServiceImpl;
import org.nl.utils.SecurityUtils;
import org.nl.utils.SpringContextHolder;
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
import org.nl.wms.basedata.master.service.ClassstandardService;
import org.nl.wms.basedata.master.service.MaterialbaseService;
import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.st.core.task.InTask;
import org.nl.wms.st.vehicle.task.ProductTask;
@@ -44,6 +46,8 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService {
private WmsToAcsService wmsToAcsService;
@Autowired
private ClassstandardService classstandardService;
@Autowired
private MaterialbaseService materialbaseService;
@Override
public Map<String, Object> queryWorkTask(Map jsonObject) {
@@ -805,6 +809,9 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService {
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> issueQM(Map jsonObject) {
WQLObject formDtlTab = WQLObject.getWQLObject("pdm_bi_formuladtl"); // 配方明细表
WQLObject materExtTab = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); // 成品扩展属性表
if (ObjectUtil.isEmpty(jsonObject)) {
throw new PdaRequestException("传入参数不能为空!");
}
@@ -866,7 +873,55 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService {
data2.put("code", para.getString("ext_name"));
data2.put("value", row.getString("value"));
//预磨1酒精设定值开单重量*工艺参数"预磨1酒精设定值改为比例"
double masterbucket_qty = form_jo.getDoubleValue("masterbucket_qty");
// double masterbucket_qty = form_jo.getDoubleValue("masterbucket_qty");
/*
计算开单重量:
配方明细中【是否需要配粉】为是的和,其中若为软废,需要乘以物料扩展属性的纯粉系数
*/
// 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());
}
double masterbucket_qty = Double.valueOf(masterbucket_qty1);
if (para.getString("para_code").equals("QM006")) {
QM006_qty = NumberUtil.round(data2.getDoubleValue("value") * 0.01 * masterbucket_qty, 3);
data2.put("value", NumberUtil.round(data2.getDoubleValue("value") * 0.01 * masterbucket_qty, 3));

View File

@@ -94,7 +94,14 @@ public class WastecchangeServiceImpl implements WastecchangeService {
}
map.put("class_ids", MaterOptTypeEnum.THW.getClass_idStr());
JSONObject allmaterialIds = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mater.material_code");
// 判断工艺是否为空
if (ObjectUtil.isEmpty(tech_type)) {
map.put("is_emp", "1");
} else {
map.put("is_emp", "2");
}
JSONObject allmaterialIds = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_code");
JSONArray array = allmaterialIds.getJSONArray("content");
//label:name;value:code
List<DictDetail> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE");
@@ -141,6 +148,8 @@ public class WastecchangeServiceImpl implements WastecchangeService {
@Override
@Transactional(rollbackFor = Exception.class)
public void update(JSONObject form) {
WQLObject wasTab = WQLObject.getWQLObject("pdm_bi_wastecchange");
List<String> rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList());
JSONObject allData = new JSONObject();
for (String key : rfType) {
@@ -150,7 +159,24 @@ public class WastecchangeServiceImpl implements WastecchangeService {
form.put("create_name",SecurityUtils.getNickName());
form.put("create_time",DateUtil.now());
form.put("alldata",allData);
WQLObject.getWQLObject("pdm_bi_wastecchange").update(form);
JSONObject json = wasTab.query("material_id = '" + form.getString("material_id") + "' and tech_type = '" + form.getString("tech_type") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(json)) {
form.put("change_id", IdUtil.getSnowflake(1, 1).nextId());
wasTab.insert(form);
if (form.getString("tech_type").equals("01")) {
form.put("tech_type","02");
} else {
form.put("tech_type","01");
}
form.put("change_id", IdUtil.getSnowflake(1, 1).nextId());
wasTab.insert(form);
} else {
wasTab.update(form);
}
}
@Override
@@ -195,6 +221,8 @@ public class WastecchangeServiceImpl implements WastecchangeService {
// 2.找软废
String tech_type = whereJson.getString("tech_type");
if (ObjectUtil.isEmpty(tech_type)) throw new BadRequestException("工艺类型不能为空!");
for (int i = 0; i < rf_arr.size(); i++) {
JSONObject json_rf_type = rf_arr.getJSONObject(i);
// 校验修正值必须为 -0.5 ~ 0.5 之间 或者为 99
@@ -247,7 +275,6 @@ public class WastecchangeServiceImpl implements WastecchangeService {
}
}
// 3.更新软废碳平衡修正表
this.update(whereJson);
}

View File

@@ -17,6 +17,7 @@
输入.material_code TYPEAS s_string
输入.class_ids TYPEAS f_string
输入.material_id TYPEAS s_string
输入.is_emp TYPEAS s_string
输入.code TYPEAS s_string
输入.tech_type TYPEAS s_string
输入.materialIds TYPEAS f_string
@@ -70,6 +71,15 @@
OPTION 输入.tech_type <> ""
chan.tech_type = 输入.tech_type
ENDOPTION
OPTION 输入.is_emp = "1"
IFNULL(chan.tech_type,'') = ''
ENDOPTION
OPTION 输入.is_emp = "2"
IFNULL(chan.tech_type,'') <> ''
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -53,6 +53,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@@ -757,6 +758,7 @@ public class FormulaServiceImpl implements FormulaService {
String formula_id = MapUtil.getStr(whereJson, "formula_id");
WQLObject formMstTab = WQLObject.getWQLObject("PDM_BI_Formula"); // 配方主表
WQLObject formDtlTab = WQLObject.getWQLObject("pdm_bi_formuladtl"); // 配方明细表
WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表
WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表
@@ -828,7 +830,54 @@ public class FormulaServiceImpl implements FormulaService {
oneMap.put("para_name", json92jj.getString("para_name"));
}
}
String masterbucket_qty = jsonMst.getString("masterbucket_qty"); // 开单重量
/*
计算开单重量:
配方明细中【是否需要配粉】为是的和,其中若为软废,需要乘以物料扩展属性的纯粉系数
*/
// 1. 找出所有明细
List<JSONObject> jsonDtlAll = formDtlTab.query("formula_id = '" + 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(row -> row.getString("material_type").equals("01"))
.collect(Collectors.toList());
// 3.计算物料分类重量
double class_qty = jsonDtlAll.stream()
.filter(row -> row.getString("material_type").equals("02"))
.collect(Collectors.summarizingDouble(row -> row.getDoubleValue("formula_qty")))
.getSum();
String masterbucket_qty = 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_qty = NumberUtil.add(masterbucket_qty,rf_qty).toString();
} else {
// 直接相加
masterbucket_qty = NumberUtil.add(masterbucket_qty,formula_qty).toString();
}
}
} catch (Exception e) {
throw new BadRequestException("计算有误:"+e.getMessage());
}
// 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);
JSONObject jsonPW02 = paraTab.query("material_id = '" + material_id + "' and para_code = 'PW002'").uniqueResult(0);