优化
This commit is contained in:
@@ -40,8 +40,8 @@ public class PowderOrderQueryController {
|
||||
@GetMapping("/getHeader")
|
||||
@Log("获取表头")
|
||||
@ApiOperation("获取表头")
|
||||
public ResponseEntity<Object> getHeader() {
|
||||
return new ResponseEntity<>(powderOrderQueryService.getHeader(), HttpStatus.OK);
|
||||
public ResponseEntity<Object> getHeader(@RequestParam Map whereJson) {
|
||||
return new ResponseEntity<>(powderOrderQueryService.getHeader(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@ApiOperation("导出数据")
|
||||
|
||||
@@ -20,7 +20,7 @@ public interface PowderOrderQueryService {
|
||||
/**
|
||||
* 获取表头
|
||||
*/
|
||||
JSONArray getHeader();
|
||||
JSONArray getHeader(Map whereJson);
|
||||
|
||||
void download(Map whereJson, HttpServletResponse response) throws IOException;
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -46,7 +47,7 @@ public class PowderOrderQueryServiceImpl implements PowderOrderQueryService {
|
||||
if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn", "%"+pcsn+"%");
|
||||
if (ObjectUtil.isNotEmpty(material_code)) map.put("material_code", "%"+material_code+"%");
|
||||
|
||||
JSONObject resultJson = WQL.getWO("QP_POWDERORDERQUERY01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "work.create_time ASC");
|
||||
JSONObject resultJson = WQL.getWO("QP_POWDERORDERQUERY01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "work.create_time desc,mater.material_code,work.pcsn");
|
||||
JSONArray contentArr = resultJson.getJSONArray("content");
|
||||
JSONArray jsonResultArr = new JSONArray();
|
||||
|
||||
@@ -64,20 +65,19 @@ public class PowderOrderQueryServiceImpl implements PowderOrderQueryService {
|
||||
JSONObject jsonDtl = dtlArr.getJSONObject(j);
|
||||
JSONArray arr = WQLObject.getWQLObject("PDM_BI_FormulaDtl").query("formula_id ='" + formula_id + "' and material_id ='" + jsonDtl.getString("material_id") + "'").getResultJSONArray(0);
|
||||
jsonResult.put(jsonDtl.getString("material_id")+"",jsonDtl.getString("material_name"));
|
||||
jsonResult.put(jsonDtl.getString("material_code")+"",jsonDtl.getString("material_code"));
|
||||
if (arr.size() > 1) {
|
||||
String resPcsn = "";
|
||||
String formula_qty = "";
|
||||
for (int k = 0; k < arr.size(); k++) {
|
||||
JSONObject jsonObject = arr.getJSONObject(k);
|
||||
resPcsn = resPcsn + jsonObject.getString("pcsn") + "+";
|
||||
formula_qty = formula_qty + jsonObject.getString("formula_qty") + "+";
|
||||
formula_qty = formula_qty + NumberUtil.round(jsonObject.getDouble("formula_qty"),3)+"+";
|
||||
}
|
||||
jsonResult.put(jsonDtl.getString("material_id")+"pcsn",resPcsn);
|
||||
jsonResult.put(jsonDtl.getString("material_id") +"formula_qty",formula_qty);
|
||||
} else {
|
||||
jsonResult.put(jsonDtl.getString("material_id")+"pcsn",jsonDtl.getString("pcsn"));
|
||||
jsonResult.put(jsonDtl.getString("material_id") +"formula_qty",jsonDtl.getString("formula_qty"));
|
||||
jsonResult.put(jsonDtl.getString("material_id") +"formula_qty",jsonDtl.getDouble("formula_qty"));
|
||||
}
|
||||
}
|
||||
// 碳平衡
|
||||
@@ -108,12 +108,11 @@ public class PowderOrderQueryServiceImpl implements PowderOrderQueryService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getHeader() {
|
||||
public JSONArray getHeader(Map whereJson) {
|
||||
JSONArray jsonResultArr = new JSONArray();
|
||||
|
||||
String classIds = classstandardService.getAllChildIdStr(MaterOptTypeEnum.YL_AND_FL_AND_RF.getClass_idStr());
|
||||
String RF = classstandardService.getAllChildIdStr(MaterOptTypeEnum.RF.getClass_idStr());
|
||||
JSONArray resultJSONArray = WQL.getWO("QP_POWDERORDERQUERY01").addParam("flag", "2").addParam("classIds", classIds).process().getResultJSONArray(0);
|
||||
JSONArray resultJSONArray = WQL.getWO("QP_POWDERORDERQUERY01").addParam("flag", "20").addParam("classIds", classIds).process().getResultJSONArray(0);
|
||||
|
||||
for (int i = 0; i < resultJSONArray.size(); i++) {
|
||||
JSONObject json = resultJSONArray.getJSONObject(i);
|
||||
@@ -185,14 +184,13 @@ public class PowderOrderQueryServiceImpl implements PowderOrderQueryService {
|
||||
JSONObject jsonDtl = dtlArr.getJSONObject(j);
|
||||
JSONArray arr = WQLObject.getWQLObject("PDM_BI_FormulaDtl").query("formula_id ='" + formula_id + "' and material_id ='" + jsonDtl.getString("material_id") + "'").getResultJSONArray(0);
|
||||
jsonResult.put(jsonDtl.getString("material_id")+"",jsonDtl.getString("material_name"));
|
||||
jsonResult.put(jsonDtl.getString("material_code")+"",jsonDtl.getString("material_code"));
|
||||
if (arr.size() > 1) {
|
||||
String resPcsn = "";
|
||||
String formula_qty = "";
|
||||
for (int k = 0; k < arr.size(); k++) {
|
||||
JSONObject jsonObject = arr.getJSONObject(k);
|
||||
resPcsn = resPcsn + jsonObject.getString("pcsn") + "+";
|
||||
formula_qty = formula_qty + jsonObject.getString("formula_qty") + "+";
|
||||
formula_qty = formula_qty + NumberUtil.round(jsonObject.getDouble("formula_qty"),3)+"+";
|
||||
}
|
||||
jsonResult.put(jsonDtl.getString("material_id")+"pcsn",resPcsn);
|
||||
jsonResult.put(jsonDtl.getString("material_id") +"formula_qty",formula_qty);
|
||||
@@ -225,8 +223,7 @@ public class PowderOrderQueryServiceImpl implements PowderOrderQueryService {
|
||||
jsonResultArr.add(jsonResult);
|
||||
}
|
||||
|
||||
String classIds = classstandardService.getAllChildIdStr(MaterOptTypeEnum.YL_AND_FL.getClass_idStr());
|
||||
String RF = classstandardService.getAllChildIdStr(MaterOptTypeEnum.RF.getClass_idStr());
|
||||
String classIds = classstandardService.getAllChildIdStr(MaterOptTypeEnum.YL_AND_FL_AND_RF.getClass_idStr());
|
||||
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (int k = 0; k < jsonResultArr.size(); k++) {
|
||||
@@ -236,7 +233,7 @@ public class PowderOrderQueryServiceImpl implements PowderOrderQueryService {
|
||||
map_dtl.put("日期", json.getString("0"));
|
||||
map_dtl.put("产品编码", json.getString("1"));
|
||||
map_dtl.put("批号", json.getString("2"));
|
||||
JSONArray resultJSONArray = WQL.getWO("QP_POWDERORDERQUERY01").addParam("flag", "2").addParam("classIds", classIds).addParam("rf", RF).process().getResultJSONArray(0);
|
||||
JSONArray resultJSONArray = WQL.getWO("QP_POWDERORDERQUERY01").addParam("flag", "20").addParam("classIds", classIds).process().getResultJSONArray(0);
|
||||
|
||||
for (int t = 0; t < resultJSONArray.size(); t++) {
|
||||
JSONObject jsonObject = resultJSONArray.getJSONObject(t);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[交易说明]
|
||||
交易名: 粉料开单记录分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
@@ -20,27 +20,27 @@
|
||||
输入.status TYPEAS s_string
|
||||
输入.material_code TYPEAS s_string
|
||||
输入.classIds TYPEAS f_string
|
||||
输入.rf TYPEAS f_string
|
||||
输入.formula_ids TYPEAS f_string
|
||||
输入.formula_id TYPEAS s_string
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
@@ -96,60 +96,46 @@
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
MAX(dtl.formuladtl_id) AS formuladtl_id,
|
||||
mater.material_id AS material_id,
|
||||
MAX(mater.material_name) AS material_name,
|
||||
MAX(mater.material_code) AS material_code,
|
||||
group_concat(dtl.pcsn separator '+') AS pcsn,
|
||||
group_concat(dtl.formula_qty separator '+') AS formula_qty,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_me_materialbase mater ON dtl.material_id = mater.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id
|
||||
LEFT JOIN PDM_BI_Formula mst ON dtl.formula_id = mst.formula_id
|
||||
|
||||
WHERE
|
||||
mst.is_delete= '0'
|
||||
|
||||
mater.material_id AS material_id,
|
||||
MAX(mater.material_code) AS material_code,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_me_materialbase mater ON dtl.material_id = mater.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id
|
||||
WHERE 1=1
|
||||
OPTION 输入.classIds <> ""
|
||||
mater.material_type_id in 输入.classIds
|
||||
ENDOPTION
|
||||
OPTION 输入.formula_ids <> ""
|
||||
dtl.formula_id in 输入.formula_ids
|
||||
ENDOPTION
|
||||
group by material_id
|
||||
union
|
||||
SELECT
|
||||
class.class_id AS material_id,
|
||||
MAX(class.class_code) AS material_code,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = dtl.material_id
|
||||
WHERE 1=1
|
||||
OPTION 输入.classIds <> ""
|
||||
mater.material_type_id in 输入.classIds
|
||||
ENDOPTION
|
||||
|
||||
group by material_id
|
||||
|
||||
union
|
||||
|
||||
SELECT
|
||||
MAX(dtl.formuladtl_id) AS formuladtl_id,
|
||||
class.class_id AS material_id,
|
||||
MAX(class.class_name) AS material_name,
|
||||
MAX(class.class_code) AS material_code,
|
||||
group_concat(dtl.pcsn separator '+') AS pcsn,
|
||||
group_concat(dtl.formula_qty separator '+') AS formula_qty,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = dtl.material_id
|
||||
LEFT JOIN PDM_BI_Formula mst ON dtl.formula_id = mst.formula_id
|
||||
|
||||
WHERE
|
||||
mst.is_delete= '0'
|
||||
|
||||
OPTION 输入.classIds <> ""
|
||||
class.class_id in 输入.classIds
|
||||
ENDOPTION
|
||||
|
||||
group by material_id
|
||||
order by order_no,material_code
|
||||
class.class_id in 输入.classIds
|
||||
ENDOPTION
|
||||
OPTION 输入.formula_ids <> ""
|
||||
dtl.formula_id in 输入.formula_ids
|
||||
ENDOPTION
|
||||
group by material_id
|
||||
order by order_no,material_code
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
@@ -167,16 +153,12 @@
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_me_materialbase mater ON dtl.material_id = mater.material_id
|
||||
|
||||
WHERE
|
||||
1=1
|
||||
|
||||
OPTION 输入.formula_id <> ""
|
||||
dtl.formula_id = 输入.formula_id
|
||||
ENDOPTION
|
||||
|
||||
union
|
||||
|
||||
SELECT
|
||||
dtl.formuladtl_id,
|
||||
class.class_id AS material_id,
|
||||
@@ -186,17 +168,13 @@
|
||||
dtl.formula_qty
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = dtl.material_id
|
||||
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = dtl.material_id
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.formula_id <> ""
|
||||
dtl.formula_id = 输入.formula_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.formula_id <> ""
|
||||
dtl.formula_id = 输入.formula_id
|
||||
ENDOPTION
|
||||
order by material_id
|
||||
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -245,8 +223,97 @@
|
||||
mater.material_name like 输入.material_code)
|
||||
ENDOPTION
|
||||
|
||||
order by work.create_time ASC
|
||||
work.create_time desc,mater.material_code,work.pcsn
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "20"
|
||||
QUERY
|
||||
SELECT
|
||||
MAX(dtl.formuladtl_id) AS formuladtl_id,
|
||||
mater.material_id AS material_id,
|
||||
MAX(mater.material_name) AS material_name,
|
||||
MAX(mater.material_code) AS material_code,
|
||||
group_concat(dtl.pcsn separator '+') AS pcsn,
|
||||
group_concat(dtl.formula_qty separator '+') AS formula_qty,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_me_materialbase mater ON dtl.material_id = mater.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id
|
||||
WHERE 1=1
|
||||
OPTION 输入.classIds <> ""
|
||||
mater.material_type_id in 输入.classIds
|
||||
ENDOPTION
|
||||
group by material_id
|
||||
union
|
||||
SELECT
|
||||
MAX(dtl.formuladtl_id) AS formuladtl_id,
|
||||
class.class_id AS material_id,
|
||||
MAX(class.class_name) AS material_name,
|
||||
MAX(class.class_code) AS material_code,
|
||||
group_concat(dtl.pcsn separator '+') AS pcsn,
|
||||
group_concat(dtl.formula_qty separator '+') AS formula_qty,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
PDM_BI_FormulaDtl dtl
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = dtl.material_id
|
||||
WHERE 1=1
|
||||
OPTION 输入.classIds <> ""
|
||||
class.class_id in 输入.classIds
|
||||
ENDOPTION
|
||||
|
||||
group by material_id
|
||||
order by order_no,material_code
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "21"
|
||||
QUERY
|
||||
SELECT
|
||||
mst.formula_id
|
||||
FROM
|
||||
PDM_BI_WorkOrder work
|
||||
LEFT JOIN PDM_BI_Formula mst ON mst.workorder_id = work.workorder_id
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = work.material_id
|
||||
LEFT JOIN MD_ME_ProducMaterialExt ext ON mater.material_id = ext.material_id
|
||||
WHERE
|
||||
mst.is_delete= '0'
|
||||
AND work.is_delete= '0'
|
||||
AND mst.bucket_type = '01'
|
||||
OPTION 输入.begin_time <> ""
|
||||
work.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.end_time <> ""
|
||||
work.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.pcsn <> ""
|
||||
work.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.status <> ""
|
||||
work.status = 输入.status
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.material_code <> ""
|
||||
(mater.material_code like 输入.material_code or
|
||||
mater.material_name like 输入.material_code)
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user