This commit is contained in:
zds
2022-11-30 21:36:27 +08:00
parent 64ea2071a6
commit df3f7e9be8
6 changed files with 201 additions and 103 deletions

View File

@@ -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("导出数据")

View File

@@ -20,7 +20,7 @@ public interface PowderOrderQueryService {
/**
* 获取表头
*/
JSONArray getHeader();
JSONArray getHeader(Map whereJson);
void download(Map whereJson, HttpServletResponse response) throws IOException;

View File

@@ -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);

View File

@@ -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

View File

@@ -24,10 +24,11 @@ export function edit(data) {
})
}
export function getHeader() {
export function getHeader(params) {
return request({
url: 'api/powderOrderQuery/getHeader',
method: 'get'
method: 'get',
params
})
}

View File

@@ -15,7 +15,16 @@
<el-form-item label="日期">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<date-range-picker v-model="query.createTime" class="date-item" />
<el-date-picker
v-model="query.createTime"
type="daterange"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
@input="onInput()"
@change="mytoQuery"
/>
</el-form-item>
<el-form-item label="产品批次">
@@ -35,7 +44,7 @@
v-model="query.material_code"
clearable
size="mini"
placeholder="请输入批次"
placeholder="请输入产品编码"
style="width: 230px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
@@ -87,11 +96,11 @@
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="index" label="序号" width="100" align="center" fixed />
<el-table-column prop="0" label="日期" min-width="150" fixed />
<el-table-column prop="1" label="产品编码" min-width="100" fixed />
<el-table-column prop="0" label="日期" min-width="140" fixed />
<el-table-column prop="1" label="产品编码" min-width="120" fixed />
<el-table-column prop="2" label="批号" min-width="100" fixed />
<template v-for="(col,index) in cols">
<el-table-column v-if="col" :prop="col.prop" :label="col.label" width="120px" />
<el-table-column v-if="col" :prop="col.prop" :label="col.label" min-width="120px" />
</template>
</el-table>
<!--分页组件-->
@@ -105,16 +114,15 @@ import crudPowderorder from '@/api/wms/statistics/powderorder'
import CRUD, { presenter, header, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import DateRangePicker from '@/components/DateRangePicker'
import {download} from "@/api/data";
import {downloadFile} from "@/utils";
import Date from '@/utils/datetime'
export default {
name: 'Powderorder',
dicts: ['workorder_status'],
components: { pagination, crudOperation, rrOperation, DateRangePicker },
components: { pagination, crudOperation, rrOperation },
mixins: [presenter(), header(), crud()],
cruds() {
return CRUD({
@@ -139,19 +147,44 @@ export default {
data() {
return {
cols: [],
query_flag: true,
statusList: [],
permission: {
},
rules: {
}}
},
created() {
this.crud.query.createTime = [new Date().daysAgo(7), new Date()]
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
crudPowderorder.getHeader().then(res => {
this.crud.data = []
this.cols = []
if (this.query_flag) {
this.crud.query.begin_time = (new Date().daysAgo(7)).strftime('%F', 'zh')
this.crud.query.end_time = (new Date()).strftime('%F', 'zh')
this.query_flag = false
}
const now = this.crud.query
crudPowderorder.getHeader(now).then(res => {
this.cols = res
})
},
onInput() {
this.$forceUpdate()
},
mytoQuery(array1) {
if (array1 === null) {
this.crud.query.begin_time = ''
this.crud.query.end_time = ''
} else {
this.crud.query.begin_time = array1[0]
this.crud.query.end_time = array1[1]
}
this.crud.toQuery()
},
hand(value) {
this.crud.toQuery()
},