系统优化
parent
e5dd0fdb74
commit
2de319f448
@ -0,0 +1,13 @@
|
|||||||
|
// @ts-ignore
|
||||||
|
import { request } from '/@/utils/request'
|
||||||
|
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||||
|
enum Api {
|
||||||
|
list = '/StoreQuery/GetWmsStoreList',
|
||||||
|
}
|
||||||
|
export function getList(data: PageRequest) {
|
||||||
|
return request<DataResult>({
|
||||||
|
url: Api.list,
|
||||||
|
method: 'post',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
@ -0,0 +1,325 @@
|
|||||||
|
|
||||||
|
import { Tag } from 'ant-design-vue'
|
||||||
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||||
|
import { formatToDate, formatToDateTime } from '/@/utils/dateUtil'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
import { getStoreHouseSelect } from '/@/api/common'
|
||||||
|
export const columns: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: 'wmsphysicsid',
|
||||||
|
dataIndex: 'wmsphysicsid',
|
||||||
|
ifShow: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'wmsid',
|
||||||
|
dataIndex: 'wmsid',
|
||||||
|
ifShow: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '客户名称',
|
||||||
|
dataIndex: 'customername',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '仓库',
|
||||||
|
dataIndex: 'storehousename',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '品名',
|
||||||
|
dataIndex: 'goodsname',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '规格型号',
|
||||||
|
dataIndex: 'goodsmodel',
|
||||||
|
width: 80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '库位',
|
||||||
|
dataIndex: 'areacodename',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '毛重',
|
||||||
|
dataIndex: 'kgs',
|
||||||
|
width: 50,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '体积',
|
||||||
|
dataIndex: 'cbm',
|
||||||
|
width: 50,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '件数',
|
||||||
|
dataIndex: 'pkgs',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '计费数量',
|
||||||
|
dataIndex: 'storageunitcount',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '锁定数量',
|
||||||
|
dataIndex: 'lockstorageunitcount',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '是否保税',
|
||||||
|
dataIndex: 'billtype',
|
||||||
|
width: 60,
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
if (text === '0') {
|
||||||
|
return <Tag color="red">否</Tag>
|
||||||
|
} else if (text === '1') {
|
||||||
|
return <Tag color="success">是</Tag>
|
||||||
|
}
|
||||||
|
return text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '提单号',
|
||||||
|
dataIndex: 'mblno',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '入库日期',
|
||||||
|
dataIndex: 'startdate',
|
||||||
|
width: 80,
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
return formatToDate(text)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'STOREHOUSE',
|
||||||
|
label: '仓库:',
|
||||||
|
component: 'ApiSelect',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
componentProps: {
|
||||||
|
// mode: 'multiple',
|
||||||
|
api: getStoreHouseSelect,
|
||||||
|
resultField: 'data',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'CUSTOMERNAME',
|
||||||
|
label: '客户名称:',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'GOODSNAME',
|
||||||
|
label: '品名:',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'MBLNO',
|
||||||
|
label: '提单号:',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'PinYinCode',
|
||||||
|
label: '助记码:',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const formSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'divider-selects',
|
||||||
|
component: 'Divider',
|
||||||
|
label: '基本信息',
|
||||||
|
colProps: {
|
||||||
|
span: 24,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'wmsplanid',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'corpid',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'clientId',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'goodsowner',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'customername',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'storehouse',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'wmsno',
|
||||||
|
label: '出库单号',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'plantime',
|
||||||
|
label: '预约出库日期',
|
||||||
|
component: 'DatePicker',
|
||||||
|
required: true,
|
||||||
|
defaultValue: dayjs(),
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
disabledDate: (current: dayjs.Dayjs) => {
|
||||||
|
return current && current < dayjs().add(-1, 'day').endOf('day')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'customno',
|
||||||
|
label: '出区报关单号',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
componentProps: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'kindpkgs',
|
||||||
|
label: '包装方式',
|
||||||
|
component: 'RadioButtonGroup',
|
||||||
|
defaultValue: '托盘',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 8 },
|
||||||
|
componentProps: {
|
||||||
|
options: [
|
||||||
|
{ label: '包', value: '包' },
|
||||||
|
{ label: '托盘', value: '托盘' },
|
||||||
|
{ label: '散装', value: '散装' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'storehousename',
|
||||||
|
label: '仓库',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
slot: 'storehouseSelectSlot',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'goodsname',
|
||||||
|
label: '商品名称',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'goodsmodel',
|
||||||
|
label: '规格型号',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'truckno',
|
||||||
|
label: '承运车辆',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'remark',
|
||||||
|
label: '备注',
|
||||||
|
component: 'InputTextArea',
|
||||||
|
colProps: { span: 20 },
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '',
|
||||||
|
rows: 4,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'divider-audit',
|
||||||
|
component: 'Divider',
|
||||||
|
label: '审批信息',
|
||||||
|
colProps: {
|
||||||
|
span: 24,
|
||||||
|
},
|
||||||
|
ifShow: ({ values }) => {
|
||||||
|
// return !!(values.auditStatus === -1)
|
||||||
|
return !!values.wmsplanid
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'auditNote',
|
||||||
|
label: '审核意见',
|
||||||
|
component: 'InputTextArea',
|
||||||
|
colProps: { span: 20 },
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
rows: 2,
|
||||||
|
},
|
||||||
|
ifShow: ({ values }) => {
|
||||||
|
return !!values.wmsplanid
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'auditStatus',
|
||||||
|
label: '审核状态',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: -1,
|
||||||
|
colProps: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
ifShow: ({ values }) => {
|
||||||
|
return !!values.wmsplanid
|
||||||
|
},
|
||||||
|
slot: 'auditStatusSlot',
|
||||||
|
},
|
||||||
|
]
|
@ -0,0 +1,152 @@
|
|||||||
|
<template>
|
||||||
|
<PageWrapper contentBackground contentClass="flex" dense contentFullHeight fixedHeight>
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<template #toolbar>
|
||||||
|
</template>
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.key === 'action'">
|
||||||
|
<!-- <TableAction-->
|
||||||
|
<!-- :actions="[-->
|
||||||
|
<!-- {-->
|
||||||
|
<!-- icon: 'clarity:note-edit-line',-->
|
||||||
|
<!-- tooltip: '详情',-->
|
||||||
|
<!-- onClick: handleDetail.bind(null, record),-->
|
||||||
|
<!-- },-->
|
||||||
|
<!-- ]"-->
|
||||||
|
<!-- />-->
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
</PageWrapper>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { BasicTable, useTable, TableAction, SorterResult } from '/@/components/Table'
|
||||||
|
import { useModal } from '/@/components/Modal'
|
||||||
|
import { getList } from './api'
|
||||||
|
import { PageWrapper } from '/@/components/Page'
|
||||||
|
import { columns, searchFormSchema } from './columns'
|
||||||
|
let sortInfo: SorterResult = {}
|
||||||
|
let filterInfo: Partial<Recordable<string[]>> = []
|
||||||
|
const [registerModal, { openModal }] = useModal()
|
||||||
|
const [registerTable, { reload, getForm, getPaginationRef }] = useTable({
|
||||||
|
title: '库存列表',
|
||||||
|
api: async (p) => {
|
||||||
|
const res: API.DataResult = await getList(p)
|
||||||
|
// console.log(items);
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
resolve({ data: [...res.data], total: res.count })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
beforeFetch: () => {
|
||||||
|
var currentPageInfo: any = getPaginationRef()
|
||||||
|
// var data = getForm().getFieldsValue()
|
||||||
|
const postParam: API.PageRequest = {
|
||||||
|
queryCondition: '',
|
||||||
|
pageCondition: {
|
||||||
|
pageIndex: currentPageInfo.current,
|
||||||
|
pageSize: currentPageInfo.pageSize,
|
||||||
|
sortConditions: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
var data = getForm().getFieldsValue()
|
||||||
|
/* 排序字段 */
|
||||||
|
if (!!sortInfo.columnKey) {
|
||||||
|
postParam.pageCondition.sortConditions.push({
|
||||||
|
sortField: sortInfo.field,
|
||||||
|
listSortDirection: sortInfo.order === 'ascend' ? 0 : 1,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
postParam.pageCondition.sortConditions.push({
|
||||||
|
sortField: 'storehouse',
|
||||||
|
listSortDirection: 0,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/* 检索字段 */
|
||||||
|
let condition: API.ConditionItem[] = []
|
||||||
|
if (!!data.GOODSNAME) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'GOODSNAME',
|
||||||
|
FieldValue: data.GOODSNAME,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.CUSTOMERNAME) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'CUSTOMERNAME',
|
||||||
|
FieldValue: data.CUSTOMERNAME,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.STOREHOUSE) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'STOREHOUSE',
|
||||||
|
FieldValue: data.STOREHOUSE,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.MBLNO) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'MBLNO',
|
||||||
|
FieldValue: data.MBLNO,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.PinYinCode) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'PinYinCode',
|
||||||
|
FieldValue: data.PinYinCode,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// /* 筛选字段 */
|
||||||
|
// if (filterInfo === null) {
|
||||||
|
// } else {
|
||||||
|
// // console.log(filterInfo);
|
||||||
|
// // console.log('审核状态' + filterInfo.auditStatus);
|
||||||
|
// if (!!filterInfo.auditStatus && filterInfo.auditStatus.length > 0) {
|
||||||
|
// condition.push({
|
||||||
|
// FieldName: 'AuditStatus',
|
||||||
|
// FieldValue: filterInfo.auditStatus.join(),
|
||||||
|
// ConditionalType: 6,
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
postParam.queryCondition = JSON.stringify(condition)
|
||||||
|
// console.log(postParam);
|
||||||
|
return postParam
|
||||||
|
},
|
||||||
|
columns: columns,
|
||||||
|
sortFn: (sorter) => {
|
||||||
|
// console.log('排序:' + sorter);
|
||||||
|
sortInfo = sorter
|
||||||
|
},
|
||||||
|
filterFn: (filters) => {
|
||||||
|
// console.log('筛选:' + filters);
|
||||||
|
filterInfo = filters
|
||||||
|
},
|
||||||
|
bordered: true,
|
||||||
|
useSearchForm: true,
|
||||||
|
formConfig: {
|
||||||
|
labelWidth: 120,
|
||||||
|
schemas: searchFormSchema,
|
||||||
|
},
|
||||||
|
showTableSetting: true,
|
||||||
|
tableSetting: { fullScreen: true },
|
||||||
|
actionColumn: null,
|
||||||
|
})
|
||||||
|
function handleCreate() {
|
||||||
|
openModal(true, {
|
||||||
|
isUpdate: false,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleDetail(record: Recordable) {
|
||||||
|
openModal(true, {
|
||||||
|
record,
|
||||||
|
isUpdate: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function handleSuccess() {
|
||||||
|
reload()
|
||||||
|
}
|
||||||
|
</script>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,22 @@
|
|||||||
|
namespace DS.WMS.Core.System.Dtos;
|
||||||
|
/// <summary>
|
||||||
|
/// 集合提醒统计
|
||||||
|
/// </summary>
|
||||||
|
public class CollectWarningCount
|
||||||
|
{
|
||||||
|
public int LineDetectionCount { get; set; }= 0;
|
||||||
|
|
||||||
|
public int ThermometryCount { get; set; }= 0;
|
||||||
|
|
||||||
|
public int WmsInPlanCount { get; set; }= 0;
|
||||||
|
|
||||||
|
public int WmsOutPlanCount { get; set; }= 0;
|
||||||
|
|
||||||
|
public int WmsClearanceCount { get; set; }= 0;
|
||||||
|
|
||||||
|
public int GoodsAuditCount { get; set; }= 0;
|
||||||
|
|
||||||
|
public int ClientAuditCount { get; set; } = 0;
|
||||||
|
|
||||||
|
public int ContractCount { get; set; } = 0;
|
||||||
|
}
|
@ -0,0 +1,136 @@
|
|||||||
|
namespace DS.WMS.Core.WmsModule.Dtos;
|
||||||
|
|
||||||
|
public class WmsStoreListPagModel
|
||||||
|
{
|
||||||
|
public Guid WMSPHYSICSID { get; set; }
|
||||||
|
|
||||||
|
public Guid? WMSID { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public string STOREHOUSE { get; set; }
|
||||||
|
|
||||||
|
public string STOREHOUSENAME { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public string AREACODE { get; set; }
|
||||||
|
|
||||||
|
public string AREACODENAME { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public decimal? KGS { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public decimal? CBM { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public decimal? PKGS { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 锁库件数
|
||||||
|
/// </summary>
|
||||||
|
public decimal? LOCKPKGS { get; set; } = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public decimal? MINPKGS { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public string KINDPKGS { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public string STORAGEUNIT { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public decimal? STORAGEUNITCOUNT { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 锁库计费数量
|
||||||
|
/// </summary>
|
||||||
|
public decimal? LOCKSTORAGEUNITCOUNT { get; set; } = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库日期
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? STARTDATE { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// </summary>
|
||||||
|
public decimal? NETWEIGHT { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 客户ID
|
||||||
|
/// </summary>
|
||||||
|
public string ClientId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string BILLTYPE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string CUSTOMERNAME { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string GOODSCODE { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string GOODSHSCODE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string MBLNO { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 规格型号
|
||||||
|
/// </summary>
|
||||||
|
public string GOODSMODEL { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 商品名称
|
||||||
|
/// </summary>
|
||||||
|
public string GOODSNAME { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 助记码
|
||||||
|
/// </summary>
|
||||||
|
public string PinYinCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批次号
|
||||||
|
/// </summary>
|
||||||
|
public string GOODSMODEL2 { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 计费单位类型
|
||||||
|
/// </summary>
|
||||||
|
public string StorageUnitType { get; set; }
|
||||||
|
}
|
@ -0,0 +1,98 @@
|
|||||||
|
using SqlSugar;
|
||||||
|
|
||||||
|
namespace DS.WMS.Core.WmsModule.Entity;
|
||||||
|
|
||||||
|
public class OP_WMS_FEERATE_IN_DETAIL
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:False
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsPrimaryKey = true)]
|
||||||
|
public Guid ID { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public Guid? FEERATEID { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public string FEEMAKETYPE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public string FEENAME { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public string DEFAULTUNIT { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public decimal? FEEPRICE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public byte? FEETYPE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public byte? FEEGRADE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public int? FEESCALE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public decimal? ADDPRICE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public decimal? ENDPRICE { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public string REMARK { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desc:
|
||||||
|
/// Default:
|
||||||
|
/// Nullable:True
|
||||||
|
/// </summary>
|
||||||
|
public string INPUTMODE { get; set; }
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
using DS.Module.Core;
|
||||||
|
using DS.WMS.Core.WmsModule.Dtos;
|
||||||
|
|
||||||
|
namespace DS.WMS.Core.WmsModule.Interface;
|
||||||
|
|
||||||
|
public interface IStoreQueryService
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 查询仓库库存
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public DataResult<List<WmsStoreListPagModel>> GetWmsStoreList(PageRequest request);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
using DS.Module.Core;
|
||||||
|
using DS.Module.Core.Extensions;
|
||||||
|
using DS.Module.UserModule;
|
||||||
|
using DS.WMS.Core.BaseInfo.Entity;
|
||||||
|
using DS.WMS.Core.WmsModule.Dtos;
|
||||||
|
using DS.WMS.Core.WmsModule.Entity;
|
||||||
|
using DS.WMS.Core.WmsModule.Interface;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using SqlSugar;
|
||||||
|
|
||||||
|
namespace DS.WMS.Core.WmsModule.Method;
|
||||||
|
|
||||||
|
public class StoreQueryService:IStoreQueryService
|
||||||
|
{
|
||||||
|
private readonly IServiceProvider _serviceProvider;
|
||||||
|
private readonly ISqlSugarClient db;
|
||||||
|
private readonly IUser user;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="serviceProvider"></param>
|
||||||
|
public StoreQueryService(IServiceProvider serviceProvider)
|
||||||
|
{
|
||||||
|
_serviceProvider = serviceProvider;
|
||||||
|
db = _serviceProvider.GetRequiredService<ISqlSugarClient>();
|
||||||
|
user = _serviceProvider.GetRequiredService<IUser>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查询仓库库存
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public DataResult<List<WmsStoreListPagModel>> GetWmsStoreList(PageRequest request)
|
||||||
|
{
|
||||||
|
var companyId = user.GetCompanyId();
|
||||||
|
//序列化查询条件
|
||||||
|
var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
|
||||||
|
var data = db.Queryable<OP_WMS_PHYSICS>()
|
||||||
|
.LeftJoin<OP_WMS>((a, b) => a.WMSID == b.WMSID)
|
||||||
|
.LeftJoin<OP_WMS_STOREHOUSE>((a, b,c) => a.STOREHOUSE == c.AREACODE)
|
||||||
|
.LeftJoin<OP_WMS_STOREHOUSE_AREA>((a, b,c,d) => a.AREACODE == d.AREACODE)
|
||||||
|
.LeftJoin<code_goods>((a, b,c,d,e) => b.GoodsId == e.GID && e.ISSTOP ==false)
|
||||||
|
.Select((a, b,c,d,e) => new WmsStoreListPagModel()
|
||||||
|
{
|
||||||
|
STORAGEUNITCOUNT = a.STORAGEUNITCOUNT,
|
||||||
|
STOREHOUSENAME = c.AREANAME, //手动指定一列在自动映射
|
||||||
|
AREACODENAME = d.AREANAME
|
||||||
|
},
|
||||||
|
true)
|
||||||
|
// .Select<WmsInPlanListViewModel>()
|
||||||
|
.MergeTable()
|
||||||
|
.Where(whereList).Where(a => a.STORAGEUNITCOUNT+ a.LOCKSTORAGEUNITCOUNT>0).ToQueryPage(request.PageCondition);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
using DS.Module.Core;
|
||||||
|
using DS.WMS.Core.WmsModule.Dtos;
|
||||||
|
using DS.WMS.Core.WmsModule.Interface;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace DS.WMS.WebApi.Controllers;
|
||||||
|
/// <summary>
|
||||||
|
/// 查询模块
|
||||||
|
/// </summary>
|
||||||
|
public class StoreQueryController : ApiController
|
||||||
|
{
|
||||||
|
private readonly IStoreQueryService _invokeService;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="invokeService"></param>
|
||||||
|
public StoreQueryController(IStoreQueryService invokeService)
|
||||||
|
{
|
||||||
|
_invokeService = invokeService;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 查询仓库库存
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[Route("GetWmsStoreList")]
|
||||||
|
public DataResult<List<WmsStoreListPagModel>> GetWmsStoreList([FromBody] PageRequest request)
|
||||||
|
{
|
||||||
|
var res = _invokeService.GetWmsStoreList(request);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue