dev
ZR20090193-陈敬勇 1 year ago
parent 66e109e853
commit 17b32e9ea8

@ -70,7 +70,7 @@
"vue-router": "^4.0.14",
"vue-types": "^4.1.1",
"xlsx": "^0.18.5",
"vxe-table": "^4.3.9",
"vxe-table": "^4.4.1",
"vxe-table-plugin-export-xlsx": "^3.0.4",
"xe-utils": "^3.5.7",
"exceljs": "^4.3.0"

@ -11,7 +11,7 @@
<BasicForm @register="registerFile" />
<template #actions>
<a-button
v-show="status===-1"
v-show="auditStatus === -1"
@click="customSaveFunc"
type="success"
:loading="loading"
@ -20,7 +20,7 @@
>保存</a-button
>
<a-button
v-show="status===-1"
v-show="auditStatus === -1"
@click="customSubmitFunc"
preIcon="ant-design:cloud-upload-outlined"
type="error"
@ -28,7 +28,7 @@
style="margin-right: 0.8rem"
>提交</a-button
>
<!-- v-show="status===-1"-->
<!-- v-show="status===-1"-->
<!-- <edit-outlined key="edit" />-->
<!-- <ellipsis-outlined key="ellipsis" />-->
</template>
@ -55,7 +55,7 @@
import { useMessage } from '/@/hooks/web/useMessage'
const { notification, createConfirm } = useMessage()
const loading = ref(false)
const status = ref(0)
const auditStatus = ref(0)
const [
registerForm,
{ resetFields, setFieldsValue, validate, updateSchema, getFieldsValue, setProps },
@ -183,7 +183,8 @@
...res.data,
})
const status = res.data.auditStatus
status.value = res.data.auditStatus
auditStatus.value = res.data.auditStatus
// console.log(auditStatus.value)
if (status === -1) {
chapter('未提交', '高速临空公共服务平台', 'red')
} else if (status === 0) {

@ -151,6 +151,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -166,6 +167,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -181,6 +183,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -153,6 +153,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -168,6 +169,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -183,6 +185,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -224,6 +224,7 @@
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
]
}
onMounted(() => {

@ -15,6 +15,7 @@
<vxe-table
border
show-footer
show-overflow
keep-source
ref="xTable"
@ -25,6 +26,7 @@
:loading="planGoods.loading"
:mouse-config="{ selected: true }"
:checkbox-config="{ range: true }"
:footer-method="footerMethod"
:data="props.dataList"
:keyboard-config="planGoods.tableKeyboardConfig"
:edit-config="{ trigger: 'dblclick', mode: 'cell' }"
@ -195,6 +197,16 @@
/>
</template>
</vxe-column>
<vxe-column
field="ruleamount"
title="货值"
width="100"
:edit-render="{ autofocus: '.vxe-input--inner' }"
>
<template #edit="{ row }">
<vxe-input v-model="row.ruleamount" type="number" min="0" clearable />
</template>
</vxe-column>
<!-- <vxe-column-->
<!-- field="storageunit"-->
<!-- title="计费单位"-->
@ -297,6 +309,7 @@
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
]
}
onMounted(() => {
@ -427,6 +440,30 @@
const $table = xTable.value
$table.reloadRow(row, {})
}
const sumNum = (list: any[], field: string) => {
let count = 0
list.forEach((item) => {
count += Number(item[field])
})
return count
}
function footerMethod({ columns, data }) {
const footerData = [
columns.map((column, _columnIndex) => {
if (_columnIndex === 0) {
return '合计'
}
// if (['pkgs'].includes(column.field)) {
// return sumNum(data, 'pkgs')
// }
if (['pkgs','storageunitcount','minpkgs','kgs','netweight'].includes(column.field)) {
return sumNum(data, column.field)
}
return null
}),
]
return footerData
}
const insertEvent = (row: any) => {
const $table = xTable.value
@ -516,6 +553,7 @@
emit('update:value', data)
}
}
</script>
<style scoped></style>

@ -485,6 +485,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -252,6 +252,7 @@
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
]
}
onMounted(() => {

@ -9615,10 +9615,10 @@ vxe-table-plugin-export-xlsx@^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==
vxe-table@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/vxe-table/-/vxe-table-4.4.1.tgz#643af30e8e4801cf41ef3031fd1204080ec4c569"
integrity sha512-yq19+sds2Av625YiS3vpYjdXUN2BFTAyboOT+v5yhi6sroR7WwOnH7jkJ7/Q4U6ZhCDT59u0UOGAPVT27/4OWQ==
warning@^4.0.0:
version "4.0.3"

@ -0,0 +1,192 @@
<template>
<BasicModal
v-bind="$attrs"
@register="registerModal"
:useWrapper="true"
:title="getTitle"
width="40%"
@ok="handleSave"
>
<BasicForm @register="registerForm">
<!-- <template #clientSelectSlot="{ model, field }">-->
<!-- <a-input-search-->
<!-- placeholder="请选择客户"-->
<!-- v-model:value="model[field]"-->
<!-- enter-button-->
<!-- @search="onClientSearch"-->
<!-- />-->
<!-- </template> -->
<template #storehouseSelectSlot="{ model, field }">
<a-input-search
placeholder="请选择仓库"
v-model:value="model[field]"
enter-button
@search="onSearch"
/>
</template>
</BasicForm>
<!--右下角按钮-->
<template #footer>
<a-button
@click="closeModal"
preIcon="ant-design:close-outlined"
type="warning"
:loading="loading"
ghost
style="margin-right: 0.8rem"
>取消</a-button
>
<a-button
@click="handleSave(false)"
type="success"
:loading="loading"
preIcon="ant-design:check-outlined"
style="margin-right: 0.8rem"
>仅保存</a-button
>
<a-button
@click="handleSave(true)"
preIcon="ant-design:check-circle-outlined"
type="primary"
:loading="loading"
>保存并关闭</a-button
>
</template>
<StoreHouseSelectModal @register="registerSelectModal" @success="closeSelectModal" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, computed, unref, h, useAttrs } from 'vue'
import { BasicModal, useModal, useModalInner } from '/@/components/Modal'
import { BasicForm, useForm } from '/@/components/Form/index'
import { formSchema } from './columns'
import { Divider } from 'ant-design-vue'
import { getInfo, editInfo } from './api'
import { useUserStore } from '/@/store/modules/user'
import { useMessage } from '/@/hooks/web/useMessage'
import StoreHouseSelectModal from '/@/views/wms/common/StoreHouseSelectModal.vue'
import { getStoreHouseAreaList } from '/@/api/common'
// Emits
const emit = defineEmits(['success', 'register'])
const isUpdate = ref(true)
const loading = ref(false)
const rowId = ref('')
const storeHouse = ref('')
const dataSource = ref<any[]>([])
const areaList = ref<any[]>([])
const attrs = useAttrs()
const { notification, createConfirm, createMessage } = useMessage()
const [
registerForm,
{ resetFields, setFieldsValue, setProps, 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.id
const res: API.DataResult = await getInfo({ id: unref(rowId) })
if (res.succeeded) {
setFieldsValue({
...res.data,
})
loadAreaListData(res.data.storeHouse)
}
} else {
await updateSchema([
{
field: 'areaCode',
componentProps: {
options: [],
},
},
])
}
setModalProps({ loading: false })
})
const [registerSelectModal, { openModal }] = useModal()
const onSearch = () => {
openModal(true, {})
}
const closeSelectModal = (data: any) => {
console.log('接收值', data)
setFieldsValue({
storeHouse: data.areacode,
storeHouseName: data.areaname,
})
//
loadAreaListData(data.areacode)
}
async function loadAreaListData(code: string) {
const res: API.DataResult = await getStoreHouseAreaList({ code: code })
console.log(res)
if (res.succeeded) {
let temp: any[] = []
res.data.forEach((item) => {
// console.log('', item)
let info = {
label: item.areaname,
value: item.areacode,
}
temp.push(info)
})
areaList.value = temp
} else {
areaList.value = []
}
await updateSchema([
{
field: 'areaCode',
componentProps: {
options: areaList.value,
},
},
])
// console.log(dataSource.value)
}
const getTitle = computed(() => (!unref(isUpdate) ? '库位位置-新增' : '库位位置-编辑'))
async function handleSave(exit) {
try {
const values = await validate()
setModalProps({ confirmLoading: true, loading: true })
loading.value = true
const res: API.DataResult = await editInfo(values)
console.log(res)
if (res.succeeded) {
notification.success({ message: res.message, duration: 3 })
emit('success')
//
if (!exit) {
if (unref(isUpdate)) {
await refresh()
} else {
rowId.value = res.data
isUpdate.value = true
await refresh()
}
}
} else {
notification.error({ message: res.message, duration: 3 })
}
exit && closeModal()
} finally {
loading.value = false
setModalProps({ confirmLoading: false, loading: false })
}
}
async function refresh() {
const res: API.DataResult = await getInfo({ id: unref(rowId) })
if (res.succeeded) {
await setFieldsValue({
...res.data,
})
}
}
</script>

@ -0,0 +1,37 @@
// @ts-ignore
import { request } from '/@/utils/request'
import { DataResult, PageRequest } from '/@/api/model/baseModel'
enum Api {
list = '/WmsStoreAreaPosition/GetAreaPositionList',
getInfo = '/WmsStoreAreaPosition/GetAreaPositionInfo',
editInfo = '/WmsStoreAreaPosition/EditAreaPositionInfo',
delInfo = '/WmsStoreAreaPosition/DelAreaPosition',
}
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 editInfo(data: any) {
return request<DataResult>({
url: Api.editInfo,
method: 'post',
data,
})
}
export function delInfo(query: { id: string }) {
return request<DataResult>({
url: Api.delInfo,
method: 'get',
params: query,
})
}

@ -0,0 +1,167 @@
import { BasicColumn, FormSchema } from '/@/components/Table'
import { formatToDate } from '/@/utils/dateUtil'
import { getStoreHouseSelect } from '/@/api/common'
export const columns: BasicColumn[] = [
{
title: 'id',
dataIndex: 'id',
ifShow: false,
},
{
title: '仓库',
dataIndex: 'storeHouseName',
width: 100,
},
{
title: '库位',
dataIndex: 'areaCode',
width: 100,
},
{
title: '行数',
dataIndex: 'rowNum',
width: 100,
},
{
title: '列数',
dataIndex: 'columnNum',
width: 100,
},
{
title: '列长',
dataIndex: 'rowLength',
width: 100,
},
{
title: '列长',
dataIndex: 'columnLength',
width: 100,
},
{
title: '创建日期',
dataIndex: 'addTime',
width: 80,
customRender: ({ text }) => {
return formatToDate(text)
},
},
{
title: '备注',
dataIndex: 'note',
width: 200,
},
]
export const searchFormSchema: FormSchema[] = [
// {
// field: 'GoodsTypeCode',
// label: '类别编码:',
// component: 'Input',
// colProps: { span: 8 },
// },
// {
// field: 'GoodsTypeName',
// label: '类别名称:',
// component: 'Input',
// colProps: { span: 8 },
// },
{
field: 'StoreHouse',
label: '仓库:',
component: 'ApiSelect',
colProps: { span: 8 },
componentProps: {
// mode: 'multiple',
api: getStoreHouseSelect,
resultField: 'data',
},
},
]
export const formSchema: FormSchema[] = [
{
field: 'divider-selects',
component: 'Divider',
label: '基本信息',
colProps: {
span: 24,
},
},
{
label: '',
field: 'id',
component: 'Input',
defaultValue: '',
show: false,
},
{
label: '',
field: 'storeHouse',
component: 'Input',
defaultValue: '',
show: false,
},
{
field: 'storeHouseName',
label: '仓库',
component: 'Input',
required: true,
colProps: {
span: 12,
},
slot: 'storehouseSelectSlot',
componentProps: {
disabled: true,
},
},
{
field: 'areaCode',
label: '库位',
component: 'Select',
required: true,
colProps: {
span: 12,
},
},
{
field: 'rowNum',
label: '行数',
component: 'InputNumber',
required: true,
defaultValue: 1,
colProps: { span: 12 },
},
{
field: 'columnNum',
label: '列数',
component: 'InputNumber',
required: true,
defaultValue: 1,
colProps: { span: 12 },
},
{
field: 'rowLength',
label: '行长',
component: 'InputNumber',
required: true,
defaultValue: 1,
colProps: { span: 12 },
},
{
field: 'columnLength',
label: '列长',
component: 'InputNumber',
required: true,
defaultValue: 1,
colProps: { span: 12 },
},
{
field: 'note',
label: '备注',
component: 'InputTextArea',
defaultValue: '',
colProps: { span: 20 },
componentProps: {
placeholder: '',
rows: 4,
},
},
]

@ -0,0 +1,166 @@
<template>
<div class="p-4">
<BasicTable @register="registerTable">
<template #toolbar>
<a-button
type="primary"
@click="handleCreate"
preIcon="ant-design:plus-outlined"
style="margin-right: 0.8rem"
>新增库位位置</a-button
>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'goodsTypeName'">
<span style="color: #0d84ff;" @click="handleEdit(record)">{{ record.areaName }}</span>
</template>
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: handleEdit.bind(null, record),
},
{
icon: 'ant-design:delete-outlined',
color: 'error',
tooltip: '删除',
popConfirm: {
title: '是否确认删除',
confirm: handleDel.bind(null, record),
},
},
]"
/>
</template>
</template>
</BasicTable>
<AreaPositionModal @register="registerModal" @success="handleSuccess" />
</div>
</template>
<script lang="ts" setup>
import { BasicTable, useTable, TableAction, SorterResult } from '/@/components/Table'
import { useModal } from '/@/components/Modal'
import { getList, delInfo } from './api'
import { columns, searchFormSchema } from './columns'
import AreaPositionModal from './AreaPositionModal.vue'
import { Tag } from 'ant-design-vue'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification, createConfirm } = useMessage()
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: 'addTime',
listSortDirection: 1,
})
}
/* 检索字段 */
let condition: API.ConditionItem[] = []
if (!!data.StoreHouse) {
condition.push({
FieldName: 'StoreHouse',
FieldValue: data.StoreHouse,
ConditionalType: 1,
})
}
// if (!!data.GoodsTypeName) {
// condition.push({
// FieldName: 'GoodsTypeName',
// FieldValue: data.GoodsTypeName,
// ConditionalType: 1,
// })
// }
/* 筛选字段 */
if (filterInfo === null) {
} else {
// if (!!filterInfo.status && filterInfo.status.length > 0) {
// condition.push({
// FieldName: 'INUSE',
// 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 handleCreate() {
openModal(true, {
isUpdate: false,
})
}
async function handleDel(record: Recordable) {
console.log(record)
const res: API.DataResult = await delInfo({ id: record.id })
if (res.succeeded) {
notification.success({ message: res.message, duration: 3 })
reload()
} else {
notification.error({ message: res.message, duration: 3 })
}
}
function handleEdit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
function handleSuccess() {
reload()
}
</script>

@ -51,6 +51,8 @@ export const columns: BasicColumn[] = [
return <Tag color="blue"></Tag>
} else if (text === '件') {
return <Tag color="warning"></Tag>
} else if (text === '平方米') {
return <Tag color="blue"></Tag>
}
return text
},
@ -149,6 +151,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
itemProps: {

@ -157,6 +157,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -172,6 +173,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -187,6 +189,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -127,6 +127,8 @@ export const feeTypecolumns: BasicColumn[] = [
return <Tag color="blue"></Tag>
} else if (text === '件') {
return <Tag color="warning"></Tag>
} else if (text === '平方米') {
return <Tag color="blue"></Tag>
}
return text
},
@ -236,6 +238,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -251,6 +254,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -266,6 +270,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -396,6 +401,7 @@ export const auditformSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -411,6 +417,7 @@ export const auditformSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},
@ -426,6 +433,7 @@ export const auditformSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -329,6 +329,7 @@ export const detailformSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -175,6 +175,8 @@ export const feeTypecolumns: BasicColumn[] = [
return <Tag color="blue"></Tag>
} else if (text === '件') {
return <Tag color="warning"></Tag>
} else if (text === '平方米') {
return <Tag color="blue"></Tag>
}
return text
},

@ -19,7 +19,7 @@
<!--右下角按钮-->
<template #footer>
<a-button
v-show="isUpdate && billStatus === 0"
v-show="isUpdate && billStatus === 1"
@click="handleSend"
preIcon="ant-design:cloud-upload-outlined"
type="error"
@ -28,7 +28,7 @@
>发布</a-button
>
<a-button
v-show="isUpdate && billStatus === 1"
v-show="isUpdate && billStatus === 2"
@click="handleCancel"
preIcon="ant-design:cloud-upload-outlined"
type="error"

@ -60,16 +60,16 @@ export const columns: BasicColumn[] = [
dataIndex: 'sendStatus',
width: 100,
filters: [
{ text: '未发布', value: '1' },
{ text: '已发布', value: '2' },
{ text: '已撤销', value: '3' },
{ text: '未发布', value: 1 },
{ text: '已发布', value: 2 },
{ text: '已撤销', value: 3 },
],
customRender: ({ text }) => {
if (text === '1') {
if (text === 1) {
return <Tag color="blue"></Tag>
} else if (text === '2') {
} else if (text === 2) {
return <Tag color="warning"></Tag>
} else if (text === '3') {
} else if (text === 3) {
return <Tag color="error"></Tag>
}
return text

@ -0,0 +1,88 @@
<template>
<div>
<template v-for="(item, index) in props.data" :key="index">
<a-row :gutter="24" class="md:flex">
<a-col
style="margin-bottom: 10px"
:lg="6"
v-for="(area, index) in item.areaPositions"
:key="index"
>
<Card size="small" :loading="props.loading" title="当前库位" :canExpan="false">
<template #extra>
<Tag color="green">{{ area.areaName }}</Tag>
<a-button
v-if="area.boxCount > 0"
size="small"
style="margin-left: 10px"
@click="handleBox(area)"
preIcon="ant-design:eye-outlined"
type="primary"
/>
</template>
<div class="py-4 px-4 flex justify-between">
<CountTo :startVal="1" :endVal="area.boxCount" class="text-2xl" />
<Icon icon="ant-design:database-outlined" :size="40" />
</div>
<div class="p-2 px-4 flex justify-between">
<span>库位容量</span>
<CountTo :startVal="1" :endVal="area.boxVolume" />
</div>
</Card>
</a-col>
</a-row>
<!-- <a-row type="flex" justify="space-around" align="top">-->
<!-- <a-col-->
<!-- style="margin-bottom: 10px"-->
<!-- v-for="(area, index) in item.areaPositions"-->
<!-- :key="index"-->
<!-- :span="item.rowLength"-->
<!-- >-->
<!-- <Card size="small" :loading="props.loading" :title="area.areaName" :canExpan="false">-->
<!-- <div class="py-4 px-4 flex justify-between">-->
<!-- <CountTo :startVal="1" :endVal="area.boxCount" class="text-2xl" />-->
<!-- <Icon icon="ant-design:database-outlined" :size="40" />-->
<!-- </div>-->
<!-- <div class="p-2 px-4 flex justify-between">-->
<!-- <span>库位容量</span>-->
<!-- <CountTo :startVal="1" :endVal="area.boxVolume" />-->
<!-- </div>-->
<!-- </Card>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="item.rowLength">-->
<!-- <a-card :title="item.areaName" :bordered="false">-->
<!-- <p>card content</p>-->
<!-- </a-card>-->
<!-- </a-col>-->
<!-- </a-row>-->
</template>
<!-- <BoxList @register="registerModal" @success="handleSuccess" />-->
</div>
</template>
<script lang="ts" setup>
import { CountTo } from '/@/components/CountTo/index'
import { Icon } from '/@/components/Icon'
import { Tag, Card } from 'ant-design-vue'
import { useModal } from '/@/components/Modal'
import BoxList from './BoxList.vue'
const [registerModal, { openModal }] = useModal()
const props = defineProps({
loading: {
type: Boolean,
},
data: {
type: Array,
default: () => [],
},
})
function handleBox(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
console.log('数据', props.data)
</script>

@ -0,0 +1,12 @@
// @ts-ignore
import { request } from '/@/utils/request'
import { DataResult } from '/@/api/model/baseModel'
enum Api {
list = '/StoreQuery/GetAreaPositionInfo',
}
export function getList() {
return request<DataResult>({
url: Api.list,
method: 'get',
})
}

@ -0,0 +1,75 @@
<template>
<!-- <a-row type="flex" :gutter="10">-->
<!-- <a-col style="margin-bottom: 10px">-->
<div style="height: 100%; background-color: white">
<!-- <a-tabs v-show="areaData.length != 0" defaultActiveKey="base-info">-->
<!-- <a-tab-pane-->
<!-- v-for="item in areaData"-->
<!-- :tab="item.storeName"-->
<!-- key="base-info"-->
<!-- forceRender-->
<!-- style="position: relative; margin-left: 50px"-->
<!-- >-->
<!-- &lt;!&ndash; <AreaCard :loading="loading" :data="item.areaPositionMap.rowList" class="enter-y" />&ndash;&gt;-->
<!-- </a-tab-pane>-->
<!-- </a-tabs>-->
<a-tabs v-show="areaData.length != 0" v-model:activeKey="activeKey" style="margin-left: 10px">
<!-- <a-tab-pane style="position: relative; margin-left: 50px" key="1" tab="Tab 1"-->
<!-- >Content of Tab Pane 1</a-tab-pane-->
<!-- >-->
<!-- <a-tab-pane key="2" tab="Tab 2" force-render>Content of Tab Pane 2</a-tab-pane>-->
<!-- <a-tab-pane key="3" tab="Tab 3">Content of Tab Pane 3</a-tab-pane>-->
<a-tab-pane
v-for="item in areaData"
:tab="item.storeName"
:key="item.storeCode"
forceRender
style="position: relative"
>
<AreaCard :loading="loading" :data="item.areaPositionMap.rowList" class="enter-y" />
</a-tab-pane>
</a-tabs>
</div>
<!-- </a-col>-->
<!-- <Tabs v-show="areaData.length != 0">-->
<!-- <TabPane v-for="item in areaData" key="detailTab" :tab="item.storeName">-->
<!-- <AreaCard :loading="loading" :data="item.areaPositionMap.rowList" class="enter-y" />-->
<!-- </TabPane>-->
<!-- </Tabs>-->
<!-- </a-row>-->
</template>
<script lang="ts" setup>
import { getList } from './api'
import AreaCard from './AreaCard.vue'
import { TabPane, Tabs } from 'ant-design-vue'
import { CollapseContainer } from '/@/components/Container'
import { provide, ref } from 'vue'
const areaData = ref([])
const activeKey = ref('01L')
// const areaList = ref([]);
//
async function loadData() {
try {
// loading.value = true;
areaData.value = []
const result = await getList()
console.log('加载数据', result.data)
areaData.value = result.data.storeHouses
console.log('areaData', areaData)
// emit('rootTreeData', treeData.value);
} finally {
// loading.value = false;
}
}
loadData()
const loading = ref(true)
setTimeout(() => {
loading.value = false
}, 1500)
</script>
<style scoped></style>

@ -25,6 +25,7 @@
import { getList } from './api'
import { PageWrapper } from '/@/components/Page'
import { columns, searchFormSchema } from './columns'
import {useUserStore} from "/@/store/modules/user";
let sortInfo: SorterResult = {}
let filterInfo: Partial<Recordable<string[]>> = []
const [registerModal, { openModal }] = useModal()
@ -98,6 +99,16 @@
ConditionalType: 1,
})
}
const userStore = useUserStore()
const user = userStore.getUserInfo
if (user.isLimitClient) {
//
condition.push({
FieldName: 'ClientId',
FieldValue: user.clientId,
ConditionalType: 0,
})
}
// /* */
// if (filterInfo === null) {
// } else {

@ -29,6 +29,7 @@
import { PageWrapper } from '/@/components/Page'
import WmsClearanceModal from './WmsClearanceModal.vue'
import { columns, searchFormSchema } from './columns'
import {useUserStore} from "/@/store/modules/user";
let sortInfo: SorterResult = {}
let filterInfo: Partial<Recordable<string[]>> = []
const [registerModal, { openModal }] = useModal()
@ -95,6 +96,16 @@
ConditionalType: 1,
})
}
const userStore = useUserStore()
const user = userStore.getUserInfo
if (user.isLimitClient) {
//
condition.push({
FieldName: 'ClientId',
FieldValue: user.clientId,
ConditionalType: 0,
})
}
/* 筛选字段 */
if (filterInfo === null) {
} else {

@ -327,6 +327,7 @@
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
]
}
// onMounted(() => {

@ -262,6 +262,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -56,6 +56,7 @@
import WmsInDoModal from './WmsInDoModal.vue'
import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
import {useUserStore} from "/@/store/modules/user";
const { notification, createConfirm, createMessage } = useMessage()
let sortInfo: SorterResult = {}
let filterInfo: Partial<Recordable<string[]>> = []
@ -123,6 +124,16 @@
ConditionalType: 1,
})
}
const userStore = useUserStore()
const user = userStore.getUserInfo
if (user.isLimitClient) {
//
condition.push({
FieldName: 'ClientId',
FieldValue: user.clientId,
ConditionalType: 0,
})
}
// /* */
// if (filterInfo === null) {
// } else {

@ -419,6 +419,7 @@ export const formSchema: FormSchema[] = [
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
],
},
},

@ -24,6 +24,7 @@
</PageWrapper>
</template>
<script lang="ts" setup>
import { useUserStore } from '/@/store/modules/user'
import { BasicTable, useTable, TableAction, SorterResult } from '/@/components/Table'
import { useModal } from '/@/components/Modal'
import { getList } from '/@/api/wms/wmsinplan'
@ -96,6 +97,17 @@
ConditionalType: 1,
})
}
const userStore = useUserStore()
const user = userStore.getUserInfo
if (user.isLimitClient) {
//
condition.push({
FieldName: 'ClientId',
FieldValue: user.clientId,
ConditionalType: 0,
})
}
/* 筛选字段 */
if (filterInfo === null) {
} else {

@ -319,6 +319,7 @@
{ label: '千克', value: '千克' },
{ label: '吨', value: '吨' },
{ label: '立方米', value: '立方米' },
{ label: '平方米', value: '平方米' },
]
}
// onMounted(() => {

@ -42,6 +42,7 @@
import WmsOutDoModal from './WmsOutDoModal.vue'
import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
import {useUserStore} from "/@/store/modules/user";
const { notification, createConfirm, createMessage } = useMessage()
let sortInfo: SorterResult = {}
let filterInfo: Partial<Recordable<string[]>> = []
@ -109,6 +110,16 @@
ConditionalType: 1,
})
}
const userStore = useUserStore()
const user = userStore.getUserInfo
if (user.isLimitClient) {
//
condition.push({
FieldName: 'ClientId',
FieldValue: user.clientId,
ConditionalType: 0,
})
}
/* 筛选字段 */
if (filterInfo === null) {
} else {

@ -29,6 +29,7 @@
import { PageWrapper } from '/@/components/Page'
import WmsOutPlanModal from './WmsOutPlanModal.vue'
import { columns, searchFormSchema } from './columns'
import {useUserStore} from "/@/store/modules/user";
let sortInfo: SorterResult = {}
let filterInfo: Partial<Recordable<string[]>> = []
const [registerModal, { openModal }] = useModal()
@ -88,6 +89,16 @@
ConditionalType: 1,
})
}
const userStore = useUserStore()
const user = userStore.getUserInfo
if (user.isLimitClient) {
//
condition.push({
FieldName: 'ClientId',
FieldValue: user.clientId,
ConditionalType: 0,
})
}
/* 筛选字段 */
if (filterInfo === null) {
} else {

@ -87,8 +87,8 @@ public class HomeService : IHomeService
var nobondedCount = db.Queryable<OP_WMS>().Where(x => x.ClientId == companyId && x.BILLTYPE =="0" && x.STORAGEUNITCOUNT>0).Sum(x=>x.PKGS);
var data = new WmsStoreData()
{
NoBondedCount = (decimal)nobondedCount,
BondedCount = (decimal)bondedCount,
NoBondedCount = nobondedCount.IsNull() ? 0: (decimal)nobondedCount,
BondedCount = bondedCount.IsNull() ? 0: (decimal)bondedCount,
};
return DataResult<WmsStoreData>.Success("获取数据成功!", data);
}

@ -73,13 +73,13 @@ public class WmsInPlanGoodsInput
/// </summary>
public string REMARK { get; set; } = "";
public string KINDPKGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? NETWEIGHT { get; set; } = 0;
public decimal? RULEUNITCOUNT { get; set; } = 0;
public decimal? NETWEIGHT { get; set; } = 0;
/// <summary>
///
/// </summary>

@ -145,7 +145,7 @@ public class WmsInPlanGoodsListViewModel
/// <summary>
///
/// </summary>
public decimal? RULEAMOUNT { get; set; }
public decimal? RULEAMOUNT { get; set; } = 0;
/// <summary>
///

@ -5617,3 +5617,53 @@
2023-05-30 17:07:59.8058 Info Shutdown() called. Logger closing...
2023-05-30 17:07:59.8058 Info Closing old configuration.
2023-05-30 17:07:59.9249 Info Logger has been closed down.
2023-06-05 09:55:05.5813 Info Message Template Auto Format enabled
2023-06-05 09:55:05.6133 Info Loading assembly: NLog.Web.AspNetCore
2023-06-05 09:55:05.8003 Info Adding target FileTarget(Name=allfile)
2023-06-05 09:55:05.8156 Info Adding target FileTarget(Name=ownFile-web)
2023-06-05 09:55:05.8428 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-05 09:55:05.9295 Info Validating config: TargetNames=console, 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-06-05 09:55:05.9482 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-05 14:02:53.1956 Info Shutdown() called. Logger closing...
2023-06-05 14:02:53.1956 Info Closing old configuration.
2023-06-05 14:02:53.2643 Info Logger has been closed down.
2023-06-05 14:03:34.3024 Info Message Template Auto Format enabled
2023-06-05 14:03:34.3314 Info Loading assembly: NLog.Web.AspNetCore
2023-06-05 14:03:34.4703 Info Adding target FileTarget(Name=allfile)
2023-06-05 14:03:34.4703 Info Adding target FileTarget(Name=ownFile-web)
2023-06-05 14:03:34.4915 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-05 14:03:34.5412 Info Validating config: TargetNames=console, 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-06-05 14:03:34.5560 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-05 16:42:48.1971 Info Shutdown() called. Logger closing...
2023-06-05 16:42:48.1971 Info Closing old configuration.
2023-06-05 16:42:48.2377 Info Logger has been closed down.
2023-06-20 17:48:56.5738 Info Message Template Auto Format enabled
2023-06-20 17:48:56.6157 Info Loading assembly: NLog.Web.AspNetCore
2023-06-20 17:48:56.8195 Info Adding target FileTarget(Name=allfile)
2023-06-20 17:48:56.8195 Info Adding target FileTarget(Name=ownFile-web)
2023-06-20 17:48:56.8669 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-20 17:48:56.9715 Info Validating config: TargetNames=console, 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-06-20 17:48:56.9908 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-20 17:59:46.1058 Info Shutdown() called. Logger closing...
2023-06-20 17:59:46.1058 Info Closing old configuration.
2023-06-20 17:59:46.2603 Info Logger has been closed down.
2023-06-26 10:00:33.7361 Info Message Template Auto Format enabled
2023-06-26 10:00:33.7715 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 10:00:34.0191 Info Adding target FileTarget(Name=allfile)
2023-06-26 10:00:34.0191 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 10:00:34.0671 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 10:00:34.2320 Info Validating config: TargetNames=console, 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-06-26 10:00:34.2904 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 10:28:52.4584 Info Shutdown() called. Logger closing...
2023-06-26 10:28:52.4584 Info Closing old configuration.
2023-06-26 10:28:52.5095 Info Logger has been closed down.
2023-06-26 10:29:18.0043 Info Message Template Auto Format enabled
2023-06-26 10:29:18.0180 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 10:29:18.0995 Info Adding target FileTarget(Name=allfile)
2023-06-26 10:29:18.0995 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 10:29:18.1189 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 10:29:18.1610 Info Validating config: TargetNames=console, 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-06-26 10:29:18.1610 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 15:32:28.6585 Info Shutdown() called. Logger closing...
2023-06-26 15:32:28.6585 Info Closing old configuration.
2023-06-26 15:32:28.7560 Info Logger has been closed down.

@ -959,6 +959,12 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.StoreQueryController.GetAreaPositionInfo">
<summary>
获取库位信息
</summary>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.Controllers.SysDictionaryController">
<summary>
字典模块
@ -1609,6 +1615,45 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController">
<summary>
库位位置服务
</summary>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.#ctor(DS.WMS.Core.BaseInfo.Interface.IWmsStoreAreaPositionService)">
<summary>
构造函数
</summary>
<param name="invokeService"></param>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.GetAreaPositionList(DS.Module.Core.PageRequest)">
<summary>
列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.EditStoreAreaPositionInfo(DS.WMS.Core.BaseInfo.Dtos.StoreAreaPositionInput)">
<summary>
编辑
</summary>
<param name="model"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.GetStoreAreaPositionInfo(System.String)">
<summary>
详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.DelStoreAreaPosition(System.String)">
<summary>
删除
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.DsAppWebInstall">
<summary>
基础服务

@ -0,0 +1,28 @@
namespace DS.WMS.Core.BaseInfo.Dtos;
public class StoreAreaPositionInput
{
public string Id {get;set;}
/// <summary>
/// 库位
/// </summary>
public string AreaCode { get; set; }
/// <summary>
/// 行数
/// </summary>
public int RowNum { get; set; }
/// <summary>
/// 列数
/// </summary>
public int ColumnNum { get; set; }
/// <summary>
/// 行长
/// </summary>
public int RowLength { get; set; }
/// <summary>
/// 列长
/// </summary>
public int ColumnLength { get; set; }
public string Note { get; set; }
}

@ -0,0 +1,40 @@
namespace DS.WMS.Core.BaseInfo.Dtos;
public class StoreAreaPositionViewModel
{
public string Id { get; set; }
public string StoreHouse { get; set; }
/// <summary>
/// 仓库
/// </summary>
public string StoreHouseName { get; set; }
/// <summary>
/// 库位
/// </summary>
public string AreaCode { get; set; }
public string AreaName { get; set; }
/// <summary>
/// 行数
/// </summary>
public int RowNum { get; set; }
/// <summary>
/// 列数
/// </summary>
public int ColumnNum { get; set; }
/// <summary>
/// 行长
/// </summary>
public int RowLength { get; set; }
/// <summary>
/// 列长
/// </summary>
public int ColumnLength { get; set; }
public string Note { get; set; }
public DateTime AddTime { get; set; }
}

@ -0,0 +1,37 @@
using DS.Module.Core.Data;
namespace DS.WMS.Core.BaseInfo.Entity;
[SqlSugar.SugarTable("op_WmsStoreAreaPosition")]
public class WmsStoreAreaPosition:BaseModel<string>
{
/// <summary>
/// 库位
/// </summary>
public string AreaCode { get; set; }
/// <summary>
/// 行数
/// </summary>
public int RowNum { get; set; }
/// <summary>
/// 列数
/// </summary>
public int ColumnNum { get; set; }
/// <summary>
/// 行长
/// </summary>
public int RowLength { get; set; }
/// <summary>
/// 列长
/// </summary>
public int ColumnLength { get; set; }
/// <summary>
/// 公司Id
/// </summary>
public string CompanyId { get; set; }
/// <summary>
/// 租户Id
/// </summary>
public string TenantId { get; set; }
}

@ -0,0 +1,35 @@
using DS.Module.Core;
using DS.WMS.Core.BaseInfo.Dtos;
namespace DS.WMS.Core.BaseInfo.Interface;
public interface IWmsStoreAreaPositionService
{
/// <summary>
/// 列表查询
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
DataResult<List<StoreAreaPositionViewModel>> GetListByPage(PageRequest request);
/// <summary>
/// 获取信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
DataResult<StoreAreaPositionViewModel> GetStoreAreaPositionInfo(string id);
/// <summary>
/// 编辑信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
DataResult EditStoreAreaPositionInfo(StoreAreaPositionInput model);
/// <summary>
/// 删除库位位置
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DataResult DelStoreAreaPosition(string id);
}

@ -0,0 +1,135 @@
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.UserModule;
using DS.WMS.Core.BaseInfo.Dtos;
using DS.WMS.Core.BaseInfo.Entity;
using DS.WMS.Core.BaseInfo.Interface;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
namespace DS.WMS.Core.BaseInfo.Method;
public class WmsStoreAreaPositionService:IWmsStoreAreaPositionService
{
private readonly IServiceProvider _serviceProvider;
private readonly ISqlSugarClient db;
private readonly IUser user;
/// <summary>
///
/// </summary>
/// <param name="serviceProvider"></param>
public WmsStoreAreaPositionService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
db = _serviceProvider.GetRequiredService<ISqlSugarClient>();
user = _serviceProvider.GetRequiredService<IUser>();
}
public DataResult<List<StoreAreaPositionViewModel>> GetListByPage(PageRequest request)
{
//序列化查询条件
var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
var data = db.Queryable<WmsStoreAreaPosition>()
.LeftJoin<OP_WMS_STOREHOUSE_AREA>((a, b) => a.AreaCode == b.AREACODE)
.LeftJoin<OP_WMS_STOREHOUSE>((a, b,c) => b.Pid == c.Id)
.Select((a, b,c) => new StoreAreaPositionViewModel()
{
AreaCode = a.AreaCode,
AreaName = b.AREANAME,
StoreHouse = c.AREACODE,
StoreHouseName = c.AREANAME, //手动指定一列在自动映射
},
true)
.MergeTable()
// .Select<StoreAreaPositionViewModel>()
.Where(whereList).ToQueryPage(request.PageCondition);
return data;
}
public DataResult<StoreAreaPositionViewModel> GetStoreAreaPositionInfo(string id)
{
var data = db.Queryable<WmsStoreAreaPosition>().Where(a => a.Id == id)
.LeftJoin<OP_WMS_STOREHOUSE_AREA>((a, b) => a.AreaCode == b.AREACODE)
.LeftJoin<OP_WMS_STOREHOUSE>((a, b,c) => b.Pid == c.Id)
.Select((a, b,c) => new StoreAreaPositionViewModel()
{
AreaCode = a.AreaCode,
AreaName = b.AREANAME,
StoreHouse = c.AREACODE,
StoreHouseName = c.AREANAME, //手动指定一列在自动映射
},
true)
.MergeTable()
.First();
return DataResult<StoreAreaPositionViewModel>.Success(data);
}
public DataResult EditStoreAreaPositionInfo(StoreAreaPositionInput model)
{
if (model.Id.IsNullOrEmpty())
{
var isExist = db.Queryable<WmsStoreAreaPosition>().Where(x => x.AreaCode == model.AreaCode.Trim()).First();
if (isExist != null)
{
return DataResult.Failed("库位编码重复,请检查!");
}
try
{
//开启事务
db.Ado.BeginTran();
var data = model.Adapt<WmsStoreAreaPosition>();
var position = db.Insertable(data).ExecuteReturnEntity();
db.Ado.CommitTran();
return DataResult.Successed("添加成功!",position.Id);
}
catch (Exception ex)
{
db.Ado.RollbackTran();
return DataResult.Failed("添加失败!" + ex);
}
}
else
{
try
{
//开启事务
db.Ado.BeginTran();
var info = db.Queryable<WmsStoreAreaPosition>().First(x => x.Id == model.Id);
var data = model.Adapt(info);
db.Updateable(data).IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand();
db.Ado.CommitTran();
return DataResult.Successed("更新成功!");
}
catch (Exception ex)
{
db.Ado.RollbackTran();
return DataResult.Failed("更新失败!" + ex);
}
}
}
public DataResult DelStoreAreaPosition(string id)
{
var info = db.Queryable<WmsStoreAreaPosition>().First(x => x.Id == id);
if (info.IsNullOrEmpty())
{
return DataResult.Failed("信息不存在!");
}
try
{
//开启事务
db.Ado.BeginTran();
db.Deleteable(info).ExecuteCommand();
db.Ado.CommitTran();
return DataResult.Successed("删除成功!");
}
catch (Exception ex)
{
db.Ado.RollbackTran();
return DataResult.Failed("删除失败!" + ex);
}
}
}

@ -55,6 +55,13 @@ public class CurrentUserViewModel
/// 定制首页路径
/// </summary>
public string HomePath { get; set; }
/// <summary>
/// ClientId
/// </summary>
public string ClientId { get; set; }
public bool IsLimitClient { get; set; }
}
/// <summary>

@ -32,7 +32,7 @@ public class NoticeViewModel
/// Default:0
/// Nullable:True
/// </summary>
public string SendStatus { get; set; }
public int SendStatus { get; set; }
/// <summary>
/// Desc:截至日期

@ -82,6 +82,5 @@ public class UserViewModel
/// 用戶角色
/// </summary>
public string[] RoleIds { get; set; }
// public string[] RoleIds { get; set; }
}

@ -88,4 +88,11 @@ public class SysUser:BaseModel<string>
/// 租户Id
/// </summary>
public string TenantId { get; set; }
/// <summary>
/// ClientId
/// </summary>
public string ClientId { get; set; }
public bool IsLimitClient { get; set; }
}

@ -94,7 +94,8 @@ public class CommonService : ICommonService
{
UserId = a.Id, UserCode = a.UserCode, UserName = a.NickName,
TenantId = tenantId, UserType = a.UserType,
CompanyId = a.CompanyId,GID = a.GID
CompanyId = a.CompanyId,GID = a.GID,
ClientId = a.ClientId,IsLimitClient = a.IsLimitClient
// CompanyId = a.CompanyId.ToString(), CompanyName = a.CustomerName
})
.Mapper(it =>
@ -912,4 +913,5 @@ public class CommonService : ICommonService
.ToList();
return DataResult<List<TruckRecordViewModel>>.Success("获取数据成功!", data);
}
}

@ -0,0 +1,98 @@
namespace DS.WMS.Core.WmsModule.Dtos;
/// <summary>
///
/// </summary>
public class StoreAreaPositionInfo
{
public List<WmsStoreHouse> StoreHouses { get; set; }
}
public class WmsStoreHouse
{
/// <summary>
///
/// </summary>
public string StoreCode { get; set; }
/// <summary>
///
/// </summary>
public string StoreName { get; set; }
public AreaPositionMap AreaPositionMap { get; set; }
}
public class AreaPosition
{
public string StoreHouse { get; set; }
/// <summary>
/// 仓库
/// </summary>
public string StoreHouseName { get; set; }
public string AreaCode { get; set; }
public string AreaName { get; set; }
public int RowNum { get; set; }
public int ColumnNum { get; set; }
public int RowLength { get; set; }
public int ColumnLength { get; set; }
public int BoxCount { get; set; }
public int BoxVolume { get; set; }
}
public class AreaRow
{
public int RowNum { get; set; }
public List<AreaPosition> AreaPositions = new List<AreaPosition>();
public AreaPosition GetColumn(int column)
{
var res = new AreaPosition();
res.ColumnNum = 0;
if (AreaPositions.Count == 0)
{
return res;
}
if (AreaPositions.Where(x=>x.ColumnNum == column).Count()>0)
{
res = AreaPositions.First(x => x.ColumnNum == column);
}
return res;
}
}
public class AreaPositionMap
{
public List<AreaRow> RowList = new List<AreaRow>();
public AreaRow GetRow(int row)
{
var res = new AreaRow();
res.RowNum = 0;
if (RowList.Count == 0)
{
return res;
}
if (RowList.Where(x=>x.RowNum == row).Count()>0)
{
res = RowList.First(x => x.RowNum == row);
}
return res;
}
}

@ -12,4 +12,9 @@ public interface IStoreQueryService
/// <returns></returns>
public DataResult<List<WmsStoreListPagModel>> GetWmsStoreList(PageRequest request);
/// <summary>
/// 获取库位信息
/// </summary>
/// <returns></returns>
public DataResult<StoreAreaPositionInfo> GetAreaPositionInfo();
}

@ -10,7 +10,7 @@ using SqlSugar;
namespace DS.WMS.Core.WmsModule.Method;
public class StoreQueryService:IStoreQueryService
public class StoreQueryService : IStoreQueryService
{
private readonly IServiceProvider _serviceProvider;
private readonly ISqlSugarClient db;
@ -39,10 +39,10 @@ public class StoreQueryService:IStoreQueryService
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()
.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, //手动指定一列在自动映射
@ -51,7 +51,132 @@ public class StoreQueryService:IStoreQueryService
true)
// .Select<WmsInPlanListViewModel>()
.MergeTable()
.Where(whereList).Where(a => a.STORAGEUNITCOUNT+ a.LOCKSTORAGEUNITCOUNT>0).ToQueryPage(request.PageCondition);
.Where(whereList).Where(a => a.STORAGEUNITCOUNT + a.LOCKSTORAGEUNITCOUNT > 0)
.ToQueryPage(request.PageCondition);
return data;
}
/// <summary>
/// 获取库位信息
/// </summary>
/// <returns></returns>
public DataResult<StoreAreaPositionInfo> GetAreaPositionInfo()
{
var data = new StoreAreaPositionInfo();
// var companyId = user.CompanyId;
// var list = db.Queryable<VW_Cust_Box_Area>().Where(x => x.CORPID == companyId).ToList();
var houses = db.Queryable<OP_WMS_STOREHOUSE>().Where(x => x.INUSE == 1)
.Select(a => new WmsStoreHouse
{
StoreCode = a.AREACODE,
StoreName = a.AREANAME
})
.ToList();
var areaPositions = db.Queryable<WmsStoreAreaPosition>()
.LeftJoin<OP_WMS_STOREHOUSE_AREA>((a, b) => a.AreaCode == b.AREACODE)
.LeftJoin<OP_WMS_STOREHOUSE>((a, b, c) => b.Pid == c.Id)
.Select((a, b, c) => new AreaPosition()
{
AreaCode = a.AreaCode,
AreaName = b.AREANAME,
StoreHouse = c.AREACODE,
StoreHouseName = c.AREANAME, //手动指定一列在自动映射
RowNum = (int)a.RowNum,
ColumnNum = (int)a.ColumnNum,
BoxVolume = (int)b.STORAGEUNITVOLUME
},
true)
.ToList();
foreach (var item in houses)
{
// var postions = new List<AreaPosition>();
if (!areaPositions.Where(x => x.StoreHouse == item.StoreCode).Any())
{
item.AreaPositionMap = new AreaPositionMap()
{
RowList = new List<AreaRow>()
};
continue;
}
var rows = areaPositions.Where(x => x.StoreHouse == item.StoreCode).Select(s => s.RowNum).ToArray().Max();
var columns = areaPositions.Where(x => x.StoreHouse == item.StoreCode).Select(s => s.ColumnNum).ToArray()
.Max();
// var areaPositions = db.Queryable<VW_OP_WMS_STOREHOUSE_AREA_POSITION>().Where(x=>x.STOREHOUSE == item.StoreCode)
// .Select(a => new AreaPosition
// {
// AreaCode = a.AREACODE,
// AreaName = a.AREANAME,
// RowNum = (int)a.ROWNUM,
// ColumnNum = (int)a.COLUMNNUM,
// }).ToList();
// var areaList = db.Queryable<OP_WMS_STOREHOUSE_AREA>().Where(x => x.AREACODE.StartsWith(item.StoreCode))
// .ToList();
var areaList = areaPositions.Where(x => x.StoreHouse == item.StoreCode)
.ToList();
var resdata = new AreaPositionMap();
for (var _row = 1; _row <= rows; _row++)
{
for (var _column = 1; _column <= columns; _column++)
{
// var position = areaPositions.First(x => x.RowNum == _row && x.ColumnNum == _column);
if (areaPositions.Any(x => x.RowNum == _row && x.ColumnNum == _column))
{
var position = areaPositions.First(x => x.RowNum == _row && x.ColumnNum == _column);
var areaInfo = areaList.First(x => x.AreaCode == position.AreaCode);
var newrow = false;
var newcolumn = false;
var row = new AreaRow();
if (resdata.GetRow(_row).RowNum != 0)
{
row = resdata.GetRow(_row);
}
else
{
row.RowNum = _row;
newrow = true;
}
var area = new AreaPosition();
if (row.GetColumn(_column).ColumnNum != 0)
{
area = row.GetColumn(_column);
}
else
{
area.ColumnNum = _column;
area.RowNum = _row;
area.AreaCode = position.AreaCode;
area.AreaName = position.AreaName;
area.ColumnLength = position.ColumnLength;
area.RowLength = position.RowLength;
area.BoxVolume = (int)areaInfo.BoxVolume;
// area.BoxCount = list.Where(x => x.AreaCode == position.AreaCode).Count();
newcolumn = true;
}
if (newcolumn)
{
row.AreaPositions.Add(area);
}
if (newrow)
{
resdata.RowList.Add(row);
}
}
}
}
item.AreaPositionMap = resdata;
}
data.StoreHouses = houses;
return DataResult<StoreAreaPositionInfo>.Success(data);
}
}

@ -959,6 +959,12 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.StoreQueryController.GetAreaPositionInfo">
<summary>
获取库位信息
</summary>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.Controllers.SysDictionaryController">
<summary>
字典模块
@ -1609,6 +1615,45 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController">
<summary>
库位位置服务
</summary>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.#ctor(DS.WMS.Core.BaseInfo.Interface.IWmsStoreAreaPositionService)">
<summary>
构造函数
</summary>
<param name="invokeService"></param>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.GetAreaPositionList(DS.Module.Core.PageRequest)">
<summary>
列表
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.EditStoreAreaPositionInfo(DS.WMS.Core.BaseInfo.Dtos.StoreAreaPositionInput)">
<summary>
编辑
</summary>
<param name="model"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.GetStoreAreaPositionInfo(System.String)">
<summary>
详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:DS.WMS.WebApi.Controllers.WmsStoreAreaPositionController.DelStoreAreaPosition(System.String)">
<summary>
删除
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:DS.WMS.WebApi.DsAppWebInstall">
<summary>
基础服务

@ -31,6 +31,15 @@ public class StoreQueryController : ApiController
var res = _invokeService.GetWmsStoreList(request);
return res;
}
/// <summary>
/// 获取库位信息
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("GetAreaPositionInfo")]
public DataResult<StoreAreaPositionInfo> GetAreaPositionInfo()
{
var res = _invokeService.GetAreaPositionInfo();
return res;
}
}

@ -0,0 +1,74 @@
using DS.Module.Core;
using DS.WMS.Core.BaseInfo.Dtos;
using DS.WMS.Core.BaseInfo.Interface;
using DS.WMS.Core.System.Dtos;
using DS.WMS.Core.System.Entity;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.WebApi.Controllers;
/// <summary>
/// 库位位置服务
/// </summary>
public class WmsStoreAreaPositionController : ApiController
{
private readonly IWmsStoreAreaPositionService _invokeService;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="invokeService"></param>
public WmsStoreAreaPositionController(IWmsStoreAreaPositionService invokeService)
{
_invokeService = invokeService;
}
/// <summary>
/// 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("GetAreaPositionList")]
public DataResult<List<StoreAreaPositionViewModel>> GetAreaPositionList([FromBody] PageRequest request)
{
var res = _invokeService.GetListByPage(request);
return res;
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Route("EditAreaPositionInfo")]
public DataResult EditStoreAreaPositionInfo([FromBody] StoreAreaPositionInput model)
{
var res = _invokeService.EditStoreAreaPositionInfo(model);
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("GetAreaPositionInfo")]
public DataResult<StoreAreaPositionViewModel> GetStoreAreaPositionInfo([FromQuery] string id)
{
var res = _invokeService.GetStoreAreaPositionInfo(id);
return res;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("DelAreaPosition")]
public DataResult DelStoreAreaPosition([FromQuery] string id)
{
var res = _invokeService.DelStoreAreaPosition(id);
return res;
}
}

@ -8590,3 +8590,200 @@
2023-05-30 18:04:00.1889 Info Shutdown() called. Logger closing...
2023-05-30 18:04:00.1889 Info Closing old configuration.
2023-05-30 18:04:00.2930 Info Logger has been closed down.
2023-06-26 10:50:51.6556 Info Message Template Auto Format enabled
2023-06-26 10:50:51.6859 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 10:50:51.8332 Info Adding target FileTarget(Name=allfile)
2023-06-26 10:50:51.8332 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 10:50:51.8670 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 10:50:51.9338 Info Validating config: TargetNames=console, 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-06-26 10:50:51.9533 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 15:13:09.0298 Info Shutdown() called. Logger closing...
2023-06-26 15:13:09.0298 Info Closing old configuration.
2023-06-26 15:13:09.0528 Info Logger has been closed down.
2023-06-26 15:13:43.3597 Info Message Template Auto Format enabled
2023-06-26 15:13:43.3597 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 15:13:43.4852 Info Adding target FileTarget(Name=allfile)
2023-06-26 15:13:43.4852 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 15:13:43.5133 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 15:13:43.5702 Info Validating config: TargetNames=console, 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-06-26 15:13:43.5802 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 17:21:41.3821 Info Shutdown() called. Logger closing...
2023-06-26 17:21:41.3821 Info Closing old configuration.
2023-06-26 17:21:41.4092 Info Logger has been closed down.
2023-06-26 17:22:25.6244 Info Message Template Auto Format enabled
2023-06-26 17:22:25.6377 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 17:22:25.7210 Info Adding target FileTarget(Name=allfile)
2023-06-26 17:22:25.7210 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 17:22:25.7421 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 17:22:25.7812 Info Validating config: TargetNames=console, 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-06-26 17:22:25.7812 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 17:24:16.5161 Info Shutdown() called. Logger closing...
2023-06-26 17:24:16.5161 Info Closing old configuration.
2023-06-26 17:24:16.5497 Info Logger has been closed down.
2023-06-26 17:24:36.9587 Info Message Template Auto Format enabled
2023-06-26 17:24:36.9751 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 17:24:37.0818 Info Adding target FileTarget(Name=allfile)
2023-06-26 17:24:37.0818 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 17:24:37.1054 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 17:24:37.1461 Info Validating config: TargetNames=console, 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-06-26 17:24:37.1461 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 17:38:49.8669 Info Shutdown() called. Logger closing...
2023-06-26 17:38:49.8669 Info Closing old configuration.
2023-06-26 17:38:49.9176 Info Logger has been closed down.
2023-06-26 17:39:29.9089 Info Message Template Auto Format enabled
2023-06-26 17:39:29.9255 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 17:39:30.0788 Info Adding target FileTarget(Name=allfile)
2023-06-26 17:39:30.0788 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 17:39:30.1215 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 17:39:30.2043 Info Validating config: TargetNames=console, 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-06-26 17:39:30.2213 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 17:42:37.7877 Info Shutdown() called. Logger closing...
2023-06-26 17:42:37.7877 Info Closing old configuration.
2023-06-26 17:42:37.8062 Info Logger has been closed down.
2023-06-26 17:42:52.6548 Info Message Template Auto Format enabled
2023-06-26 17:42:52.6662 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 17:42:52.7515 Info Adding target FileTarget(Name=allfile)
2023-06-26 17:42:52.7515 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 17:42:52.7675 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 17:42:52.8099 Info Validating config: TargetNames=console, 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-06-26 17:42:52.8190 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 17:49:57.3939 Info Shutdown() called. Logger closing...
2023-06-26 17:49:57.3939 Info Closing old configuration.
2023-06-26 17:49:57.4255 Info Logger has been closed down.
2023-06-26 17:50:20.8300 Info Message Template Auto Format enabled
2023-06-26 17:50:20.8300 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 17:50:20.9227 Info Adding target FileTarget(Name=allfile)
2023-06-26 17:50:20.9227 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 17:50:20.9399 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 17:50:20.9739 Info Validating config: TargetNames=console, 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-06-26 17:50:20.9739 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 17:52:43.4029 Info Shutdown() called. Logger closing...
2023-06-26 17:52:43.4029 Info Closing old configuration.
2023-06-26 17:52:43.4212 Info Logger has been closed down.
2023-06-26 17:53:12.4214 Info Message Template Auto Format enabled
2023-06-26 17:53:12.4660 Info Loading assembly: NLog.Web.AspNetCore
2023-06-26 17:53:12.7552 Info Adding target FileTarget(Name=allfile)
2023-06-26 17:53:12.7908 Info Adding target FileTarget(Name=ownFile-web)
2023-06-26 17:53:12.8512 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-26 17:53:12.9746 Info Validating config: TargetNames=console, 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-06-26 17:53:13.0222 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-26 18:03:53.4671 Info Shutdown() called. Logger closing...
2023-06-26 18:03:53.4671 Info Closing old configuration.
2023-06-26 18:03:53.4910 Info Logger has been closed down.
2023-06-27 08:53:34.2912 Info Message Template Auto Format enabled
2023-06-27 08:53:34.3130 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 08:53:34.4066 Info Adding target FileTarget(Name=allfile)
2023-06-27 08:53:34.4066 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 08:53:34.4358 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 08:53:34.4800 Info Validating config: TargetNames=console, 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-06-27 08:53:34.4911 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 09:01:27.7605 Info Shutdown() called. Logger closing...
2023-06-27 09:01:27.7605 Info Closing old configuration.
2023-06-27 09:01:27.7795 Info Logger has been closed down.
2023-06-27 09:01:52.7602 Info Message Template Auto Format enabled
2023-06-27 09:01:52.7762 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 09:01:52.8774 Info Adding target FileTarget(Name=allfile)
2023-06-27 09:01:52.8774 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 09:01:52.8961 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 09:01:52.9431 Info Validating config: TargetNames=console, 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-06-27 09:01:52.9530 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 09:14:13.9620 Info Shutdown() called. Logger closing...
2023-06-27 09:14:13.9620 Info Closing old configuration.
2023-06-27 09:14:13.9933 Info Logger has been closed down.
2023-06-27 09:15:18.7617 Info Message Template Auto Format enabled
2023-06-27 09:15:18.7820 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 09:15:18.9112 Info Adding target FileTarget(Name=allfile)
2023-06-27 09:15:18.9112 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 09:15:18.9419 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 09:15:19.0382 Info Validating config: TargetNames=console, 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-06-27 09:15:19.0720 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 09:29:34.9626 Info Shutdown() called. Logger closing...
2023-06-27 09:29:34.9626 Info Closing old configuration.
2023-06-27 09:29:34.9861 Info Logger has been closed down.
2023-06-27 09:30:44.3939 Info Message Template Auto Format enabled
2023-06-27 09:30:44.4102 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 09:30:44.5170 Info Adding target FileTarget(Name=allfile)
2023-06-27 09:30:44.5170 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 09:30:44.5373 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 09:30:44.5869 Info Validating config: TargetNames=console, 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-06-27 09:30:44.5974 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 09:30:47.5254 Info Shutdown() called. Logger closing...
2023-06-27 09:30:47.5254 Info Closing old configuration.
2023-06-27 09:30:47.5461 Info Logger has been closed down.
2023-06-27 09:30:58.5500 Info Message Template Auto Format enabled
2023-06-27 09:30:58.5641 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 09:30:58.6645 Info Adding target FileTarget(Name=allfile)
2023-06-27 09:30:58.6719 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 09:30:58.6890 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 09:30:58.7272 Info Validating config: TargetNames=console, 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-06-27 09:30:58.7361 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 10:20:44.0236 Info Message Template Auto Format enabled
2023-06-27 10:20:44.0353 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 10:20:44.1089 Info Adding target FileTarget(Name=allfile)
2023-06-27 10:20:44.1089 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 10:20:44.1261 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 10:20:44.1614 Info Validating config: TargetNames=console, 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-06-27 10:20:44.1614 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 10:47:22.7394 Info Shutdown() called. Logger closing...
2023-06-27 10:47:22.7394 Info Closing old configuration.
2023-06-27 10:47:22.7606 Info Logger has been closed down.
2023-06-27 10:47:46.9709 Info Message Template Auto Format enabled
2023-06-27 10:47:47.0019 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 10:47:47.1879 Info Adding target FileTarget(Name=allfile)
2023-06-27 10:47:47.2068 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 10:47:47.2467 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 10:47:47.3577 Info Validating config: TargetNames=console, 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-06-27 10:47:47.3850 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 11:04:03.5240 Info Shutdown() called. Logger closing...
2023-06-27 11:04:03.5240 Info Closing old configuration.
2023-06-27 11:04:03.5731 Info Logger has been closed down.
2023-06-27 11:06:47.4550 Info Message Template Auto Format enabled
2023-06-27 11:06:47.4726 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 11:06:47.5948 Info Adding target FileTarget(Name=allfile)
2023-06-27 11:06:47.5948 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 11:06:47.6196 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 11:06:47.6678 Info Validating config: TargetNames=console, 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-06-27 11:06:47.6789 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 11:33:08.8249 Info Shutdown() called. Logger closing...
2023-06-27 11:33:08.8249 Info Closing old configuration.
2023-06-27 11:33:08.8465 Info Logger has been closed down.
2023-06-27 11:33:41.0968 Info Message Template Auto Format enabled
2023-06-27 11:33:41.0968 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 11:33:41.1930 Info Adding target FileTarget(Name=allfile)
2023-06-27 11:33:41.1930 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 11:33:41.2145 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 11:33:41.2499 Info Validating config: TargetNames=console, 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-06-27 11:33:41.2499 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 11:41:04.6709 Info Shutdown() called. Logger closing...
2023-06-27 11:41:04.6709 Info Closing old configuration.
2023-06-27 11:41:04.6929 Info Logger has been closed down.
2023-06-27 11:41:26.9926 Info Message Template Auto Format enabled
2023-06-27 11:41:27.0201 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 11:41:27.2359 Info Adding target FileTarget(Name=allfile)
2023-06-27 11:41:27.2359 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 11:41:27.2789 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 11:41:27.3901 Info Validating config: TargetNames=console, 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-06-27 11:41:27.4171 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 18:36:19.2712 Info Shutdown() called. Logger closing...
2023-06-27 18:36:19.2712 Info Closing old configuration.
2023-06-27 18:36:19.3135 Info Logger has been closed down.
2023-06-27 18:39:25.6283 Info Message Template Auto Format enabled
2023-06-27 18:39:25.6416 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 18:39:25.7249 Info Adding target FileTarget(Name=allfile)
2023-06-27 18:39:25.7249 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 18:39:25.7454 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 18:39:25.7859 Info Validating config: TargetNames=console, 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-06-27 18:39:25.7859 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 18:41:32.7223 Info Shutdown() called. Logger closing...
2023-06-27 18:41:32.7223 Info Closing old configuration.
2023-06-27 18:41:32.8439 Info Logger has been closed down.
2023-06-27 18:42:12.3133 Info Message Template Auto Format enabled
2023-06-27 18:42:12.3133 Info Loading assembly: NLog.Web.AspNetCore
2023-06-27 18:42:12.4231 Info Adding target FileTarget(Name=allfile)
2023-06-27 18:42:12.4231 Info Adding target FileTarget(Name=ownFile-web)
2023-06-27 18:42:12.4476 Info Adding target ColoredConsoleTarget(Name=console)
2023-06-27 18:42:12.4970 Info Validating config: TargetNames=console, 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-06-27 18:42:12.5082 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2023-06-27 18:57:51.7311 Info Shutdown() called. Logger closing...
2023-06-27 18:57:51.7311 Info Closing old configuration.
2023-06-27 18:57:51.7477 Info Logger has been closed down.

Loading…
Cancel
Save