From edba4ede85a3d82a7f0a0a7dccddbc8281862888 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周四, 15 5月 2025 13:12:10 +0800 Subject: [PATCH] 添加物料类型 --- HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx | 298 ++ HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx | 71 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss | 113 + HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs | 27 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs | 17 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs | 11 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx | 212 ++ HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs | 12 HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json | 3 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs | 1909 +++++++++++++++++++ HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx | 376 +++ HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs | 1 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss | 3 HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts | 30 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs | 216 ++ HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs | 10 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs | 18 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs | 88 HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts | 35 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs | 22 HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx | 5 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx | 61 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts | 275 ++ HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts | 42 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs | 22 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs | 6 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs | 136 + HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs | 455 ++++ Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/物料类型配置.txt | 14 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs | 132 + HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts | 34 HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts | 41 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss | 3 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs | 123 + HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs | 11 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs | 218 ++ HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs | 22 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs | 85 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs | 100 + HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts | 44 HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs | 1 HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType导出模板.xlsx | 0 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs | 232 ++ HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs | 10 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs | 7 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs | 67 HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs | 26 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs | 33 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs | 7 /dev/null | 100 - HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs | 1 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs | 19 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs | 85 HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts | 44 HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts | 5 59 files changed, 5,814 insertions(+), 132 deletions(-) diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts new file mode 100644 index 0000000..ede6c3f --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts @@ -0,0 +1,275 @@ +import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterialType } from '../Models/WmsMaterialType' +import { ElMessage } from 'element-plus' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { useFile } from './File' + +interface CurrentType { + row: any + index: number +} +export const useWmsMaterialType = (props: any, ctx?: any) => { + const wmsMaterialType = injectModel<WmsMaterialType>('wmsMaterialType') + const { exportFile } = useFile() + /** + * 澶撮儴閰嶇疆 + */ + const headers = ref({}) + /** + * 鍔ㄦ�佸垪閰嶇疆 + */ + const wmsMaterialTypeColumns = 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 wmsMaterialType.cloneData([row.id]) + // ElMessage.success('鍒涘缓鍓湰鎴愬姛') + // tableRef.value?.getList() + // }, + // divided: true, + // icon: 'copy', + // }, + { + label: '鍒犻櫎', + fn: async (c: CurrentType) => { + const names = selection.value.map((item: { materialTypeCode: string }) => item.materialTypeCode) + ConfirmBox( + `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.materialTypeCode}` + ).then(async () => { + const ids = selection.value.map((item: { id: string }) => item.id) + await wmsMaterialType.deleteWmsMaterialTypes(ids.length ? ids : [c.row.id]) + ElMessage.success('鍒犻櫎鎴愬姛') + tableRef.value.getList() + }) + }, + icon: 'close', + }, + ] + + const onCheck = (records: any) => { + selection.value = records + } + + const onAddWmsMaterialType = () => { + 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 onConfirmWmsMaterialType = 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/wmsMaterialType/export', data, '鐗╂枡绫诲瀷') + } + + /** + * 鍏抽敭瀛楁悳绱� + */ + 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, + wmsMaterialTypeColumns, + paginationParams, + headers, + onBeforeUpload, + onError, + onSuccess, + openDetail, + onSearch, + onExport, + onRowClick, + onConfirmWmsMaterialType, + onCheck, + onAddWmsMaterialType, + onAdvancedQuery + } +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx new file mode 100644 index 0000000..c9b0831 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx @@ -0,0 +1,212 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterialTypeDrawer } from '../Models/WmsMaterialTypeDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' +// 寮曞叆鍏叡閫夐」閰嶇疆 +import { + BOOLEAN_OPTIONS_AddEdit +} from '@/utils/commonOptionConstants'; + +export const useWmsMaterialTypeDrawer = (props: any, ctx?: any) => { + const wmsMaterialTypeDrawer = injectModel<WmsMaterialTypeDrawer>('wmsMaterialTypeDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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: 'materialTypeDesc', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ被鍨嬫弿杩�', + rules: [{required: true, message: '绫诲瀷鎻忚堪涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '绫诲瀷缂栫爜', + prop: 'materialTypeCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ被鍨嬬紪鐮�', + rules: [{required: true, message: '绫诲瀷缂栫爜涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + 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 = { + materialTypeDesc: formData.value.materialTypeDesc, +materialTypeCode: formData.value.materialTypeCode, +remark: formData.value.remark, + } + if (!current.value) { + await wmsMaterialTypeDrawer.addWmsMaterialType(data) + } else { + const id = current.value.id + await wmsMaterialTypeDrawer.updateWmsMaterialType(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 () => { + + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await wmsMaterialTypeDrawer.getWmsMaterialTypeDetail(current.value) + + formData.value = { + materialTypeDesc: res.materialTypeDesc, +materialTypeCode: res.materialTypeCode, +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/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx new file mode 100644 index 0000000..fb5bc71 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx @@ -0,0 +1,298 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterialTypeDrawer } from '../Models/WmsMaterialTypeDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' +// 寮曞叆鍏叡閫夐」閰嶇疆 +import { + FILTER_MODE_OPTIONS_STRING, + FILTER_MODE_OPTIONS_NUM, + FILTER_MODE_OPTIONS_BOOL +} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; +import { + BOOLEAN_OPTIONS +} from '@/utils/commonOptionConstants'; + +export const useWmsMaterialTypeQueryDrawer = (props: any, ctx?: any) => { + const wmsMaterialTypeDrawer = injectModel<WmsMaterialTypeDrawer>('WmsMaterialTypeDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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: 'materialTypeDesc', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ被鍨嬫弿杩�', + highSelectAttrs:{ + prop: 'materialTypeDesc_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '绫诲瀷缂栫爜', + prop: 'materialTypeCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ被鍨嬬紪鐮�', + highSelectAttrs:{ + prop: 'materialTypeCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '鍒涘缓鏃堕棿', + prop: 'creationTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ垱寤烘椂闂�', + isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠� + }, + { + label: '鏈�鍚庝慨鏀规椂闂�', + prop: 'lastModificationTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ渶鍚庝慨鏀规椂闂�', + isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠� + }, + { + label: '', + prop: 'creatorName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏�', + highSelectAttrs:{ + prop: 'creatorName_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '', + prop: 'lastModifierName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏�', + highSelectAttrs:{ + prop: 'lastModifierName_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + highSelectAttrs:{ + prop: 'remark_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + const commonGetFormData=()=>{ + const data = { + materialTypeDesc: formData.value.materialTypeDesc || '', +materialTypeDesc_FilterMode: formData.value.materialTypeDesc_FilterMode || '', +materialTypeCode: formData.value.materialTypeCode || '', +materialTypeCode_FilterMode: formData.value.materialTypeCode_FilterMode || '', +creationTime: formData.value.creationTime || '', +lastModificationTime: formData.value.lastModificationTime || '', +creatorName: formData.value.creatorName || '', +creatorName_FilterMode: formData.value.creatorName_FilterMode || '', +lastModifierName: formData.value.lastModifierName || '', +lastModifierName_FilterMode: formData.value.lastModifierName_FilterMode || '', +remark: formData.value.remark || '', +remark_FilterMode: formData.value.remark_FilterMode || '', + } + 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) + } + /** + * 閲嶇疆鍏叡select鏌ヨ + */ + const onResetForHighSelect = async () => { + formData.value.materialTypeDesc_FilterMode = 1 +formData.value.materialTypeCode_FilterMode = 1 +formData.value.creatorName_FilterMode = 1 +formData.value.lastModifierName_FilterMode = 1 +formData.value.remark_FilterMode = 1 + } + /** + * 閲嶇疆鏌ヨ + */ + const onReset = async () => { + formData.value = {} + onResetForHighSelect();//閲嶇疆鍏叡select鏌ヨ + formData.value.materialTypeDesc = '' +formData.value.materialTypeCode = '' +formData.value.creationTime = '' +formData.value.lastModificationTime = '' +formData.value.creatorName = '' +formData.value.lastModifierName = '' +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 () => { + + } + commonQueryEnumForFrom() + onResetForHighSelect();//閲嶇疆鍏叡select鏌ヨ + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + 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/HIAWms/Models/Service/WmsMaterialType.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts new file mode 100644 index 0000000..027d7b4 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts @@ -0,0 +1,30 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterialType = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterialType', data) +} + +/** + * 鎵归噺鍒犻櫎 + * @returns + */ +export const deleteWmsMaterialTypes = (ids: string[]) => { + return request({ + data: ids, + url: '/api/v1/HIAWms/wmsMaterialType', + method: 'delete', + }) +} + +/** + * 鍏嬮殕 + * @returns + */ +export const cloneData = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterialType/clone', data) +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts new file mode 100644 index 0000000..216f591 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts @@ -0,0 +1,34 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterialType = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterialType', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWmsMaterialType = (id: string) => { + return request.get(`/api/v1/HIAWms/wmsMaterialType/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWmsMaterialType = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/HIAWms/wmsMaterialType/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts new file mode 100644 index 0000000..55fb96f --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts @@ -0,0 +1,35 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterialType = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterialType', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWmsMaterialType = (id: string) => { + return request.get(`/api/v1/HIAWms/wmsMaterialType/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWmsMaterialType = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/HIAWms/wmsMaterialType/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) +} + diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts new file mode 100644 index 0000000..15a430a --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts @@ -0,0 +1,41 @@ +import { Base } from '@/libs/Base/Base' +import { + deleteWmsMaterialTypes, + addWmsMaterialType, + cloneData, +} from './Service/WmsMaterialType' + +export class WmsMaterialType extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + }) + } + onMounted() {} + /** + * 鍒犻櫎 + * @param id + * @returns + */ + async deleteWmsMaterialTypes(ids: string[]) { + return deleteWmsMaterialTypes(ids) + } + + /** + * 娣诲姞鏁版嵁 + * @param data + * @returns + */ + addWmsMaterialType(data: Record<string, any>) { + return addWmsMaterialType(data) + } + + /** + * 鍏嬮殕 + * @param ids + * @returns + */ + cloneData(ids: string[]) { + return cloneData(ids) + } +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts new file mode 100644 index 0000000..17cbf68 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWmsMaterialType, + getWmsMaterialType, + updateWmsMaterialType, + getWmsEnumData, +} from './Service/WmsMaterialTypeDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WmsMaterialTypeDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + wmsMaterialType: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWmsMaterialType(data: Record<string, any>) { + return addWmsMaterialType(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWmsMaterialType(id: string, data: Record<string, any>) { + return updateWmsMaterialType(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWmsMaterialTypeDetail(current: any, id?: string) { + return getWmsMaterialType(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts new file mode 100644 index 0000000..41a2bb8 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWmsMaterialType, + getWmsMaterialType, + updateWmsMaterialType, + getWmsEnumData, +} from './Service/WmsMaterialTypeQueryDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WmsMaterialTypeQueryDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + wmsMaterialType: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWmsMaterialType(data: Record<string, any>) { + return addWmsMaterialType(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWmsMaterialType(id: string, data: Record<string, any>) { + return updateWmsMaterialType(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWmsMaterialTypeDetail(current: any, id?: string) { + return getWmsMaterialType(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx index 7e8b462..3997a50 100644 --- a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx @@ -23,7 +23,10 @@ const entityNames = getEntityNames(Models) -const nameToLabelMap = [{ name: 'WmsMaterial', label: '鐗╂枡鍩虹' }] +const nameToLabelMap = [ + { name: 'WmsMaterial', label: '鐗╂枡鍩虹' }, + { name: 'WmsMaterialType', label: '鐗╂枡绫诲瀷' }, +] export default defineComponent({ name: 'HIAWms', diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss new file mode 100644 index 0000000..177adca --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx new file mode 100644 index 0000000..4fdd173 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx @@ -0,0 +1,61 @@ +import { SetupContext, defineComponent } from 'vue' +import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' +import styles from './WmsMaterialTypeDrawer.module.scss' +import { useWmsMaterialTypeDrawer } from '../../../../Controllers/WmsMaterialTypeDrawer.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, + } = useWmsMaterialTypeDrawer(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/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss new file mode 100644 index 0000000..177adca --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx new file mode 100644 index 0000000..837c8df --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx @@ -0,0 +1,71 @@ +/* + * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� +*/ +import { SetupContext, defineComponent } from 'vue' +import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' +import styles from './WmsMaterialTypeQueryDrawer.module.scss' +import { useWmsMaterialTypeQueryDrawer } from '../../../../Controllers/WmsMaterialTypeQueryDrawer.tsx' +import DyFormForHighQuery from '@/components/DyFormForHighQuery/DyFormForHighQuery' + +// @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, + } = useWmsMaterialTypeQueryDrawer(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} + > + <DyFormForHighQuery + ref={formRef} + formData={formData.value} + labelWidth="106px" + formItemProps={formItems} + ></DyFormForHighQuery> + </BaseQueryDrawer> + ) + }, +}) diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts new file mode 100644 index 0000000..ae4f82a --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts @@ -0,0 +1,42 @@ +export const columns = [ + { + type: 'seq', + width: 60, + title: '搴忓彿', + }, + { + field: 'materialTypeDesc', + title: '绫诲瀷鎻忚堪', + width:160, +}, +{ + field: 'materialTypeCode', + title: '绫诲瀷缂栫爜', + width:160, +}, +{ + field: 'creationTime', + title: '鍒涘缓鏃堕棿', + width:180, +}, +{ + field: 'lastModificationTime', + title: '鏈�鍚庝慨鏀规椂闂�', + width:180, +}, +{ + field: 'creatorName', + title: '', + width:160, +}, +{ + field: 'lastModifierName', + title: '', + width:160, +}, +{ + field: 'remark', + title: '澶囨敞', + width:160, +}, +] diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss new file mode 100644 index 0000000..09721b0 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss @@ -0,0 +1,113 @@ +.wmsMaterialTypeContent { + width: 100%; + height: 100%; + + .wmsMaterialTypeList { + 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/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx new file mode 100644 index 0000000..900bc2e --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx @@ -0,0 +1,376 @@ +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WmsMaterialType.module.scss' +import { useWmsMaterialType } from '../../../Controllers/WmsMaterialType' +import IconButton from '@/components/IconButton/IconButton' +import WmsMaterialTypeDrawer from '../Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer' +import WmsMaterialTypeQueryDrawer from '../Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer' +import Search from '@/components/Search/Search' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import { vPermission } from '@/libs/Permission/Permission' +import dayjs from 'dayjs' +import { + getWmsEnumData +} from '@/widgets/WmsMaterialType/Models/Service/WmsMaterialTypeDrawer' +import { + ElInput, + ElSelect, + ElOption, + ElDatePicker, + ElForm, + ElFormItem, +} from 'element-plus' +import { injectModel } from '@/libs/Provider/Provider' +// 寮曞叆鍏叡閫夐」閰嶇疆 +import { + FILTER_MODE_OPTIONS_STRING +} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; + +interface RenderTableType { + url?: string + dataSource: Ref<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + autoHeight?: boolean +} + +export default defineComponent({ + name: 'WmsMaterialType', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWmsMaterialType, + onCheck, + onAddWmsMaterialType, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWmsMaterialType(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsMaterialTypeQueryDrawerRef=ref(null); + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs:[], + searchVal_FilterMode:'' + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref([ + 'MaterialTypeCode', 'MaterialTypeDesc', + ]); + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�/鐗╂枡绫诲瀷鍚嶇О'); + + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + + } catch (error) { + console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) + } + } + + // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� + const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[],searchVal_FilterMode:'' }); + // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� + onMounted(() => { + fetchEnumData() + queryForm.value.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || ''; + _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; + _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; + }) + + // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 + const handleQueryForMain = async () => { + _curHighQueryData.value.searchVal = queryForm.value.searchVal; + _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; + _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.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || ''; + 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.searchVal_FilterMode = queryForm.value.searchVal_FilterMode + _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.searchVal_FilterMode = queryForm.value.searchVal_FilterMode + 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.wmsMaterialTypeList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/HIAWms/wmsMaterialType/{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> + ) +}, +lastModificationTime: ({ row }: any) => { + return ( + <div> + {row.lastModificationTime != null + ? dayjs(row.lastModificationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +isDeleted: ({ row }: any) => { + return ( + <div> + {row.isDeleted != null ? (row.isDeleted ? '鏄�' : '鍚�') : '-'} + </div> + ) +}, +deletionTime: ({ row }: any) => { + return ( + <div> + {row.deletionTime != null + ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +isDisabled: ({ row }: any) => { + return ( + <div> + {row.isDisabled != null ? (row.isDisabled ? '鏄�' : '鍚�') : '-'} + </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.wmsMaterialTypeContent}> + {/* 娣诲姞/缂栬緫 */} + <WmsMaterialTypeDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsMaterialType} + /> + {/* 楂樼骇鏌ヨ */} + <WmsMaterialTypeQueryDrawer + ref="wmsMaterialTypeQueryDrawerRef" + 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="wmsMaterialType-add" + icon="add-p" + onClick={onAddWmsMaterialType} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-upload + v-permission="wmsMaterialType-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/wmsMaterialType/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> + + <IconButton + v-permission="wmsMaterialType-output" + icon="out" + onClick={handleExport} + > + 瀵煎嚭 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="鍏抽敭瀛�"> + <el-tooltip + class="box-item" + effect="dark" + content={searchFormInputAttrs_Placeholder.value} + placement="top-start" + > + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </el-tooltip> + </ElFormItem> + <ElFormItem label="" style="width:100px;"> + <ElSelect + v-model={queryForm.value.searchVal_FilterMode} + placeholder="璇烽�夋嫨" + class={styles.formItem} + > + {FILTER_MODE_OPTIONS_STRING.map((option) => ( + <ElOption + key={option.value} + label={option.label} + value={option.value} + /> + ))} + </ElSelect> + </ElFormItem> + <IconButton type="primary" icon="search" onClick={handleQueryForMain}> + 鏌ヨ + </IconButton> + {/* <IconButton style="" icon="refresh" onClick={resetQuery}> + 閲嶇疆 + </IconButton> */} + <IconButton + v-permission="wmsMaterialType-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/HIAWms/wmsMaterialType/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json new file mode 100644 index 0000000..56d6092 --- /dev/null +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json @@ -0,0 +1,3 @@ +{ + "name": "WmsMaterialType" +} diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts index c268a5b..3b6a2da 100644 --- a/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts +++ b/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts @@ -12,4 +12,9 @@ 'wmsMaterial-add': '鍒楄〃-娣诲姞', 'wmsMaterial-import': '鍒楄〃-瀵煎叆', 'wmsMaterial-output': '鍒楄〃-杈撳嚭', + + 'wmsMaterialType-list': '鍒楄〃-鍒楄〃', + 'wmsMaterialType-add': '鍒楄〃-娣诲姞', + 'wmsMaterialType-import': '鍒楄〃-瀵煎叆', + 'wmsMaterialType-output': '鍒楄〃-杈撳嚭', } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/ExportWmsMaterialModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/ExportWmsMaterialModel.cs deleted file mode 100644 index b551de7..0000000 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/ExportWmsMaterialModel.cs +++ /dev/null @@ -1,100 +0,0 @@ -锘縰sing CMS.Plugin.HIAWms.Domain.Shared.Enums; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial -{ - /// <summary> - /// 瀵煎嚭瀹炰綋绫� - /// </summary> - public class ExportWmsMaterialModel - { - /// <summary> - /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛� - /// </summary> - [Description("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")] - public string MaterialNo { get; set; } - - /// <summary> - /// 鐗╂枡鍚嶇О - /// </summary> - [Description("鐗╂枡鍚嶇О")] - public string MaterialName { get; set; } - - /// <summary> - /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - [Description("閲囪喘绫诲瀷锛堟灇涓惧�硷級")] - public string PurchaseType { get; set; } - - /// <summary> - /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - [Description("鐗╂枡绫诲瀷锛堟灇涓惧�硷級")] - public string MaterialType { get; set; } - - /// <summary> - /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� - /// </summary> - [Description("涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�")] - public string PrimaryUnit { get; set; } - - /// <summary> - /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� - /// </summary> - [Description("瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�")] - public string Standard { get; set; } - - /// <summary> - /// 澶栧緞锛堝崟浣嶏細mm锛� - /// </summary> - [Description("澶栧緞锛堝崟浣嶏細mm锛�")] - public decimal OuterDiameter { get; set; } - - /// <summary> - /// 澹佸帤锛堝崟浣嶏細mm锛� - /// </summary> - [Description("澹佸帤锛堝崟浣嶏細mm锛�")] - public decimal WallThickness { get; set; } - - /// <summary> - /// 鏉愯川锛堝锛�304涓嶉攬閽級 - /// </summary> - [Description("鏉愯川锛堝锛�304涓嶉攬閽級")] - public string MaterialQuality { get; set; } - - /// <summary> - /// 闀垮害锛堝崟浣嶏細m锛� - /// </summary> - [Description("闀垮害锛堝崟浣嶏細m锛�")] - public decimal Length { get; set; } - - /// <summary> - /// 鏄惁涓轰富鏀锛坱rue: 涓绘敮绠�, false: 闈炰富鏀锛� - /// </summary> - [Description("鏄惁涓轰富鏀锛坱rue: 涓绘敮绠�, false: 闈炰富鏀锛�")] - public string IsMainBranch { get; set; } - - /// <summary> - /// 鐢熶骇宸ュ巶 - /// </summary> - [Description("鐢熶骇宸ュ巶")] - public string Factory { get; set; } - - /// <summary> - /// 璇佷功缂栧彿锛堝锛氬帇鍔涘鍣ㄨ璇侊級 - /// </summary> - [Description("璇佷功缂栧彿锛堝锛氬帇鍔涘鍣ㄨ璇侊級")] - public string Certification { get; set; } - - /// <summary> - /// 澶囨敞 - /// </summary> - [Description("澶囨敞")] - public virtual string Remark { get; set; } - } -} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs index 9b58a79..24b4a4a 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs @@ -87,17 +87,27 @@ /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - public MaterialTypeEnum? MaterialType { get; set; } + public string? MaterialTypeCode { get; set; } /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� /// </summary> - public SearchFilterModeEnum MaterialType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; + public SearchFilterModeEnum MaterialType_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� - /// </summary> - public string PrimaryUnit { get; set; } + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public string? MaterialTypeDesc { get; set; } + + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialTypeDesc_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� + /// </summary> + public string PrimaryUnit { get; set; } /// <summary> /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�-鏌ヨ鍏崇郴杩愮畻绗� diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs index 407c538..69982a3 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs @@ -32,7 +32,7 @@ /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - public MaterialTypeEnum MaterialType { get; set; } + public string MaterialTypeCode { get; set; } /// <summary> /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs index 46a5588..f6dab7c 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs @@ -45,18 +45,13 @@ /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - public MaterialTypeEnum MaterialType { get; set; } + public string MaterialTypeCode { get; set; } /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - public string MaterialTypeDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(MaterialType); - } - } + public string MaterialTypeDesc { get; set; } + /// <summary> /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� /// </summary> diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs index 8e75976..1d56406 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs @@ -37,8 +37,14 @@ /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - [ExcelColumn(Name = "鐗╂枡绫诲瀷锛堟灇涓惧�硷級", Width = 25)] - public MaterialTypeEnum MaterialType { get; set; } + [ExcelColumn(Name = "鐗╂枡绫诲瀷", Width = 25)] + public string MaterialTypeCode { get; set; } + + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + [ExcelColumn(Name = "鐗╂枡绫诲瀷", Width = 25)] + public string MaterialTypeDesc { get; set; } /// <summary> /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs new file mode 100644 index 0000000..006adca --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs @@ -0,0 +1,232 @@ +using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CmsQueryExtensions.Extension; +using Volo.Abp.Application.Dtos; + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅鏌ヨ鍙傛暟 +/// </summary> +public class GetWmsMaterialTypeInput : 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 MaterialTypeDesc { get; set; } + + /// <summary> + /// 绫诲瀷鎻忚堪-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialTypeDesc_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 绫诲瀷缂栫爜 + /// </summary> + public string MaterialTypeCode { get; set; } + + /// <summary> + /// 绫诲瀷缂栫爜-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialTypeCode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public string CreationTime { get; set; } + + + /// <summary> + /// 鍒涘缓浜篒D + /// </summary> + public string CreatorId { get; set; } + + /// <summary> + /// 鍒涘缓浜篒D-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鏈�鍚庝慨鏀规椂闂� + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public string LastModificationTime { get; set; } + + + /// <summary> + /// 鏈�鍚庝慨鏀逛汉ID + /// </summary> + public string LastModifierId { get; set; } + + /// <summary> + /// 鏈�鍚庝慨鏀逛汉ID-鏌ヨ鍏崇郴杩愮畻绗� + /// </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> + /// 鍒犻櫎浜篒D + /// </summary> + public string DeleterId { get; set; } + + /// <summary> + /// 鍒犻櫎浜篒D-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鍒犻櫎鏃堕棿 + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public string DeletionTime { get; set; } + + + /// <summary> + /// + /// </summary> + public string CreatorName { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public string LastModifierName { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public string OperationRemark { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum OperationRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public string DeleteRemark { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public int? Sort { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; + + /// <summary> + /// 澶囨敞 + /// </summary> + public string Remark { get; set; } + + /// <summary> + /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public bool? IsDisabled { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; + + /// <summary> + /// + /// </summary> + public string ExtraField1 { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public string ExtraField2 { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// + /// </summary> + public string ExtraField3 { get; set; } + + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs new file mode 100644 index 0000000..42875f4 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs @@ -0,0 +1,22 @@ +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅鍒涘缓鍙傛暟瀵硅薄 +/// </summary> +public class WmsMaterialTypeCreateDto : WmsMaterialTypeCreateOrUpdateDtoBase +{ + /// <summary> + /// 鎺掑簭 + /// </summary> + public virtual int? Sort { get; set; } + + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool? IsDisabled { get; set; } = false; + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public string CreatorName { get; set; } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs new file mode 100644 index 0000000..47afc60 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.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.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅鍒涘缓鎴栨洿鏂板熀绫� +/// </summary> +public abstract class WmsMaterialTypeCreateOrUpdateDtoBase : ExtensibleEntityDto +{ + /// <summary> + /// 绫诲瀷鎻忚堪 + /// </summary> + public string MaterialTypeDesc { get; set; } + + /// <summary> + /// 绫诲瀷缂栫爜 + /// </summary> + public string MaterialTypeCode { get; set; } + + /// <summary> + /// 鍒涘缓浜篒D + /// </summary> + public string? CreatorId { get; set; } + + /// <summary> + /// 鏈�鍚庝慨鏀逛汉ID + /// </summary> + public string? LastModifierId { get; set; } + + /// <summary> + /// 鍒犻櫎鏃堕棿 + /// </summary> + public DateTime? DeletionTime { get; set; } + + /// <summary> + /// + /// </summary> + public string? OperationRemark { get; set; } + + /// <summary> + /// + /// </summary> + public string? DeleteRemark { get; set; } + + /// <summary> + /// + /// </summary> + public int Sort { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + public string? Remark { get; set; } + + /// <summary> + /// + /// </summary> + public bool? IsDisabled { get; set; } + + /// <summary> + /// + /// </summary> + public string? ExtraField1 { get; set; } + + /// <summary> + /// + /// </summary> + public string? ExtraField2 { get; set; } + + /// <summary> + /// + /// </summary> + public string? ExtraField3 { get; set; } + + + + /// <summary> + /// Initializes a new instance of the <see cref="WmsMaterialTypeCreateOrUpdateDtoBase"/> class. + /// </summary> + public WmsMaterialTypeCreateOrUpdateDtoBase() : base(false) + { + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs new file mode 100644 index 0000000..19c9b85 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs @@ -0,0 +1,136 @@ +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.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅鏁版嵁鍙傛暟瀵硅薄 +/// </summary> +public class WmsMaterialTypeDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp +{ + /// <summary> + /// 绫诲瀷鎻忚堪 + /// </summary> + public string MaterialTypeDesc { get; set; } + + /// <summary> + /// 绫诲瀷缂栫爜 + /// </summary> + public string MaterialTypeCode { get; set; } + + /// <summary> + /// + /// </summary> + public ExtraPropertyDictionary? ExtraProperties { get; set; } + + /// <summary> + /// + /// </summary> + public string? ConcurrencyStamp { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public DateTime CreationTime { get; set; } + + /// <summary> + /// 鍒涘缓浜篒D + /// </summary> + public string? CreatorId { get; set; } + + /// <summary> + /// 鏈�鍚庝慨鏀规椂闂� + /// </summary> + public DateTime? LastModificationTime { get; set; } + + /// <summary> + /// 鏈�鍚庝慨鏀逛汉ID + /// </summary> + public string? LastModifierId { get; set; } + + /// <summary> + /// 鏄惁宸插垹闄� + /// </summary> + public bool IsDeleted { get; set; } + + /// <summary> + /// 鍒犻櫎浜篒D + /// </summary> + public string? DeleterId { get; set; } + + /// <summary> + /// 鍒犻櫎鏃堕棿 + /// </summary> + public DateTime? DeletionTime { get; set; } + + /// <summary> + /// + /// </summary> + public string? CreatorName { get; set; } + + /// <summary> + /// + /// </summary> + public string? LastModifierName { get; set; } + + /// <summary> + /// + /// </summary> + public string? OperationRemark { get; set; } + + /// <summary> + /// + /// </summary> + public string? DeleteRemark { get; set; } + + /// <summary> + /// + /// </summary> + public int Sort { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + public string? Remark { get; set; } + + /// <summary> + /// + /// </summary> + public bool? IsDisabled { get; set; } + + /// <summary> + /// + /// </summary> + public string? ExtraField1 { get; set; } + + /// <summary> + /// + /// </summary> + public string? ExtraField2 { get; set; } + + /// <summary> + /// + /// </summary> + public string? ExtraField3 { 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/WmsMaterialType/WmsMaterialTypeExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs new file mode 100644 index 0000000..70c9b5f --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs @@ -0,0 +1,67 @@ +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.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅瀵煎嚭妯″瀷 +/// </summary> +public class WmsMaterialTypeExportModel +{ + /// <summary> + /// 绫诲瀷鎻忚堪 + /// </summary> + [ExcelColumn(Name = "绫诲瀷鎻忚堪", Width = 25)] + public string MaterialTypeDesc { get; set; } + + /// <summary> + /// 绫诲瀷缂栫爜 + /// </summary> + [ExcelColumn(Name = "绫诲瀷缂栫爜", Width = 25)] + public string MaterialTypeCode { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + [ExcelColumn(Name = "鍒涘缓鏃堕棿", Width = 25)] + public DateTime CreationTime { get; set; } + + /// <summary> + /// 鏈�鍚庝慨鏀规椂闂� + /// </summary> + [ExcelColumn(Name = "鏈�鍚庝慨鏀规椂闂�", Width = 25)] + public DateTime LastModificationTime { get; set; } + + /// <summary> + /// + /// </summary> + [ExcelColumn(Name = "", Width = 25)] + public string CreatorName { get; set; } + + /// <summary> + /// + /// </summary> + [ExcelColumn(Name = "", Width = 25)] + public string LastModifierName { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + [ExcelColumn(Name = "澶囨敞", Width = 25)] + public string Remark { 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/WmsMaterialType/WmsMaterialTypeUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs new file mode 100644 index 0000000..b2a763c --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs @@ -0,0 +1,18 @@ +using Volo.Abp.Domain.Entities; +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅鏇存柊鍙傛暟瀵硅薄 +/// </summary> +public class WmsMaterialTypeUpdateDto : WmsMaterialTypeCreateOrUpdateDtoBase, IHasConcurrencyStamp +{ + /// <summary> + /// 骞跺彂鎴� + /// </summary> + public string ConcurrencyStamp { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public string LastModifierName { get; set; } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs new file mode 100644 index 0000000..89471c1 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs @@ -0,0 +1,33 @@ + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType +{ + /// <summary> + /// 鐗╂枡l绫诲瀷淇℃伅瀵煎叆妯″瀷 + /// </summary> + public class WmsMaterialTypesImportModel + { + private List<WmsMaterialTypeImportModel> _WmsMaterialTypes = new(); + + public List<WmsMaterialTypeImportModel> WmsMaterialTypes + { + get => _WmsMaterialTypes; + set + { + _WmsMaterialTypes = value; + var rowIndex = 2; + _WmsMaterialTypes?.ForEach(x => x.RowIndex = rowIndex++); + } + } + + /// <summary> + /// 鐗╂枡l绫诲瀷淇℃伅瀵煎叆妯″瀷 + /// </summary> + public class WmsMaterialTypeImportModel : WmsMaterialTypeExportModel + { + /// <summary> + /// 琛屽彿 + /// </summary> + public int RowIndex { get; set; } + } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs new file mode 100644 index 0000000..15b99a7 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs @@ -0,0 +1,17 @@ +锘縰sing CMS.Plugin.HIAWms.Domain.Shared.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask +{ + /// <summary> + /// 鏌ヨ浠诲姟鍏ュ弬 + /// </summary> + public class QueryTaskTypeInput + { + public TaskTypeEnum TaskType { get; set; } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs new file mode 100644 index 0000000..7e40c10 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs @@ -0,0 +1,85 @@ +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; +using Volo.Abp.Application.Services; +using CmsQueryExtensions.Entitys; +using System.Linq.Expressions; +using CMS.Plugin.HIAWms.Domain.WmsMaterialType; + +namespace CMS.Plugin.HIAWms.Application.Contracts.Services; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅搴旂敤鏈嶅姟鎺ュ彛 +/// </summary> +public interface IWmsMaterialTypeAppService : ICrudAppService<WmsMaterialTypeDto, Guid, GetWmsMaterialTypeInput, WmsMaterialTypeCreateDto, WmsMaterialTypeUpdateDto> +{ + /// <summary> + /// 鍏嬮殕鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + Task<List<WmsMaterialTypeDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser); + + /// <summary> + /// 鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser); + + /// <summary> + /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); + + + /// <summary> + /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� + /// </summary> + /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); + + /// <summary> + /// 璋冩暣鎺掑簭鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id"></param> + /// <param name="sort"></param> + /// <returns></returns> + Task AdjustSortAsync(Guid id, int sort); + + /// <summary> + /// 瀵煎叆鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task ImportAsync(WmsMaterialTypesImportModel input, MyCurrentUser myCurrentUser); + + /// <summary> + /// 瀵煎嚭鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialTypeInput input); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default); + + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs index 425e4c7..7f6670c 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs @@ -64,4 +64,11 @@ /// <param name="input"></param> /// <returns></returns> Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input); + + /// <summary> + /// 鑾峰彇闇�瑕佹墽琛岀殑鍫嗗灈鏈轰换鍔� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input); } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs index 6b9e8d9..2e8431a 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs @@ -100,7 +100,7 @@ public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync() { var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial()); - if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); ; + if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); return materialList.Select(material => new MaterialModelOutput { diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs index 012a139..ada2978 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs @@ -125,7 +125,7 @@ wmsmaterial.MaterialName = input.MaterialName; wmsmaterial.PurchaseType = input.PurchaseType; - wmsmaterial.MaterialType = input.MaterialType; + wmsmaterial.MaterialTypeCode = input.MaterialTypeCode; wmsmaterial.PrimaryUnit = input.PrimaryUnit; wmsmaterial.Standard = input.Standard; wmsmaterial.OuterDiameter = input.OuterDiameter; @@ -271,7 +271,7 @@ MaterialNo = wmsmaterial.MaterialNo, MaterialName = wmsmaterial.MaterialName, PurchaseType = wmsmaterial.PurchaseType, - MaterialType = wmsmaterial.MaterialType, + MaterialTypeCode = wmsmaterial.MaterialTypeCode, PrimaryUnit = wmsmaterial.PrimaryUnit, Standard = wmsmaterial.Standard, OuterDiameter = wmsmaterial.OuterDiameter, @@ -293,7 +293,7 @@ MaterialNo = wmsmaterial.MaterialNo, MaterialName = wmsmaterial.MaterialName, PurchaseType = wmsmaterial.PurchaseType, - MaterialType = wmsmaterial.MaterialType, + MaterialTypeCode = wmsmaterial.MaterialTypeCode, PrimaryUnit = wmsmaterial.PrimaryUnit, Standard = wmsmaterial.Standard, OuterDiameter = wmsmaterial.OuterDiameter, diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs new file mode 100644 index 0000000..9813bf7 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs @@ -0,0 +1,455 @@ +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; +using CMS.Plugin.HIAWms.Application.Contracts.Services; +using CMS.Plugin.HIAWms.Domain.Shared; +using CmsQueryExtensions; +using CMS.Plugin.HIAWms.Domain.WmsMaterialType; +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; +using CmsQueryExtensions.Entitys; + +namespace CMS.Plugin.HIAWms.Application.Implements; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅搴旂敤鏈嶅姟 +/// </summary> +public class WmsMaterialTypeAppService : CMSPluginAppService, IWmsMaterialTypeAppService +{ + private readonly IWmsMaterialTypeRepository _WmsMaterialTypeRepository; + + /// <summary> + /// Initializes a new instance of the <see cref="WmsMaterialTypeAppService"/> class. + /// </summary> + /// <param name="WmsMaterialTypeRepository">The task job repository.</param> + public WmsMaterialTypeAppService(IWmsMaterialTypeRepository WmsMaterialTypeRepository) + { + _WmsMaterialTypeRepository = WmsMaterialTypeRepository; + } + + /// <summary> + /// 鑾峰彇鎸囧畾鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public virtual async Task<WmsMaterialTypeDto> GetAsync(Guid id) + { + return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(await _WmsMaterialTypeRepository.GetAsync(id)); + } + + /// <summary> + /// 鍒嗛〉鑾峰彇鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public virtual async Task<PagedResultDto<WmsMaterialTypeDto>> GetListAsync(GetWmsMaterialTypeInput input) + { + Check.NotNull(input, nameof(input)); + + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(WmsMaterialType.Sort); + } + + #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + var whereConditions = DynamicGetQueryParams(input); + + #endregion + + var count = await _WmsMaterialTypeRepository.GetCountAsync(whereConditions); + var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); + + return new PagedResultDto<WmsMaterialTypeDto>(count, ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(list)); + } + + /// <summary> + /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + /// </summary> + /// <param name="input">杈撳叆鍙傛暟</param> + /// <returns></returns> + private FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> DynamicGetQueryParams(GetWmsMaterialTypeInput input) + { + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialType, GetWmsMaterialTypeInput>(input); + if (!whereConditions.IsSuccess) + { + throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); + } + + //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠� + Expression<Func<WmsMaterialType, bool>> extendExpression = a => a.IsDeleted == false; + // 浣跨敤 System.Linq.PredicateBuilder 鐨� And + var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialType, bool>>)(whereConditions.data); + whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); + + return whereConditions; + } + + /// <summary> + /// 鏂板缓鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public virtual async Task<WmsMaterialTypeDto> CreateAsync(WmsMaterialTypeCreateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var exist = await _WmsMaterialTypeRepository.NameExistAsync(input.MaterialTypeCode); + if (exist) + { + throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialTypeCode]); + } + + var maxSort = await _WmsMaterialTypeRepository.GetMaxSortAsync(); + var sort = input.Sort ?? maxSort; + + var insertObj = ObjectMapper.Map<WmsMaterialTypeCreateDto, WmsMaterialType>(input); + insertObj.Sort = sort; + input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); + + insertObj.CreatorName = input.CreatorName;//鍒涘缓浜� + await _WmsMaterialTypeRepository.InsertAsync(insertObj); + + //if (input.Sort.HasValue && insertObj.Sort != maxSort) + //{ + // await AdjustSortAsync(insertObj.Id, insertObj.Sort); + //} + + return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(insertObj); + } + + /// <summary> + /// 鏇存柊鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id"></param> + /// <param name="input"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public virtual async Task<WmsMaterialTypeDto> UpdateAsync(Guid id, WmsMaterialTypeUpdateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var updateObj = await _WmsMaterialTypeRepository.GetAsync(id); + var exist = await _WmsMaterialTypeRepository.NameExistAsync(input.MaterialTypeCode, updateObj.Id); + if (exist) + { + throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialTypeCode]); + } + + updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); + input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); + + updateObj.MaterialTypeDesc = input.MaterialTypeDesc; + updateObj.MaterialTypeCode = input.MaterialTypeCode; + updateObj.Remark = input.Remark; + + + updateObj.LastModifierName = input.LastModifierName;//淇敼浜� + + await _WmsMaterialTypeRepository.UpdateAsync(updateObj); + + return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(updateObj); + } + + /// <summary> + /// 鍏嬮殕鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + public async Task<List<WmsMaterialTypeDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser) + { + //var WmsMaterialTypes = new List<WmsMaterialType>(); + //if (ids != null) + //{ + // var sort = await _WmsMaterialTypeRepository.GetMaxSortAsync(); + // foreach (var id in ids) + // { + // var WmsMaterialType = await _WmsMaterialTypeRepository.FindAsync(id); + // if (WmsMaterialType != null) + // { + // var name = WmsMaterialType.Name + WmsMaterialTypeConsts.CloneTag; + // var notExist = false; + // while (!notExist) + // { + // var exist = await _WmsMaterialTypeRepository.NameExistAsync(name); + // if (exist || WmsMaterialTypes.Any(x => x.Name == name)) + // { + // name += WmsMaterialTypeConsts.CloneTag; + // continue; + // } + + // notExist = true; + // } + + // //WmsMaterialType = await _WmsMaterialTypeRepository.InsertAsync(WmsMaterialType.Clone(GuidGenerator.Create(), name, sort++)); + // WmsMaterialTypes.Add(WmsMaterialType); + // } + // } + //} + + //return ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(WmsMaterialTypes); + return new List<WmsMaterialTypeDto>(); + } + + /// <summary> + /// 鍒犻櫎鍗曚釜鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public virtual Task DeleteAsync(Guid id) + { + return _WmsMaterialTypeRepository.DeleteAsync(id); + } + + /// <summary> + /// 鍒犻櫎澶氫釜鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + public async Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser) + { + foreach (var id in ids) + { + await DeleteAsync(id); + } + } + + /// <summary> + /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public virtual async Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default) + { + _WmsMaterialTypeRepository.DeletePermanentlyAsync(id); + } + + /// <summary> + /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� + /// </summary> + /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default) + { + _WmsMaterialTypeRepository.BatchDeletePermanentlyAsync(ids); + } + + /// <summary> + /// 璋冩暣鎺掑簭鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id"></param> + /// <param name="sort"></param> + /// <returns></returns> + public virtual async Task AdjustSortAsync(Guid id, int sort) + { + var list = await _WmsMaterialTypeRepository.GetListAsync(null, nameof(WmsMaterialType.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 _WmsMaterialTypeRepository.UpdateManyAsync(list); + } + + /// <summary> + /// 瀵煎叆鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task ImportAsync(WmsMaterialTypesImportModel input, MyCurrentUser myCurrentUser) + { + Check.NotNull(input, nameof(input)); + + var WmsMaterialTypeCreateDtos = new List<(int RowIndex, WmsMaterialTypeCreateDto Item)>(); + var WmsMaterialTypeUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialTypeUpdateDto Item)>(); + var importItems = input.WmsMaterialTypes; + + if (importItems != null && importItems.Any()) + { + #region 瀵煎叆鏍¢獙 + + // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� + var duplicateWmsMaterialTypes = importItems.GroupBy(x => x.MaterialTypeCode).Where(x => x.Count() > 1).ToList(); + if (duplicateWmsMaterialTypes?.Any() == true) + { + var duplicateWmsMaterialTypeMsgs = duplicateWmsMaterialTypes.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅"); + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsMaterialTypeMsgs)}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + + #endregion + + foreach (var impItem in importItems) + { + if (impItem.MaterialTypeCode.IsNullOrWhiteSpace()) + { + continue; + } + + if (impItem.MaterialTypeCode.IsNullOrWhiteSpace()) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsMaterialType鍚嶇О涓嶈兘涓虹┖"; + throw new UserFriendlyException(errorMsg); + } + + var oldWmsMaterialType = await _WmsMaterialTypeRepository.FindByNameAsync(impItem.MaterialTypeCode); + if (oldWmsMaterialType != null) + { + var WmsMaterialTypeUpdateDto = new WmsMaterialTypeUpdateDto + { + MaterialTypeDesc = impItem.MaterialTypeDesc, +MaterialTypeCode = impItem.MaterialTypeCode, +Remark = impItem.Remark, + + }; + + WmsMaterialTypeUpdateDtos.Add((impItem.RowIndex, oldWmsMaterialType.Id, WmsMaterialTypeUpdateDto)); + } + else + { + var WmsMaterialTypeCreateDto = new WmsMaterialTypeCreateDto + { + MaterialTypeDesc = impItem.MaterialTypeDesc, +MaterialTypeCode = impItem.MaterialTypeCode, +Remark = impItem.Remark, + + }; + + WmsMaterialTypeCreateDtos.Add((impItem.RowIndex, WmsMaterialTypeCreateDto)); + } + } + } + + // 鏂板 + foreach (var WmsMaterialTypeDto in WmsMaterialTypeCreateDtos) + { + try + { + WmsMaterialTypeDto.Item.CreatorName = myCurrentUser.UserAccount;//鍒涘缓浜� + await CreateAsync(WmsMaterialTypeDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊WmsMaterialTypeDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + + // 鏇存柊 + foreach (var WmsMaterialTypeDto in WmsMaterialTypeUpdateDtos) + { + try + { + WmsMaterialTypeDto.Item.LastModifierName = myCurrentUser.UserAccount;//淇敼浜� + await UpdateAsync(WmsMaterialTypeDto.Id, WmsMaterialTypeDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊WmsMaterialTypeDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + } + + /// <summary> + /// 瀵煎嚭鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialTypeInput input) + { + Check.NotNull(input, nameof(input)); + + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(WmsMaterialType.Sort); + } + + #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + var whereConditions = DynamicGetQueryParams(input); + + #endregion + + + var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); + var result = ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(list); + + var sheets = new Dictionary<string, object> + { + ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), + }; + + var fileName = "鐗╂枡绫诲瀷"; + return (sheets, fileName); + } + + /// <summary> + /// 鏍¢獙鐗╂枡l绫诲瀷淇℃伅锛屽綋鏂板缓鎴栨洿鏂版椂 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialTypeCreateOrUpdateDtoBase input) + { + Check.NotNull(input, nameof(input)); + Check.NotNullOrWhiteSpace(input.MaterialTypeDesc, "绫诲瀷鎻忚堪", 128); + Check.NotNullOrWhiteSpace(input.MaterialTypeCode, "绫诲瀷缂栫爜", 64); + + return Task.CompletedTask; + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default) + { + return await _WmsMaterialTypeRepository.GetListByFilterAsync(whereConditions); + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) + { + return await _WmsMaterialTypeRepository.GetSingleByFilterAsync(whereConditions, is鈥婱ultipleThrowException); + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs index d09721c..7ede721 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs @@ -20,6 +20,8 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; using Volo.Abp.Uow; using Microsoft.Extensions.DependencyInjection; +using NPOI.SS.Formula.Functions; +using System.Collections.Generic; namespace CMS.Plugin.HIAWms.Application.Implements; @@ -738,4 +740,29 @@ await wmsTaskRepository.UpdateAsync(task); } + + /// <summary> + /// 鑾峰彇闇�瑕佹墽琛岀殑浠诲姟 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input) + { + var queryInput = new GetWmsTaskInput + { + TaskStatus = WmsTaskStatus.WEIZHIXING, + }; + var whereConditions = DynamicGetQueryParams(queryInput); + + var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions); + if(NoStartTaskList.Count<=0) return null; + + var executeTask = NoStartTaskList.FirstOrDefault(x=>x.TaskType == input.TaskType); + if(executeTask == null) + { + return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault()); + } + + return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask); + } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs new file mode 100644 index 0000000..21a9ea9 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs @@ -0,0 +1,26 @@ +using AutoMapper; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; +using CMS.Plugin.HIAWms.Domain.WmsMaterialType; +using Volo.Abp.ObjectExtending; + +namespace CMS.Plugin.HIAWms.Application.MapperProfiles; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅AutoMapper閰嶇疆 +/// </summary> +/// <seealso cref="AutoMapper.Profile" /> +public class WmsMaterialTypeAutoMapperProfile : Profile +{ + /// <summary> + /// Initializes a new instance of the <see cref="WmsMaterialTypeAutoMapperProfile"/> class. + /// </summary> + public WmsMaterialTypeAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + CreateMap<WmsMaterialType, WmsMaterialTypeDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); + CreateMap<WmsMaterialTypeCreateDto, WmsMaterialType>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); + CreateMap<GetWmsMaterialTypeInput, WmsMaterialType>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs new file mode 100644 index 0000000..50f49c3 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs @@ -0,0 +1,22 @@ +锘縰sing CMS.Plugin.MyExtension.Domain; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CMS.Plugin.HIAWms.Domain.MaterialType +{ + public class WmsMaterialType : MyFullAuditedAggregateRoot<Guid> + { + /// <summary> + /// 绫诲瀷鎻忚堪 + /// </summary> + public string MaterialTypeDesc { get; set; } + + /// <summary> + /// 绫诲瀷缂栫爜 + /// </summary> + public string MaterialTypeCode { get; set; } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs new file mode 100644 index 0000000..808eb8e --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs @@ -0,0 +1,88 @@ +using CmsQueryExtensions.Extension; +using System.Linq.Expressions; +using Volo.Abp.Domain.Repositories; + +namespace CMS.Plugin.HIAWms.Domain.WmsMaterialType; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅浠撳偍 +/// </summary> +public interface IWmsMaterialTypeRepository : IBasicRepository<WmsMaterialType, Guid> +{ + /// <summary> + /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="name"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<WmsMaterialType> FindByNameAsync(string name, CancellationToken cancellationToken = default); + + /// <summary> + /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡l绫诲瀷淇℃伅 + /// </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> + /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡l绫诲瀷淇℃伅 + /// </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<WmsMaterialType>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); + + /// <summary> + /// 鑾峰彇鎬绘暟鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> whereConditions, CancellationToken cancellationToken = default); + + /// <summary> + /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default); + + + /// <summary> + /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� + /// </summary> + /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs index e23824b..9cb7320 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs @@ -35,7 +35,12 @@ /// <summary> /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - public MaterialTypeEnum MaterialType { get; set; } + public string MaterialTypeCode { get; set; } + + /// <summary> + /// 鐗╂枡绫诲瀷 + /// </summary> + public string MaterialTypeDesc { get; set; } /// <summary> /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs index f9e79e7..e508541 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs @@ -58,4 +58,14 @@ /// <param name="cancellationToken"></param> /// <returns></returns> Task<WmsTask> QueryWmsTaskByDataIdentifierAasync(string dataIdentifier, CancellationToken cancellationToken = default); + + /// <summary> + /// 鑾峰彇浠诲姟鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="sorting"></param> + /// <param name="includeDetails"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<WmsTask>> GetTaskListAsync(FunReturnResultModel<Expression<Func<WmsTask, bool>>> whereConditions, string sorting = null, bool includeDetails = false, CancellationToken cancellationToken = default); } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs index 9c0d47b..08631c1 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs @@ -63,8 +63,13 @@ b.Property(x => x.PurchaseType) .HasComment("閲囪喘绫诲瀷锛堟灇涓惧�硷級"); - b.Property(x => x.MaterialType) - .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級"); + b.Property(x => x.MaterialTypeCode) + .HasMaxLength(20) + .HasComment("鐗╂枡绫诲瀷缂栫爜"); + + b.Property(x => x.MaterialTypeDesc) + .HasMaxLength(20) + .HasComment("鐗╂枡绫诲瀷"); b.Property(x => x.PrimaryUnit) .HasMaxLength(20) @@ -140,7 +145,7 @@ b.HasIndex(x => x.MaterialNo).IsUnique(); // 鐗╂枡缂栫爜鍞竴绱㈠紩 b.HasIndex(x => x.MaterialName); // 鐗╂枡鍚嶇О鏅�氱储寮� b.HasIndex(x => x.PurchaseType); // 閲囪喘绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛� - b.HasIndex(x => x.MaterialType); // 鐗╂枡绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛� + b.HasIndex(x => x.MaterialTypeCode); // 鐗╂枡绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛� b.ApplyObjectExtensionMappings(); }); diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs new file mode 100644 index 0000000..8c7f612 --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs @@ -0,0 +1,100 @@ +锘縰sing CMS.Plugin.HIAWms.Domain; +using CMS.Plugin.HIAWms.Domain.MaterialType; +using CMS.Plugin.HIAWms.Domain.WmsMaterials; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions +{ + public static partial class CMSPluginEfCoreExtensions + { + /// <summary> + /// Includes the details. + /// </summary> + /// <param name="queryable">The queryable.</param> + /// <param name="include">if set to <c>true</c> [include].</param> + /// <returns></returns> + public static IQueryable<WmsMaterialType> IncludeDetails(this IQueryable<WmsMaterialType> queryable, bool include = true) + { + if (!include) + { + return queryable; + } + + return queryable; + } + + /// <summary> + /// ConfigureWmsMaterialType + /// </summary> + /// <param name="builder"></param> + public static void ConfigureWmsMaterialType(this ModelBuilder builder) + { + Check.NotNull(builder, nameof(builder)); + + builder.Entity<WmsMaterialType>(b => + { + // 閰嶇疆琛ㄥ悕鍜屾敞閲� + b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsMaterialType").ToLower(), + CMSPluginDbProperties.DbSchema) + .HasComment("鐗╂枡绫诲瀷琛�"); + + b.ConfigureByConvention(); + + // 涓婚敭閰嶇疆锛圡yFullAuditedAggregateRoot<Guid> 宸查粯璁ゅ寘鍚� Id锛� + b.HasKey(x => x.Id); + + // 瀛楁閰嶇疆 + b.Property(x => x.MaterialTypeCode) + .HasMaxLength(64) + .IsRequired() + .HasComment("绫诲瀷缂栫爜"); + + b.Property(x => x.MaterialTypeDesc) + .HasMaxLength(128) + .IsRequired() + .HasComment("绫诲瀷鎻忚堪"); + + // 鍏朵粬閫氱敤瀛楁锛堢户鎵胯嚜MyFullAuditedAggregateRoot<Guid>锛� + + b.Property(x => x.Remark) + .HasMaxLength(50) + .HasComment("澶囨敞"); + + b.Property(x => x.CreationTime) + .HasComment("鍒涘缓鏃堕棿"); + + b.Property(x => x.CreatorId) + .HasComment("鍒涘缓浜篒D"); + + b.Property(x => x.LastModificationTime) + .HasComment("鏈�鍚庝慨鏀规椂闂�"); + + b.Property(x => x.LastModifierId) + .HasComment("鏈�鍚庝慨鏀逛汉ID"); + + b.Property(x => x.IsDeleted) + .HasDefaultValue(false) + .HasComment("鏄惁宸插垹闄�"); + + b.Property(x => x.DeleterId) + .HasComment("鍒犻櫎浜篒D"); + + b.Property(x => x.DeletionTime) + .HasComment("鍒犻櫎鏃堕棿"); + + // 绱㈠紩閰嶇疆 + b.HasIndex(x => x.MaterialTypeCode).IsUnique(); // 绫诲瀷缂栫爜鍞竴绱㈠紩 + b.HasIndex(x => x.MaterialTypeDesc); // 绫诲瀷鎻忚堪鏅�氱储寮� + + b.ApplyObjectExtensionMappings(); + }); + } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs index 50fc33d..5ccf656 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs @@ -104,7 +104,7 @@ return await (await GetDbSetAsync()) .WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName)) .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialNo.Contains(material.MaterialNo)) - .WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType) + .WhereIf(!string.IsNullOrEmpty(material.MaterialTypeCode), u => u.MaterialTypeCode == material.MaterialTypeCode) .WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType) .Where(x => !x.IsDeleted) .ToListAsync(GetCancellationToken(cancellationToken)); diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs new file mode 100644 index 0000000..f3c1fef --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs @@ -0,0 +1,218 @@ +using CMS.Plugin.HIAWms.Domain.WmsMaterialType; +using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; +using CmsQueryExtensions.Extension; +using Microsoft.EntityFrameworkCore; +using System.Linq.Dynamic.Core; +using System.Linq.Expressions; +using Volo.Abp; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; + + +namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; + +/// <summary> +/// 鐗╂枡l绫诲瀷淇℃伅浠撳偍瀹炵幇 +/// </summary> +public class EfCoreWmsMaterialTypeRepository : EfCoreRepository<ICMSPluginDbContext, WmsMaterialType, Guid>, IWmsMaterialTypeRepository +{ + /// <summary> + /// Initializes a new instance of the <see cref="EfCoreWmsMaterialTypeRepository"/> class. + /// </summary> + /// <param name="dbContextProvider">The database context provider.</param> + public EfCoreWmsMaterialTypeRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) + : base(dbContextProvider) + { + } + + /// <summary> + /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="name"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public virtual async Task<WmsMaterialType> FindByNameAsync(string name, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .IncludeDetails() + .Where(x => !x.IsDeleted) + .OrderByDescending(x=>x.CreationTime) + .FirstOrDefaultAsync(t => t.MaterialTypeCode == name, GetCancellationToken(cancellationToken)); + } + + /// <summary> + /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡l绫诲瀷淇℃伅 + /// </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.MaterialTypeCode == 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> + /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡l绫诲瀷淇℃伅 + /// </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<WmsMaterialType>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, 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> + /// 鑾峰彇鎬绘暟鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, 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<WmsMaterialType>> WithDetailsAsync() + { + return (await GetQueryableAsync()) + .Where(x => !x.IsDeleted).IncludeDetails(); + } + + /// <summary> + /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public virtual async Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default) + { + var entity = await (await GetDbSetAsync()) + .FirstOrDefaultAsync(x => x.Id == id && !x.IsDeleted, GetCancellationToken(cancellationToken)); + + if (entity == null) + { + throw new Volo.Abp.Domain.Entities.EntityNotFoundException(typeof(WmsMaterialType), id); + } + + // 2. 鑾峰彇 DbContext 骞舵墽琛屽垹闄� + var dbContext = await GetDbContextAsync(); + + // 鐩存帴鎵ц SQL 鍒犻櫎 + var sql = $"DELETE FROM scms_wmsmaterialtype WHERE Id ='{entity.Id.ToString()}'"; + await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); + } + + /// <summary> + /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� + /// </summary> + /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default) + { + // 1. 鏌ヨ绗﹀悎鏉′欢鐨勫疄浣擄紙鏈蒋鍒犻櫎鐨勮褰曪級 + var entities = await (await GetDbSetAsync()) + .Where(x => ids.Contains(x.Id) && !x.IsDeleted) + .ToListAsync(GetCancellationToken(cancellationToken)); + + if (!entities.Any()) + { + // 濡傛灉娌℃湁闇�瑕佸垹闄ょ殑璁板綍锛岀洿鎺ヨ繑鍥烇紙閬垮厤涓嶅繀瑕佺殑鏁版嵁搴撴搷浣滐級 + return; + } + + // 2. 鑾峰彇 DbContext 骞舵墽琛屾壒閲忓垹闄� + var dbContext = await GetDbContextAsync(); + + var idsToDelete = entities.Select(e => e.Id).ToList(); + + // 鐩存帴鎵ц SQL 鍒犻櫎 + var sql = $"DELETE FROM scms_wmsmaterialtype WHERE Id IN ({string.Join(",", idsToDelete.Select(id => $"'{id}'"))})"; + await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .IncludeDetails() + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .ToListAsync(GetCancellationToken(cancellationToken)); + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) + { + if (is鈥婱ultipleThrowException) + { + var entitys = await (await GetDbSetAsync()) + .IncludeDetails() + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .ToListAsync(GetCancellationToken(cancellationToken)); + if (entitys?.Count > 1) + { + throw new UserFriendlyException("鏌ヨ鍒板鏉¤褰�"); + } + return entitys?.FirstOrDefault(); + } + else + { + return await (await GetDbSetAsync()) + .IncludeDetails() + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs index 5635ff8..a0ebc7b 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs @@ -125,4 +125,23 @@ .OrderByDescending(x=>x.CreationTime) .FirstOrDefaultAsync(t => t.MutableParam2 == dataIdentifier, GetCancellationToken(cancellationToken)); } + + /// <summary> + /// 鑾峰彇浠诲姟鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="sorting"></param> + /// <param name="includeDetails"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsTask>> GetTaskListAsync(FunReturnResultModel<Expression<Func<WmsTask, bool>>> whereConditions, string sorting = null, bool includeDetails = false, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .IncludeDetails(includeDetails) + .WhereIf(whereConditions != null, whereConditions.data) + .Where(x => !x.IsDeleted) + .OrderBy(x => x.TaskType) + .ThenBy(x=>x.TaskLevel) + .ToListAsync(GetCancellationToken(cancellationToken)); + } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs index dc25e9f..f794242 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs @@ -45,6 +45,7 @@ builder.ConfigureWmsMaterialContainer(); builder.ConfigureWmsInOutStockOrder(); builder.ConfigureWmsInOutStockOrderDetail(); + builder.ConfigureWmsMaterialType(); /* Configure your own tables/entities inside here */ diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs new file mode 100644 index 0000000..de5eb9f --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs @@ -0,0 +1,1909 @@ +锘�// <auto-generated /> +using System; +using CMS.Plugin.HIAWms.MySQL; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Volo.Abp.EntityFrameworkCore; + +#nullable disable + +namespace CMS.Plugin.HIAWms.MySQL.Migrations +{ + [DbContext(typeof(CMSPluginDbContext))] + [Migration("20250515034921_InitialCreate17")] + partial class InitialCreate17 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) + .HasAnnotation("ProductVersion", "6.0.16") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.MaterialType.WmsMaterialType", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime") + .HasComment("鍒涘缓鏃堕棿"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId") + .HasComment("鍒涘缓浜篒D"); + + b.Property<string>("CreatorName") + .HasColumnType("longtext"); + + b.Property<string>("DeleteRemark") + .HasColumnType("longtext"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId") + .HasComment("鍒犻櫎浜篒D"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime") + .HasComment("鍒犻櫎鏃堕棿"); + + b.Property<string>("ExtraField1") + .HasColumnType("longtext"); + + b.Property<string>("ExtraField2") + .HasColumnType("longtext"); + + b.Property<string>("ExtraField3") + .HasColumnType("longtext"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted") + .HasComment("鏄惁宸插垹闄�"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime") + .HasComment("鏈�鍚庝慨鏀规椂闂�"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId") + .HasComment("鏈�鍚庝慨鏀逛汉ID"); + + b.Property<string>("LastModifierName") + .HasColumnType("longtext"); + + b.Property<string>("MaterialTypeCode") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("绫诲瀷缂栫爜"); + + b.Property<string>("MaterialTypeDesc") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("绫诲瀷鎻忚堪"); + + b.Property<string>("OperationRemark") + .HasColumnType("longtext"); + + b.Property<string>("Remark") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MaterialTypeCode") + .IsUnique(); + + b.HasIndex("MaterialTypeDesc"); + + b.ToTable("scms_wmsmaterialtype", (string)null); + + b.HasComment("鐗╂枡绫诲瀷琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("AreaDesc") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鎻忚堪"); + + b.Property<string>("AreaName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("搴撳尯鍚嶇О"); + + b.Property<string>("AreaNo") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("搴撳尯缂栧彿"); + + b.Property<int>("AreaStatus") + .HasColumnType("int") + .HasComment("搴撳尯鐘舵��"); + + b.Property<int>("AreaType") + .HasColumnType("int") + .HasComment("搴撳尯绫诲瀷"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("RedundantField1") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField2") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField3") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("Remark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("StoreCode") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("浠撳簱浠g爜"); + + b.Property<string>("StoreName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("浠撳簱鍚嶇О"); + + b.HasKey("Id"); + + b.HasIndex("AreaName"); + + b.ToTable("scms_wmsareas", (string)null); + + b.HasComment("搴撳尯琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainerPlace.WmsContainerPlace", b => + { + b.Property<string>("PlaceNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("搴撲綅缂栫爜"); + + b.Property<string>("ContainerNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鎵樼洏缂栧彿"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp") + .HasComment("骞跺彂鎴�"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime") + .HasComment("鍒涘缓鏃堕棿"); + + b.Property<Guid?>("CreatorId") + .HasMaxLength(36) + .HasColumnType("char(36)") + .HasColumnName("CreatorId") + .HasComment("鍒涘缓浜篒D"); + + b.Property<string>("CreatorName") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鍒涘缓浜�"); + + b.Property<string>("DeleteRemark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍒犻櫎澶囨敞"); + + b.Property<Guid?>("DeleterId") + .HasMaxLength(36) + .HasColumnType("char(36)") + .HasColumnName("DeleterId") + .HasComment("鍒犻櫎浜篒D"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime") + .HasComment("鍒犻櫎鏃堕棿"); + + b.Property<string>("ExtraField1") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鎵╁睍瀛楁1"); + + b.Property<string>("ExtraField2") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鎵╁睍瀛楁2"); + + b.Property<string>("ExtraField3") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鎵╁睍瀛楁3"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties") + .HasComment("鎵╁睍灞炴��"); + + b.Property<Guid>("Id") + .HasColumnType("char(36)"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool?>("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime") + .HasComment("淇敼鏃堕棿"); + + b.Property<Guid?>("LastModifierId") + .HasMaxLength(36) + .HasColumnType("char(36)") + .HasColumnName("LastModifierId") + .HasComment("淇敼浜篒D"); + + b.Property<string>("LastModifierName") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("淇敼浜�"); + + b.Property<string>("OperationRemark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鎿嶄綔澶囨敞"); + + b.Property<string>("Remark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.HasKey("PlaceNo", "ContainerNo"); + + b.HasIndex("ContainerNo"); + + b.HasIndex("PlaceNo"); + + b.ToTable("scms_wmscontainerplaces", (string)null); + + b.HasComment("瀹瑰櫒搴撲綅鍏崇郴琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<string>("ContainerNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鎵樼洏缂栧彿"); + + b.Property<int>("ContainerStatus") + .HasColumnType("int") + .HasComment("鎵樼洏鐘舵��"); + + b.Property<int>("ContainerType") + .HasColumnType("int") + .HasComment("鎵樼洏绫诲瀷"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<int?>("ExceptionNumber") + .HasColumnType("int") + .HasComment("寮傚父鏁伴噺"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<decimal?>("LimitHeight") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("闄愰珮"); + + b.Property<decimal?>("LimitLength") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("闄愰暱"); + + b.Property<decimal?>("LimitWidth") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("闄愬"); + + b.Property<int?>("MaterialNumber") + .HasColumnType("int") + .HasComment("鐗╂枡鏁伴噺"); + + b.Property<decimal?>("MaxWeight") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("杞介噸涓婇檺"); + + b.Property<string>("RedundantField1") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField2") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField3") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("Remark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<decimal?>("SpecHeight") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("楂樺害"); + + b.Property<decimal?>("SpecLength") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("闀垮害"); + + b.Property<decimal?>("SpecWidth") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("瀹藉害"); + + b.HasKey("Id"); + + b.HasIndex("ContainerNo") + .IsUnique(); + + b.HasIndex("ContainerStatus"); + + b.HasIndex("ContainerType"); + + b.ToTable("scms_wmscontainers", (string)null); + + b.HasComment("鎵樼洏淇℃伅琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder.WmsInOutStockOrder", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<int>("CompleteNumber") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("瀹屾垚鏁伴噺"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<int>("DistributeNumber") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("涓嬪彂鏁伴噺"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("MaterialBatch") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鎵规鍙�"); + + b.Property<string>("MaterialModel") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鍨嬪彿"); + + b.Property<string>("MaterialName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鐗╂枡鍚嶇О"); + + b.Property<string>("MaterialNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡浠跺彿"); + + b.Property<int>("MaterialNumber") + .HasColumnType("int") + .HasComment("鍗曟嵁鏁伴噺"); + + b.Property<DateTime?>("OperateTime") + .HasColumnType("datetime(6)") + .HasComment("鎿嶄綔鏃堕棿"); + + b.Property<string>("OrderNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鍗曟嵁缂栧彿"); + + b.Property<int>("OrderStatus") + .HasColumnType("int") + .HasComment("鍗曟嵁鐘舵��"); + + b.Property<int>("OrderType") + .HasColumnType("int") + .HasComment("鍗曟嵁绫诲瀷"); + + b.Property<string>("PlanNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鍏宠仈璁″垝缂栧彿"); + + b.Property<int>("Priority") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(1) + .HasComment("浼樺厛绾�"); + + b.Property<string>("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.Property<int>("StockType") + .HasColumnType("int") + .HasComment("鎿嶄綔绫诲瀷锛堟灇涓惧�硷級"); + + b.HasKey("Id"); + + b.HasIndex("MaterialBatch"); + + b.HasIndex("MaterialNo"); + + b.HasIndex("OperateTime"); + + b.HasIndex("OrderNo") + .IsUnique(); + + b.HasIndex("PlanNo"); + + b.ToTable("scms_wmsinoutstockorder", (string)null); + + b.HasComment("鍑哄叆搴撳崟鎹〃"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail.WmsInOutStockOrderDetail", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<string>("ContainerNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("瀹瑰櫒缂栧彿"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("MaterialBatch") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡鎵规"); + + b.Property<string>("MaterialId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡鍞竴鐮�"); + + b.Property<string>("MaterialModel") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鏈哄瀷"); + + b.Property<string>("MaterialName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鐗╂枡鍚嶇О"); + + b.Property<string>("MaterialNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡浠跺彿"); + + b.Property<string>("OrderNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鍗曟嵁缂栧彿"); + + b.Property<int>("OrderType") + .HasColumnType("int") + .HasComment("鍗曟嵁绫诲瀷锛堟灇涓惧�硷級"); + + b.Property<string>("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.HasKey("Id"); + + b.HasIndex("ContainerNo"); + + b.HasIndex("MaterialId"); + + b.HasIndex("MaterialNo"); + + b.HasIndex("OrderNo"); + + b.HasIndex("OrderNo", "OrderType"); + + b.ToTable("scms_wmsinoutstockorderdetail", (string)null); + + b.HasComment("鍑哄叆搴撳崟鎹槑缁嗚〃"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord.WmsInOutStockRecord", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<string>("ContainerNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("瀹瑰櫒缂栧彿"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("MaterialBatch") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡鎵规"); + + b.Property<string>("MaterialId") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡ID"); + + b.Property<string>("MaterialModel") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鏈哄瀷"); + + b.Property<string>("MaterialName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鐗╂枡鍚嶇О"); + + b.Property<string>("MaterialNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡浠跺彿"); + + b.Property<DateTime?>("OperateTime") + .HasColumnType("datetime(6)") + .HasComment("鎿嶄綔鏃堕棿"); + + b.Property<string>("OrderNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鍗曟嵁缂栧彿"); + + b.Property<string>("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("SourcePlace") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("璧峰搴撲綅"); + + b.Property<int>("StockType") + .HasColumnType("int") + .HasComment("鎿嶄綔绫诲瀷"); + + b.Property<string>("TaskNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("浠诲姟鍙�"); + + b.Property<string>("ToPlace") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐩爣搴撲綅"); + + b.HasKey("Id"); + + b.HasIndex("ContainerNo"); + + b.HasIndex("MaterialId"); + + b.HasIndex("MaterialNo"); + + b.HasIndex("OperateTime"); + + b.HasIndex("OrderNo"); + + b.HasIndex("StockType"); + + b.HasIndex("TaskNo"); + + b.ToTable("scms_wmsinoutstockrecords", (string)null); + + b.HasComment("鍑哄叆搴撹褰曡〃"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialContainer.WmsMaterialContainer", b => + { + b.Property<string>("MaterialId") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡ID"); + + b.Property<string>("ContainerNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鎵樼洏缂栧彿"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<Guid>("Id") + .HasColumnType("char(36)"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.HasKey("MaterialId", "ContainerNo"); + + b.HasIndex("ContainerNo"); + + b.HasIndex("MaterialId"); + + b.ToTable("scms_wmsmaterialcontainer", (string)null); + + b.HasComment("鐗╂枡瀹瑰櫒鍏崇郴琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialInfos.WmsMaterialInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<int?>("CheckStatus") + .HasColumnType("int") + .HasComment("妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("MaterialBatch") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡鎵瑰彿"); + + b.Property<string>("MaterialId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡鍞竴鐮�"); + + b.Property<string>("MaterialModel") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鏈哄瀷/瑙勬牸"); + + b.Property<string>("MaterialName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鐗╂枡鍚嶇О"); + + b.Property<string>("MaterialNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐗╂枡浠e彿"); + + b.Property<string>("RedundantField1") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("鍐椾綑瀛楁1"); + + b.Property<string>("RedundantField2") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("鍐椾綑瀛楁2"); + + b.Property<string>("RedundantField3") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("鍐椾綑瀛楁3"); + + b.Property<string>("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.Property<int?>("StockNumber") + .HasColumnType("int") + .HasComment("搴撳瓨鏁伴噺"); + + b.Property<string>("SupplierCode") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("渚涘簲鍟嗙紪鍙�"); + + b.HasKey("Id"); + + b.HasIndex("CheckStatus"); + + b.HasIndex("MaterialBatch"); + + b.HasIndex("MaterialId") + .IsUnique(); + + b.HasIndex("MaterialName"); + + b.HasIndex("MaterialNo") + .IsUnique(); + + b.HasIndex("SupplierCode"); + + b.ToTable("scms_wmsmaterialinfos", (string)null); + + b.HasComment("WMS鐗╂枡淇℃伅琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("Certification") + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("璇佷功缂栧彿"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<string>("Factory") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐢熶骇宸ュ巶"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasComment("鏄惁绂佺敤"); + + b.Property<int>("IsMainBranch") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鏄惁涓轰富鏀"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<decimal>("Length") + .HasColumnType("decimal(18,2)") + .HasComment("闀垮害锛堝崟浣嶏細m锛�"); + + b.Property<string>("MaterialModel") + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("鍨嬪彿"); + + b.Property<string>("MaterialName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("鐗╂枡鍚嶇О"); + + b.Property<string>("MaterialNo") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�"); + + b.Property<string>("MaterialQuality") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鏉愯川锛堝锛�304涓嶉攬閽級"); + + b.Property<string>("MaterialTypeCode") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("鐗╂枡绫诲瀷缂栫爜"); + + b.Property<string>("MaterialTypeDesc") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("鐗╂枡绫诲瀷"); + + b.Property<decimal>("OuterDiameter") + .HasColumnType("decimal(18,2)") + .HasComment("澶栧緞锛堝崟浣嶏細mm锛�"); + + b.Property<string>("PrimaryUnit") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�"); + + b.Property<int>("PurchaseType") + .HasColumnType("int") + .HasComment("閲囪喘绫诲瀷锛堟灇涓惧�硷級"); + + b.Property<string>("RedundantField1") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField2") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField3") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.Property<string>("Standard") + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�"); + + b.Property<decimal>("WallThickness") + .HasColumnType("decimal(18,2)") + .HasComment("澹佸帤锛堝崟浣嶏細mm锛�"); + + b.HasKey("Id"); + + b.HasIndex("MaterialName"); + + b.HasIndex("MaterialNo") + .IsUnique(); + + b.HasIndex("MaterialTypeCode"); + + b.HasIndex("PurchaseType"); + + b.ToTable("scms_wmsmaterials", (string)null); + + b.HasComment("鐗╂枡鍩虹淇℃伅琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialStocks.WmsMaterialStock", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("AreaCode") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鍖哄煙缂栧彿"); + + b.Property<string>("AreaName") + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("搴撳尯鍚嶇О"); + + b.Property<int?>("CheckStatus") + .HasColumnType("int") + .HasComment("妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<string>("ContainerNo") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("瀹瑰櫒缂栧彿"); + + b.Property<int>("ContainerStatus") + .HasColumnType("int") + .HasComment("瀹瑰櫒鐘舵��"); + + b.Property<int>("ContainerType") + .HasColumnType("int") + .HasComment("瀹瑰櫒绫诲瀷"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<int>("EmptyContainer") + .HasColumnType("int") + .HasComment("鏄惁绌烘墭(2:鍚�,1:鏄�)"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<DateTime?>("InStockTime") + .HasColumnType("datetime(6)") + .HasComment("鍏ュ簱鏃堕棿"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<int>("IsLock") + .HasColumnType("int") + .HasComment("鏄惁閿佸畾(2:鏈攣瀹�,1:宸查攣瀹�)"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("MaterialBatch") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡鎵规"); + + b.Property<string>("MaterialId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡ID"); + + b.Property<string>("MaterialModel") + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("鏈哄瀷/瑙勬牸"); + + b.Property<string>("MaterialName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("鐗╂枡鍚嶇О"); + + b.Property<string>("MaterialNo") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("鐗╂枡缂栧彿"); + + b.Property<string>("PlaceNo") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("搴撲綅缂栧彿"); + + b.Property<int>("PlaceStatus") + .HasColumnType("int") + .HasComment("搴撲綅鐘舵��;"); + + b.Property<string>("RedundantField1") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField2") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField3") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.Property<int>("StockNumber") + .HasColumnType("int") + .HasComment("搴撳瓨鏁伴噺"); + + b.Property<int>("StorageTypeNo") + .HasColumnType("int") + .HasComment("搴撲綅绫诲瀷"); + + b.Property<string>("SupplierCode") + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("渚涘簲鍟嗙紪鍙�"); + + b.HasKey("Id"); + + b.HasIndex("AreaCode"); + + b.HasIndex("ContainerNo"); + + b.HasIndex("MaterialName"); + + b.HasIndex("MaterialNo"); + + b.HasIndex("PlaceNo"); + + b.HasIndex("MaterialBatch", "SupplierCode"); + + b.ToTable("scms_wmsmaterialstocks", (string)null); + + b.HasComment("WMS鐗╂枡搴撳瓨琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<int>("Aisle") + .HasColumnType("int") + .HasComment("宸烽亾"); + + b.Property<string>("AreaCode") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鎵�鍦ㄥ簱鍖�"); + + b.Property<int>("ColumnNo") + .HasColumnType("int") + .HasComment("鍒�"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<int>("EmptyContainer") + .HasColumnType("int") + .HasComment("鏄惁绌烘墭"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool>("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasComment("鏄惁绂佺敤"); + + b.Property<int>("Islock") + .HasColumnType("int") + .HasComment("鏄惁閿佸畾"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<int>("LayerNo") + .HasColumnType("int") + .HasComment("灞�"); + + b.Property<int>("MaxStockNumber") + .HasColumnType("int") + .HasComment("鏈�澶у簱瀛橀噺"); + + b.Property<string>("PlaceNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("缂栧彿"); + + b.Property<int>("PlaceStatus") + .HasColumnType("int") + .HasComment("璐т綅鐘舵��"); + + b.Property<string>("RedundantField1") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField2") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField3") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("Remark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("澶囨敞"); + + b.Property<int>("RowNo") + .HasColumnType("int") + .HasComment("鎺�"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<int>("StorageTypeNo") + .HasColumnType("int") + .HasComment("璐т綅绫诲瀷"); + + b.HasKey("Id"); + + b.HasIndex("AreaCode"); + + b.HasIndex("PlaceNo") + .IsUnique(); + + b.HasIndex("PlaceStatus"); + + b.HasIndex("StorageTypeNo"); + + b.ToTable("scms_wmsplaces", (string)null); + + b.HasComment("搴撲綅琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("RedundantField1") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField2") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("RedundantField3") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��"); + + b.Property<string>("Remark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("StoreCode") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("浠撳簱浠g爜"); + + b.Property<string>("StoreName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("浠撳簱鍚嶇О"); + + b.HasKey("Id"); + + b.HasIndex("StoreName"); + + b.ToTable("scms_wmsstores", (string)null); + + b.HasComment("浠撳簱淇℃伅琛�"); + }); + + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsTask.WmsTask", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<int?>("Aisle") + .HasColumnType("int") + .HasComment("宸烽亾"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<string>("ContainerNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鎵樼洏缂栧彿"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime"); + + b.Property<int?>("DodeviceId") + .HasColumnType("int") + .HasComment("鍫嗗灈鏈篒D"); + + b.Property<int>("Dodevicetype") + .HasColumnType("int") + .HasComment("璁惧绫诲瀷"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)") + .HasComment("鏄惁绂佺敤"); + + b.Property<int?>("IsNextTask") + .HasColumnType("int") + .HasComment("涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛"); + + b.Property<bool>("IsRead") + .HasColumnType("tinyint(1)") + .HasComment("WCS鏄惁鍙互璇诲彇"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId"); + + b.Property<string>("MutableParam1") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鍙彉鍙橀噺1"); + + b.Property<string>("MutableParam2") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鍙彉鍙橀噺2"); + + b.Property<string>("MutableParam3") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("鍙彉鍙橀噺3"); + + b.Property<int>("PlcTaskId") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("浠诲姟鐘舵��"); + + b.Property<int?>("SonTaskType") + .HasColumnType("int") + .HasComment("瀛愪换鍔$被鍨�"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("SourceOrderNo") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鏉ユ簮鍗曟嵁鍙�"); + + b.Property<string>("SourcePlace") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("璧峰搴撲綅"); + + b.Property<int>("TaskDodeviceStatus") + .HasColumnType("int") + .HasComment("璁惧浠诲姟鐘舵��"); + + b.Property<int>("TaskLevel") + .HasColumnType("int") + .HasComment("浠诲姟绛夌骇"); + + b.Property<string>("TaskNo") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("浠诲姟鍙�"); + + b.Property<int>("TaskStatus") + .HasColumnType("int") + .HasComment("浠诲姟鐘舵��"); + + b.Property<int>("TaskType") + .HasColumnType("int") + .HasComment("浠诲姟绫诲瀷"); + + b.Property<string>("ToPlace") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("鐩爣搴撲綅"); + + b.HasKey("Id"); + + b.HasIndex("ContainerNo"); + + b.HasIndex("DodeviceId"); + + b.HasIndex("IsRead"); + + b.HasIndex("Sort"); + + b.HasIndex("SourceOrderNo"); + + b.HasIndex("SourcePlace"); + + b.HasIndex("TaskNo") + .IsUnique(); + + b.HasIndex("TaskStatus"); + + b.HasIndex("TaskType"); + + b.HasIndex("ToPlace"); + + b.ToTable("scms_wmstasks", (string)null); + + b.HasComment("浠诲姟琛�"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs new file mode 100644 index 0000000..744c64e --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs @@ -0,0 +1,132 @@ +锘縰sing System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CMS.Plugin.HIAWms.MySQL.Migrations +{ + public partial class InitialCreate17 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_scms_wmsmaterials_MaterialType", + table: "scms_wmsmaterials"); + + migrationBuilder.DropColumn( + name: "MaterialType", + table: "scms_wmsmaterials"); + + migrationBuilder.AddColumn<string>( + name: "MaterialTypeCode", + table: "scms_wmsmaterials", + type: "varchar(20)", + maxLength: 20, + nullable: true, + comment: "鐗╂枡绫诲瀷缂栫爜") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn<string>( + name: "MaterialTypeDesc", + table: "scms_wmsmaterials", + type: "varchar(20)", + maxLength: 20, + nullable: true, + comment: "鐗╂枡绫诲瀷") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "scms_wmsmaterialtype", + columns: table => new + { + Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + MaterialTypeDesc = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "绫诲瀷鎻忚堪") + .Annotation("MySql:CharSet", "utf8mb4"), + MaterialTypeCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "绫诲瀷缂栫爜") + .Annotation("MySql:CharSet", "utf8mb4"), + ExtraProperties = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "鍒涘缓鏃堕棿"), + CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, comment: "鍒涘缓浜篒D", collation: "ascii_general_ci"), + LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鏈�鍚庝慨鏀规椂闂�"), + LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, comment: "鏈�鍚庝慨鏀逛汉ID", collation: "ascii_general_ci"), + IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "鏄惁宸插垹闄�"), + DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, comment: "鍒犻櫎浜篒D", collation: "ascii_general_ci"), + DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍒犻櫎鏃堕棿"), + CreatorName = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + LastModifierName = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + OperationRemark = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + DeleteRemark = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Sort = table.Column<int>(type: "int", nullable: false), + Remark = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "澶囨敞") + .Annotation("MySql:CharSet", "utf8mb4"), + IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true), + ExtraField1 = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + ExtraField2 = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + ExtraField3 = table.Column<string>(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_scms_wmsmaterialtype", x => x.Id); + }, + comment: "鐗╂枡绫诲瀷琛�") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateIndex( + name: "IX_scms_wmsmaterials_MaterialTypeCode", + table: "scms_wmsmaterials", + column: "MaterialTypeCode"); + + migrationBuilder.CreateIndex( + name: "IX_scms_wmsmaterialtype_MaterialTypeCode", + table: "scms_wmsmaterialtype", + column: "MaterialTypeCode", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_scms_wmsmaterialtype_MaterialTypeDesc", + table: "scms_wmsmaterialtype", + column: "MaterialTypeDesc"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "scms_wmsmaterialtype"); + + migrationBuilder.DropIndex( + name: "IX_scms_wmsmaterials_MaterialTypeCode", + table: "scms_wmsmaterials"); + + migrationBuilder.DropColumn( + name: "MaterialTypeCode", + table: "scms_wmsmaterials"); + + migrationBuilder.DropColumn( + name: "MaterialTypeDesc", + table: "scms_wmsmaterials"); + + migrationBuilder.AddColumn<int>( + name: "MaterialType", + table: "scms_wmsmaterials", + type: "int", + nullable: false, + defaultValue: 0, + comment: "鐗╂枡绫诲瀷锛堟灇涓惧�硷級"); + + migrationBuilder.CreateIndex( + name: "IX_scms_wmsmaterials_MaterialType", + table: "scms_wmsmaterials", + column: "MaterialType"); + } + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs index 16a5127..429a8bc 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs @@ -21,6 +21,115 @@ .HasAnnotation("ProductVersion", "6.0.16") .HasAnnotation("Relational:MaxIdentifierLength", 64); + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.MaterialType.WmsMaterialType", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<string>("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property<DateTime>("CreationTime") + .HasColumnType("datetime(6)") + .HasColumnName("CreationTime") + .HasComment("鍒涘缓鏃堕棿"); + + b.Property<Guid?>("CreatorId") + .HasColumnType("char(36)") + .HasColumnName("CreatorId") + .HasComment("鍒涘缓浜篒D"); + + b.Property<string>("CreatorName") + .HasColumnType("longtext"); + + b.Property<string>("DeleteRemark") + .HasColumnType("longtext"); + + b.Property<Guid?>("DeleterId") + .HasColumnType("char(36)") + .HasColumnName("DeleterId") + .HasComment("鍒犻櫎浜篒D"); + + b.Property<DateTime?>("DeletionTime") + .HasColumnType("datetime(6)") + .HasColumnName("DeletionTime") + .HasComment("鍒犻櫎鏃堕棿"); + + b.Property<string>("ExtraField1") + .HasColumnType("longtext"); + + b.Property<string>("ExtraField2") + .HasColumnType("longtext"); + + b.Property<string>("ExtraField3") + .HasColumnType("longtext"); + + b.Property<string>("ExtraProperties") + .HasColumnType("longtext") + .HasColumnName("ExtraProperties"); + + b.Property<bool>("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(false) + .HasColumnName("IsDeleted") + .HasComment("鏄惁宸插垹闄�"); + + b.Property<bool?>("IsDisabled") + .HasColumnType("tinyint(1)"); + + b.Property<DateTime?>("LastModificationTime") + .HasColumnType("datetime(6)") + .HasColumnName("LastModificationTime") + .HasComment("鏈�鍚庝慨鏀规椂闂�"); + + b.Property<Guid?>("LastModifierId") + .HasColumnType("char(36)") + .HasColumnName("LastModifierId") + .HasComment("鏈�鍚庝慨鏀逛汉ID"); + + b.Property<string>("LastModifierName") + .HasColumnType("longtext"); + + b.Property<string>("MaterialTypeCode") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)") + .HasComment("绫诲瀷缂栫爜"); + + b.Property<string>("MaterialTypeDesc") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)") + .HasComment("绫诲瀷鎻忚堪"); + + b.Property<string>("OperationRemark") + .HasColumnType("longtext"); + + b.Property<string>("Remark") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MaterialTypeCode") + .IsUnique(); + + b.HasIndex("MaterialTypeDesc"); + + b.ToTable("scms_wmsmaterialtype", (string)null); + + b.HasComment("鐗╂枡绫诲瀷琛�"); + }); + modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b => { b.Property<Guid>("Id") @@ -1133,9 +1242,15 @@ .HasColumnType("varchar(64)") .HasComment("鏉愯川锛堝锛�304涓嶉攬閽級"); - b.Property<int>("MaterialType") - .HasColumnType("int") - .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級"); + b.Property<string>("MaterialTypeCode") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("鐗╂枡绫诲瀷缂栫爜"); + + b.Property<string>("MaterialTypeDesc") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("鐗╂枡绫诲瀷"); b.Property<decimal>("OuterDiameter") .HasColumnType("decimal(18,2)") @@ -1192,7 +1307,7 @@ b.HasIndex("MaterialNo") .IsUnique(); - b.HasIndex("MaterialType"); + b.HasIndex("MaterialTypeCode"); b.HasIndex("PurchaseType"); diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat index 900fa85..6c897a6 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat @@ -1,5 +1,5 @@ cd ../ -dotnet ef migrations add InitialCreate16 -c CMSPluginDbContext -o Migrations +dotnet ef migrations add InitialCreate17 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs index 2e2bf4a..625a718 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs @@ -45,6 +45,7 @@ builder.ConfigureWmsMaterialContainer(); builder.ConfigureWmsInOutStockOrder(); builder.ConfigureWmsInOutStockOrderDetail(); + builder.ConfigureWmsMaterialType(); /* Configure your own tables/entities inside here */ diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs index 68c2582..71910fc 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs @@ -45,6 +45,7 @@ builder.ConfigureWmsMaterialContainer(); builder.ConfigureWmsInOutStockOrder(); builder.ConfigureWmsInOutStockOrderDetail(); + builder.ConfigureWmsMaterialType(); /* Configure your own tables/entities inside here */ diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs new file mode 100644 index 0000000..2ade70b --- /dev/null +++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs @@ -0,0 +1,216 @@ +using Ao.Lang; +using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; +using CMS.Framework.AspNetCore.Users; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; +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; +using CmsQueryExtensions.Entitys; + +namespace CMS.Plugin.HIAWms.Controller +{ + /// <summary> + /// 鐗╂枡l绫诲瀷淇℃伅鏈嶅姟 + /// </summary> + [ApiController] + [TypeFilter(typeof(CMSLanguageFilter))] + [TypeFilter(typeof(CMSUowActionFilter))] + [TypeFilter(typeof(CMSAuditActionFilter))] + [TypeFilter(typeof(CMSExceptionFilter))] + [Route("api/v{version:apiVersion}/HIAWms/[controller]")] + public class WmsMaterialTypeController : ControllerBase + { + private readonly IWmsMaterialTypeAppService _WmsMaterialTypeAppService; + private readonly ICurrentUser _currentUser; + + /// <summary> + /// Initializes a new instance of the <see cref="WmsMaterialTypeController"/> class. + /// </summary> + /// <param name="WmsMaterialTypeAppService">The WmsMaterialType application service.</param> + public WmsMaterialTypeController(IWmsMaterialTypeAppService WmsMaterialTypeAppService, ICurrentUser currentUser) + { + _WmsMaterialTypeAppService = WmsMaterialTypeAppService; + _currentUser = currentUser; + } + + /// <summary> + /// 鑾峰彇鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <returns></returns> + [HttpGet] + [Route("{id}")] + public virtual Task<WmsMaterialTypeDto> GetAsync(Guid id) + { + return _WmsMaterialTypeAppService.GetAsync(id); + } + + /// <summary> + /// 鍒嗛〉鑾峰彇鐗╂枡l绫诲瀷淇℃伅鐨勫垪琛�. + /// </summary> + /// <param name="input">鏌ヨ鍙傛暟</param> + /// <returns></returns> + [HttpGet] + [Route("Page")] + public virtual Task<PagedResultDto<WmsMaterialTypeDto>> GetListAsync([FromQuery] GetWmsMaterialTypeInput input) + { + return _WmsMaterialTypeAppService.GetListAsync(input); + } + + /// <summary> + /// 鍒涘缓鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="input">鍒涘缓鍙傛暟</param> + /// <returns></returns> + //[Authorize] + [HttpPost] + public virtual Task<WmsMaterialTypeDto> CreateAsync(WmsMaterialTypeCreateDto input) + { + input.CreatorName = _currentUser.UserAccount;//鍒涘缓浜� + return _WmsMaterialTypeAppService.CreateAsync(input); + } + + /// <summary> + /// 鏇存柊鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <param name="input">鏇存柊鍙傛暟</param> + /// <returns></returns> + //[Authorize] + [HttpPut] + [Route("{id}")] + public virtual Task<WmsMaterialTypeDto> UpdateAsync(Guid id, WmsMaterialTypeUpdateDto input) + { + input.LastModifierName = _currentUser.UserAccount;//淇敼浜� + return _WmsMaterialTypeAppService.UpdateAsync(id, input); + } + + /// <summary> + /// 鍏嬮殕鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="ids">Id闆嗗悎</param> + /// <returns></returns> + //[Authorize] + [HttpPost] + [Route("Clone")] + public virtual Task<List<WmsMaterialTypeDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) + { + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = _currentUser.UserAccount, + UserId = _currentUser.UserId + }; + return _WmsMaterialTypeAppService.CloneAsync(ids, myCurrentUser); + } + + /// <summary> + /// 鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <returns></returns> + //[Authorize] + [HttpDelete] + [Route("{id}")] + public virtual Task DeleteAsync(Guid id) + { + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = _currentUser.UserAccount, + UserId = _currentUser.UserId + }; + //return _wmsMaterialAppService.DeleteAsync(id,myCurrentUser);//閫昏緫鍒犻櫎 + return _wmsMaterialAppService.DeletePermanentlyAsync(id, myCurrentUser);//鐗╃悊鍒犻櫎 + } + + /// <summary> + /// 鎵归噺鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="ids">涓婚敭ID闆嗗悎</param> + /// <returns></returns> + //[Authorize] + [HttpDelete] + public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) + { + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = _currentUser.UserAccount, + UserId = _currentUser.UserId + }; + // return _wmsMaterialAppService.DeleteManyAsync(ids,myCurrentUser);//閫昏緫鍒犻櫎 + return _wmsMaterialAppService.BatchDeletePermanentlyAsync(ids, myCurrentUser);//鐗╃悊鍒犻櫎 + } + + /// <summary> + /// 璋冩暣鎺掑簭鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <param name="id">涓婚敭ID</param> + /// <returns></returns> + [HttpPut] + [Route("{id}/AdjustSort/{sort}")] + public virtual Task AdjustSortAsync(Guid id, int sort) + { + return _WmsMaterialTypeAppService.AdjustSortAsync(id, sort); + } + + /// <summary> + /// 瀵煎叆鐗╂枡l绫诲瀷淇℃伅 + /// </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 WmsMaterialTypeRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialTypesImportModel.WmsMaterialTypeImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); + + if (!WmsMaterialTypeRows.Any()) + { + throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); + } + + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = _currentUser.UserAccount, + UserId = _currentUser.UserId + }; + await _WmsMaterialTypeAppService.ImportAsync(new WmsMaterialTypesImportModel + { + WmsMaterialTypes = WmsMaterialTypeRows, + },myCurrentUser); + + return Ok(); + } + + /// <summary> + /// 瀵煎嚭鐗╂枡l绫诲瀷淇℃伅 + /// </summary> + /// <returns></returns> + [HttpGet] + [Route("Export")] + public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialTypeInput input) + { + input.MaxResultCount = int.MaxValue; + var exportData = await _WmsMaterialTypeAppService.ExportAsync(input); + var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterialType瀵煎嚭妯℃澘.xlsx"); + if (!System.IO.File.Exists(templatePath)) + { + templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsMaterialType瀵煎嚭妯℃澘.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/WmsTaskController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs index 5704659..916168f 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs @@ -220,5 +220,17 @@ { await _wmsTaskAppService.ChangeTaskToPlaceAsync(input); } + + /// <summary> + /// 鑾峰彇闇�瑕佹墽琛岀殑鍫嗗灈鏈轰换鍔� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [Route("ToExecuteTask")] + public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input) + { + return await _wmsTaskAppService.GetToExecuteTaskAsync(input); + } } } diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" new file mode 100644 index 0000000..26c169b --- /dev/null +++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType\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/\347\211\251\346\226\231\347\261\273\345\236\213\351\205\215\347\275\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/\347\211\251\346\226\231\347\261\273\345\236\213\351\205\215\347\275\256.txt" new file mode 100644 index 0000000..bf47419 --- /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/\347\211\251\346\226\231\347\261\273\345\236\213\351\205\215\347\275\256.txt" @@ -0,0 +1,14 @@ +[琛ㄥ悕]:scms_wmsmaterialtype +[瀹炰綋绫诲悕]:WmsMaterialType +[瀹炰綋绫诲璞″悕]:WmsMaterialType +[椤甸潰鑿滃崟鍚峕:鐗╂枡绫诲瀷 +[椤甸潰鑿滃崟瀵硅薄缂╁啓]:wmsMaterialType +[琛ㄧ殑涓枃娉ㄨВ]:鐗╂枡l绫诲瀷淇℃伅 +[閲嶅鎬ф牎楠屽瓧娈礭:MaterialTypeCode +[鍒犻櫎鎻愮ず瀛楁]:MaterialTypeCode +[妯$硦鏌ヨ瀛楁]:'MaterialTypeCode', 'MaterialTypeDesc', +[妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�/鐗╂枡绫诲瀷鍚嶇О +[椤圭洰鍛藉悕绌洪棿]:HIAWms +[鏋氫妇绫诲瀷瀛楁闆嗗悎]: +[鍓嶇鏍规枃浠跺す鍚嶇О]:web +[鎺掑簭]:CreationTime \ No newline at end of file -- Gitblit v1.9.3