服务端入库预约

master
ZR20090193-陈敬勇 2 years ago
parent 9c7474793c
commit e12f5d26aa

@ -45,7 +45,7 @@ export const getDictOption = (code) => {
// return new Promise((resolve, reject) => {
// resolve(getAuthCache(code));
// });
// console.log('缓存', getAuthCache(code))
console.log('缓存', getAuthCache(code))
return getAuthCache(code)
}
return getDictDropDown({ code: code }).then((res) => {

@ -69,7 +69,11 @@
"vue-json-pretty": "^2.0.6",
"vue-router": "^4.0.14",
"vue-types": "^4.1.1",
"xlsx": "^0.18.5"
"xlsx": "^0.18.5",
"vxe-table": "^4.3.9",
"vxe-table-plugin-export-xlsx": "^3.0.4",
"xe-utils": "^3.5.7",
"exceljs": "^4.3.0"
},
"devDependencies": {
"@commitlint/cli": "^16.2.3",

@ -0,0 +1,46 @@
// @ts-ignore
import { request } from '/@/utils/request'
import { DataResult, PageRequest } from '../model/baseModel'
enum Api {
list = '/WmsInPlan/GetWmsInPlanList',
getWmsInPlanGoodslist = '/WmsInPlan/GetWmsInPlanGoodsList',
getInfo = '/WmsInPlan/GetWmsInPlanInfo',
editInfo = '/WmsInPlan/EditWmsInPlanInfo',
submitInfo = '/WmsInPlan/SubmitWmsInPlan',
}
export function getList(data: PageRequest) {
return request<DataResult>({
url: Api.list,
method: 'post',
data,
})
}
export function getInfo(query: { id: string }) {
return request<DataResult>({
url: Api.getInfo,
method: 'get',
params: query,
})
}
export function getWmsInPlanGoodslist(query: { id: string }) {
return request<DataResult>({
url: Api.getWmsInPlanGoodslist,
method: 'get',
params: query,
})
}
export function editInfo(data: any) {
return request<DataResult>({
url: Api.editInfo,
method: 'post',
data,
})
}
export function submitInfo(query: { id: string }) {
return request<DataResult>({
url: Api.submitInfo,
method: 'get',
params: query,
})
}

@ -1,6 +1,8 @@
import type { App } from 'vue'
import { Icon } from './Icon'
import { Button } from './Button'
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'
import {
// Need
Button as AntButton,
@ -105,4 +107,5 @@ export function registerGlobComp(app: App) {
.use(Skeleton)
.use(Cascader)
.use(Rate)
.use(VXETable)
}

@ -135,7 +135,7 @@ export const useUserStore = defineStore({
/**
*
*/
await initDictOptions('storeunit,storageunit_type,notice_status,notice_level')
await initDictOptions('storeunit,storageunit_type,notice_status,notice_level,shifou,kindpkgs')
// const { roles = [] } = userInfo
// if (isArray(roles)) {
// const roleList = roles.map((item) => item.value) as RoleEnum[]

@ -45,10 +45,11 @@ export const getDictOption = (code) => {
// return new Promise((resolve, reject) => {
// resolve(getAuthCache(code));
// });
// console.log('缓存', getAuthCache(code))
console.log('缓存', getAuthCache(code))
return getAuthCache(code)
}
return getDictDropDown({ code: code }).then((res) => {
console.log('api获取', res.data)
setAuthCache(code, res.data)
return res.data
})

@ -0,0 +1,199 @@
<template>
<vxe-grid ref="xGrid" v-bind="gridOptions" />
<!-- :refresh="{ query: loadListData }-->
<!-- <vxe-table-->
<!-- border-->
<!-- show-overflow-->
<!-- keep-source-->
<!-- ref="xTable"-->
<!-- height="500"-->
<!-- :seq-config="tableSeq"-->
<!-- :column-config="{ resizable: true }"-->
<!-- :export-config="{}"-->
<!-- :loading="planGoods.loading"-->
<!-- :mouse-config="{ selected: true }"-->
<!-- :checkbox-config="{ range: true }"-->
<!-- :data="props.dataList"-->
<!-- :keyboard-config="planGoods.tableKeyboardConfig"-->
<!-- :edit-config="{ trigger: 'dblclick', mode: 'cell' }"-->
<!-- @change="onTableChange"-->
<!-- >-->
<!-- <vxe-column type="checkbox" width="60" fixed="left" />-->
<!-- <vxe-column type="seq" width="80" fixed="left">-->
<!-- <template #header>-->
<!-- <span>序号</span>-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column field="goodscode" title="goodscode" :visible="false" />-->
<!-- <vxe-column field="gid" title="gid" :visible="false" />-->
<!-- <vxe-column field="storageunit" title="storageunit" :visible="false" />-->
<!-- <vxe-column field="wmsplanid" title="wmsplanid" :visible="false" />-->
<!-- <vxe-column field="goodsname" title="商品名称" width="250" />-->
<!-- <vxe-column field="goodsmodel" title="规格型号" width="150" />-->
<!-- <vxe-column-->
<!-- field="kgs"-->
<!-- title="毛重(千克)"-->
<!-- width="200"-->
<!-- :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }"-->
<!-- >-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.kgs" type="number" min="0" clearable />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column-->
<!-- field="netweight"-->
<!-- title=" 净重(千克)"-->
<!-- width="150"-->
<!-- :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }"-->
<!-- >-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.netweight" type="number" min="0" clearable />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column-->
<!-- field="cbm"-->
<!-- title="体积"-->
<!-- width="100"-->
<!-- :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }"-->
<!-- >-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.cbm" type="number" min="0" clearable />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column-->
<!-- field="pkgs"-->
<!-- title="件数"-->
<!-- width="100"-->
<!-- :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }"-->
<!-- >-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.pkgs" type="number" min="0" clearable />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column-->
<!-- field="truckno"-->
<!-- title="承运车号"-->
<!-- width="150"-->
<!-- :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }"-->
<!-- >-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.truckno" type="text" />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column-->
<!-- field="drivername"-->
<!-- title="司机"-->
<!-- width="150"-->
<!-- :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }"-->
<!-- >-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.drivername" type="text" />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- <vxe-column field="remark" title="备注" :edit-render="{ autofocus: '.vxe-input&#45;&#45;inner' }">-->
<!-- <template #edit="{ row }">-->
<!-- <vxe-input v-model="row.remark" type="text" />-->
<!-- </template>-->
<!-- </vxe-column>-->
<!-- </vxe-table>-->
</template>
<script lang="ts" setup>
import { defineComponent, reactive, onMounted, ref, unref } from 'vue'
import { VXETable, VxeGridProps, VxeTableInstance, VxeTablePropTypes } from 'vxe-table'
import { getWmsInPlanGoodslist } from '/@/api/wms/wmsinplan'
import { stringIsNull } from '/@/utils/commonUtil'
import { propTypes } from '/@/utils/propTypes'
const goodsFilterData = ref([])
//getTableData()
//
const props = defineProps({
dataList: propTypes.array.def(() => []),
id: propTypes.string,
})
const gridOptions = reactive<VxeGridProps>({
border: true,
height: 500,
align: null,
columnConfig: {
resizable: true,
},
columns: [
// { type: 'seq', width: 50 },
// { field: 'name', title: 'name' },
// { field: 'sex', title: 'sex', showHeaderOverflow: true },
// { field: 'address', title: 'Address', showOverflow: true },
{
title: '序号',
type: 'seq',
fixed: 'left',
width: '50',
align: 'center',
},
{
title: '商品名称',
field: 'goodsname',
width: 200,
fixed: 'left',
},
{
title: '规格型号',
field: 'goodsmodel',
width: 100,
},
{
title: '毛重(千克)',
field: 'kgs',
width: 100,
},
{
title: '净重(千克)',
field: 'netweight',
width: 100,
},
{
title: '体积',
field: 'cbm',
width: 100,
},
{
title: '件数',
field: 'pkgs',
width: 100,
},
{
title: '承运车号',
field: 'truckno',
width: 200,
},
{
title: '司机',
field: 'drivername',
width: 200,
},
{
title: '备注',
field: 'remark',
width: 200,
},
],
toolbarConfig: {},
// data: props.dataList,
proxyConfig: {
ajax: {
// Promise
query: () => {
return new Promise((resolve) => {
setTimeout(() => {
const list = props.dataList
console.log(props.dataList)
resolve(list)
}, 100)
})
},
},
},
})
</script>
<style scoped></style>

@ -0,0 +1,290 @@
<template>
<BasicModal
v-bind="$attrs"
@register="registerModal"
:useWrapper="true"
:title="getTitle"
width="80%"
@ok="handleSave"
>
<BasicForm @register="registerForm">
<template #auditStatusSlot="{ model, field }">
<canvas id="canvas" width="200" height="200"></canvas>
</template>
</BasicForm>
<Divider>预约入库明细</Divider>
<!-- <VxeTableWmsInPlanGoods ref="tableRef" :dataList="dataSource" />-->
<vxe-grid ref="xGrid" v-bind="gridOptions" />
<!--右下角按钮-->
<template #footer>
<a-button
v-show="isUpdate"
@click="handleAudit"
preIcon="ant-design:cloud-upload-outlined"
type="error"
:loading="loading"
style="margin-right: 0.8rem"
>审批</a-button
>
<a-button
@click="closeModal"
preIcon="ant-design:close-outlined"
type="warning"
:loading="loading"
ghost
style="margin-right: 0.8rem"
>取消</a-button
>
</template>
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, computed, unref, h, reactive } from 'vue'
import { BasicModal, useModalInner, useModal } from '/@/components/Modal'
import { BasicForm, useForm } from '/@/components/Form/index'
import { formSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
// import GoodsTypeSelectModal from './GoodsTypeSelectModal.vue'
import chapter from '/@/utils/chapter'
// import VxeTableWmsInPlanGoods from './VxeTableWmsInPlanGoods.vue'
const { notification, createConfirm, createMessage } = useMessage()
import { editInfo, getInfo, submitInfo, getWmsInPlanGoodslist } from '/@/api/wms/wmsinplan'
import { Divider } from 'ant-design-vue'
import { VxeGridProps } from 'vxe-table'
// Emits
const emit = defineEmits(['change', 'update:value', 'success', 'register'])
const isUpdate = ref(true)
const loading = ref(false)
const rowId = ref('')
const dataSource = ref<any[]>([])
const [registerForm, { resetFields, setFieldsValue, validate, updateSchema, getFieldsValue }] =
useForm({
labelWidth: 180,
schemas: formSchema,
showActionButtonGroup: false,
})
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields()
setModalProps({ confirmLoading: false, loading: true })
isUpdate.value = !!data?.isUpdate
if (unref(isUpdate)) {
// setModalProps({ confirmLoading: true });
rowId.value = data.record.wmsplanid
const res: API.DataResult = await getInfo({ id: unref(rowId) })
await loadListData()
if (res.succeeded) {
await setFieldsValue({
...res.data,
})
// console.log(res.data.list)
// data.value = res.data.list
const status = res.data.auditStatus
console.log(status)
if (status === -1) {
chapter('未提交', '高速临空公共服务平台', 'red')
} else if (status === 0) {
chapter('待审批', '高速临空公共服务平台', 'blue')
} else if (status === 1) {
chapter('审核通过', '高速临空公共服务平台', 'green')
} else if (status === 2) {
chapter('审核驳回', '高速临空公共服务平台', 'orange')
}
}
} else {
dataSource.value = []
updateSchema([
{
field: 'divider-audit',
show: unref(isUpdate),
},
{
field: 'auditStatus',
show: unref(isUpdate),
},
{
field: 'auditNote',
show: unref(isUpdate),
},
])
}
setModalProps({ loading: false })
})
const [registerSelectModal, { openModal }] = useModal()
async function loadListData() {
// const { summaryFunc, summaryData } = props;
const res: API.DataResult = await getWmsInPlanGoodslist({ id: unref(rowId) })
console.log(res)
if (res.succeeded) {
dataSource.value = res.data
} else {
dataSource.value = []
}
console.log(dataSource.value)
}
const gridOptions = reactive<VxeGridProps>({
border: true,
height: 500,
align: null,
columnConfig: {
resizable: true,
},
columns: [
{
title: '序号',
type: 'seq',
fixed: 'left',
width: 50,
align: 'center',
},
{
title: '商品名称',
field: 'goodsname',
width: 200,
fixed: 'left',
},
{
title: '规格型号',
field: 'goodsmodel',
width: 100,
},
{
title: '毛重(千克)',
field: 'kgs',
width: 100,
},
{
title: '净重(千克)',
field: 'netweight',
width: 100,
},
{
title: '体积',
field: 'cbm',
width: 100,
},
{
title: '件数',
field: 'pkgs',
width: 100,
},
{
title: '承运车号',
field: 'truckno',
width: 200,
},
{
title: '司机',
field: 'drivername',
width: 200,
},
{
title: '备注',
field: 'remark',
},
],
toolbarConfig: {},
data: dataSource,
// proxyConfig: {
// ajax: {
// // Promise
// query: () => {
// return new Promise((resolve) => {
// setTimeout(() => {
// const list = dataSource.value
// resolve(list)
// }, 100)
// })
// },
// },
// },
})
const closeSelectModal = (data: any) => {
console.log('接收值', data)
setFieldsValue({
goodsTypeGID: data.gid,
goodsTypeName: data.goodsTypeName,
})
}
const getTitle = computed(() => (!unref(isUpdate) ? '预约入库-新增' : '预约入库-审批'))
async function handleSave(exit) {
try {
const values = await validate()
setModalProps({ confirmLoading: true })
loading.value = true
var postData = Object.assign({}, values, { list: dataSource.value })
console.log(postData)
const res: API.DataResult = await editInfo(postData)
console.log(res)
if (res.succeeded) {
notification.success({ message: res.message, duration: 3 })
emit('success')
//
if (!exit) {
await refresh()
}
} else {
notification.error({ message: res.message, duration: 3 })
}
exit && closeModal()
} finally {
loading.value = false
setModalProps({ confirmLoading: false })
}
}
//VxeTable;
// function setValue(data: any) {
// console.log('', data)
// saveData.value = data
// }
async function refresh() {
const res: API.DataResult = await getInfo({ id: unref(rowId) })
await loadListData()
if (res.succeeded) {
await setFieldsValue({
...res.data,
})
const status = res.data.auditStatus
if (status === -1) {
chapter('未提交', '高速临空公共服务平台', 'red')
} else if (status === 0) {
chapter('待审批', '高速临空公共服务平台', 'blue')
} else if (status === 1) {
chapter('审核通过', '高速临空公共服务平台', 'green')
} else if (status === 2) {
chapter('审核驳回', '高速临空公共服务平台', 'orange')
}
}
}
async function handleAudit() {
try {
const values = await validate()
loading.value = true
createConfirm({
iconType: 'warning',
title: '确认审批',
content: '是否确认审批该单据!!!',
onOk: async () => {
// const res: API.DataResult = await submitInfo({ id: unref(rowId) })
// // console.log(res);
// if (res.succeeded) {
// notification.success({ message: res.message, duration: 3 })
// closeModal()
// emit('success')
// } else {
// notification.error({ message: res.message, duration: 3 })
// }
closeModal()
emit('success')
},
})
} finally {
loading.value = false
}
}
</script>

@ -0,0 +1,452 @@
// import { h, ref } from 'vue';
// import { Icon } from '/@/components/Icon';
import { Tag } from 'ant-design-vue'
import { BasicColumn, FormSchema } from '/@/components/Table'
import { formatToDate, formatToDateTime } from '/@/utils/dateUtil';
import dayjs from 'dayjs';
import { getDictOption } from '/@/utils/dictUtil'
import { UploadTypeEnum } from '/@/components/Form/src/Ds/components/DUpload'
import { getGoodsList } from '/@/api/common'
import {VxeGridPropTypes} from "vxe-table";
export const columns: BasicColumn[] = [
{
title: 'wmsplanid',
dataIndex: 'wmsplanid',
ifShow: false,
},
{
title: '委托编号',
dataIndex: 'wmsno',
width: 120,
},
{
title: '客户名称',
dataIndex: 'clientName',
width: 150,
},
{
title: '提单号',
dataIndex: 'mblno',
width: 80,
},
{
title: '合同编号',
dataIndex: 'contractno',
width: 100,
},
{
title: '品名',
dataIndex: 'goodsname',
width: 100,
},
{
title: '承运车辆',
dataIndex: 'truckno',
width: 100,
},
{
title: '预约日期',
dataIndex: 'plantime',
width: 80,
customRender: ({ text }) => {
return formatToDate(text)
},
},
{
title: '包装方式',
dataIndex: 'kindpkgs',
width: 100,
},
{
title: '是否保税',
dataIndex: 'billtype',
width: 40,
customRender: ({ text }) => {
if (text === '0') {
return <Tag color="red"></Tag>
} else if (text === '1') {
return <Tag color="success"></Tag>
}
return text
},
},
{
title: '规格型号',
dataIndex: 'goodsmodel',
width: 80,
},
{
title: '审批状态',
dataIndex: 'auditStatus',
width: 50,
filters: [
{ text: '未提交', value: '-1' },
{ text: '待审批', value: '0' },
{ text: '审核通过', value: '1' },
{ text: '驳回', value: '2' },
],
customRender: ({ text }) => {
if (text === -1) {
return <Tag color="red"></Tag>
} else if (text === 0) {
return <Tag color="blue"></Tag>
} else if (text === 1) {
return <Tag color="success"></Tag>
} else if (text === 2) {
return <Tag color="warning"></Tag>
}
return text
},
},
{
title: '审批备注',
dataIndex: 'auditNote',
width: 80,
},
]
export const listcolumns: BasicColumn[] = [
{
title: 'gid',
dataIndex: 'gid',
ifShow: false,
},
{
title: 'wmsplanid',
dataIndex: 'wmsplanid',
ifShow: false,
},
{
title: 'storageunit',
dataIndex: 'storageunit',
ifShow: false,
},
// {
// title: '提单号',
// dataIndex: 'mblno',
// editRow: true,
// width: 80,
// },
{
title: 'goodscode',
dataIndex: 'goodscode',
ifShow: false,
},
{
title: '商品名称',
dataIndex: 'goodsname',
// editComponent: 'Select',
editRow: true,
fixed: 'left',
width: 200,
},
{
title: '规格型号',
dataIndex: 'goodsmodel',
// editComponent: 'Select',
editRow: false,
width: 100,
},
{
title: '毛重(千克)',
dataIndex: 'kgs',
editRow: true,
width: 80,
editComponent: 'InputNumber',
editComponentProps: () => {
return {
min: 0,
}
},
},
{
title: '净重(千克)',
dataIndex: 'netweight',
editRow: true,
width: 80,
editComponent: 'InputNumber',
editComponentProps: () => {
return {
min: 0,
}
},
},
{
title: '体积',
dataIndex: 'cbm',
editRow: true,
width: 80,
editComponent: 'InputNumber',
editComponentProps: () => {
return {
min: 0,
}
},
},
{
title: '件数',
dataIndex: 'pkgs',
editRow: true,
width: 80,
editComponent: 'InputNumber',
editComponentProps: () => {
return {
min: 0,
}
},
},
{
title: '承运车号',
dataIndex: 'truckno',
editRow: true,
editComponent: 'Input',
width: 100,
},
{
title: '司机',
dataIndex: 'drivername',
editRow: true,
editComponent: 'Input',
width: 100,
},
{
title: '备注',
dataIndex: 'remark',
editRow: true,
editComponent: 'Input',
width: 120,
},
]
export const searchFormSchema: FormSchema[] = [
{
field: 'ClientName',
label: '客户名称:',
component: 'Input',
colProps: { span: 8 },
},
{
field: 'MBLNO',
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: 'clientId',
component: 'Input',
defaultValue: '',
show: false,
},
{
field: 'wmsno',
label: '委托编号',
component: 'Input',
colProps: {
span: 8,
},
componentProps: {
disabled: true,
},
},
{
field: 'plantime',
label: '预计日期',
component: 'DatePicker',
required: true,
colProps: {
span: 8,
},
componentProps: {
disabledDate: (current: dayjs.Dayjs) => {
return current && current < dayjs().add(-1, 'day').endOf('day')
},
},
},
{
field: 'mblno',
label: '提单号',
required: true,
component: 'Input',
colProps: {
span: 8,
},
componentProps: {},
},
{
field: 'contractno',
label: '合同编号',
required: true,
component: 'Input',
colProps: {
span: 8,
},
componentProps: {},
},
{
field: 'billtype',
label: '是否保税',
required: true,
component: 'RadioButtonGroup',
defaultValue: '1',
colProps: { span: 8 },
componentProps: {
options: getDictOption('shifou'),
},
},
{
field: 'ruleunit',
label: '申报计量单位',
component: 'RadioButtonGroup',
defaultValue: '吨',
required: true,
colProps: { span: 8 },
componentProps: {
options: getDictOption('storeunit'),
},
},
{
field: 'kindpkgs',
label: '包装方式',
component: 'RadioButtonGroup',
defaultValue: '托盘',
required: true,
colProps: { span: 8 },
componentProps: {
options: getDictOption('kindpkgs'),
},
},
{
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-selects',
component: 'Divider',
label: '报关资料',
colProps: {
span: 24,
},
helpMessage: ['请按要求上传报关单资料!'],
ifShow: ({ values }) => {
return values.billtype === '1' && !!values.wmsplanid
},
},
{
field: 'file',
component: 'DUpload',
helpMessage: '最多上传2个文件',
label: '报关单',
componentProps: {
maxCount: 2,
disabled: true,
fileType: UploadTypeEnum.image,
},
ifShow: ({ values }) => {
return values.billtype === '1' && !!values.wmsplanid
},
},
{
field: 'divider-selects',
component: 'Divider',
label: '审批意见',
colProps: {
span: 24,
},
},
{
field: 'auditStatus',
label: '审批状态',
component: 'Input',
colProps: {
span: 8,
},
slot: 'auditStatusSlot',
},
{
field: 'auditNote',
component: 'InputTextArea',
label: '审核意见',
colProps: {
span: 18,
},
componentProps: {
placeholder: '请填写审核意见',
rows: 4,
},
required: true,
},
{
field: 'status',
component: 'RadioButtonGroup',
label: '审批选项',
defaultValue: 1,
required: true,
colProps: {
span: 18,
},
componentProps: {
placeholder: '请选择状态',
options: [
{ label: '通过', value: 1 },
{ label: '驳回', value: 2 },
],
},
},
]

@ -0,0 +1,130 @@
<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: 'ant-design:fork-outlined',
tooltip: '审批',
color: 'error',
onClick: handleAudit.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
<WmsInPlanModal @register="registerModal" @success="handleSuccess" />
</PageWrapper>
</template>
<script lang="ts" setup>
import { BasicTable, useTable, TableAction, SorterResult } from '/@/components/Table'
import { useModal } from '/@/components/Modal'
import { getList } from '/@/api/wms/wmsinplan'
import { PageWrapper } from '/@/components/Page'
import WmsInPlanModal from './WmsInPlanVxeModal.vue'
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: 'wmsno',
listSortDirection: 1,
})
}
/* 检索字段 */
let condition: API.ConditionItem[] = []
if (!!data.MBLNO) {
condition.push({
FieldName: 'MBLNO',
FieldValue: data.MBLNO,
ConditionalType: 1,
})
}
// /* */
// if (filterInfo === null) {
// } else {
// if (!!filterInfo.userType && filterInfo.userType.length > 0) {
// condition.push({
// FieldName: 'UserType',
// FieldValue: filterInfo.userType.join(),
// ConditionalType: 6,
// })
// }
// if (!!filterInfo.status && filterInfo.status.length > 0) {
// condition.push({
// FieldName: 'Status',
// FieldValue: filterInfo.status.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: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: undefined,
},
})
function handleAudit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
function handleSuccess() {
reload()
}
</script>

@ -1151,6 +1151,31 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
"@fast-csv/format@4.3.5":
version "4.3.5"
resolved "https://registry.yarnpkg.com/@fast-csv/format/-/format-4.3.5.tgz#90d83d1b47b6aaf67be70d6118f84f3e12ee1ff3"
integrity sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==
dependencies:
"@types/node" "^14.0.1"
lodash.escaperegexp "^4.1.2"
lodash.isboolean "^3.0.3"
lodash.isequal "^4.5.0"
lodash.isfunction "^3.0.9"
lodash.isnil "^4.0.0"
"@fast-csv/parse@4.3.6":
version "4.3.6"
resolved "https://registry.yarnpkg.com/@fast-csv/parse/-/parse-4.3.6.tgz#ee47d0640ca0291034c7aa94039a744cfb019264"
integrity sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==
dependencies:
"@types/node" "^14.0.1"
lodash.escaperegexp "^4.1.2"
lodash.groupby "^4.6.0"
lodash.isfunction "^3.0.9"
lodash.isnil "^4.0.0"
lodash.isundefined "^3.0.1"
lodash.uniq "^4.5.0"
"@humanwhocodes/config-array@^0.9.2":
version "0.9.5"
resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7"
@ -1719,6 +1744,11 @@
resolved "https://registry.npmmirror.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199"
integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==
"@types/node@^14.0.1":
version "14.18.37"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.37.tgz#0bfcd173e8e1e328337473a8317e37b3b14fd30d"
integrity sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==
"@types/node@^14.17.1":
version "14.18.21"
resolved "https://registry.npmmirror.com/@types/node/-/node-14.18.21.tgz#0155ee46f6be28b2ff0342ca1a9b9fd4468bef41"
@ -2302,6 +2332,35 @@ archive-type@^4.0.0:
dependencies:
file-type "^4.2.0"
archiver-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2"
integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==
dependencies:
glob "^7.1.4"
graceful-fs "^4.2.0"
lazystream "^1.0.0"
lodash.defaults "^4.2.0"
lodash.difference "^4.5.0"
lodash.flatten "^4.4.0"
lodash.isplainobject "^4.0.6"
lodash.union "^4.6.0"
normalize-path "^3.0.0"
readable-stream "^2.0.0"
archiver@^5.0.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6"
integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==
dependencies:
archiver-utils "^2.1.0"
async "^3.2.3"
buffer-crc32 "^0.2.1"
readable-stream "^3.6.0"
readdir-glob "^1.0.0"
tar-stream "^2.2.0"
zip-stream "^4.1.0"
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@ -2477,6 +2536,11 @@ before-after-hook@^2.2.0:
resolved "https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e"
integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==
big-integer@^1.6.17:
version "1.6.51"
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@ -2541,6 +2605,14 @@ binary-mirror-config@^1:
resolved "https://registry.npmmirror.com/binary-mirror-config/-/binary-mirror-config-1.41.0.tgz#b68032588392bee9262971f977922d075513964b"
integrity sha512-ZiIhR1s6Sv1Fv6qCQqfPjx0Cj86BgFlhqNxZgHkQOWcxJcMbO3mj1iqsuVjowYqJqeZL8e52+IEv7IRnSX6T6w==
binary@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==
dependencies:
buffers "~0.1.1"
chainsaw "~0.1.0"
bl@^1.0.0:
version "1.2.3"
resolved "https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
@ -2549,9 +2621,9 @@ bl@^1.0.0:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"
bl@^4.1.0:
bl@^4.0.3, bl@^4.1.0:
version "4.1.0"
resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
dependencies:
buffer "^5.5.0"
@ -2563,6 +2635,11 @@ bluebird@^3.5.0:
resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bluebird@~3.4.1:
version "3.4.7"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3"
integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@ -2629,7 +2706,7 @@ buffer-alloc@^1.2.0:
buffer-alloc-unsafe "^1.1.0"
buffer-fill "^1.0.0"
buffer-crc32@~0.2.3:
buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
@ -2644,6 +2721,11 @@ buffer-from@^1.0.0:
resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
buffer-indexof-polyfill@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c"
integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==
buffer@^5.2.1, buffer@^5.5.0:
version "5.7.1"
resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
@ -2652,6 +2734,11 @@ buffer@^5.2.1, buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
buffers@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==
builtin-modules@^3.0.0, builtin-modules@^3.1.0:
version "3.3.0"
resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
@ -2777,6 +2864,13 @@ cfb@~1.2.1:
adler-32 "~1.3.0"
crc-32 "~1.2.0"
chainsaw@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==
dependencies:
traverse ">=0.3.0 <0.4"
chalk@^1.0.0, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@ -3028,6 +3122,16 @@ component-emitter@^1.2.1:
resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
compress-commons@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d"
integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==
dependencies:
buffer-crc32 "^0.2.13"
crc32-stream "^4.0.2"
normalize-path "^3.0.0"
readable-stream "^3.6.0"
compute-scroll-into-view@^1.0.17:
version "1.0.17"
resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab"
@ -3311,11 +3415,19 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
path-type "^4.0.0"
yaml "^1.10.0"
crc-32@~1.2.0, crc-32@~1.2.1:
crc-32@^1.2.0, crc-32@~1.2.0, crc-32@~1.2.1:
version "1.2.2"
resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
crc32-stream@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
dependencies:
crc-32 "^1.2.0"
readable-stream "^3.4.0"
create-require@^1.1.0:
version "1.1.1"
resolved "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
@ -3471,6 +3583,11 @@ dayjs@^1.10.5, dayjs@^1.11.1:
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz#4754eb694a624057b9ad2224b67b15d552589258"
integrity sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==
dayjs@^1.8.34:
version "1.11.7"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
version "2.6.9"
resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@ -3779,6 +3896,13 @@ download@^7.1.0:
p-event "^2.1.0"
pify "^3.0.0"
duplexer2@~0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==
dependencies:
readable-stream "^2.0.2"
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@ -3834,7 +3958,7 @@ encodeurl@~1.0.2:
resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@ -4248,6 +4372,21 @@ etag@^1.8.1:
resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
exceljs@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/exceljs/-/exceljs-4.3.0.tgz#939bc0d4c59c200acadb7051be34d25c109853c4"
integrity sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==
dependencies:
archiver "^5.0.0"
dayjs "^1.8.34"
fast-csv "^4.3.1"
jszip "^3.5.0"
readable-stream "^3.6.0"
saxes "^5.0.1"
tmp "^0.2.0"
unzipper "^0.10.11"
uuid "^8.3.0"
exec-buffer@^3.0.0:
version "3.2.0"
resolved "https://registry.npmmirror.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b"
@ -4395,6 +4534,14 @@ extglob@^2.0.2:
snapdragon "^0.8.1"
to-regex "^3.0.1"
fast-csv@^4.3.1:
version "4.3.6"
resolved "https://registry.yarnpkg.com/fast-csv/-/fast-csv-4.3.6.tgz#70349bdd8fe4d66b1130d8c91820b64a21bc4a63"
integrity sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==
dependencies:
"@fast-csv/format" "4.3.5"
"@fast-csv/parse" "4.3.6"
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@ -4680,6 +4827,16 @@ fsevents@~2.3.2:
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
fstream@^1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==
dependencies:
graceful-fs "^4.1.2"
inherits "~2.0.0"
mkdirp ">=0.5 0"
rimraf "2"
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@ -4859,7 +5016,7 @@ glob-parent@^6.0.1:
dependencies:
is-glob "^4.0.3"
glob@^7.1.3, glob@^7.1.6:
glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.2.3"
resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@ -5304,6 +5461,11 @@ imagemin@^7.0.1:
p-pipe "^3.0.0"
replace-ext "^1.0.0"
immediate@~3.0.5:
version "3.0.6"
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@ -5349,7 +5511,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -5929,6 +6091,16 @@ jsonpointer@^5.0.0:
resolved "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072"
integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==
jszip@^3.5.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2"
integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==
dependencies:
lie "~3.3.0"
pako "~1.0.2"
readable-stream "~2.3.6"
setimmediate "^1.0.5"
junk@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
@ -5975,6 +6147,13 @@ kolorist@^1.5.1:
resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b"
integrity sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==
lazystream@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
dependencies:
readable-stream "^2.0.5"
less@^4.1.2:
version "4.1.3"
resolved "https://registry.npmmirror.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246"
@ -6005,6 +6184,13 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
lie@~3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
dependencies:
immediate "~3.0.5"
lilconfig@2.0.4:
version "2.0.4"
resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
@ -6035,6 +6221,11 @@ lint-staged@12.3.7:
supports-color "^9.2.1"
yaml "^1.10.2"
listenercount@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937"
integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==
listr2@^4.0.1:
version "4.0.5"
resolved "https://registry.npmmirror.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5"
@ -6111,11 +6302,66 @@ lodash.debounce@^4.0.8:
resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
lodash.defaults@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
lodash.difference@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==
lodash.escaperegexp@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==
lodash.flatten@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
lodash.groupby@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1"
integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==
lodash.isboolean@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
lodash.isfunction@^3.0.9:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051"
integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==
lodash.ismatch@^4.4.0:
version "4.4.0"
resolved "https://registry.npmmirror.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==
lodash.isnil@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c"
integrity sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==
lodash.isplainobject@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
lodash.isundefined@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48"
integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
@ -6131,6 +6377,16 @@ lodash.truncate@^4.4.2:
resolved "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
lodash.union@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
@ -6436,6 +6692,13 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
minimatch@^5.1.0:
version "5.1.6"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
dependencies:
brace-expansion "^2.0.1"
minimist-options@4.1.0:
version "4.1.0"
resolved "https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
@ -6450,6 +6713,11 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
minimist@^1.2.6:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
mixin-deep@^1.2.0:
version "1.3.2"
resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@ -6458,6 +6726,13 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
"mkdirp@>=0.5 0":
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
dependencies:
minimist "^1.2.6"
mockjs@^1.1.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz#e6a0c378e91906dbaff20911cc0273b3c7d75b06"
@ -6926,6 +7201,11 @@ p-try@^2.0.0:
resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
pako@~1.0.2:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
param-case@^3.0.4:
version "3.0.4"
resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
@ -7466,6 +7746,35 @@ readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^2.0.2, readable-stream@^2.0.5:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.6.0:
version "3.6.1"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62"
integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readdir-glob@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.2.tgz#b185789b8e6a43491635b6953295c5c5e3fd224c"
integrity sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==
dependencies:
minimatch "^5.1.0"
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@ -7662,16 +7971,16 @@ rfdc@^1.3.0:
resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
rimraf@^2.5.4:
rimraf@2, rimraf@^2.5.4:
version "2.7.1"
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
rimraf@^3.0.2:
rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
dependencies:
glob "^7.1.3"
@ -7757,6 +8066,13 @@ sax@^1.2.4:
resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
saxes@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
dependencies:
xmlchars "^2.2.0"
scroll-into-view-if-needed@^2.2.25:
version "2.2.29"
resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz#551791a84b7e2287706511f8c68161e4990ab885"
@ -7831,6 +8147,11 @@ set-value@^2.0.0, set-value@^2.0.1:
is-plain-object "^2.0.3"
split-string "^3.0.1"
setimmediate@^1.0.5, setimmediate@~1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
shallow-equal@^1.0.0:
version "1.2.1"
resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da"
@ -8501,6 +8822,17 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
tar-stream@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
dependencies:
bl "^4.0.3"
end-of-stream "^1.4.1"
fs-constants "^1.0.0"
inherits "^2.0.3"
readable-stream "^3.1.1"
temp-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
@ -8599,6 +8931,13 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
tmp@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
dependencies:
rimraf "^3.0.0"
to-buffer@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
@ -8658,6 +8997,11 @@ tr46@~0.0.3:
resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
"traverse@>=0.3.0 <0.4":
version "0.3.9"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==
traverse@^0.6.6:
version "0.6.6"
resolved "https://registry.npmmirror.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
@ -8866,6 +9210,22 @@ unset-value@^1.0.0:
has-value "^0.3.1"
isobject "^3.0.0"
unzipper@^0.10.11:
version "0.10.11"
resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e"
integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==
dependencies:
big-integer "^1.6.17"
binary "~0.3.0"
bluebird "~3.4.1"
buffer-indexof-polyfill "~1.0.0"
duplexer2 "~0.1.4"
fstream "^1.0.12"
graceful-fs "^4.2.2"
listenercount "~1.0.1"
readable-stream "~2.3.6"
setimmediate "~1.0.4"
upath@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
@ -8949,6 +9309,11 @@ uuid@^3.0.1, uuid@^3.3.2:
resolved "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.3.0:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v8-compile-cache-lib@^3.0.1:
version "3.0.1"
resolved "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
@ -9245,6 +9610,16 @@ vue@^3.2.33:
"@vue/server-renderer" "3.2.37"
"@vue/shared" "3.2.37"
vxe-table-plugin-export-xlsx@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/vxe-table-plugin-export-xlsx/-/vxe-table-plugin-export-xlsx-3.0.4.tgz#35faabc0791b4e9aa516b78ea3fd45e67314afe4"
integrity sha512-Og/NbXRIb+BS6sJ48oDNVrZnlkcpaCd/zS8JBAZjHLgioWr1Xoob6FEpaeXBebGPPgTumZNUrrBO57JhhYAerA==
vxe-table@^4.3.9:
version "4.3.10"
resolved "https://registry.yarnpkg.com/vxe-table/-/vxe-table-4.3.10.tgz#4156d9542d61997d07c29a06e89208a3adc4825a"
integrity sha512-qxLhA3hiAfxsm8+dbN1n7+FrRwMEzUB/676x67gEb3H63WFWulRvTc88LCe0itMcuYcpy7uZHn5ruRsz0KnorQ==
warning@^4.0.0:
version "4.0.3"
resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
@ -9525,6 +9900,11 @@ write-file-atomic@^4.0.1:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
xe-utils@^3.5.7:
version "3.5.7"
resolved "https://registry.yarnpkg.com/xe-utils/-/xe-utils-3.5.7.tgz#2c885852dfadd5c8beeffdc1f884f8ceb962c669"
integrity sha512-3H+fDBKBR2wLJgyA7k9C/w1Xljx6Maml5ukV0WDY06HjYyGs2FEz6XhcwRCLIDXX4pBP3Gu0nX9DbCeuuRA2Ew==
xlsx@^0.18.5:
version "0.18.5"
resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0"
@ -9538,6 +9918,11 @@ xlsx@^0.18.5:
wmf "~1.0.1"
word "~0.3.0"
xmlchars@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
@ -9617,6 +10002,15 @@ yocto-queue@^0.1.0:
resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zip-stream@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
dependencies:
archiver-utils "^2.1.0"
compress-commons "^4.1.0"
readable-stream "^3.6.0"
zrender@5.3.2:
version "5.3.2"
resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz#f67b11d36d3d020d62411d3bb123eb1c93cccd69"

@ -64,8 +64,8 @@ public class WmsInPlanService:IWmsInPlanService
{
//只能写在Select后面
it.File = planFiles;
it.List = db.Queryable<OP_WMS_IN_PLAN_GOODS>().Select<WmsInPlanGoodsListViewModel>()
.Where(x => x.WMSPLANID == gid).ToList();
// it.List = db.Queryable<OP_WMS_IN_PLAN_GOODS>().Select<WmsInPlanGoodsListViewModel>()
// .Where(x => x.WMSPLANID == gid).ToList();
})
.First();
return DataResult<WmsInPlanInfoViewModel>.Success(data);

@ -3989,3 +3989,21 @@
2023-03-02 15:28:47.3635 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-02 15:28:47.4228 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-client\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-02 15:28:47.4345 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-02 16:12:59.4680 Info AppDomain Shutting down. LogFactory closing...
2023-03-02 16:12:59.5187 Info LogFactory has been closed.
2023-03-02 16:13:49.5555 Info Message Template Auto Format enabled
2023-03-02 16:13:49.5876 Info Loading assembly: NLog.Web.AspNetCore
2023-03-02 16:13:49.8959 Info Adding target FileTarget(Name=allfile)
2023-03-02 16:13:49.8959 Info Adding target FileTarget(Name=ownFile-web)
2023-03-02 16:13:49.9853 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-02 16:13:50.1524 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-client\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-02 16:13:50.1966 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-02 18:05:39.7669 Info AppDomain Shutting down. LogFactory closing...
2023-03-02 18:05:39.8350 Info LogFactory has been closed.
2023-03-03 10:49:06.6569 Info Message Template Auto Format enabled
2023-03-03 10:49:06.7039 Info Loading assembly: NLog.Web.AspNetCore
2023-03-03 10:49:06.9481 Info Adding target FileTarget(Name=allfile)
2023-03-03 10:49:06.9481 Info Adding target FileTarget(Name=ownFile-web)
2023-03-03 10:49:06.9880 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-03 10:49:07.1247 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-client\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-03 10:49:07.1559 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console

@ -16,7 +16,7 @@
<PackageReference Include="FluentValidation.AspNetCore" Version="11.2.2" />
<PackageReference Include="Mapster" Version="7.3.0" />
<PackageReference Include="MiniExcel" Version="1.29.0" />
<PackageReference Include="SqlSugarCore" Version="5.1.0" />
<PackageReference Include="SqlSugarCore" Version="5.1.3.51" />
<PackageReference Include="UAParser" Version="3.1.47" />
</ItemGroup>
@ -35,7 +35,6 @@
<Folder Include="Template\Entity" />
<Folder Include="Template\Interface" />
<Folder Include="Template\Method" />
<Folder Include="WmsModule\Dtos" />
</ItemGroup>
</Project>

@ -0,0 +1,97 @@
using FluentValidation;
namespace DS.WMS.Core.WmsModule.Dtos;
public class WmsInPlanGoodsInput
{
public Guid? GID { get; set; }
/// <summary>
///
/// </summary>
public Guid? WMSPLANID { get; set; }
/// <summary>
///
/// </summary>
public string GOODSCODE { get; set; } = "";
/// <summary>
///
/// </summary>
public string GOODSNAME { get; set; } = "";
/// <summary>
///
/// </summary>
public string GOODSMODEL { get; set; } = "";
/// <summary>
///
/// </summary>
public decimal? KGS { get; set; } = 0;
/// <summary>
///
/// </summary>
public decimal? CBM { get; set; }= 0;
/// <summary>
///
/// </summary>
public decimal? PKGS { get; set; }= 0;
/// <summary>
/// 成交单位/仓储计费单位 库存的收费标准单位
/// </summary>
public string STORAGEUNIT { get; set; } = "";
/// <summary>
///
/// </summary>
public string REMARK { get; set; } = "";
/// <summary>
///
/// </summary>
public decimal? NETWEIGHT { get; set; }= 0;
/// <summary>
///
/// </summary>
public string TRUCKNO { get; set; } = "";
/// <summary>
///
/// </summary>
public string DRIVERNAME { get; set; } = "";
/// <summary>
///
/// </summary>
public string MBLNO { get; set; } = "";
}
/// <summary>
/// 验证
/// </summary>
public class WmsInPlanGoodsInputValidator : AbstractValidator<WmsInPlanGoodsInput>
{
/// <summary>
/// 构造函数
/// </summary>
public WmsInPlanGoodsInputValidator()
{
this.RuleFor(o => o.GOODSCODE)
.NotEmpty().WithName("商品编码");
this.RuleFor(o => o.GOODSNAME)
.NotEmpty().WithName("商品名称");
this.RuleFor(o => o.TRUCKNO)
.NotEmpty().WithName("承运车辆");
}
}

