This commit is contained in:
zds
2022-09-12 00:42:03 +08:00
parent 5c3197722b
commit 72d3327cae
7 changed files with 379 additions and 4 deletions

View File

@@ -40,6 +40,13 @@ public class DailyplanController {
queryAll(whereJson,page),HttpStatus.OK);
}
@GetMapping("/queryday")
@Log("查询月生产计划")
@ApiOperation("查询月生产计划")
public ResponseEntity<Object> queryday(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(dailyplanService.
queryday(whereJson,page),HttpStatus.OK);
}
@GetMapping("/query2")
@Log("查询月生产计划")
@ApiOperation("查询月生产计划")

View File

@@ -25,6 +25,13 @@ public interface DailyplanService {
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryday(Map whereJson, Pageable page);
/**
* 创建
* @param json /

View File

@@ -85,7 +85,61 @@ public class DailyplanServiceImpl implements DailyplanService {
jret.put("content",ja);
return jret;
}
@Override
public Map<String, Object> queryday(Map whereJson, Pageable page) {
HashMap<String, String> map = new HashMap<>(whereJson);
String material_code = map.get("material_code");
if (StrUtil.isNotEmpty(material_code)) {
map.put("material_code", "%" + material_code + "%");
}
String begin_time = map.get("begin_time");
if (StrUtil.isNotEmpty(begin_time)) {
map.put("begin_time", begin_time.substring(0,10)+" 00:00:00");
}
String end_time = map.get("end_time");
if (StrUtil.isNotEmpty(end_time)) {
map.put("end_time", end_time.substring(0,10)+" 23:59:59");
}
map.put("flag", "3");
JSONObject jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "WorkOrder.planstart_time,WorkOrder.device_id,ext.old_mark");
JSONArray json = jret.getJSONArray("content");
JSONArray ja = new JSONArray();
for(int i=0;i<json.size();i++){
JSONObject jo = json.getJSONObject(i);
String planstart_time = jo.getString("planstart_time");
JSONObject last = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
.addParam("flag", "4")
.addParam("begin_time", "%"+planstart_time.substring(0,10)+"%")
.addParam("device_id",jo.getString("device_id"))
.addParam("old_mark",jo.getString("old_mark"))
.process().uniqueResult(0);
if(last!=null){
jo.put("pw_time",last.getString("realend_time"));
}
JSONObject last5 = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
.addParam("flag", "5")
.addParam("begin_time", "%"+planstart_time.substring(0,10)+"%")
.addParam("device_id",jo.getString("device_id"))
.addParam("old_mark",jo.getString("old_mark"))
.process().uniqueResult(0);
if(last5!=null){
jo.put("in_time",last5.getString("create_time"));
}
JSONObject last6 = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
.addParam("flag", "6")
.addParam("begin_time", "%"+planstart_time.substring(0,10)+"%")
.addParam("device_id",jo.getString("device_id"))
.addParam("old_mark",jo.getString("old_mark"))
.process().uniqueResult(0);
if(StrUtil.isNotEmpty(last6.getString("total_qty"))){
jo.put("in_qty",last6.getDouble("total_qty")/1000.0);
}
ja.add(jo);
}
jret.put("content",ja);
return jret;
}
@Override
public JSONArray queryAll(Map whereJson) {
HashMap<String, String> map = new HashMap<>(whereJson);

View File

@@ -23,6 +23,7 @@
输入.begin_time TYPEAS s_string
输入.end_time TYPEAS s_string
输入.device_id TYPEAS s_string
输入.old_mark TYPEAS s_string
输入.workorder_type TYPEAS s_string
@@ -148,6 +149,124 @@
ENDQUERY
ENDIF
IF 输入.flag = "3"
PAGEQUERY
SELECT
WorkOrder.planstart_time,
deviceinfo.device_code,
deviceinfo.device_name,
WorkOrder.device_id,
COUNT(*) AS product_num,
sum(WorkOrder.workorder_qty) AS sum_qty,
ext.old_mark,
ext.standard_mark,
materialbase.material_code
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN MD_ME_ProducMaterialExt ext ON WorkOrder.material_id = ext.material_id
LEFT JOIN md_me_materialbase materialbase ON WorkOrder.material_id = materialbase.material_id
LEFT JOIN em_bi_deviceinfo deviceinfo ON deviceinfo.device_id = WorkOrder.device_id
WHERE
1=1 and WorkOrder.is_delete='0'
AND deviceinfo.is_active = '1'
AND deviceinfo.is_delete = '0'
AND deviceinfo.is_produceuse = '1'
AND deviceinfo.workprocedure_code = 'GX003'
OPTION 输入.begin_time <> ""
WorkOrder.planstart_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
WorkOrder.planstart_time <= 输入.end_time
ENDOPTION
OPTION 输入.material_code <> ""
(materialbase.material_code like 输入.material_code or materialbase.material_name like 输入.material_code)
ENDOPTION
OPTION 输入.device_id <> ""
WorkOrder.device_id = 输入.device_id
ENDOPTION
group by WorkOrder.planstart_time,WorkOrder.device_id,ext.old_mark
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "4"
QUERY
SELECT
WorkOrder.*,
ext.old_mark
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN MD_ME_ProducMaterialExt ext ON WorkOrder.material_id = ext.material_id
WHERE
1=1 and WorkOrder.is_delete='0'
and WorkOrder.status='99'
OPTION 输入.begin_time <> ""
WorkOrder.planstart_time like 输入.begin_time
ENDOPTION
OPTION 输入.old_mark <> ""
ext.old_mark = 输入.old_mark
ENDOPTION
OPTION 输入.device_id <> ""
WorkOrder.device_id = 输入.device_id
ENDOPTION
order by WorkOrder.realend_time desc
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "5"
QUERY
SELECT
WorkOrder.workorder_id,
ProcedureOffline.diskrecord_id,
ProcedureOffline.qty,
ProcedureOffline.create_time
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
LEFT JOIN MD_ME_ProducMaterialExt ext ON WorkOrder.material_id = ext.material_id
WHERE
1=1 and WorkOrder.is_delete='0'
and ProcedureOffline.status='1'
OPTION 输入.begin_time <> ""
WorkOrder.planstart_time like 输入.begin_time
ENDOPTION
OPTION 输入.old_mark <> ""
ext.old_mark = 输入.old_mark
ENDOPTION
OPTION 输入.device_id <> ""
WorkOrder.device_id = 输入.device_id
ENDOPTION
order by ProcedureOffline.create_time desc
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "6"
QUERY
SELECT
sum(ProcedureOffline.qty) AS total_qty,
WorkOrder.device_id
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
LEFT JOIN MD_ME_ProducMaterialExt ext ON WorkOrder.material_id = ext.material_id
WHERE
1=1 and WorkOrder.is_delete='0'
and ProcedureOffline.status='1'
OPTION 输入.begin_time <> ""
WorkOrder.planstart_time like 输入.begin_time
ENDOPTION
OPTION 输入.old_mark <> ""
ext.old_mark = 输入.old_mark
ENDOPTION
OPTION 输入.device_id <> ""
WorkOrder.device_id = 输入.device_id
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -360,8 +360,8 @@ export default {
},
[CRUD.HOOK.beforeRefresh]() {
if(this.query_flag){
this.crud.query.begin_time = (new Date()).toISOString()
this.crud.query.end_time = (new Date().daysLater(2)).toISOString()
this.crud.query.begin_time = (new Date()).strftime('%F', 'zh')
this.crud.query.end_time = (new Date().daysLater(2)).strftime('%F', 'zh')
this.query_flag = false
}
this.handleCurrentChange()

View File

@@ -301,8 +301,8 @@ export default {
methods: {
[CRUD.HOOK.beforeRefresh]() {
if(this.query_flag){
this.crud.query.begin_time = (new Date().daysAgo(2)).toISOString()
this.crud.query.end_time = (new Date()).toISOString()
this.crud.query.begin_time = (new Date().daysAgo(2)).strftime('%F', 'zh')
this.crud.query.end_time = (new Date()).strftime('%F', 'zh')
this.query_flag = false
}
this.handleCurrentChange()

View File

@@ -0,0 +1,188 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-width="90px"
label-suffix=":"
>
<el-form-item label="开始日期">
<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="产品">
<el-input
v-model="query.material_code"
clearable
size="mini"
placeholder="请输入物料编码"
style="width: 200px"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="关键设备">
<label slot="label">关键设备:</label>
<el-select
v-model="query.device_id"
clearable
size="mini"
placeholder="关键设备"
class="filter-item"
style="width: 200px"
@change="hand"
>
<el-option
v-for="item in Devices"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<rrOperation />
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation>
</crudOperation>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="workorder_date" min-width="85" label="工令日期" :formatter="workorder_dateFormat"/>
<el-table-column prop="device_name" label="关键设备" width="100" />
<el-table-column prop="old_mark" label="牌号" />
<el-table-column prop="sum_qty" label="重量(kg)" :formatter="crud.formatNum3" min-width="120" />
<el-table-column prop="product_num" label="批数" width="80" />
<el-table-column prop="pw_time" label="喷雾日期" width="140" />
<el-table-column prop="in_time" label="最后入库日期" width="100" />
<el-table-column prop="in_qty" label="入库重量(吨)" :formatter="crud.formatNum3" min-width="120" />
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import producetask from '@/api/wms/pdm/producetask'
import dailyplan from '@/api/wms/pdm/dailyplan'
import CRUD, { presenter, header, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
import crudOperation from '@crud/CRUD.operation'
import Date from '@/utils/datetime'
export default {
name: 'productday',
dicts: ['product_mode', 'workorder_type2', 'planstatus'],
components: { rrOperation, crudOperation, pagination },
mixins: [presenter(), header(), crud()],
cruds() {
return CRUD({
title: '粉料日计划表',
url: 'api/dailyplan/queryday',
idField: 'planstart_time',
sort: '',
query: { device_id: '' },
crudMethod: { ...dailyplan },
optShow: {
add: false,
edit: false,
del: false,
download: false,
reset: true
}})
},
data() {
return {
dialogVisible: false,
Devices: [],
form: {},
query_flag: true,
rules: {
}}
},
computed: {
},
created() {
producetask.getDevices().then(res => {
this.Devices = res
})
this.crud.query.createTime = [new Date(), new Date().daysLater(0)]
},
methods: {
[CRUD.HOOK.beforeRefresh]() {
if(this.query_flag){
this.crud.query.begin_time = (new Date()).strftime('%F', 'zh')
this.crud.query.end_time = (new Date().daysLater(0)).strftime('%F', 'zh')
this.query_flag = false
}
return true
},
hand(value) {
this.crud.toQuery()
},
stateFormat(row) {
return this.dict.label.planstatus[row.status]
},
workorder_typeFormat(row) {
return this.dict.label.workorder_type2[row.workorder_type]
},
onInput() {
this.$forceUpdate()
},
MyQuery(value) {
this.crud.toQuery()
},
seriesFormat(row) {
for (const item of this.XLList) {
if (item.id === row.product_series) {
return item.name
}
}
},
seriesFormat2(row) {
for (const item of this.XLList) {
if (item.id === row.mater_product_series) {
return item.name
}
}
},
workorder_dateFormat(row) {
return row.planstart_time.substring(0, 10)
},
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()
},
querytable() {
this.crud.toQuery()
}
}
}
</script>
<style scoped>
</style>