add:增加组盘,出入库兼容混乱情况,数据库组盘表需要MD5字段需要修改

This commit is contained in:
zhangzq
2025-07-30 20:39:00 +08:00
parent 607c50151c
commit a415f87587
26 changed files with 1008 additions and 348 deletions

View File

@@ -84,8 +84,8 @@
<label slot="label">明&nbsp;&nbsp;细&nbsp;数:</label>
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="" prop="total_qty">
<label slot="label">总&nbsp;&nbsp;&nbsp;量:</label>
<el-form-item label="" prop="total_qty">
<label slot="label">总&nbsp;&nbsp;&nbsp;量:</label>
<el-input-number
v-model="form.total_qty"
:controls="false"
@@ -131,7 +131,7 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip width="150" prop="storagevehicle_code" label="载具编码" />
<el-table-column show-overflow-tooltip width="150" prop="storagevehicle_code" label="批次号" />
<el-table-column show-overflow-tooltip width="150" prop="pcsn" label="批次号" />
<el-table-column show-overflow-tooltip width="150" prop="material_code" label="物料编码" />
<el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" />
@@ -313,7 +313,7 @@ export default {
rows.forEach((item) => {
let same_mater = true
this.form.tableData.forEach((row) => {
if (row.pcsn === item.pcsn) {
if (row.pcsn === item.pcsn && row.material_id === item.material_id && row.storagevehicle_code === item.storagevehicle_code) {
same_mater = false
}
})

View File

@@ -77,12 +77,12 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import DateRangePicker from '@/components/DateRangePicker/index'
import crudRawAssist from '@/views/wms/st/inbill/rawassist'
import group, { getAllGroupInfo } from '@/views/wms/basedata/group/group.js'
const start = new Date()
export default {
name: 'AddDtl',
components: { crudOperation, rrOperation, pagination, DateRangePicker },
components: { crudOperation, rrOperation, pagination, DateRangePicker, group },
cruds() {
return CRUD({
title: '用户',
@@ -149,10 +149,10 @@ export default {
console.log('获取的rows:')
console.log(this.rows)
this.$emit('tableChanged', this.rows)
// crudRawAssist.queryBoxMater(this.rows).then(res => {
// this.rows = res
// this.$emit('tableChanged', this.rows)
// })
group.getAllGroupInfo(this.rows).then(res => {
this.rows = res.content
this.$emit('tableChanged', this.rows)
})
// this.form = this.$options.data().form
}
}

View File

@@ -72,6 +72,20 @@
label="数量"
align="center"
/>
<el-table-column
show-overflow-tooltip
prop="assign_qty"
:formatter="crud.formatNum3"
label="分配数量"
align="center"
/>
<el-table-column
show-overflow-tooltip
prop="unassign_qty"
:formatter="crud.formatNum3"
label="未分配数量"
align="center"
/>
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" align="center" />
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" align="center" />
@@ -155,10 +169,13 @@
:data="form.tableMater"
style="width: 100%;"
max-height="300"
highlight-current-row
@row-click="clcikDisRow"
border
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" />
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具编码" align="center" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column show-overflow-tooltip prop="pcsn" label="批次号" align="center" />
@@ -166,7 +183,7 @@
show-overflow-tooltip
prop="plan_qty"
:formatter="crud.formatNum3"
label="量"
label="量"
align="center"
/>
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center" />
@@ -191,7 +208,6 @@ import crudSectattr from '@/views/wms/basedata/sectattr/sectattr'
import StructDiv from '@/views/wms/pub/StructDialog'
import crudRawAssist, { allDivStruct } from '@/views/wms/st/inbill/rawassist'
import crudPoint from '@/views/wms/sch/point/schBasePoint'
import { getPointList } from '../../sch/point/schBasePoint'
export default {
name: 'DivDialog',
@@ -237,6 +253,7 @@ export default {
sect_val: null,
form: {
dtl_row: null,
dis_row: null,
storage_qty: '',
point_code: null,
checked: true,
@@ -259,7 +276,10 @@ export default {
crudSectattr.getSectCode({ 'stor_id': this.storId }).then(res => {
this.sects = res.content
})
crudPoint.getPointList().then(res => {
const area_type = 'RKQ'
crudPoint.getPointList({ 'region_code': area_type }).then(res => {
this.pointlist = res
})
},
@@ -281,11 +301,15 @@ export default {
crudRawAssist.getIODtl({ 'bill_code': this.form.dtl_row.bill_code }).then(res => {
this.openParam = res
this.form.dtl_row = res[row.index]
this.form.dis_row = null
})
crudRawAssist.getDisDtl(row).then(res => {
this.form.tableMater = res
})
},
clcikDisRow(row, column, event) {
this.form.dis_row = row
},
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex
},
@@ -312,7 +336,6 @@ export default {
},
sectQueryChange(val) {
this.sectProp = val
debugger
if (val.length === 1) {
this.stor_code = val[0]
this.sect_code = ''
@@ -337,8 +360,6 @@ export default {
this.form.tableMater[i].sect_name = row.sect_name
this.form.tableMater.splice(i, 1, this.form.tableMater[i]) // 通过splice 替换数据 触发视图更新
}
this.form.sect_code = this.sect_code
this.form.stor_code = this.stor_code
crudRawAssist.divStruct(this.form).then(res => {
crudRawAssist.getIODtl({ 'bill_code': this.form.dtl_row.bill_code, 'open_flag': '1' }).then(res => {
this.openParam = res
@@ -370,9 +391,12 @@ export default {
this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.form.dis_row) {
this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
// 如果勾选了,直接跳后台
if (this.form.checked) {
debugger
if (!this.sect_code) {
this.crud.notify('请先选择区域!', CRUD.NOTIFICATION_TYPE.INFO)
return
@@ -387,6 +411,7 @@ export default {
crudRawAssist.getDisDtl(this.form.dtl_row).then(res => {
this.form.tableMater = res
this.divBtn = false
this.form.dis_row = null
this.crud.notify('分配货位成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
}).finally(() => {
@@ -405,9 +430,8 @@ export default {
this.crud.notify('不存在载具明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
const flag = this.form.tableMater.some(mater => !mater.struct_code)
if (flag) {
this.crud.notify('明细存在未分配货位!', CRUD.NOTIFICATION_TYPE.INFO)
if (!this.form.dis_row) {
this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
// 如果勾选了,直接跳后台
@@ -417,6 +441,7 @@ export default {
})
crudRawAssist.getDisDtl(this.form.dtl_row).then(res => {
this.form.tableMater = res
this.form.dis_row = null
this.crud.notify('取消分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
})

View File

@@ -69,8 +69,8 @@
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="总量" prop="total_qty">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-form-item label="总量" prop="total_qty">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input-number
v-model="form.total_qty"
:controls="false"
@@ -111,7 +111,7 @@
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column prop="pcsn" label="批次号" width="150" align="center" />
<!-- <el-table-column prop="sap_pcsn" label="SAP批次号" width="150" align="center" />-->
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="量" align="center" />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="量" align="center" />
<el-table-column prop="qty_unit_name" label="单位" align="center" />
<el-table-column prop="source_bill_type" label="源单类型" align="center" width="130px" :formatter="invtypeFormat" />
<el-table-column prop="source_bill_code" label="源单号" align="center" width="130px" />
@@ -139,7 +139,7 @@
<el-table-column prop="pcsn" label="批次号" align="center" width="150" />
<!-- <el-table-column prop="sap_pcsn" label="SAP批次号" align="center" />-->
<el-table-column prop="storagevehicle_code" label="载具号" align="center" />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="量" align="center" />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="量" align="center" />
<el-table-column prop="point_code" label="起始位置" align="center" />
<el-table-column prop="struct_code" label="目的位置" align="center" />
<el-table-column prop="task_code" label="任务号" align="center" />

View File

@@ -181,7 +181,7 @@
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
<el-table-column show-overflow-tooltip prop="create_mode" :formatter="create_modeFormat" label="生成方式" />
<el-table-column label="明细数" align="center" prop="detail_count" />
<el-table-column label="总量" align="center" prop="total_qty">
<el-table-column label="总量" align="center" prop="total_qty">
<template slot-scope="scope">
{{ fun(scope.row.total_qty) }}
</template>

View File

@@ -84,8 +84,8 @@
<label slot="label">明&nbsp;&nbsp;细&nbsp;数:</label>
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="" prop="total_qty">
<label slot="label">总&nbsp;&nbsp;&nbsp;量:</label>
<el-form-item label="" prop="total_qty">
<label slot="label">总&nbsp;&nbsp;&nbsp;量:</label>
<el-input-number
v-model="form.total_qty"
:controls="false"
@@ -110,14 +110,14 @@
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="left"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="addFormDtl()"
>
<el-button
slot="left"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="addFormDtl()"
>
添加单据
</el-button>
<el-button
@@ -126,7 +126,7 @@
type="primary"
icon="el-icon-plus"
size="mini"
@click="addMaterDtl()"
@click="queryDtl()"
>
添加物料
</el-button>
@@ -157,19 +157,13 @@
<span v-show="scope.row.edit">{{ scope.row.pcsn }}</span>
</template>
</el-table-column>
<el-table-column prop="plan_qty" label="出库" width="150" align="center">
<el-table-column prop="plan_qty" label="出库" width="150" align="center">
<template scope="scope">
<el-input-number v-show="!scope.row.edit" v-model="scope.row.plan_qty" :precision="3" :controls="false" :min="1" style="width: 120px" />
<span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>
</template>
</el-table-column>
<el-table-column prop="qty_unit_name" label="单位" align="center" />
<el-table-column prop="source_bill_code" label="源单号" align="center" />
<el-table-column prop="source_bill_type" label="源单类型" align="center">
<template slot-scope="scope">
{{ dict.label.INANDOUT_BILL_TYPE[scope.row.source_bill_type] }}
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center">
<template scope="scope">
<el-input v-model="scope.row.remark" size="mini" />
@@ -186,6 +180,7 @@
<AddDtl :dialog-show.sync="dtlShow" :stor-id="storId" @tableChanged="tableChanged" />
<MaterDialog :dialog-show.sync="materShow" :mater-opt-code.sync="materType" @setMaterValue="setMaterValue" />
<FormDialog :dialog-show.sync="formShow" @setFormValue="setFormValue" />
</el-dialog>
</template>
@@ -194,6 +189,7 @@ import CRUD, { crud, form } from '@crud/crud'
import AddDtl from '@/views/wms/st/outbill/AddDtl'
import MaterDialog from '@/views/wms/pub/MaterDialog'
import FormDialog from '@/views/wms/pm_manage/form_data/FormDialog'
import checkoutbill from '@/views/wms/st/outbill/checkoutbill'
import crudBsrealstorattr from '@/views/wms/basedata/bsrealstorattr/bsrealstorattr'
@@ -222,7 +218,7 @@ export default {
default: false
}
},
dicts: ['io_bill_status', 'ST_QUALITY_SCODE', 'ST_IVT_LEVEL', 'is_used', 'ST_INV_OUT_TYPE', 'INANDOUT_BILL_TYPE'],
dicts: ['io_bill_status', 'ST_QUALITY_SCODE', 'ST_IVT_LEVEL', 'is_used', 'ST_INV_OUT_TYPE'],
data() {
return {
dialogVisible: false,
@@ -322,18 +318,6 @@ export default {
this.nowindex = index
this.nowrow = row
},
addMaterDtl(index, row) {
if (this.form.bill_type === '') {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (this.form.stor_id === '') {
this.crud.notify('请选择仓库!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
this.storId = this.form.stor_id
this.dtlShow = true
},
addFormDtl(index, row) {
if (this.form.bill_type === '') {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
@@ -346,6 +330,18 @@ export default {
this.storId = this.form.stor_id
this.formShow = true
},
queryDtl(index, row) {
if (this.form.bill_type === '') {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (this.form.stor_id === '') {
this.crud.notify('请选择仓库!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
this.storId = this.form.stor_id
this.dtlShow = true
},
tableChanged(rows) {
rows.forEach((item) => {
// 添加plan_qty
@@ -396,7 +392,7 @@ export default {
this.nowrow.plan_qty = data.qty
this.nowrow.qty = data.qty
this.nowrow.source_bill_code = data.code
this.nowrow.source_billdtl_id = data.id
this.nowrow.source_bill_id = data.id
this.nowrow.source_bill_type = data.form_type
this.nowrow.edit = false
this.form.tableData.splice(this.nowindex, 1, this.nowrow) // 通过splice 替换数据 触发视图更新

View File

@@ -76,9 +76,9 @@
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
<el-table-column prop="qty" label="量" :formatter="crud.formatNum3"/>
<el-table-column prop="qty" label="量" :formatter="crud.formatNum3" :min-width="flexWidth('qty',crud.data,'重量')" />
<el-table-column prop="frozen_qty" label="冻结数量" :formatter="crud.formatNum3" :min-width="flexWidth('frozen_qty',crud.data,'冻结数量')" />
<el-table-column prop="qty_unit_name" label="量单位" :min-width="flexWidth('qty_unit_name',crud.data,'量单位')" />
<el-table-column prop="qty_unit_name" label="量单位" :min-width="flexWidth('qty_unit_name',crud.data,'量单位')" />
</el-table>
<!--分页组件-->
<pagination />