代码更新

This commit is contained in:
2022-08-02 16:17:21 +08:00
parent afbccf2a47
commit 4a604e8661
7 changed files with 157 additions and 50 deletions

View File

@@ -2,8 +2,8 @@ package org.nl.wms.pcs.Enum;
public enum IsProcEnum {
GENERATE(1, "0", "生成"),
PURCHASING_AGENT(2, "1", "采购汇总"),
COMMIT(3, "2", "提交生");
PURCHASING_AGENT(2, "1", "提交"),
COMMIT(3, "2", "");
private int index;
private String name;
private String code;

View File

@@ -249,44 +249,61 @@ public class ProductplanSumServiceImpl implements ProductplanSumService {
HashMap<String, String> map = new HashMap<>(form);
String plan_month = map.get("plan_month");
String plan_org_code = map.get("plan_org_code");
String material_code = map.get("material_code");
map.put("flag", "2");
if (StrUtil.isNotEmpty(material_code)) {
map.put("flag", "3");
if (StrUtil.isNotEmpty(plan_month)) {
map.put("plan_month", plan_month.replace("-", ""));
} else {
map.put("plan_month", "");
}
if (StrUtil.isNotEmpty(material_code)) {
map.put("material_code", "%" + material_code + "%");
}
map.put("plan_org_code", plan_org_code);
map.put("material_code", material_code);
//汇总查询
JSONArray allArr = WQL.getWO("QPCS_IF_PRODUCTPLANSUM02").addParamMap(map).process().getResultJSONArray(0);
if (ObjectUtil.isEmpty(allArr)) {
throw new BadRequestException("没有数据");
}
String num = "0.01";
JSONArray resultArr = new JSONArray();
HashMap<String, JSONObject> resultMap = new HashMap<>();
for (int i = 0; i < allArr.size(); i++) {
JSONObject json = allArr.getJSONObject(i);
//计算所需数
String product_weight = json.getString("product_weight");
String raet = json.getString("raet");
if (ObjectUtil.isEmpty(raet)) {
throw new BadRequestException("此计划【" + json.getString("plan_code") + "】没有创建bom单");
String product_weight = json.getString("product_weight"); // 生产计划重
// 查询生产物料 所需要的原辅料
map.put("flag", "4");
map.put("bom_id", json.getString("bom_id"));
JSONArray materYFArr = WQL.getWO("QPCS_IF_PRODUCTPLANSUM02").addParamMap(map).process().getResultJSONArray(0);
for (int j = 0; j < materYFArr.size(); j++) {
JSONObject jsonYF = materYFArr.getJSONObject(j);
// 计算原辅料所需重量
String standard_rate = jsonYF.getString("standard_rate");
String s = String.valueOf(NumberUtil.mul(standard_rate, "0.01"));
BigDecimal div = NumberUtil.mul(product_weight, s);
jsonYF.put("plan_org_name", json.getString("plan_org_name"));
jsonYF.put("plan_month", json.getString("plan_month"));
jsonYF.put("num", div.toString());
// 汇总相同物料的所需重量
String material_id = jsonYF.getString("material_id");
if (resultMap.containsKey(material_id)) {
JSONObject jsonObject = resultMap.get(material_id);
BigDecimal allNum = NumberUtil.add(jsonObject.getString("num"), div.toString());
jsonObject.put("num",allNum);
resultMap.put(material_id,jsonObject);
} else {
resultMap.put(material_id,jsonYF);
}
}
String s = String.valueOf(NumberUtil.mul(raet, num));
BigDecimal div = NumberUtil.mul(product_weight, s);
json.put("num", String.valueOf(div));
//更新月需求计划接口表
String plan_id = json.getString("plan_id");
WQLObject procTab = WQLObject.getWQLObject("PCS_IF_ProductPlanProc");
JSONObject jsonProc = procTab.query("plan_id = '" + plan_id + "'").uniqueResult(0);
jsonProc.put("is_proc", IsProcEnum.PURCHASING_AGENT.getCode());
procTab.update(jsonProc);
}
for (String k : resultMap.keySet()) {
JSONObject resultJson = resultMap.get(k);
resultArr.add(resultJson);
}
List<Map<String, Object>> list = new ArrayList<>();
for (int i = 0; i < allArr.size(); i++) {
for (int i = 0; i < resultArr.size(); i++) {
Map<String, Object> mp = new LinkedHashMap<>();
JSONObject json = allArr.getJSONObject(i);
JSONObject json = resultArr.getJSONObject(i);
mp.put("申报单位名称", json.getString("plan_org_name"));
mp.put("计划月份", json.getString("plan_month"));
mp.put("物料编码", json.getString("material_code"));
@@ -313,41 +330,59 @@ public class ProductplanSumServiceImpl implements ProductplanSumService {
String plan_org_code = dto.getPlan_org_code();
String material_code = dto.getMaterial_code();
HashMap<String, String> map = new HashMap<>();
map.put("flag", "2");
if (StrUtil.isNotEmpty(material_code)) {
map.put("flag", "3");
if (StrUtil.isNotEmpty(plan_month)) {
map.put("plan_month", plan_month.replace("-", ""));
} else {
map.put("plan_month", "");
}
map.put("plan_org_code", plan_org_code);
if (StrUtil.isNotEmpty(material_code)) {
map.put("material_code", "%" + material_code + "%");
}
map.put("material_code", material_code);
//汇总查询
JSONArray allArr = WQL.getWO("QPCS_IF_PRODUCTPLANSUM02").addParamMap(map).process().getResultJSONArray(0);
if (ObjectUtil.isEmpty(allArr)) {
throw new BadRequestException("没有数据");
}
String num = "0.01";
JSONArray resultArr = new JSONArray();
HashMap<String, JSONObject> resultMap = new HashMap<>();
for (int i = 0; i < allArr.size(); i++) {
JSONObject json = allArr.getJSONObject(i);
//计算所需数
String product_weight = json.getString("product_weight");
String raet = json.getString("raet");
if (ObjectUtil.isEmpty(raet)) {
throw new BadRequestException("此计划【" + json.getString("plan_code") + "】没有创建bom单");
String product_weight = json.getString("product_weight"); // 生产计划重
// 查询生产物料 所需要的原辅料
map.put("flag", "4");
map.put("bom_id", json.getString("bom_id"));
JSONArray materYFArr = WQL.getWO("QPCS_IF_PRODUCTPLANSUM02").addParamMap(map).process().getResultJSONArray(0);
for (int j = 0; j < materYFArr.size(); j++) {
JSONObject jsonYF = materYFArr.getJSONObject(j);
// 计算原辅料所需重量
String standard_rate = jsonYF.getString("standard_rate");
String s = String.valueOf(NumberUtil.mul(standard_rate, "0.01"));
BigDecimal div = NumberUtil.mul(product_weight, s);
jsonYF.put("plan_org_name", json.getString("plan_org_name"));
jsonYF.put("plan_month", json.getString("plan_month"));
jsonYF.put("num", div.toString());
// 汇总相同物料的所需重量
String material_id = jsonYF.getString("material_id");
if (resultMap.containsKey(material_id)) {
JSONObject jsonObject = resultMap.get(material_id);
BigDecimal allNum = NumberUtil.add(jsonObject.getString("num"), div.toString());
jsonObject.put("num",allNum);
resultMap.put(material_id,jsonObject);
} else {
resultMap.put(material_id,jsonYF);
}
}
String s = String.valueOf(NumberUtil.mul(raet, num));
BigDecimal div = NumberUtil.mul(product_weight, s);
json.put("num", String.valueOf(div));
//更新月需求计划接口表
String plan_id = json.getString("plan_id");
WQLObject procTab = WQLObject.getWQLObject("PCS_IF_ProductPlanProc");
JSONObject jsonProc = procTab.query("plan_id = '" + plan_id + "'").uniqueResult(0);
jsonProc.put("is_proc", IsProcEnum.PURCHASING_AGENT.getCode());
procTab.update(jsonProc);
}
return allArr;
for (String k : resultMap.keySet()) {
JSONObject resultJson = resultMap.get(k);
resultArr.add(resultJson);
}
return resultArr;
}
}

View File

@@ -90,7 +90,7 @@
FROM
sys_dept d
WHERE
d.code in(1001,1002,1003)
d.code in('H800000','H900000','H400000')
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -19,6 +19,7 @@
输入.plan_month TYPEAS s_string
输入.plan_org_code TYPEAS s_string
输入.material_code TYPEAS s_string
输入.bom_id TYPEAS s_string
[临时表]
@@ -51,7 +52,7 @@
FROM
sys_dept d
WHERE
d.code in(1001,1002,1003)
d.code in ('H800000','H900000','H400000')
ENDSELECT
ENDQUERY
ENDIF
@@ -98,5 +99,64 @@
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
pp.*,
bom.bom_id
FROM
PCS_IF_ProductPlanProc pp
LEFT JOIN MD_ME_MaterialBase mater ON mater.material_id = pp.material_id
INNER JOIN MD_PD_ProductBOM bom ON bom.material_id = mater.material_id
WHERE
pp.is_proc <> '2'
OPTION 输入.plan_month <> ""
pp.plan_month = 输入.plan_month
ENDOPTION
OPTION 输入.plan_org_code <> ""
pp.plan_org_code = 输入.plan_org_code
ENDOPTION
OPTION 输入.material_code <> ""
mater.material_code = 输入.material_code
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "4"
QUERY
SELECT
dtl.*,
mater.material_code,
mater.material_name,
ivt.ivt_qty,
unit.unit_name
FROM
MD_PD_ProductBOMDtl dtl
LEFT JOIN MD_ME_MaterialBase mater ON mater.material_id = dtl.material_id
LEFT JOIN MD_ME_StockMaterialExt ext ON ext.material_id = mater.material_id
LEFT JOIN md_pb_measureunit unit ON mater.base_unit_id = unit.measure_unit_id
LEFT JOIN (
SELECT
sum(a.ivt_qty) AS ivt_qty,
a.material_id
FROM
ST_IVT_StructIvt a
group by a.material_id
) ivt ON ivt.material_id = mater.material_id
WHERE
ext.is_need_plan = '1'
OPTION 输入.bom_id <> ""
dtl.bom_id = 输入.bom_id
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF