From 5b189017d143be6366f56ffcdd3c3699a381e034 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周二, 20 5月 2025 12:43:55 +0800 Subject: [PATCH] 22 --- PipeLineLems/pipelinelems_web/src/widgets/WorkTask/type/type.d.ts | 45 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs | 82 + PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTask.ts | 30 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.tsx | 409 ++++++ PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskQueryDrawer.ts | 35 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/enum.ts | 15 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskQueryDrawer.ts | 44 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/index.ts | 14 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.module.scss | 7 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.tsx | 80 + PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskQueryDrawer.tsx | 879 +++++++++++++ PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskDrawer.tsx | 655 ++++++++++ PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.module.scss | 3 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs | 305 ++++ PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTask.ts | 41 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/Config.ts | 217 +++ Weben_CMS专用代码生成器/Code/Templete/Web/Controllers/EntityModeQueryDrawer模板.txt | 42 HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj | 2 /dev/null | 297 ---- PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.tsx | 61 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.tsx | 71 + PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.module.scss | 3 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Scripts/UpdateMigrations.bat | 2 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTask.ts | 275 ++++ PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskDrawer.ts | 44 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskDrawer.ts | 34 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/config/WorkTask.json | 3 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/File.ts | 31 PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.module.scss | 113 + PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/CMSPluginDbContext.cs | 1 30 files changed, 3,505 insertions(+), 335 deletions(-) diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj b/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj index 69a13a5..37ba0cf 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj +++ b/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj @@ -11,7 +11,7 @@ </PropertyGroup> <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))"> - <CMSRootPath>D:\syc\CMS Editor</CMSRootPath> + <CMSRootPath>D:\Program Files\CMS Editor</CMSRootPath> <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath> </PropertyGroup> diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/File.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/File.ts new file mode 100644 index 0000000..9162fef --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/File.ts @@ -0,0 +1,31 @@ +import { importFileToService, exportFileToClient } from '@/api/file' +import { ElMessage } from 'element-plus' +import { downloadFile } from '@/utils' +import dayjs from 'dayjs' + +export const useFile = () => { + /** + * 瀵煎叆鏂囦欢 + * @param url + */ + const importFile = async (url: string, file: File) => { + const formData = new FormData() + formData.append('file', file) + await importFileToService(url, formData) + ElMessage('瀵煎叆鎴愬姛') + } + /** + * 瀵煎嚭鏂囦欢 + * @param url + */ + const exportFile = async (url: string, params: any, name: string) => { + const res = await exportFileToClient(url, params) + downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`) + ElMessage.success('瀵煎嚭鎴愬姛') + } + + return { + importFile, + exportFile, + } +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTask.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTask.ts new file mode 100644 index 0000000..a3f1c4d --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTask.ts @@ -0,0 +1,275 @@ +import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WorkTask } from '../Models/WorkTask' +import { ElMessage } from 'element-plus' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { useFile } from './File' + +interface CurrentType { + row: any + index: number +} +export const useWorkTask = (props: any, ctx?: any) => { + const workTask = injectModel<WorkTask>('workTask') + const { exportFile } = useFile() + /** + * 澶撮儴閰嶇疆 + */ + const headers = ref({}) + /** + * 鍔ㄦ�佸垪閰嶇疆 + */ + const workTaskColumns = 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 workTask.cloneData([row.id]) + // ElMessage.success('鍒涘缓鍓湰鎴愬姛') + // tableRef.value?.getList() + // }, + // divided: true, + // icon: 'copy', + // }, + { + label: '鍒犻櫎', + fn: async (c: CurrentType) => { + const names = selection.value.map((item: { son_TaskCode: string }) => item.son_TaskCode) + ConfirmBox( + `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.son_TaskCode}` + ).then(async () => { + const ids = selection.value.map((item: { id: string }) => item.id) + await workTask.deleteWorkTasks(ids.length ? ids : [c.row.id]) + ElMessage.success('鍒犻櫎鎴愬姛') + tableRef.value.getList() + }) + }, + icon: 'close', + }, + ] + + const onCheck = (records: any) => { + selection.value = records + } + + const onAddWorkTask = () => { + 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 onConfirmWorkTask = 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/PipeLineLems/workTask/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, + workTaskColumns, + paginationParams, + headers, + onBeforeUpload, + onError, + onSuccess, + openDetail, + onSearch, + onExport, + onRowClick, + onConfirmWorkTask, + onCheck, + onAddWorkTask, + onAdvancedQuery + } +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskDrawer.tsx b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskDrawer.tsx new file mode 100644 index 0000000..77fb5f5 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskDrawer.tsx @@ -0,0 +1,655 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WorkTaskDrawer } from '../Models/WorkTaskDrawer' +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 useWorkTaskDrawer = (props: any, ctx?: any) => { + const workTaskDrawer = injectModel<WorkTaskDrawer>('workTaskDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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: 'son_TaskCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ瓙浠诲姟缂栫爜', + rules: [{required: true, message: '瀛愪换鍔$紪鐮佷笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '浠诲姟缂栫爜', + prop: 'taskCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$紪鐮�', + rules: [{required: true, message: '浠诲姟缂栫爜涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '璁″垝鐘舵��', + prop: 'workPlanStatus', + el: 'select', + clearable:true, + options: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鍒掔姸鎬�', + rules: [{required: true, message: '璁″垝鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '鍙枡鐘舵��', + prop: 'callMaterialStatus', + el: 'select', + clearable:true, + options: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彨鏂欑姸鎬�', + rules: [{required: true, message: '鍙枡鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '鍘熸枡鏍囪瘑', + prop: 'dataIdentifier', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ師鏂欐爣璇�', + }, + { + label: '鍘熸枡鍨嬪彿', + prop: 'materialMode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ師鏂欏瀷鍙�', + }, + { + label: '闀垮害(mm)', + prop: 'length', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ラ暱搴�(mm)', + rules: [{required: true, message: '闀垮害(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鎵撶爜鍐呭', + prop: 'markingContent', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墦鐮佸唴瀹�', + }, + { + label: '鎵撶爜浣嶇疆', + prop: 'markingPosition', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墦鐮佷綅缃�', + rules: [{required: true, message: '鎵撶爜浣嶇疆涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鍒囧壊浣嶇疆', + prop: 'cuttingPosition', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ垏鍓蹭綅缃�', + rules: [{required: true, message: '鍒囧壊浣嶇疆涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '绠℃鏁伴噺', + prop: 'quantity', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 1, + precision: 0, + //disabled: disabled, + placeholder: '璇疯緭鍏ョ娈垫暟閲�', + rules: [{required: true, message: '绠℃鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '娉曞叞鍘氬害(mm)', + prop: 'flangeThickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏板帤搴�(mm)', + rules: [{required: true, message: '娉曞叞鍘氬害(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '娉曞叞鐩村緞(mm)', + prop: 'flangeInnerDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏扮洿寰�(mm)', + rules: [{required: true, message: '娉曞叞鐩村緞(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '娉曞叞鍏О鍘嬪姏', + prop: 'weldingHeatInput', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏板叕绉板帇鍔�', + }, + { + label: '娉曞叞鍐茬爜鍐呭', + prop: 'pipeAllowableStress', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏板啿鐮佸唴瀹�', + }, + { + label: '濂楃闀垮害(mm)', + prop: 'pipeDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ绠¢暱搴�(mm)', + rules: [{required: true, message: '濂楃闀垮害(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '濂楃鐩村緞(mm)', + prop: 'pipeWallThickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ绠$洿寰�(mm)', + rules: [{required: true, message: '濂楃鐩村緞(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '宸ュ巶浠g爜', + prop: 'factoryCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐鍘備唬鐮�', + }, + { + label: '浜у搧浠g爜', + prop: 'productCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ骇鍝佷唬鐮�', + }, + { + label: '宸ヤ綅浠g爜', + prop: 'workstationCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐浣嶄唬鐮�', + }, + { + label: '璁惧浠g爜', + prop: 'equipmentCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囦唬鐮�', + }, + { + label: '浜х嚎缂栫爜', + prop: 'prodLineCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ骇绾跨紪鐮�', + }, + { + label: '鑸瑰彿', + prop: 'shipNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ埞鍙�', + }, + { + label: '椤圭洰鍙�', + prop: 'projectNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ラ」鐩彿', + }, + { + label: '宸ュ簭鍚嶇О', + prop: 'processName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐搴忓悕绉�', + }, + { + label: '绠′欢缂栫爜', + prop: 'pipeFittingCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ浠剁紪鐮�', + }, + { + label: '椤哄簭鍙�', + prop: 'preSerialNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ラ『搴忓彿', + }, + { + label: '绠℃缂栫爜', + prop: 'pipeSpecCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ娈电紪鐮�', + }, + { + label: '绠℃鍚嶇О', + prop: 'pipeSectionName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ娈靛悕绉�', + }, + { + label: '澶栧緞(mm)', + prop: 'outerDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ寰�(mm)', + rules: [{required: true, message: '澶栧緞(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '澹佸帤(mm)', + prop: 'thickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍘�(mm)', + rules: [{required: true, message: '澹佸帤(mm)涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鏉愯川', + prop: 'material', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潗璐�', + }, + { + label: '宸ヨ壓娴佸悜缂栧彿', + prop: 'processRouteNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐鑹烘祦鍚戠紪鍙�', + }, + { + label: '璁″垝寮�濮嬫椂闂�', + prop: 'plannedStartTime', + el: (props: any, { attrs }: SetupContext) => { + return h(datePicker, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鍒掑紑濮嬫椂闂�', + }, + { + label: '璁″垝瀹屾垚鏃堕棿', + prop: 'plannedEndTime', + el: (props: any, { attrs }: SetupContext) => { + return h(datePicker, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鍒掑畬鎴愭椂闂�', + }, + { + label: '鐝粍淇℃伅', + prop: 'teamInfo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ彮缁勪俊鎭�', + }, + { + label: '鏃堕棿鎴�', + prop: 'timestamp', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ椂闂存埑', + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + + const onClose = (done: () => void) => { + if (visible.value) { + if (checkIsEqualObject()) { + visible.value = false + done && done() + } else { + ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') + .then(() => { + onConfirm() + }) + .catch(() => { + visible.value = false + done && done() + }) + } + } + } + /** + * 淇濆瓨 + */ + const onConfirm = async () => { + await formRef.value?.validate() + const data = { + son_TaskCode: formData.value.son_TaskCode, +taskCode: formData.value.taskCode, +workPlanStatus: formData.value.workPlanStatus, +callMaterialStatus: formData.value.callMaterialStatus, +dataIdentifier: formData.value.dataIdentifier, +materialMode: formData.value.materialMode, +length: formData.value.length, +markingContent: formData.value.markingContent, +markingPosition: formData.value.markingPosition, +cuttingPosition: formData.value.cuttingPosition, +quantity: formData.value.quantity, +flangeThickness: formData.value.flangeThickness, +flangeInnerDiameter: formData.value.flangeInnerDiameter, +weldingHeatInput: formData.value.weldingHeatInput, +pipeAllowableStress: formData.value.pipeAllowableStress, +pipeDiameter: formData.value.pipeDiameter, +pipeWallThickness: formData.value.pipeWallThickness, +factoryCode: formData.value.factoryCode, +productCode: formData.value.productCode, +workstationCode: formData.value.workstationCode, +equipmentCode: formData.value.equipmentCode, +prodLineCode: formData.value.prodLineCode, +shipNumber: formData.value.shipNumber, +projectNumber: formData.value.projectNumber, +processName: formData.value.processName, +pipeFittingCode: formData.value.pipeFittingCode, +preSerialNumber: formData.value.preSerialNumber, +pipeSpecCode: formData.value.pipeSpecCode, +pipeSectionName: formData.value.pipeSectionName, +outerDiameter: formData.value.outerDiameter, +thickness: formData.value.thickness, +material: formData.value.material, +processRouteNumber: formData.value.processRouteNumber, +plannedStartTime: formData.value.plannedStartTime, +plannedEndTime: formData.value.plannedEndTime, +teamInfo: formData.value.teamInfo, +timestamp: formData.value.timestamp, +remark: formData.value.remark, + } + if (!current.value) { + await workTaskDrawer.addWorkTask(data) + } else { + const id = current.value.id + await workTaskDrawer.updateWorkTask(id, data) + } + ElMessage.success('淇濆瓨鎴愬姛') + ctx.emit('confirm') + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const workPlanStatusEnumEnum = await workTaskDrawer.getWmsEnumData({ + EnumName: 'WorkPlanStatusEnum', +}) +updateFormItemOptions('workPlanStatus', workPlanStatusEnumEnum) +const callMaterialStatusEnumEnum = await workTaskDrawer.getWmsEnumData({ + EnumName: 'CallMaterialStatusEnum', +}) +updateFormItemOptions('callMaterialStatus', callMaterialStatusEnumEnum) + + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await workTaskDrawer.getWorkTaskDetail(current.value) + + formData.value = { + son_TaskCode: res.son_TaskCode, +taskCode: res.taskCode, +workPlanStatus: res.workPlanStatus, +callMaterialStatus: res.callMaterialStatus, +dataIdentifier: res.dataIdentifier, +materialMode: res.materialMode, +length: res.length, +markingContent: res.markingContent, +markingPosition: res.markingPosition, +cuttingPosition: res.cuttingPosition, +quantity: res.quantity, +flangeThickness: res.flangeThickness, +flangeInnerDiameter: res.flangeInnerDiameter, +weldingHeatInput: res.weldingHeatInput, +pipeAllowableStress: res.pipeAllowableStress, +pipeDiameter: res.pipeDiameter, +pipeWallThickness: res.pipeWallThickness, +factoryCode: res.factoryCode, +productCode: res.productCode, +workstationCode: res.workstationCode, +equipmentCode: res.equipmentCode, +prodLineCode: res.prodLineCode, +shipNumber: res.shipNumber, +projectNumber: res.projectNumber, +processName: res.processName, +pipeFittingCode: res.pipeFittingCode, +preSerialNumber: res.preSerialNumber, +pipeSpecCode: res.pipeSpecCode, +pipeSectionName: res.pipeSectionName, +outerDiameter: res.outerDiameter, +thickness: res.thickness, +material: res.material, +processRouteNumber: res.processRouteNumber, +plannedStartTime: res.plannedStartTime, +plannedEndTime: res.plannedEndTime, +teamInfo: res.teamInfo, +timestamp: res.timestamp, +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/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskQueryDrawer.tsx b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskQueryDrawer.tsx new file mode 100644 index 0000000..a745033 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskQueryDrawer.tsx @@ -0,0 +1,879 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WorkTaskDrawer } from '../Models/WorkTaskDrawer' +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 { collectFormDataForHighQuery,onResetForHighSelect,onResetForHighQuery } from '@/utils/myformUtils'; +import { + BOOLEAN_OPTIONS +} from '@/utils/commonOptionConstants'; + +export const useWorkTaskQueryDrawer = (props: any, ctx?: any) => { + const workTaskDrawer = injectModel<WorkTaskDrawer>('WorkTaskDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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: 'son_TaskCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ瓙浠诲姟缂栫爜', + highSelectAttrs:{ + prop: 'son_TaskCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '浠诲姟缂栫爜', + prop: 'taskCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$紪鐮�', + highSelectAttrs:{ + prop: 'taskCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '璁″垝鐘舵��', + prop: 'workPlanStatus', + el: 'select', + clearable:true, + option: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鍒掔姸鎬�', + highSelectAttrs:{ + prop: 'workPlanStatus_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_BOOL + } + }, + { + label: '鍙枡鐘舵��', + prop: 'callMaterialStatus', + el: 'select', + clearable:true, + option: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彨鏂欑姸鎬�', + highSelectAttrs:{ + prop: 'callMaterialStatus_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_BOOL + } + }, + { + label: '鍘熸枡鏍囪瘑', + prop: 'dataIdentifier', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ師鏂欐爣璇�', + highSelectAttrs:{ + prop: 'dataIdentifier_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '鍘熸枡鍨嬪彿', + prop: 'materialMode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ師鏂欏瀷鍙�', + highSelectAttrs:{ + prop: 'materialMode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '闀垮害(mm)', + prop: 'length', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ラ暱搴�(mm)', + highSelectAttrs:{ + prop: 'length_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '鎵撶爜鍐呭', + prop: 'markingContent', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墦鐮佸唴瀹�', + highSelectAttrs:{ + prop: 'markingContent_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '鎵撶爜浣嶇疆', + prop: 'markingPosition', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墦鐮佷綅缃�', + highSelectAttrs:{ + prop: 'markingPosition_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '鍒囧壊浣嶇疆', + prop: 'cuttingPosition', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ垏鍓蹭綅缃�', + highSelectAttrs:{ + prop: 'cuttingPosition_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '绠℃鏁伴噺', + prop: 'quantity', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 1, + precision: 0, + //disabled: disabled, + placeholder: '璇疯緭鍏ョ娈垫暟閲�', + highSelectAttrs:{ + prop: 'quantity_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '娉曞叞鍘氬害(mm)', + prop: 'flangeThickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏板帤搴�(mm)', + highSelectAttrs:{ + prop: 'flangeThickness_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '娉曞叞鐩村緞(mm)', + prop: 'flangeInnerDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏扮洿寰�(mm)', + highSelectAttrs:{ + prop: 'flangeInnerDiameter_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '娉曞叞鍏О鍘嬪姏', + prop: 'weldingHeatInput', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏板叕绉板帇鍔�', + highSelectAttrs:{ + prop: 'weldingHeatInput_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '娉曞叞鍐茬爜鍐呭', + prop: 'pipeAllowableStress', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ硶鍏板啿鐮佸唴瀹�', + highSelectAttrs:{ + prop: 'pipeAllowableStress_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '濂楃闀垮害(mm)', + prop: 'pipeDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ绠¢暱搴�(mm)', + highSelectAttrs:{ + prop: 'pipeDiameter_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '濂楃鐩村緞(mm)', + prop: 'pipeWallThickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ绠$洿寰�(mm)', + highSelectAttrs:{ + prop: 'pipeWallThickness_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '宸ュ巶浠g爜', + prop: 'factoryCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐鍘備唬鐮�', + highSelectAttrs:{ + prop: 'factoryCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '浜у搧浠g爜', + prop: 'productCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ骇鍝佷唬鐮�', + highSelectAttrs:{ + prop: 'productCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '宸ヤ綅浠g爜', + prop: 'workstationCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐浣嶄唬鐮�', + highSelectAttrs:{ + prop: 'workstationCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '璁惧浠g爜', + prop: 'equipmentCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囦唬鐮�', + highSelectAttrs:{ + prop: 'equipmentCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '浜х嚎缂栫爜', + prop: 'prodLineCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ骇绾跨紪鐮�', + highSelectAttrs:{ + prop: 'prodLineCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '鑸瑰彿', + prop: 'shipNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ埞鍙�', + highSelectAttrs:{ + prop: 'shipNumber_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '椤圭洰鍙�', + prop: 'projectNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ラ」鐩彿', + highSelectAttrs:{ + prop: 'projectNumber_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '宸ュ簭鍚嶇О', + prop: 'processName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐搴忓悕绉�', + highSelectAttrs:{ + prop: 'processName_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '绠′欢缂栫爜', + prop: 'pipeFittingCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ浠剁紪鐮�', + highSelectAttrs:{ + prop: 'pipeFittingCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '椤哄簭鍙�', + prop: 'preSerialNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ラ『搴忓彿', + highSelectAttrs:{ + prop: 'preSerialNumber_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '绠℃缂栫爜', + prop: 'pipeSpecCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ娈电紪鐮�', + highSelectAttrs:{ + prop: 'pipeSpecCode_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '绠℃鍚嶇О', + prop: 'pipeSectionName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ娈靛悕绉�', + highSelectAttrs:{ + prop: 'pipeSectionName_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '澶栧緞(mm)', + prop: 'outerDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ寰�(mm)', + highSelectAttrs:{ + prop: 'outerDiameter_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '澹佸帤(mm)', + prop: 'thickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍘�(mm)', + highSelectAttrs:{ + prop: 'thickness_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_NUM + } + }, + { + label: '鏉愯川', + prop: 'material', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潗璐�', + highSelectAttrs:{ + prop: 'material_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '宸ヨ壓娴佸悜缂栧彿', + prop: 'processRouteNumber', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ伐鑹烘祦鍚戠紪鍙�', + highSelectAttrs:{ + prop: 'processRouteNumber_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '璁″垝寮�濮嬫椂闂�', + prop: 'plannedStartTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鍒掑紑濮嬫椂闂�', + isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠� + }, + { + label: '璁″垝瀹屾垚鏃堕棿', + prop: 'plannedEndTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鍒掑畬鎴愭椂闂�', + isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠� + }, + { + label: '鐝粍淇℃伅', + prop: 'teamInfo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ彮缁勪俊鎭�', + highSelectAttrs:{ + prop: 'teamInfo_FilterMode', + el: 'select', + placeholder: '璇烽�夋嫨', + options:FILTER_MODE_OPTIONS_STRING + } + }, + { + label: '鏃堕棿鎴�', + prop: 'timestamp', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ椂闂存埑', + highSelectAttrs:{ + prop: 'timestamp_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 = {}; + +// // 閬嶅巻琛ㄥ崟閰嶇疆鏀堕泦鏁版嵁 +// formItems.forEach(item => { +// // 鏀堕泦鍩虹瀛楁 +// data[item.prop] = formData.value[item.prop] || ''; + +// // 鏀堕泦杩囨护妯″紡瀛楁 +// if (item.highSelectAttrs && item.highSelectAttrs.prop) { +// const filterModeProp = item.highSelectAttrs.prop; +// data[filterModeProp] = formData.value[filterModeProp] || ''; +// } +// }); + +// return data; +// } + const onClose = (done: () => void) => { + if (visible.value) { + visible.value = false + const data =collectFormDataForHighQuery(formItems,formData); + ctx.emit('close', data) + } + } + /** + * 纭鏌ヨ + */ + const onConfirmQuery = async () => { + const data =collectFormDataForHighQuery(formItems,formData); + ctx.emit('confirmQuery', data) + } + // /** + // * 閲嶇疆鍏叡select鏌ヨ + // */ + // const onResetForHighSelect = () => { + // // 閬嶅巻鎵�鏈夎〃鍗曞瓧娈� + // formItems.forEach(item => { + // // 妫�鏌ュ瓧娈垫槸鍚︽湁楂樼骇鏌ヨ鐨勮繃婊ゆā寮忛厤缃� + // if (item.highSelectAttrs && item.highSelectAttrs.prop) { + // const filterModeProp = item.highSelectAttrs.prop; + // const options = item.highSelectAttrs.options || []; + + // // 濡傛灉瀛樺湪閫夐」锛屽垯璁剧疆涓虹涓�涓�夐」鐨勫�� + // if (options.length > 0) { + // // 鍋囪閫夐」鏍煎紡涓� { value, label } 鎴栫被浼肩粨鏋� + // const firstValue = options[0].value !== undefined ? options[0].value : options[0]; + // formData.value[filterModeProp] = firstValue; + // } + // } + // }); + // } + /** + * 閲嶇疆鏌ヨ - 浼樺寲鐗� + */ + const onReset = async () => { + // // 1. 娓呯┖鎵�鏈夊熀纭�瀛楁锛堜笉鍖呭惈杩囨护妯″紡瀛楁锛� + // const baseFields = formItems.reduce((acc, item) => { + // acc[item.prop] = ''; + // return acc; + // }, {}); + + // // 2. 搴旂敤鍩虹瀛楁鍒濆鍊� + // formData.value = { ...baseFields }; + + onResetForHighQuery(formItems,formData); + + // 3. 浣跨敤鍘熸湁鏂规硶閲嶇疆杩囨护妯″紡瀛楁 + onResetForHighSelect(formItems,formData); // 淇濈暀鍘熸湁鏂规硶璋冪敤 + + // 4. 鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢 + ctx.emit('restQuery'); + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const workPlanStatusEnumEnum = await workTaskDrawer.getWmsEnumData({ + EnumName: 'WorkPlanStatusEnum', +}) +updateFormItemOptions('workPlanStatus', workPlanStatusEnumEnum) +const callMaterialStatusEnumEnum = await workTaskDrawer.getWmsEnumData({ + EnumName: 'CallMaterialStatusEnum', +}) +updateFormItemOptions('callMaterialStatus', callMaterialStatusEnumEnum) + + } + commonQueryEnumForFrom() + onResetForHighSelect(formItems,formData);//閲嶇疆鍏叡select鏌ヨ + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + disabled.value = false + updateCheckData() + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirmQuery, + onReset, + } +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTask.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTask.ts new file mode 100644 index 0000000..e797eba --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTask.ts @@ -0,0 +1,30 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWorkTask = (data: any) => { + return request.post('/api/v1/PipeLineLems/workTask', data) +} + +/** + * 鎵归噺鍒犻櫎 + * @returns + */ +export const deleteWorkTasks = (ids: string[]) => { + return request({ + data: ids, + url: '/api/v1/PipeLineLems/workTask', + method: 'delete', + }) +} + +/** + * 鍏嬮殕 + * @returns + */ +export const cloneData = (data: any) => { + return request.post('/api/v1/PipeLineLems/workTask/clone', data) +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskDrawer.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskDrawer.ts new file mode 100644 index 0000000..1fd7d98 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskDrawer.ts @@ -0,0 +1,34 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWorkTask = (data: any) => { + return request.post('/api/v1/PipeLineLems/workTask', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWorkTask = (id: string) => { + return request.get(`/api/v1/PipeLineLems/workTask/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWorkTask = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/PipeLineLems/workTask/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskQueryDrawer.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskQueryDrawer.ts new file mode 100644 index 0000000..ec2326e --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/Service/WorkTaskQueryDrawer.ts @@ -0,0 +1,35 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWorkTask = (data: any) => { + return request.post('/api/v1/PipeLineLems/workTask', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWorkTask = (id: string) => { + return request.get(`/api/v1/PipeLineLems/workTask/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWorkTask = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/PipeLineLems/workTask/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) +} + diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTask.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTask.ts new file mode 100644 index 0000000..afa7a0c --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTask.ts @@ -0,0 +1,41 @@ +import { Base } from '@/libs/Base/Base' +import { + deleteWorkTasks, + addWorkTask, + cloneData, +} from './Service/WorkTask' + +export class WorkTask extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + }) + } + onMounted() {} + /** + * 鍒犻櫎 + * @param id + * @returns + */ + async deleteWorkTasks(ids: string[]) { + return deleteWorkTasks(ids) + } + + /** + * 娣诲姞鏁版嵁 + * @param data + * @returns + */ + addWorkTask(data: Record<string, any>) { + return addWorkTask(data) + } + + /** + * 鍏嬮殕 + * @param ids + * @returns + */ + cloneData(ids: string[]) { + return cloneData(ids) + } +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskDrawer.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskDrawer.ts new file mode 100644 index 0000000..68b4a01 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskDrawer.ts @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWorkTask, + getWorkTask, + updateWorkTask, + getWmsEnumData, +} from './Service/WorkTaskDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WorkTaskDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + workTask: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWorkTask(data: Record<string, any>) { + return addWorkTask(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWorkTask(id: string, data: Record<string, any>) { + return updateWorkTask(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWorkTaskDetail(current: any, id?: string) { + return getWorkTask(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskQueryDrawer.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskQueryDrawer.ts new file mode 100644 index 0000000..84d2e80 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Models/WorkTaskQueryDrawer.ts @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWorkTask, + getWorkTask, + updateWorkTask, + getWmsEnumData, +} from './Service/WorkTaskQueryDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WorkTaskQueryDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + workTask: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWorkTask(data: Record<string, any>) { + return addWorkTask(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWorkTask(id: string, data: Record<string, any>) { + return updateWorkTask(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWorkTaskDetail(current: any, id?: string) { + return getWorkTask(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.module.scss b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.module.scss new file mode 100644 index 0000000..177adca --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.module.scss @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.tsx b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.tsx new file mode 100644 index 0000000..ad6e44f --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskDrawer/WorkTaskDrawer.tsx @@ -0,0 +1,61 @@ +import { SetupContext, defineComponent } from 'vue' +import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' +import styles from './WorkTaskDrawer.module.scss' +import { useWorkTaskDrawer } from '../../../../Controllers/WorkTaskDrawer.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, + } = useWorkTaskDrawer(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/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.module.scss b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.module.scss new file mode 100644 index 0000000..177adca --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.module.scss @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.tsx b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.tsx new file mode 100644 index 0000000..a60ac04 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer.tsx @@ -0,0 +1,71 @@ +/* + * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� +*/ +import { SetupContext, defineComponent } from 'vue' +import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' +import styles from './WorkTaskQueryDrawer.module.scss' +import { useWorkTaskQueryDrawer } from '../../../../Controllers/WorkTaskQueryDrawer.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, + } = useWorkTaskQueryDrawer(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/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/Config.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/Config.ts new file mode 100644 index 0000000..30f5152 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/Config.ts @@ -0,0 +1,217 @@ +export const columns = [ + { + type: 'seq', + width: 60, + title: '搴忓彿', + }, + { + field: 'son_TaskCode', + title: '瀛愪换鍔$紪鐮�', + width:160, +}, +{ + field: 'taskCode', + title: '浠诲姟缂栫爜', + width:160, +}, +{ + field: 'workPlanStatusDesc', + title: '璁″垝鐘舵��', + width:160, +}, +{ + field: 'callMaterialStatusDesc', + title: '鍙枡鐘舵��', + width:160, +}, +{ + field: 'dataIdentifier', + title: '鍘熸枡鏍囪瘑', + width:160, +}, +{ + field: 'materialMode', + title: '鍘熸枡鍨嬪彿', + width:160, +}, +{ + field: 'length', + title: '闀垮害(mm)', + width:160, +}, +{ + field: 'markingContent', + title: '鎵撶爜鍐呭', + width:160, +}, +{ + field: 'markingPosition', + title: '鎵撶爜浣嶇疆', + width:160, +}, +{ + field: 'cuttingPosition', + title: '鍒囧壊浣嶇疆', + width:160, +}, +{ + field: 'quantity', + title: '绠℃鏁伴噺', + width:160, +}, +{ + field: 'flangeThickness', + title: '娉曞叞鍘氬害(mm)', + width:160, +}, +{ + field: 'flangeInnerDiameter', + title: '娉曞叞鐩村緞(mm)', + width:160, +}, +{ + field: 'weldingHeatInput', + title: '娉曞叞鍏О鍘嬪姏', + width:160, +}, +{ + field: 'pipeAllowableStress', + title: '娉曞叞鍐茬爜鍐呭', + width:160, +}, +{ + field: 'pipeDiameter', + title: '濂楃闀垮害(mm)', + width:160, +}, +{ + field: 'pipeWallThickness', + title: '濂楃鐩村緞(mm)', + width:160, +}, +{ + field: 'factoryCode', + title: '宸ュ巶浠g爜', + width:160, +}, +{ + field: 'productCode', + title: '浜у搧浠g爜', + width:160, +}, +{ + field: 'workstationCode', + title: '宸ヤ綅浠g爜', + width:160, +}, +{ + field: 'equipmentCode', + title: '璁惧浠g爜', + width:160, +}, +{ + field: 'prodLineCode', + title: '浜х嚎缂栫爜', + width:160, +}, +{ + field: 'shipNumber', + title: '鑸瑰彿', + width:160, +}, +{ + field: 'projectNumber', + title: '椤圭洰鍙�', + width:160, +}, +{ + field: 'processName', + title: '宸ュ簭鍚嶇О', + width:160, +}, +{ + field: 'pipeFittingCode', + title: '绠′欢缂栫爜', + width:160, +}, +{ + field: 'preSerialNumber', + title: '椤哄簭鍙�', + width:160, +}, +{ + field: 'pipeSpecCode', + title: '绠℃缂栫爜', + width:160, +}, +{ + field: 'pipeSectionName', + title: '绠℃鍚嶇О', + width:160, +}, +{ + field: 'outerDiameter', + title: '澶栧緞(mm)', + width:160, +}, +{ + field: 'thickness', + title: '澹佸帤(mm)', + width:160, +}, +{ + field: 'material', + title: '鏉愯川', + width:160, +}, +{ + field: 'processRouteNumber', + title: '宸ヨ壓娴佸悜缂栧彿', + width:160, +}, +{ + field: 'plannedStartTime', + title: '璁″垝寮�濮嬫椂闂�', + width:180, +}, +{ + field: 'plannedEndTime', + title: '璁″垝瀹屾垚鏃堕棿', + width:180, +}, +{ + field: 'teamInfo', + title: '鐝粍淇℃伅', + width:160, +}, +{ + field: 'timestamp', + 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/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.module.scss b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.module.scss new file mode 100644 index 0000000..fdf4260 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.module.scss @@ -0,0 +1,113 @@ +.workTaskContent { + width: 100%; + height: 100%; + + .workTaskList { + 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/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.tsx b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.tsx new file mode 100644 index 0000000..8045a4e --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/Pages/WorkTask/WorkTask.tsx @@ -0,0 +1,409 @@ +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WorkTask.module.scss' +import { useWorkTask } from '../../../Controllers/WorkTask' +import IconButton from '@/components/IconButton/IconButton' +import WorkTaskDrawer from '../Dialog/WorkTaskDrawer/WorkTaskDrawer' +import WorkTaskQueryDrawer from '../Dialog/WorkTaskQueryDrawer/WorkTaskQueryDrawer' +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/WorkTask/Models/Service/WorkTaskDrawer' +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: 'WorkTask', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWorkTask, + onCheck, + onAddWorkTask, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWorkTask(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const workTaskQueryDrawerRef=ref(null); + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs:[], + searchVal_FilterMode:'' + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref([ + 'Son_TaskCode','TaskCode','DataIdentifier','MaterialMode','MarkingContent','WeldingHeatInput','PipeAllowableStress','FactoryCode','ProductCode','WorkstationCode','EquipmentCode','ProdLineCode','ShipNumber','ProjectNumber','ProcessName','PipeFittingCode','PreSerialNumber','PipeSpecCode','PipeSectionName','Material','ProcessRouteNumber','TeamInfo','Timestamp','CreatorName','LastModifierName','Remark' + ]); + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ瓙浠诲姟缂栫爜/浠诲姟缂栫爜/鍘熸枡鏍囪瘑/鍘熸枡鍨嬪彿/鎵撶爜鍐呭/娉曞叞鍏О鍘嬪姏/娉曞叞鍐茬爜鍐呭/宸ュ巶浠g爜/浜у搧浠g爜/宸ヤ綅浠g爜/璁惧浠g爜/浜х嚎缂栫爜/鑸瑰彿/椤圭洰鍙�/宸ュ簭鍚嶇О/绠′欢缂栫爜/椤哄簭鍙�/绠℃缂栫爜/绠℃鍚嶇О/鏉愯川/宸ヨ壓娴佸悜缂栧彿/鐝粍淇℃伅/鏃堕棿鎴�/鍒涘缓浜�/淇敼浜�/澶囨敞'); + + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + workPlanStatus: [] as Array<{label: string; value: any }>, +callMaterialStatus: [] as Array<{label: string; value: any }>, + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + const workPlanStatusEnumData = await getWmsEnumData({ + EnumName: 'WorkPlanStatusEnum', +}) +enumOptions.workPlanStatus = workPlanStatusEnumData.map((item) => ({ + label: item.description, + value: item.value, +})) +const callMaterialStatusEnumData = await getWmsEnumData({ + EnumName: 'CallMaterialStatusEnum', +}) +enumOptions.callMaterialStatus = callMaterialStatusEnumData.map((item) => ({ + label: item.description, + value: item.value, +})) + + } 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.workTaskList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/PipeLineLems/workTask/{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={{ + plannedStartTime: ({ row }: any) => { + return ( + <div> + {row.plannedStartTime != null + ? dayjs(row.plannedStartTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +plannedEndTime: ({ row }: any) => { + return ( + <div> + {row.plannedEndTime != null + ? dayjs(row.plannedEndTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +creationTime: ({ row }: any) => { + return ( + <div> + {row.creationTime != null + ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +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.workTaskContent}> + {/* 娣诲姞/缂栬緫 */} + <WorkTaskDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWorkTask} + /> + {/* 楂樼骇鏌ヨ */} + <WorkTaskQueryDrawer + ref="workTaskQueryDrawerRef" + 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="workTask-add" + icon="add-p" + onClick={onAddWorkTask} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-upload + v-permission="workTask-import" + name="file" + accept=".xlsx,.xls,.csv" + show-file-list={false} + onError={onError} + onSuccess={onSuccess} + before-upload={onBeforeUpload} + headers={headers.value} + action="/api/v1/PipeLineLems/workTask/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> + + <IconButton + v-permission="workTask-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="workTask-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/PipeLineLems/workTask/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.module.scss b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.module.scss new file mode 100644 index 0000000..ad4cde7 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.module.scss @@ -0,0 +1,7 @@ +.WorkTask { + background-color: #fff; + border-radius: 5px 5px 0 0; + width: 100%; + height: 100%; + border: 1px solid #dbdbdb; +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.tsx b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.tsx new file mode 100644 index 0000000..036696a --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/WorkTask.tsx @@ -0,0 +1,80 @@ +import { + Component, + DefineComponent, + defineComponent, + markRaw, + ref, + SetupContext, + onMounted, +} from 'vue' +import styles from './WorkTask.module.scss' +import Tab from '@/components/Tab/Tab' +import { useProvideModels } from '@/libs/Provider/app' +import { usePermission } from '@/libs/Permission/Permission' +import { permissionCodes } from '../enum' +import { ModuleType, TabItem } from '../type/Type' +import { getEntityNames } from '@/hooks/hook' +import TabPane from '@/components/Tab/TabPane' + +const Models: ModuleType = import.meta.glob('./config/*.json', { + eager: true, +}) + +const entityNames = getEntityNames(Models) + +const nameToLabelMap = [{ name: 'WorkTask', label: '浣滀笟浠诲姟' }] + +export default defineComponent({ + name: 'WorkTask', + + setup(props, ctx: SetupContext) { + useProvideModels() + usePermission(props, permissionCodes) + + const rf = ref<{ + [key: string]: any + }>({}) + + const tabData = ref<TabItem[]>([]) + + const onTabChange = (v: string) => { + rf.value?.[v]?.reloadList() + } + + const initTableData = async () => { + for (const i in entityNames) { + const name = entityNames[i] + const module = await import(`./Pages/${name}/${name}.tsx`) + const WorkTask = markRaw(module.default) + const foundLabel = + nameToLabelMap.find((item) => item.name === name)?.label || name + tabData.value.push({ + label: foundLabel, + name, + component: WorkTask, + }) + } + } + + initTableData() + + return () => { + return ( + <div class={styles.WorkTask}> + <Tab data={tabData.value} type="list" onTab={onTabChange}> + {tabData.value.map((widgetInfo) => { + const Widget: any = widgetInfo.component + return ( + <TabPane label={widgetInfo.label} name={widgetInfo.name}> + <Widget + ref={(r: any) => (rf.value['WorkTask'] = r)} + ></Widget> + </TabPane> + ) + })} + </Tab> + </div> + ) + } + }, +}) diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/config/WorkTask.json b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/config/WorkTask.json new file mode 100644 index 0000000..a9b211b --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Views/config/WorkTask.json @@ -0,0 +1,3 @@ +{ + "name": "WorkTask" +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/enum.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/enum.ts new file mode 100644 index 0000000..154e8db --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/enum.ts @@ -0,0 +1,15 @@ +export interface TabType { + label: string + name: string + columns?: any[] + data?: any[] + isFooter: boolean + [key: string]: any +} + +export const permissionCodes = { + 'workTask-list': '鍒楄〃-鍒楄〃', + 'workTask-add': '鍒楄〃-娣诲姞', + 'workTask-import': '鍒楄〃-瀵煎叆', + 'workTask-output': '鍒楄〃-杈撳嚭', +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/index.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/index.ts new file mode 100644 index 0000000..62f5587 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/index.ts @@ -0,0 +1,14 @@ +import WorkTask from './Views/WorkTask' +import Setting from '@/components/Setting/Setting' +import { provider } from '@/provider/index' +import p from '../../assets/svg/p.svg' + +export default { + is: 'WorkTask', + name: '浣滀笟浠诲姟', + category: 'run', + icon: p, + authorizationRequired: false, + canvasView: provider(WorkTask), + settingsView: Setting, +} diff --git a/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/type/type.d.ts b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/type/type.d.ts new file mode 100644 index 0000000..10b93d4 --- /dev/null +++ b/PipeLineLems/pipelinelems_web/src/widgets/WorkTask/type/type.d.ts @@ -0,0 +1,45 @@ +import { Component } from 'vue' + +export interface DataItemType { + id?: string + name?: string + code?: string + description?: string + label?: string + value?: string | number +} + +export interface WorkTaskBaseType { + id?: string + name?: string + code?: string + value?: number + description?: string + options?: Array<DataItemType> + abilityValue?: number | string + data?: DataItemType + defaultValue?: string | number + flow: string +} + +export interface FlowDefinitionType { + id?: string + name?: string + code?: string + description?: string +} + +export type ModuleType = Record< + string, + { + default: Record<string, string> + name: string + } +> + +export interface TabItem { + name: string + label: string + component: Component + hidden?: boolean +} diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs index 7b61b13..f681023 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs @@ -8,6 +8,7 @@ using CMS.Plugin.OrderManagement.Abstractions.Models; using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder; using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan; +using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkTask; using CMS.Plugin.PipeLineLems.Application.Contracts.Services; using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder; using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrderRecord; @@ -23,6 +24,7 @@ using Microsoft.Extensions.DependencyInjection; using Newtonsoft.Json; using Volo.Abp; +using Volo.Abp.ObjectMapping; using Volo.Abp.Uow; namespace CMS.Plugin.PipeLineLems.Application.Implements; @@ -112,6 +114,14 @@ //TODO:杩欓噷璋冪敤wms鐨勫彨鏂欐帴鍙� try { + //棣栧厛鍒ゆ柇搴撳瓨鏄惁瀛樺湪 + var dto = await IsExistInWms(input.PipeSpecCode); + if (dto != null) + { + throw new UserFriendlyException($"宸茬粡鍒嗘嫞杩囷紝搴撳瓨鍦ㄥ簱浣峽dto.PlaceNo},鎵樼洏鍙穥dto.ContainerNo}"); + } + + WmsMaterialStockCreateDto param = new WmsMaterialStockCreateDto() { ContainerNo = input.ContinerNo, @@ -258,6 +268,7 @@ }; return response; } + /// <summary> /// 鍒涘缓浣滀笟璁″垝 /// </summary> @@ -266,7 +277,6 @@ /// <param name="workPlanAppService"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public async Task<MesOrderResponse> CommonCreatebyApsAsync(List<WorkPlanInput> input, IServiceProvider _serviceProvider, WorkPlanAppService workPlanAppService, string userId, string userAccount @@ -306,6 +316,8 @@ var orderManager = _serviceProvider.GetRequiredService<IOrderManager>(); var productProvider = _serviceProvider.GetRequiredService<IProductProvider>(); var formulaProvider = _serviceProvider.GetRequiredService<IFormulaProvider>(); + + var workTaskAppService = _serviceProvider.GetRequiredService<IWorkTaskAppService>(); List<OrderModel> orderModels = new List<OrderModel>(); @@ -443,16 +455,36 @@ insertObj.CreatorName = userAccount; insertObj.Remark = "绯荤粺瀵煎叆"; await workPlanAppService.CreateAsync(insertObj); + + //澧炲姞鏂板璁″垝浠诲姟琛ㄦ暟鎹� 銆怑ditby shaocx,2025-05-20銆� + var org_insertTaskObj = ObjectMapper.Map<WorkPlanCreateDto, WorkTaskCreateDto>(insertObj); + org_insertTaskObj.Son_TaskCode = insertObj.TaskCode; + await workTaskAppService.CreateAsync(org_insertTaskObj); + if (insertObj.ProcessName == "鍒囧壊宸ュ簭") + {//鏂板缓 鍒嗘嫞宸ュ簭 + var insertTaskObj = ObjectMapper.Map<WorkPlanCreateDto, WorkTaskCreateDto>(insertObj); + insertTaskObj.Son_TaskCode = insertObj.TaskCode + "_1"; + insertTaskObj.ProcessName = "鍒嗘嫞宸ュ簭"; + await workTaskAppService.CreateAsync(insertTaskObj); + } + else if (insertObj.ProcessName == "瑁呴厤宸ュ簭") + {//鏂板缓 娉曞叞鍐茬爜宸ュ簭(澶氫釜) + //鐩墠鏆傛椂鎼炴垚涓�涓硶鍏� + var insertTaskObj = ObjectMapper.Map<WorkPlanCreateDto, WorkTaskCreateDto>(insertObj); + insertTaskObj.Son_TaskCode = insertObj.TaskCode + "_1"; + insertTaskObj.ProcessName = "娉曞叞鍐茬爜宸ュ簭"; + await workTaskAppService.CreateAsync(insertTaskObj); + } } #endregion await uow.CompleteAsync(); } - catch (Exception) + catch (Exception ex) { await uow.RollbackAsync(); - throw; + throw ex; } finally { @@ -1150,6 +1182,50 @@ } /// <summary> + /// 绠℃缂栫爜鏄惁瀛樺湪搴撳瓨涓� + /// </summary> + /// <param name="pipeSpecCode"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task<WmsMaterialStockDto> IsExistInWms(string pipeSpecCode) + { + //TODO:杩欓噷璋冪敤wms鐨勫簱瀛樻煡璇㈡帴鍙� + try + { + GetWmsMaterialStockInput param = new GetWmsMaterialStockInput() + { + RedundantField2 = pipeSpecCode, + RedundantField2_FilterMode = SearchFilterModeEnum.绮惧噯鏌ヨ + }; + + string baseUrl = @"http://127.0.0.1:18000/api/v1/HIAWms/"; + string url = baseUrl + "LMesOperate/FindListByFilter"; + string json = JsonConvert.SerializeObject(param); + var result = HttpApiRequest.HttpPost(url, json); + var res = JsonConvert.DeserializeObject<CmsApiResponse<List<WmsMaterialStockDto>>>(result); + if (res.Code == 200) + { + var retData = res.Data as List<WmsMaterialStockDto>; + if (retData?.Count > 0) + { + return retData.First(); + } + return null; + + } + else + { + throw new UserFriendlyException(res.Message); + }; + } + catch (Exception) + { + + throw; + } + } + + /// <summary> /// 鐢熸垚闅忔満鐨刉msTaskNo /// </summary> /// <returns>闅忔満鐢熸垚鐨勪换鍔$紪鍙�</returns> diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/CMSPluginDbContext.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/CMSPluginDbContext.cs index 5273088..fd98c04 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/CMSPluginDbContext.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/CMSPluginDbContext.cs @@ -34,6 +34,7 @@ builder.ConfigureMyTestEntityName(); builder.ConfigureWorkPlan(); + builder.ConfigureWorkTask(); builder.ConfigureCallMaterialOrder(); builder.ConfigureCallMaterialOrderRecord(); diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250515064954_Update1.Designer.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250515064954_Update1.Designer.cs deleted file mode 100644 index 688e61d..0000000 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250515064954_Update1.Designer.cs +++ /dev/null @@ -1,673 +0,0 @@ -锘�// <auto-generated /> -using System; -using CMS.Plugin.PipeLineLems.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.PipeLineLems.MySQL.Migrations -{ - [DbContext(typeof(CMSPluginDbContext))] - [Migration("20250515064954_Update1")] - partial class Update1 - { - 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.PipeLineLems.Domain.CallMaterialOrder.CallMaterialOrder", b => - { - b.Property<Guid>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property<int>("CallMaterialStatus") - .HasColumnType("int") - .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>("DataIdentifier") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .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<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>("MaterialMode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鍘熸枡鍨嬪彿"); - - b.Property<string>("OperationRemark") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鎿嶄綔澶囨敞"); - - b.Property<int>("Quantity") - .HasColumnType("int") - .HasComment("鍙枡鏁伴噺"); - - b.Property<string>("Remark") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("澶囨敞"); - - b.Property<int>("Sort") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasDefaultValue(0) - .HasComment("鎺掑簭"); - - b.Property<string>("WmsRetResult") - .HasColumnType("longtext") - .HasComment("WMS杩斿洖缁撴灉"); - - b.Property<string>("WmsTaskNo") - .HasColumnType("longtext") - .HasComment("WMS浠诲姟鍙�"); - - b.HasKey("Id"); - - b.HasIndex("DataIdentifier") - .IsUnique(); - - b.ToTable("scms_callmaterialorders", (string)null); - - b.HasComment("鍙枡鍗曡〃"); - }); - - modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.CallMaterialOrderRecord.CallMaterialOrderRecord", b => - { - b.Property<Guid>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property<int>("CallMaterialStatus") - .HasColumnType("int") - .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>("DataIdentifier") - .IsRequired() - .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<bool>("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(1)") - .HasDefaultValue(false) - .HasColumnName("IsDeleted") - .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>("MaterialMode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鍘熸枡鍨嬪彿"); - - b.Property<int>("Quantity") - .HasColumnType("int") - .HasComment("鍙枡鏁伴噺"); - - b.Property<string>("Remark") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("澶囨敞"); - - b.Property<int>("Sort") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasDefaultValue(0) - .HasComment("鎺掑簭"); - - b.Property<string>("WmsRetResult") - .HasColumnType("longtext") - .HasComment("WMS杩斿洖缁撴灉"); - - b.Property<string>("WmsTaskNo") - .HasColumnType("longtext") - .HasComment("WMS浠诲姟鍙�"); - - b.HasKey("Id"); - - b.HasIndex("DataIdentifier"); - - b.ToTable("scms_callmaterialorderrecords", (string)null); - - b.HasComment("鍙枡璁板綍琛�"); - }); - - modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.MyTestEntityNames.MyTestEntityName", b => - { - b.Property<Guid>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property<string>("Code") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("varchar(64)") - .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>("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("varchar(64)") - .HasComment("鍚嶇О"); - - b.Property<string>("Remark") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("澶囨敞"); - - b.Property<int>("Sort") - .HasColumnType("int") - .HasComment("鎺掑簭"); - - b.HasKey("Id"); - - b.HasIndex("Name"); - - b.ToTable("scms_mytestentitynames", (string)null); - - b.HasComment("MyTestEntityName"); - }); - - modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.WorkPlan.WorkPlan", b => - { - b.Property<Guid>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property<int>("CallMaterialStatus") - .HasColumnType("int") - .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<decimal>("CuttingPosition") - .HasColumnType("decimal(18,2)") - .HasComment("鍒囧壊浣嶇疆"); - - b.Property<string>("DataIdentifier") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .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>("EquipmentCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("璁惧浠g爜"); - - 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<string>("FactoryCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("宸ュ巶浠g爜"); - - b.Property<decimal>("FlangeInnerDiameter") - .HasColumnType("decimal(18,2)") - .HasComment("娉曞叞鐩村緞(mm)"); - - b.Property<decimal>("FlangeThickness") - .HasColumnType("decimal(18,2)") - .HasComment("娉曞叞鍘氬害(mm)"); - - 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<decimal>("Length") - .HasColumnType("decimal(18,2)") - .HasComment("闀垮害(mm)"); - - b.Property<string>("MarkingContent") - .HasMaxLength(1024) - .HasColumnType("varchar(1024)") - .HasComment("鎵撶爜鍐呭"); - - b.Property<decimal>("MarkingPosition") - .HasColumnType("decimal(18,2)") - .HasComment("鎵撶爜浣嶇疆"); - - b.Property<string>("Material") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鏉愯川"); - - b.Property<string>("MaterialMode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鍘熸枡鍨嬪彿"); - - b.Property<string>("OperationRemark") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鎿嶄綔澶囨敞"); - - b.Property<decimal>("OuterDiameter") - .HasColumnType("decimal(18,2)") - .HasComment("澶栧緞(mm)"); - - b.Property<string>("PipeAllowableStress") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("娉曞叞鍐茬爜鍐呭"); - - b.Property<decimal>("PipeDiameter") - .HasColumnType("decimal(18,2)") - .HasComment("濂楃闀垮害(mm)"); - - b.Property<string>("PipeFittingCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("绠′欢缂栫爜"); - - b.Property<string>("PipeSectionName") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("绠℃鍚嶇О"); - - b.Property<string>("PipeSpecCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("绠℃缂栫爜"); - - b.Property<decimal>("PipeWallThickness") - .HasColumnType("decimal(18,2)") - .HasComment("濂楃鐩村緞(mm)"); - - b.Property<DateTime?>("PlannedEndTime") - .HasColumnType("datetime(6)") - .HasComment("璁″垝瀹屾垚鏃堕棿"); - - b.Property<DateTime?>("PlannedStartTime") - .HasColumnType("datetime(6)") - .HasComment("璁″垝寮�濮嬫椂闂�"); - - b.Property<string>("PreSerialNumber") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("椤哄簭鍙�"); - - b.Property<string>("ProcessName") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("宸ュ簭鍚嶇О"); - - b.Property<string>("ProcessRouteNumber") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("宸ヨ壓娴佸悜缂栧彿"); - - b.Property<string>("ProdLineCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("浜х嚎缂栫爜"); - - b.Property<string>("ProductCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("浜у搧浠g爜"); - - b.Property<string>("ProjectNumber") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("椤圭洰鍙�"); - - b.Property<int>("Quantity") - .HasColumnType("int") - .HasComment("绠℃鏁伴噺"); - - b.Property<string>("Remark") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("澶囨敞"); - - b.Property<string>("ShipNumber") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鑸瑰彿"); - - b.Property<int>("Sort") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasDefaultValue(0) - .HasComment("鎺掑簭"); - - b.Property<string>("TaskCode") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("浠诲姟缂栫爜"); - - b.Property<string>("TeamInfo") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鐝粍淇℃伅"); - - b.Property<decimal>("Thickness") - .HasColumnType("decimal(18,2)") - .HasComment("澹佸帤(mm)"); - - b.Property<string>("Timestamp") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("鏃堕棿鎴�"); - - b.Property<string>("WeldingHeatInput") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("娉曞叞鍏О鍘嬪姏"); - - b.Property<int>("WorkPlanStatus") - .HasColumnType("int") - .HasComment("璁″垝鐘舵��"); - - b.Property<string>("WorkstationCode") - .HasMaxLength(256) - .HasColumnType("varchar(256)") - .HasComment("宸ヤ綅浠g爜"); - - b.HasKey("Id"); - - b.HasIndex("DataIdentifier"); - - b.HasIndex("PlannedEndTime"); - - b.HasIndex("PlannedStartTime"); - - b.HasIndex("TaskCode") - .IsUnique(); - - b.ToTable("scms_workplans", (string)null); - - b.HasComment("浣滀笟璁″垝琛�"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250515064954_Update1.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250515064954_Update1.cs deleted file mode 100644 index 2c578b0..0000000 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250515064954_Update1.cs +++ /dev/null @@ -1,297 +0,0 @@ -锘縰sing System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace CMS.Plugin.PipeLineLems.MySQL.Migrations -{ - public partial class Update1 : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterDatabase() - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "scms_callmaterialorderrecords", - columns: table => new - { - Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - DataIdentifier = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false, comment: "鍘熸枡鏍囪瘑") - .Annotation("MySql:CharSet", "utf8mb4"), - MaterialMode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍘熸枡鍨嬪彿") - .Annotation("MySql:CharSet", "utf8mb4"), - CallMaterialStatus = table.Column<int>(type: "int", nullable: false, comment: "鍙枡鐘舵��"), - Quantity = table.Column<int>(type: "int", nullable: false, comment: "鍙枡鏁伴噺"), - WmsRetResult = table.Column<string>(type: "longtext", nullable: true, comment: "WMS杩斿洖缁撴灉") - .Annotation("MySql:CharSet", "utf8mb4"), - WmsTaskNo = table.Column<string>(type: "longtext", nullable: true, comment: "WMS浠诲姟鍙�") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraProperties = table.Column<string>(type: "longtext", nullable: true, comment: "鎵╁睍灞炴��") - .Annotation("MySql:CharSet", "utf8mb4"), - ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true, comment: "骞跺彂鎴�") - .Annotation("MySql:CharSet", "utf8mb4"), - CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "鍒涘缓鏃堕棿"), - CreatorId = table.Column<Guid>(type: "char(36)", maxLength: 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)", maxLength: 36, nullable: true, comment: "淇敼浜篒D", collation: "ascii_general_ci"), - IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "鏄惁鍒犻櫎"), - DeleterId = table.Column<Guid>(type: "char(36)", maxLength: 36, nullable: true, comment: "鍒犻櫎浜篒D", collation: "ascii_general_ci"), - DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍒犻櫎鏃堕棿"), - CreatorName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍒涘缓浜�") - .Annotation("MySql:CharSet", "utf8mb4"), - Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "鎺掑簭"), - Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField1 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁1") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField2 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁2") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField3 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁3") - .Annotation("MySql:CharSet", "utf8mb4") - }, - constraints: table => - { - table.PrimaryKey("PK_scms_callmaterialorderrecords", x => x.Id); - }, - comment: "鍙枡璁板綍琛�") - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "scms_callmaterialorders", - columns: table => new - { - Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - DataIdentifier = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false, comment: "鍘熸枡鏍囪瘑") - .Annotation("MySql:CharSet", "utf8mb4"), - MaterialMode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍘熸枡鍨嬪彿") - .Annotation("MySql:CharSet", "utf8mb4"), - CallMaterialStatus = table.Column<int>(type: "int", nullable: false, comment: "鍙枡鐘舵��"), - Quantity = table.Column<int>(type: "int", nullable: false, comment: "鍙枡鏁伴噺"), - WmsRetResult = table.Column<string>(type: "longtext", nullable: true, comment: "WMS杩斿洖缁撴灉") - .Annotation("MySql:CharSet", "utf8mb4"), - WmsTaskNo = table.Column<string>(type: "longtext", nullable: true, comment: "WMS浠诲姟鍙�") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraProperties = table.Column<string>(type: "longtext", nullable: true, comment: "鎵╁睍灞炴��") - .Annotation("MySql:CharSet", "utf8mb4"), - ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true, comment: "骞跺彂鎴�") - .Annotation("MySql:CharSet", "utf8mb4"), - CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "鍒涘缓鏃堕棿"), - CreatorId = table.Column<Guid>(type: "char(36)", maxLength: 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)", maxLength: 36, nullable: true, comment: "淇敼浜篒D", collation: "ascii_general_ci"), - IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "鏄惁鍒犻櫎"), - DeleterId = table.Column<Guid>(type: "char(36)", maxLength: 36, nullable: true, comment: "鍒犻櫎浜篒D", collation: "ascii_general_ci"), - DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍒犻櫎鏃堕棿"), - CreatorName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍒涘缓浜�") - .Annotation("MySql:CharSet", "utf8mb4"), - LastModifierName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "淇敼浜�") - .Annotation("MySql:CharSet", "utf8mb4"), - OperationRemark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎿嶄綔澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - DeleteRemark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍒犻櫎澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "鎺掑簭"), - Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, defaultValue: false, comment: "鏄惁绂佺敤"), - ExtraField1 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁1") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField2 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁2") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField3 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁3") - .Annotation("MySql:CharSet", "utf8mb4") - }, - constraints: table => - { - table.PrimaryKey("PK_scms_callmaterialorders", x => x.Id); - }, - comment: "鍙枡鍗曡〃") - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "scms_mytestentitynames", - columns: table => new - { - Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - Code = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "缂栫爜") - .Annotation("MySql:CharSet", "utf8mb4"), - Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鍚嶇О") - .Annotation("MySql:CharSet", "utf8mb4"), - Sort = table.Column<int>(type: "int", nullable: false, comment: "鎺掑簭"), - Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "鏄惁绂佺敤"), - 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), - CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), - LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), - LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), - IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), - DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), - DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_scms_mytestentitynames", x => x.Id); - }, - comment: "MyTestEntityName") - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "scms_workplans", - columns: table => new - { - Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - TaskCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false, comment: "浠诲姟缂栫爜") - .Annotation("MySql:CharSet", "utf8mb4"), - WorkPlanStatus = table.Column<int>(type: "int", nullable: false, comment: "璁″垝鐘舵��"), - CallMaterialStatus = table.Column<int>(type: "int", nullable: false, comment: "鍙枡鐘舵��"), - DataIdentifier = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍘熸枡鏍囪瘑") - .Annotation("MySql:CharSet", "utf8mb4"), - MaterialMode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍘熸枡鍨嬪彿") - .Annotation("MySql:CharSet", "utf8mb4"), - Length = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "闀垮害(mm)"), - MarkingContent = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true, comment: "鎵撶爜鍐呭") - .Annotation("MySql:CharSet", "utf8mb4"), - MarkingPosition = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "鎵撶爜浣嶇疆"), - CuttingPosition = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "鍒囧壊浣嶇疆"), - Quantity = table.Column<int>(type: "int", nullable: false, comment: "绠℃鏁伴噺"), - FlangeThickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "娉曞叞鍘氬害(mm)"), - FlangeInnerDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "娉曞叞鐩村緞(mm)"), - WeldingHeatInput = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "娉曞叞鍏О鍘嬪姏") - .Annotation("MySql:CharSet", "utf8mb4"), - PipeAllowableStress = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "娉曞叞鍐茬爜鍐呭") - .Annotation("MySql:CharSet", "utf8mb4"), - PipeDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "濂楃闀垮害(mm)"), - PipeWallThickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "濂楃鐩村緞(mm)"), - FactoryCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ュ巶浠g爜") - .Annotation("MySql:CharSet", "utf8mb4"), - ProductCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "浜у搧浠g爜") - .Annotation("MySql:CharSet", "utf8mb4"), - WorkstationCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ヤ綅浠g爜") - .Annotation("MySql:CharSet", "utf8mb4"), - EquipmentCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "璁惧浠g爜") - .Annotation("MySql:CharSet", "utf8mb4"), - ProdLineCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "浜х嚎缂栫爜") - .Annotation("MySql:CharSet", "utf8mb4"), - ShipNumber = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鑸瑰彿") - .Annotation("MySql:CharSet", "utf8mb4"), - ProjectNumber = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "椤圭洰鍙�") - .Annotation("MySql:CharSet", "utf8mb4"), - ProcessName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ュ簭鍚嶇О") - .Annotation("MySql:CharSet", "utf8mb4"), - PipeFittingCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "绠′欢缂栫爜") - .Annotation("MySql:CharSet", "utf8mb4"), - PreSerialNumber = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "椤哄簭鍙�") - .Annotation("MySql:CharSet", "utf8mb4"), - PipeSpecCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "绠℃缂栫爜") - .Annotation("MySql:CharSet", "utf8mb4"), - PipeSectionName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "绠℃鍚嶇О") - .Annotation("MySql:CharSet", "utf8mb4"), - OuterDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "澶栧緞(mm)"), - Thickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "澹佸帤(mm)"), - Material = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鏉愯川") - .Annotation("MySql:CharSet", "utf8mb4"), - ProcessRouteNumber = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ヨ壓娴佸悜缂栧彿") - .Annotation("MySql:CharSet", "utf8mb4"), - PlannedStartTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "璁″垝寮�濮嬫椂闂�"), - PlannedEndTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "璁″垝瀹屾垚鏃堕棿"), - TeamInfo = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鐝粍淇℃伅") - .Annotation("MySql:CharSet", "utf8mb4"), - Timestamp = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鏃堕棿鎴�") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraProperties = table.Column<string>(type: "longtext", nullable: true, comment: "鎵╁睍灞炴��") - .Annotation("MySql:CharSet", "utf8mb4"), - ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true, comment: "骞跺彂鎴�") - .Annotation("MySql:CharSet", "utf8mb4"), - CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "鍒涘缓鏃堕棿"), - CreatorId = table.Column<Guid>(type: "char(36)", maxLength: 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)", maxLength: 36, nullable: true, comment: "淇敼浜篒D", collation: "ascii_general_ci"), - IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "鏄惁鍒犻櫎"), - DeleterId = table.Column<Guid>(type: "char(36)", maxLength: 36, nullable: true, comment: "鍒犻櫎浜篒D", collation: "ascii_general_ci"), - DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍒犻櫎鏃堕棿"), - CreatorName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍒涘缓浜�") - .Annotation("MySql:CharSet", "utf8mb4"), - LastModifierName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "淇敼浜�") - .Annotation("MySql:CharSet", "utf8mb4"), - OperationRemark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎿嶄綔澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - DeleteRemark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍒犻櫎澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "鎺掑簭"), - Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞") - .Annotation("MySql:CharSet", "utf8mb4"), - IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, defaultValue: false, comment: "鏄惁绂佺敤"), - ExtraField1 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁1") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField2 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁2") - .Annotation("MySql:CharSet", "utf8mb4"), - ExtraField3 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁3") - .Annotation("MySql:CharSet", "utf8mb4") - }, - constraints: table => - { - table.PrimaryKey("PK_scms_workplans", x => x.Id); - }, - comment: "浣滀笟璁″垝琛�") - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateIndex( - name: "IX_scms_callmaterialorderrecords_DataIdentifier", - table: "scms_callmaterialorderrecords", - column: "DataIdentifier"); - - migrationBuilder.CreateIndex( - name: "IX_scms_callmaterialorders_DataIdentifier", - table: "scms_callmaterialorders", - column: "DataIdentifier", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_scms_mytestentitynames_Name", - table: "scms_mytestentitynames", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_scms_workplans_DataIdentifier", - table: "scms_workplans", - column: "DataIdentifier"); - - migrationBuilder.CreateIndex( - name: "IX_scms_workplans_PlannedEndTime", - table: "scms_workplans", - column: "PlannedEndTime"); - - migrationBuilder.CreateIndex( - name: "IX_scms_workplans_PlannedStartTime", - table: "scms_workplans", - column: "PlannedStartTime"); - - migrationBuilder.CreateIndex( - name: "IX_scms_workplans_TaskCode", - table: "scms_workplans", - column: "TaskCode", - unique: true); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "scms_callmaterialorderrecords"); - - migrationBuilder.DropTable( - name: "scms_callmaterialorders"); - - migrationBuilder.DropTable( - name: "scms_mytestentitynames"); - - migrationBuilder.DropTable( - name: "scms_workplans"); - } - } -} diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs index 5f49a49..6135f3c 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs @@ -125,6 +125,9 @@ .HasColumnType("varchar(64)") .HasComment("淇敼浜�"); + b.Property<string>("MaterialBatch") + .HasColumnType("longtext"); + b.Property<string>("MaterialMode") .HasMaxLength(256) .HasColumnType("varchar(256)") @@ -255,6 +258,9 @@ .HasColumnType("char(36)") .HasColumnName("LastModifierId") .HasComment("淇敼浜篒D"); + + b.Property<string>("MaterialBatch") + .HasColumnType("longtext"); b.Property<string>("MaterialMode") .HasMaxLength(256) @@ -665,6 +671,305 @@ b.HasComment("浣滀笟璁″垝琛�"); }); + + modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.WorkTask.WorkTask", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property<int>("CallMaterialStatus") + .HasColumnType("int") + .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<decimal>("CuttingPosition") + .HasColumnType("decimal(18,2)") + .HasComment("鍒囧壊浣嶇疆"); + + b.Property<string>("DataIdentifier") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .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>("EquipmentCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("璁惧浠g爜"); + + 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<string>("FactoryCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("宸ュ巶浠g爜"); + + b.Property<decimal>("FlangeInnerDiameter") + .HasColumnType("decimal(18,2)") + .HasComment("娉曞叞鐩村緞(mm)"); + + b.Property<decimal>("FlangeThickness") + .HasColumnType("decimal(18,2)") + .HasComment("娉曞叞鍘氬害(mm)"); + + 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<decimal>("Length") + .HasColumnType("decimal(18,2)") + .HasComment("闀垮害(mm)"); + + b.Property<string>("MarkingContent") + .HasMaxLength(1024) + .HasColumnType("varchar(1024)") + .HasComment("鎵撶爜鍐呭"); + + b.Property<decimal>("MarkingPosition") + .HasColumnType("decimal(18,2)") + .HasComment("鎵撶爜浣嶇疆"); + + b.Property<string>("Material") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鏉愯川"); + + b.Property<string>("MaterialMode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鍘熸枡鍨嬪彿"); + + b.Property<string>("OperationRemark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鎿嶄綔澶囨敞"); + + b.Property<decimal>("OuterDiameter") + .HasColumnType("decimal(18,2)") + .HasComment("澶栧緞(mm)"); + + b.Property<string>("PipeAllowableStress") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("娉曞叞鍐茬爜鍐呭"); + + b.Property<decimal>("PipeDiameter") + .HasColumnType("decimal(18,2)") + .HasComment("濂楃闀垮害(mm)"); + + b.Property<string>("PipeFittingCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("绠′欢缂栫爜"); + + b.Property<string>("PipeSectionName") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("绠℃鍚嶇О"); + + b.Property<string>("PipeSpecCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("绠℃缂栫爜"); + + b.Property<decimal>("PipeWallThickness") + .HasColumnType("decimal(18,2)") + .HasComment("濂楃鐩村緞(mm)"); + + b.Property<DateTime?>("PlannedEndTime") + .HasColumnType("datetime(6)") + .HasComment("璁″垝瀹屾垚鏃堕棿"); + + b.Property<DateTime?>("PlannedStartTime") + .HasColumnType("datetime(6)") + .HasComment("璁″垝寮�濮嬫椂闂�"); + + b.Property<string>("PreSerialNumber") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("椤哄簭鍙�"); + + b.Property<string>("ProcessName") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("宸ュ簭鍚嶇О"); + + b.Property<string>("ProcessRouteNumber") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("宸ヨ壓娴佸悜缂栧彿"); + + b.Property<string>("ProdLineCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("浜х嚎缂栫爜"); + + b.Property<string>("ProductCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("浜у搧浠g爜"); + + b.Property<string>("ProjectNumber") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("椤圭洰鍙�"); + + b.Property<int>("Quantity") + .HasColumnType("int") + .HasComment("绠℃鏁伴噺"); + + b.Property<string>("Remark") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("澶囨敞"); + + b.Property<string>("ShipNumber") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鑸瑰彿"); + + b.Property<string>("Son_TaskCode") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("瀛愪换鍔$紪鐮�"); + + b.Property<int>("Sort") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasComment("鎺掑簭"); + + b.Property<string>("TaskCode") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("浠诲姟缂栫爜"); + + b.Property<string>("TeamInfo") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鐝粍淇℃伅"); + + b.Property<decimal>("Thickness") + .HasColumnType("decimal(18,2)") + .HasComment("澹佸帤(mm)"); + + b.Property<string>("Timestamp") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("鏃堕棿鎴�"); + + b.Property<string>("WeldingHeatInput") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("娉曞叞鍏О鍘嬪姏"); + + b.Property<int>("WorkPlanStatus") + .HasColumnType("int") + .HasComment("璁″垝鐘舵��"); + + b.Property<string>("WorkstationCode") + .HasMaxLength(256) + .HasColumnType("varchar(256)") + .HasComment("宸ヤ綅浠g爜"); + + b.HasKey("Id"); + + b.HasIndex("DataIdentifier"); + + b.HasIndex("PlannedEndTime"); + + b.HasIndex("PlannedStartTime"); + + b.HasIndex("Son_TaskCode") + .IsUnique(); + + b.ToTable("scms_worktasks", (string)null); + + b.HasComment("浣滀笟浠诲姟琛�"); + }); #pragma warning restore 612, 618 } } diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Scripts/UpdateMigrations.bat b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Scripts/UpdateMigrations.bat index b3d587a..4a1c743 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Scripts/UpdateMigrations.bat +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Scripts/UpdateMigrations.bat @@ -1,6 +1,6 @@ cd ../ ::dotnet ef migrations add InitialCreate -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 Update2 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations cmd diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeQueryDrawer\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeQueryDrawer\346\250\241\346\235\277.txt" index d00e438..eb5cd46 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeQueryDrawer\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeQueryDrawer\346\250\241\346\235\277.txt" @@ -20,6 +20,8 @@ FILTER_MODE_OPTIONS_NUM, FILTER_MODE_OPTIONS_BOOL } from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; +// 引入公共表单工具文件 +import { collectFormDataForHighQuery,onResetForHighSelect,onResetForHighQuery } from '@/utils/myformUtils'; import { BOOLEAN_OPTIONS } from '@/utils/commonOptionConstants'; @@ -122,7 +124,7 @@ const onClose = (done: () => void) => { if (visible.value) { visible.value = false - const data =commonGetFormData(); + const data =collectFormDataForHighQuery(formItems,formData); ctx.emit('close', data) } } @@ -130,46 +132,20 @@ * 确认查询 */ const onConfirmQuery = async () => { - const data =commonGetFormData(); + const data =collectFormDataForHighQuery(formItems,formData); ctx.emit('confirmQuery', data) } - /** - * 重置公共select查询 - */ - const onResetForHighSelect = () => { - // 遍历所有表单字段 - formItems.forEach(item => { - // 检查字段是否有高级查询的过滤模式配置 - if (item.highSelectAttrs && item.highSelectAttrs.prop) { - const filterModeProp = item.highSelectAttrs.prop; - const options = item.highSelectAttrs.options || []; - - // 如果存在选项,则设置为第一个选项的值 - if (options.length > 0) { - // 假设选项格式为 { value, label } 或类似结构 - const firstValue = options[0].value !== undefined ? options[0].value : options[0]; - formData.value[filterModeProp] = firstValue; - } - } - }); - } /** * 重置查询 - 优化版 */ const onReset = async () => { - // 1. 清空所有基础字段(不包含过滤模式字段) - const baseFields = formItems.reduce((acc, item) => { - acc[item.prop] = ''; - return acc; - }, {}); + // 1. 清空所有基础字段(不包含过滤模式字段),应用基础字段初始值 + onResetForHighQuery(formItems,formData); - // 2. 应用基础字段初始值 - formData.value = { ...baseFields }; + // 2. 使用原有方法重置过滤模式字段 + onResetForHighSelect(); - // 3. 使用原有方法重置过滤模式字段 - onResetForHighSelect(); // 保留原有方法调用 - - // 4. 向父组件发送自定义事件 + // 3. 向父组件发送自定义事件 ctx.emit('restQuery'); } -- Gitblit v1.9.3