This commit is contained in:
zds
2022-09-14 12:14:59 +08:00
parent 66ec2c6905
commit b458ce49cb
13 changed files with 497 additions and 51 deletions

View File

@@ -102,7 +102,7 @@ public class DailyplanServiceImpl implements DailyplanService {
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");
JSONObject jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "WorkOrder2.planstart_time,WorkOrder2.device_id,WorkOrder2.old_mark");
JSONArray json = jret.getJSONArray("content");
JSONArray ja = new JSONArray();
for(int i=0;i<json.size();i++){
@@ -157,7 +157,7 @@ public class DailyplanServiceImpl implements DailyplanService {
map.put("end_time", end_time.substring(0,10)+" 23:59:59");
}
map.put("flag", "7");
JSONObject jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "WorkOrder.device_id,materialbase.material_code");
JSONObject jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "WorkOrder2.device_id,WorkOrder2.material_code");
JSONArray json = jret.getJSONArray("content");
JSONArray ja = new JSONArray();
for(int i=0;i<json.size();i++){

View File

@@ -153,38 +153,47 @@
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
WorkOrder2.planstart_time,
WorkOrder2.device_id,
WorkOrder2.old_mark,
COUNT(*) AS product_num,
sum( WorkOrder2.workorder_qty ) AS sum_qty,
MIN(WorkOrder2.device_code2)AS device_code,
MIN(WorkOrder2.device_name2) AS device_name
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
(
SELECT
WorkOrder.planstart_time,
WorkOrder.workorder_qty,
deviceinfo.device_code AS device_code2,
deviceinfo.device_name AS device_name2,
WorkOrder.device_id,
ext.old_mark
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
) WorkOrder2
group by WorkOrder2.planstart_time,WorkOrder2.device_id,WorkOrder2.old_mark
ENDSELECT
ENDPAGEQUERY
ENDIF
@@ -269,14 +278,23 @@
IF 输入.flag = "7"
PAGEQUERY
SELECT
deviceinfo.device_code,
deviceinfo.device_name,
WorkOrder.device_id,
SELECT
WorkOrder2.material_code,
WorkOrder2.device_id,
COUNT(*) AS product_num,
sum(WorkOrder.workorder_qty) AS sum_qty,
sum( WorkOrder2.workorder_qty ) AS sum_qty,
MIN(WorkOrder2.device_code2)AS device_code,
MIN(WorkOrder2.device_name2) AS device_name,
MIN(WorkOrder2.planstart_time) AS workorder_date
FROM
(
SELECT
deviceinfo.device_code AS device_code2,
deviceinfo.device_name AS device_name2,
WorkOrder.device_id,
WorkOrder.workorder_qty,
materialbase.material_code,
MIN(WorkOrder.planstart_time) AS workorder_date
WorkOrder.planstart_time
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN md_me_materialbase materialbase ON WorkOrder.material_id = materialbase.material_id
@@ -292,7 +310,8 @@
OPTION 输入.material_code <> ""
(materialbase.material_code like 输入.material_code or materialbase.material_name like 输入.material_code)
ENDOPTION
group by WorkOrder.device_id,materialbase.material_code
) WorkOrder2
group by WorkOrder2.device_id,WorkOrder2.material_code
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -74,6 +74,14 @@ public class DevicerepairmstController {
return new ResponseEntity<>(devicerepairmstService.queryBom(whereJson, page), HttpStatus.OK);
}
@GetMapping("/findByCode")
@Log("查询备件bom")
@ApiOperation("查询")
public ResponseEntity<Object> findByCode(@RequestParam Map whereJson) {
String code = (String) whereJson.get("id");
return new ResponseEntity<>(devicerepairmstService.findByCode(code), HttpStatus.OK);
}
@PostMapping
@Log("新增维修单维护")
@ApiOperation("新增维修单维护")

View File

@@ -149,7 +149,7 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
@Override
public DevicerepairmstDto findByCode(String code) {
WQLObject wo = WQLObject.getWQLObject("em_bi_devicerepairmst");
JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
JSONObject json = wo.query("repair_code ='" + code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(json)) {
return json.toJavaObject(DevicerepairmstDto.class);
}

View File

@@ -68,6 +68,14 @@ public class DevicemaintenancemstController {
return new ResponseEntity<>(HttpStatus.CREATED);
}
@GetMapping("/findByCode")
@Log("查询备件bom")
@ApiOperation("查询")
public ResponseEntity<Object> findByCode(@RequestParam Map whereJson) {
String code = (String) whereJson.get("id");
return new ResponseEntity<>(devicemaintenancemstService.findByCode(code), HttpStatus.OK);
}
@PutMapping
@Log("修改设备保养单")
@ApiOperation("修改设备保养单")

View File

@@ -141,7 +141,7 @@ public class DevicemaintenancemstServiceImpl implements DevicemaintenancemstServ
@Override
public DevicemaintenancemstDto findByCode(String code) {
WQLObject wo = WQLObject.getWQLObject("em_bi_devicemaintenancemst");
JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
JSONObject json = wo.query("maint_code ='" + code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(json)) {
return json.toJavaObject(DevicemaintenancemstDto.class);
}

View File

@@ -16,6 +16,14 @@ export function del(ids) {
})
}
export function findByCode(params) {
return request({
url: 'api/devicemaintenancemst/findByCode',
method: 'get',
params
})
}
export function edit(data) {
return request({
url: 'api/devicemaintenancemst',
@@ -80,4 +88,4 @@ export function auditMaintain(data) {
})
}
export default { add, edit, del, getDtl, putIn, startMaintain, endMaintain, submitMain, confirmMaintain, auditMaintain }
export default { findByCode, add, edit, del, getDtl, putIn, startMaintain, endMaintain, submitMain, confirmMaintain, auditMaintain }

View File

@@ -32,6 +32,14 @@ export function getDtl(data) {
})
}
export function findByCode(params) {
return request({
url: 'api/devicerepairmst/findByCode',
method: 'get',
params
})
}
export function submit(data) {
return request({
url: 'api/devicerepairmst/submit',
@@ -136,4 +144,4 @@ export function submitReceive(data) {
})
}
export default { add, edit, del, getDtl, submit, startRepair, endRepair, submitRepair, confirmRepair, submitResuft, getResult, outRepair, checkRepair, uditRepair, getNormBom, getFileBom, submitReceive }
export default { findByCode, add, edit, del, getDtl, submit, startRepair, endRepair, submitRepair, confirmRepair, submitResuft, getResult, outRepair, checkRepair, uditRepair, getNormBom, getFileBom, submitReceive }

View File

@@ -92,7 +92,11 @@
<el-table-column min-width="120" prop="change_reason" label="变更内容" align="center" />
<el-table-column min-width="80" prop="change_name" label="操作人" align="center" />
<el-table-column min-width="80" prop="invtype" label="源单类型" align="center" :formatter="inv_typeFormat"/>
<el-table-column min-width="120" prop="invcode" label="源单号" align="center" />
<el-table-column min-width="120" prop="invcode" label="源单号" align="center">
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.row)">{{ scope.row.invcode }}</el-link>
</template>
</el-table-column>
<el-table-column min-width="120" prop="change_content" label="备注" align="center" />
</el-table>
</el-tab-pane>
@@ -128,6 +132,8 @@
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
</div>
</el-dialog>
<ViewDialog1 :dialog-show.sync="viewShow1" :rowmst="mstrow" />
<ViewDialog2 :dialog-show.sync="viewShow2" :rowmst="mstrow" />
</el-dialog>
</template>
@@ -136,13 +142,17 @@
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
import localStorage from '@/api/tools/localStorage'
import equipmentfile from '@/api/wms/basedata/em/equipmentfile'
import ViewDialog1 from '@/views/wms/basedata/em/equipmentfile/ViewDialog1'
import ViewDialog2 from '@/views/wms/basedata/em/equipmentfile/ViewDialog2'
import { getToken } from '@/utils/auth'
import { mapGetters } from 'vuex'
import CRUD, { crud } from '@crud/crud'
import crudDevicerepairmst from '@/api/wms/sb/devicerepairmst'
import crudDevicemaintenancemst from '@/api/wms/sb/devicemaintenancemst'
export default {
name: 'ChangeDialog',
components: { },
components: { ViewDialog1, ViewDialog2 },
mixins: [crud()],
props: {
dialogShow: {
@@ -163,6 +173,9 @@ export default {
tableDtl: [],
tableDtl2: [],
tableDtl3: [],
mstrow: {},
viewShow1: false,
viewShow2: false,
form: {}
}
},
@@ -222,7 +235,6 @@ export default {
})
},
submitUpload() {
debugger
const flag = this.$refs.upload.submit()
},
beforeUpload(file) {
@@ -245,6 +257,29 @@ export default {
submitUpload2() {
this.dialogVisible2 = true
},
toView(row) {
debugger
if (row.invcode.includes('WXD')) {
const data = {
'id': row.invcode
}
crudDevicerepairmst.findByCode(data).then(res => {
this.mstrow = res
this.mstrow.device_code = this.form.device_code
this.viewShow1 = true
})
}else{
const data = {
'id': row.invcode
}
crudDevicemaintenancemst.findByCode(data).then(res => {
this.mstrow = res
this.mstrow.device_code = this.form.device_code
this.viewShow2 = true
})
}
},
deleteRow(index, row) {
localStorage.del([row.storage_id])
equipmentfile.queryivt3(this.form).then(res => {

View File

@@ -0,0 +1,187 @@
<template>
<el-dialog
title="维修单详情"
append-to-body
fullscreen
:visible.sync="dialogVisible"
@close="close"
@open="open"
>
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" size="mini" label-width="120px" label-suffix=":">
<el-row>
<el-col :span="8">
<el-form-item label="单据号" prop="repair_code">
<el-input v-model="form.repair_code" style="width: 200px;" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划维修日期" prop="plan_start_date">
<el-date-picker v-model="form.plan_start_date" type="date" placeholder="选择日期" style="width: 200px" value-format="yyyy-MM-dd" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="维修类型" prop="maintenancecycle">
<el-select
v-model="form.maintenancecycle"
disabled
size="mini"
placeholder="请选择"
class="filter-item"
>
<el-option
v-for="item in dict.EM_DEVICE_WX_INVTYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="设备" prop="devicerecord_id">
<el-input v-model="form.device_code" :disabled="true" style="width: 200px;">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="故障等级" prop="fault_level">
<el-select
v-model="form.fault_level"
size="mini"
placeholder="请选择"
disabled
class="filter-item"
>
<el-option
v-for="item in dict.EM_FAULT_LEVEL"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="故障描述" prop="fault_desc">
<el-input v-model="form.fault_desc" style="width: 580px;" rows="2" type="textarea" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" style="width: 580px;" rows="2" type="textarea" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="crud-opts2">
<span class="role-span">项目明细</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
ref="table2"
:data="tableData"
style="width: 100%;"
max-height="500"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip prop="repair_item_code" label="维修项目编号" align="center" />
<el-table-column show-overflow-tooltip prop="repair_item_name" label="维修项目名称" align="center" />
<el-table-column show-overflow-tooltip prop="requirement" label="要求" align="center" />
<el-table-column prop="dtl_remark" label="备注" align="center" />
</el-table>
</el-card>
</el-dialog>
</template>
<script>
import crudDevicerepairmst from '@/api/wms/sb/devicerepairmst'
export default {
name: 'ViewDialog1',
components: { },
dicts: ['EM_DEVICE_WX_INVTYPE', 'EM_FAULT_LEVEL'],
props: {
dialogShow: {
type: Boolean,
default: false
},
rowmst: {
type: Object
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
},
rowmst: {
handler(newValue) {
this.form = newValue
}
}
},
data() {
return {
dialogVisible: false,
form: {},
tableData: [],
deviceDialog: false,
itemDialog: false
}
},
methods: {
open() {
debugger
const data = {
'repair_id': this.form.repair_id
}
crudDevicerepairmst.getDtl(data).then(res => {
this.tableData = res
})
},
close() {
this.$emit('update:dialogShow', false)
}
}
}
</script>
<style>
.crud-opts2 {
padding: 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .el-dialog__title2 {
line-height: 24px;
font-size:20px;
color:#303133;
}
.crud-opts2 .role-span {
padding: 10px 0px 10px 0px;
}
.crud-opts2 .crud-opts-form {
padding: 10px 0px 0px 20px;
}
.input-with-select {
background-color: #fff;
}
</style>

View File

@@ -0,0 +1,173 @@
<template>
<el-dialog
title="保养单详情"
append-to-body
fullscreen
:visible.sync="dialogVisible"
@close="close"
@open="open"
>
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" size="mini" label-width="120px" label-suffix=":">
<el-row>
<el-col :span="8">
<el-form-item label="单据号" prop="maint_code">
<el-input v-model="form.maint_code" style="width: 200px;" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="业务日期" prop="plan_start_date">
<el-date-picker v-model="form.plan_start_date" type="date" placeholder="选择日期" style="width: 200px" value-format="yyyy-MM-dd" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="保养类型" prop="maintenancecycle">
<el-select
v-model="form.maintenancecycle"
disabled
size="mini"
placeholder="请选择"
class="filter-item"
>
<el-option
v-for="item in dict.EM_DEVICE_BY_INVTYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="设备" prop="devicerecord_id">
<el-input v-model="form.device_code" :disabled="true" style="width: 200px;">
</el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" style="width: 580px;" rows="2" type="textarea" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="crud-opts2">
<span class="role-span">项目明细</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
ref="table2"
:data="tableData"
style="width: 100%;"
max-height="500"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip prop="maint_item_code" label="保养项目编号" align="center" />
<el-table-column show-overflow-tooltip prop="maint_item_name" label="保养项目名称" align="center" />
<el-table-column show-overflow-tooltip prop="item_level" label="保养等级" align="center" :formatter="formatLevel" />
<el-table-column show-overflow-tooltip prop="contents" label="保养内容" align="center" />
<el-table-column show-overflow-tooltip prop="requirement" label="要求" align="center" />
<el-table-column prop="dtl_remark" label="备注" align="center" />
</el-table>
</el-card>
</el-dialog>
</template>
<script>
import crudDevicemaintenancemst from '@/api/wms/sb/devicemaintenancemst'
export default {
name: 'ViewDialog1',
components: { },
dicts: ['EM_DEVICE_WX_INVTYPE', 'EM_DEVICE_BY_INVTYPE'],
props: {
dialogShow: {
type: Boolean,
default: false
},
rowmst: {
type: Object
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
},
rowmst: {
handler(newValue) {
this.form = newValue
}
}
},
data() {
return {
dialogVisible: false,
form: {},
tableData: [],
deviceDialog: false,
itemDialog: false
}
},
methods: {
open() {
debugger
const data = {
'maint_id': this.form.maint_id
}
crudDevicemaintenancemst.getDtl(data).then(res => {
this.tableData = res
})
},
formatLevel(row, cloum) {
if (row.item_level === '01') {
return '日常'
} else if (row.item_level === '02') {
return '一级'
} else if (row.item_level === '03') {
return '二级'
}
},
close() {
this.$emit('update:dialogShow', false)
}
}
}
</script>
<style>
.crud-opts2 {
padding: 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .el-dialog__title2 {
line-height: 24px;
font-size:20px;
color:#303133;
}
.crud-opts2 .role-span {
padding: 10px 0px 10px 0px;
}
.crud-opts2 .crud-opts-form {
padding: 10px 0px 0px 20px;
}
.input-with-select {
background-color: #fff;
}
</style>

View File

@@ -48,9 +48,9 @@
<el-table-column prop="sum_qty" label="计划重量(吨)" :formatter="crud.formatNum3" min-width="80" />
<el-table-column prop="product_num" label="计划批次" min-width="80" />
<el-table-column prop="device_name" label="关键设备" width="100" />
<el-table-column prop="workorder_date" min-width="85" label="粉料配粉时间" />
<el-table-column prop="pw_time" label="粉料喷雾时间" width="140" />
<el-table-column prop="in_time" label="最后入库时间" width="140" />
<el-table-column prop="workorder_date" min-width="130" label="粉料配粉时间" />
<el-table-column prop="pw_time" label="粉料喷雾时间" width="130" />
<el-table-column prop="in_time" label="最后入库时间" width="130" />
<el-table-column prop="in_qty" label="入库重量(吨)" :formatter="crud.formatNum3" min-width="80" />
<el-table-column prop="in_num" label="入库批数" width="80" />
</el-table>

View File

@@ -133,8 +133,8 @@
<el-table-column prop="sum_qty12" label="PEG2000\PEG" :formatter="crud.formatNum3" min-width="120" align="center" />
<el-table-column prop="sum_qty13" label="石蜡/kg" :formatter="crud.formatNum3" min-width="80" align="center" />
<el-table-column prop="sum_qty14" label="白油" :formatter="crud.formatNum3" min-width="80" align="center" />
<el-table-column prop="sum_qty15" label="合计" :formatter="crud.formatNum3" min-width="100" align="center" />
</el-table-column>
<el-table-column prop="sum_qty15" label="合计" :formatter="crud.formatNum3" min-width="100" align="center" />
<el-table-column prop="sum_qty16" label="投入汇总" :formatter="crud.formatNum3" min-width="100" align="center" />
</el-table-column>
<el-table-column label="投料工序流记录" align="center">