Browse Source

完善盘点 调拨

zhanglei
guoxing 12 months ago
parent
commit
1d93b4a15e
  1. 10
      yxt-as-ui/src/api/Common/dictcommons.js
  2. 12
      yxt-as-ui/src/api/storage/allocation.js
  3. 6
      yxt-as-ui/src/api/storage/stocktaking.js
  4. 157
      yxt-as-ui/src/views/storage/allocation/allocationAdd.vue
  5. 21
      yxt-as-ui/src/views/storage/allocation/index.vue
  6. 2
      yxt-as-ui/src/views/storage/stocktaking/index.vue
  7. 99
      yxt-as-ui/src/views/storage/stocktaking/stocktakingAdd.vue

10
yxt-as-ui/src/api/Common/dictcommons.js

@ -17,6 +17,16 @@ export function getTypeValueList(data) {
})
}
// 获取所有分公司
export function selectOrgSidList(data) {
return request({
url: '/portal/v1/sysorganization/selectOrgSidList',
method: 'get',
params: data
})
}
// 根据当前登录人orgSidPath(全路径sid)查询分公司
export function getOrgSidByPath(data) {
return request({

12
yxt-as-ui/src/api/storage/allocation.js

@ -25,11 +25,21 @@ export default {
// 初始化
init: function(data) {
return request({
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/' + data,
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/fetchDetailsBySid/' + data,
method: 'get'
});
},
// 调拨
allocation: function(data) {
return request({
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/allocation',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
});
},
// 查询所有商品
getGoods: function(params) {

6
yxt-as-ui/src/api/storage/stocktaking.js

@ -14,7 +14,7 @@ export default {
// 新增、保存
save: function(data) {
return request({
url: '/wms/apiadmin/inventory/wmsinventorycheckbill/save',
url: '/wms/v1/wmsinventorycheckbill/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -24,7 +24,7 @@ export default {
// 初始化
init: function(data) {
return request({
url: '/wms/apiadmin/inventory/wmsinventorycheckbill/' + data,
url: '/wms/v1/wmsinventorycheckbill/fetchDetailsBySid/' + data,
method: 'get'
});
},
@ -42,7 +42,7 @@ export default {
// 盘点
inven: function(params) {
return request({
url: '/wms/apiadmin/inventory/wmsinventory/invenGoodsListPage',
url: '/wms/v1/wmsinventorycheckbill/inven',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }

157
yxt-as-ui/src/views/storage/allocation/allocationAdd.vue

@ -5,7 +5,7 @@
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="settle()">调拨</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="confirm()">调拨</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
@ -70,20 +70,20 @@
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="型号" align="center" />
<el-table-column prop="unit" label="单位" align="center" />
<el-table-column prop="warehouseName" label="仓库" align="center" />
<el-table-column prop="warehouseArea" label="库位" align="center" />
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" />
<el-table-column prop="warehouseRackCode" label="库位" align="center" />
<el-table-column prop="stockCount" label="库存数量" align="center" />
<el-table-column label="调入仓库" align="center">
<el-table-column label="调入仓库" align="center" width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.inWarehouseName" placeholder="请选择" @change="selectWarehouseName">
<el-select v-model="scope.row.inWarehouseName" placeholder="请选择" @change="selectWarehouseName(scope.row,$event)">
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="调入库位" align="center">
<el-table-column label="调入库位" align="center" width="120">
<template slot-scope="scope">
<el-select v-model="scope.row.inWarehouseRackCode" placeholder="请选择" @change="selectWarehouseAreaCode">
<el-select v-model="scope.row.inWarehouseRackCode" placeholder="请选择" @change="selectWarehouseAreaCode(scope.row,$event)">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid">
</el-option>
</el-select>
@ -117,6 +117,10 @@
<script>
import req from '@/api/storage/allocation.js'
import {
getOrgSidByPath,
selectOrgSidList,
} from '@/api/Common/dictcommons'
export default {
data() {
return {
@ -146,7 +150,8 @@
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createDate": "",
"createUserSid":window.sessionStorage.getItem('userSid'),
"createUserSid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"outOrgSid": "",
"inOrgSid": "",
"count": "",
@ -154,32 +159,11 @@
"confirmSid": "",
"confirmName": "",
"finishTime": "",
"useOrgSid": window.sessionStorage.getItem('orgSid'),
"createOrgName": window.sessionStorage.getItem('Orgname'),
"useOrgSid": '',
"wmsInventoryAllocateBillDetailNewList": []
},
rules: {},
orgList: [{
name: "撒记得",
sid: "123"
},
{
name: "阿萨德",
sid: "12323"
},
{
name: "我饿请问请问",
sid: "23423"
},
{
name: "特尔味道",
sid: "1234"
},
{
name: "提问额外撒大声地",
sid: "12324233"
}
],
orgList: [],
warehouseList: [],
warehouseRackList: []
}
@ -260,15 +244,46 @@
}
})
},
selectWarehouseName(val) {
selectWarehouseName(row,val) {
console.log("selectWarehouseName", row);
console.log("selectWarehouseName", val);
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectInOrg', choose)
row.inWarehouseSid= choose[0].sid
row.inWarehouseName = choose[0].warehouseName
this.getWarehouseAreaList(val)
},
selectWarehouseAreaCode(val) {
selectWarehouseAreaCode(row,val) {
console.log("selectWarehouseAreaCode", row);
console.log("selectWarehouseAreaCode", val);
const choose = this.warehouseRackList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectInOrg', choose)
row.inWarehouseRackSid = choose[0].sid
row.inWarehouseRackCode = choose[0].areaCode
},
showAdd() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
selectOrgSidList().then((res) => {
if (res.success) {
console.log("selectOrgSidList", res);
this.orgList = res.data
}
})
this.viewTitle = '【新增】调拨记录'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
@ -276,6 +291,25 @@
this.getWarehouseList()
},
showEdit(row) {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
selectOrgSidList().then((res) => {
if (res.success) {
console.log("selectOrgSidList", res);
this.orgList = res.data
}
})
this.viewTitle = '【修改】调拨记录'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
@ -284,8 +318,8 @@
if (res.success) {
this.formobj = res.data
this.commodityQuery.params.inOrg = this.formobj.inOrgName
this.commodityQuery.params.outOrg = this.formobj.outOrgName
this.commodityQuery.params.inOrg = this.formobj.inOrgName
this.commodityQuery.params.outOrg = this.formobj.outOrgName
}
})
this.getWarehouseList()
@ -320,8 +354,8 @@
"unit": "",
"warehouseSid": "",
"warehouseName": "",
"warehouseAreasid": "",
"warehouseArea": "",
"warehouseRackSid": "",
"warehouseRackCode": "",
"taxPrice": "",
"stockCount": "",
"inWarehouseSid": "",
@ -358,20 +392,25 @@
row.unit = value.unit
row.warehouseName = value.warehouseName
row.warehouseSid = value.warehouseSid
row.warehouseArea = value.warehouseRackCode
row.warehouseAreasid = value.warehouseRackSid
row.warehouseRackCode = value.warehouseRackCode
row.warehouseRackSid = value.warehouseRackSid
row.taxPrice = value.taxPrice
row.stockCount = value.count
row.count = ''
row.amount = ''
// row.count = ''
// row.amount = ''
document.body.click()
this.commodityComputeYHAndXSJE(row, row.count)
},
//
commodityComputeYHAndXSJE(row, val) {
console.log("aaaaaaaaa", row);
console.log("aaaaaaaaa", val);
Number()
row.count = val
if (Number(row.stockCount) < Number(row.count)) {
row.count = ''
row.amount = ''
@ -411,12 +450,12 @@
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.settlement(this.formobj).then((res) => {
req.allocation(this.formobj).then((res) => {
if (res.success) {
this.$message({
showClose: true,
type: 'success',
message: '结算成功'
message: '调拨成功'
})
this.handleReturn('true')
} else {
@ -431,21 +470,21 @@
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": "",
"createDate": "",
"createUserSid": "",
"outOrgSid": "",
"inOrgSid": "",
"count": "",
"amount": "",
"confirmSid": "",
"confirmName": "",
"finishTime": "",
"useOrgSid": "",
"createOrgName": "",
"wmsInventoryAllocateBillDetailNewList": []
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createDate": "",
"createUserSid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"outOrgSid": "",
"inOrgSid": "",
"count": "",
"amount": "",
"confirmSid": "",
"confirmName": "",
"finishTime": "",
"useOrgSid": '',
"wmsInventoryAllocateBillDetailNewList": []
}
this.commodityQuery.params.inOrg = ''
this.commodityQuery.params.outOrg = ''

21
yxt-as-ui/src/views/storage/allocation/index.vue

@ -50,10 +50,15 @@
<el-table-column prop="billNo" label="单据编号" align="center" />
<el-table-column prop="createDate" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人姓名" align="center" />
<el-table-column prop="state" label="完成标志" align="center" />
<!-- <el-table-column prop="state" label="完成标志" align="center" /> -->
<el-table-column label="完成标志" align="center" width="180">
<template slot-scope="scope">
<span>{{scope.row.state=='1'?'未完成':'已完成'}}</span>
</template>
</el-table-column>
<el-table-column prop="finishTime" label="完成时间" align="center" />
<el-table-column prop="outOrg" label="调出门店" align="center" />
<el-table-column prop="inOrg" label="调入门店" align="center" />
<el-table-column prop="outOrgName" label="调出门店" align="center" />
<el-table-column prop="inOrgName" label="调入门店" align="center" />
<el-table-column prop="count" label="调拨数量" align="center" />
<el-table-column prop="amount" label="调拨金额" align="center" />
<el-table-column prop="createOrgName" label="门店" align="center" />
@ -228,6 +233,16 @@
return
}
if(this.selectionList[0].state=='2'){
this.$message({
type: 'warning',
message: "此记录已完成,不可重复编辑。",
showClose: true
})
return
}
this.viewState = 3
this.$refs['divadd'].showEdit(this.selectionList[0])
},

2
yxt-as-ui/src/views/storage/stocktaking/index.vue

@ -218,7 +218,7 @@
return
}
if(this.selectionList[0].checkState!=1){
if(this.selectionList[0].checkState==2){
this.$message({
type: 'warning',
message: "此记录已完成,不可重复编辑。",

99
yxt-as-ui/src/views/storage/stocktaking/stocktakingAdd.vue

@ -25,7 +25,7 @@
<i class="el-icon-delete" @click="commodityDelete(scope.$index)"></i>
</template>
</el-table-column>
<el-table-column label="商品名称" align="center" min-width="200">
<el-table-column label="商品名称" align="center" min-width="180">
<template slot-scope="scope">
<el-popover placement="right" width="900" trigger="click">
<div>
@ -35,7 +35,7 @@
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="型号" align="center" />
<el-table-column prop="unit" label="单位" align="center" />
<el-table-column prop="warehouseName" label="仓库" align="center" />
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" />
<el-table-column prop="warehouseRackCode" label="库位" align="center" />
<el-table-column prop="count" label="账面数量" align="center" />
</el-table>
@ -49,10 +49,10 @@
</el-table-column>
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" />
<el-table-column prop="carModel" label="型号" align="center" />
<el-table-column prop="unit" label="单位" align="center" />
<el-table-column prop="warehouseName" label="仓库" align="center" />
<el-table-column prop="warehouseRackCode" label="位" align="center" />
<el-table-column prop="taxPrice" label="单价" align="center" />
<el-table-column prop="unit" label="单位"width="70" align="center" />
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" />
<el-table-column prop="warehouseRackCode" label="位" align="center" />
<el-table-column prop="cost" label="单价" align="center" />
<el-table-column prop="bookCount" label="账面数量" align="center" />
<el-table-column label="实盘数量" align="center">
<template slot-scope="scope">
@ -61,7 +61,7 @@
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column prop="state" label="状态" align="center" width="100" />
<el-table-column prop="stateValue" label="状态" align="center" width="100" />
<el-table-column prop="profitandlossNumber" label="盈亏数" align="center" width="100" />
<el-table-column prop="profitandlossAmount" label="盈亏金额" align="center" width="100" />
</el-table>
@ -85,6 +85,9 @@
<script>
import req from '@/api/storage/stocktaking.js'
import {
getOrgSidByPath,
} from '@/api/Common/dictcommons'
export default {
data() {
return {
@ -119,8 +122,8 @@
"profitAmount": "",
"lossCount": "",
"lossAmount": "",
"useOrgSid": window.sessionStorage.getItem('orgSid'),
"createOrgSid": window.sessionStorage.getItem('orgSid'),
"useOrgSid": '',
"createOrgSid": '',
"wmsInventoryCheckbillDetailList": [
]
@ -147,7 +150,7 @@
let material = 0
this.formobj.wmsInventoryCheckbillDetailList.forEach((e) => {
if (Number(e.bookCount) < Number(e.realCount)) {
material += (e.realCount - e.bookCount) * e.taxPrice
material += (e.realCount - e.bookCount) * e.cost
}
})
this.formobj.profitAmount = material.toFixed(2)
@ -173,7 +176,7 @@
let material = 0
this.formobj.wmsInventoryCheckbillDetailList.forEach((e) => {
if (Number(e.bookCount) > Number(e.realCount)) {
material += (e.realCount - e.bookCount) * e.taxPrice
material += (e.realCount - e.bookCount) * e.cost
}
})
@ -181,15 +184,36 @@
return material.toFixed(2)
},
},
created() {
},
methods: {
showAdd() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
this.viewTitle = '【新增】盘点记录'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
this.viewTitle = '【修改】盘点记录'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
@ -226,6 +250,7 @@
commodityAdd() {
this.formobj.wmsInventoryCheckbillDetailList.push({
"sid": "",
"stateValue": "",
"state": "",
"billSid": "",
"inventorySid": "",
@ -233,7 +258,7 @@
"warehouseName": "",
"warehouseRackSid": "",
"warehouseRackCode": "",
"taxPrice": "",
"cost": "",
"bookCount": "",
"realCount": "",
"profitandlossNumber": "",
@ -260,19 +285,24 @@
this.formobj.wmsInventoryCheckbillDetailList.splice(index, 1)
},
commodityCurrentChange(value, row) {
row.sid = value.sid
row.goodsName = value.goodsSpuName
console.log('>>>>>>>>>commodityCurrentChange', value)
row.sid = ''
// row.inventorySid = value.sid
row.goodsSpuSid = value.sid
row.goodsSpuName = value.goodsSpuName
row.goodsSkuCode = value.goodsSkuCode
row.goodsSkuOwnSpec = value.goodsSkuOwnSpec
row.carModel = value.goodsSkuOwnSpec
row.unit = value.unit
row.warehouseName = value.warehouseName
row.warehouseSid = value.warehouseSid
row.warehouseRackSid = value.warehouseRackSid
row.warehouseRackCode = value.warehouseRackCode
row.bookCount = value.count
row.taxPrice = value.salesPrice
row.realCount = ""
row.profitandlossNumber = ""
row.profitandlossAmount = ""
row.cost = value.salesPrice
// row.realCount = ""
// row.profitandlossNumber = ""
// row.profitandlossAmount = ""
document.body.click()
},
//
@ -283,23 +313,26 @@
//
if (Number(row.bookCount) == Number(val)) {
row.state = "正常"
row.stateValue = "正常"
row.state = 0
row.profitandlossNumber = "0"
row.profitandlossAmount = "0.00"
}
//
if (Number(row.bookCount) < Number(val)) {
row.state = "盘盈"
row.stateValue = "盘盈"
row.state = 1
row.profitandlossNumber = val - row.bookCount
row.profitandlossAmount = ((val - row.bookCount) * row.taxPrice).toFixed(2)
row.profitandlossAmount = ((val - row.bookCount) * row.cost).toFixed(2)
}
//
if (Number(row.bookCount) > Number(val)) {
row.state = "盘亏"
row.stateValue = "盘亏"
row.state = 2
row.profitandlossNumber = val - row.bookCount
row.profitandlossAmount = ((val - row.bookCount) * row.taxPrice).toFixed(2)
row.profitandlossAmount = ((val - row.bookCount) * row.cost).toFixed(2)
}
},
@ -373,20 +406,20 @@
this.formobj = {
"sid": "",
"remarks": "",
"createBySid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName":window.sessionStorage.getItem('name'),
"createDate": "",
"createUserSid": "",
"createByName": "",
"createUserSid": window.sessionStorage.getItem('userSid'),
"checkType": "",
"checkState": "",
"profitCount": "",
"profitAmount": "",
"lossCount": "",
"lossAmount": "",
"useOrgSid": "",
"createOrgName": "",
"createOrgSid": "",
"wmsInventoryCheckbillDetailList": []
"useOrgSid": '',
"createOrgSid": '',
"wmsInventoryCheckbillDetailList": [
]
}
this.submitdisabled = false
this.settleVisible = false

Loading…
Cancel
Save