HIAWms/hiawms_web/components.d.ts
@@ -42,6 +42,8 @@ ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
@@ -1,275 +1,279 @@ import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' import { injectModel } from '@/libs/Provider/Provider' import { WmsInOutStockOrder } from '../Models/WmsInOutStockOrder' import { ElMessage } from 'element-plus' import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' import { useFile } from './File' interface CurrentType { row: any index: number } export const useWmsInOutStockOrder = (props: any, ctx?: any) => { const wmsInOutStockOrder = injectModel<WmsInOutStockOrder>('wmsInOutStockOrder') const { exportFile } = useFile() /** * 头é¨é ç½® */ const headers = ref({}) /** * 卿åé ç½® */ const wmsInOutStockOrderColumns = ref<Record<string, any>>([]) /** * æç´¢å¼ */ const search = ref('') /** * æåº */ const sort = ref(0) /** * 鿩项 */ const selection = ref([]) /** * å½åéä¸çè¡ */ const current = ref<any>(null) /** * æ°æ®æº */ const dataSource: Ref<any[]> = ref([]) /** * è¡¨æ ¼ */ const tableRef = ref() const dialogConfig = reactive({ visible: false, title: '', isAdd: false, }) const dialogConfigForQuery = reactive({ visible: false, title: '', isAdd: false, }) const dialogSettingConfig = reactive({ visible: false, title: '', }) /** * åé¡µæ°æ® */ const paginationParams = ref({}) /** * æå¼è¯¦æ * @param row */ const openDetail = (row: any) => { current.value = row dialogConfig.visible = true dialogConfig.title = row.name dialogConfig.isAdd = false sort.value = row.sort } const contextMenu = [ { label: 'å±å¼è¯¦æ ', fn: (c: CurrentType) => { current.value = null sort.value = c.row.sort nextTick(() => openDetail(c.row)) }, divided: true, icon: 'o', }, // { // label: 'å䏿·»å ', // fn: (c: CurrentType, pageNum: number) => { // current.value = null // sort.value = c.index + 1 + (pageNum - 1) * 50 // dialogConfig.visible = true // dialogConfig.title = 'æ·»å ' // dialogConfig.isAdd = false // }, // divided: true, // icon: 'up', // }, // { // label: 'å䏿·»å ', // fn: (c: CurrentType, pageNum: number) => { // current.value = null // sort.value = c.index + 2 + (pageNum - 1) * 50 // dialogConfig.visible = true // dialogConfig.title = 'æ·»å ' // dialogConfig.isAdd = false // }, // divided: true, // icon: 'down', // }, // { // label: 'åå»ºå¯æ¬', // fn: async ({ row }: CurrentType) => { // await wmsInOutStockOrder.cloneData([row.id]) // ElMessage.success('åå»ºå¯æ¬æå') // tableRef.value?.getList() // }, // divided: true, // icon: 'copy', // }, { label: 'å é¤', fn: async (c: CurrentType) => { const names = selection.value.map((item: { orderNo: string }) => item.orderNo) ConfirmBox( `æ¯å¦å é¤${names.length ? names.join(',') : c.row.orderNo}` ).then(async () => { const ids = selection.value.map((item: { id: string }) => item.id) await wmsInOutStockOrder.deleteWmsInOutStockOrders(ids.length ? ids : [c.row.id]) ElMessage.success('å 餿å') tableRef.value.getList() }) }, icon: 'close', }, ] const onCheck = (records: any) => { selection.value = records } const onAddWmsInOutStockOrder = () => { const params = tableRef.value?.getPaginationParams() current.value = null dialogConfig.visible = true dialogConfig.isAdd = true dialogConfig.title = 'æ·»å ' sort.value = params.totalCount + 1 } //ç¹å»æé®ãé«çº§æ¥è¯¢ã const onAdvancedQuery = () => { const params = tableRef.value?.getPaginationParams() current.value = null dialogConfigForQuery.visible = true dialogConfigForQuery.isAdd = true dialogConfigForQuery.title = 'é«çº§æ¥è¯¢' } const onConfirmWmsInOutStockOrder = async () => { dialogConfig.visible = false if (dialogConfig.isAdd) { tableRef.value?.scrollToRow({ skip: true, }) } else { await tableRef.value?.getList() } } /** * è¡ç¹å»æ¶æ´æ°current */ const onRowClick = ({ row }: any) => { if (dialogConfig.visible && current.value) { current.value = row } } /** * å¯¼åº */ const onExport = (data={}) => { //const params = tableRef.value?.getParams() exportFile('/api/v1/HIAWms/wmsInOutStockOrder/export', data, 'wmsInOutStockOrder') } /** * å ³é®åæç´¢ */ const onSearch = () => { tableRef.value?.getList({ Filter: search.value, }) } /** * éç½®è¡¨æ ¼æ°æ® */ const reloadList = () => { tableRef.value?.getList() } /** * ä¸ä¼ æå */ const onSuccess = () => { tableRef.value?.getList() ElMessage.success('å¯¼å ¥æå') } /** * 失败 * @param err */ const onError = (err: any) => { try { const message = JSON.parse(err.message) ElMessage.error(message.msg) } catch (error) { ElMessage.error('å¯¼å ¥å¤±è´¥') } } /** * ä¸ä¼ é©å */ const onBeforeUpload = (file: File) => { const format = ['xlsx', 'xls', 'csv'] if (!format.includes(file.name.split('.')[1])) { ElMessage.error('å¯¼å ¥æä»¶æ ¼å¼ä¸æ£ç¡®ï¼è¯·å¯¼å ¥.xlsx/.xlsä¸.csvæ ¼å¼çæä»¶') return false } return true } onMounted(() => { headers.value = { Authorization: `Bearer ${sessionStorage.getItem('Token')}`, 'X-Project': sessionStorage.getItem('X-Project'), } }) ctx.expose({ reloadList, }) return { dataSource, contextMenu, dialogConfig, dialogConfigForQuery, dialogSettingConfig, tableRef, current, search, sort, wmsInOutStockOrderColumns, paginationParams, headers, onBeforeUpload, onError, onSuccess, openDetail, onSearch, onExport, onRowClick, onConfirmWmsInOutStockOrder, onCheck, onAddWmsInOutStockOrder, onAdvancedQuery } } import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' import { injectModel } from '@/libs/Provider/Provider' import { WmsInOutStockOrder } from '../Models/WmsInOutStockOrder' import { ElMessage } from 'element-plus' import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' import { useFile } from './File' interface CurrentType { row: any index: number } export const useWmsInOutStockOrder = (props: any, ctx?: any) => { const wmsInOutStockOrder = injectModel<WmsInOutStockOrder>('wmsInOutStockOrder') const { exportFile } = useFile() /** * 头é¨é ç½® */ const headers = ref({}) /** * 卿åé ç½® */ const wmsInOutStockOrderColumns = ref<Record<string, any>>([]) /** * æç´¢å¼ */ const search = ref('') /** * æåº */ const sort = ref(0) /** * 鿩项 */ const selection = ref([]) /** * å½åéä¸çè¡ */ const current = ref<any>(null) /** * æ°æ®æº */ const dataSource: Ref<any[]> = ref([]) /** * è¡¨æ ¼ */ const tableRef = ref() const dialogConfig = reactive({ visible: false, title: '', isAdd: false, }) const dialogConfigForQuery = reactive({ visible: false, title: '', isAdd: false, }) const dialogSettingConfig = reactive({ visible: false, title: '', }) /** * åé¡µæ°æ® */ const paginationParams = ref({}) /** * æå¼è¯¦æ * @param row */ const openDetail = (row: any) => { current.value = row dialogConfig.visible = true dialogConfig.title = row.name dialogConfig.isAdd = false sort.value = row.sort } const contextMenu = [ { label: 'å±å¼è¯¦æ ', fn: (c: CurrentType) => { current.value = null sort.value = c.row.sort nextTick(() => openDetail(c.row)) }, divided: true, icon: 'o', }, // { // label: 'å䏿·»å ', // fn: (c: CurrentType, pageNum: number) => { // current.value = null // sort.value = c.index + 1 + (pageNum - 1) * 50 // dialogConfig.visible = true // dialogConfig.title = 'æ·»å ' // dialogConfig.isAdd = false // }, // divided: true, // icon: 'up', // }, { label: '嫿', fn: async (c: CurrentType) => { const names = selection.value.map( (item: { orderNo: string }) => item.orderNo ) ConfirmBox( `ç¡®å®å«æ${names.length ? names.join(',') : c.row.orderNo}` ).then(async () => { const data = selection.value.length > 0 ? selection.value : [c.row] console.log('å«ææ°æ®:', data) await wmsInOutStockOrder.wmsInOutStockOrderCall(data) ElMessage.success('嫿æå') tableRef.value.getList() }) }, icon: 'close', }, { label: 'å é¤', fn: async (c: CurrentType) => { const names = selection.value.map( (item: { orderNo: string }) => item.orderNo ) ConfirmBox( `æ¯å¦å é¤${names.length ? names.join(',') : c.row.orderNo}` ).then(async () => { const ids = selection.value.map((item: { id: string }) => item.id) await wmsInOutStockOrder.deleteWmsInOutStockOrders( ids.length ? ids : [c.row.id] ) ElMessage.success('å 餿å') tableRef.value.getList() }) }, icon: 'close', }, ] const onCheck = (records: any) => { selection.value = records } const onAddWmsInOutStockOrder = () => { const params = tableRef.value?.getPaginationParams() current.value = null dialogConfig.visible = true dialogConfig.isAdd = true dialogConfig.title = 'æ·»å ' sort.value = params.totalCount + 1 } //ç¹å»æé®ãé«çº§æ¥è¯¢ã const onAdvancedQuery = () => { const params = tableRef.value?.getPaginationParams() current.value = null dialogConfigForQuery.visible = true dialogConfigForQuery.isAdd = true dialogConfigForQuery.title = 'é«çº§æ¥è¯¢' } const onConfirmWmsInOutStockOrder = async () => { dialogConfig.visible = false if (dialogConfig.isAdd) { tableRef.value?.scrollToRow({ skip: true, }) } else { await tableRef.value?.getList() } } /** * è¡ç¹å»æ¶æ´æ°current */ const onRowClick = ({ row }: any) => { if (dialogConfig.visible && current.value) { current.value = row } } /** * å¯¼åº */ const onExport = (data = {}) => { //const params = tableRef.value?.getParams() exportFile( '/api/v1/HIAWms/wmsInOutStockOrder/export', data, 'wmsInOutStockOrder' ) } /** * å ³é®åæç´¢ */ const onSearch = () => { tableRef.value?.getList({ Filter: search.value, }) } /** * éç½®è¡¨æ ¼æ°æ® */ const reloadList = () => { tableRef.value?.getList() } /** * ä¸ä¼ æå */ const onSuccess = () => { tableRef.value?.getList() ElMessage.success('å¯¼å ¥æå') } /** * 失败 * @param err */ const onError = (err: any) => { try { const message = JSON.parse(err.message) ElMessage.error(message.msg) } catch (error) { ElMessage.error('å¯¼å ¥å¤±è´¥') } } /** * ä¸ä¼ é©å */ const onBeforeUpload = (file: File) => { const format = ['xlsx', 'xls', 'csv'] if (!format.includes(file.name.split('.')[1])) { ElMessage.error('å¯¼å ¥æä»¶æ ¼å¼ä¸æ£ç¡®ï¼è¯·å¯¼å ¥.xlsx/.xlsä¸.csvæ ¼å¼çæä»¶') return false } return true } onMounted(() => { headers.value = { Authorization: `Bearer ${sessionStorage.getItem('Token')}`, 'X-Project': sessionStorage.getItem('X-Project'), } }) ctx.expose({ reloadList, }) return { dataSource, contextMenu, dialogConfig, dialogConfigForQuery, dialogSettingConfig, tableRef, current, search, sort, wmsInOutStockOrderColumns, paginationParams, headers, onBeforeUpload, onError, onSuccess, openDetail, onSearch, onExport, onRowClick, onConfirmWmsInOutStockOrder, onCheck, onAddWmsInOutStockOrder, onAdvancedQuery, } } HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsOutOrderCallMaterialDialog.tsx
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,215 @@ import { computed, defineComponent, onMounted, reactive, ref } from 'vue' import type { Ref } from 'vue' import BaseTable from '@/components/Table/Table' import styles from './WmsInOutStockOrder.module.scss' import { useWmsInOutStockOrder } from '../../../Controllers/WmsInOutStockOrder' import Search from '@/components/Search/Search' import { columns } from './Config' import TdButton from '@/components/TdButton/TdButton' import { vPermission } from '@/libs/Permission/Permission' import { getWmsEnumData } from '@/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer' import dayjs from 'dayjs' import { ElInput, ElSelect, ElOption, ElDatePicker, ElForm, ElFormItem, ElDialog, ElTable, ElTableColumn, ElButton, ElMessage, } from 'element-plus' import { injectModel } from '@/libs/Provider/Provider' interface RenderTableType { url?: string dataSource: Ref<any[]> isDrag?: boolean isChecked?: boolean isHidePagination?: boolean params?: Record<string, any> autoHeight?: boolean } export default defineComponent({ name: 'WmsInOutStockOrder', directives: { permission: vPermission, }, setup(props, ctx) { const { dataSource, contextMenu, tableRef, selection, onRowClick, onCheck, openDetail, } = useWmsInOutStockOrder(props, ctx) // 嫿弹çªç¸å ³ç¶æ const callMaterialDialog = reactive({ visible: false, title: '嫿', selectedItems: [] as any[], }) // æå¼å«æå¼¹çª const openCallMaterialDialog = () => { if (selection.value.length === 0) { ElMessage.warning('请è³å°éæ©ä¸æ¡è®°å½') return } callMaterialDialog.selectedItems = [...selection.value] console.log('éä¸çæ°æ®:', callMaterialDialog.selectedItems) callMaterialDialog.visible = true } // ç¡®è®¤å«æ const confirmCallMaterial = () => { // è¿éæ·»å 嫿é»è¾ console.log('å«ææ°æ®:', callMaterialDialog.selectedItems) ElMessage.success('嫿æå') callMaterialDialog.visible = false } /** * @returns å«æå¼¹çª */ const RenderCallMaterialDialog = () => { return ( <ElDialog v-model={callMaterialDialog.visible} title={callMaterialDialog.title} width="70%" v-slots={{ footer: () => ( <div class={styles.dialogFooter}> <ElButton onClick={() => (callMaterialDialog.visible = false)}> åæ¶ </ElButton> <ElButton type="primary" onClick={confirmCallMaterial}> ç¡®è®¤å«æ </ElButton> </div> ), }} > <ElTable data={callMaterialDialog.selectedItems} border> <ElTableColumn prop="orderNo" label="åæ®å·" width="180" /> <ElTableColumn prop="materialNo" label="ç©æç¼å·" width="180" /> <ElTableColumn prop="materialName" label="ç©æåç§°" /> <ElTableColumn prop="materialModel" label="åå·" /> <ElTableColumn prop="placeNo" label="åºä½ç¼å·" /> <ElTableColumn prop="quantity" label="æ°é" /> </ElTable> </ElDialog> ) } /** * @returns è¡¨æ ¼ */ const RenderBaseTable = (props: RenderTableType) => { const { url, dataSource, isDrag, isChecked, isHidePagination, params, autoHeight, } = props return ( <div class={{ [styles.wmsInOutStockOrderList]: true, }} > <BaseTable ref={tableRef} url={url} v-model:dataSource={dataSource.value} columns={columns} contextMenu={contextMenu} params={params} isDrag={isDrag} isChecked={isChecked} autoHeight={autoHeight} onCheck={onCheck} onRowClick={onRowClick} isHidePagination={isHidePagination} pageSize={20} v-slots={{ operateTime: ({ row }: any) => { return ( <div> {row.operateTime != null ? dayjs(row.operateTime).format('YYYY-MM-DD HH:mm:ss') : '-'} </div> ) }, creationTime: ({ row }: any) => { return ( <div> {row.creationTime != null ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') : '-'} </div> ) }, name: ({ row }: any) => { return row?.name ? ( <TdButton onClick={() => openDetail(row)} text={<span style="color:#5a84ff">详æ </span>} icon="scale" tip={row?.name} hover > {row?.name} </TdButton> ) : ( '-' ) }, }} ></BaseTable> </div> ) } return () => { return ( <div class={styles.wmsInOutStockOrderContent}> {/* å«æå¼¹çª */} <RenderCallMaterialDialog /> {/* æä½æé®åºå */} <div class={styles.headerContent}> <div class={styles.header}> <ElButton v-permission="wmsInOutStockOrder-call" type="primary" onClick={openCallMaterialDialog} > 嫿 </ElButton> </div> </div> <RenderBaseTable dataSource={dataSource} isChecked={true} isDrag={true} /> </div> ) } }, }) HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
@@ -1,30 +1,38 @@ import { Base } from '@/libs/Base/Base' const request = Base.request /** * æ·»å * @returns */ export const addWmsInOutStockOrder = (data: any) => { return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data) } /** * æ¹éå é¤ * @returns */ export const deleteWmsInOutStockOrders = (ids: string[]) => { return request({ data: ids, url: '/api/v1/HIAWms/wmsInOutStockOrder', method: 'delete', }) } /** * å é * @returns */ export const cloneData = (data: any) => { return request.post('/api/v1/HIAWms/wmsInOutStockOrder/clone', data) } import { Base } from '@/libs/Base/Base' const request = Base.request /** * æ·»å * @returns */ export const addWmsInOutStockOrder = (data: any) => { return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data) } /** * æ¹éå é¤ * @returns */ export const deleteWmsInOutStockOrders = (ids: string[]) => { return request({ data: ids, url: '/api/v1/HIAWms/wmsInOutStockOrder', method: 'delete', }) } /** * å é * @returns */ export const cloneData = (data: any) => { return request.post('/api/v1/HIAWms/wmsInOutStockOrder/clone', data) } /** * 嫿 * @returns */ export const wmsInOutStockOrderCall = (data: Record<string, any>) => { return request.post('/api/v1/HIAWms/WmsOutStock/CallMaterial', data) } HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
@@ -1,41 +1,51 @@ import { Base } from '@/libs/Base/Base' import { deleteWmsInOutStockOrders, addWmsInOutStockOrder, cloneData, } from './Service/WmsInOutStockOrder' export class WmsInOutStockOrder extends Base<{ [key: string]: any }> { constructor() { super({ data: [], }) } onMounted() {} /** * å é¤ * @param id * @returns */ async deleteWmsInOutStockOrders(ids: string[]) { return deleteWmsInOutStockOrders(ids) } /** * æ·»å æ°æ® * @param data * @returns */ addWmsInOutStockOrder(data: Record<string, any>) { return addWmsInOutStockOrder(data) } /** * å é * @param ids * @returns */ cloneData(ids: string[]) { return cloneData(ids) } } import { Base } from '@/libs/Base/Base' import { deleteWmsInOutStockOrders, addWmsInOutStockOrder, cloneData, wmsInOutStockOrderCall, } from './Service/WmsInOutStockOrder' export class WmsInOutStockOrder extends Base<{ [key: string]: any }> { constructor() { super({ data: [], }) } onMounted() {} /** * å é¤ * @param id * @returns */ async deleteWmsInOutStockOrders(ids: string[]) { return deleteWmsInOutStockOrders(ids) } /** * æ·»å æ°æ® * @param data * @returns */ addWmsInOutStockOrder(data: Record<string, any>) { return addWmsInOutStockOrder(data) } /** * å é * @param ids * @returns */ cloneData(ids: string[]) { return cloneData(ids) } /** * 嫿 * @param data * @returns */ wmsInOutStockOrderCall(data: Record<string, any>) { return wmsInOutStockOrderCall(data) } } HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
@@ -19,6 +19,11 @@ ElDatePicker, ElForm, ElFormItem, ElDialog, ElButton, ElTable, ElTableColumn, ElMessage, } from 'element-plus' import { injectModel } from '@/libs/Provider/Provider' @@ -37,6 +42,7 @@ directives: { permission: vPermission, }, setup(props, ctx) { const { dataSource, @@ -46,6 +52,7 @@ tableRef, current, search, selection, sort, headers, onError, @@ -173,6 +180,66 @@ return filteredData } // 嫿弹çªç¸å ³ç¶æ const callMaterialDialog = reactive({ visible: false, title: '嫿', selectedItems: [] as any[], }) // æå¼å«æå¼¹çª const openCallMaterialDialog = () => { console.log('éä¸çæ°æ®:', callMaterialDialog.selectedItems) if (selection.value.length === 0) { ElMessage.warning('请è³å°éæ©ä¸æ¡è®°å½') return } callMaterialDialog.selectedItems = [...selection.value] callMaterialDialog.visible = true } // ç¡®è®¤å«æ const confirmCallMaterial = () => { // è¿éæ·»å 嫿é»è¾ console.log('å«ææ°æ®:', callMaterialDialog.selectedItems) ElMessage.success('嫿æå') callMaterialDialog.visible = false } /** * @returns å«æå¼¹çª */ const RenderCallMaterialDialog = () => { return ( <ElDialog v-model={callMaterialDialog.visible} title={callMaterialDialog.title} width="70%" v-slots={{ footer: () => ( <div class={styles.dialogFooter}> <ElButton onClick={() => (callMaterialDialog.visible = false)}> åæ¶ </ElButton> <ElButton type="primary" onClick={confirmCallMaterial}> ç¡®è®¤å«æ </ElButton> </div> ), }} > <ElTable data={callMaterialDialog.selectedItems} border> <ElTableColumn prop="orderNo" label="åæ®å·" width="180" /> <ElTableColumn prop="materialNo" label="ç©æç¼å·" width="180" /> <ElTableColumn prop="materialName" label="ç©æåç§°" /> <ElTableColumn prop="materialModel" label="åå·" /> <ElTableColumn prop="placeNo" label="åºä½ç¼å·" /> <ElTableColumn prop="quantity" label="æ°é" /> </ElTable> </ElDialog> ) } /** * @returns è¡¨æ ¼ */ @@ -273,6 +340,9 @@ <div class={styles.headerContent}> <div class={styles.header}> {/* å«æå¼¹çª */} <RenderCallMaterialDialog /> <IconButton v-permission="wmsInOutStockOrder-add" icon="add-p" @@ -285,7 +355,7 @@ <IconButton v-permission="wmsInOutStockOrder-add" icon="add-p" onClick={onAddWmsInOutStockOrder} onClick={openCallMaterialDialog} type="primary" > 嫿 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
@@ -297,7 +297,7 @@ <el-divider direction="vertical" /> <el-divider direction="vertical" /> <el-upload {/* <el-upload v-permission="wmsInOutStockOrderDetail-import" name="file" accept=".xlsx,.xls,.csv" @@ -317,7 +317,7 @@ onClick={handleExport} > å¯¼åº </IconButton> </IconButton> */} </div> <ElFormItem style={{ marginTop: '15px' }}> <ElFormItem label="å ³é®å"> HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
@@ -45,6 +45,10 @@ title: 'åå·', }, { field: 'materialBatch', title: 'æ¹æ¬¡', }, { field: 'remark', title: '夿³¨', }, HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts
@@ -33,7 +33,7 @@ * ç©æåå·å表 * @returns */ export const getMaterialModelList = (data: any) => { export const getMaterialModelList = () => { return request.get(`/api/v1/hiawms/wmsenum/ModelList`) } HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
@@ -8,12 +8,14 @@ ElButton, ElSelect, ElOption, ElMessage, } from 'element-plus' import { getPlaceNoForStockList, getMaterialModelList, instock, } from '@/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer' import { Message } from '@element-plus/icons-vue/dist/types' export default defineComponent({ name: 'WmsMaterialContainer', @@ -45,10 +47,21 @@ // ç»çå ¥åºæä½ const handlePalletizeStorage = () => { console.log('ç»çå ¥åºæä½', queryForm.value) instock(queryForm.value) instock(queryForm.value), resetQueryForm() ElMessage.success({ message: 'ç»çå ¥åºæå', type: 'success', }) // è¿éæ·»å ç»çå ¥åºé»è¾ } const resetQueryForm = () => { queryForm.value.materialModel = '' queryForm.value.placeNo = '' queryForm.value.materialBatch = '' queryForm.value.stockNumber = '' } const getModelList = async () => { const models = await getMaterialModelList() modelOptions.value = models.map((item: string) => ({ HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTask.ts
@@ -1,275 +1,300 @@ import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' import { injectModel } from '@/libs/Provider/Provider' import { WmsTask } from '../Models/WmsTask' import { ElMessage } from 'element-plus' import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' import { useFile } from './File' interface CurrentType { row: any index: number } export const useWmsTask = (props: any, ctx?: any) => { const wmsTask = injectModel<WmsTask>('wmsTask') const { exportFile } = useFile() /** * 头é¨é ç½® */ const headers = ref({}) /** * 卿åé ç½® */ const wmsTaskColumns = 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 wmsTask.cloneData([row.id]) // ElMessage.success('åå»ºå¯æ¬æå') // tableRef.value?.getList() // }, // divided: true, // icon: 'copy', // }, { label: 'å é¤', fn: async (c: CurrentType) => { const names = selection.value.map((item: { taskNo: string }) => item.taskNo) ConfirmBox( `æ¯å¦å é¤${names.length ? names.join(',') : c.row.taskNo}` ).then(async () => { const ids = selection.value.map((item: { id: string }) => item.id) await wmsTask.deleteWmsTasks(ids.length ? ids : [c.row.id]) ElMessage.success('å 餿å') tableRef.value.getList() }) }, icon: 'close', }, ] const onCheck = (records: any) => { selection.value = records } const onAddWmsTask = () => { 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 onConfirmWmsTask = async () => { dialogConfig.visible = false if (dialogConfig.isAdd) { tableRef.value?.scrollToRow({ skip: true, }) } else { await tableRef.value?.getList() } } /** * è¡ç¹å»æ¶æ´æ°current */ const onRowClick = ({ row }: any) => { if (dialogConfig.visible && current.value) { current.value = row } } /** * å¯¼åº */ const onExport = (data={}) => { //const params = tableRef.value?.getParams() exportFile('/api/v1/HIAWms/wmsTask/export', data, 'HIAWms') } /** * å ³é®åæç´¢ */ 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, wmsTaskColumns, paginationParams, headers, onBeforeUpload, onError, onSuccess, openDetail, onSearch, onExport, onRowClick, onConfirmWmsTask, onCheck, onAddWmsTask, onAdvancedQuery } } import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' import { injectModel } from '@/libs/Provider/Provider' import { WmsTask } from '../Models/WmsTask' import { ElMessage } from 'element-plus' import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' import { useFile } from './File' interface CurrentType { row: any index: number } interface WmsTaskItem { id: string taskNo: string // å ¶ä»å段... } export const useWmsTask = (props: any, ctx?: any) => { const wmsTask = injectModel<WmsTask>('wmsTask') const { exportFile } = useFile() /** * 头é¨é ç½® */ const headers = ref({}) /** * 卿åé ç½® */ const wmsTaskColumns = ref<Record<string, any>>({}) /** * æç´¢å¼ */ const search = ref('') /** * æåº */ const sort = ref(0) /** * 鿩项 */ const selection = ref<WmsTaskItem[]>([]) /** * å½åéä¸çè¡ */ 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: async (c: CurrentType) => { // è·åè¦æä½çä»»å¡ï¼å¤éæå½åè¡ï¼ const tasks = selection.value.length > 0 ? selection.value : [c.row] const data = { taskNo: tasks[0].taskNo, } ConfirmBox(`æ¯å¦å¼ºå¶å®æ ${tasks.map((t) => t.taskNo).join(',')}`) .then(async () => { await wmsTask.finishTask(data) // ä¼ éåä¸ªå¯¹è±¡ææ°ç» ElMessage.success('强å¶å®ææå') tableRef.value.getList() }) .catch(() => {}) }, divided: true, icon: 'down', }, { label: 'åæ¶', fn: async (c: CurrentType) => { // è·åè¦æä½çä»»å¡ï¼å¤éæå½åè¡ï¼ const tasks = selection.value.length > 0 ? selection.value : [c.row] const data = { taskNo: tasks[0].taskNo, } ConfirmBox(`æ¯å¦åæ¶ ${tasks.map((t) => t.taskNo).join(',')}`) .then(async () => { await wmsTask.cancelTask(data) // ä¼ éåä¸ªå¯¹è±¡ææ°ç» ElMessage.success('åæ¶æå') tableRef.value.getList() }) .catch(() => {}) }, divided: true, icon: 'copy', }, { label: 'å é¤', fn: async (c: CurrentType) => { const names = selection.value.map( (item: { taskNo: string }) => item.taskNo ) ConfirmBox( `æ¯å¦å é¤${names.length ? names.join(',') : c.row.taskNo}` ).then(async () => { const ids = selection.value.map((item: { id: string }) => item.id) await wmsTask.deleteWmsTasks(ids.length ? ids : [c.row.id]) ElMessage.success('å 餿å') tableRef.value.getList() }) }, icon: 'close', }, ] const onCheck = (records: any) => { selection.value = records } const onAddWmsTask = () => { 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 onConfirmWmsTask = async () => { dialogConfig.visible = false if (dialogConfig.isAdd) { tableRef.value?.scrollToRow({ skip: true, }) } else { await tableRef.value?.getList() } } /** * è¡ç¹å»æ¶æ´æ°current */ const onRowClick = ({ row }: any) => { if (dialogConfig.visible && current.value) { current.value = row } } /** * å¯¼åº */ const onExport = (data = {}) => { //const params = tableRef.value?.getParams() exportFile('/api/v1/HIAWms/wmsTask/export', data, 'HIAWms') } /** * å ³é®åæç´¢ */ 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, wmsTaskColumns, paginationParams, headers, onBeforeUpload, onError, onSuccess, openDetail, onSearch, onExport, onRowClick, onConfirmWmsTask, onCheck, onAddWmsTask, onAdvancedQuery, } } HIAWms/hiawms_web/src/widgets/WmsTask/Models/Service/WmsTask.ts
@@ -1,30 +1,46 @@ import { Base } from '@/libs/Base/Base' const request = Base.request /** * æ·»å * @returns */ export const addWmsTask = (data: any) => { return request.post('/api/v1/HIAWms/wmsTask', data) } /** * æ¹éå é¤ * @returns */ export const deleteWmsTasks = (ids: string[]) => { return request({ data: ids, url: '/api/v1/HIAWms/wmsTask', method: 'delete', }) } /** * å é * @returns */ export const cloneData = (data: any) => { return request.post('/api/v1/HIAWms/wmsTask/clone', data) } import { Base } from '@/libs/Base/Base' const request = Base.request /** * æ·»å * @returns */ export const addWmsTask = (data: any) => { return request.post('/api/v1/HIAWms/wmsTask', data) } /** * æ¹éå é¤ * @returns */ export const deleteWmsTasks = (ids: string[]) => { return request({ data: ids, url: '/api/v1/HIAWms/wmsTask', method: 'delete', }) } /** * å é * @returns */ export const cloneData = (data: any) => { return request.post('/api/v1/HIAWms/wmsTask/clone', data) } /** * 宿 * @returns */ export const finishTask = (data: any) => { return request.post('/api/v1/HIAWms/wmsTask/FinishTask', data) } /** * å é¤ * @returns */ export const cancelTask = (data: any) => { return request.post('/api/v1/HIAWms/wmsTask/CancelTask', data) } HIAWms/hiawms_web/src/widgets/WmsTask/Models/WmsTask.ts
@@ -1,41 +1,61 @@ import { Base } from '@/libs/Base/Base' import { deleteWmsTasks, addWmsTask, cloneData, } from './Service/WmsTask' export class WmsTask extends Base<{ [key: string]: any }> { constructor() { super({ data: [], }) } onMounted() {} /** * å é¤ * @param id * @returns */ async deleteWmsTasks(ids: string[]) { return deleteWmsTasks(ids) } /** * æ·»å æ°æ® * @param data * @returns */ addWmsTask(data: Record<string, any>) { return addWmsTask(data) } /** * å é * @param ids * @returns */ cloneData(ids: string[]) { return cloneData(ids) } } import { Base } from '@/libs/Base/Base' import { deleteWmsTasks, addWmsTask, cloneData, finishTask, cancelTask, } from './Service/WmsTask' export class WmsTask extends Base<{ [key: string]: any }> { constructor() { super({ data: [], }) } onMounted() {} /** * å é¤ * @param id * @returns */ async deleteWmsTasks(ids: string[]) { return deleteWmsTasks(ids) } /** * æ·»å æ°æ® * @param data * @returns */ addWmsTask(data: Record<string, any>) { return addWmsTask(data) } /** * å é * @param ids * @returns */ cloneData(ids: string[]) { return cloneData(ids) } /** * å®æä»»å¡ * @param id * @returns */ finishTask(data: Record<string, any>) { return finishTask(data) } /** * åæ¶ä»»å¡ * @param id * @returns */ cancelTask(data: Record<string, any>) { return cancelTask(data) } } HIAWms/hiawms_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx
@@ -292,7 +292,7 @@ <IconButton icon="in">å¯¼å ¥</IconButton> </el-upload> */} <IconButton {/* <IconButton v-permission="wmsTask-output" icon="out" onClick={handleExport} @@ -305,7 +305,7 @@ onClick={handleExport} > åæ¶ </IconButton> </IconButton> */} </div> <ElFormItem style={{ marginTop: '15px' }}> <ElFormItem label="å ³é®å"> HIAWms/project/Wms.cmsprojBinary files differ
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs
@@ -11,3 +11,15 @@ /// </summary> public string ConcurrencyStamp { get; set; } } /// <summary> /// åæ¶/宿忰 /// </summary> public class WmsTaskStatusDto { /// <summary> /// ä»»å¡å· /// </summary> public string TaskNo { get;set; } } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs
@@ -1,4 +1,5 @@ using System; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,5 +9,11 @@ { public interface IWmsOutStockAppService { /// <summary> /// 嫿 /// </summary> /// <param name="input"></param> /// <returns></returns> Task CallMaterialAsync(List<CallMaterialInput> input); } } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
@@ -49,12 +49,12 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> Task FinishTaskAsync(WmsTaskUpdateDto input); Task FinishTaskAsync(WmsTaskStatusDto input); /// <summary> /// åæ¶ä»»å¡ /// </summary> /// <param name="input"></param> /// <returns></returns> Task CancelTaskAysnc(WmsTaskUpdateDto input); Task CancelTaskAysnc(WmsTaskStatusDto input); } HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs
@@ -429,7 +429,7 @@ protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockRecordCreateOrUpdateDtoBase input) { Check.NotNull(input, nameof(input)); Check.NotNullOrWhiteSpace(input.OrderNo, "åæ®ç¼å·", 50); //Check.NotNullOrWhiteSpace(input.OrderNo, "åæ®ç¼å·", 50); Check.NotNullOrWhiteSpace(input.MaterialNo, "ç©æä»¶å·", 50); Check.NotNull(input.ContainerNo, "æçå·"); Check.NotNull(input.SourcePlace, "èµ·å§åºä½"); HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
@@ -25,8 +25,8 @@ private readonly IWmsTaskRepository _wmsTaskRepository; private readonly IWmsInOutStockOrderRepository _wmsInOutStockOrderRepository; private readonly IServiceProvider _serviceProvider; public WmsOutStockAppService(IWmsMaterialStockRepository wmsMaterialStockRepository, IWmsCommonAppService wmsCommonAppService, IWmsTaskRepository wmsTaskRepository, public WmsOutStockAppService(IWmsMaterialStockRepository wmsMaterialStockRepository, IWmsCommonAppService wmsCommonAppService, IWmsTaskRepository wmsTaskRepository, IWmsInOutStockOrderRepository wmsInOutStockOrderRepository, IServiceProvider serviceProvider ) { @@ -37,65 +37,73 @@ _serviceProvider = serviceProvider; } public async Task CallMaterial(CallMaterialInput input) public async Task CallMaterialAsync(List<CallMaterialInput> input) { using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); var order = await _wmsInOutStockOrderRepository.FindByNameAsync(input.OrderNo); if(order == null) var distinctModels = input.Select(x => x.MaterialModel).Distinct().ToList(); if (distinctModels.Count > 1) { throw new UserFriendlyException("åºåºåæ®ä¸åå¨"); throw new UserFriendlyException("䏿¬¡å«æåªè½é对åä¸åå·çç©æï¼"); } if(input.MaterialNumber <=0) foreach (var inputItem in input) { throw new UserFriendlyException("嫿æ°éå¿ é¡»å¤§äº0"); } if(order.MaterialNumber< input.MaterialNumber) { throw new UserFriendlyException("嫿æ°éä¸è½å¤§äºåæ®æ°é"); } order.OrderStatus = OrderStatusEnum.Executing; order.DistributeNumber = input.MaterialNumber; await _wmsInOutStockOrderRepository.UpdateAsync(order); var stockresult = await _wmsCommonAppService.FindStockAsync(input.MaterialModel, input.MaterialNumber); if(stockresult == null) { throw new UserFriendlyException("å½åæ åºå"); } var taskList = new List<WmsTask>(); foreach (var kvp in stockresult) { var stock = kvp.Key; // WmsPlace对象 var quantity = kvp.Value; // åé æ°é for (int i = 0; i < quantity; i++) var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo); if (order == null) { var task = new WmsTask { TaskNo = $"CK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}", ContainerNo = stock.ContainerNo, SourcePlace = stock.PlaceNo, ToPlace = "201",// place.PlaceNo, TaskType = TaskTypeEnum.CHUKU, SonTaskType = input.OrderType == OrderTypeEnum.PRODUCTCALL ? SonTaskTypeEnum.ZDCHUKU : SonTaskTypeEnum.RGRUKU, TaskStatus = WmsTaskStatus.WEIZHIXING, TaskLevel = 999, Aisle = 1, DodeviceId = 0, TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart, IsNextTask = (int)YesNoEnum.Y, IsRead = true, SourceOrderNo = input.OrderNo, MutableParam1 = input.MaterialModel, }; taskList.Add(task); throw new UserFriendlyException("åºåºåæ®ä¸åå¨"); } if (inputItem.MaterialNumber <= 0) { throw new UserFriendlyException("嫿æ°éå¿ é¡»å¤§äº0"); } if (order.MaterialNumber < inputItem.MaterialNumber) { throw new UserFriendlyException("嫿æ°éä¸è½å¤§äºåæ®æ°é"); } order.OrderStatus = OrderStatusEnum.Executing; order.DistributeNumber = inputItem.MaterialNumber; await _wmsInOutStockOrderRepository.UpdateAsync(order); var stockresult = await _wmsCommonAppService.FindStockAsync(inputItem.MaterialModel, inputItem.MaterialNumber); if (stockresult == null) { throw new UserFriendlyException("å½åæ åºå"); } var taskList = new List<WmsTask>(); foreach (var kvp in stockresult) { var stock = kvp.Key; // WmsPlace对象 var quantity = kvp.Value; // åé æ°é for (int i = 0; i < quantity; i++) { var task = new WmsTask { TaskNo = $"CK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}", ContainerNo = stock.ContainerNo, SourcePlace = stock.PlaceNo, ToPlace = "201",// place.PlaceNo, TaskType = TaskTypeEnum.CHUKU, SonTaskType = inputItem.OrderType == OrderTypeEnum.PRODUCTCALL ? SonTaskTypeEnum.ZDCHUKU : SonTaskTypeEnum.RGRUKU, TaskStatus = WmsTaskStatus.WEIZHIXING, TaskLevel = order.Priority, Aisle = 1, DodeviceId = 0, TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart, IsNextTask = (int)YesNoEnum.Y, IsRead = true, SourceOrderNo = inputItem.OrderNo, MutableParam1 = inputItem.MaterialModel, }; taskList.Add(task); } } await _wmsTaskRepository.InsertManyAsync(taskList); } await _wmsTaskRepository.InsertManyAsync(taskList); await uow.SaveChangesAsync(); await uow.CompleteAsync(); HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
@@ -197,7 +197,7 @@ } updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); if(input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO) if (input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO) { throw new UserFriendlyException("宿æè åæ¶çä»»å¡ä¸å è®¸æ´æ¹"); } @@ -523,9 +523,8 @@ /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> public async Task FinishTaskAsync(WmsTaskUpdateDto input) public async Task FinishTaskAsync(WmsTaskStatusDto input) { using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using var uow = unitOfWorkManager.Begin(requiresNew: true); @@ -540,19 +539,35 @@ throw new UserFriendlyException("åæ¶æè 宿çä»»å¡ä¸å 许æä½"); } task.TaskStatus = WmsTaskStatus.WANCHENG; task.TaskDodeviceStatus = TaskDodeviceStatus.SrmFinish; await wmsTaskRepository.UpdateAsync(task); var place = await _wmsPlaceRepository.FindByNameAsync(task.ToPlace); if (place == null) { throw new UserFriendlyException("ç®æ åºä½ä¸åå¨"); } // æ´æ°åºå var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1,PlaceNo = task.SourcePlace}); if(stockList == null || stockList.Count<=0) var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1, PlaceNo = task.SourcePlace }); if (stockList == null || stockList.Count <= 0) { throw new UserFriendlyException("ååºä½ä¿¡æ¯ä¸åå¨"); } var stock = stockList.FirstOrDefault(); stock.PlaceNo = task.ToPlace; stock.StorageTypeNo = place.StorageTypeNo; stock.InStockTime = DateTime.Now; stock.ContainerNo = "TP" + task.ToPlace; await _wmsMaterialStockRepository.UpdateAsync(stock); place.PlaceStatus = PlaceStatusEnum.CUNHUO; await _wmsPlaceRepository.UpdateAsync(place); var container = await _wmsContainerRepository.FindByNameAsync(stock.ContainerNo); if(container == null) if (container == null) { await _wmsContainerRepository.InsertAsync(new WmsContainer { @@ -561,9 +576,14 @@ ContainerType = ContainerTypeEnum.XUNI, }); } else { container.ContainerStatus = ContainerStatusEnum.KUWEI; await _wmsContainerRepository.UpdateAsync(container); } var oldContainer = await _wmsContainerRepository.FindByNameAsync(task.ContainerNo); if(oldContainer != null) if (oldContainer != null) { await _wmsContainerRepository.DeleteAsync(oldContainer); } @@ -572,7 +592,7 @@ { // è·æ°åæ®å®ææ°é var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo); if(orderNo != null) if (orderNo != null) { orderNo.CompleteNumber += 1; orderNo.OrderStatus = OrderStatusEnum.Executing; @@ -605,7 +625,7 @@ StockType = task.TaskType == TaskTypeEnum.CHUKU ? StockTypeEnum.OutBound : StockTypeEnum.InBound, ContainerNo = task.ContainerNo, MaterialId = stock.MaterialId, MaterialModel= stock.MaterialModel, MaterialModel = stock.MaterialModel, MaterialName = stock.MaterialName, MaterialNo = stock.MaterialNo, MaterialBatch = stock.MaterialBatch, @@ -625,7 +645,7 @@ /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> public async Task CancelTaskAysnc(WmsTaskUpdateDto input) public async Task CancelTaskAysnc(WmsTaskStatusDto input) { using var scope = _serviceProvider.CreateScope(); @@ -656,18 +676,18 @@ { // è·æ°åæ®å®ææ°é var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo); if(orderNo != null) if (orderNo != null) { orderNo.CompleteNumber -= 1; orderNo.OrderStatus = OrderStatusEnum.NoStart; } if (orderNo.CompleteNumber>0) if (orderNo.CompleteNumber > 0) { orderNo.OrderStatus = OrderStatusEnum.Executing; } await _wmsInOutStockOrderRepository.UpdateAsync(orderNo); } await uow.SaveChangesAsync(); HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs
@@ -46,7 +46,7 @@ // Properties b.Property(x => x.OrderNo) .HasMaxLength(50) .IsRequired() .IsRequired(false) .HasComment("åæ®ç¼å·"); b.Property(x => x.MaterialName) HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
@@ -146,7 +146,7 @@ .AsQueryable(); // 转æ¢åIQueryableä»¥æ¯æåç»æä½ var result = groupedData .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterialStock.Sort) : sorting) .OrderBy(x=>x.StockNumber) .PageBy(skipCount, maxResultCount) .ToList(); HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.Designer.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,1786 @@ // <auto-generated /> using System; using CMS.Plugin.HIAWms.MySQL; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Volo.Abp.EntityFrameworkCore; #nullable disable namespace CMS.Plugin.HIAWms.MySQL.Migrations { [DbContext(typeof(CMSPluginDbContext))] [Migration("20250511134948_InitialCreate14")] partial class InitialCreate14 { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) .HasAnnotation("ProductVersion", "6.0.16") .HasAnnotation("Relational:MaxIdentifierLength", 64); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("AreaDesc") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("æè¿°"); b.Property<string>("AreaName") .IsRequired() .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åºåºåç§°"); b.Property<string>("AreaNo") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("åºåºç¼å·"); b.Property<int>("AreaStatus") .HasColumnType("int") .HasComment("åºåºç¶æ"); b.Property<int>("AreaType") .HasColumnType("int") .HasComment("åºåºç±»å"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("RedundantField1") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField2") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField3") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); b.Property<string>("Remark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("夿³¨"); b.Property<int>("Sort") .HasColumnType("int") .HasComment("æåº"); b.Property<string>("StoreCode") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ä»åºä»£ç "); b.Property<string>("StoreName") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("ä»åºåç§°"); b.HasKey("Id"); b.HasIndex("AreaName"); b.ToTable("scms_wmsareas", (string)null); b.HasComment("åºåºè¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainerPlace.WmsContainerPlace", b => { b.Property<string>("PlaceNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("åºä½ç¼ç "); b.Property<string>("ContainerNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æçç¼å·"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp") .HasComment("å¹¶åæ³"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime") .HasComment("å建æ¶é´"); b.Property<Guid?>("CreatorId") .HasMaxLength(36) .HasColumnType("char(36)") .HasColumnName("CreatorId") .HasComment("å建人ID"); b.Property<string>("CreatorName") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("å建人"); b.Property<string>("DeleteRemark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("å é¤å¤æ³¨"); b.Property<Guid?>("DeleterId") .HasMaxLength(36) .HasColumnType("char(36)") .HasColumnName("DeleterId") .HasComment("å é¤äººID"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime") .HasComment("å 餿¶é´"); b.Property<string>("ExtraField1") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("æ©å±å段1"); b.Property<string>("ExtraField2") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("æ©å±å段2"); b.Property<string>("ExtraField3") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("æ©å±å段3"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties") .HasComment("æ©å±å±æ§"); b.Property<Guid>("Id") .HasColumnType("char(36)"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted") .HasComment("æ¯å¦å é¤"); b.Property<bool?>("IsDisabled") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime") .HasComment("ä¿®æ¹æ¶é´"); b.Property<Guid?>("LastModifierId") .HasMaxLength(36) .HasColumnType("char(36)") .HasColumnName("LastModifierId") .HasComment("ä¿®æ¹äººID"); b.Property<string>("LastModifierName") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ä¿®æ¹äºº"); b.Property<string>("OperationRemark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("æä½å¤æ³¨"); b.Property<string>("Remark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("夿³¨"); b.Property<int>("Sort") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æåº"); b.HasKey("PlaceNo", "ContainerNo"); b.HasIndex("ContainerNo"); b.HasIndex("PlaceNo"); b.ToTable("scms_wmscontainerplaces", (string)null); b.HasComment("容å¨åºä½å ³ç³»è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<string>("ContainerNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æçç¼å·"); b.Property<int>("ContainerStatus") .HasColumnType("int") .HasComment("æçç¶æ"); b.Property<int>("ContainerType") .HasColumnType("int") .HasComment("æçç±»å"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<int?>("ExceptionNumber") .HasColumnType("int") .HasComment("å¼å¸¸æ°é"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<decimal?>("LimitHeight") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("éé«"); b.Property<decimal?>("LimitLength") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("éé¿"); b.Property<decimal?>("LimitWidth") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("é宽"); b.Property<int?>("MaterialNumber") .HasColumnType("int") .HasComment("ç©ææ°é"); b.Property<decimal?>("MaxWeight") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("è½½éä¸é"); b.Property<string>("RedundantField1") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField2") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField3") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); b.Property<string>("Remark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("夿³¨"); b.Property<int>("Sort") .HasColumnType("int") .HasComment("æåº"); b.Property<decimal?>("SpecHeight") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("é«åº¦"); b.Property<decimal?>("SpecLength") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("é¿åº¦"); b.Property<decimal?>("SpecWidth") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)") .HasComment("宽度"); b.HasKey("Id"); b.HasIndex("ContainerNo") .IsUnique(); b.HasIndex("ContainerStatus"); b.HasIndex("ContainerType"); b.ToTable("scms_wmscontainers", (string)null); b.HasComment("æçä¿¡æ¯è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder.WmsInOutStockOrder", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<int>("CompleteNumber") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("宿æ°é"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<int>("DistributeNumber") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("ä¸åæ°é"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("MaterialBatch") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æ¹æ¬¡å·"); b.Property<string>("MaterialModel") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("åå·"); b.Property<string>("MaterialName") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("ç©æåç§°"); b.Property<string>("MaterialNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©æä»¶å·"); b.Property<int>("MaterialNumber") .HasColumnType("int") .HasComment("åæ®æ°é"); b.Property<DateTime?>("OperateTime") .HasColumnType("datetime(6)") .HasComment("æä½æ¶é´"); b.Property<string>("OrderNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("åæ®ç¼å·"); b.Property<int>("OrderStatus") .HasColumnType("int") .HasComment("åæ®ç¶æ"); b.Property<int>("OrderType") .HasColumnType("int") .HasComment("åæ®ç±»å"); b.Property<string>("PlanNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("å ³è计åç¼å·"); b.Property<int>("Priority") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(1) .HasComment("ä¼å 级"); b.Property<string>("Remark") .HasMaxLength(500) .HasColumnType("varchar(500)") .HasComment("夿³¨"); b.Property<int>("Sort") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æåº"); b.Property<int>("StockType") .HasColumnType("int") .HasComment("æä½ç±»åï¼æä¸¾å¼ï¼"); b.HasKey("Id"); b.HasIndex("MaterialBatch"); b.HasIndex("MaterialNo"); b.HasIndex("OperateTime"); b.HasIndex("OrderNo") .IsUnique(); b.HasIndex("PlanNo"); b.ToTable("scms_wmsinoutstockorder", (string)null); b.HasComment("åºå ¥åºåæ®è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail.WmsInOutStockOrderDetail", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<string>("ContainerNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("容å¨ç¼å·"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("MaterialBatch") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©ææ¹æ¬¡"); b.Property<string>("MaterialId") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©æå¯ä¸ç "); b.Property<string>("MaterialModel") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æºå"); b.Property<string>("MaterialName") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("ç©æåç§°"); b.Property<string>("MaterialNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©æä»¶å·"); b.Property<string>("OrderNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("åæ®ç¼å·"); b.Property<int>("OrderType") .HasColumnType("int") .HasComment("åæ®ç±»åï¼æä¸¾å¼ï¼"); b.Property<string>("Remark") .HasMaxLength(500) .HasColumnType("varchar(500)") .HasComment("夿³¨"); b.Property<int>("Sort") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æåº"); b.HasKey("Id"); b.HasIndex("ContainerNo"); b.HasIndex("MaterialId"); b.HasIndex("MaterialNo"); b.HasIndex("OrderNo"); b.HasIndex("OrderNo", "OrderType"); b.ToTable("scms_wmsinoutstockorderdetail", (string)null); b.HasComment("åºå ¥åºåæ®æç»è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord.WmsInOutStockRecord", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<string>("ContainerNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("容å¨ç¼å·"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("MaterialBatch") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©ææ¹æ¬¡"); b.Property<string>("MaterialId") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©æID"); b.Property<string>("MaterialModel") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æºå"); b.Property<string>("MaterialName") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("ç©æåç§°"); b.Property<string>("MaterialNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©æä»¶å·"); b.Property<DateTime?>("OperateTime") .HasColumnType("datetime(6)") .HasComment("æä½æ¶é´"); b.Property<string>("OrderNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("åæ®ç¼å·"); b.Property<string>("Remark") .HasMaxLength(500) .HasColumnType("varchar(500)") .HasComment("夿³¨"); b.Property<int>("Sort") .HasColumnType("int") .HasComment("æåº"); b.Property<string>("SourcePlace") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("èµ·å§åºä½"); b.Property<int>("StockType") .HasColumnType("int") .HasComment("æä½ç±»å"); b.Property<string>("TaskNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ä»»å¡å·"); b.Property<string>("ToPlace") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç®æ åºä½"); b.HasKey("Id"); b.HasIndex("ContainerNo"); b.HasIndex("MaterialId"); b.HasIndex("MaterialNo"); b.HasIndex("OperateTime"); b.HasIndex("OrderNo"); b.HasIndex("StockType"); b.HasIndex("TaskNo"); b.ToTable("scms_wmsinoutstockrecords", (string)null); b.HasComment("åºå ¥åºè®°å½è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialContainer.WmsMaterialContainer", b => { b.Property<string>("MaterialId") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©æID"); b.Property<string>("ContainerNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æçç¼å·"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<Guid>("Id") .HasColumnType("char(36)"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<int>("Sort") .HasColumnType("int"); b.HasKey("MaterialId", "ContainerNo"); b.HasIndex("ContainerNo"); b.HasIndex("MaterialId"); b.ToTable("scms_wmsmaterialcontainer", (string)null); b.HasComment("ç©æå®¹å¨å ³ç³»è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialInfos.WmsMaterialInfo", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<int?>("CheckStatus") .HasColumnType("int") .HasComment("æ£éªç¶æ(0:æªæ£éª,1:æ£éªéè¿,2:æ£éªä¸éè¿)"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("MaterialBatch") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©ææ¹å·"); b.Property<string>("MaterialId") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©æå¯ä¸ç "); b.Property<string>("MaterialModel") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æºå/è§æ ¼"); b.Property<string>("MaterialName") .IsRequired() .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("ç©æåç§°"); b.Property<string>("MaterialNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç©æä»£å·"); b.Property<string>("RedundantField1") .HasMaxLength(255) .HasColumnType("varchar(255)") .HasComment("åä½å段1"); b.Property<string>("RedundantField2") .HasMaxLength(255) .HasColumnType("varchar(255)") .HasComment("åä½å段2"); b.Property<string>("RedundantField3") .HasMaxLength(255) .HasColumnType("varchar(255)") .HasComment("åä½å段3"); b.Property<string>("Remark") .HasMaxLength(500) .HasColumnType("varchar(500)") .HasComment("夿³¨"); b.Property<int>("Sort") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æåº"); b.Property<int?>("StockNumber") .HasColumnType("int") .HasComment("åºåæ°é"); b.Property<string>("SupplierCode") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ä¾åºåç¼å·"); b.HasKey("Id"); b.HasIndex("CheckStatus"); b.HasIndex("MaterialBatch"); b.HasIndex("MaterialId") .IsUnique(); b.HasIndex("MaterialName"); b.HasIndex("MaterialNo") .IsUnique(); b.HasIndex("SupplierCode"); b.ToTable("scms_wmsmaterialinfos", (string)null); b.HasComment("WMSç©æä¿¡æ¯è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("Certification") .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("è¯ä¹¦ç¼å·"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<string>("Factory") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç产工å"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasComment("æ¯å¦ç¦ç¨"); b.Property<int>("IsMainBranch") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æ¯å¦ä¸ºä¸»æ¯ç®¡"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<decimal>("Length") .HasColumnType("decimal(18,2)") .HasComment("é¿åº¦ï¼åä½ï¼mï¼"); b.Property<string>("MaterialModel") .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("åå·"); b.Property<string>("MaterialName") .IsRequired() .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("ç©æåç§°"); b.Property<string>("MaterialNo") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©æç¼ç ï¼å¯ä¸æ è¯ï¼"); b.Property<string>("MaterialQuality") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("æè´¨ï¼å¦ï¼304ä¸éé¢ï¼"); b.Property<int>("MaterialType") .HasColumnType("int") .HasComment("ç©æç±»åï¼æä¸¾å¼ï¼"); b.Property<decimal>("OuterDiameter") .HasColumnType("decimal(18,2)") .HasComment("å¤å¾ï¼åä½ï¼mmï¼"); b.Property<string>("PrimaryUnit") .HasMaxLength(20) .HasColumnType("varchar(20)") .HasComment("主åä½ï¼å¦ï¼kgãmã个ï¼"); b.Property<int>("PurchaseType") .HasColumnType("int") .HasComment("éè´ç±»åï¼æä¸¾å¼ï¼"); b.Property<string>("RedundantField1") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField2") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField3") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); b.Property<string>("Remark") .HasMaxLength(500) .HasColumnType("varchar(500)") .HasComment("夿³¨"); b.Property<int>("Sort") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æåº"); b.Property<string>("Standard") .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼"); b.Property<decimal>("WallThickness") .HasColumnType("decimal(18,2)") .HasComment("å£åï¼åä½ï¼mmï¼"); b.HasKey("Id"); b.HasIndex("MaterialName"); b.HasIndex("MaterialNo") .IsUnique(); b.HasIndex("MaterialType"); b.HasIndex("PurchaseType"); b.ToTable("scms_wmsmaterials", (string)null); b.HasComment("ç©æåºç¡ä¿¡æ¯è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialStocks.WmsMaterialStock", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("AreaCode") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("åºåç¼å·"); b.Property<string>("AreaName") .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("åºåºåç§°"); b.Property<int?>("CheckStatus") .HasColumnType("int") .HasComment("æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿)"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<string>("ContainerNo") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("容å¨ç¼å·"); b.Property<int>("ContainerStatus") .HasColumnType("int") .HasComment("容å¨ç¶æ"); b.Property<int>("ContainerType") .HasColumnType("int") .HasComment("容å¨ç±»å"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<int>("EmptyContainer") .HasColumnType("int") .HasComment("æ¯å¦ç©ºæ(2:å¦,1:æ¯)"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<DateTime?>("InStockTime") .HasColumnType("datetime(6)") .HasComment("å ¥åºæ¶é´"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<int>("IsLock") .HasColumnType("int") .HasComment("æ¯å¦éå®(2:æªéå®,1:å·²éå®)"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("MaterialBatch") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©ææ¹æ¬¡"); b.Property<string>("MaterialId") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©æID"); b.Property<string>("MaterialModel") .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("æºå/è§æ ¼"); b.Property<string>("MaterialName") .IsRequired() .HasMaxLength(128) .HasColumnType("varchar(128)") .HasComment("ç©æåç§°"); b.Property<string>("MaterialNo") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ç©æç¼å·"); b.Property<string>("PlaceNo") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("åºä½ç¼å·"); b.Property<int>("PlaceStatus") .HasColumnType("int") .HasComment("åºä½ç¶æ;"); b.Property<string>("RedundantField1") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField2") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField3") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); b.Property<string>("Remark") .HasMaxLength(500) .HasColumnType("varchar(500)") .HasComment("夿³¨"); b.Property<int>("Sort") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0) .HasComment("æåº"); b.Property<int>("StockNumber") .HasColumnType("int") .HasComment("åºåæ°é"); b.Property<int>("StorageTypeNo") .HasColumnType("int") .HasComment("åºä½ç±»å"); b.Property<string>("SupplierCode") .HasMaxLength(64) .HasColumnType("varchar(64)") .HasComment("ä¾åºåç¼å·"); b.HasKey("Id"); b.HasIndex("AreaCode"); b.HasIndex("ContainerNo"); b.HasIndex("MaterialName"); b.HasIndex("MaterialNo"); b.HasIndex("PlaceNo"); b.HasIndex("MaterialBatch", "SupplierCode"); b.ToTable("scms_wmsmaterialstocks", (string)null); b.HasComment("WMSç©æåºå表"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<int>("Aisle") .HasColumnType("int") .HasComment("å··é"); b.Property<string>("AreaCode") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æå¨åºåº"); b.Property<int>("ColumnNo") .HasColumnType("int") .HasComment("å"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<int>("EmptyContainer") .HasColumnType("int") .HasComment("æ¯å¦ç©ºæ"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<int>("Islock") .HasColumnType("int") .HasComment("æ¯å¦éå®"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<int>("LayerNo") .HasColumnType("int") .HasComment("å±"); b.Property<int>("MaxStockNumber") .HasColumnType("int") .HasComment("æå¤§åºåé"); b.Property<string>("PlaceNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç¼å·"); b.Property<int>("PlaceStatus") .HasColumnType("int") .HasComment("è´§ä½ç¶æ"); b.Property<string>("RedundantField1") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField2") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField3") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); b.Property<string>("Remark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("夿³¨"); b.Property<int>("RowNo") .HasColumnType("int") .HasComment("æ"); b.Property<int>("Sort") .HasColumnType("int") .HasComment("æåº"); b.Property<int>("StorageTypeNo") .HasColumnType("int") .HasComment("è´§ä½ç±»å"); b.HasKey("Id"); b.HasIndex("AreaCode"); b.HasIndex("PlaceNo") .IsUnique(); b.HasIndex("PlaceStatus"); b.HasIndex("StorageTypeNo"); b.ToTable("scms_wmsplaces", (string)null); b.HasComment("åºä½è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("RedundantField1") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField2") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); b.Property<string>("RedundantField3") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); b.Property<string>("Remark") .HasMaxLength(256) .HasColumnType("varchar(256)") .HasComment("夿³¨"); b.Property<int>("Sort") .HasColumnType("int") .HasComment("æåº"); b.Property<string>("StoreCode") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ä»åºä»£ç "); b.Property<string>("StoreName") .HasMaxLength(100) .HasColumnType("varchar(100)") .HasComment("ä»åºåç§°"); b.HasKey("Id"); b.HasIndex("StoreName"); b.ToTable("scms_wmsstores", (string)null); b.HasComment("ä»åºä¿¡æ¯è¡¨"); }); modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsTask.WmsTask", b => { b.Property<Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property<int?>("Aisle") .HasColumnType("int") .HasComment("å··é"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("varchar(40)") .HasColumnName("ConcurrencyStamp"); b.Property<string>("ContainerNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æçç¼å·"); b.Property<DateTime>("CreationTime") .HasColumnType("datetime(6)") .HasColumnName("CreationTime"); b.Property<Guid?>("CreatorId") .HasColumnType("char(36)") .HasColumnName("CreatorId"); b.Property<Guid?>("DeleterId") .HasColumnType("char(36)") .HasColumnName("DeleterId"); b.Property<DateTime?>("DeletionTime") .HasColumnType("datetime(6)") .HasColumnName("DeletionTime"); b.Property<int?>("DodeviceId") .HasColumnType("int") .HasComment("å åæºID"); b.Property<int>("Dodevicetype") .HasColumnType("int") .HasComment("设å¤ç±»å"); b.Property<string>("ExtraProperties") .HasColumnType("longtext") .HasColumnName("ExtraProperties"); b.Property<bool>("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("IsDeleted"); b.Property<bool?>("IsDisabled") .HasColumnType("tinyint(1)") .HasComment("æ¯å¦ç¦ç¨"); b.Property<int?>("IsNextTask") .HasColumnType("int") .HasComment("ä¸ä¸ªä»»å¡æ¯å¦çææå"); b.Property<bool>("IsRead") .HasColumnType("tinyint(1)") .HasComment("WCSæ¯å¦å¯ä»¥è¯»å"); b.Property<DateTime?>("LastModificationTime") .HasColumnType("datetime(6)") .HasColumnName("LastModificationTime"); b.Property<Guid?>("LastModifierId") .HasColumnType("char(36)") .HasColumnName("LastModifierId"); b.Property<string>("MutableParam1") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("å¯ååé1"); b.Property<string>("MutableParam2") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("å¯ååé2"); b.Property<string>("MutableParam3") .HasMaxLength(200) .HasColumnType("varchar(200)") .HasComment("å¯ååé3"); b.Property<int?>("SonTaskType") .HasColumnType("int") .HasComment("åä»»å¡ç±»å"); b.Property<int>("Sort") .HasColumnType("int") .HasComment("æåº"); b.Property<string>("SourceOrderNo") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("æ¥æºåæ®å·"); b.Property<string>("SourcePlace") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("èµ·å§åºä½"); b.Property<int>("TaskDodeviceStatus") .HasColumnType("int") .HasComment("设å¤ä»»å¡ç¶æ"); b.Property<int>("TaskLevel") .HasColumnType("int") .HasComment("ä»»å¡ç级"); b.Property<string>("TaskNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ä»»å¡å·"); b.Property<int>("TaskStatus") .HasColumnType("int") .HasComment("ä»»å¡ç¶æ"); b.Property<int>("TaskType") .HasColumnType("int") .HasComment("ä»»å¡ç±»å"); b.Property<string>("ToPlace") .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("ç®æ åºä½"); b.HasKey("Id"); b.HasIndex("ContainerNo"); b.HasIndex("DodeviceId"); b.HasIndex("IsRead"); b.HasIndex("Sort"); b.HasIndex("SourceOrderNo"); b.HasIndex("SourcePlace"); b.HasIndex("TaskNo") .IsUnique(); b.HasIndex("TaskStatus"); b.HasIndex("TaskType"); b.HasIndex("ToPlace"); b.ToTable("scms_wmstasks", (string)null); b.HasComment("ä»»å¡è¡¨"); }); #pragma warning restore 612, 618 } } } HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace CMS.Plugin.HIAWms.MySQL.Migrations { public partial class InitialCreate14 : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn<string>( name: "OrderNo", table: "scms_wmsinoutstockrecords", type: "varchar(50)", maxLength: 50, nullable: true, comment: "åæ®ç¼å·", oldClrType: typeof(string), oldType: "varchar(50)", oldMaxLength: 50, oldComment: "åæ®ç¼å·") .Annotation("MySql:CharSet", "utf8mb4") .OldAnnotation("MySql:CharSet", "utf8mb4"); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.UpdateData( table: "scms_wmsinoutstockrecords", keyColumn: "OrderNo", keyValue: null, column: "OrderNo", value: ""); migrationBuilder.AlterColumn<string>( name: "OrderNo", table: "scms_wmsinoutstockrecords", type: "varchar(50)", maxLength: 50, nullable: false, comment: "åæ®ç¼å·", oldClrType: typeof(string), oldType: "varchar(50)", oldMaxLength: 50, oldNullable: true, oldComment: "åæ®ç¼å·") .Annotation("MySql:CharSet", "utf8mb4") .OldAnnotation("MySql:CharSet", "utf8mb4"); } } } HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -775,7 +775,6 @@ .HasComment("æä½æ¶é´"); b.Property<string>("OrderNo") .IsRequired() .HasMaxLength(50) .HasColumnType("varchar(50)") .HasComment("åæ®ç¼å·"); HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
@@ -1,5 +1,5 @@ cd ../ dotnet ef migrations add InitialCreate13 -c CMSPluginDbContext -o Migrations dotnet ef migrations add InitialCreate14 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; using CMS.Plugin.HIAWms.Application.Contracts.Services; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CMS.Plugin.HIAWms.Controller { /// <summary> /// åºåºæå¡ /// </summary> [ApiController] [TypeFilter(typeof(CMSLanguageFilter))] [TypeFilter(typeof(CMSUowActionFilter))] [TypeFilter(typeof(CMSAuditActionFilter))] [TypeFilter(typeof(CMSExceptionFilter))] [Route("api/v{version:apiVersion}/HIAWms/[controller]")] public class WmsOutStockController : ControllerBase { private readonly IWmsOutStockAppService _wmsOutStockAppService; public WmsOutStockController(IWmsOutStockAppService wmsOutStockAppService) { _wmsOutStockAppService = wmsOutStockAppService; } /// <summary> /// 嫿 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [Route("CallMaterial")] public async Task CallMaterialAsync(List<CallMaterialInput> input) { await _wmsOutStockAppService.CallMaterialAsync(input); } } } HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
@@ -192,7 +192,7 @@ /// <returns></returns> [HttpPost] [Route("FinishTask")] public async Task FinishTaskAsync(WmsTaskUpdateDto input) public async Task FinishTaskAsync(WmsTaskStatusDto input) { await _wmsTaskAppService.FinishTaskAsync(input); } @@ -204,7 +204,7 @@ /// <returns></returns> [HttpPost] [Route("CancelTask")] public async Task CancelTaskAsync(WmsTaskUpdateDto input) public async Task CancelTaskAsync(WmsTaskStatusDto input) { await _wmsTaskAppService.CancelTaskAysnc(input); }