优化
This commit is contained in:
@@ -163,16 +163,22 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
WQLObject producTab = WQLObject.getWQLObject("md_me_producmaterialext");
|
||||
WQLObject materTab = WQLObject.getWQLObject("MD_ME_MaterialBase");
|
||||
WQLObject wrokTab = WQLObject.getWQLObject("PDM_BI_WorkProcedureParaProduct");
|
||||
|
||||
WQLObject productMstTab = WQLObject.getWQLObject("MD_PD_ProductBOM"); // 产品bom单主表
|
||||
WQLObject productDtlTab = WQLObject.getWQLObject("MD_PD_ProductBOMDtl"); // 产品bom单明细表
|
||||
WQLObject wasTab = WQLObject.getWQLObject("PDM_BI_WasteCChange"); // 软废碳平衡修正表
|
||||
//判断物料类别类型
|
||||
String material_type_id = MapUtil.getStr(map, "material_type_id");
|
||||
boolean is_bcp = materialbaseService.isAlongMaterType(MaterOptTypeEnum.BCP.getCode(), null, material_type_id);
|
||||
boolean is_yfl = materialbaseService.isAlongMaterType(MaterOptTypeEnum.YL_AND_FL.getCode(), null, material_type_id);
|
||||
boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), null, material_type_id);
|
||||
|
||||
boolean is_pgf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.PGF.getCode(), null, material_type_id);
|
||||
if (is_bcp) {
|
||||
//半成品
|
||||
String technology_code = MapUtil.getStr(map, "technology_code");
|
||||
if (technology_code.length() > 1) throw new BadRequestException("工艺代码长度大于1");
|
||||
if (technology_code.length() > 1) {
|
||||
throw new BadRequestException("工艺代码长度大于1");
|
||||
}
|
||||
String material_id = (String) map.get("material_id");
|
||||
JSONObject json = producTab.query("material_id= '" + material_id + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json)) {
|
||||
@@ -253,6 +259,79 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
jsonMater.put("update_time", DateUtil.now());
|
||||
jsonMater.put("update_optname", SecurityUtils.getCurrentUsername());
|
||||
materTab.update(jsonMater);
|
||||
|
||||
/*
|
||||
* 1.PG粉碳平衡修正
|
||||
* 2.软废碳平衡修正
|
||||
*/
|
||||
|
||||
jsonMater = materTab.query("material_id = '" + material_id + "'").uniqueResult(0);
|
||||
JSONObject jsonExtMater = producTab.query("material_id = '" + material_id + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonExtMater)) throw new BadRequestException("此PGF扩展属性不存在");
|
||||
|
||||
String old_mark = jsonExtMater.getString("old_mark"); // 粉料牌号
|
||||
String tech_type = "";
|
||||
if (old_mark.contains("新")) {
|
||||
tech_type = "01";
|
||||
} else {
|
||||
tech_type = "02";
|
||||
}
|
||||
if (is_pgf) {
|
||||
/*
|
||||
* PG粉碳平衡修正:
|
||||
* 1.查询此PG粉产品bom明细表第一个碳化钨
|
||||
* 2.查询此碳化钨 软废碳平衡修正表获得全部软废类型的值
|
||||
* 3.查询软废:物料表,软废编码 = PG粉编码 + '-CF'
|
||||
* 4.依次修改16种软废类型的碳平衡
|
||||
* 软废碳平衡=pg粉碳平衡+CF修正值
|
||||
*/
|
||||
|
||||
// 1.查询此物料的产品bom明细表中第一个出现的碳化钨
|
||||
// 查主表
|
||||
JSONObject jsonProductMst = productMstTab.query("material_id = '" + material_id + "' and is_used = '1' and is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonProductMst)) throw new BadRequestException("此产品没有创建bom单或者已删除、未启用");
|
||||
// 查明细
|
||||
JSONArray productDtlArr = productDtlTab.query("bom_id = '" + jsonProductMst.getString("bom_id") + "' order by seqno ASC").getResultJSONArray(0);
|
||||
if (ObjectUtil.isEmpty(productDtlArr)) throw new BadRequestException("此产品bom单暂无明细");
|
||||
|
||||
// 找出第一个碳化钨
|
||||
String thw_material_id = "";
|
||||
for (int i = 0; i < productDtlArr.size(); i++) {
|
||||
JSONObject jsonProductDtl = productDtlArr.getJSONObject(i);
|
||||
boolean is_thw = materialbaseService.isAlongMaterType(MaterOptTypeEnum.THW.getCode(), jsonProductDtl.getString("material_id"), null);
|
||||
|
||||
if (is_thw) {
|
||||
thw_material_id = jsonProductDtl.getString("material_id");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 2.查询此碳化钨 软废碳平衡修正表获得全部软废类型的值 并转化成数组(便于处理数据)
|
||||
JSONObject jsonThwMater = materTab.query("material_id = '" + thw_material_id + "'").uniqueResult(0);
|
||||
JSONObject jsonWas = wasTab.query("material_id = '" + thw_material_id + "' and tech_type = '"+tech_type+"'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonWas)) throw new BadRequestException("此碳化钨软废修正数据不存在:"+jsonThwMater.getString("material_code"));
|
||||
|
||||
// 将此碳化钨的软废类型转化为数组
|
||||
JSONArray wasArr = new WastecchangeServiceImpl().contentShift(jsonWas);
|
||||
|
||||
// 3.查询软废:物料表,软废编码 = PG粉编码 + '-CF' (以软废类型CF为例)
|
||||
for (int j = 0; j < wasArr.size(); j++) {
|
||||
JSONObject jsonWasDtl = wasArr.getJSONObject(j);
|
||||
|
||||
String rf_type_code = jsonMater.getString("material_code") +"-"+jsonWasDtl.getString("name");
|
||||
JSONObject jsonRfMater = materTab.query("material_code = '" + rf_type_code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonRfMater)) {
|
||||
// 4.依次修改16种软废类型的碳平衡: 软废碳平衡=pg粉碳平衡+CF修正值
|
||||
JSONObject jsonRfExt = producTab.query("material_id = '" + jsonRfMater.getString("material_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonRfExt)) {
|
||||
continue;
|
||||
}
|
||||
double rf_c_balance = NumberUtil.add(jsonExtMater.getDoubleValue("c_balance"), jsonWasDtl.getDoubleValue("value"));
|
||||
jsonRfExt.put("c_balance", String.valueOf(rf_c_balance));
|
||||
producTab.update(jsonRfExt);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (is_yfl) {
|
||||
//原辅料
|
||||
String material_id = (String) map.get("material_id");
|
||||
@@ -343,9 +422,7 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
WQLObject extTab = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); // 成品物料扩展信息表
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
// 1.判断此物料是PG粉还是RF
|
||||
boolean is_pgf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.PGF.getCode(), whereJson.getString("material_id"), null);
|
||||
boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), whereJson.getString("material_id"), null);
|
||||
|
||||
String material_id = whereJson.getString("material_id");
|
||||
@@ -361,63 +438,6 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
tech_type = "02";
|
||||
}
|
||||
|
||||
if (is_pgf) {
|
||||
/*
|
||||
* PG粉碳平衡修正:
|
||||
* 1.查询此PG粉产品bom明细表第一个碳化钨
|
||||
* 2.查询此碳化钨 软废碳平衡修正表获得全部软废类型的值
|
||||
* 3.查询软废:物料表,软废编码 = PG粉编码 + '-CF'
|
||||
* 4.依次修改16种软废类型的碳平衡
|
||||
* 软废碳平衡=pg粉碳平衡+CF修正值
|
||||
*/
|
||||
|
||||
// 1.查询此物料的产品bom明细表中第一个出现的碳化钨
|
||||
// 查主表
|
||||
JSONObject jsonProductMst = productMstTab.query("material_id = '" + material_id + "' and is_used = '1' and is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonProductMst)) throw new BadRequestException("此产品没有创建bom单或者已删除、未启用");
|
||||
// 查明细
|
||||
JSONArray productDtlArr = productDtlTab.query("bom_id = '" + jsonProductMst.getString("bom_id") + "' order by seqno ASC").getResultJSONArray(0);
|
||||
if (ObjectUtil.isEmpty(productDtlArr)) throw new BadRequestException("此产品bom单暂无明细");
|
||||
|
||||
// 找出第一个碳化钨
|
||||
String thw_material_id = "";
|
||||
for (int i = 0; i < productDtlArr.size(); i++) {
|
||||
JSONObject jsonProductDtl = productDtlArr.getJSONObject(i);
|
||||
boolean is_thw = materialbaseService.isAlongMaterType(MaterOptTypeEnum.THW.getCode(), jsonProductDtl.getString("material_id"), null);
|
||||
|
||||
if (is_thw) {
|
||||
thw_material_id = jsonProductDtl.getString("material_id");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 2.查询此碳化钨 软废碳平衡修正表获得全部软废类型的值 并转化成数组(便于处理数据)
|
||||
JSONObject jsonThwMater = materTab.query("material_id = '" + thw_material_id + "'").uniqueResult(0);
|
||||
JSONObject jsonWas = wasTab.query("material_id = '" + thw_material_id + "' and tech_type = '"+tech_type+"'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonWas)) throw new BadRequestException("此碳化钨软废修正数据不存在:"+jsonThwMater.getString("material_code"));
|
||||
|
||||
// 将此碳化钨的软废类型转化为数组
|
||||
JSONArray wasArr = new WastecchangeServiceImpl().contentShift(jsonWas);
|
||||
|
||||
// 3.查询软废:物料表,软废编码 = PG粉编码 + '-CF' (以软废类型CF为例)
|
||||
for (int j = 0; j < wasArr.size(); j++) {
|
||||
JSONObject jsonWasDtl = wasArr.getJSONObject(j);
|
||||
|
||||
String rf_type_code = jsonMater.getString("material_code") +"-"+jsonWasDtl.getString("name");
|
||||
JSONObject jsonRfMater = materTab.query("material_code = '" + rf_type_code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonRfMater)) {
|
||||
// 4.依次修改16种软废类型的碳平衡: 软废碳平衡=pg粉碳平衡+CF修正值
|
||||
JSONObject jsonRfExt = extTab.query("material_id = '" + jsonRfMater.getString("material_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonRfExt)) throw new BadRequestException("此软废扩展信息不存在:"+rf_type_code);
|
||||
|
||||
double rf_c_balance = NumberUtil.add(jsonExtMater.getDoubleValue("c_balance"), jsonWasDtl.getDoubleValue("value"));
|
||||
jsonRfExt.put("c_balance", String.valueOf(rf_c_balance));
|
||||
extTab.update(jsonRfExt);
|
||||
}
|
||||
}
|
||||
result.put("c_balance", "");
|
||||
}
|
||||
|
||||
if (is_rf) {
|
||||
/*
|
||||
* 软废粉碳平衡修正:
|
||||
@@ -435,10 +455,14 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
// 2.找碳化钨:此PG粉产品BOM明细第一个碳化钨
|
||||
// 查主表
|
||||
JSONObject jsonProductMst = productMstTab.query("material_id = '" + jsonPgfMater.getString("material_id") + "' and is_used = '1' and is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonProductMst)) throw new BadRequestException("此产品没有创建bom单或者已删除、未启用"+pg_material_code);
|
||||
if (ObjectUtil.isEmpty(jsonProductMst)) {
|
||||
throw new BadRequestException("此产品没有创建bom单或者已删除、未启用"+pg_material_code);
|
||||
}
|
||||
// 查明细
|
||||
JSONArray productDtlArr = productDtlTab.query("bom_id = '" + jsonProductMst.getString("bom_id") + "' order by seqno ASC").getResultJSONArray(0);
|
||||
if (ObjectUtil.isEmpty(productDtlArr)) throw new BadRequestException("此产品bom单暂无明细"+pg_material_code);
|
||||
if (ObjectUtil.isEmpty(productDtlArr)) {
|
||||
throw new BadRequestException("此产品bom单暂无明细"+pg_material_code);
|
||||
}
|
||||
|
||||
// 找出第一个碳化钨
|
||||
String thw_material_id = "";
|
||||
@@ -456,7 +480,9 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
// 3.找修正值:废类型为编码最后'-'后的内容
|
||||
JSONObject jsonThwMater = materTab.query("material_id = '" + thw_material_id + "'").uniqueResult(0);
|
||||
JSONObject jsonWas = wasTab.query("material_id = '" + thw_material_id + "' and tech_type ='"+tech_type+"'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonWas)) throw new BadRequestException("此碳化钨软废修正数据不存在:"+jsonThwMater.getString("material_name"));
|
||||
if (ObjectUtil.isEmpty(jsonWas)) {
|
||||
throw new BadRequestException("此碳化钨软废修正数据不存在:"+jsonThwMater.getString("material_name"));
|
||||
}
|
||||
|
||||
// 将此碳化钨的软废类型转化为数组
|
||||
JSONArray wasArr = new WastecchangeServiceImpl().contentShift(jsonWas);
|
||||
@@ -474,7 +500,9 @@ public class MaterialParametersServiceImpl implements MaterialParametersService
|
||||
|
||||
// 软废碳平衡=pg粉碳平衡+此软废修正值
|
||||
JSONObject jsonPgfExt = extTab.query("material_id = '" + jsonPgfMater.getString("material_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonPgfExt)) throw new BadRequestException("此PG粉扩展属性不存在:"+pg_material_code);
|
||||
if (ObjectUtil.isEmpty(jsonPgfExt)) {
|
||||
throw new BadRequestException("此PG粉扩展属性不存在:"+pg_material_code);
|
||||
}
|
||||
|
||||
double c_balance = NumberUtil.add(jsonPgfExt.getDoubleValue("c_balance"), value);
|
||||
result.put("c_balance", String.valueOf(c_balance));
|
||||
|
||||
Reference in New Issue
Block a user