Merge remote-tracking branch 'origin/master_merge' into master_1_opt

# Conflicts:
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/config/TlogIdGenerator.java
#	lms/nladmin-system/src/main/java/org/nl/modules/common/utils/FileUtil.java
#	lms/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/CellTypeEnum.java
#	lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java
#	lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java
#	lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql
#	lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/PDM_BI_SUBPACKAGER01.wql
#	lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
#	lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoSaveIvtExcel.java
#	lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql
#	lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql
#	lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql
#	lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java
#	lms/nladmin-system/src/main/java/org/nl/wms/util/TranUtil.java
#	lms/nladmin-system/src/main/resources/config/application-dev.yml
#	lms/nladmin-system/src/main/resources/config/application-prod.yml
#	lms/nladmin-ui/src/views/login.vue
#	lms/nladmin-ui/src/views/system/user/index.vue
#	lms/nladmin-ui/src/views/wms/pdm/bi/index.vue
#	lms/nladmin-ui/src/views/wms/sch/task/index.vue
This commit is contained in:
zhangzq
2025-05-22 13:44:35 +08:00
243 changed files with 8221 additions and 2092 deletions

View File

@@ -178,6 +178,53 @@
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog
title="子卷步序信息"
append-to-body
:visible.sync="dtlVisible"
destroy-on-close
width="1000px"
>
<!--表格渲染-->
<el-table
:data="childrenList"
>
<el-table-column prop="container_name" label="子卷号" show-overflow-tooltip width="210px" />
<el-table-column prop="spec" label="步序" show-overflow-tooltip width="120">
<template slot-scope="scope">
{{ dict.label.subSpec[scope.row.spec] }}
</template>
</el-table-column>
<el-table-column prop="result" label="执行结果" show-overflow-tooltip width="120">
<template slot-scope="scope">
{{ scope.row.result.toString() }}
</template>
</el-table-column>
<el-table-column prop="param" label="执行参数" show-overflow-tooltip width="150" />
<el-table-column prop="msg" label="备注" show-overflow-tooltip width="150" />
<el-table-column prop="create_time" label="创建时间">
<template slot-scope="scope">
{{ new Date(scope.row.create_time).toLocaleString() }}
</template>
</el-table-column>
<el-table-column label="操作">
<template scope="scope">
<el-button
v-if="scope.row.result==false && scope.row.url"
type="danger"
class="filter-item"
size="mini"
icon="el-icon-position"
@click.native.prevent="syncMes(scope.row)"
>同步</el-button>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<span slot="footer" class="dialog-footer">
<el-button @click="dtlVisible = false"> </el-button>
</span>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:before-close="crud.cancelCU"
@@ -445,7 +492,11 @@
prop="container_name"
label="子卷号"
:min-width="flexWidth('container_name',crud.data,'子卷号')"
/>
>
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.row.container_name)">{{ scope.row.container_name }}</el-link>
</template>
</el-table-column>
<el-table-column prop="product_name" label="产品编码" :min-width="flexWidth('product_name',crud.data,'产品描述')" />
<el-table-column
prop="product_description"
@@ -454,7 +505,7 @@
/>
<el-table-column sortable prop="sap_pcsn" label="sap批次" :min-width="flexWidth('sap_pcsn',crud.data,'SAP批次')" />
<el-table-column prop="width" label="产品规格(幅宽)" :min-width="flexWidth('width',crud.data,'产品规格(幅宽)')" />
<el-table-column prop="width_standard" :formatter="crud.formatNum0" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
<el-table-column prop="width_standard" :formatter="crud.formatNum1" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
<el-table-column prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
<el-table-column
prop="mass_per_unit_area"
@@ -595,7 +646,9 @@ import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import { download } from '@/api/data'
import { downloadFile } from '@/utils'
import crudUserStor from "@/views/wms/basedata/st/userStor/userStor";
import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
import crudPastivtquery from '@/views/wms/stat/pastivt/pastivtquery'
import { format } from 'date-fns'
const defaultForm = {
workorder_id: null,
@@ -635,7 +688,7 @@ const defaultForm = {
}
export default {
name: 'Subpackagerelation',
dicts: ['sub_package_relation', 'IS_OR_NOT'],
dicts: ['sub_package_relation', 'IS_OR_NOT', 'subSpec'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
@@ -650,6 +703,8 @@ export default {
},
data() {
return {
dtlVisible: false,
childrenList: [],
permission: {
add: ['admin', 'sub:add'],
edit: ['admin', 'sub:edit'],
@@ -739,6 +794,28 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
toView(data) {
crudPastivtquery.subRecord(data).then(res => {
if (res) {
this.dtlVisible = true
this.childrenList = res
}
})
},
async syncMes(row) {
const url = 'http://10.1.3.36:8081/' + row.url
const response = await fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
headers: {
'Content-Type': 'application/json'
// 'Content-Type': 'application/x-www-form-urlencoded',
},
body: row.param // body 数据类型必须与“Content-Type”头匹配
})
const data = await response.json()
window.alert(JSON.stringify(data))
},
initQuery() {
const end = new Date()
const start = new Date()

View File

@@ -21,6 +21,16 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="子卷编码">
<el-input
v-model="query.container_name"
clearable
placeholder="输入子卷编码"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="点位区域">
<el-select
v-model="query.packageinfo_area"
@@ -125,6 +135,7 @@
v-loading="crud.loading"
:data="crud.data"
size="mini"
:row-style="rowStyle"
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
@@ -142,6 +153,8 @@
</template>
</el-table-column>
<el-table-column prop="container_name" label="子卷编号" width="140px" />
<el-table-column prop="weight" label="子卷毛重" width="100px" />
<el-table-column prop="paper_weight" label="纸管净重" width="100px" />
<el-table-column prop="row_num" label="" width="100px" />
<el-table-column prop="col_num" label="" width="100px" />
<el-table-column prop="depth" label="深浅位" width="100px" />
@@ -184,7 +197,7 @@ const defaultForm = {
qzzno: null,
vehicle_code: null,
point_status: null,
packageinfo_area: null,
packageinfo_area: '3',
sch_packageinfo_status: null,
sort_seq: null,
is_used: null,
@@ -209,6 +222,10 @@ export default {
idField: 'ivt_id',
sort: 'ivt_id,desc',
crudMethod: { ...crudDeliverypointivt },
query: {
packageinfo_area:'3',
size:100
},
optShow: {
add: false,
edit: false,
@@ -239,6 +256,20 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
rowStyle({row,index}){
let backgroun = {}
if (row.container_name!=null && row.update_time!=null && row.update_time!=undefined){
let now = new Date()
let before = new Date(row.update_time)
const diff = now.getTime() - before.getTime();
let min = Math.floor(diff/(1000*60))
console.log(min)
if (min>120){
backgroun.background = 'red';
}
}
return backgroun;
},
hand(value) {
this.crud.toQuery()
}

View File

@@ -488,7 +488,11 @@
<el-table-column v-if="false" prop="workorder_id" label="分切计划标识" />
<el-table-column prop="status" label="状态" :formatter="formatStatusName" />
<el-table-column prop="order_type" label="订单类型" :formatter="formatTypeName" />
<el-table-column prop="mfg_order_name" label="订单号" min-width="140" show-overflow-tooltip />
<el-table-column prop="mfg_order_name" label="订单号" min-width="200" >
<template slot-scope="scope">
<el-link type="primary" @click="toView2(scope.$index, scope.row)">{{ scope.row.mfg_order_name }}</el-link>
</template>
</el-table-column>
<el-table-column prop="container_name" label="子卷号" min-width="140" show-overflow-tooltip />
<el-table-column prop="parent_container_name" label="母卷号" min-width="120" show-overflow-tooltip />
<el-table-column prop="ware_house" label="来源位置" :formatter="formatHouseName" width="120px" />
@@ -557,6 +561,7 @@
<!--分页组件-->
<pagination />
</div>
<tube-dialog2 :dialog-show.sync="showView2" :rowmst="mstrow" @AddChanged="querytable" />
</div>
</template>
@@ -565,8 +570,8 @@ import crudSlittingproductionplan from '@/views/wms/pdm/order/slittingplan/slitt
import CRUD, { crud, form, header, presenter } 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 TubeDialog2 from '@/views/wms/pdm/order/slittingplan/tubeDialog2.vue'
const defaultForm = {
workorder_id: null,
@@ -619,7 +624,7 @@ const defaultForm = {
export default {
name: 'Slittingproductionplan',
dicts: ['product_area', 'order_type', 'cut_product_status', 'ware_house', 'paper_tube_or_frp', 'IS_OR_NOT'],
components: { pagination, crudOperation, rrOperation, udOperation },
components: { pagination, crudOperation, rrOperation, TubeDialog2 },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -640,6 +645,8 @@ export default {
data() {
return {
permission: {},
showView2: false,
mstrow: {},
rules: {
order_type: [
{ required: true, message: '分切订单类型不能为空', trigger: 'blur' }
@@ -679,6 +686,14 @@ export default {
hand() {
this.crud.toQuery()
},
toView2(index, row) {
this.showView2 = true
this.mstrow = row
},
querytable() {
this.$refs.table.clearSelection()
this.crud.toQuery()
},
upMaterFinish() {
const _selectData = this.$refs.table.selection
const data = {

View File

@@ -0,0 +1,131 @@
<template>
<el-dialog
append-to-body
title="订单BOM信息"
:visible.sync="dialogVisible"
destroy-on-close
width="600px"
@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="100px" label-suffix=":">
<el-form-item label="id" prop="id">
<label slot="label">id:</label>
<el-input v-model="form.id" disabled placeholder="系统生成" clearable style="width: 300px" />
</el-form-item>
<el-form-item label="工单号" prop="mfgOrder">
<label slot="label">工单号:</label>
<el-input v-model="form.mfgOrder" disabled clearable style="width: 300px" />
</el-form-item>
<el-form-item label="木箱编码" prop="productName">
<label slot="label">木箱编码:</label>
<el-input v-model="form.productName" disabled clearable style="width: 300px" />
</el-form-item>
<el-form-item label="木箱描述" prop="description">
<el-select
v-model="form.description"
placeholder="木箱描述"
style="width: 400px"
class="filter-item"
clearable
filterable
@change="hand"
>
<el-option
v-for="item in typelist"
:key="item.box_type"
:label="item.box_name"
:value="item.box_type"
/>
</el-select>
</el-form-item>
<el-form-item label="管芯编码" prop="carrierName">
<label slot="label">管芯编码:</label>
<el-input v-model="form.carrierName" disabled clearable style="width: 300px" />
</el-form-item>
<el-form-item label="管芯描述" prop="carrierDescription">
<label slot="label">管芯描述:</label>
<el-input v-model="form.carrierDescription" disabled clearable style="width: 300px" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="close"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudBstIvtStockingivt from '@/views/b_lms/bst/ivt/stockingivt/bstIvtStockingivt'
import crudBoxtype from '@/views/wms/basedata/st/boxType/boxtype'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'TubeDialog2',
components: {},
mixins: [crud()],
props: {
dialogShow: {
type: Boolean,
default: false
},
rowmst: {
type: Object
}
},
data() {
return {
dialogVisible: false,
typelist: [],
form: {},
row: {}
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
},
rowmst: {
handler(newValue) {
this.row = newValue
}
}
},
methods: {
open() {
this.queryTableDtl()
this.getBoxTypes()
},
hand(value) {
this.form.productName = value
},
close() {
this.$emit('update:dialogShow', false)
this.form = {}
this.$emit('AddChanged')
},
getBoxTypes() {
crudBoxtype.getBoxTypes().then(res => {
this.typelist = res
})
},
submit() {
crudBoxtype.confirmBox(this.form).then(res => {
this.typelist = res
this.crud.notify('保存成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.close()
})
},
queryTableDtl() {
crudBstIvtStockingivt.showBom2({ 'mfg_order_name': this.row.mfg_order_name }).then(res => {
this.form = res
})
}
}
}
</script>
<style scoped>
</style>