代码更新
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
FROM
|
||||
sys_dept d
|
||||
WHERE
|
||||
d.code in(1001,1002,1003)
|
||||
d.code in('H800000','H900000','H400000')
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user