rev:软废碳平衡修正维护,袋标签打印,分配货位重复,球磨工艺酒精计算,入库删除
This commit is contained in:
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user