feat(inventory): 新增服务类入库功能支持
- 在入库单界面增加产品类型和入库类型的字典标签显示 - 添加订单选择对话框组件,用于服务类入库关联订单信息 - 实现服务类入库与普通入库的界面切换逻辑 - 优化入库单详情展示,区分服务类和普通产品信息列表 - 后端增加warehouseType字段支持并完善数据查询逻辑 - 前端增加isServiceIn标识控制不同入库类型的表单展示 - 引入订单选择弹窗组件及相应API依赖 - 调整页面样式以适应新增内容的布局需求master
parent
a94ede8b40
commit
d579a27562
|
|
@ -55,12 +55,22 @@
|
||||||
|
|
||||||
<!-- 数据表格 -->
|
<!-- 数据表格 -->
|
||||||
<el-table v-loading="loading" :data="innerList">
|
<el-table v-loading="loading" :data="innerList">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="index" width="55" align="center" label="序号" />
|
||||||
|
<el-table-column label="产品类型" align="center" prop="productType" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.product_type" :value="scope.row.productType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="入库单号" align="center" prop="innerCode" show-overflow-tooltip/>
|
<el-table-column label="入库单号" align="center" prop="innerCode" show-overflow-tooltip/>
|
||||||
<el-table-column label="采购单号" align="center" prop="purchaseNo" show-overflow-tooltip/>
|
<el-table-column label="采购单号" align="center" prop="purchaseNo" show-overflow-tooltip/>
|
||||||
<el-table-column label="产品编码" align="center" prop="productCode" show-overflow-tooltip/>
|
<el-table-column label="产品编码" align="center" prop="productCode" show-overflow-tooltip/>
|
||||||
<el-table-column label="数量" align="center" prop="quantity" />
|
<el-table-column label="数量" align="center" prop="quantity" />
|
||||||
<el-table-column label="制造商" align="center" prop="vendorName" show-overflow-tooltip/>
|
<el-table-column label="制造商" align="center" prop="vendorName" show-overflow-tooltip/>
|
||||||
|
<el-table-column label="入库类型" align="center" prop="warehouseType" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.warehouse_type" :value="scope.row.warehouseType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="入库仓" align="center" prop="warehouseName" show-overflow-tooltip/>
|
<el-table-column label="入库仓" align="center" prop="warehouseName" show-overflow-tooltip/>
|
||||||
<el-table-column label="经办人" align="center" prop="createByName" />
|
<el-table-column label="经办人" align="center" prop="createByName" />
|
||||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/>
|
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/>
|
||||||
|
|
@ -80,6 +90,7 @@
|
||||||
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
|
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
|
||||||
|
|
||||||
<purchase-order-select-dialog :visible.sync="purchaseOrderSelectVisible" :productTypeList="queryProductType" @select="handlePurchaseOrderSelect"/>
|
<purchase-order-select-dialog :visible.sync="purchaseOrderSelectVisible" :productTypeList="queryProductType" @select="handlePurchaseOrderSelect"/>
|
||||||
|
<order-select-dialog :visible.sync="orderSelectVisible" @select="handleOrderSelect"/>
|
||||||
|
|
||||||
<!-- 新增/修改 Dialog -->
|
<!-- 新增/修改 Dialog -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body :close-on-click-modal="false">
|
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body :close-on-click-modal="false">
|
||||||
|
|
@ -145,11 +156,29 @@
|
||||||
<el-input v-model="form.vendorName" readonly/>
|
<el-input v-model="form.vendorName" readonly/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<template v-if="isServiceIn">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="合同编号" prop="orderCode">
|
||||||
|
<el-input v-model="form.orderCode" readonly @click.native="orderSelectVisible = true"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
|
<el-input v-model="form.projectCode" readonly/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
|
<el-input v-model="form.projectName" readonly/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24"><h3>产品信息</h3></el-col>
|
<el-col :span="24"><h3>产品信息</h3></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="10" class="mb8">
|
<template v-if="!isServiceIn">
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="info" plain icon="el-icon-plus" @click="handleProductAddNew('add')">添加</el-button>
|
<el-button type="info" plain icon="el-icon-plus" @click="handleProductAddNew('add')">添加</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -166,16 +195,18 @@
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="info" plain icon="el-icon-download" @click="handleDownloadTemplate">下载模板</el-button>
|
<el-button type="info" plain icon="el-icon-download" @click="handleDownloadTemplate">下载模板</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
<el-table :data="form.inventoryInfoList">
|
<el-table :data="form.inventoryInfoList">
|
||||||
<el-table-column type="index" label="序号"/>
|
<template v-if="!isServiceIn">
|
||||||
|
<el-table-column type="index" label="序号"/>
|
||||||
<el-table-column label="SN码" prop="productSn" />
|
<el-table-column label="SN码" prop="productSn" />
|
||||||
<el-table-column label="产品编码" prop="productCode" />
|
<el-table-column label="产品编码" prop="productCode" />
|
||||||
<el-table-column label="产品型号" prop="model" />
|
<el-table-column label="产品型号" prop="model" />
|
||||||
<el-table-column label="产品描述" prop="productDesc" width="200" show-overflow-tooltip/>
|
<el-table-column label="产品描述" prop="productDesc" width="200" show-overflow-tooltip/>
|
||||||
<!-- <el-table-column label="入库价(含税)" prop="innerPrice" />-->
|
<!-- <el-table-column label="入库价(含税)" prop="innerPrice" />-->
|
||||||
<!-- <el-table-column label="仓库" prop="warehouseName" />-->
|
<!-- <el-table-column label="仓库" prop="warehouseName" />-->
|
||||||
<el-table-column label="操作" align="center">
|
<el-table-column label="操作" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="mini" type="text" icon="el-icon-delete"
|
<el-button size="mini" type="text" icon="el-icon-delete"
|
||||||
|
|
@ -184,6 +215,14 @@
|
||||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleProductDelete(scope.$index)">删除</el-button>
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleProductDelete(scope.$index)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-table-column label="产品编码" prop="productCode"/>
|
||||||
|
<el-table-column label="产品型号" prop="model"/>
|
||||||
|
<el-table-column label="描述" prop="productDesc"/>
|
||||||
|
<el-table-column label="入库价" prop="innerPrice"/>
|
||||||
|
<el-table-column label="数量" prop="quantity"/>
|
||||||
|
</template>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
|
@ -322,13 +361,15 @@ import { getProductByCode } from "@/api/system/product";
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
import {exportProject} from "@/api/project/info";
|
import {exportProject} from "@/api/project/info";
|
||||||
import PurchaseOrderSelectDialog from '../../purchaseorder/components/PurchaseOrderSelectDialog.vue';
|
import PurchaseOrderSelectDialog from '../../purchaseorder/components/PurchaseOrderSelectDialog.vue';
|
||||||
|
import OrderSelectDialog from '../../project/order/components/OrderSelectDialog.vue';
|
||||||
import Dict from "@/views/system/dict/index.vue";
|
import Dict from "@/views/system/dict/index.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Inner",
|
name: "Inner",
|
||||||
components: {
|
components: {
|
||||||
Dict,
|
Dict,
|
||||||
PurchaseOrderSelectDialog
|
PurchaseOrderSelectDialog,
|
||||||
|
OrderSelectDialog,
|
||||||
},
|
},
|
||||||
dicts: ['product_type', 'warehouse_type'],
|
dicts: ['product_type', 'warehouse_type'],
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -409,6 +450,8 @@ export default {
|
||||||
},
|
},
|
||||||
snRange: '',
|
snRange: '',
|
||||||
purchaseOrderSelectVisible: false,
|
purchaseOrderSelectVisible: false,
|
||||||
|
orderSelectVisible: false,
|
||||||
|
isServiceIn: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -482,6 +525,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
|
this.isServiceIn = false;
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
innerCode: null,
|
innerCode: null,
|
||||||
|
|
@ -497,18 +541,37 @@ export default {
|
||||||
handleAdd(type) {
|
handleAdd(type) {
|
||||||
this.reset();
|
this.reset();
|
||||||
if (type==='maintenance'){
|
if (type==='maintenance'){
|
||||||
|
this.isServiceIn = true;
|
||||||
this.queryProductType=['11','22']
|
this.queryProductType=['11','22']
|
||||||
}else{
|
}else{
|
||||||
|
this.isServiceIn = false;
|
||||||
this.queryProductType=['1','2','99']
|
this.queryProductType=['1','2','99']
|
||||||
}
|
}
|
||||||
this.purchaseOrderSelectVisible = true;
|
this.purchaseOrderSelectVisible = true;
|
||||||
},
|
},
|
||||||
|
handleOrderSelect(order) {
|
||||||
|
this.form.orderCode = order.orderCode;
|
||||||
|
this.form.projectCode = order.projectCode;
|
||||||
|
this.form.projectName = order.projectName;
|
||||||
|
},
|
||||||
handlePurchaseOrderSelect(order) {
|
handlePurchaseOrderSelect(order) {
|
||||||
this.form= Object.assign(this.form,order)
|
this.form= Object.assign(this.form,order)
|
||||||
this.form.totalAmount=order.amountTotal
|
this.form.totalAmount=order.amountTotal
|
||||||
const warehouse = this.warehouseOptions.find(w => w.id === this.form.warehouseId);
|
const warehouse = this.warehouseOptions.find(w => w.id === this.form.warehouseId);
|
||||||
this.form.warehouseName = warehouse.warehouseName || '';
|
this.form.warehouseName = warehouse.warehouseName || '';
|
||||||
this.form.warehouseType = warehouse.warehouseType
|
this.form.warehouseType = warehouse.warehouseType
|
||||||
|
if (this.isServiceIn) {
|
||||||
|
this.form.orderCode = null;
|
||||||
|
this.form.inventoryInfoList = [{
|
||||||
|
productCode: order.productCode,
|
||||||
|
model: order.productModel,
|
||||||
|
productDesc: order.productDesc,
|
||||||
|
innerPrice: order.price,
|
||||||
|
quantity: order.quantity,
|
||||||
|
warehouseId: order.warehouseId,
|
||||||
|
}];
|
||||||
|
|
||||||
|
}
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.isView = false;
|
this.isView = false;
|
||||||
this.title = "添加入库单";
|
this.title = "添加入库单";
|
||||||
|
|
@ -769,3 +832,9 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
::v-deep .app-container {
|
||||||
|
max-height: 70vh;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,131 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog title="选择订单" :visible.sync="dialogVisible" width="70%" @close="handleClose">
|
||||||
|
<div class="app-container">
|
||||||
|
<!-- 搜索表单 -->
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
|
||||||
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
|
<el-input v-model="queryParams.projectCode" placeholder="请输入项目编号" clearable size="small" @keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
|
<el-input v-model="queryParams.projectName" placeholder="请输入项目名称" clearable size="small" @keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="合同编号" prop="orderCode">
|
||||||
|
<el-input v-model="queryParams.orderCode" placeholder="请输入合同编号" clearable size="small" @keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="最终客户" prop="customerName">
|
||||||
|
<el-input v-model="queryParams.customerName" placeholder="请输入最终客户" clearable size="small" @keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<!-- 数据表格 -->
|
||||||
|
<el-table v-loading="loading" :data="orderList" @row-click="handleRowClick">
|
||||||
|
<el-table-column label="项目编号" align="center" prop="projectCode"/>
|
||||||
|
<el-table-column label="项目名称" align="center" prop="projectName" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="合同编号" align="center" prop="orderCode" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="最终客户" align="center" prop="customerName" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column label="金额(¥)" align="center" prop="shipmentAmount" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{
|
||||||
|
formatAmount(scope.row.shipmentAmount)
|
||||||
|
}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="订单状态" align="center" prop="orderStatus">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.order_status" :value="scope.row.orderStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listOrder } from "@/api/project/order";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "OrderSelectDialog",
|
||||||
|
dicts: ['order_status'],
|
||||||
|
props: {
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
multiple: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: true,
|
||||||
|
showSearch: true,
|
||||||
|
total: 0,
|
||||||
|
orderList: [],
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
projectCode: null,
|
||||||
|
projectName: null,
|
||||||
|
orderCode: null,
|
||||||
|
customerName: null,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
dialogVisible: {
|
||||||
|
get() {
|
||||||
|
return this.visible;
|
||||||
|
},
|
||||||
|
set(val) {
|
||||||
|
this.$emit('update:visible', val);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
visible(val) {
|
||||||
|
if (val) {
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listOrder(this.queryParams).then(response => {
|
||||||
|
this.orderList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
handleRowClick(row) {
|
||||||
|
this.$emit('select', row);
|
||||||
|
this.dialogVisible = false;
|
||||||
|
},
|
||||||
|
handleClose() {
|
||||||
|
this.resetQuery();
|
||||||
|
},
|
||||||
|
formatAmount(value) {
|
||||||
|
if (value === null || value === undefined || value === '') return '0.00';
|
||||||
|
return Number(value).toLocaleString('en-US', {
|
||||||
|
minimumFractionDigits: 2,
|
||||||
|
maximumFractionDigits: 2
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
@ -111,7 +111,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
:total="total"
|
:total="total"
|
||||||
|
|
@ -200,7 +200,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listProduct, getProduct, delProduct, addProduct, updateProduct, exportProduct, listAllVendor } from "@/api/system/product";
|
import { listProduct, getProduct, delProduct, addProduct, updateProduct, exportProduct } from "@/api/system/product";
|
||||||
|
import {listAllVendor} from "@/api/base/vendor";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Product",
|
name: "Product",
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ public class OmsInventoryInner extends BaseEntity {
|
||||||
private Long warehouseId;
|
private Long warehouseId;
|
||||||
@Excel(name = "入库仓")
|
@Excel(name = "入库仓")
|
||||||
private String warehouseName;
|
private String warehouseName;
|
||||||
|
private String warehouseType;
|
||||||
@Excel(name = "经办人")
|
@Excel(name = "经办人")
|
||||||
private String createByName;
|
private String createByName;
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,9 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService {
|
||||||
if (CollUtil.isEmpty(inventoryInfoList)) {
|
if (CollUtil.isEmpty(inventoryInfoList)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
omsInventoryInner.setQuantity((long) inventoryInfoList.size());
|
if (!Arrays.asList("11", "22").contains(omsInventoryInner.getProductType())) {
|
||||||
|
omsInventoryInner.setQuantity((long) inventoryInfoList.size());
|
||||||
|
}
|
||||||
List<String> productCodeList = inventoryInfoList.stream().map(InventoryInfo::getProductCode).distinct().filter(StringUtils::isNotEmpty).collect(Collectors.toList());
|
List<String> productCodeList = inventoryInfoList.stream().map(InventoryInfo::getProductCode).distinct().filter(StringUtils::isNotEmpty).collect(Collectors.toList());
|
||||||
if (productCodeList.size() != 1) {
|
if (productCodeList.size() != 1) {
|
||||||
throw new ServiceException("添加产品信息中产品编码不允许多个,导入失败");
|
throw new ServiceException("添加产品信息中产品编码不允许多个,导入失败");
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<sql id="selectOmsInventoryInnerVo">
|
<sql id="selectOmsInventoryInnerVo">
|
||||||
select t1.id, t1.inner_code, t1.product_code, t1.quantity, t1.warehouse_id, t1.create_by, t1.update_by, t1.create_time, t1.update_time ,t1.vendor_code,t1.file_id,t1.remark,
|
select t1.id, t1.inner_code, t1.product_code, t1.quantity, t1.warehouse_id, t1.create_by, t1.update_by, t1.create_time, t1.update_time ,t1.vendor_code,t1.file_id,t1.remark,
|
||||||
t1.purchase_no,t1.product_type,t1.order_code,t1.total_amount,t1.tax_rate,t1.tax_total,
|
t1.purchase_no,t1.product_type,t1.order_code,t1.total_amount,t1.tax_rate,t1.tax_total,
|
||||||
t2.warehouse_name, t3.user_name as create_by_name,
|
t2.warehouse_name, t3.user_name as create_by_name,t2.warehouse_type,
|
||||||
t4.vendor_name,t5.model
|
t4.vendor_name,t5.model
|
||||||
,t6.original_filename
|
,t6.original_filename
|
||||||
from oms_inventory_inner t1
|
from oms_inventory_inner t1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue