From eec109948cb1911bf3310ef873b256ba6ee0d77c Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周四, 08 5月 2025 10:31:33 +0800
Subject: [PATCH] 出入库单据及详情
---
HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx | 160
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs | 191 +
HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder导出模板.xlsx | 0
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs | 85
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss | 7
HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx | 4
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx | 381 +++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts | 34
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts | 15
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts | 275 ++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts | 81
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs | 188 +
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx | 279 ++
HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx | 4
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts | 31
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs | 450 +++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts | 275 ++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts | 44
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs | 91
HIAWms/hiawms_web/src/config/menu.ts | 28
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts | 44
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json | 3
Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/出入库单据.txt | 12
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs | 33
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss | 113
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs | 115
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs | 53
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs | 53
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts | 35
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts | 30
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs | 33
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts | 44
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json | 3
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs | 113
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts | 14
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts | 41
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs | 221 +
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts | 31
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs | 426 +++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts | 55
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs | 279 ++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx | 293 ++
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx | 71
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts | 44
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx | 80
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts | 30
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx | 61
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts | 14
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx | 71
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss | 3
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss | 113
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs | 46
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss | 7
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs | 141 +
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts | 15
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx | 387 +++
HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs | 46
HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts | 2
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs | 188 +
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs | 127 +
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss | 3
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx | 349 ++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs | 13
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts | 35
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx | 362 ++
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs | 113
Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/出入库单据详情.txt | 12
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx | 80
HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs | 26
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx | 61
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts | 45
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss | 3
HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs | 26
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts | 41
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs | 17
HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail导出模板.xlsx | 0
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts | 45
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs | 17
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs | 13
Weben_CMS专用代码生成器/Code/Templete/Web/Controllers/EntityModeDrawer模板.txt | 22
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts | 34
HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss | 3
85 files changed, 7,341 insertions(+), 100 deletions(-)
diff --git a/HIAWms/hiawms_web/src/config/menu.ts b/HIAWms/hiawms_web/src/config/menu.ts
index 7b4d571..d37ebda 100644
--- a/HIAWms/hiawms_web/src/config/menu.ts
+++ b/HIAWms/hiawms_web/src/config/menu.ts
@@ -35,6 +35,20 @@
"notPage": false
},
{
+ "name": "鍑哄叆搴撳崟鎹鎯�",
+ "path": "/information-base/WmsInOutStockOrderDetail",
+ "patchName": "WmsInOutStockOrderDetail",
+ "icon": "p",
+ "notPage": false
+ },
+ {
+ "name": "鍑哄叆搴撳崟鎹�",
+ "path": "/information-base/WmsInOutStockOrder",
+ "patchName": "WmsInOutStockOrder",
+ "icon": "p",
+ "notPage": false
+ },
+ {
"name": "Wms鎵樼洏绠$悊",
"path": "/information-base/WmsContainer",
"patchName": "WmsContainer",
@@ -92,6 +106,20 @@
"icon": "p",
"notPage": false
},
+ "WmsInOutStockOrderDetail": {
+ "name": "鍑哄叆搴撳崟鎹鎯�",
+ "path": "/information-base/WmsInOutStockOrderDetail",
+ "patchName": "WmsInOutStockOrderDetail",
+ "icon": "p",
+ "notPage": false
+ },
+ "WmsInOutStockOrder": {
+ "name": "鍑哄叆搴撳崟鎹�",
+ "path": "/information-base/WmsInOutStockOrder",
+ "patchName": "WmsInOutStockOrder",
+ "icon": "p",
+ "notPage": false
+ },
"WmsContainer": {
"name": "Wms鎵樼洏绠$悊",
"path": "/information-base/WmsContainer",
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts
new file mode 100644
index 0000000..9162fef
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts
@@ -0,0 +1,31 @@
+import { importFileToService, exportFileToClient } from '@/api/file'
+import { ElMessage } from 'element-plus'
+import { downloadFile } from '@/utils'
+import dayjs from 'dayjs'
+
+export const useFile = () => {
+ /**
+ * 瀵煎叆鏂囦欢
+ * @param url
+ */
+ const importFile = async (url: string, file: File) => {
+ const formData = new FormData()
+ formData.append('file', file)
+ await importFileToService(url, formData)
+ ElMessage('瀵煎叆鎴愬姛')
+ }
+ /**
+ * 瀵煎嚭鏂囦欢
+ * @param url
+ */
+ const exportFile = async (url: string, params: any, name: string) => {
+ const res = await exportFileToClient(url, params)
+ downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`)
+ ElMessage.success('瀵煎嚭鎴愬姛')
+ }
+
+ return {
+ importFile,
+ exportFile,
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
new file mode 100644
index 0000000..17cd8a6
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
@@ -0,0 +1,275 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrder } from '../Models/WmsInOutStockOrder'
+import { ElMessage } from 'element-plus'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { useFile } from './File'
+
+interface CurrentType {
+ row: any
+ index: number
+}
+export const useWmsInOutStockOrder = (props: any, ctx?: any) => {
+ const wmsInOutStockOrder = injectModel<WmsInOutStockOrder>('wmsInOutStockOrder')
+ const { exportFile } = useFile()
+ /**
+ * 澶撮儴閰嶇疆
+ */
+ const headers = ref({})
+ /**
+ * 鍔ㄦ�佸垪閰嶇疆
+ */
+ const wmsInOutStockOrderColumns = ref<Record<string, any>>([])
+ /**
+ * 鎼滅储鍊�
+ */
+ const search = ref('')
+
+ /**
+ * 鎺掑簭
+ */
+ const sort = ref(0)
+ /**
+ * 閫夋嫨椤�
+ */
+ const selection = ref([])
+ /**
+ * 褰撳墠閫変腑鐨勮
+ */
+ const current = ref<any>(null)
+ /**
+ * 鏁版嵁婧�
+ */
+ const dataSource: Ref<any[]> = ref([])
+
+ /**
+ * 琛ㄦ牸
+ */
+ const tableRef = ref()
+ const dialogConfig = reactive({
+ visible: false,
+ title: '',
+ isAdd: false,
+ })
+ const dialogConfigForQuery = reactive({
+ visible: false,
+ title: '',
+ isAdd: false,
+ })
+
+
+ const dialogSettingConfig = reactive({
+ visible: false,
+ title: '',
+ })
+
+ /**
+ * 鍒嗛〉鏁版嵁
+ */
+ const paginationParams = ref({})
+
+ /**
+ * 鎵撳紑璇︽儏
+ * @param row
+ */
+ const openDetail = (row: any) => {
+ current.value = row
+ dialogConfig.visible = true
+ dialogConfig.title = row.name
+ dialogConfig.isAdd = false
+ sort.value = row.sort
+ }
+
+ const contextMenu = [
+ {
+ label: '灞曞紑璇︽儏',
+ fn: (c: CurrentType) => {
+ current.value = null
+ sort.value = c.row.sort
+ nextTick(() => openDetail(c.row))
+ },
+ divided: true,
+ icon: 'o',
+ },
+ // {
+ // label: '鍚戜笂娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 1 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'up',
+ // },
+ // {
+ // label: '鍚戜笅娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 2 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'down',
+ // },
+ // {
+ // label: '鍒涘缓鍓湰',
+ // fn: async ({ row }: CurrentType) => {
+ // await wmsInOutStockOrder.cloneData([row.id])
+ // ElMessage.success('鍒涘缓鍓湰鎴愬姛')
+ // tableRef.value?.getList()
+ // },
+ // divided: true,
+ // icon: 'copy',
+ // },
+ {
+ label: '鍒犻櫎',
+ fn: async (c: CurrentType) => {
+ const names = selection.value.map((item: { orderNo: string }) => item.orderNo)
+ ConfirmBox(
+ `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.orderNo}`
+ ).then(async () => {
+ const ids = selection.value.map((item: { id: string }) => item.id)
+ await wmsInOutStockOrder.deleteWmsInOutStockOrders(ids.length ? ids : [c.row.id])
+ ElMessage.success('鍒犻櫎鎴愬姛')
+ tableRef.value.getList()
+ })
+ },
+ icon: 'close',
+ },
+ ]
+
+ const onCheck = (records: any) => {
+ selection.value = records
+ }
+
+ const onAddWmsInOutStockOrder = () => {
+ const params = tableRef.value?.getPaginationParams()
+ current.value = null
+ dialogConfig.visible = true
+ dialogConfig.isAdd = true
+ dialogConfig.title = '娣诲姞'
+ sort.value = params.totalCount + 1
+ }
+
+ //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€��
+ const onAdvancedQuery = () => {
+ const params = tableRef.value?.getPaginationParams()
+ current.value = null
+ dialogConfigForQuery.visible = true
+ dialogConfigForQuery.isAdd = true
+ dialogConfigForQuery.title = '楂樼骇鏌ヨ'
+ }
+
+ const onConfirmWmsInOutStockOrder = async () => {
+ dialogConfig.visible = false
+ if (dialogConfig.isAdd) {
+ tableRef.value?.scrollToRow({
+ skip: true,
+ })
+ } else {
+ await tableRef.value?.getList()
+ }
+ }
+ /**
+ * 琛岀偣鍑绘椂鏇存柊current
+ */
+ const onRowClick = ({ row }: any) => {
+ if (dialogConfig.visible && current.value) {
+ current.value = row
+ }
+ }
+ /**
+ * 瀵煎嚭
+ */
+ const onExport = (data={}) => {
+ //const params = tableRef.value?.getParams()
+ exportFile('/api/v1/HIAWms/wmsInOutStockOrder/export', data, 'wmsInOutStockOrder')
+ }
+
+ /**
+ * 鍏抽敭瀛楁悳绱�
+ */
+ const onSearch = () => {
+ tableRef.value?.getList({
+ Filter: search.value,
+ })
+ }
+
+ /**
+ * 閲嶇疆琛ㄦ牸鏁版嵁
+ */
+ const reloadList = () => {
+ tableRef.value?.getList()
+ }
+ /**
+ * 涓婁紶鎴愬姛
+ */
+ const onSuccess = () => {
+ tableRef.value?.getList()
+ ElMessage.success('瀵煎叆鎴愬姛')
+ }
+ /**
+ * 澶辫触
+ * @param err
+ */
+ const onError = (err: any) => {
+ try {
+ const message = JSON.parse(err.message)
+ ElMessage.error(message.msg)
+ } catch (error) {
+ ElMessage.error('瀵煎叆澶辫触')
+ }
+ }
+ /**
+ * 涓婁紶閽╁瓙
+ */
+ const onBeforeUpload = (file: File) => {
+ const format = ['xlsx', 'xls', 'csv']
+ if (!format.includes(file.name.split('.')[1])) {
+ ElMessage.error('瀵煎叆鏂囦欢鏍煎紡涓嶆纭紝璇峰鍏�.xlsx/.xls涓�.csv鏍煎紡鐨勬枃浠�')
+ return false
+ }
+ return true
+ }
+
+ onMounted(() => {
+ headers.value = {
+ Authorization: `Bearer ${sessionStorage.getItem('Token')}`,
+ 'X-Project': sessionStorage.getItem('X-Project'),
+ }
+ })
+
+ ctx.expose({
+ reloadList,
+ })
+
+ return {
+ dataSource,
+ contextMenu,
+ dialogConfig,
+ dialogConfigForQuery,
+ dialogSettingConfig,
+ tableRef,
+ current,
+ search,
+ sort,
+ wmsInOutStockOrderColumns,
+ paginationParams,
+ headers,
+ onBeforeUpload,
+ onError,
+ onSuccess,
+ openDetail,
+ onSearch,
+ onExport,
+ onRowClick,
+ onConfirmWmsInOutStockOrder,
+ onCheck,
+ onAddWmsInOutStockOrder,
+ onAdvancedQuery
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx
new file mode 100644
index 0000000..10e4804
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx
@@ -0,0 +1,387 @@
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDrawer } from '../Models/WmsInOutStockOrderDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderDrawer = (props: any, ctx?: any) => {
+ const wmsInOutStockOrderDrawer = injectModel<WmsInOutStockOrderDrawer>(
+ 'wmsInOutStockOrderDrawer'
+ )
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ const initiateData: Ref<Record<string, any>> = ref({})
+ const formData = ref<Record<string, any>>({})
+ // ref
+ const formRef = ref()
+
+ const disabled = ref(false)
+
+ const current = computed(() => {
+ return props.row || null
+ })
+
+ const datePicker = (attrs) => {
+ return (
+ <el-date-picker
+ type="date"
+ format="YYYY-MM-DD HH:mm:ss"
+ formatValue="YYYY-MM-DD HH:mm:ss"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min=""
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
+
+ const dateTimePicker = (attrs) => {
+ return (
+ <el-date-picker
+ type="datetime"
+ format="YYYY-MM-DD HH:mm:ss"
+ formatValue="YYYY-MM-DD HH:mm:ss"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const visible = computed({
+ get() {
+ return props.modelValue
+ },
+ set(val) {
+ ctx.emit('update:modelValue', val)
+ },
+ })
+ /**
+ * 娣诲姞鐨刦orm瀛楁
+ */
+ const formItems = reactive([
+ {
+ label: '鍗曟嵁缂栧彿',
+ prop: 'orderNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+ rules: [{ required: true, message: '鍗曟嵁缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '鍗曟嵁鐘舵��',
+ prop: 'orderStatus',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹姸鎬�',
+ rules: [{ required: true, message: '鍗曟嵁鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }],
+ },
+ {
+ label: '鐗╂枡鍚嶇О',
+ prop: 'materialName',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ },
+ {
+ label: '鐗╂枡浠跺彿',
+ prop: 'materialNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+ rules: [{ required: true, message: '鐗╂枡浠跺彿涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '鍨嬪彿',
+ prop: 'materialModel',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
+ },
+ {
+ label: '鎵规鍙�',
+ prop: 'materialBatch',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ壒娆″彿',
+ rules: [{ required: true, message: '鎵规鍙蜂笉鑳戒负绌�', trigger: 'blur' }],
+ },
+ {
+ label: '鍗曟嵁绫诲瀷',
+ prop: 'orderType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+ rules: [{ required: true, message: '鍗曟嵁绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '鎿嶄綔绫诲瀷锛堟灇涓惧�硷級',
+ prop: 'stockType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ搷浣滅被鍨嬶紙鏋氫妇鍊硷級',
+ rules: [
+ {
+ required: true,
+ message: '鎿嶄綔绫诲瀷锛堟灇涓惧�硷級涓嶈兘涓虹┖',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '鍗曟嵁鏁伴噺',
+ prop: 'materialNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹暟閲�',
+ rules: [{ required: true, message: '鍗曟嵁鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '涓嬪彂鏁伴噺',
+ prop: 'distributeNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ヤ笅鍙戞暟閲�',
+ rules: [{ required: true, message: '涓嬪彂鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '瀹屾垚鏁伴噺',
+ prop: 'completeNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ畬鎴愭暟閲�',
+ rules: [{ required: true, message: '瀹屾垚鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '浼樺厛绾�',
+ prop: 'priority',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ヤ紭鍏堢骇',
+ rules: [{ required: true, message: '浼樺厛绾т笉鑳戒负绌�', trigger: 'blur' }],
+ },
+ {
+ label: '鍏宠仈璁″垝缂栧彿',
+ prop: 'planNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ叧鑱旇鍒掔紪鍙�',
+ },
+ {
+ label: '鎿嶄綔鏃堕棿',
+ prop: 'operateTime',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(dateTimePicker, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ搷浣滄椂闂�',
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ娉�',
+ },
+ ])
+ /**
+ * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+ */
+ const checkIsEqualObject = () => {
+ const data = {
+ formData: formData.value,
+ }
+ const check = isEqual(initiateData.value, data)
+ return check
+ }
+
+ const onClose = (done: () => void) => {
+ if (visible.value) {
+ if (checkIsEqualObject()) {
+ visible.value = false
+ done && done()
+ } else {
+ ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
+ .then(() => {
+ onConfirm()
+ })
+ .catch(() => {
+ visible.value = false
+ done && done()
+ })
+ }
+ }
+ }
+ /**
+ * 淇濆瓨
+ */
+ const onConfirm = async () => {
+ await formRef.value?.validate()
+ const data = {
+ orderNo: formData.value.orderNo,
+ orderStatus: formData.value.orderStatus,
+ materialName: formData.value.materialName,
+ materialNo: formData.value.materialNo,
+ materialModel: formData.value.materialModel,
+ materialBatch: formData.value.materialBatch,
+ orderType: formData.value.orderType,
+ stockType: formData.value.stockType,
+ materialNumber: formData.value.materialNumber,
+ distributeNumber: formData.value.distributeNumber,
+ completeNumber: formData.value.completeNumber,
+ priority: formData.value.priority,
+ planNo: formData.value.planNo,
+ operateTime: formData.value.operateTime,
+ remark: formData.value.remark,
+ }
+ if (!current.value) {
+ await wmsInOutStockOrderDrawer.addWmsInOutStockOrder(data)
+ } else {
+ const id = current.value.id
+ await wmsInOutStockOrderDrawer.updateWmsInOutStockOrder(id, data)
+ }
+ ElMessage.success('淇濆瓨鎴愬姛')
+ ctx.emit('confirm')
+ }
+
+ const updateCheckData = () => {
+ initiateData.value = {
+ formData: {
+ ...formData.value,
+ },
+ }
+ }
+ const updateFormItemOptions = (propName: string, enumData: any[]) => {
+ const item = formItems.find((item) => item.prop === propName)
+ if (item && enumData) {
+ item.options = enumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ }
+ }
+ /**
+ * 閫氱敤鏌ヨ鏋氫妇
+ */
+ const commonQueryEnumForFrom = async () => {
+ const orderStatusEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+ EnumName: 'OrderStatusEnum',
+ })
+ updateFormItemOptions('orderStatus', orderStatusEnumEnum)
+ const orderTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+ EnumName: 'OrderTypeEnum',
+ })
+ updateFormItemOptions('orderType', orderTypeEnumEnum)
+ const stockTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+ EnumName: 'StockTypeEnum',
+ })
+ updateFormItemOptions('stockType', stockTypeEnumEnum)
+ }
+ commonQueryEnumForFrom()
+ /**
+ * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+ */
+ const onOpen = async () => {
+ if (current.value) {
+ const res = await wmsInOutStockOrderDrawer.getWmsInOutStockOrderDetail(
+ current.value
+ )
+
+ formData.value = {
+ orderNo: res.orderNo,
+ orderStatus: res.orderStatus,
+ materialName: res.materialName,
+ materialNo: res.materialNo,
+ materialModel: res.materialModel,
+ materialBatch: res.materialBatch,
+ orderType: res.orderType,
+ stockType: res.stockType,
+ materialNumber: res.materialNumber,
+ distributeNumber: res.distributeNumber,
+ completeNumber: res.completeNumber,
+ priority: res.priority,
+ planNo: res.planNo,
+ operateTime: res.operateTime,
+ remark: res.remark,
+ id: res.id,
+ }
+ disabled.value = true
+ updateCheckData()
+ } else {
+ formData.value = {}
+
+ disabled.value = false
+ updateCheckData()
+ }
+ }
+
+ watch(() => current.value, onOpen)
+
+ return {
+ formItems,
+ formData,
+ visible,
+ formRef,
+ onOpen,
+ onClose,
+ onConfirm,
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx
new file mode 100644
index 0000000..8ffb0d0
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx
@@ -0,0 +1,381 @@
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDrawer } from '../Models/WmsInOutStockOrderDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderQueryDrawer = (props: any, ctx?: any) => {
+ const wmsInOutStockOrderDrawer = injectModel<WmsInOutStockOrderDrawer>(
+ 'WmsInOutStockOrderDrawer'
+ )
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ const initiateData: Ref<Record<string, any>> = ref({})
+ const formData = ref<Record<string, any>>({})
+ // ref
+ const formRef = ref()
+
+ const disabled = ref(false)
+
+ const current = computed(() => {
+ return props.row || null
+ })
+
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min="1"
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
+
+ const datePickerRange = (attrs) => {
+ return (
+ <el-date-picker
+ type="daterange"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const dateTimePickerRange = (attrs) => {
+ return (
+ <el-date-picker
+ type="datetimerange"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const visible = computed({
+ get() {
+ return props.modelValue
+ },
+ set(val) {
+ ctx.emit('update:modelValue', val)
+ },
+ })
+ /**
+ * 娣诲姞鐨刦orm瀛楁
+ */
+ const formItems = reactive([
+ {
+ label: '鍗曟嵁缂栧彿',
+ prop: 'orderNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+ },
+ {
+ label: '鍗曟嵁鐘舵��',
+ prop: 'orderStatus',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹姸鎬�',
+ },
+ {
+ label: '鐗╂枡鍚嶇О',
+ prop: 'materialName',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ },
+ {
+ label: '鐗╂枡浠跺彿',
+ prop: 'materialNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+ },
+ {
+ label: '鍨嬪彿',
+ prop: 'materialModel',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
+ },
+ {
+ label: '鎵规鍙�',
+ prop: 'materialBatch',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ壒娆″彿',
+ },
+ {
+ label: '鍗曟嵁绫诲瀷',
+ prop: 'orderType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+ },
+ {
+ label: '鎿嶄綔绫诲瀷',
+ prop: 'stockType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ搷浣滅被鍨�',
+ },
+ {
+ label: '鍗曟嵁鏁伴噺',
+ prop: 'materialNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹暟閲�',
+ },
+ {
+ label: '涓嬪彂鏁伴噺',
+ prop: 'distributeNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ヤ笅鍙戞暟閲�',
+ },
+ {
+ label: '瀹屾垚鏁伴噺',
+ prop: 'completeNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ畬鎴愭暟閲�',
+ },
+ {
+ label: '浼樺厛绾�',
+ prop: 'priority',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ヤ紭鍏堢骇',
+ },
+ {
+ label: '鍏宠仈璁″垝缂栧彿',
+ prop: 'planNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ叧鑱旇鍒掔紪鍙�',
+ },
+ {
+ label: '鎿嶄綔鏃堕棿',
+ prop: 'operateTime',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(dateTimePickerRange, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ搷浣滄椂闂�',
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ娉�',
+ },
+ {
+ label: '鏄惁绂佺敤',
+ prop: 'isDisabled',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ槸鍚︾鐢�',
+ options: [
+ { label: '鏄�', value: true },
+ { label: '鍚�', value: false },
+ ],
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'creationTime',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(dateTimePickerRange, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ垱寤烘椂闂�',
+ },
+ ])
+ /**
+ * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+ */
+ const checkIsEqualObject = () => {
+ const data = {
+ formData: formData.value,
+ }
+ const check = isEqual(initiateData.value, data)
+ return check
+ }
+ const commonGetFormData = () => {
+ const data = {
+ orderNo: formData.value.orderNo || '',
+ orderStatus: formData.value.orderStatus || '',
+ materialName: formData.value.materialName || '',
+ materialNo: formData.value.materialNo || '',
+ materialModel: formData.value.materialModel || '',
+ materialBatch: formData.value.materialBatch || '',
+ orderType: formData.value.orderType || '',
+ stockType: formData.value.stockType || '',
+ materialNumber: formData.value.materialNumber || '',
+ distributeNumber: formData.value.distributeNumber || '',
+ completeNumber: formData.value.completeNumber || '',
+ priority: formData.value.priority || '',
+ planNo: formData.value.planNo || '',
+ operateTime: formData.value.operateTime || '',
+ remark: formData.value.remark || '',
+ isDisabled: formData.value.isDisabled || '',
+ creationTime: formData.value.creationTime || '',
+ }
+ return data
+ }
+ const onClose = (done: () => void) => {
+ if (visible.value) {
+ visible.value = false
+ const data = commonGetFormData()
+ ctx.emit('close', data)
+ }
+ }
+ /**
+ * 纭鏌ヨ
+ */
+ const onConfirmQuery = async () => {
+ const data = commonGetFormData()
+ ctx.emit('confirmQuery', data)
+ }
+ /**
+ * 閲嶇疆鏌ヨ
+ */
+ const onReset = async () => {
+ formData.value = {}
+ formData.value.OrderNo = ''
+ formData.value.OrderStatus = ''
+ formData.value.MaterialName = ''
+ formData.value.MaterialNo = ''
+ formData.value.MaterialModel = ''
+ formData.value.MaterialBatch = ''
+ formData.value.OrderType = ''
+ formData.value.StockType = ''
+ formData.value.MaterialNumber = ''
+ formData.value.DistributeNumber = ''
+ formData.value.CompleteNumber = ''
+ formData.value.Priority = ''
+ formData.value.PlanNo = ''
+ formData.value.OperateTime = ''
+ formData.value.Remark = ''
+ //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
+ ctx.emit('restQuery')
+ }
+
+ const updateCheckData = () => {
+ initiateData.value = {
+ formData: {
+ ...formData.value,
+ },
+ }
+ }
+ const updateFormItemOptions = (propName: string, enumData: any[]) => {
+ const item = formItems.find((item) => item.prop === propName)
+ if (item && enumData) {
+ item.options = enumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ }
+ }
+ /**
+ * 閫氱敤鏌ヨ鏋氫妇
+ */
+ const commonQueryEnumForFrom = async () => {
+ const orderStatusEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+ EnumName: 'OrderStatusEnum',
+ })
+ updateFormItemOptions('orderStatus', orderStatusEnumEnum)
+ const orderTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+ EnumName: 'OrderTypeEnum',
+ })
+ updateFormItemOptions('orderType', orderTypeEnumEnum)
+ const stockTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+ EnumName: 'StockTypeEnum',
+ })
+ updateFormItemOptions('stockType', stockTypeEnumEnum)
+ }
+ commonQueryEnumForFrom()
+ /**
+ * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+ */
+ const onOpen = async () => {
+ disabled.value = false
+ updateCheckData()
+ }
+
+ watch(() => current.value, onOpen)
+
+ return {
+ formItems,
+ formData,
+ visible,
+ formRef,
+ onOpen,
+ onClose,
+ onConfirmQuery,
+ onReset,
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
new file mode 100644
index 0000000..b8d8a45
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
@@ -0,0 +1,30 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsInOutStockOrder = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data)
+}
+
+/**
+ * 鎵归噺鍒犻櫎
+ * @returns
+ */
+export const deleteWmsInOutStockOrders = (ids: string[]) => {
+ return request({
+ data: ids,
+ url: '/api/v1/HIAWms/wmsInOutStockOrder',
+ method: 'delete',
+ })
+}
+
+/**
+ * 鍏嬮殕
+ * @returns
+ */
+export const cloneData = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrder/clone', data)
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts
new file mode 100644
index 0000000..1045f7f
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts
@@ -0,0 +1,34 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsInOutStockOrder = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data)
+}
+
+/**
+ * 鑾峰彇璇︽儏
+ * @returns
+ */
+export const getWmsInOutStockOrder = (id: string) => {
+ return request.get(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`)
+}
+
+/**
+ * 鏇存柊
+ * @returns
+ */
+export const updateWmsInOutStockOrder = (id: string, data: Record<string, any>) => {
+ return request.put(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`, data)
+}
+
+/**
+ * 鑾峰彇鏋氫妇
+ * @returns
+ */
+export const getWmsEnumData = (data: any) => {
+ return request.post('/api/v1/HIAWms/WmsEnum', data)
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts
new file mode 100644
index 0000000..b6702db
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts
@@ -0,0 +1,35 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsInOutStockOrder = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data)
+}
+
+/**
+ * 鑾峰彇璇︽儏
+ * @returns
+ */
+export const getWmsInOutStockOrder = (id: string) => {
+ return request.get(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`)
+}
+
+/**
+ * 鏇存柊
+ * @returns
+ */
+export const updateWmsInOutStockOrder = (id: string, data: Record<string, any>) => {
+ return request.put(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`, data)
+}
+
+/**
+ * 鑾峰彇鏋氫妇
+ * @returns
+ */
+export const getWmsEnumData = (data: any) => {
+ return request.post('/api/v1/HIAWms/WmsEnum', data)
+}
+
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
new file mode 100644
index 0000000..d262b6a
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
@@ -0,0 +1,41 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ deleteWmsInOutStockOrders,
+ addWmsInOutStockOrder,
+ cloneData,
+} from './Service/WmsInOutStockOrder'
+
+export class WmsInOutStockOrder extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ })
+ }
+ onMounted() {}
+ /**
+ * 鍒犻櫎
+ * @param id
+ * @returns
+ */
+ async deleteWmsInOutStockOrders(ids: string[]) {
+ return deleteWmsInOutStockOrders(ids)
+ }
+
+ /**
+ * 娣诲姞鏁版嵁
+ * @param data
+ * @returns
+ */
+ addWmsInOutStockOrder(data: Record<string, any>) {
+ return addWmsInOutStockOrder(data)
+ }
+
+ /**
+ * 鍏嬮殕
+ * @param ids
+ * @returns
+ */
+ cloneData(ids: string[]) {
+ return cloneData(ids)
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts
new file mode 100644
index 0000000..959ebf0
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ addWmsInOutStockOrder,
+ getWmsInOutStockOrder,
+ updateWmsInOutStockOrder,
+ getWmsEnumData,
+} from './Service/WmsInOutStockOrderDrawer'
+import { useGlobalState } from '@/libs/Store/Store'
+
+export class WmsInOutStockOrderDrawer extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ wmsInOutStockOrder: {},
+ })
+ }
+
+ /**
+ * 娣诲姞
+ * @param data
+ */
+ async addWmsInOutStockOrder(data: Record<string, any>) {
+ return addWmsInOutStockOrder(data)
+ }
+ /**
+ * 鏇存柊
+ * @param data
+ */
+ async updateWmsInOutStockOrder(id: string, data: Record<string, any>) {
+ return updateWmsInOutStockOrder(id, data)
+ }
+
+ /**
+ * 鑾峰彇璇︽儏
+ */
+ async getWmsInOutStockOrderDetail(current: any, id?: string) {
+ return getWmsInOutStockOrder(id || current?.id)
+ }
+
+ // 鑾峰彇鏋氫妇鍊�
+ async getWmsEnumData(data: Record<string, any>) {
+ return getWmsEnumData(data)
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts
new file mode 100644
index 0000000..da5ac0b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ addWmsInOutStockOrder,
+ getWmsInOutStockOrder,
+ updateWmsInOutStockOrder,
+ getWmsEnumData,
+} from './Service/WmsInOutStockOrderQueryDrawer'
+import { useGlobalState } from '@/libs/Store/Store'
+
+export class WmsInOutStockOrderQueryDrawer extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ wmsInOutStockOrder: {},
+ })
+ }
+
+ /**
+ * 娣诲姞
+ * @param data
+ */
+ async addWmsInOutStockOrder(data: Record<string, any>) {
+ return addWmsInOutStockOrder(data)
+ }
+ /**
+ * 鏇存柊
+ * @param data
+ */
+ async updateWmsInOutStockOrder(id: string, data: Record<string, any>) {
+ return updateWmsInOutStockOrder(id, data)
+ }
+
+ /**
+ * 鑾峰彇璇︽儏
+ */
+ async getWmsInOutStockOrderDetail(current: any, id?: string) {
+ return getWmsInOutStockOrder(id || current?.id)
+ }
+
+ // 鑾峰彇鏋氫妇鍊�
+ async getWmsEnumData(data: Record<string, any>) {
+ return getWmsEnumData(data)
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer {
+ width: 800px;
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx
new file mode 100644
index 0000000..c1f8c4e
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx
@@ -0,0 +1,61 @@
+import { SetupContext, defineComponent } from 'vue'
+import BaseDrawer from '@/components/BaseDrawer/BaseDrawer'
+import styles from './WmsInOutStockOrderDrawer.module.scss'
+import { useWmsInOutStockOrderDrawer } from '../../../../Controllers/WmsInOutStockOrderDrawer.tsx'
+import DyForm from '@/components/DyForm/DyForm'
+
+// @ts-ignore
+export default defineComponent<{
+ [key: string]: any
+}>({
+ name: '寮圭獥',
+ props: {
+ modelValue: {
+ type: Boolean,
+ default: false,
+ },
+ title: {
+ type: String,
+ default: '',
+ },
+ row: {
+ type: Object,
+ },
+ sort: {
+ type: Number,
+ default: 0,
+ },
+ },
+ emits: ['update:modelValue', 'close', 'submit', 'confirm'],
+ setup(props: Record<string, any>, ctx: SetupContext) {
+ const {
+ onClose,
+ onConfirm,
+ onOpen,
+ formRef,
+ visible,
+ formItems,
+ formData,
+ } = useWmsInOutStockOrderDrawer(props, ctx)
+ return () => (
+ <BaseDrawer
+ class={styles.drawer}
+ size="800px"
+ title={props.title || '娣诲姞'}
+ v-model={visible.value}
+ close-on-click-modal={true}
+ onConfirm={onConfirm}
+ onOpen={onOpen}
+ before-close={onClose}
+ onClose={onClose}
+ >
+ <DyForm
+ ref={formRef}
+ formData={formData.value}
+ labelWidth="106px"
+ formItemProps={formItems}
+ ></DyForm>
+ </BaseDrawer>
+ )
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer {
+ width: 800px;
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx
new file mode 100644
index 0000000..ef5ff4a
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx
@@ -0,0 +1,71 @@
+/*
+ * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗�
+*/
+import { SetupContext, defineComponent } from 'vue'
+import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer'
+import styles from './WmsInOutStockOrderQueryDrawer.module.scss'
+import { useWmsInOutStockOrderQueryDrawer } from '../../../../Controllers/WmsInOutStockOrderQueryDrawer.tsx'
+import DyForm from '@/components/DyForm/DyForm'
+
+// @ts-ignore
+export default defineComponent<{
+ [key: string]: any
+}>({
+ name: '寮圭獥',
+ props: {
+ //鏋氫妇绫诲瀷瀛楀吀
+ enumListDict:{
+ type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷
+ default: () => [] // 榛樿鍊�
+ },
+ modelValue: {
+ type: Boolean,
+ default: false,
+ },
+ title: {
+ type: String,
+ default: '',
+ },
+ row: {
+ type: Object,
+ },
+ sort: {
+ type: Number,
+ default: 0,
+ },
+ },
+ emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'],
+ setup(props: Record<string, any>, ctx: SetupContext) {
+ const {
+ onClose,
+ onConfirmQuery,
+ onOpen,
+ onReset,
+ formRef,
+ visible,
+ formItems,
+ formData,
+ } = useWmsInOutStockOrderQueryDrawer(props, ctx)
+ return () => (
+ <BaseQueryDrawer
+ class={styles.drawer}
+ size="800px"
+ title={props.title || '楂樼骇鏌ヨ'}
+ v-model={visible.value}
+ close-on-click-modal={true}
+ onReset={onReset}
+ onConfirmQueryForBase={onConfirmQuery}
+ onOpen={onOpen}
+ before-close={onClose}
+ onClose={onClose}
+ >
+ <DyForm
+ ref={formRef}
+ formData={formData.value}
+ labelWidth="106px"
+ formItemProps={formItems}
+ ></DyForm>
+ </BaseQueryDrawer>
+ )
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts
new file mode 100644
index 0000000..2b24077
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts
@@ -0,0 +1,81 @@
+export const columns = [
+ {
+ type: 'seq',
+ width: 60,
+ title: '搴忓彿',
+ },
+ {
+ field: 'orderNo',
+ title: '鍗曟嵁缂栧彿',
+ },
+ {
+ field: 'orderStatusDesc',
+ title: '鍗曟嵁鐘舵��',
+ },
+ {
+ field: 'materialName',
+ title: '鐗╂枡鍚嶇О',
+ },
+ {
+ field: 'materialNo',
+ title: '鐗╂枡浠跺彿',
+ },
+ {
+ field: 'materialModel',
+ title: '鍨嬪彿',
+ },
+ {
+ field: 'materialBatch',
+ title: '鎵规鍙�',
+ },
+ {
+ field: 'orderTypeDesc',
+ title: '鍗曟嵁绫诲瀷',
+ },
+ {
+ field: 'stockTypeDesc',
+ title: '鎿嶄綔绫诲瀷',
+ },
+ {
+ field: 'materialNumber',
+ title: '鍗曟嵁鏁伴噺',
+ },
+ {
+ field: 'distributeNumber',
+ title: '涓嬪彂鏁伴噺',
+ },
+ {
+ field: 'completeNumber',
+ title: '瀹屾垚鏁伴噺',
+ },
+ {
+ field: 'priority',
+ title: '浼樺厛绾�',
+ },
+ {
+ field: 'planNo',
+ title: '鍏宠仈璁″垝',
+ },
+ {
+ field: 'operateTime',
+ title: '鎿嶄綔鏃堕棿',
+ width: 180,
+ },
+ {
+ field: 'remark',
+ title: '澶囨敞',
+ },
+ // {
+ // field: 'sort',
+ // title: '鎺掑簭',
+ // },
+ {
+ field: 'creationTime',
+ title: '鍒涘缓鏃堕棿',
+ width: 180,
+ },
+ // {
+ // field: 'deletionTime',
+ // title: '',
+ // },
+]
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss
new file mode 100644
index 0000000..9de386f
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss
@@ -0,0 +1,113 @@
+.wmsInOutStockOrderContent {
+ width: 100%;
+ height: 100%;
+
+ .wmsInOutStockOrderList {
+ width: 100%;
+ height: calc(100% - 70px);
+ }
+ .headerContent {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 43px;
+ }
+ .header {
+ margin-bottom: 12px;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ }
+}
+
+.tagBox {
+ width: auto;
+ min-width: 80px;
+ height: 24px;
+ background: #ffffff;
+ border-radius: 19px 19px 19px 19px;
+ opacity: 1;
+ border: 1px dashed #bcc4cc;
+ width: 50px;
+ height: 20px;
+ font-size: 14px;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ color: #5a84ff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ // cursor: pointer;
+}
+
+.group {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.groupTable {
+ width: 100%;
+}
+
+.overBox {
+ width: 100%;
+ height: calc(100% - 20px);
+ overflow: auto;
+ :global(.cs-collapse-item__header) {
+ background-color: #f1f1f1;
+ padding: 0 20px;
+ height: 35px;
+ font-size: 16px;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 500;
+ }
+ :global(.cs-collapse-item__content) {
+ padding-bottom: 0px;
+ }
+}
+.groupHeader {
+ width: 100%;
+ height: 30px;
+ background: #ccc;
+}
+
+.hideBlock {
+ display: none;
+}
+.queryForm {
+ padding: 10px;
+ background: #f5f7fa;
+ margin-bottom: 0px;
+ border-radius: 4px;
+
+ .el-form-item {
+ margin-right: 20px;
+ margin-bottom: 0;
+
+ // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害
+ .el-input, .el-select {
+ width: 200px; // 璁剧疆缁熶竴鐨勫搴�
+ }
+
+ // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡
+ .el-select .el-input__wrapper {
+ height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷�
+ padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷�
+ }
+
+ // 鏃ユ湡閫夋嫨鍣ㄥ搴�
+ .el-date-editor {
+ width: 220px;
+ }
+ }
+}
+
+// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆
+.formItem {
+ width: 200px;
+
+ &.el-input, &.el-select {
+ width: 100%;
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
new file mode 100644
index 0000000..c606d18
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
@@ -0,0 +1,349 @@
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue'
+import type { Ref } from 'vue'
+import BaseTable from '@/components/Table/Table'
+import styles from './WmsInOutStockOrder.module.scss'
+import { useWmsInOutStockOrder } from '../../../Controllers/WmsInOutStockOrder'
+import IconButton from '@/components/IconButton/IconButton'
+import WmsInOutStockOrderDrawer from '../Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer'
+import WmsInOutStockOrderQueryDrawer from '../Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer'
+import Search from '@/components/Search/Search'
+import { columns } from './Config'
+import TdButton from '@/components/TdButton/TdButton'
+import { vPermission } from '@/libs/Permission/Permission'
+import { getWmsEnumData } from '@/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer'
+import dayjs from 'dayjs'
+import {
+ ElInput,
+ ElSelect,
+ ElOption,
+ ElDatePicker,
+ ElForm,
+ ElFormItem,
+} from 'element-plus'
+import { injectModel } from '@/libs/Provider/Provider'
+
+interface RenderTableType {
+ url?: string
+ dataSource: Ref<any[]>
+ isDrag?: boolean
+ isChecked?: boolean
+ isHidePagination?: boolean
+ params?: Record<string, any>
+ autoHeight?: boolean
+}
+
+export default defineComponent({
+ name: 'WmsInOutStockOrder',
+ directives: {
+ permission: vPermission,
+ },
+ setup(props, ctx) {
+ const {
+ dataSource,
+ contextMenu,
+ dialogConfig,
+ dialogConfigForQuery,
+ tableRef,
+ current,
+ search,
+ sort,
+ headers,
+ onError,
+ onSearch,
+ onRowClick,
+ onConfirmWmsInOutStockOrder,
+ onCheck,
+ onAddWmsInOutStockOrder,
+ onAdvancedQuery,
+ onExport,
+ openDetail,
+ onSuccess,
+ onBeforeUpload,
+ } = useWmsInOutStockOrder(props, ctx)
+
+ //瀹氫箟楂樼骇鏌ヨ寮曠敤
+ const wmsInOutStockOrderQueryDrawerRef = ref(null)
+ // 鏂板鐨勬煡璇㈡潯浠�
+ const queryForm = ref({
+ searchVal: '',
+ str_searchFormInputAttrs: [],
+ })
+ //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂)
+ const _searchFormInputAttrs = ref([
+ 'OrderNo',
+ 'MaterialNo',
+ 'MaterialBatch',
+ ])
+ const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鎵规')
+
+ // 鍔ㄦ�佹灇涓鹃�夐」
+ const enumOptions = reactive({
+ orderStatus: [] as Array<{ label: string; value: any }>,
+ orderType: [] as Array<{ label: string; value: any }>,
+ stockType: [] as Array<{ label: string; value: any }>,
+ })
+
+ // 鑾峰彇鏋氫妇鏁版嵁
+ const fetchEnumData = async () => {
+ try {
+ const orderStatusEnumData = await getWmsEnumData({
+ EnumName: 'OrderStatusEnum',
+ })
+ enumOptions.orderStatus = orderStatusEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ const orderTypeEnumData = await getWmsEnumData({
+ EnumName: 'OrderTypeEnum',
+ })
+ enumOptions.orderType = orderTypeEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ const stockTypeEnumData = await getWmsEnumData({
+ EnumName: 'StockTypeEnum',
+ })
+ enumOptions.stockType = stockTypeEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ } catch (error) {
+ console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+ }
+ }
+
+ // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+ onMounted(() => {
+ fetchEnumData()
+ })
+
+ // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�
+ const _curHighQueryData = ref({
+ searchVal: '',
+ str_searchFormInputAttrs: [],
+ })
+ // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級
+ const handleQueryForMain = async () => {
+ _curHighQueryData.value.searchVal = queryForm.value.searchVal
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
+ tableRef.value.getList(_curHighQueryData.value)
+ }
+ // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級
+ const handleQuery = async (extraParams = {}) => {
+ let filteredData = commonGetHighQueryForm(extraParams)
+ commonSaveCurHighQueryData(filteredData)
+ tableRef.value.getList(filteredData)
+ }
+ // 鏂扮増鐨勬煡璇㈤噸缃�
+ const resetQuery = () => {
+ queryForm.value.searchVal = ''
+ queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value
+ }
+ //鏂扮増鐨勫鍑烘柟娉�
+ const handleExport = () => {
+ onExport(_curHighQueryData.value)
+ }
+ // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶
+ const closeQuery = (extraParams = {}) => {
+ let filteredData = commonGetHighQueryForm(extraParams)
+ console.log('closeQuery鏂规硶')
+ console.log(filteredData)
+ commonSaveCurHighQueryData(filteredData)
+ }
+ //淇濆瓨鏌ヨ鍊�
+ const commonSaveCurHighQueryData = (filteredData = {}) => {
+ _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }
+ _curHighQueryData.value.searchVal = queryForm.value.searchVal
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
+ }
+ //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊�
+ const commonGetHighQueryForm = (extraParams = {}) => {
+ // 杩囨护鎺� undefined 鐨勫��
+ let filteredData = Object.assign(
+ {},
+ ...Object.entries(extraParams).map(([key, value]) =>
+ value !== undefined ? { [key]: value } : {}
+ )
+ )
+ //缁勫悎妯$硦鏌ヨ
+ filteredData.searchVal = queryForm.value.searchVal
+ filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value
+ return filteredData
+ }
+
+ /**
+ * @returns 琛ㄦ牸
+ */
+ const RenderBaseTable = (props: RenderTableType) => {
+ const {
+ url,
+ dataSource,
+ isDrag,
+ isChecked,
+ isHidePagination,
+ params,
+ autoHeight,
+ } = props
+
+ return (
+ <div
+ class={{
+ [styles.wmsInOutStockOrderList]: true,
+ }}
+ >
+ <BaseTable
+ ref={tableRef}
+ url={url}
+ sortUrlTpl="/api/v1/HIAWms/wmsInOutStockOrder/{id}/adjustsort/{sort}"
+ v-model:dataSource={dataSource.value}
+ columns={columns}
+ contextMenu={contextMenu}
+ params={params}
+ isDrag={isDrag}
+ isChecked={isChecked}
+ autoHeight={autoHeight}
+ onCheck={onCheck}
+ onRowClick={onRowClick}
+ isHidePagination={isHidePagination}
+ pageSize={20}
+ v-slots={{
+ operateTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.operateTime != null
+ ? dayjs(row.operateTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ creationTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.creationTime != null
+ ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ name: ({ row }: any) => {
+ return row?.name ? (
+ <TdButton
+ onClick={() => openDetail(row)}
+ text={<span style="color:#5a84ff">璇︽儏</span>}
+ icon="scale"
+ tip={row?.name}
+ hover
+ >
+ {row?.name}
+ </TdButton>
+ ) : (
+ '-'
+ )
+ },
+ }}
+ ></BaseTable>
+ </div>
+ )
+ }
+
+ return () => {
+ return (
+ <div class={styles.wmsInOutStockOrderContent}>
+ {/* 娣诲姞/缂栬緫 */}
+ <WmsInOutStockOrderDrawer
+ v-model={dialogConfig.visible}
+ title={dialogConfig.title}
+ row={current.value}
+ sort={sort.value}
+ onConfirm={onConfirmWmsInOutStockOrder}
+ />
+ {/* 楂樼骇鏌ヨ */}
+ <WmsInOutStockOrderQueryDrawer
+ ref="wmsInOutStockOrderQueryDrawerRef"
+ v-model={dialogConfigForQuery.visible}
+ title={dialogConfigForQuery.title}
+ row={current.value}
+ sort={sort.value}
+ onConfirmQuery={handleQuery}
+ onRestQuery={resetQuery}
+ onClose={closeQuery}
+ />
+
+ <div class={styles.headerContent}>
+ <div class={styles.header}>
+ <IconButton
+ v-permission="wmsInOutStockOrder-add"
+ icon="add-p"
+ onClick={onAddWmsInOutStockOrder}
+ type="primary"
+ >
+ 娣诲姞
+ </IconButton>
+ <el-divider direction="vertical" />
+
+ <el-divider direction="vertical" />
+ <el-upload
+ v-permission="wmsInOutStockOrder-import"
+ name="file"
+ accept=".xlsx,.xls,.csv"
+ show-file-list={false}
+ onError={onError}
+ onSuccess={onSuccess}
+ before-upload={onBeforeUpload}
+ headers={headers.value}
+ action="/api/v1/HIAWms/wmsInOutStockOrder/import"
+ >
+ <IconButton icon="in">瀵煎叆</IconButton>
+ </el-upload>
+
+ <IconButton
+ v-permission="wmsInOutStockOrder-output"
+ icon="out"
+ onClick={handleExport}
+ >
+ 瀵煎嚭
+ </IconButton>
+ </div>
+ <ElFormItem style={{ marginTop: '15px' }}>
+ <ElFormItem label="鍏抽敭瀛�">
+ <ElInput
+ v-model={queryForm.value.searchVal}
+ placeholder={searchFormInputAttrs_Placeholder.value}
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <IconButton
+ type="primary"
+ icon="search"
+ onClick={handleQueryForMain}
+ >
+ 鏌ヨ
+ </IconButton>
+ {/* <IconButton style="" icon="refresh" onClick={resetQuery}>
+ 閲嶇疆
+ </IconButton> */}
+ <IconButton
+ v-permission="wmsInOutStockOrder-add"
+ icon="search"
+ onClick={onAdvancedQuery}
+ type="primary"
+ >
+ 楂樼骇鏌ヨ
+ </IconButton>
+ </ElFormItem>
+ </div>
+
+ <RenderBaseTable
+ url="/api/v1/HIAWms/wmsInOutStockOrder/page"
+ dataSource={dataSource}
+ isChecked={true}
+ isDrag={true}
+ />
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss
new file mode 100644
index 0000000..c315e51
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss
@@ -0,0 +1,7 @@
+.WmsInOutStockOrder {
+ background-color: #fff;
+ border-radius: 5px 5px 0 0;
+ width: 100%;
+ height: 100%;
+ border: 1px solid #dbdbdb;
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx
new file mode 100644
index 0000000..3e7f297
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx
@@ -0,0 +1,80 @@
+import {
+ Component,
+ DefineComponent,
+ defineComponent,
+ markRaw,
+ ref,
+ SetupContext,
+ onMounted,
+} from 'vue'
+import styles from './WmsInOutStockOrder.module.scss'
+import Tab from '@/components/Tab/Tab'
+import { useProvideModels } from '@/libs/Provider/app'
+import { usePermission } from '@/libs/Permission/Permission'
+import { permissionCodes } from '../enum'
+import { ModuleType, TabItem } from '../type/Type'
+import { getEntityNames } from '@/hooks/hook'
+import TabPane from '@/components/Tab/TabPane'
+
+const Models: ModuleType = import.meta.glob('./config/*.json', {
+ eager: true,
+})
+
+const entityNames = getEntityNames(Models)
+
+const nameToLabelMap = [{ name: 'WmsInOutStockOrder', label: '鍑哄叆搴撳崟鎹�' }]
+
+export default defineComponent({
+ name: 'WmsInOutStockOrder',
+
+ setup(props, ctx: SetupContext) {
+ useProvideModels()
+ usePermission(props, permissionCodes)
+
+ const rf = ref<{
+ [key: string]: any
+ }>({})
+
+ const tabData = ref<TabItem[]>([])
+
+ const onTabChange = (v: string) => {
+ rf.value?.[v]?.reloadList()
+ }
+
+ const initTableData = async () => {
+ for (const i in entityNames) {
+ const name = entityNames[i]
+ const module = await import(`./Pages/${name}/${name}.tsx`)
+ const WmsInOutStockOrder = markRaw(module.default)
+ const foundLabel =
+ nameToLabelMap.find((item) => item.name === name)?.label || name
+ tabData.value.push({
+ label: foundLabel,
+ name,
+ component: WmsInOutStockOrder,
+ })
+ }
+ }
+
+ initTableData()
+
+ return () => {
+ return (
+ <div class={styles.WmsInOutStockOrder}>
+ <Tab data={tabData.value} type="list" onTab={onTabChange}>
+ {tabData.value.map((widgetInfo) => {
+ const Widget: any = widgetInfo.component
+ return (
+ <TabPane label={widgetInfo.label} name={widgetInfo.name}>
+ <Widget
+ ref={(r: any) => (rf.value['WmsInOutStockOrder'] = r)}
+ ></Widget>
+ </TabPane>
+ )
+ })}
+ </Tab>
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json
new file mode 100644
index 0000000..288b8fb
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json
@@ -0,0 +1,3 @@
+{
+ "name": "WmsInOutStockOrder"
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts
new file mode 100644
index 0000000..f270da6
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts
@@ -0,0 +1,15 @@
+export interface TabType {
+ label: string
+ name: string
+ columns?: any[]
+ data?: any[]
+ isFooter: boolean
+ [key: string]: any
+}
+
+export const permissionCodes = {
+ 'wmsInOutStockOrder-list': '鍒楄〃-鍒楄〃',
+ 'wmsInOutStockOrder-add': '鍒楄〃-娣诲姞',
+ 'wmsInOutStockOrder-import': '鍒楄〃-瀵煎叆',
+ 'wmsInOutStockOrder-output': '鍒楄〃-杈撳嚭',
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts
new file mode 100644
index 0000000..d565363
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts
@@ -0,0 +1,14 @@
+import WmsInOutStockOrder from './Views/WmsInOutStockOrder'
+import Setting from '@/components/Setting/Setting'
+import { provider } from '@/provider/index'
+import p from '../../assets/svg/p.svg'
+
+export default {
+ is: 'WmsInOutStockOrder',
+ name: '鍑哄叆搴撳崟鎹�',
+ category: 'run',
+ icon: p,
+ authorizationRequired: false,
+ canvasView: provider(WmsInOutStockOrder),
+ settingsView: Setting,
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts
new file mode 100644
index 0000000..c5f3197
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts
@@ -0,0 +1,45 @@
+import { Component } from 'vue'
+
+export interface DataItemType {
+ id?: string
+ name?: string
+ code?: string
+ description?: string
+ label?: string
+ value?: string | number
+}
+
+export interface WmsInOutStockOrderBaseType {
+ id?: string
+ name?: string
+ code?: string
+ value?: number
+ description?: string
+ options?: Array<DataItemType>
+ abilityValue?: number | string
+ data?: DataItemType
+ defaultValue?: string | number
+ flow: string
+}
+
+export interface FlowDefinitionType {
+ id?: string
+ name?: string
+ code?: string
+ description?: string
+}
+
+export type ModuleType = Record<
+ string,
+ {
+ default: Record<string, string>
+ name: string
+ }
+>
+
+export interface TabItem {
+ name: string
+ label: string
+ component: Component
+ hidden?: boolean
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts
new file mode 100644
index 0000000..9162fef
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts
@@ -0,0 +1,31 @@
+import { importFileToService, exportFileToClient } from '@/api/file'
+import { ElMessage } from 'element-plus'
+import { downloadFile } from '@/utils'
+import dayjs from 'dayjs'
+
+export const useFile = () => {
+ /**
+ * 瀵煎叆鏂囦欢
+ * @param url
+ */
+ const importFile = async (url: string, file: File) => {
+ const formData = new FormData()
+ formData.append('file', file)
+ await importFileToService(url, formData)
+ ElMessage('瀵煎叆鎴愬姛')
+ }
+ /**
+ * 瀵煎嚭鏂囦欢
+ * @param url
+ */
+ const exportFile = async (url: string, params: any, name: string) => {
+ const res = await exportFileToClient(url, params)
+ downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`)
+ ElMessage.success('瀵煎嚭鎴愬姛')
+ }
+
+ return {
+ importFile,
+ exportFile,
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts
new file mode 100644
index 0000000..e2787c4
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts
@@ -0,0 +1,275 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDetail } from '../Models/WmsInOutStockOrderDetail'
+import { ElMessage } from 'element-plus'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { useFile } from './File'
+
+interface CurrentType {
+ row: any
+ index: number
+}
+export const useWmsInOutStockOrderDetail = (props: any, ctx?: any) => {
+ const wmsInOutStockOrderDetail = injectModel<WmsInOutStockOrderDetail>('wmsInOutStockOrderDetail')
+ const { exportFile } = useFile()
+ /**
+ * 澶撮儴閰嶇疆
+ */
+ const headers = ref({})
+ /**
+ * 鍔ㄦ�佸垪閰嶇疆
+ */
+ const wmsInOutStockOrderDetailColumns = ref<Record<string, any>>([])
+ /**
+ * 鎼滅储鍊�
+ */
+ const search = ref('')
+
+ /**
+ * 鎺掑簭
+ */
+ const sort = ref(0)
+ /**
+ * 閫夋嫨椤�
+ */
+ const selection = ref([])
+ /**
+ * 褰撳墠閫変腑鐨勮
+ */
+ const current = ref<any>(null)
+ /**
+ * 鏁版嵁婧�
+ */
+ const dataSource: Ref<any[]> = ref([])
+
+ /**
+ * 琛ㄦ牸
+ */
+ const tableRef = ref()
+ const dialogConfig = reactive({
+ visible: false,
+ title: '',
+ isAdd: false,
+ })
+ const dialogConfigForQuery = reactive({
+ visible: false,
+ title: '',
+ isAdd: false,
+ })
+
+
+ const dialogSettingConfig = reactive({
+ visible: false,
+ title: '',
+ })
+
+ /**
+ * 鍒嗛〉鏁版嵁
+ */
+ const paginationParams = ref({})
+
+ /**
+ * 鎵撳紑璇︽儏
+ * @param row
+ */
+ const openDetail = (row: any) => {
+ current.value = row
+ dialogConfig.visible = true
+ dialogConfig.title = row.name
+ dialogConfig.isAdd = false
+ sort.value = row.sort
+ }
+
+ const contextMenu = [
+ {
+ label: '灞曞紑璇︽儏',
+ fn: (c: CurrentType) => {
+ current.value = null
+ sort.value = c.row.sort
+ nextTick(() => openDetail(c.row))
+ },
+ divided: true,
+ icon: 'o',
+ },
+ // {
+ // label: '鍚戜笂娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 1 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'up',
+ // },
+ // {
+ // label: '鍚戜笅娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 2 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'down',
+ // },
+ // {
+ // label: '鍒涘缓鍓湰',
+ // fn: async ({ row }: CurrentType) => {
+ // await wmsInOutStockOrderDetail.cloneData([row.id])
+ // ElMessage.success('鍒涘缓鍓湰鎴愬姛')
+ // tableRef.value?.getList()
+ // },
+ // divided: true,
+ // icon: 'copy',
+ // },
+ {
+ label: '鍒犻櫎',
+ fn: async (c: CurrentType) => {
+ const names = selection.value.map((item: { materialId: string }) => item.materialId)
+ ConfirmBox(
+ `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.materialId}`
+ ).then(async () => {
+ const ids = selection.value.map((item: { id: string }) => item.id)
+ await wmsInOutStockOrderDetail.deleteWmsInOutStockOrderDetails(ids.length ? ids : [c.row.id])
+ ElMessage.success('鍒犻櫎鎴愬姛')
+ tableRef.value.getList()
+ })
+ },
+ icon: 'close',
+ },
+ ]
+
+ const onCheck = (records: any) => {
+ selection.value = records
+ }
+
+ const onAddWmsInOutStockOrderDetail = () => {
+ const params = tableRef.value?.getPaginationParams()
+ current.value = null
+ dialogConfig.visible = true
+ dialogConfig.isAdd = true
+ dialogConfig.title = '娣诲姞'
+ sort.value = params.totalCount + 1
+ }
+
+ //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€��
+ const onAdvancedQuery = () => {
+ const params = tableRef.value?.getPaginationParams()
+ current.value = null
+ dialogConfigForQuery.visible = true
+ dialogConfigForQuery.isAdd = true
+ dialogConfigForQuery.title = '楂樼骇鏌ヨ'
+ }
+
+ const onConfirmWmsInOutStockOrderDetail = async () => {
+ dialogConfig.visible = false
+ if (dialogConfig.isAdd) {
+ tableRef.value?.scrollToRow({
+ skip: true,
+ })
+ } else {
+ await tableRef.value?.getList()
+ }
+ }
+ /**
+ * 琛岀偣鍑绘椂鏇存柊current
+ */
+ const onRowClick = ({ row }: any) => {
+ if (dialogConfig.visible && current.value) {
+ current.value = row
+ }
+ }
+ /**
+ * 瀵煎嚭
+ */
+ const onExport = (data={}) => {
+ //const params = tableRef.value?.getParams()
+ exportFile('/api/v1/HIAWms/wmsInOutStockOrderDetail/export', data, 'wmsInOutStockOrderDetail')
+ }
+
+ /**
+ * 鍏抽敭瀛楁悳绱�
+ */
+ const onSearch = () => {
+ tableRef.value?.getList({
+ Filter: search.value,
+ })
+ }
+
+ /**
+ * 閲嶇疆琛ㄦ牸鏁版嵁
+ */
+ const reloadList = () => {
+ tableRef.value?.getList()
+ }
+ /**
+ * 涓婁紶鎴愬姛
+ */
+ const onSuccess = () => {
+ tableRef.value?.getList()
+ ElMessage.success('瀵煎叆鎴愬姛')
+ }
+ /**
+ * 澶辫触
+ * @param err
+ */
+ const onError = (err: any) => {
+ try {
+ const message = JSON.parse(err.message)
+ ElMessage.error(message.msg)
+ } catch (error) {
+ ElMessage.error('瀵煎叆澶辫触')
+ }
+ }
+ /**
+ * 涓婁紶閽╁瓙
+ */
+ const onBeforeUpload = (file: File) => {
+ const format = ['xlsx', 'xls', 'csv']
+ if (!format.includes(file.name.split('.')[1])) {
+ ElMessage.error('瀵煎叆鏂囦欢鏍煎紡涓嶆纭紝璇峰鍏�.xlsx/.xls涓�.csv鏍煎紡鐨勬枃浠�')
+ return false
+ }
+ return true
+ }
+
+ onMounted(() => {
+ headers.value = {
+ Authorization: `Bearer ${sessionStorage.getItem('Token')}`,
+ 'X-Project': sessionStorage.getItem('X-Project'),
+ }
+ })
+
+ ctx.expose({
+ reloadList,
+ })
+
+ return {
+ dataSource,
+ contextMenu,
+ dialogConfig,
+ dialogConfigForQuery,
+ dialogSettingConfig,
+ tableRef,
+ current,
+ search,
+ sort,
+ wmsInOutStockOrderDetailColumns,
+ paginationParams,
+ headers,
+ onBeforeUpload,
+ onError,
+ onSuccess,
+ openDetail,
+ onSearch,
+ onExport,
+ onRowClick,
+ onConfirmWmsInOutStockOrderDetail,
+ onCheck,
+ onAddWmsInOutStockOrderDetail,
+ onAdvancedQuery
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx
new file mode 100644
index 0000000..e92cb95
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx
@@ -0,0 +1,293 @@
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDetailDrawer } from '../Models/WmsInOutStockOrderDetailDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderDetailDrawer = (props: any, ctx?: any) => {
+ const wmsInOutStockOrderDetailDrawer =
+ injectModel<WmsInOutStockOrderDetailDrawer>(
+ 'wmsInOutStockOrderDetailDrawer'
+ )
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ const initiateData: Ref<Record<string, any>> = ref({})
+ const formData = ref<Record<string, any>>({})
+ // ref
+ const formRef = ref()
+
+ const disabled = ref(false)
+
+ const current = computed(() => {
+ return props.row || null
+ })
+
+ const datePicker = (attrs) => {
+ return (
+ <el-date-picker
+ type="date"
+ format="YYYY-MM-DD HH:mm:ss"
+ formatValue="YYYY-MM-DD HH:mm:ss"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min="1"
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
+
+ const dateTimePicker = (attrs) => {
+ return (
+ <el-date-picker
+ type="datetime"
+ format="YYYY-MM-DD HH:mm:ss"
+ formatValue="YYYY-MM-DD HH:mm:ss"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const visible = computed({
+ get() {
+ return props.modelValue
+ },
+ set(val) {
+ ctx.emit('update:modelValue', val)
+ },
+ })
+ /**
+ * 娣诲姞鐨刦orm瀛楁
+ */
+ const formItems = reactive([
+ {
+ label: '鍗曟嵁缂栧彿',
+ prop: 'orderNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+ rules: [{ required: true, message: '鍗曟嵁缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '鐗╂枡鍞竴鐮�',
+ prop: 'materialId',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏敮涓�鐮�',
+ rules: [
+ { required: true, message: '鐗╂枡鍞竴鐮佷笉鑳戒负绌�', trigger: 'blur' },
+ ],
+ },
+ {
+ label: '鍗曟嵁绫诲瀷',
+ prop: 'orderType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+ rules: [
+ {
+ required: true,
+ message: '鍗曟嵁绫诲瀷涓嶈兘涓虹┖',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '鐗╂枡浠跺彿',
+ prop: 'materialNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+ rules: [{ required: true, message: '鐗╂枡浠跺彿涓嶈兘涓虹┖', trigger: 'blur' }],
+ },
+ {
+ label: '鐗╂枡鍚嶇О',
+ prop: 'materialName',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ },
+ {
+ label: '瀹瑰櫒缂栧彿',
+ prop: 'containerNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+ },
+ {
+ label: '鍨嬪彿',
+ prop: 'materialModel',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
+ },
+ {
+ label: '鐗╂枡鎵规',
+ prop: 'materialBatch',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欐壒娆�',
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ娉�',
+ },
+ ])
+ /**
+ * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+ */
+ const checkIsEqualObject = () => {
+ const data = {
+ formData: formData.value,
+ }
+ const check = isEqual(initiateData.value, data)
+ return check
+ }
+
+ const onClose = (done: () => void) => {
+ if (visible.value) {
+ if (checkIsEqualObject()) {
+ visible.value = false
+ done && done()
+ } else {
+ ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
+ .then(() => {
+ onConfirm()
+ })
+ .catch(() => {
+ visible.value = false
+ done && done()
+ })
+ }
+ }
+ }
+ /**
+ * 淇濆瓨
+ */
+ const onConfirm = async () => {
+ await formRef.value?.validate()
+ const data = {
+ orderNo: formData.value.orderNo,
+ materialId: formData.value.materialId,
+ orderType: formData.value.orderType,
+ materialNo: formData.value.materialNo,
+ materialName: formData.value.materialName,
+ containerNo: formData.value.containerNo,
+ materialModel: formData.value.materialModel,
+ materialBatch: formData.value.materialBatch,
+ remark: formData.value.remark,
+ }
+ if (!current.value) {
+ await wmsInOutStockOrderDetailDrawer.addWmsInOutStockOrderDetail(data)
+ } else {
+ const id = current.value.id
+ await wmsInOutStockOrderDetailDrawer.updateWmsInOutStockOrderDetail(
+ id,
+ data
+ )
+ }
+ ElMessage.success('淇濆瓨鎴愬姛')
+ ctx.emit('confirm')
+ }
+
+ const updateCheckData = () => {
+ initiateData.value = {
+ formData: {
+ ...formData.value,
+ },
+ }
+ }
+ const updateFormItemOptions = (propName: string, enumData: any[]) => {
+ const item = formItems.find((item) => item.prop === propName)
+ if (item && enumData) {
+ item.options = enumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ }
+ }
+ /**
+ * 閫氱敤鏌ヨ鏋氫妇
+ */
+ const commonQueryEnumForFrom = async () => {
+ const orderTypeEnumEnum =
+ await wmsInOutStockOrderDetailDrawer.getWmsEnumData({
+ EnumName: 'OrderTypeEnum',
+ })
+ updateFormItemOptions('orderType', orderTypeEnumEnum)
+ }
+ commonQueryEnumForFrom()
+ /**
+ * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+ */
+ const onOpen = async () => {
+ if (current.value) {
+ const res =
+ await wmsInOutStockOrderDetailDrawer.getWmsInOutStockOrderDetailDetail(
+ current.value
+ )
+
+ formData.value = {
+ orderNo: res.orderNo,
+ materialId: res.materialId,
+ orderType: res.orderType,
+ materialNo: res.materialNo,
+ materialName: res.materialName,
+ containerNo: res.containerNo,
+ materialModel: res.materialModel,
+ materialBatch: res.materialBatch,
+ remark: res.remark,
+ id: res.id,
+ }
+ disabled.value = true
+ updateCheckData()
+ } else {
+ formData.value = {}
+
+ disabled.value = false
+ updateCheckData()
+ }
+ }
+
+ watch(() => current.value, onOpen)
+
+ return {
+ formItems,
+ formData,
+ visible,
+ formRef,
+ onOpen,
+ onClose,
+ onConfirm,
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx
new file mode 100644
index 0000000..5031cdd
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx
@@ -0,0 +1,279 @@
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDetailDrawer } from '../Models/WmsInOutStockOrderDetailDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderDetailQueryDrawer = (
+ props: any,
+ ctx?: any
+) => {
+ const wmsInOutStockOrderDetailDrawer =
+ injectModel<WmsInOutStockOrderDetailDrawer>(
+ 'WmsInOutStockOrderDetailDrawer'
+ )
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ const initiateData: Ref<Record<string, any>> = ref({})
+ const formData = ref<Record<string, any>>({})
+ // ref
+ const formRef = ref()
+
+ const disabled = ref(false)
+
+ const current = computed(() => {
+ return props.row || null
+ })
+
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min="1"
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
+
+ const datePickerRange = (attrs) => {
+ return (
+ <el-date-picker
+ type="daterange"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const dateTimePickerRange = (attrs) => {
+ return (
+ <el-date-picker
+ type="datetimerange"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const visible = computed({
+ get() {
+ return props.modelValue
+ },
+ set(val) {
+ ctx.emit('update:modelValue', val)
+ },
+ })
+ /**
+ * 娣诲姞鐨刦orm瀛楁
+ */
+ const formItems = reactive([
+ {
+ label: '鍗曟嵁缂栧彿',
+ prop: 'orderNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+ },
+ {
+ label: '鐗╂枡鍞竴鐮�',
+ prop: 'materialId',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏敮涓�鐮�',
+ },
+ {
+ label: '鍗曟嵁绫诲瀷',
+ prop: 'orderType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+ },
+ {
+ label: '鐗╂枡浠跺彿',
+ prop: 'materialNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+ },
+ {
+ label: '鐗╂枡鍚嶇О',
+ prop: 'materialName',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ },
+ {
+ label: '瀹瑰櫒缂栧彿',
+ prop: 'containerNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+ },
+ {
+ label: '鍨嬪彿',
+ prop: 'materialModel',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
+ },
+ {
+ label: '鐗╂枡鎵规',
+ prop: 'materialBatch',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ step: 1,
+ precision: 0,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欐壒娆�',
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'creationTime',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(dateTimePickerRange, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ槸鍚︾鐢�',
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ娉�',
+ },
+ ])
+ /**
+ * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+ */
+ const checkIsEqualObject = () => {
+ const data = {
+ formData: formData.value,
+ }
+ const check = isEqual(initiateData.value, data)
+ return check
+ }
+ const commonGetFormData = () => {
+ const data = {
+ orderNo: formData.value.orderNo || '',
+ materialId: formData.value.materialId || '',
+ orderType: formData.value.orderType || '',
+ materialNo: formData.value.materialNo || '',
+ materialName: formData.value.materialName || '',
+ containerNo: formData.value.containerNo || '',
+ materialModel: formData.value.materialModel || '',
+ materialBatch: formData.value.materialBatch || '',
+ creationTime: formData.value.creationTime || '',
+ isDisabled: formData.value.isDisabled || '',
+ remark: formData.value.remark || '',
+ }
+ return data
+ }
+ const onClose = (done: () => void) => {
+ if (visible.value) {
+ visible.value = false
+ const data = commonGetFormData()
+ ctx.emit('close', data)
+ }
+ }
+ /**
+ * 纭鏌ヨ
+ */
+ const onConfirmQuery = async () => {
+ const data = commonGetFormData()
+ ctx.emit('confirmQuery', data)
+ }
+ /**
+ * 閲嶇疆鏌ヨ
+ */
+ const onReset = async () => {
+ formData.value = {}
+ formData.value.OrderNo = ''
+ formData.value.MaterialId = ''
+ formData.value.OrderType = ''
+ formData.value.MaterialNo = ''
+ formData.value.MaterialName = ''
+ formData.value.ContainerNo = ''
+ formData.value.MaterialModel = ''
+ formData.value.MaterialBatch = ''
+ formData.value.Remark = ''
+ //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
+ ctx.emit('restQuery')
+ }
+
+ const updateCheckData = () => {
+ initiateData.value = {
+ formData: {
+ ...formData.value,
+ },
+ }
+ }
+ const updateFormItemOptions = (propName: string, enumData: any[]) => {
+ const item = formItems.find((item) => item.prop === propName)
+ if (item && enumData) {
+ item.options = enumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ }
+ }
+ /**
+ * 閫氱敤鏌ヨ鏋氫妇
+ */
+ const commonQueryEnumForFrom = async () => {
+ const orderTypeEnumEnum =
+ await wmsInOutStockOrderDetailDrawer.getWmsEnumData({
+ EnumName: 'OrderTypeEnum',
+ })
+ updateFormItemOptions('orderType', orderTypeEnumEnum)
+ }
+ commonQueryEnumForFrom()
+ /**
+ * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+ */
+ const onOpen = async () => {
+ disabled.value = false
+ updateCheckData()
+ }
+
+ watch(() => current.value, onOpen)
+
+ return {
+ formItems,
+ formData,
+ visible,
+ formRef,
+ onOpen,
+ onClose,
+ onConfirmQuery,
+ onReset,
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts
new file mode 100644
index 0000000..65c433b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts
@@ -0,0 +1,30 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsInOutStockOrderDetail = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail', data)
+}
+
+/**
+ * 鎵归噺鍒犻櫎
+ * @returns
+ */
+export const deleteWmsInOutStockOrderDetails = (ids: string[]) => {
+ return request({
+ data: ids,
+ url: '/api/v1/HIAWms/wmsInOutStockOrderDetail',
+ method: 'delete',
+ })
+}
+
+/**
+ * 鍏嬮殕
+ * @returns
+ */
+export const cloneData = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail/clone', data)
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts
new file mode 100644
index 0000000..fd5f155
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts
@@ -0,0 +1,34 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsInOutStockOrderDetail = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail', data)
+}
+
+/**
+ * 鑾峰彇璇︽儏
+ * @returns
+ */
+export const getWmsInOutStockOrderDetail = (id: string) => {
+ return request.get(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`)
+}
+
+/**
+ * 鏇存柊
+ * @returns
+ */
+export const updateWmsInOutStockOrderDetail = (id: string, data: Record<string, any>) => {
+ return request.put(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`, data)
+}
+
+/**
+ * 鑾峰彇鏋氫妇
+ * @returns
+ */
+export const getWmsEnumData = (data: any) => {
+ return request.post('/api/v1/HIAWms/WmsEnum', data)
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts
new file mode 100644
index 0000000..9a6aee3
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts
@@ -0,0 +1,35 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsInOutStockOrderDetail = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail', data)
+}
+
+/**
+ * 鑾峰彇璇︽儏
+ * @returns
+ */
+export const getWmsInOutStockOrderDetail = (id: string) => {
+ return request.get(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`)
+}
+
+/**
+ * 鏇存柊
+ * @returns
+ */
+export const updateWmsInOutStockOrderDetail = (id: string, data: Record<string, any>) => {
+ return request.put(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`, data)
+}
+
+/**
+ * 鑾峰彇鏋氫妇
+ * @returns
+ */
+export const getWmsEnumData = (data: any) => {
+ return request.post('/api/v1/HIAWms/WmsEnum', data)
+}
+
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts
new file mode 100644
index 0000000..f1c2f53
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts
@@ -0,0 +1,41 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ deleteWmsInOutStockOrderDetails,
+ addWmsInOutStockOrderDetail,
+ cloneData,
+} from './Service/WmsInOutStockOrderDetail'
+
+export class WmsInOutStockOrderDetail extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ })
+ }
+ onMounted() {}
+ /**
+ * 鍒犻櫎
+ * @param id
+ * @returns
+ */
+ async deleteWmsInOutStockOrderDetails(ids: string[]) {
+ return deleteWmsInOutStockOrderDetails(ids)
+ }
+
+ /**
+ * 娣诲姞鏁版嵁
+ * @param data
+ * @returns
+ */
+ addWmsInOutStockOrderDetail(data: Record<string, any>) {
+ return addWmsInOutStockOrderDetail(data)
+ }
+
+ /**
+ * 鍏嬮殕
+ * @param ids
+ * @returns
+ */
+ cloneData(ids: string[]) {
+ return cloneData(ids)
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts
new file mode 100644
index 0000000..10cff66
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ addWmsInOutStockOrderDetail,
+ getWmsInOutStockOrderDetail,
+ updateWmsInOutStockOrderDetail,
+ getWmsEnumData,
+} from './Service/WmsInOutStockOrderDetailDrawer'
+import { useGlobalState } from '@/libs/Store/Store'
+
+export class WmsInOutStockOrderDetailDrawer extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ wmsInOutStockOrderDetail: {},
+ })
+ }
+
+ /**
+ * 娣诲姞
+ * @param data
+ */
+ async addWmsInOutStockOrderDetail(data: Record<string, any>) {
+ return addWmsInOutStockOrderDetail(data)
+ }
+ /**
+ * 鏇存柊
+ * @param data
+ */
+ async updateWmsInOutStockOrderDetail(id: string, data: Record<string, any>) {
+ return updateWmsInOutStockOrderDetail(id, data)
+ }
+
+ /**
+ * 鑾峰彇璇︽儏
+ */
+ async getWmsInOutStockOrderDetailDetail(current: any, id?: string) {
+ return getWmsInOutStockOrderDetail(id || current?.id)
+ }
+
+ // 鑾峰彇鏋氫妇鍊�
+ async getWmsEnumData(data: Record<string, any>) {
+ return getWmsEnumData(data)
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts
new file mode 100644
index 0000000..14646cd
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ addWmsInOutStockOrderDetail,
+ getWmsInOutStockOrderDetail,
+ updateWmsInOutStockOrderDetail,
+ getWmsEnumData,
+} from './Service/WmsInOutStockOrderDetailQueryDrawer'
+import { useGlobalState } from '@/libs/Store/Store'
+
+export class WmsInOutStockOrderDetailQueryDrawer extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ wmsInOutStockOrderDetail: {},
+ })
+ }
+
+ /**
+ * 娣诲姞
+ * @param data
+ */
+ async addWmsInOutStockOrderDetail(data: Record<string, any>) {
+ return addWmsInOutStockOrderDetail(data)
+ }
+ /**
+ * 鏇存柊
+ * @param data
+ */
+ async updateWmsInOutStockOrderDetail(id: string, data: Record<string, any>) {
+ return updateWmsInOutStockOrderDetail(id, data)
+ }
+
+ /**
+ * 鑾峰彇璇︽儏
+ */
+ async getWmsInOutStockOrderDetailDetail(current: any, id?: string) {
+ return getWmsInOutStockOrderDetail(id || current?.id)
+ }
+
+ // 鑾峰彇鏋氫妇鍊�
+ async getWmsEnumData(data: Record<string, any>) {
+ return getWmsEnumData(data)
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer {
+ width: 800px;
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx
new file mode 100644
index 0000000..ffbc3d5
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx
@@ -0,0 +1,61 @@
+import { SetupContext, defineComponent } from 'vue'
+import BaseDrawer from '@/components/BaseDrawer/BaseDrawer'
+import styles from './WmsInOutStockOrderDetailDrawer.module.scss'
+import { useWmsInOutStockOrderDetailDrawer } from '../../../../Controllers/WmsInOutStockOrderDetailDrawer.tsx'
+import DyForm from '@/components/DyForm/DyForm'
+
+// @ts-ignore
+export default defineComponent<{
+ [key: string]: any
+}>({
+ name: '寮圭獥',
+ props: {
+ modelValue: {
+ type: Boolean,
+ default: false,
+ },
+ title: {
+ type: String,
+ default: '',
+ },
+ row: {
+ type: Object,
+ },
+ sort: {
+ type: Number,
+ default: 0,
+ },
+ },
+ emits: ['update:modelValue', 'close', 'submit', 'confirm'],
+ setup(props: Record<string, any>, ctx: SetupContext) {
+ const {
+ onClose,
+ onConfirm,
+ onOpen,
+ formRef,
+ visible,
+ formItems,
+ formData,
+ } = useWmsInOutStockOrderDetailDrawer(props, ctx)
+ return () => (
+ <BaseDrawer
+ class={styles.drawer}
+ size="800px"
+ title={props.title || '娣诲姞'}
+ v-model={visible.value}
+ close-on-click-modal={true}
+ onConfirm={onConfirm}
+ onOpen={onOpen}
+ before-close={onClose}
+ onClose={onClose}
+ >
+ <DyForm
+ ref={formRef}
+ formData={formData.value}
+ labelWidth="106px"
+ formItemProps={formItems}
+ ></DyForm>
+ </BaseDrawer>
+ )
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer {
+ width: 800px;
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx
new file mode 100644
index 0000000..7c2386b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx
@@ -0,0 +1,71 @@
+/*
+ * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗�
+*/
+import { SetupContext, defineComponent } from 'vue'
+import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer'
+import styles from './WmsInOutStockOrderDetailQueryDrawer.module.scss'
+import { useWmsInOutStockOrderDetailQueryDrawer } from '../../../../Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx'
+import DyForm from '@/components/DyForm/DyForm'
+
+// @ts-ignore
+export default defineComponent<{
+ [key: string]: any
+}>({
+ name: '寮圭獥',
+ props: {
+ //鏋氫妇绫诲瀷瀛楀吀
+ enumListDict:{
+ type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷
+ default: () => [] // 榛樿鍊�
+ },
+ modelValue: {
+ type: Boolean,
+ default: false,
+ },
+ title: {
+ type: String,
+ default: '',
+ },
+ row: {
+ type: Object,
+ },
+ sort: {
+ type: Number,
+ default: 0,
+ },
+ },
+ emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'],
+ setup(props: Record<string, any>, ctx: SetupContext) {
+ const {
+ onClose,
+ onConfirmQuery,
+ onOpen,
+ onReset,
+ formRef,
+ visible,
+ formItems,
+ formData,
+ } = useWmsInOutStockOrderDetailQueryDrawer(props, ctx)
+ return () => (
+ <BaseQueryDrawer
+ class={styles.drawer}
+ size="800px"
+ title={props.title || '楂樼骇鏌ヨ'}
+ v-model={visible.value}
+ close-on-click-modal={true}
+ onReset={onReset}
+ onConfirmQueryForBase={onConfirmQuery}
+ onOpen={onOpen}
+ before-close={onClose}
+ onClose={onClose}
+ >
+ <DyForm
+ ref={formRef}
+ formData={formData.value}
+ labelWidth="106px"
+ formItemProps={formItems}
+ ></DyForm>
+ </BaseQueryDrawer>
+ )
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts
new file mode 100644
index 0000000..86f43fa
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts
@@ -0,0 +1,55 @@
+export const columns = [
+ {
+ type: 'seq',
+ width: 60,
+ title: '搴忓彿',
+ },
+ {
+ field: 'orderNo',
+ title: '鍗曟嵁缂栧彿',
+ },
+ {
+ field: 'materialId',
+ title: '鐗╂枡鍞竴鐮�',
+ },
+ {
+ field: 'orderTypeDesc',
+ title: '鍗曟嵁绫诲瀷',
+ },
+ {
+ field: 'materialNo',
+ title: '鐗╂枡浠跺彿',
+ },
+ {
+ field: 'materialName',
+ title: '鐗╂枡鍚嶇О',
+ },
+ {
+ field: 'containerNo',
+ title: '瀹瑰櫒缂栧彿',
+ },
+ {
+ field: 'materialModel',
+ title: '鍨嬪彿',
+ },
+ {
+ field: 'materialBatch',
+ title: '鐗╂枡鎵规',
+ },
+ // {
+ // field: 'creationTime',
+ // title: '鏄惁绂佺敤',
+ // },
+ // {
+ // field: 'deletionTime',
+ // title: '',
+ // },
+ {
+ field: 'remark',
+ title: '澶囨敞',
+ },
+ // {
+ // field: 'sort',
+ // title: '鎺掑簭',
+ // },
+]
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss
new file mode 100644
index 0000000..38a41bd
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss
@@ -0,0 +1,113 @@
+.wmsInOutStockOrderDetailContent {
+ width: 100%;
+ height: 100%;
+
+ .wmsInOutStockOrderDetailList {
+ width: 100%;
+ height: calc(100% - 70px);
+ }
+ .headerContent {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 43px;
+ }
+ .header {
+ margin-bottom: 12px;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ }
+}
+
+.tagBox {
+ width: auto;
+ min-width: 80px;
+ height: 24px;
+ background: #ffffff;
+ border-radius: 19px 19px 19px 19px;
+ opacity: 1;
+ border: 1px dashed #bcc4cc;
+ width: 50px;
+ height: 20px;
+ font-size: 14px;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ color: #5a84ff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ // cursor: pointer;
+}
+
+.group {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.groupTable {
+ width: 100%;
+}
+
+.overBox {
+ width: 100%;
+ height: calc(100% - 20px);
+ overflow: auto;
+ :global(.cs-collapse-item__header) {
+ background-color: #f1f1f1;
+ padding: 0 20px;
+ height: 35px;
+ font-size: 16px;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 500;
+ }
+ :global(.cs-collapse-item__content) {
+ padding-bottom: 0px;
+ }
+}
+.groupHeader {
+ width: 100%;
+ height: 30px;
+ background: #ccc;
+}
+
+.hideBlock {
+ display: none;
+}
+.queryForm {
+ padding: 10px;
+ background: #f5f7fa;
+ margin-bottom: 0px;
+ border-radius: 4px;
+
+ .el-form-item {
+ margin-right: 20px;
+ margin-bottom: 0;
+
+ // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害
+ .el-input, .el-select {
+ width: 200px; // 璁剧疆缁熶竴鐨勫搴�
+ }
+
+ // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡
+ .el-select .el-input__wrapper {
+ height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷�
+ padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷�
+ }
+
+ // 鏃ユ湡閫夋嫨鍣ㄥ搴�
+ .el-date-editor {
+ width: 220px;
+ }
+ }
+}
+
+// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆
+.formItem {
+ width: 200px;
+
+ &.el-input, &.el-select {
+ width: 100%;
+ }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
new file mode 100644
index 0000000..c464fc7
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
@@ -0,0 +1,362 @@
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue'
+import type { Ref } from 'vue'
+import BaseTable from '@/components/Table/Table'
+import styles from './WmsInOutStockOrderDetail.module.scss'
+import { useWmsInOutStockOrderDetail } from '../../../Controllers/WmsInOutStockOrderDetail'
+import IconButton from '@/components/IconButton/IconButton'
+import WmsInOutStockOrderDetailDrawer from '../Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer'
+import WmsInOutStockOrderDetailQueryDrawer from '../Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer'
+import Search from '@/components/Search/Search'
+import { columns } from './Config'
+import TdButton from '@/components/TdButton/TdButton'
+import { vPermission } from '@/libs/Permission/Permission'
+import { getWmsEnumData } from '@/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer'
+import dayjs from 'dayjs'
+import {
+ ElInput,
+ ElSelect,
+ ElOption,
+ ElDatePicker,
+ ElForm,
+ ElFormItem,
+} from 'element-plus'
+import { injectModel } from '@/libs/Provider/Provider'
+
+interface RenderTableType {
+ url?: string
+ dataSource: Ref<any[]>
+ isDrag?: boolean
+ isChecked?: boolean
+ isHidePagination?: boolean
+ params?: Record<string, any>
+ autoHeight?: boolean
+}
+
+export default defineComponent({
+ name: 'WmsInOutStockOrderDetail',
+ directives: {
+ permission: vPermission,
+ },
+ setup(props, ctx) {
+ const {
+ dataSource,
+ contextMenu,
+ dialogConfig,
+ dialogConfigForQuery,
+ tableRef,
+ current,
+ search,
+ sort,
+ headers,
+ onError,
+ onSearch,
+ onRowClick,
+ onConfirmWmsInOutStockOrderDetail,
+ onCheck,
+ onAddWmsInOutStockOrderDetail,
+ onAdvancedQuery,
+ onExport,
+ openDetail,
+ onSuccess,
+ onBeforeUpload,
+ } = useWmsInOutStockOrderDetail(props, ctx)
+
+ //瀹氫箟楂樼骇鏌ヨ寮曠敤
+ const wmsInOutStockOrderDetailQueryDrawerRef = ref(null)
+ // 鏂板鐨勬煡璇㈡潯浠�
+ const queryForm = ref({
+ searchVal: '',
+ str_searchFormInputAttrs: [],
+ })
+ //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂)
+ const _searchFormInputAttrs = ref(['OrderNo', 'MaterialNo', 'MaterialId'])
+ const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鐗╂枡ID')
+
+ // 鍔ㄦ�佹灇涓鹃�夐」
+ const enumOptions = reactive({
+ orderType: [] as Array<{ label: string; value: any }>,
+ })
+
+ // 鑾峰彇鏋氫妇鏁版嵁
+ const fetchEnumData = async () => {
+ try {
+ const orderTypeEnumData = await getWmsEnumData({
+ EnumName: 'OrderTypeEnum',
+ })
+ enumOptions.orderType = orderTypeEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ } catch (error) {
+ console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+ }
+ }
+
+ // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+ onMounted(() => {
+ fetchEnumData()
+ })
+
+ // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�
+ const _curHighQueryData = ref({
+ searchVal: '',
+ str_searchFormInputAttrs: [],
+ })
+ // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級
+ const handleQueryForMain = async () => {
+ _curHighQueryData.value.searchVal = queryForm.value.searchVal
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
+ tableRef.value.getList(_curHighQueryData.value)
+ }
+ // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級
+ const handleQuery = async (extraParams = {}) => {
+ let filteredData = commonGetHighQueryForm(extraParams)
+ commonSaveCurHighQueryData(filteredData)
+ tableRef.value.getList(filteredData)
+ }
+ // 鏂扮増鐨勬煡璇㈤噸缃�
+ const resetQuery = () => {
+ queryForm.value.searchVal = ''
+ queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value
+ }
+ //鏂扮増鐨勫鍑烘柟娉�
+ const handleExport = () => {
+ onExport(_curHighQueryData.value)
+ }
+ // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶
+ const closeQuery = (extraParams = {}) => {
+ let filteredData = commonGetHighQueryForm(extraParams)
+ console.log('closeQuery鏂规硶')
+ console.log(filteredData)
+ commonSaveCurHighQueryData(filteredData)
+ }
+ //淇濆瓨鏌ヨ鍊�
+ const commonSaveCurHighQueryData = (filteredData = {}) => {
+ _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }
+ _curHighQueryData.value.searchVal = queryForm.value.searchVal
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
+ }
+ //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊�
+ const commonGetHighQueryForm = (extraParams = {}) => {
+ // 杩囨护鎺� undefined 鐨勫��
+ let filteredData = Object.assign(
+ {},
+ ...Object.entries(extraParams).map(([key, value]) =>
+ value !== undefined ? { [key]: value } : {}
+ )
+ )
+ //缁勫悎妯$硦鏌ヨ
+ filteredData.searchVal = queryForm.value.searchVal
+ filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value
+ return filteredData
+ }
+
+ /**
+ * @returns 琛ㄦ牸
+ */
+ const RenderBaseTable = (props: RenderTableType) => {
+ const {
+ url,
+ dataSource,
+ isDrag,
+ isChecked,
+ isHidePagination,
+ params,
+ autoHeight,
+ } = props
+
+ return (
+ <div
+ class={{
+ [styles.wmsInOutStockOrderDetailList]: true,
+ }}
+ >
+ <BaseTable
+ ref={tableRef}
+ url={url}
+ sortUrlTpl="/api/v1/HIAWms/wmsInOutStockOrderDetail/{id}/adjustsort/{sort}"
+ v-model:dataSource={dataSource.value}
+ columns={columns}
+ contextMenu={contextMenu}
+ params={params}
+ isDrag={isDrag}
+ isChecked={isChecked}
+ autoHeight={autoHeight}
+ onCheck={onCheck}
+ onRowClick={onRowClick}
+ isHidePagination={isHidePagination}
+ pageSize={20}
+ v-slots={{
+ creationTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.creationTime != null
+ ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ deletionTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.deletionTime != null
+ ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ isDeleted: ({ row }: any) => {
+ return (
+ <div>
+ {row.isDeleted != null
+ ? row.isDeleted
+ ? '鏄�'
+ : '鍚�'
+ : '-'}
+ </div>
+ )
+ },
+ isDisabled: ({ row }: any) => {
+ return (
+ <div>
+ {row.isDisabled != null
+ ? row.isDisabled
+ ? '鏄�'
+ : '鍚�'
+ : '-'}
+ </div>
+ )
+ },
+ lastModificationTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.lastModificationTime != null
+ ? dayjs(row.lastModificationTime).format(
+ 'YYYY-MM-DD HH:mm:ss'
+ )
+ : '-'}
+ </div>
+ )
+ },
+ name: ({ row }: any) => {
+ return row?.name ? (
+ <TdButton
+ onClick={() => openDetail(row)}
+ text={<span style="color:#5a84ff">璇︽儏</span>}
+ icon="scale"
+ tip={row?.name}
+ hover
+ >
+ {row?.name}
+ </TdButton>
+ ) : (
+ '-'
+ )
+ },
+ }}
+ ></BaseTable>
+ </div>
+ )
+ }
+
+ return () => {
+ return (
+ <div class={styles.wmsInOutStockOrderDetailContent}>
+ {/* 娣诲姞/缂栬緫 */}
+ <WmsInOutStockOrderDetailDrawer
+ v-model={dialogConfig.visible}
+ title={dialogConfig.title}
+ row={current.value}
+ sort={sort.value}
+ onConfirm={onConfirmWmsInOutStockOrderDetail}
+ />
+ {/* 楂樼骇鏌ヨ */}
+ <WmsInOutStockOrderDetailQueryDrawer
+ ref="wmsInOutStockOrderDetailQueryDrawerRef"
+ v-model={dialogConfigForQuery.visible}
+ title={dialogConfigForQuery.title}
+ row={current.value}
+ sort={sort.value}
+ onConfirmQuery={handleQuery}
+ onRestQuery={resetQuery}
+ onClose={closeQuery}
+ />
+
+ <div class={styles.headerContent}>
+ <div class={styles.header}>
+ <IconButton
+ v-permission="wmsInOutStockOrderDetail-add"
+ icon="add-p"
+ onClick={onAddWmsInOutStockOrderDetail}
+ type="primary"
+ >
+ 娣诲姞
+ </IconButton>
+ <el-divider direction="vertical" />
+
+ <el-divider direction="vertical" />
+ <el-upload
+ v-permission="wmsInOutStockOrderDetail-import"
+ name="file"
+ accept=".xlsx,.xls,.csv"
+ show-file-list={false}
+ onError={onError}
+ onSuccess={onSuccess}
+ before-upload={onBeforeUpload}
+ headers={headers.value}
+ action="/api/v1/HIAWms/wmsInOutStockOrderDetail/import"
+ >
+ <IconButton icon="in">瀵煎叆</IconButton>
+ </el-upload>
+
+ <IconButton
+ v-permission="wmsInOutStockOrderDetail-output"
+ icon="out"
+ onClick={handleExport}
+ >
+ 瀵煎嚭
+ </IconButton>
+ </div>
+ <ElFormItem style={{ marginTop: '15px' }}>
+ <ElFormItem label="鍏抽敭瀛�">
+ <ElInput
+ v-model={queryForm.value.searchVal}
+ placeholder={searchFormInputAttrs_Placeholder.value}
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <IconButton
+ type="primary"
+ icon="search"
+ onClick={handleQueryForMain}
+ >
+ 鏌ヨ
+ </IconButton>
+ {/* <IconButton style="" icon="refresh" onClick={resetQuery}>
+ 閲嶇疆
+ </IconButton> */}
+ <IconButton
+ v-permission="wmsInOutStockOrderDetail-add"
+ icon="search"
+ onClick={onAdvancedQuery}
+ type="primary"
+ >
+ 楂樼骇鏌ヨ
+ </IconButton>
+ </ElFormItem>
+ </div>
+
+ <RenderBaseTable
+ url="/api/v1/HIAWms/wmsInOutStockOrderDetail/page"
+ dataSource={dataSource}
+ isChecked={true}
+ isDrag={true}
+ />
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss
new file mode 100644
index 0000000..3464bec
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss
@@ -0,0 +1,7 @@
+.WmsInOutStockOrderDetail {
+ background-color: #fff;
+ border-radius: 5px 5px 0 0;
+ width: 100%;
+ height: 100%;
+ border: 1px solid #dbdbdb;
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx
new file mode 100644
index 0000000..7695430
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx
@@ -0,0 +1,80 @@
+import {
+ Component,
+ DefineComponent,
+ defineComponent,
+ markRaw,
+ ref,
+ SetupContext,
+ onMounted,
+} from 'vue'
+import styles from './WmsInOutStockOrderDetail.module.scss'
+import Tab from '@/components/Tab/Tab'
+import { useProvideModels } from '@/libs/Provider/app'
+import { usePermission } from '@/libs/Permission/Permission'
+import { permissionCodes } from '../enum'
+import { ModuleType, TabItem } from '../type/Type'
+import { getEntityNames } from '@/hooks/hook'
+import TabPane from '@/components/Tab/TabPane'
+
+const Models: ModuleType = import.meta.glob('./config/*.json', {
+ eager: true,
+})
+
+const entityNames = getEntityNames(Models)
+
+const nameToLabelMap = [{ name: 'WmsInOutStockOrderDetail', label: '鍑哄叆搴撳崟鎹鎯�' }]
+
+export default defineComponent({
+ name: 'WmsInOutStockOrderDetail',
+
+ setup(props, ctx: SetupContext) {
+ useProvideModels()
+ usePermission(props, permissionCodes)
+
+ const rf = ref<{
+ [key: string]: any
+ }>({})
+
+ const tabData = ref<TabItem[]>([])
+
+ const onTabChange = (v: string) => {
+ rf.value?.[v]?.reloadList()
+ }
+
+ const initTableData = async () => {
+ for (const i in entityNames) {
+ const name = entityNames[i]
+ const module = await import(`./Pages/${name}/${name}.tsx`)
+ const WmsInOutStockOrderDetail = markRaw(module.default)
+ const foundLabel =
+ nameToLabelMap.find((item) => item.name === name)?.label || name
+ tabData.value.push({
+ label: foundLabel,
+ name,
+ component: WmsInOutStockOrderDetail,
+ })
+ }
+ }
+
+ initTableData()
+
+ return () => {
+ return (
+ <div class={styles.WmsInOutStockOrderDetail}>
+ <Tab data={tabData.value} type="list" onTab={onTabChange}>
+ {tabData.value.map((widgetInfo) => {
+ const Widget: any = widgetInfo.component
+ return (
+ <TabPane label={widgetInfo.label} name={widgetInfo.name}>
+ <Widget
+ ref={(r: any) => (rf.value['WmsInOutStockOrderDetail'] = r)}
+ ></Widget>
+ </TabPane>
+ )
+ })}
+ </Tab>
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json
new file mode 100644
index 0000000..81b0735
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json
@@ -0,0 +1,3 @@
+{
+ "name": "WmsInOutStockOrderDetail"
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts
new file mode 100644
index 0000000..8983ab2
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts
@@ -0,0 +1,15 @@
+export interface TabType {
+ label: string
+ name: string
+ columns?: any[]
+ data?: any[]
+ isFooter: boolean
+ [key: string]: any
+}
+
+export const permissionCodes = {
+ 'wmsInOutStockOrderDetail-list': '鍒楄〃-鍒楄〃',
+ 'wmsInOutStockOrderDetail-add': '鍒楄〃-娣诲姞',
+ 'wmsInOutStockOrderDetail-import': '鍒楄〃-瀵煎叆',
+ 'wmsInOutStockOrderDetail-output': '鍒楄〃-杈撳嚭',
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts
new file mode 100644
index 0000000..215bc5c
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts
@@ -0,0 +1,14 @@
+import WmsInOutStockOrderDetail from './Views/WmsInOutStockOrderDetail'
+import Setting from '@/components/Setting/Setting'
+import { provider } from '@/provider/index'
+import p from '../../assets/svg/p.svg'
+
+export default {
+ is: 'WmsInOutStockOrderDetail',
+ name: '鍑哄叆搴撳崟鎹鎯�',
+ category: 'run',
+ icon: p,
+ authorizationRequired: false,
+ canvasView: provider(WmsInOutStockOrderDetail),
+ settingsView: Setting,
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts
new file mode 100644
index 0000000..002a2e7
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts
@@ -0,0 +1,45 @@
+import { Component } from 'vue'
+
+export interface DataItemType {
+ id?: string
+ name?: string
+ code?: string
+ description?: string
+ label?: string
+ value?: string | number
+}
+
+export interface WmsInOutStockOrderDetailBaseType {
+ id?: string
+ name?: string
+ code?: string
+ value?: number
+ description?: string
+ options?: Array<DataItemType>
+ abilityValue?: number | string
+ data?: DataItemType
+ defaultValue?: string | number
+ flow: string
+}
+
+export interface FlowDefinitionType {
+ id?: string
+ name?: string
+ code?: string
+ description?: string
+}
+
+export type ModuleType = Record<
+ string,
+ {
+ default: Record<string, string>
+ name: string
+ }
+>
+
+export interface TabItem {
+ name: string
+ label: string
+ component: Component
+ hidden?: boolean
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
index c25a205..5f684e3 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
@@ -140,11 +140,11 @@
placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�',
},
{
- label: '鏈哄瀷',
+ label: '鍨嬪彿',
prop: 'materialModel',
el: 'input',
//disabled: disabled,
- placeholder: '璇疯緭鍏ユ満鍨�',
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
},
{
label: '鎿嶄綔鏃堕棿',
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
index 55bb4ef..a7c29a5 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
@@ -116,11 +116,11 @@
placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
},
{
- label: '鏈哄瀷',
+ label: '鍨嬪彿',
prop: 'materialModel',
el: 'input',
//disabled: disabled,
- placeholder: '璇疯緭鍏ユ満鍨�',
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
},
{
label: '鎿嶄綔鏃堕棿',
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
index 98c79fe..3e45265 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
@@ -42,7 +42,7 @@
},
{
field: 'materialModel',
- title: '鏈哄瀷',
+ title: '鍨嬪彿',
},
{
field: 'remark',
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
index e75418d..46b3313 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
@@ -236,7 +236,7 @@
<el-divider direction="vertical" />
<el-divider direction="vertical" />
- <el-upload
+ {/* <el-upload
v-permission="wmsMaterialContainer-import"
name="file"
accept=".xlsx,.xls,.csv"
@@ -256,7 +256,7 @@
onClick={handleExport}
>
瀵煎嚭
- </IconButton>
+ </IconButton> */}
</div>
<ElFormItem style={{ marginTop: '15px' }}>
<ElFormItem label="鍏抽敭瀛�">
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
index 661855a..a8fbaff 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
@@ -1,80 +1,80 @@
-import {
- Component,
- DefineComponent,
- defineComponent,
- markRaw,
- ref,
- SetupContext,
- onMounted,
-} from 'vue'
-import styles from './WmsMaterialContainer.module.scss'
-import Tab from '@/components/Tab/Tab'
-import { useProvideModels } from '@/libs/Provider/app'
-import { usePermission } from '@/libs/Permission/Permission'
-import { permissionCodes } from '../enum'
-import { ModuleType, TabItem } from '../type/Type'
-import { getEntityNames } from '@/hooks/hook'
-import TabPane from '@/components/Tab/TabPane'
-
-const Models: ModuleType = import.meta.glob('./config/*.json', {
- eager: true,
-})
-
-const entityNames = getEntityNames(Models)
-
-const nameToLabelMap = [{ name: 'WmsMaterialContainer', label: '鐗╂枡瀹瑰櫒鍏崇郴' }]
-
-export default defineComponent({
- name: 'WmsMaterialContainer',
-
- setup(props, ctx: SetupContext) {
- useProvideModels()
- usePermission(props, permissionCodes)
-
- const rf = ref<{
- [key: string]: any
- }>({})
-
- const tabData = ref<TabItem[]>([])
-
- const onTabChange = (v: string) => {
- rf.value?.[v]?.reloadList()
- }
-
- const initTableData = async () => {
- for (const i in entityNames) {
- const name = entityNames[i]
- const module = await import(`./Pages/${name}/${name}.tsx`)
- const WmsMaterialContainer = markRaw(module.default)
- const foundLabel =
- nameToLabelMap.find((item) => item.name === name)?.label || name
- tabData.value.push({
- label: foundLabel,
- name,
- component: WmsMaterialContainer,
- })
- }
- }
-
- initTableData()
-
- return () => {
- return (
- <div class={styles.WmsMaterialContainer}>
- <Tab data={tabData.value} type="list" onTab={onTabChange}>
- {tabData.value.map((widgetInfo) => {
- const Widget: any = widgetInfo.component
- return (
- <TabPane label={widgetInfo.label} name={widgetInfo.name}>
- <Widget
- ref={(r: any) => (rf.value['WmsMaterialContainer'] = r)}
- ></Widget>
- </TabPane>
- )
- })}
- </Tab>
- </div>
- )
- }
- },
-})
+import {
+ Component,
+ DefineComponent,
+ defineComponent,
+ markRaw,
+ ref,
+ SetupContext,
+ onMounted,
+} from 'vue'
+import styles from './WmsMaterialContainer.module.scss'
+import Tab from '@/components/Tab/Tab'
+import { useProvideModels } from '@/libs/Provider/app'
+import { usePermission } from '@/libs/Permission/Permission'
+import { permissionCodes } from '../enum'
+import { ModuleType, TabItem } from '../type/Type'
+import { getEntityNames } from '@/hooks/hook'
+import TabPane from '@/components/Tab/TabPane'
+
+const Models: ModuleType = import.meta.glob('./config/*.json', {
+ eager: true,
+})
+
+const entityNames = getEntityNames(Models)
+
+const nameToLabelMap = [{ name: 'WmsMaterialContainer', label: '鐗╂枡瀹瑰櫒鍏崇郴' }]
+
+export default defineComponent({
+ name: 'WmsMaterialContainer',
+
+ setup(props, ctx: SetupContext) {
+ useProvideModels()
+ usePermission(props, permissionCodes)
+
+ const rf = ref<{
+ [key: string]: any
+ }>({})
+
+ const tabData = ref<TabItem[]>([])
+
+ const onTabChange = (v: string) => {
+ rf.value?.[v]?.reloadList()
+ }
+
+ const initTableData = async () => {
+ for (const i in entityNames) {
+ const name = entityNames[i]
+ const module = await import(`./Pages/${name}/${name}.tsx`)
+ const WmsMaterialContainer = markRaw(module.default)
+ const foundLabel =
+ nameToLabelMap.find((item) => item.name === name)?.label || name
+ tabData.value.push({
+ label: foundLabel,
+ name,
+ component: WmsMaterialContainer,
+ })
+ }
+ }
+
+ initTableData()
+
+ return () => {
+ return (
+ <div class={styles.WmsMaterialContainer}>
+ <Tab data={tabData.value} type="list" onTab={onTabChange}>
+ {tabData.value.map((widgetInfo) => {
+ const Widget: any = widgetInfo.component
+ return (
+ <TabPane label={widgetInfo.label} name={widgetInfo.name}>
+ <Widget
+ ref={(r: any) => (rf.value['WmsMaterialContainer'] = r)}
+ ></Widget>
+ </TabPane>
+ )
+ })}
+ </Tab>
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs
new file mode 100644
index 0000000..7b56035
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs
@@ -0,0 +1,279 @@
+using CmsQueryExtensions.Extension;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹煡璇㈠弬鏁�
+/// </summary>
+public class GetWmsInOutStockOrderInput : ExtensiblePagedAndSortedResultRequestDto
+{
+
+ #region 鍏抽敭瀛楁煡璇�
+
+ /// <summary>
+ /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛�
+ /// </summary>
+ public string searchVal { get; set; }
+
+ /// <summary>
+ /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ [NoAutoQuery]
+ public string str_searchFormInputAttrs { get; set; }
+ /// <summary>
+ /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ public List<string> searchFormInputAttrs
+ {
+ get
+ {
+ if (!string.IsNullOrEmpty(str_searchFormInputAttrs))
+ {
+ return str_searchFormInputAttrs.Split(',').ToList();
+ }
+ return new List<string>();
+ }
+ }
+
+ #endregion
+
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁缂栧彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum OrderNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍗曟嵁鐘舵��
+ /// </summary>
+ public int? OrderStatus { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鐘舵��-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum OrderStatus_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鍨嬪彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialModel_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public string MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷
+ /// </summary>
+ public int? OrderType { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum OrderType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public int? StockType { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum StockType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鍗曟嵁鏁伴噺
+ /// </summary>
+ public int? MaterialNumber { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialNumber_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 涓嬪彂鏁伴噺
+ /// </summary>
+ public int? DistributeNumber { get; set; }
+
+ /// <summary>
+ /// 涓嬪彂鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum DistributeNumber_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 瀹屾垚鏁伴噺
+ /// </summary>
+ public int? CompleteNumber { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum CompleteNumber_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ public int? Priority { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Priority_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鍏宠仈璁″垝缂栧彿
+ /// </summary>
+ public string PlanNo { get; set; }
+
+ /// <summary>
+ /// 鍏宠仈璁″垝缂栧彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum PlanNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎿嶄綔鏃堕棿
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> OperateTime { get; set; }
+
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int? Sort { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> CreationTime { get; set; }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string CreatorId { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> LastModificationTime { get; set; }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string LastModifierId { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ public bool? IsDeleted { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string DeleterId { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> DeletionTime { get; set; }
+
+
+
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs
new file mode 100644
index 0000000..067d083
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹垱寤哄弬鏁板璞�
+/// </summary>
+public class WmsInOutStockOrderCreateDto : WmsInOutStockOrderCreateOrUpdateDtoBase
+{
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public virtual int? Sort { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; } = false;
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..de0c11c
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs
@@ -0,0 +1,115 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using System;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹垱寤烘垨鏇存柊鍩虹被
+/// </summary>
+public abstract class WmsInOutStockOrderCreateOrUpdateDtoBase : ExtensibleEntityDto
+{
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鐘舵��
+ /// </summary>
+ public OrderStatusEnum OrderStatus { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? MaterialName { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public string MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷
+ /// </summary>
+ public OrderTypeEnum OrderType { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public StockTypeEnum StockType { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鏁伴噺
+ /// </summary>
+ public int MaterialNumber { get; set; }
+
+ /// <summary>
+ /// 涓嬪彂鏁伴噺
+ /// </summary>
+ public int DistributeNumber { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏁伴噺
+ /// </summary>
+ public int CompleteNumber { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ public int Priority { get; set; }
+
+ /// <summary>
+ /// 鍏宠仈璁″垝缂栧彿
+ /// </summary>
+ public string? PlanNo { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔鏃堕棿
+ /// </summary>
+ public DateTime? OperateTime { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int Sort { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? CreatorId { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? LastModifierId { get; set; }
+
+
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderCreateOrUpdateDtoBase"/> class.
+ /// </summary>
+ public WmsInOutStockOrderCreateOrUpdateDtoBase() : base(false)
+ {
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs
new file mode 100644
index 0000000..01e07b4
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs
@@ -0,0 +1,191 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CmsQueryExtensions;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.Domain.Entities;
+
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹暟鎹弬鏁板璞�
+/// </summary>
+public class WmsInOutStockOrderDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鐘舵��
+ /// </summary>
+ public OrderStatusEnum OrderStatus { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鐘舵��
+ /// </summary>
+ public string OrderStatusDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(OrderStatus);
+ }
+ }
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? MaterialName { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public string MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷
+ /// </summary>
+ public OrderTypeEnum OrderType { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷
+ /// </summary>
+ public string OrderTypeDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(OrderType);
+ }
+ }
+ /// <summary>
+ /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public StockTypeEnum StockType { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public string StockTypeDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(StockType);
+ }
+ }
+ /// <summary>
+ /// 鍗曟嵁鏁伴噺
+ /// </summary>
+ public int MaterialNumber { get; set; }
+
+ /// <summary>
+ /// 涓嬪彂鏁伴噺
+ /// </summary>
+ public int DistributeNumber { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏁伴噺
+ /// </summary>
+ public int CompleteNumber { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ public int Priority { get; set; }
+
+ /// <summary>
+ /// 鍏宠仈璁″垝缂栧彿
+ /// </summary>
+ public string? PlanNo { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔鏃堕棿
+ /// </summary>
+ public DateTime? OperateTime { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int Sort { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public ExtraPropertyDictionary? ExtraProperties { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? ConcurrencyStamp { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public DateTime CreationTime { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? CreatorId { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public DateTime? LastModificationTime { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? LastModifierId { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public bool IsDeleted { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? DeleterId { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public DateTime? DeletionTime { get; set; }
+
+
+
+ /// <summary>
+ /// Gets the export data.
+ /// </summary>
+ /// <returns></returns>
+ public Dictionary<string, object> GetExportData()
+ {
+ var exportData = new Dictionary<string, object>();
+ foreach (var property in this.GetType().GetProperties())
+ {
+ exportData.Add(property.Name, property.GetValue(this));
+ }
+
+ return exportData;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs
new file mode 100644
index 0000000..f4dcc3d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs
@@ -0,0 +1,127 @@
+using MiniExcelLibs.Attributes;
+using System.ComponentModel.DataAnnotations;
+using System;
+using System.ComponentModel;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鍑烘ā鍨�
+/// </summary>
+public class WmsInOutStockOrderExportModel
+{
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ [ExcelColumn(Name = "鍗曟嵁缂栧彿", Width = 25)]
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鐘舵��
+ /// </summary>
+ [ExcelColumn(Name = "鍗曟嵁鐘舵��", Width = 25)]
+ public OrderStatusEnum OrderStatus { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡鍚嶇О", Width = 25)]
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡浠跺彿", Width = 25)]
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ [ExcelColumn(Name = "鍨嬪彿", Width = 25)]
+ public string MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ [ExcelColumn(Name = "鎵规鍙�", Width = 25)]
+ public string MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷
+ /// </summary>
+ [ExcelColumn(Name = "鍗曟嵁绫诲瀷", Width = 25)]
+ public OrderTypeEnum OrderType { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ [ExcelColumn(Name = "鎿嶄綔绫诲瀷锛堟灇涓惧�硷級", Width = 25)]
+ public StockTypeEnum StockType { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁鏁伴噺
+ /// </summary>
+ [ExcelColumn(Name = "鍗曟嵁鏁伴噺", Width = 25)]
+ public int MaterialNumber { get; set; }
+
+ /// <summary>
+ /// 涓嬪彂鏁伴噺
+ /// </summary>
+ [ExcelColumn(Name = "涓嬪彂鏁伴噺", Width = 25)]
+ public int DistributeNumber { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏁伴噺
+ /// </summary>
+ [ExcelColumn(Name = "瀹屾垚鏁伴噺", Width = 25)]
+ public int CompleteNumber { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ [ExcelColumn(Name = "浼樺厛绾�", Width = 25)]
+ public int Priority { get; set; }
+
+ /// <summary>
+ /// 鍏宠仈璁″垝缂栧彿
+ /// </summary>
+ [ExcelColumn(Name = "鍏宠仈璁″垝缂栧彿", Width = 25)]
+ public string PlanNo { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔鏃堕棿
+ /// </summary>
+ [ExcelColumn(Name = "鎿嶄綔鏃堕棿", Width = 25)]
+ public DateTime OperateTime { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [ExcelColumn(Name = "澶囨敞", Width = 25)]
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ [ExcelColumn(Name = "鎺掑簭", Width = 25)]
+ public int Sort { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
+ public bool? IsDisabled { get; set; }
+
+
+
+ public Dictionary<string, object> GetExportData()
+ {
+ var exportData = new Dictionary<string, object>();
+ foreach (var property in this.GetType().GetProperties())
+ {
+ exportData.Add(property.Name, property.GetValue(this));
+ }
+
+ return exportData;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs
new file mode 100644
index 0000000..b5dc3cf
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Domain.Entities;
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹洿鏂板弬鏁板璞�
+/// </summary>
+public class WmsInOutStockOrderUpdateDto : WmsInOutStockOrderCreateOrUpdateDtoBase, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 骞跺彂鎴�
+ /// </summary>
+ public string ConcurrencyStamp { get; set; }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs
new file mode 100644
index 0000000..bae4c72
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs
@@ -0,0 +1,33 @@
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder
+{
+ /// <summary>
+ /// 鍑哄叆搴撳崟鎹鍏ユā鍨�
+ /// </summary>
+ public class WmsInOutStockOrdersImportModel
+ {
+ private List<WmsInOutStockOrderImportModel> _WmsInOutStockOrders = new();
+
+ public List<WmsInOutStockOrderImportModel> WmsInOutStockOrders
+ {
+ get => _WmsInOutStockOrders;
+ set
+ {
+ _WmsInOutStockOrders = value;
+ var rowIndex = 2;
+ _WmsInOutStockOrders?.ForEach(x => x.RowIndex = rowIndex++);
+ }
+ }
+
+ /// <summary>
+ /// 鍑哄叆搴撳崟鎹鍏ユā鍨�
+ /// </summary>
+ public class WmsInOutStockOrderImportModel : WmsInOutStockOrderExportModel
+ {
+ /// <summary>
+ /// 琛屽彿
+ /// </summary>
+ public int RowIndex { get; set; }
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs
new file mode 100644
index 0000000..8053222
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs
@@ -0,0 +1,221 @@
+using CmsQueryExtensions.Extension;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呮煡璇㈠弬鏁�
+/// </summary>
+public class GetWmsInOutStockOrderDetailInput : ExtensiblePagedAndSortedResultRequestDto
+{
+
+ #region 鍏抽敭瀛楁煡璇�
+
+ /// <summary>
+ /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛�
+ /// </summary>
+ public string searchVal { get; set; }
+
+ /// <summary>
+ /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ [NoAutoQuery]
+ public string str_searchFormInputAttrs { get; set; }
+ /// <summary>
+ /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ public List<string> searchFormInputAttrs
+ {
+ get
+ {
+ if (!string.IsNullOrEmpty(str_searchFormInputAttrs))
+ {
+ return str_searchFormInputAttrs.Split(',').ToList();
+ }
+ return new List<string>();
+ }
+ }
+
+ #endregion
+
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁缂栧彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum OrderNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public int? OrderType { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum OrderType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 瀹瑰櫒缂栧彿
+ /// </summary>
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 瀹瑰櫒缂栧彿-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialModel_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鐗╂枡鎵规
+ /// </summary>
+ public int? MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵规-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> CreationTime { get; set; }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string CreatorId { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string DeleterId { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> DeletionTime { get; set; }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ public bool? IsDeleted { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ ///
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> LastModificationTime { get; set; }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string LastModifierId { get; set; }
+
+ /// <summary>
+ /// -鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int? Sort { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs
new file mode 100644
index 0000000..1233b14
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呭垱寤哄弬鏁板璞�
+/// </summary>
+public class WmsInOutStockOrderDetailCreateDto : WmsInOutStockOrderDetailCreateOrUpdateDtoBase
+{
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public virtual int? Sort { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; } = false;
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..fe136c9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs
@@ -0,0 +1,85 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using System;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呭垱寤烘垨鏇存柊鍩虹被
+/// </summary>
+public abstract class WmsInOutStockOrderDetailCreateOrUpdateDtoBase : ExtensibleEntityDto
+{
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public OrderTypeEnum OrderType { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? MaterialName { get; set; }
+
+ /// <summary>
+ /// 瀹瑰櫒缂栧彿
+ /// </summary>
+ public string? ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵规
+ /// </summary>
+ public int? MaterialBatch { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? CreatorId { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? LastModifierId { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int Sort { get; set; }
+
+
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailCreateOrUpdateDtoBase"/> class.
+ /// </summary>
+ public WmsInOutStockOrderDetailCreateOrUpdateDtoBase() : base(false)
+ {
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs
new file mode 100644
index 0000000..0036c12
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs
@@ -0,0 +1,141 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CmsQueryExtensions;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.Domain.Entities;
+
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呮暟鎹弬鏁板璞�
+/// </summary>
+public class WmsInOutStockOrderDetailDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public OrderTypeEnum OrderType { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ public string OrderTypeDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(OrderType);
+ }
+ }
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? MaterialName { get; set; }
+
+ /// <summary>
+ /// 瀹瑰櫒缂栧彿
+ /// </summary>
+ public string? ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵规
+ /// </summary>
+ public int? MaterialBatch { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? ConcurrencyStamp { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public DateTime CreationTime { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? CreatorId { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? DeleterId { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public DateTime? DeletionTime { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public ExtraPropertyDictionary? ExtraProperties { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public bool IsDeleted { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public DateTime? LastModificationTime { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string? LastModifierId { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int Sort { get; set; }
+
+
+
+ /// <summary>
+ /// Gets the export data.
+ /// </summary>
+ /// <returns></returns>
+ public Dictionary<string, object> GetExportData()
+ {
+ var exportData = new Dictionary<string, object>();
+ foreach (var property in this.GetType().GetProperties())
+ {
+ exportData.Add(property.Name, property.GetValue(this));
+ }
+
+ return exportData;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs
new file mode 100644
index 0000000..9f5fc91
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs
@@ -0,0 +1,91 @@
+using MiniExcelLibs.Attributes;
+using System.ComponentModel.DataAnnotations;
+using System;
+using System.ComponentModel;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呭鍑烘ā鍨�
+/// </summary>
+public class WmsInOutStockOrderDetailExportModel
+{
+ /// <summary>
+ /// 鍗曟嵁缂栧彿
+ /// </summary>
+ [ExcelColumn(Name = "鍗曟嵁缂栧彿", Width = 25)]
+ public string OrderNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡鍞竴鐮�", Width = 25)]
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+ /// </summary>
+ [ExcelColumn(Name = "鍗曟嵁绫诲瀷锛堟灇涓惧�硷級", Width = 25)]
+ public OrderTypeEnum OrderType { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡浠跺彿
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡浠跺彿", Width = 25)]
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡鍚嶇О", Width = 25)]
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 瀹瑰櫒缂栧彿
+ /// </summary>
+ [ExcelColumn(Name = "瀹瑰櫒缂栧彿", Width = 25)]
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ [ExcelColumn(Name = "鏈哄瀷", Width = 25)]
+ public string MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵规
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡鎵规", Width = 25)]
+ public int? MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [ExcelColumn(Name = "澶囨敞", Width = 25)]
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ [ExcelColumn(Name = "鎺掑簭", Width = 25)]
+ public int Sort { get; set; }
+
+
+
+ public Dictionary<string, object> GetExportData()
+ {
+ var exportData = new Dictionary<string, object>();
+ foreach (var property in this.GetType().GetProperties())
+ {
+ exportData.Add(property.Name, property.GetValue(this));
+ }
+
+ return exportData;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs
new file mode 100644
index 0000000..871e3cd
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Domain.Entities;
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呮洿鏂板弬鏁板璞�
+/// </summary>
+public class WmsInOutStockOrderDetailUpdateDto : WmsInOutStockOrderDetailCreateOrUpdateDtoBase, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 骞跺彂鎴�
+ /// </summary>
+ public string ConcurrencyStamp { get; set; }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs
new file mode 100644
index 0000000..1bdd9ef
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs
@@ -0,0 +1,33 @@
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail
+{
+ /// <summary>
+ /// 鍑哄叆搴撳崟鎹鎯呭鍏ユā鍨�
+ /// </summary>
+ public class WmsInOutStockOrderDetailsImportModel
+ {
+ private List<WmsInOutStockOrderDetailImportModel> _WmsInOutStockOrderDetails = new();
+
+ public List<WmsInOutStockOrderDetailImportModel> WmsInOutStockOrderDetails
+ {
+ get => _WmsInOutStockOrderDetails;
+ set
+ {
+ _WmsInOutStockOrderDetails = value;
+ var rowIndex = 2;
+ _WmsInOutStockOrderDetails?.ForEach(x => x.RowIndex = rowIndex++);
+ }
+ }
+
+ /// <summary>
+ /// 鍑哄叆搴撳崟鎹鎯呭鍏ユā鍨�
+ /// </summary>
+ public class WmsInOutStockOrderDetailImportModel : WmsInOutStockOrderDetailExportModel
+ {
+ /// <summary>
+ /// 琛屽彿
+ /// </summary>
+ public int RowIndex { get; set; }
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs
new file mode 100644
index 0000000..30b056b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+using Volo.Abp.Application.Services;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹簲鐢ㄦ湇鍔℃帴鍙�
+/// </summary>
+public interface IWmsInOutStockOrderAppService : ICrudAppService<WmsInOutStockOrderDto, Guid, GetWmsInOutStockOrderInput, WmsInOutStockOrderCreateDto, WmsInOutStockOrderUpdateDto>
+{
+ /// <summary>
+ /// 鍏嬮殕鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ Task<List<WmsInOutStockOrderDto>> CloneAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// 鍒犻櫎鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ Task DeleteManyAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="sort"></param>
+ /// <returns></returns>
+ Task AdjustSortAsync(Guid id, int sort);
+
+ /// <summary>
+ /// 瀵煎叆鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task ImportAsync(WmsInOutStockOrdersImportModel input);
+
+ /// <summary>
+ /// 瀵煎嚭鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderInput input);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs
new file mode 100644
index 0000000..af51c62
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+using Volo.Abp.Application.Services;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呭簲鐢ㄦ湇鍔℃帴鍙�
+/// </summary>
+public interface IWmsInOutStockOrderDetailAppService : ICrudAppService<WmsInOutStockOrderDetailDto, Guid, GetWmsInOutStockOrderDetailInput, WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetailUpdateDto>
+{
+ /// <summary>
+ /// 鍏嬮殕鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ Task<List<WmsInOutStockOrderDetailDto>> CloneAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// 鍒犻櫎鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ Task DeleteManyAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="sort"></param>
+ /// <returns></returns>
+ Task AdjustSortAsync(Guid id, int sort);
+
+ /// <summary>
+ /// 瀵煎叆鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task ImportAsync(WmsInOutStockOrderDetailsImportModel input);
+
+ /// <summary>
+ /// 瀵煎嚭鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderDetailInput input);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs
new file mode 100644
index 0000000..73ae65e
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs
@@ -0,0 +1,450 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared;
+using CmsQueryExtensions;
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder;
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.ObjectExtending;
+using Volo.Abp.ObjectMapping;
+
+namespace CMS.Plugin.HIAWms.Application.Implements;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹簲鐢ㄦ湇鍔�
+/// </summary>
+public class WmsInOutStockOrderAppService : CMSPluginAppService, IWmsInOutStockOrderAppService
+{
+ private readonly IWmsInOutStockOrderRepository wmsInOutStockOrderRepository;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderAppService"/> class.
+ /// </summary>
+ /// <param name="WmsInOutStockOrderRepository">The task job repository.</param>
+ public WmsInOutStockOrderAppService(IWmsInOutStockOrderRepository _WmsInOutStockOrderRepository)
+ {
+ wmsInOutStockOrderRepository = _WmsInOutStockOrderRepository;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎸囧畾鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsInOutStockOrderDto> GetAsync(Guid id)
+ {
+ return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(await wmsInOutStockOrderRepository.GetAsync(id));
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public virtual async Task<PagedResultDto<WmsInOutStockOrderDto>> GetListAsync(GetWmsInOutStockOrderInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsInOutStockOrder.Sort);
+ }
+
+ #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = DynamicGetQueryParams(input);
+
+ #endregion
+
+ var count = await wmsInOutStockOrderRepository.GetCountAsync(whereConditions);
+ var list = await wmsInOutStockOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
+
+ return new PagedResultDto<WmsInOutStockOrderDto>(count, ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(list));
+ }
+
+ /// <summary>
+ /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ /// </summary>
+ /// <param name="input">杈撳叆鍙傛暟</param>
+ /// <returns></returns>
+ private FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> DynamicGetQueryParams(GetWmsInOutStockOrderInput input)
+ {
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockOrder, GetWmsInOutStockOrderInput>(input);
+ if (!whereConditions.IsSuccess)
+ {
+ throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg);
+ }
+
+ //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�
+ Expression<Func<WmsInOutStockOrder, bool>> extendExpression = a => a.IsDeleted == false;
+ // 浣跨敤 System.Linq.PredicateBuilder 鐨� And
+ var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockOrder, bool>>)(whereConditions.data);
+ whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression);
+
+ return whereConditions;
+ }
+
+ /// <summary>
+ /// 鏂板缓鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public virtual async Task<WmsInOutStockOrderDto> CreateAsync(WmsInOutStockOrderCreateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var exist = await wmsInOutStockOrderRepository.NameExistAsync(input.OrderNo);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.OrderNo]);
+ }
+
+ var maxSort = await wmsInOutStockOrderRepository.GetMaxSortAsync();
+ var sort = input.Sort ?? maxSort;
+
+ var insertObj = ObjectMapper.Map<WmsInOutStockOrderCreateDto, WmsInOutStockOrder>(input);
+ insertObj.Sort = sort;
+ input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
+
+ await wmsInOutStockOrderRepository.InsertAsync(insertObj);
+
+ //if (input.Sort.HasValue && insertObj.Sort != maxSort)
+ //{
+ // await AdjustSortAsync(insertObj.Id, insertObj.Sort);
+ //}
+
+ return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(insertObj);
+ }
+
+ /// <summary>
+ /// 鏇存柊鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public virtual async Task<WmsInOutStockOrderDto> UpdateAsync(Guid id, WmsInOutStockOrderUpdateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var updateObj = await wmsInOutStockOrderRepository.GetAsync(id);
+ var exist = await wmsInOutStockOrderRepository.NameExistAsync(input.OrderNo, updateObj.Id);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.OrderNo]);
+ }
+
+ updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
+ input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
+
+ updateObj.OrderNo = input.OrderNo;
+ updateObj.OrderStatus = input.OrderStatus;
+ updateObj.MaterialName = input.MaterialName;
+ updateObj.MaterialNo = input.MaterialNo;
+ updateObj.MaterialModel = input.MaterialModel;
+ updateObj.MaterialBatch = input.MaterialBatch;
+ updateObj.OrderType = input.OrderType;
+ updateObj.StockType = input.StockType;
+ updateObj.MaterialNumber = input.MaterialNumber;
+ updateObj.DistributeNumber = input.DistributeNumber;
+ updateObj.CompleteNumber = input.CompleteNumber;
+ updateObj.Priority = input.Priority;
+ updateObj.PlanNo = input.PlanNo;
+ updateObj.OperateTime = input.OperateTime;
+ updateObj.Remark = input.Remark;
+ updateObj.IsDisabled = input.IsDisabled;
+
+
+ await wmsInOutStockOrderRepository.UpdateAsync(updateObj);
+
+ return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(updateObj);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ public async Task<List<WmsInOutStockOrderDto>> CloneAsync(IEnumerable<Guid> ids)
+ {
+ //var wmsInOutStockOrders = new List<WmsInOutStockOrder>();
+ //if (ids != null)
+ //{
+ // var sort = await wmsInOutStockOrderRepository.GetMaxSortAsync();
+ // foreach (var id in ids)
+ // {
+ // var WmsInOutStockOrder = await wmsInOutStockOrderRepository.FindAsync(id);
+ // if (WmsInOutStockOrder != null)
+ // {
+ // var name = WmsInOutStockOrder.Name + WmsInOutStockOrderConsts.CloneTag;
+ // var notExist = false;
+ // while (!notExist)
+ // {
+ // var exist = await wmsInOutStockOrderRepository.NameExistAsync(name);
+ // if (exist || wmsInOutStockOrders.Any(x => x.Name == name))
+ // {
+ // name += WmsInOutStockOrderConsts.CloneTag;
+ // continue;
+ // }
+
+ // notExist = true;
+ // }
+
+ // //WmsInOutStockOrder = await wmsInOutStockOrderRepository.InsertAsync(WmsInOutStockOrder.Clone(GuidGenerator.Create(), name, sort++));
+ // wmsInOutStockOrders.Add(WmsInOutStockOrder);
+ // }
+ // }
+ //}
+
+ //return ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(wmsInOutStockOrders);
+ return new List<WmsInOutStockOrderDto>();
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍗曚釜鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return wmsInOutStockOrderRepository.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎澶氫釜鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ public async Task DeleteManyAsync(IEnumerable<Guid> ids)
+ {
+ foreach (var id in ids)
+ {
+ await DeleteAsync(id);
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="sort"></param>
+ /// <returns></returns>
+ public virtual async Task AdjustSortAsync(Guid id, int sort)
+ {
+ var list = await wmsInOutStockOrderRepository.GetListAsync(null, nameof(WmsInOutStockOrder.Sort));
+ if (list != null && list.Any())
+ {
+ var initSort = 1;
+ list.ForEach(x => x.AdjustSort(initSort++));
+ var entity = list.FirstOrDefault(x => x.Id == id);
+ if (entity != null)
+ {
+ if (sort == 1)
+ {
+ list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ }
+ else if (entity.Sort > sort)
+ {
+ list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
+ }
+ else if (entity.Sort < sort)
+ {
+ list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
+ }
+
+ entity.AdjustSort(sort);
+ }
+ }
+
+ await wmsInOutStockOrderRepository.UpdateManyAsync(list);
+ }
+
+ /// <summary>
+ /// 瀵煎叆鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public async Task ImportAsync(WmsInOutStockOrdersImportModel input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ var wmsInOutStockOrderCreateDtos = new List<(int RowIndex, WmsInOutStockOrderCreateDto Item)>();
+ var wmsInOutStockOrderUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockOrderUpdateDto Item)>();
+ var importItems = input.WmsInOutStockOrders;
+
+ if (importItems != null && importItems.Any())
+ {
+ #region 瀵煎叆鏍¢獙
+
+ // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
+ var duplicateWmsInOutStockOrders = importItems.GroupBy(x => x.OrderNo).Where(x => x.Count() > 1).ToList();
+ if (duplicateWmsInOutStockOrders?.Any() == true)
+ {
+ var duplicateWmsInOutStockOrderMsgs = duplicateWmsInOutStockOrders.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅");
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsInOutStockOrderMsgs)}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ #endregion
+
+ foreach (var impItem in importItems)
+ {
+ if (impItem.OrderNo.IsNullOrWhiteSpace())
+ {
+ continue;
+ }
+
+ if (impItem.OrderNo.IsNullOrWhiteSpace())
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsInOutStockOrder鍚嶇О涓嶈兘涓虹┖";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ var oldWmsInOutStockOrder = await wmsInOutStockOrderRepository.FindByNameAsync(impItem.OrderNo);
+ if (oldWmsInOutStockOrder != null)
+ {
+ var wmsInOutStockOrderUpdateDto = new WmsInOutStockOrderUpdateDto
+ {
+ OrderNo = impItem.OrderNo,
+OrderStatus = impItem.OrderStatus,
+MaterialName = impItem.MaterialName,
+MaterialNo = impItem.MaterialNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+OrderType = impItem.OrderType,
+StockType = impItem.StockType,
+MaterialNumber = impItem.MaterialNumber,
+DistributeNumber = impItem.DistributeNumber,
+CompleteNumber = impItem.CompleteNumber,
+Priority = impItem.Priority,
+PlanNo = impItem.PlanNo,
+OperateTime = impItem.OperateTime,
+Remark = impItem.Remark,
+IsDisabled = impItem.IsDisabled,
+
+ };
+
+ wmsInOutStockOrderUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockOrder.Id, wmsInOutStockOrderUpdateDto));
+ }
+ else
+ {
+ var wmsInOutStockOrderCreateDto = new WmsInOutStockOrderCreateDto
+ {
+ OrderNo = impItem.OrderNo,
+OrderStatus = impItem.OrderStatus,
+MaterialName = impItem.MaterialName,
+MaterialNo = impItem.MaterialNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+OrderType = impItem.OrderType,
+StockType = impItem.StockType,
+MaterialNumber = impItem.MaterialNumber,
+DistributeNumber = impItem.DistributeNumber,
+CompleteNumber = impItem.CompleteNumber,
+Priority = impItem.Priority,
+PlanNo = impItem.PlanNo,
+OperateTime = impItem.OperateTime,
+Remark = impItem.Remark,
+IsDisabled = impItem.IsDisabled,
+
+ };
+
+ wmsInOutStockOrderCreateDtos.Add((impItem.RowIndex, wmsInOutStockOrderCreateDto));
+ }
+ }
+ }
+
+ // 鏂板
+ foreach (var wmsInOutStockOrderDto in wmsInOutStockOrderCreateDtos)
+ {
+ try
+ {
+ await CreateAsync(wmsInOutStockOrderDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+
+ // 鏇存柊
+ foreach (var wmsInOutStockOrderDto in wmsInOutStockOrderUpdateDtos)
+ {
+ try
+ {
+ await UpdateAsync(wmsInOutStockOrderDto.Id, wmsInOutStockOrderDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 瀵煎嚭鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsInOutStockOrder.Sort);
+ }
+
+ #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = DynamicGetQueryParams(input);
+
+ #endregion
+
+
+ var list = await wmsInOutStockOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
+ var result = ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(list);
+
+ var sheets = new Dictionary<string, object>
+ {
+ ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
+ };
+
+ var fileName = result.Count > 1 ? "鍑哄叆搴撳崟鎹垪琛�" : result.Count == 1 ? result[0]?.OrderNo : "WmsInOutStockOrder妯$増";
+ return (sheets, fileName);
+ }
+
+ /// <summary>
+ /// 鏍¢獙鍑哄叆搴撳崟鎹紝褰撴柊寤烘垨鏇存柊鏃�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockOrderCreateOrUpdateDtoBase input)
+ {
+ Check.NotNull(input, nameof(input));
+ Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50);
+ Check.NotNull(input.OrderStatus, "鍗曟嵁鐘舵��");
+ Check.NotNullOrWhiteSpace(input.MaterialNo, "鐗╂枡浠跺彿", 50);
+ Check.NotNullOrWhiteSpace(input.MaterialBatch, "鎵规鍙�", 50);
+ Check.NotNull(input.OrderType, "鍗曟嵁绫诲瀷");
+ Check.NotNull(input.StockType, "鎿嶄綔绫诲瀷锛堟灇涓惧�硷級");
+ Check.NotNull(input.MaterialNumber, "鍗曟嵁鏁伴噺");
+ Check.NotNull(input.DistributeNumber, "涓嬪彂鏁伴噺");
+ Check.NotNull(input.CompleteNumber, "瀹屾垚鏁伴噺");
+ Check.NotNull(input.Priority, "浼樺厛绾�");
+
+ return Task.CompletedTask;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs
new file mode 100644
index 0000000..4ec146d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs
@@ -0,0 +1,426 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared;
+using CmsQueryExtensions;
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail;
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.ObjectExtending;
+using Volo.Abp.ObjectMapping;
+
+namespace CMS.Plugin.HIAWms.Application.Implements;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呭簲鐢ㄦ湇鍔�
+/// </summary>
+public class WmsInOutStockOrderDetailAppService : CMSPluginAppService, IWmsInOutStockOrderDetailAppService
+{
+ private readonly IWmsInOutStockOrderDetailRepository wmsInOutStockOrderDetailRepository;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailAppService"/> class.
+ /// </summary>
+ /// <param name="WmsInOutStockOrderDetailRepository">The task job repository.</param>
+ public WmsInOutStockOrderDetailAppService(IWmsInOutStockOrderDetailRepository _WmsInOutStockOrderDetailRepository)
+ {
+ wmsInOutStockOrderDetailRepository = _WmsInOutStockOrderDetailRepository;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎸囧畾鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsInOutStockOrderDetailDto> GetAsync(Guid id)
+ {
+ return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(await wmsInOutStockOrderDetailRepository.GetAsync(id));
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public virtual async Task<PagedResultDto<WmsInOutStockOrderDetailDto>> GetListAsync(GetWmsInOutStockOrderDetailInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsInOutStockOrderDetail.Sort);
+ }
+
+ #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = DynamicGetQueryParams(input);
+
+ #endregion
+
+ var count = await wmsInOutStockOrderDetailRepository.GetCountAsync(whereConditions);
+ var list = await wmsInOutStockOrderDetailRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
+
+ return new PagedResultDto<WmsInOutStockOrderDetailDto>(count, ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(list));
+ }
+
+ /// <summary>
+ /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ /// </summary>
+ /// <param name="input">杈撳叆鍙傛暟</param>
+ /// <returns></returns>
+ private FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> DynamicGetQueryParams(GetWmsInOutStockOrderDetailInput input)
+ {
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockOrderDetail, GetWmsInOutStockOrderDetailInput>(input);
+ if (!whereConditions.IsSuccess)
+ {
+ throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg);
+ }
+
+ //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�
+ Expression<Func<WmsInOutStockOrderDetail, bool>> extendExpression = a => a.IsDeleted == false;
+ // 浣跨敤 System.Linq.PredicateBuilder 鐨� And
+ var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockOrderDetail, bool>>)(whereConditions.data);
+ whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression);
+
+ return whereConditions;
+ }
+
+ /// <summary>
+ /// 鏂板缓鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public virtual async Task<WmsInOutStockOrderDetailDto> CreateAsync(WmsInOutStockOrderDetailCreateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(input.MaterialId);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]);
+ }
+
+ var maxSort = await wmsInOutStockOrderDetailRepository.GetMaxSortAsync();
+ var sort = input.Sort ?? maxSort;
+
+ var insertObj = ObjectMapper.Map<WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetail>(input);
+ insertObj.Sort = sort;
+ input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
+
+ await wmsInOutStockOrderDetailRepository.InsertAsync(insertObj);
+
+ //if (input.Sort.HasValue && insertObj.Sort != maxSort)
+ //{
+ // await AdjustSortAsync(insertObj.Id, insertObj.Sort);
+ //}
+
+ return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(insertObj);
+ }
+
+ /// <summary>
+ /// 鏇存柊鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public virtual async Task<WmsInOutStockOrderDetailDto> UpdateAsync(Guid id, WmsInOutStockOrderDetailUpdateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var updateObj = await wmsInOutStockOrderDetailRepository.GetAsync(id);
+ var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(input.MaterialId, updateObj.Id);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]);
+ }
+
+ updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
+ input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
+
+ updateObj.OrderNo = input.OrderNo;
+ updateObj.MaterialId = input.MaterialId;
+ updateObj.OrderType = input.OrderType;
+ updateObj.MaterialNo = input.MaterialNo;
+ updateObj.MaterialName = input.MaterialName;
+ updateObj.ContainerNo = input.ContainerNo;
+ updateObj.MaterialModel = input.MaterialModel;
+ updateObj.MaterialBatch = input.MaterialBatch;
+ updateObj.IsDisabled = input.IsDisabled;
+ updateObj.Remark = input.Remark;
+
+
+ await wmsInOutStockOrderDetailRepository.UpdateAsync(updateObj);
+
+ return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(updateObj);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ public async Task<List<WmsInOutStockOrderDetailDto>> CloneAsync(IEnumerable<Guid> ids)
+ {
+ //var wmsInOutStockOrderDetails = new List<WmsInOutStockOrderDetail>();
+ //if (ids != null)
+ //{
+ // var sort = await wmsInOutStockOrderDetailRepository.GetMaxSortAsync();
+ // foreach (var id in ids)
+ // {
+ // var WmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.FindAsync(id);
+ // if (WmsInOutStockOrderDetail != null)
+ // {
+ // var name = WmsInOutStockOrderDetail.Name + WmsInOutStockOrderDetailConsts.CloneTag;
+ // var notExist = false;
+ // while (!notExist)
+ // {
+ // var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(name);
+ // if (exist || wmsInOutStockOrderDetails.Any(x => x.Name == name))
+ // {
+ // name += WmsInOutStockOrderDetailConsts.CloneTag;
+ // continue;
+ // }
+
+ // notExist = true;
+ // }
+
+ // //WmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.InsertAsync(WmsInOutStockOrderDetail.Clone(GuidGenerator.Create(), name, sort++));
+ // wmsInOutStockOrderDetails.Add(WmsInOutStockOrderDetail);
+ // }
+ // }
+ //}
+
+ //return ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(wmsInOutStockOrderDetails);
+ return new List<WmsInOutStockOrderDetailDto>();
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍗曚釜鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return wmsInOutStockOrderDetailRepository.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎澶氫釜鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ public async Task DeleteManyAsync(IEnumerable<Guid> ids)
+ {
+ foreach (var id in ids)
+ {
+ await DeleteAsync(id);
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="sort"></param>
+ /// <returns></returns>
+ public virtual async Task AdjustSortAsync(Guid id, int sort)
+ {
+ var list = await wmsInOutStockOrderDetailRepository.GetListAsync(null, nameof(WmsInOutStockOrderDetail.Sort));
+ if (list != null && list.Any())
+ {
+ var initSort = 1;
+ list.ForEach(x => x.AdjustSort(initSort++));
+ var entity = list.FirstOrDefault(x => x.Id == id);
+ if (entity != null)
+ {
+ if (sort == 1)
+ {
+ list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ }
+ else if (entity.Sort > sort)
+ {
+ list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
+ }
+ else if (entity.Sort < sort)
+ {
+ list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
+ }
+
+ entity.AdjustSort(sort);
+ }
+ }
+
+ await wmsInOutStockOrderDetailRepository.UpdateManyAsync(list);
+ }
+
+ /// <summary>
+ /// 瀵煎叆鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public async Task ImportAsync(WmsInOutStockOrderDetailsImportModel input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ var wmsInOutStockOrderDetailCreateDtos = new List<(int RowIndex, WmsInOutStockOrderDetailCreateDto Item)>();
+ var wmsInOutStockOrderDetailUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockOrderDetailUpdateDto Item)>();
+ var importItems = input.WmsInOutStockOrderDetails;
+
+ if (importItems != null && importItems.Any())
+ {
+ #region 瀵煎叆鏍¢獙
+
+ // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
+ var duplicateWmsInOutStockOrderDetails = importItems.GroupBy(x => x.MaterialId).Where(x => x.Count() > 1).ToList();
+ if (duplicateWmsInOutStockOrderDetails?.Any() == true)
+ {
+ var duplicateWmsInOutStockOrderDetailMsgs = duplicateWmsInOutStockOrderDetails.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅");
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsInOutStockOrderDetailMsgs)}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ #endregion
+
+ foreach (var impItem in importItems)
+ {
+ if (impItem.MaterialId.IsNullOrWhiteSpace())
+ {
+ continue;
+ }
+
+ if (impItem.MaterialId.IsNullOrWhiteSpace())
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsInOutStockOrderDetail鍚嶇О涓嶈兘涓虹┖";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ var oldWmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.FindByNameAsync(impItem.MaterialId);
+ if (oldWmsInOutStockOrderDetail != null)
+ {
+ var wmsInOutStockOrderDetailUpdateDto = new WmsInOutStockOrderDetailUpdateDto
+ {
+ OrderNo = impItem.OrderNo,
+MaterialId = impItem.MaterialId,
+OrderType = impItem.OrderType,
+MaterialNo = impItem.MaterialNo,
+MaterialName = impItem.MaterialName,
+ContainerNo = impItem.ContainerNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+IsDisabled = impItem.IsDisabled,
+Remark = impItem.Remark,
+
+ };
+
+ wmsInOutStockOrderDetailUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockOrderDetail.Id, wmsInOutStockOrderDetailUpdateDto));
+ }
+ else
+ {
+ var wmsInOutStockOrderDetailCreateDto = new WmsInOutStockOrderDetailCreateDto
+ {
+ OrderNo = impItem.OrderNo,
+MaterialId = impItem.MaterialId,
+OrderType = impItem.OrderType,
+MaterialNo = impItem.MaterialNo,
+MaterialName = impItem.MaterialName,
+ContainerNo = impItem.ContainerNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+IsDisabled = impItem.IsDisabled,
+Remark = impItem.Remark,
+
+ };
+
+ wmsInOutStockOrderDetailCreateDtos.Add((impItem.RowIndex, wmsInOutStockOrderDetailCreateDto));
+ }
+ }
+ }
+
+ // 鏂板
+ foreach (var wmsInOutStockOrderDetailDto in wmsInOutStockOrderDetailCreateDtos)
+ {
+ try
+ {
+ await CreateAsync(wmsInOutStockOrderDetailDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDetailDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+
+ // 鏇存柊
+ foreach (var wmsInOutStockOrderDetailDto in wmsInOutStockOrderDetailUpdateDtos)
+ {
+ try
+ {
+ await UpdateAsync(wmsInOutStockOrderDetailDto.Id, wmsInOutStockOrderDetailDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDetailDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 瀵煎嚭鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderDetailInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsInOutStockOrderDetail.Sort);
+ }
+
+ #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = DynamicGetQueryParams(input);
+
+ #endregion
+
+
+ var list = await wmsInOutStockOrderDetailRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
+ var result = ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(list);
+
+ var sheets = new Dictionary<string, object>
+ {
+ ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
+ };
+
+ var fileName = result.Count > 1 ? "鍑哄叆搴撳崟鎹鎯呭垪琛�" : result.Count == 1 ? result[0]?.MaterialId : "WmsInOutStockOrderDetail妯$増";
+ return (sheets, fileName);
+ }
+
+ /// <summary>
+ /// 鏍¢獙鍑哄叆搴撳崟鎹鎯咃紝褰撴柊寤烘垨鏇存柊鏃�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockOrderDetailCreateOrUpdateDtoBase input)
+ {
+ Check.NotNull(input, nameof(input));
+ Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50);
+ Check.NotNullOrWhiteSpace(input.MaterialId, "鐗╂枡鍞竴鐮�", 64);
+ Check.NotNull(input.OrderType, "鍗曟嵁绫诲瀷锛堟灇涓惧�硷級");
+ Check.NotNullOrWhiteSpace(input.MaterialNo, "鐗╂枡浠跺彿", 50);
+
+ return Task.CompletedTask;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs
new file mode 100644
index 0000000..b403449
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder;
+using Volo.Abp.ObjectExtending;
+
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹瓵utoMapper閰嶇疆
+/// </summary>
+/// <seealso cref="AutoMapper.Profile" />
+public class WmsInOutStockOrderAutoMapperProfile : Profile
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderAutoMapperProfile"/> class.
+ /// </summary>
+ public WmsInOutStockOrderAutoMapperProfile()
+ {
+ /* You can configure your AutoMapper mapping configuration here.
+ * Alternatively, you can split your mapping configurations
+ * into multiple profile classes for a better organization. */
+ CreateMap<WmsInOutStockOrder, WmsInOutStockOrderDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<WmsInOutStockOrderCreateDto, WmsInOutStockOrder>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<GetWmsInOutStockOrderInput, WmsInOutStockOrder>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs
new file mode 100644
index 0000000..034c7fa
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail;
+using Volo.Abp.ObjectExtending;
+
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯匒utoMapper閰嶇疆
+/// </summary>
+/// <seealso cref="AutoMapper.Profile" />
+public class WmsInOutStockOrderDetailAutoMapperProfile : Profile
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailAutoMapperProfile"/> class.
+ /// </summary>
+ public WmsInOutStockOrderDetailAutoMapperProfile()
+ {
+ /* You can configure your AutoMapper mapping configuration here.
+ * Alternatively, you can split your mapping configurations
+ * into multiple profile classes for a better organization. */
+ CreateMap<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetail>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<GetWmsInOutStockOrderDetailInput, WmsInOutStockOrderDetail>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs
new file mode 100644
index 0000000..22f5cc3
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs
@@ -0,0 +1,53 @@
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+using Volo.Abp.Domain.Repositories;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹粨鍌�
+/// </summary>
+public interface IWmsInOutStockOrderRepository : IBasicRepository<WmsInOutStockOrder, Guid>
+{
+ /// <summary>
+ /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<WmsInOutStockOrder> FindByNameAsync(string name, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ Task<bool> NameExistAsync(string name, Guid? id = null);
+
+ /// <summary>
+ /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁
+ /// </summary>
+ /// <returns></returns>
+ Task<int> GetMaxSortAsync();
+
+ /// <summary>
+ /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<List<WmsInOutStockOrder>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, CancellationToken cancellationToken = default);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
index 9dc46f9..d6f9e37 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
@@ -99,7 +99,7 @@
/// <summary>
/// 鏄惁绂佺敤
/// </summary>
- public virtual bool? IsDisabled { get; protected set; }
+ public virtual bool? IsDisabled { get; set; }
/// <summary>
/// Adjusts the sort.
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs
new file mode 100644
index 0000000..f064081
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs
@@ -0,0 +1,53 @@
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+using Volo.Abp.Domain.Repositories;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呬粨鍌�
+/// </summary>
+public interface IWmsInOutStockOrderDetailRepository : IBasicRepository<WmsInOutStockOrderDetail, Guid>
+{
+ /// <summary>
+ /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<WmsInOutStockOrderDetail> FindByNameAsync(string name, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ Task<bool> NameExistAsync(string name, Guid? id = null);
+
+ /// <summary>
+ /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁璇︽儏
+ /// </summary>
+ /// <returns></returns>
+ Task<int> GetMaxSortAsync();
+
+ /// <summary>
+ /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<List<WmsInOutStockOrderDetail>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, CancellationToken cancellationToken = default);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
index e27314c..5b0dbda 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
@@ -68,7 +68,7 @@
/// <summary>
/// 鏄惁绂佺敤
/// </summary>
- public virtual bool? IsDisabled { get; protected set; }
+ public virtual bool? IsDisabled { get; set; }
/// <summary>
/// Adjusts the sort.
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs
new file mode 100644
index 0000000..c997b24
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs
@@ -0,0 +1,113 @@
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail;
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
+using CmsQueryExtensions.Extension;
+using Microsoft.EntityFrameworkCore;
+using System.Linq.Dynamic.Core;
+using System.Linq.Expressions;
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore;
+
+
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹鎯呬粨鍌ㄥ疄鐜�
+/// </summary>
+public class EfCoreWmsInOutStockOrderDetailRepository : EfCoreRepository<ICMSPluginDbContext, WmsInOutStockOrderDetail, Guid>, IWmsInOutStockOrderDetailRepository
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EfCoreWmsInOutStockOrderDetailRepository"/> class.
+ /// </summary>
+ /// <param name="dbContextProvider">The database context provider.</param>
+ public EfCoreWmsInOutStockOrderDetailRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider)
+ : base(dbContextProvider)
+ {
+ }
+
+ /// <summary>
+ /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsInOutStockOrderDetail> FindByNameAsync(string name, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails()
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x=>x.CreationTime)
+ .FirstOrDefaultAsync(t => t.MaterialId == name, GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="name">鏍¢獙鍊�</param>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public async Task<bool> NameExistAsync(string name, Guid? id = null)
+ {
+ return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialId == name);
+ }
+
+ /// <summary>
+ /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁璇︽儏
+ /// </summary>
+ /// <returns></returns>
+ public async Task<int> GetMaxSortAsync()
+ {
+ var hasAny = await (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).AnyAsync();
+ if (!hasAny)
+ {
+ return 1;
+ }
+
+ var sort = await (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort);
+ return sort + 1;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<WmsInOutStockOrderDetail>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails(includeDetails)
+ .WhereIf(whereConditions != null, whereConditions.data)
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x=>x.CreationTime)
+ .PageBy(skipCount, maxResultCount)
+ .ToListAsync(GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, CancellationToken cancellationToken = default)
+ {
+ return await (await GetQueryableAsync())
+ .WhereIf(whereConditions != null, whereConditions.data)
+ .Where(x => !x.IsDeleted)
+ .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
+ }
+
+
+ /// <inheritdoc />
+ public override async Task<IQueryable<WmsInOutStockOrderDetail>> WithDetailsAsync()
+ {
+ return (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).IncludeDetails();
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs
new file mode 100644
index 0000000..30f58f9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs
@@ -0,0 +1,113 @@
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder;
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
+using CmsQueryExtensions.Extension;
+using Microsoft.EntityFrameworkCore;
+using System.Linq.Dynamic.Core;
+using System.Linq.Expressions;
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore;
+
+
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories;
+
+/// <summary>
+/// 鍑哄叆搴撳崟鎹粨鍌ㄥ疄鐜�
+/// </summary>
+public class EfCoreWmsInOutStockOrderRepository : EfCoreRepository<ICMSPluginDbContext, WmsInOutStockOrder, Guid>, IWmsInOutStockOrderRepository
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EfCoreWmsInOutStockOrderRepository"/> class.
+ /// </summary>
+ /// <param name="dbContextProvider">The database context provider.</param>
+ public EfCoreWmsInOutStockOrderRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider)
+ : base(dbContextProvider)
+ {
+ }
+
+ /// <summary>
+ /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsInOutStockOrder> FindByNameAsync(string name, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails()
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x=>x.CreationTime)
+ .FirstOrDefaultAsync(t => t.OrderNo == name, GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="name">鏍¢獙鍊�</param>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public async Task<bool> NameExistAsync(string name, Guid? id = null)
+ {
+ return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.OrderNo == name);
+ }
+
+ /// <summary>
+ /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁
+ /// </summary>
+ /// <returns></returns>
+ public async Task<int> GetMaxSortAsync()
+ {
+ var hasAny = await (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).AnyAsync();
+ if (!hasAny)
+ {
+ return 1;
+ }
+
+ var sort = await (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort);
+ return sort + 1;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<WmsInOutStockOrder>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails(includeDetails)
+ .WhereIf(whereConditions != null, whereConditions.data)
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x=>x.CreationTime)
+ .PageBy(skipCount, maxResultCount)
+ .ToListAsync(GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, CancellationToken cancellationToken = default)
+ {
+ return await (await GetQueryableAsync())
+ .WhereIf(whereConditions != null, whereConditions.data)
+ .Where(x => !x.IsDeleted)
+ .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
+ }
+
+
+ /// <inheritdoc />
+ public override async Task<IQueryable<WmsInOutStockOrder>> WithDetailsAsync()
+ {
+ return (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).IncludeDetails();
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs
new file mode 100644
index 0000000..97d4d8b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs
@@ -0,0 +1,188 @@
+using Ao.Lang;
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using MiniExcelLibs;
+using System.Reflection;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Controller
+{
+ /// <summary>
+ /// 鍑哄叆搴撳崟鎹湇鍔�
+ /// </summary>
+ [ApiController]
+ [TypeFilter(typeof(CMSLanguageFilter))]
+ [TypeFilter(typeof(CMSUowActionFilter))]
+ [TypeFilter(typeof(CMSAuditActionFilter))]
+ [TypeFilter(typeof(CMSExceptionFilter))]
+ [Route("api/v{version:apiVersion}/HIAWms/[controller]")]
+ public class WmsInOutStockOrderController : ControllerBase
+ {
+ private readonly IWmsInOutStockOrderAppService _wmsInOutStockOrderAppService;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderController"/> class.
+ /// </summary>
+ /// <param name="wmsInOutStockOrderAppService">The wmsInOutStockOrder application service.</param>
+ public WmsInOutStockOrderController(IWmsInOutStockOrderAppService wmsInOutStockOrderAppService)
+ {
+ _wmsInOutStockOrderAppService = wmsInOutStockOrderAppService;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("{id}")]
+ public virtual Task<WmsInOutStockOrderDto> GetAsync(Guid id)
+ {
+ return _wmsInOutStockOrderAppService.GetAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹殑鍒楄〃.
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Page")]
+ public virtual Task<PagedResultDto<WmsInOutStockOrderDto>> GetListAsync([FromQuery] GetWmsInOutStockOrderInput input)
+ {
+ return _wmsInOutStockOrderAppService.GetListAsync(input);
+ }
+
+ /// <summary>
+ /// 鍒涘缓鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ public virtual Task<WmsInOutStockOrderDto> CreateAsync(WmsInOutStockOrderCreateDto input)
+ {
+ return _wmsInOutStockOrderAppService.CreateAsync(input);
+ }
+
+ /// <summary>
+ /// 鏇存柊鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPut]
+ [Route("{id}")]
+ public virtual Task<WmsInOutStockOrderDto> UpdateAsync(Guid id, WmsInOutStockOrderUpdateDto input)
+ {
+ return _wmsInOutStockOrderAppService.UpdateAsync(id, input);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="ids">Id闆嗗悎.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ [Route("Clone")]
+ public virtual Task<List<WmsInOutStockOrderDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsInOutStockOrderAppService.CloneAsync(ids);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ [Route("{id}")]
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return _wmsInOutStockOrderAppService.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsInOutStockOrderAppService.DeleteManyAsync(ids);
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpPut]
+ [Route("{id}/AdjustSort/{sort}")]
+ public virtual Task AdjustSortAsync(Guid id, int sort)
+ {
+ return _wmsInOutStockOrderAppService.AdjustSortAsync(id, sort);
+ }
+
+ /// <summary>
+ /// 瀵煎叆鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ [Route("Import")]
+ public virtual async Task<IActionResult> ImportAsync(IFormFile file)
+ {
+ using var stream = new MemoryStream();
+ await file.CopyToAsync(stream);
+ stream.Seek(0L, SeekOrigin.Begin);
+
+ var sheetNames = stream.GetSheetNames();
+ var wmsInOutStockOrderRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsInOutStockOrdersImportModel.WmsInOutStockOrderImportModel>(stream, sheetName: "閰嶇疆").ToList() : new();
+
+ if (!wmsInOutStockOrderRows.Any())
+ {
+ throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸");
+ }
+
+ await _wmsInOutStockOrderAppService.ImportAsync(new WmsInOutStockOrdersImportModel
+ {
+ WmsInOutStockOrders = wmsInOutStockOrderRows,
+ });
+
+ return Ok();
+ }
+
+ /// <summary>
+ /// 瀵煎嚭鍑哄叆搴撳崟鎹�
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Export")]
+ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsInOutStockOrderInput input)
+ {
+ input.MaxResultCount = int.MaxValue;
+ var exportData = await _wmsInOutStockOrderAppService.ExportAsync(input);
+ var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsInOutStockOrder瀵煎嚭妯℃澘.xlsx");
+ if (!System.IO.File.Exists(templatePath))
+ {
+ templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsInOutStockOrder瀵煎嚭妯℃澘.xlsx");
+ }
+
+ var memoryStream = new MemoryStream();
+ await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets);
+ memoryStream.Seek(0L, SeekOrigin.Begin);
+ return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" };
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs
new file mode 100644
index 0000000..b6ca845
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs
@@ -0,0 +1,188 @@
+using Ao.Lang;
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using MiniExcelLibs;
+using System.Reflection;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Controller
+{
+ /// <summary>
+ /// 鍑哄叆搴撳崟鎹鎯呮湇鍔�
+ /// </summary>
+ [ApiController]
+ [TypeFilter(typeof(CMSLanguageFilter))]
+ [TypeFilter(typeof(CMSUowActionFilter))]
+ [TypeFilter(typeof(CMSAuditActionFilter))]
+ [TypeFilter(typeof(CMSExceptionFilter))]
+ [Route("api/v{version:apiVersion}/HIAWms/[controller]")]
+ public class WmsInOutStockOrderDetailController : ControllerBase
+ {
+ private readonly IWmsInOutStockOrderDetailAppService _wmsInOutStockOrderDetailAppService;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailController"/> class.
+ /// </summary>
+ /// <param name="wmsInOutStockOrderDetailAppService">The wmsInOutStockOrderDetail application service.</param>
+ public WmsInOutStockOrderDetailController(IWmsInOutStockOrderDetailAppService wmsInOutStockOrderDetailAppService)
+ {
+ _wmsInOutStockOrderDetailAppService = wmsInOutStockOrderDetailAppService;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("{id}")]
+ public virtual Task<WmsInOutStockOrderDetailDto> GetAsync(Guid id)
+ {
+ return _wmsInOutStockOrderDetailAppService.GetAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹鎯呯殑鍒楄〃.
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Page")]
+ public virtual Task<PagedResultDto<WmsInOutStockOrderDetailDto>> GetListAsync([FromQuery] GetWmsInOutStockOrderDetailInput input)
+ {
+ return _wmsInOutStockOrderDetailAppService.GetListAsync(input);
+ }
+
+ /// <summary>
+ /// 鍒涘缓鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ public virtual Task<WmsInOutStockOrderDetailDto> CreateAsync(WmsInOutStockOrderDetailCreateDto input)
+ {
+ return _wmsInOutStockOrderDetailAppService.CreateAsync(input);
+ }
+
+ /// <summary>
+ /// 鏇存柊鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPut]
+ [Route("{id}")]
+ public virtual Task<WmsInOutStockOrderDetailDto> UpdateAsync(Guid id, WmsInOutStockOrderDetailUpdateDto input)
+ {
+ return _wmsInOutStockOrderDetailAppService.UpdateAsync(id, input);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="ids">Id闆嗗悎.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ [Route("Clone")]
+ public virtual Task<List<WmsInOutStockOrderDetailDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsInOutStockOrderDetailAppService.CloneAsync(ids);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ [Route("{id}")]
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return _wmsInOutStockOrderDetailAppService.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsInOutStockOrderDetailAppService.DeleteManyAsync(ids);
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpPut]
+ [Route("{id}/AdjustSort/{sort}")]
+ public virtual Task AdjustSortAsync(Guid id, int sort)
+ {
+ return _wmsInOutStockOrderDetailAppService.AdjustSortAsync(id, sort);
+ }
+
+ /// <summary>
+ /// 瀵煎叆鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ [Route("Import")]
+ public virtual async Task<IActionResult> ImportAsync(IFormFile file)
+ {
+ using var stream = new MemoryStream();
+ await file.CopyToAsync(stream);
+ stream.Seek(0L, SeekOrigin.Begin);
+
+ var sheetNames = stream.GetSheetNames();
+ var wmsInOutStockOrderDetailRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsInOutStockOrderDetailsImportModel.WmsInOutStockOrderDetailImportModel>(stream, sheetName: "閰嶇疆").ToList() : new();
+
+ if (!wmsInOutStockOrderDetailRows.Any())
+ {
+ throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸");
+ }
+
+ await _wmsInOutStockOrderDetailAppService.ImportAsync(new WmsInOutStockOrderDetailsImportModel
+ {
+ WmsInOutStockOrderDetails = wmsInOutStockOrderDetailRows,
+ });
+
+ return Ok();
+ }
+
+ /// <summary>
+ /// 瀵煎嚭鍑哄叆搴撳崟鎹鎯�
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Export")]
+ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsInOutStockOrderDetailInput input)
+ {
+ input.MaxResultCount = int.MaxValue;
+ var exportData = await _wmsInOutStockOrderDetailAppService.ExportAsync(input);
+ var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsInOutStockOrderDetail瀵煎嚭妯℃澘.xlsx");
+ if (!System.IO.File.Exists(templatePath))
+ {
+ templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsInOutStockOrderDetail瀵煎嚭妯℃澘.xlsx");
+ }
+
+ var memoryStream = new MemoryStream();
+ await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets);
+ memoryStream.Seek(0L, SeekOrigin.Begin);
+ return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" };
+ }
+ }
+}
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..375c4a8
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..7177355
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256.txt"
new file mode 100644
index 0000000..daec1d0
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256.txt"
@@ -0,0 +1,12 @@
+[琛ㄥ悕]:scms_wmsinoutstockorder
+[瀹炰綋绫诲悕]:WmsInOutStockOrder
+[瀹炰綋绫诲璞″悕]:wmsInOutStockOrder
+[椤甸潰鑿滃崟鍚峕:鍑哄叆搴撳崟鎹�
+[椤甸潰鑿滃崟瀵硅薄缂╁啓]:wmsInOutStockOrder
+[琛ㄧ殑涓枃娉ㄨВ]:鍑哄叆搴撳崟鎹�
+[閲嶅鎬ф牎楠屽瓧娈礭:OrderNo
+[鍒犻櫎鎻愮ず瀛楁]:OrderNo
+[妯$硦鏌ヨ瀛楁]:'OrderNo', 'MaterialNo', 'MaterialBatch'
+[妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鎵规
+[椤圭洰鍛藉悕绌洪棿]:HIAWms
+[鏋氫妇绫诲瀷瀛楁闆嗗悎]:OrderStatus|OrderStatusEnum|OrderStatusDesc,OrderType|OrderTypeEnum|OrderTypeDesc,StockType|StockTypeEnum|StockTypeDesc
\ No newline at end of file
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256\350\257\246\346\203\205.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256\350\257\246\346\203\205.txt"
new file mode 100644
index 0000000..86c02c3
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256\350\257\246\346\203\205.txt"
@@ -0,0 +1,12 @@
+[琛ㄥ悕]:scms_wmsinoutstockorderdetail
+[瀹炰綋绫诲悕]:WmsInOutStockOrderDetail
+[瀹炰綋绫诲璞″悕]:wmsInOutStockOrderDetail
+[椤甸潰鑿滃崟鍚峕:鍑哄叆搴撳崟鎹鎯�
+[椤甸潰鑿滃崟瀵硅薄缂╁啓]:wmsInOutStockOrderDetail
+[琛ㄧ殑涓枃娉ㄨВ]:鍑哄叆搴撳崟鎹鎯�
+[閲嶅鎬ф牎楠屽瓧娈礭:MaterialId
+[鍒犻櫎鎻愮ず瀛楁]:MaterialId
+[妯$硦鏌ヨ瀛楁]:'OrderNo', 'MaterialNo', 'MaterialId'
+[妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鐗╂枡ID
+[椤圭洰鍛藉悕绌洪棿]:HIAWms
+[鏋氫妇绫诲瀷瀛楁闆嗗悎]:OrderType|OrderTypeEnum|OrderTypeDesc
\ No newline at end of file
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt"
index 0b25103..3ba8a5b 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt"
@@ -31,7 +31,7 @@
return props.row || null
})
-
+
const datePicker = (attrs) => {
return (
<el-date-picker
@@ -42,6 +42,16 @@
></el-date-picker>
)
}
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min="1"
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
const dateTimePicker = (attrs) => {
return (
@@ -49,16 +59,6 @@
type="datetime"
format="YYYY-MM-DD HH:mm:ss"
formatValue="YYYY-MM-DD HH:mm:ss"
- {...attrs}
- ></el-date-picker>
- )
- }
-
- const dateTimePicker = (attrs) => {
- return (
- <el-date-picker
- type="datetime"
- format="YYYY-MM-DD HH:mm:ss"
{...attrs}
></el-date-picker>
)
--
Gitblit v1.9.3