@ -0,0 +1,198 @@
namespace DS.WMS.Core.WmsModule.Dtos;
/// <summary>
/// 预约入库计划列表
/// </summary>
public class WmsInPlanGoodsListViewModel
{
public Guid GID { get; set; }
/// <summary>
///
/// </summary>
public Guid? WMSPLANID { get; set; }
/// <summary>
///
/// </summary>
public string MATERIALNO { get; set; }
/// <summary>
///
/// </summary>
public string GOODSCODE { get; set; }
/// <summary>
///
/// </summary>
public string GOODSNAME { get; set; }
/// <summary>
///
/// </summary>
public string GOODSHSCODE { get; set; }
/// <summary>
///
/// </summary>
public string CNTRNO { get; set; }
/// <summary>
/// 原箱号
/// </summary>
public string OLD_CNTRNO { get; set; }
/// <summary>
///
/// </summary>
public decimal? KGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? CBM { get; set; }
/// <summary>
///
/// </summary>
public decimal? PKGS { get; set; }
/// <summary>
///
/// </summary>
public string KINDPKGS { get; set; }
/// <summary>
/// 成交单位/仓储计费单位 库存的收费标准单位
/// </summary>
public string STORAGEUNIT { get; set; }
/// <summary>
///
/// </summary>
public decimal? STORAGEUNITCOUNT { get; set; }
/// <summary>
///
/// </summary>
public string RULEUNIT { get; set; }
/// <summary>
///
/// </summary>
public decimal? RULEUNITCOUNT { get; set; }
/// <summary>
///
/// </summary>
public string REMARK { get; set; }
/// <summary>
///
/// </summary>
public bool? CUSTOMSINSPECTION { get; set; }
/// <summary>
///
/// </summary>
public bool? STOREHOUSEINSPECTION { get; set; }
/// <summary>
///
/// </summary>
public decimal? NETWEIGHT { get; set; }
/// <summary>
///
/// </summary>
public string SEALNO { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL { get; set; }
/// <summary>
///
/// </summary>
public string CTNALL { get; set; }
/// <summary>
///
/// </summary>
public decimal? RULEPRICE { get; set; }
/// <summary>
///
/// </summary>
public string GOODSLABEL { get; set; }
/// <summary>
///
/// </summary>
public string PALLET { get; set; }
/// <summary>
///
/// </summary>
public string CUSTNO { get; set; }
/// <summary>
///
/// </summary>
public string XH { get; set; }
/// <summary>
///
/// </summary>
public decimal? RULEAMOUNT { get; set; }
/// <summary>
///
/// </summary>
public string DIZHANGID { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL2 { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL3 { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL4 { get; set; }
/// <summary>
///
/// </summary>
public string TRUCKNO { get; set; }
/// <summary>
///
/// </summary>
public string DRIVERNAME { get; set; }
/// <summary>
///
/// </summary>
public string MBLNO { get; set; }
/// <summary>
///
/// </summary>
public decimal? SMALLPKGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? MINPKGS { get; set; }
/// <summary>
/// 前端显示是否可编辑
/// </summary>
public bool EDITABLE { get; set; } = true;
}

@ -0,0 +1,92 @@
using DS.WMS.Core.System.Dtos;
namespace DS.WMS.Core.WmsModule.Dtos;
public class WmsInPlanInfoViewModel
{
public Guid WMSPLANID { get; set; }
/// <summary>
/// 委托编号
/// </summary>
public string WMSNO { get; set; }
/// <summary>
/// 提单号
/// </summary>
public string MBLNO { get; set; }
/// <summary>
/// 合同编号
/// </summary>
public string CONTRACTNO { get; set; }
/// <summary>
///
/// </summary>
public string BILLTYPE { get; set; }
/// <summary>
///
/// </summary>
public string CUSTOMNO { get; set; }
/// <summary>
/// 预计日期
/// </summary>
public DateTime? PLANTIME { get; set; }
/// <summary>
///
/// </summary>
public string TRUCKNO { get; set; } = "";
/// <summary>
///
/// </summary>
public string GOODSNAME { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL { get; set; } = "";
/// <summary>
/// 包装方式
/// </summary>
public string KINDPKGS { get; set; } = "";
/// <summary>
///
/// </summary>
public string CUSTOMERNAME { get; set; }
/// <summary>
/// 备注
/// </summary>
public string REMARK { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public int? AuditStatus { get; set; }
/// <summary>
/// 审批时间
/// </summary>
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审批人
/// </summary>
public string AuditBy { get; set; }
/// <summary>
/// 审批备注
/// </summary>
public string AuditNote { get; set; }
/// <summary>
/// 客户ID
/// </summary>
public string ClientId { get; set; }
/// <summary>
/// 上传文件列表
/// </summary>
public fileinfo[]? File { get; set; }
/// <summary>
/// 计划明细
/// </summary>
public List<WmsInPlanGoodsListViewModel> List{ get; set; }
}

@ -0,0 +1,67 @@
using DS.WMS.Core.System.Dtos;
namespace DS.WMS.Core.WmsModule.Dtos;
public class WmsInPlanInput
{
public Guid? WMSPLANID { get; set; }
/// <summary>
/// 委托编号
/// </summary>
public string WMSNO { get; set; } = "";
/// <summary>
/// 提单号
/// </summary>
public string MBLNO { get; set; } = "";
/// <summary>
/// 合同编号
/// </summary>
public string CONTRACTNO { get; set; } = "";
/// <summary>
/// 预计日期
/// </summary>
public DateTime? PLANTIME { get; set; }
/// <summary>
///
/// </summary>
public string GOODSNAME { get; set; } = "";
/// <summary>
///
/// </summary>
public string GOODSMODEL { get; set; } = "";
/// <summary>
/// 包装方式
/// </summary>
public string KINDPKGS { get; set; } = "";
/// <summary>
///
/// </summary>
public string CUSTOMERNAME { get; set; } = "";
/// <summary>
///
/// </summary>
public string BILLTYPE { get; set; } = "";
/// <summary>
///
/// </summary>
public string CUSTOMNO { get; set; } = "";
/// <summary>
/// 备注
/// </summary>
public string REMARK { get; set; } = "";
/// <summary>
/// 保税单
/// </summary>
public fileinfo[]? File { get; set; }
/// <summary>
/// 计划明细
/// </summary>
public List<WmsInPlanGoodsInput> List{ get; set; }
}

@ -0,0 +1,89 @@
namespace DS.WMS.Core.WmsModule.Dtos;
/// <summary>
/// 预约入库列表
/// </summary>
public class WmsInPlanListViewModel
{
public Guid WMSPLANID { get; set; }
/// <summary>
/// 委托编号
/// </summary>
public string WMSNO { get; set; }
/// <summary>
/// 提单号
/// </summary>
public string MBLNO { get; set; }
/// <summary>
/// 合同编号
/// </summary>
public string CONTRACTNO { get; set; }
/// <summary>
/// 预计日期
/// </summary>
public DateTime? PLANTIME { get; set; }
/// <summary>
///
/// </summary>
public string GOODSNAME { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL { get; set; }
/// <summary>
/// 包装方式
/// </summary>
public string KINDPKGS { get; set; } = "";
/// <summary>
///
/// </summary>
public string TRUCKNO { get; set; }
/// <summary>
///
/// </summary>
public string CUSTOMERNAME { get; set; }
/// <summary>
///
/// </summary>
public string BILLTYPE { get; set; }
/// <summary>
///
/// </summary>
public string CUSTOMNO { get; set; }
/// <summary>
/// 备注
/// </summary>
public string REMARK { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public int? AuditStatus { get; set; }
/// <summary>
/// 审批时间
/// </summary>
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审批人
/// </summary>
public string AuditBy { get; set; }
/// <summary>
/// 审批备注
/// </summary>
public string AuditNote { get; set; }
/// <summary>
/// 客户ID
/// </summary>
public string ClientId { get; set; }
/// <summary>
/// 企业用户名称
/// </summary>
public string ClientName { get; set; }
}

@ -1,6 +1,8 @@
namespace DS.WMS.Core.WmsModule.Entity;
using DS.Module.Core.Data;
public class OP_WMS_IN_PLAN
namespace DS.WMS.Core.WmsModule.Entity;
public class OP_WMS_IN_PLAN:BaseMiddleModel
{
/// <summary>
///
@ -62,7 +64,10 @@ public class OP_WMS_IN_PLAN
///
/// </summary>
public decimal? CBM { get; set; }
/// <summary>
///
/// </summary>
public string TRUCKNO { get; set; }
/// <summary>
///
/// </summary>
@ -103,21 +108,6 @@ public class OP_WMS_IN_PLAN
/// </summary>
public string BSSOURCE { get; set; }
/// <summary>
///
/// </summary>
public string Creator { get; set; }
/// <summary>
///
/// </summary>
public string CreateID { get; set; }
/// <summary>
///
/// </summary>
public DateTime? CreateDate { get; set; }
/// <summary>
///
/// </summary>
@ -133,20 +123,6 @@ public class OP_WMS_IN_PLAN
/// </summary>
public DateTime? TIMEMARK { get; set; }
/// <summary>
///
/// </summary>
public DateTime? ModifyDate { get; set; }
/// <summary>
///
/// </summary>
public string ModifyID { get; set; }
/// <summary>
///
/// </summary>
public string Modifier { get; set; }
/// <summary>
///
@ -252,4 +228,34 @@ public class OP_WMS_IN_PLAN
///
/// </summary>
public decimal? MINPKGS { get; set; }
/// <summary>
///
/// </summary>
public string GOODSMODEL { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public int? AuditStatus { get; set; }
/// <summary>
/// 审批时间
/// </summary>
[SqlSugar.SugarColumn(IsOnlyIgnoreUpdate = true)]
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审批人
/// </summary>
[SqlSugar.SugarColumn(IsOnlyIgnoreUpdate = true)]
public string AuditBy { get; set; }
/// <summary>
/// 审批备注
/// </summary>
[SqlSugar.SugarColumn(IsOnlyIgnoreUpdate = true)]
public string AuditNote { get; set; }
/// <summary>
/// 客户ID
/// </summary>
[SqlSugar.SugarColumn(IsOnlyIgnoreUpdate = true)]
public string ClientId { get; set; }
}

@ -1,6 +1,42 @@
using DS.Module.Core;
using DS.WMS.Core.WmsModule.Dtos;
namespace DS.WMS.Core.WmsModule.Interface;
public interface IWmsInPlanService
{
/// <summary>
/// 列表查询
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
DataResult<List<WmsInPlanListViewModel>> GetListByPage(PageRequest request);
/// <summary>
/// 获取预约入库信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
DataResult<WmsInPlanInfoViewModel> GetWmsInPlanInfo(string id);
/// <summary>
/// 维护预约入库信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
DataResult EditWmsInPlanInfo(WmsInPlanInput model);
// /// <summary>
// /// 审核
// /// </summary>
// /// <param name="id"></param>
// /// <returns></returns>
// public DataResult AuditWmsInPlan(string id);
/// <summary>
/// 获取入库计划明细
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
DataResult GetWmsInPlanGoodsList(string id);
}

@ -1,8 +1,269 @@
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.User;
using DS.WMS.Common.Enum;
using DS.WMS.Core.System.Dtos;
using DS.WMS.Core.System.Entity;
using DS.WMS.Core.WmsModule.Dtos;
using DS.WMS.Core.WmsModule.Entity;
using DS.WMS.Core.WmsModule.Interface;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
namespace DS.WMS.Core.WmsModule.Method;
public class WmsInPlanService:IWmsInPlanService
/// <summary>
///
/// </summary>
public class WmsInPlanService : IWmsInPlanService
{
private readonly IServiceProvider _serviceProvider;
private readonly ISqlSugarClient db;
private readonly IUser user;
/// <summary>
///
/// </summary>
/// <param name="serviceProvider"></param>
public WmsInPlanService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
db = _serviceProvider.GetRequiredService<ISqlSugarClient>();
user = _serviceProvider.GetRequiredService<IUser>();
}
/// <summary>
/// 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public DataResult<List<WmsInPlanListViewModel>> GetListByPage(PageRequest request)
{
var companyId = user.GetCompanyId();
//序列化查询条件
var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
var data = db.Queryable<OP_WMS_IN_PLAN>()
.LeftJoin<OP_YARD_COMPANY>((a, b) => a.ClientId == b.GID.ToString())
.Select((a, b) => new WmsInPlanListViewModel()
{
ClientName = b.DESCRIPTION //手动指定一列在自动映射
},
true)
// .Select<WmsInPlanListViewModel>()
.Where(whereList).Where(a=>a.AuditStatus != AuditStatus.NoAudit.ToEnumInt()).ToQueryPage(request.PageCondition);
return data;
}
public DataResult<WmsInPlanInfoViewModel> GetWmsInPlanInfo(string id)
{
var gid = Guid.Parse(id);
var planFiles = db.Queryable<INFO_FILES>().Where(x => x.PID == gid && x.FILETYPE == "预约入库")
.Select(it => new fileinfo
{
FileName = it.FILENAME,
FilePath = it.IMGPATH
}).ToArray();
var data = db.Queryable<OP_WMS_IN_PLAN>()
.Where(a => a.WMSPLANID == gid)
.Select<WmsInPlanInfoViewModel>()
.Mapper(it =>
{
//只能写在Select后面
it.File = planFiles;
// it.List = db.Queryable<OP_WMS_IN_PLAN_GOODS>().Select<WmsInPlanGoodsListViewModel>()
// .Where(x => x.WMSPLANID == gid).ToList();
})
.First();
return DataResult<WmsInPlanInfoViewModel>.Success(data);
}
public DataResult EditWmsInPlanInfo(WmsInPlanInput model)
{
var companyId = user.GetCompanyId();
if (model.WMSPLANID.ToString().IsNullOrEmpty())
{
return DataResult.Failed("已审核通过,不能修改!");
}
else
{
try
{
var plan = model.MapTo<WmsInPlanInput, OP_WMS_IN_PLAN>();
var gid = plan.WMSPLANID;
var exitInfo = db.Queryable<OP_WMS_IN_PLAN>().First(x => x.WMSPLANID == gid);
if (exitInfo.AuditStatus == (short)AuditStatus.Auditing)
{
return DataResult.Failed("已提交审核,不能修改!");
}
if (exitInfo.AuditStatus == (short)AuditStatus.Approve)
{
return DataResult.Failed("已审核通过,不能修改!");
}
//开启事务
db.Ado.BeginTran();
if (model.List.Count() > 0)
{
var record = model.List.First();
plan.GOODSNAME = record.GOODSNAME;
plan.TRUCKNO = record.TRUCKNO;
plan.GOODSMODEL = record.GOODSMODEL;
}
db.Updateable(plan).IgnoreColumns(ignoreAllNullColumns: true)
.IgnoreColumns(x => new { x.AuditStatus, x.AuditNote }).ExecuteCommand();
#region 处理文件
var infoList = new List<INFO_FILES>();
if (model.File.IsNotNull())
{
#region
//先删除
var existFiles = db.Queryable<INFO_FILES>().Where(x => x.PID == gid && x.FILETYPE == "预约入库")
.Select(n => n.IMGPATH).ToArray();
var planFiles = model.File.Select(x => x.FilePath).ToArray();
IEnumerable<string> delFiles = existFiles.AsQueryable().Except(planFiles);
if (delFiles.Count() > 0)
{
foreach (var item in delFiles)
{
var existInfo = db.Queryable<INFO_FILES>()
.Where(x => x.PID == gid && x.IMGPATH == item).First();
db.Deleteable(existInfo).ExecuteCommand();
}
}
//2.添加新的
IEnumerable<string> addFiles = planFiles.AsQueryable().Except(existFiles);
if (addFiles.Count() > 0)
{
foreach (var item in addFiles)
{
var infoFile = new INFO_FILES
{
GID = Guid.NewGuid(),
PID = gid,
FILENAME = model.File.Where(x => x.FilePath == item).Select(x => x.FileName).First(),
IMGPATH = item,
FILETYPE = "预约入库",
CORPID = user.CompanyId.ToString(),
CreateDate = DateTime.Now,
ModifyDate = DateTime.Now,
UPLOADEMPLY = ""
};
db.Insertable(infoFile).ExecuteCommand();
}
}
#endregion
}
#endregion
#region 处理计划明细
if (model.List.Count() > 0)
{
//先删除 计划明细
var existGoods = db.Queryable<OP_WMS_IN_PLAN_GOODS>().Where(x => x.WMSPLANID == gid)
.Select(n => n.GID.ToString()).ToArray();
var inGoods = model.List.Select(x => x.GID.ToString().ToUpper()).ToArray();
IEnumerable<string> delGoods = existGoods.AsQueryable().Except(inGoods);
if (delGoods.Count() > 0)
{
foreach (var item in delGoods)
{
var existInfo = db.Queryable<OP_WMS_IN_PLAN_GOODS>()
.Where(x => x.WMSPLANID == gid && x.GID == Guid.Parse(item)).First();
db.Deleteable(existInfo).ExecuteCommand();
}
}
//更新 计划明细
var updateList = model.List.Where(x => x.GID != null && !delGoods.Contains(x.GID.ToString()))
.ToList();
foreach (var item in updateList)
{
var detail = item.Adapt<OP_WMS_IN_PLAN_GOODS>();
db.Updateable(detail).ExecuteCommand();
}
//追加 计划明细
var addList = model.List.Where(x => x.GID == null).ToList();
foreach (var item in addList)
{
item.GID = Guid.NewGuid();
item.WMSPLANID = gid;
var detail = item.Adapt<OP_WMS_IN_PLAN_GOODS>();
db.Insertable(detail).ExecuteCommand();
}
}
#endregion
db.Ado.CommitTran();
return DataResult.Successed("更新成功!");
}
catch (Exception ex)
{
db.Ado.RollbackTran();
return DataResult.Failed("更新失败!" + ex);
}
}
}
public DataResult SubmitWmsInPlan(string id)
{
var gid = Guid.Parse(id);
var inPlan = db.Queryable<OP_WMS_IN_PLAN>().First(x => x.WMSPLANID == gid);
if (inPlan.AuditStatus == AuditStatus.Approve.ToEnumInt() ||
inPlan.AuditStatus == AuditStatus.Auditing.ToEnumInt())
{
return DataResult.Failed("审核通过或待审批状态不能提交!");
}
if (inPlan.BILLTYPE == "1")
{
var files = db.Queryable<INFO_FILES>().Where(x => x.PID == gid && x.FILETYPE == "预约入库").ToList();
if (files.Count() == 0)
{
return DataResult.Failed("保税单未上传,不能提交!");
}
}
var goods = db.Queryable<OP_WMS_IN_PLAN_GOODS>().Where(x => x.WMSPLANID == gid).ToList();
if (goods.Count() == 0)
{
return DataResult.Failed("入库计划明细为空,不能提交!");
}
//更新状态为待审批
inPlan.AuditStatus = AuditStatus.Auditing.ToEnumInt();
db.Updateable(inPlan).ExecuteCommand();
return DataResult.Successed("提交成功");
}
public DataResult GetWmsInPlanGoodsList(string id)
{
var data = db.Queryable<OP_WMS_IN_PLAN_GOODS>()
.Select<WmsInPlanGoodsListViewModel>()
.Mapper(it =>
{
//只能写在Select后面
it.EDITABLE = true;
})
.Where(a => a.WMSPLANID == Guid.Parse(id)).ToList();
return DataResult.Successed("查询成功!", data);
}
}

@ -615,6 +615,45 @@
<param name="model"></param>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.Controllers.WmsInPlanController">
<summary>
预约入库
</summary>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsInPlanController.#ctor(DS.WMS.Core.WmsModule.Interface.IWmsInPlanService)">
<summary>
构造函数
</summary>
<param name="invokeService"></param>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsInPlanController.GetWmsInPlanList(DS.Module.Core.PageRequest)">
<summary>
预约入库列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsInPlanController.GetWmsInPlanInfo(System.String)">
<summary>
获取预约入库信息
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsInPlanController.EditWmsInPlanInfo(DS.WMS.Core.WmsModule.Dtos.WmsInPlanInput)">
<summary>
维护预约入库信息
</summary>
<param name="model"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsInPlanController.GetWmsInPlanGoodsList(System.String)">
<summary>
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.DsAppWebInstall">
<summary>
基础服务

@ -0,0 +1,85 @@
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 WmsInPlanController : ApiController
{
private readonly IWmsInPlanService _invokeService;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="invokeService"></param>
public WmsInPlanController(IWmsInPlanService invokeService)
{
_invokeService = invokeService;
}
/// <summary>
/// 预约入库列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("GetWmsInPlanList")]
public DataResult<List<WmsInPlanListViewModel>> GetWmsInPlanList([FromBody] PageRequest request)
{
var res = _invokeService.GetListByPage(request);
return res;
}
/// <summary>
/// 获取预约入库信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("GetWmsInPlanInfo")]
public DataResult<WmsInPlanInfoViewModel> GetWmsInPlanInfo([FromQuery]string id)
{
var res = _invokeService.GetWmsInPlanInfo(id);
return res;
}
/// <summary>
/// 维护预约入库信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Route("EditWmsInPlanInfo")]
public DataResult EditWmsInPlanInfo([FromBody] WmsInPlanInput model)
{
var res = _invokeService.EditWmsInPlanInfo(model);
return res;
}
// /// <summary>
// /// 提交审核
// /// </summary>
// /// <param name="id"></param>
// /// <returns></returns>
// [HttpGet]
// [Route("SubmitWmsInPlan")]
// public DataResult SubmitWmsInPlan([FromQuery]string id)
// {
// var res = _invokeService.SubmitWmsInPlan(id);
// return res;
// }
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("GetWmsInPlanGoodsList")]
public DataResult GetWmsInPlanGoodsList([FromQuery]string id)
{
var res = _invokeService.GetWmsInPlanGoodsList(id);
return res;
}
}

@ -17,7 +17,7 @@
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.11" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Senparc.Weixin.MP" Version="16.18.9" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
</ItemGroup>

@ -3793,3 +3793,57 @@
2023-03-02 14:56:21.8521 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-02 14:56:21.9097 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-02 14:56:21.9097 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-02 16:12:50.2856 Info AppDomain Shutting down. LogFactory closing...
2023-03-02 16:12:50.3369 Info LogFactory has been closed.
2023-03-02 16:13:18.2210 Info Message Template Auto Format enabled
2023-03-02 16:13:18.2617 Info Loading assembly: NLog.Web.AspNetCore
2023-03-02 16:13:18.5433 Info Adding target FileTarget(Name=allfile)
2023-03-02 16:13:18.5599 Info Adding target FileTarget(Name=ownFile-web)
2023-03-02 16:13:18.6099 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-02 16:13:18.7483 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-02 16:13:18.7899 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-02 16:57:28.6891 Info AppDomain Shutting down. LogFactory closing...
2023-03-02 16:57:28.7466 Info LogFactory has been closed.
2023-03-02 17:00:06.2178 Info Message Template Auto Format enabled
2023-03-02 17:00:06.2480 Info Loading assembly: NLog.Web.AspNetCore
2023-03-02 17:00:06.4571 Info Adding target FileTarget(Name=allfile)
2023-03-02 17:00:06.4571 Info Adding target FileTarget(Name=ownFile-web)
2023-03-02 17:00:06.4958 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-02 17:00:06.5783 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-02 17:00:06.6007 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-02 18:06:00.7677 Info AppDomain Shutting down. LogFactory closing...
2023-03-02 18:06:00.7904 Info LogFactory has been closed.
2023-03-03 08:49:22.9858 Info Message Template Auto Format enabled
2023-03-03 08:49:23.0193 Info Loading assembly: NLog.Web.AspNetCore
2023-03-03 08:49:23.2553 Info Adding target FileTarget(Name=allfile)
2023-03-03 08:49:23.2710 Info Adding target FileTarget(Name=ownFile-web)
2023-03-03 08:49:23.3117 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-03 08:49:23.4230 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-03 08:49:23.4474 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-03 09:36:08.2833 Info AppDomain Shutting down. LogFactory closing...
2023-03-03 09:36:08.3535 Info LogFactory has been closed.
2023-03-03 09:38:00.2455 Info Message Template Auto Format enabled
2023-03-03 09:38:00.3090 Info Loading assembly: NLog.Web.AspNetCore
2023-03-03 09:38:00.7821 Info Adding target FileTarget(Name=allfile)
2023-03-03 09:38:00.7968 Info Adding target FileTarget(Name=ownFile-web)
2023-03-03 09:38:00.8767 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-03 09:38:01.0847 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-03 09:38:01.1408 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-03 09:55:52.0753 Info AppDomain Shutting down. LogFactory closing...
2023-03-03 09:55:52.1424 Info LogFactory has been closed.
2023-03-03 09:56:41.2197 Info Message Template Auto Format enabled
2023-03-03 09:56:41.2460 Info Loading assembly: NLog.Web.AspNetCore
2023-03-03 09:56:41.4142 Info Adding target FileTarget(Name=allfile)
2023-03-03 09:56:41.4142 Info Adding target FileTarget(Name=ownFile-web)
2023-03-03 09:56:41.4514 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-03 09:56:41.5284 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-03 09:56:41.5497 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console
2023-03-03 10:04:41.5790 Info AppDomain Shutting down. LogFactory closing...
2023-03-03 10:04:41.5946 Info LogFactory has been closed.
2023-03-03 10:07:29.4296 Info Message Template Auto Format enabled
2023-03-03 10:07:29.4429 Info Loading assembly: NLog.Web.AspNetCore
2023-03-03 10:07:29.5423 Info Adding target FileTarget(Name=allfile)
2023-03-03 10:07:29.5423 Info Adding target FileTarget(Name=ownFile-web)
2023-03-03 10:07:29.5591 Info Adding target ColoredConsoleTarget(Name=console)
2023-03-03 10:07:29.6025 Info Validating config: TargetNames=allfile, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\sdgslk-wms-solution\gslk-wmsapi-service-server\DS.WMS.WebApi\bin\Debug\net6.0\nlog.config
2023-03-03 10:07:29.6025 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: console

Loading…
Cancel
Save