Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using CmsQueryExtensions; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CmsQueryExtensions; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CmsQueryExtensions; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using System.Text.Json; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using Volo.Abp.Uow; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using NPOI.POIFS.Storage; |
| | | using System.Text.Json; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Compile Remove="Util\EnumHelper.cs" /> |
| | | <Compile Remove="Util\ExportHelper.cs" /> |
| | | <Compile Remove="Util\GetEnumDescriptionUtil.cs" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="6.0.20" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Folder Include="Util\" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
| | |
| | | public enum YesNoEnum |
| | | { |
| | | /// <summary> |
| | | /// å¦ |
| | | /// </summary> |
| | | [Description("å¦")] |
| | | N = 0, |
| | | |
| | | /// <summary> |
| | | /// æ¯ |
| | | /// </summary> |
| | | [Description("æ¯")] |
| | | Y = 1, |
| | | |
| | | /// <summary> |
| | | /// å¦ |
| | | /// </summary> |
| | | [Description("å¦")] |
| | | N = 2 |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public static class ExportHelper |
| | | { |
| | | |
| | | |
| | | // æ¹éè½¬æ¢æ¹æ³ |
| | | public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) |
| | | { |
| | | return list.Select(ConvertToExportData).ToList(); |
| | | } |
| | | |
| | | // éç¨è½¬æ¢æ¹æ³ï¼å
¼å®¹ Func<T, Dictionary<string, object>>ï¼ |
| | | public static Dictionary<string, object> ConvertToExportData<T>(T entity) |
| | | { |
| | |
| | | dict[prop.Name] = FormatValue(value); |
| | | } |
| | | return dict; |
| | | } |
| | | |
| | | // æ¹éè½¬æ¢æ¹æ³ |
| | | public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) |
| | | { |
| | | return list.Select(ConvertToExportData).ToList(); |
| | | } |
| | | |
| | | private static object FormatValue(object value) |
| | |
| | | return value; |
| | | } |
| | | |
| | | private static string GetEnumDescription(Enum value) |
| | | { |
| | | var fieldInfo = value.GetType().GetField(value.ToString()); |
| | | var description = fieldInfo? |
| | | .GetCustomAttributes(typeof(DescriptionAttribute), false) |
| | | .FirstOrDefault() as DescriptionAttribute; |
| | | return description?.Description ?? value.ToString(); |
| | | } |
| | | } |
| | | } |
| | |
| | | }, |
| | | labelPosition: { |
| | | type: String, |
| | | default: 'left', |
| | | default: 'right', |
| | | }, |
| | | formData: { |
| | | type: Object as PropType<{ [key: string]: any }>, |
| | |
| | | import { cloneDeep } from 'lodash' |
| | | |
| | | export const useWmsInOutStockRecordDrawer = (props: any, ctx?: any) => { |
| | | const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>('wmsInOutStockRecordDrawer') |
| | | const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>( |
| | | 'wmsInOutStockRecordDrawer' |
| | | ) |
| | | /** |
| | | * ç¨æ¥å¯¹æ¯çåå§åæ°æ® |
| | | */ |
| | |
| | | EnumName: 'StockTypeEnum', |
| | | }) |
| | | updateFormItemOptions('stockType', stockTypeEnumEnum) |
| | | |
| | | } |
| | | commonQueryEnumForFrom() |
| | | /** |
| | |
| | | */ |
| | | const onOpen = async () => { |
| | | if (current.value) { |
| | | const res = await wmsInOutStockRecordDrawer.getWmsInOutStockRecordDetail(current.value) |
| | | const res = await wmsInOutStockRecordDrawer.getWmsInOutStockRecordDetail( |
| | | current.value |
| | | ) |
| | | |
| | | formData.value = { |
| | | orderNo: res.orderNo, |
| | |
| | | .header { |
| | | margin-bottom: 12px; |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | justify-content: flex-start !important; |
| | | align-items: center; |
| | | } |
| | | } |
| | |
| | | //disabled: disabled, |
| | | placeholder: '请è¾å
¥ä¸ä¸ªä»»å¡æ¯å¦çææå', |
| | | }, |
| | | { |
| | | label: 'WCSæ¯å¦å¯ä»¥è¯»å', |
| | | prop: 'isRead', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请è¾å
¥WCSæ¯å¦å¯ä»¥è¯»å', |
| | | rules: [{required: true, message: 'WCSæ¯å¦å¯ä»¥è¯»åä¸è½ä¸ºç©º', trigger: 'blur' }], |
| | | }, |
| | | // { |
| | | // label: 'WCSæ¯å¦å¯ä»¥è¯»å', |
| | | // prop: 'isRead', |
| | | // el: 'select', |
| | | // //disabled: disabled, |
| | | // placeholder: '请è¾å
¥WCSæ¯å¦å¯ä»¥è¯»å', |
| | | // rules: [{required: true, message: 'WCSæ¯å¦å¯ä»¥è¯»åä¸è½ä¸ºç©º', trigger: 'blur' }], |
| | | // }, |
| | | { |
| | | label: 'å¯ååé1', |
| | | prop: 'mutableParam1', |
| | |
| | | prop: 'taskDodeviceStatus', |
| | | //disabled: disabled, |
| | | placeholder: '请è¾å
¥è®¾å¤ä»»å¡ç¶æ', |
| | | rules: [{required: true, message: '设å¤ä»»å¡ç¶æä¸è½ä¸ºç©º', trigger: 'blur' }], |
| | | rules: [ |
| | | { required: true, message: '设å¤ä»»å¡ç¶æä¸è½ä¸ºç©º', trigger: 'blur' }, |
| | | ], |
| | | }, |
| | | { |
| | | label: 'ä»»å¡ç级', |
| | |
| | | EnumName: 'SonTaskTypeEnum', |
| | | }) |
| | | updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) |
| | | |
| | | } |
| | | commonQueryEnumForFrom() |
| | | /** |
| | |
| | | import { columns } from './Config' |
| | | import TdButton from '@/components/TdButton/TdButton' |
| | | import { vPermission } from '@/libs/Permission/Permission' |
| | | import { |
| | | getWmsEnumData |
| | | } from '@/widgets/WmsTask/Models/Service/WmsTaskDrawer' |
| | | import { getWmsEnumData } from '@/widgets/WmsTask/Models/Service/WmsTaskDrawer' |
| | | import { |
| | | ElInput, |
| | | ElSelect, |
| | |
| | | } = useWmsTask(props, ctx) |
| | | |
| | | //å®ä¹é«çº§æ¥è¯¢å¼ç¨ |
| | | const wmsTaskQueryDrawerRef=ref(null); |
| | | const wmsTaskQueryDrawerRef = ref(null) |
| | | // æ°å¢çæ¥è¯¢æ¡ä»¶ |
| | | const queryForm = ref({ |
| | | searchVal: '', |
| | | str_searchFormInputAttrs:[] |
| | | str_searchFormInputAttrs: [], |
| | | }) |
| | | //å®ä¹æ´ä½æ¨¡ç³æ¥è¯¢çåæ°ç»(注æï¼å¿
须大å°åè·å端çå®ä½ç±»å±æ§åä¸è´ï¼å¦åä¼å¯¼è´å¹é
ä¸å¯¹çé®é¢) |
| | | const _searchFormInputAttrs = ref([ |
| | | 'TaskNo', 'ContainerNo' |
| | | ]); |
| | | const searchFormInputAttrs_Placeholder = ref('请è¾å
¥ä»»å¡ç¼ç /æçç¼ç '); |
| | | |
| | | const _searchFormInputAttrs = ref(['TaskNo', 'ContainerNo']) |
| | | const searchFormInputAttrs_Placeholder = ref('请è¾å
¥ä»»å¡ç¼ç /æçç¼ç ') |
| | | |
| | | // 卿æä¸¾é项 |
| | | const enumOptions = reactive({ |
| | |
| | | label: item.description, |
| | | value: item.value, |
| | | })) |
| | | |
| | | } catch (error) { |
| | | console.error('è·åæä¸¾æ°æ®å¤±è´¥:', error) |
| | | } |
| | |
| | | }) |
| | | |
| | | // å®ä¹ååºå¼æ¥è¯¢æ°æ® |
| | | const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[] }); |
| | | const _curHighQueryData = ref({ |
| | | searchVal: '', |
| | | str_searchFormInputAttrs: [], |
| | | }) |
| | | // æ°ççæ¥è¯¢æ¹æ³ï¼ä¸»é¡µé¢ä¸çæé®ãæ¥è¯¢ãï¼ |
| | | const handleQueryForMain = async () => { |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal |
| | | _curHighQueryData.value.str_searchFormInputAttrs = |
| | | _searchFormInputAttrs.value |
| | | tableRef.value.getList(_curHighQueryData.value) |
| | | } |
| | | // æ°ççæ¥è¯¢æ¹æ³ï¼é«çº§æ¥è¯¢ä¸çæé®ãæ¥è¯¢ãï¼ |
| | | const handleQuery = async (extraParams = {}) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams); |
| | | commonSaveCurHighQueryData(filteredData); |
| | | let filteredData = commonGetHighQueryForm(extraParams) |
| | | commonSaveCurHighQueryData(filteredData) |
| | | tableRef.value.getList(filteredData) |
| | | } |
| | | // æ°ççæ¥è¯¢éç½® |
| | | const resetQuery = () => { |
| | | queryForm.value.searchVal = '' |
| | | queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; |
| | | queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value |
| | | } |
| | | //æ°ççå¯¼åºæ¹æ³ |
| | | const handleExport=()=>{ |
| | | onExport(_curHighQueryData.value); |
| | | onExport(_curHighQueryData.value) |
| | | } |
| | | // æ°ççæ¥è¯¢å¼¹åºæ¡å
³éæ¹æ³ |
| | | const closeQuery = (extraParams={}) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams); |
| | | console.log("closeQueryæ¹æ³"); |
| | | console.log(filteredData); |
| | | commonSaveCurHighQueryData(filteredData); |
| | | let filteredData = commonGetHighQueryForm(extraParams) |
| | | console.log('closeQueryæ¹æ³') |
| | | console.log(filteredData) |
| | | commonSaveCurHighQueryData(filteredData) |
| | | } |
| | | //ä¿åæ¥è¯¢å¼ |
| | | const commonSaveCurHighQueryData=(filteredData={})=>{ |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData } |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal |
| | | _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = |
| | | _searchFormInputAttrs.value |
| | | } |
| | | //è·åé«çº§æ¥è¯¢å¼¹åºæ¡çæ¥è¯¢å¼ |
| | | const commonGetHighQueryForm=(extraParams={})=>{ |
| | |
| | | ) |
| | | //ç»åæ¨¡ç³æ¥è¯¢ |
| | | filteredData.searchVal = queryForm.value.searchVal |
| | | filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; |
| | | return filteredData; |
| | | filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value |
| | | return filteredData |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @returns è¡¨æ ¼ |
| | |
| | | class={styles.formItem} |
| | | /> |
| | | </ElFormItem> |
| | | <IconButton type="primary" icon="search" onClick={handleQueryForMain}> |
| | | <IconButton |
| | | type="primary" |
| | | icon="search" |
| | | onClick={handleQueryForMain} |
| | | > |
| | | æ¥è¯¢ |
| | | </IconButton> |
| | | {/* <IconButton style="" icon="refresh" onClick={resetQuery}> |
| | |
| | | //string strSql = $"SELECT COLUMN_NAME as ColumnName, COLUMN_TYPE as DataType, IS_NULLABLE as IsNullable, CHARACTER_MAXIMUM_LENGTH as DataLength,COLUMN_COMMENT as Description " + |
| | | // $"FROM INFORMATION_SCHEMA.COLUMNS " + |
| | | // $"WHERE TABLE_NAME = '{tableName}'"; |
| | | string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.DATA_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description, " + |
| | | string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.DATA_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description,c.NUMERIC_SCALE as MyPrecision, " + |
| | | $"CASE WHEN kcu.COLUMN_NAME IS NOT NULL THEN 'true' ELSE 'false' END AS IsPrimaryKey " + |
| | | $"FROM INFORMATION_SCHEMA.COLUMNS c " + |
| | | $"LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu " + |
| | |
| | | where ic.object_id=obj.object_id |
| | | and ic.column_id=col.column_id |
| | | ) as IsPrimaryKey, |
| | | col.Precision, |
| | | col.Precision as MyPrecision, |
| | | col.Scale |
| | | from sys.objects obj |
| | | inner join sys.columns col |
| | |
| | | model = new ColumnModel(); |
| | | if (dt.Rows[n]["Precision"].ToString() != "") |
| | | { |
| | | model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString()); |
| | | model.MyPrecision = int.Parse(dt.Rows[n]["Precision"].ToString()); |
| | | } |
| | | if (dt.Rows[n]["Scale"].ToString() != "") |
| | | { |
| | |
| | | /// </summary> |
| | | public bool IsPrimaryKey { get; set; } |
| | | |
| | | public int Precision { get; set; } |
| | | public int? MyPrecision { get; set; } |
| | | |
| | | public int Scale { get; set; } |
| | | } |
| | |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared.Util; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.$EntityName$; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | |
| | | .header { |
| | | margin-bottom: 12px; |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | } |
| | | } |
| | |
| | | model = new ColumnModel(); |
| | | if (dt.Rows[n]["Precision"].ToString() != "") |
| | | { |
| | | model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString()); |
| | | model.MyPrecision = int.Parse(dt.Rows[n]["Precision"].ToString()); |
| | | } |
| | | if (dt.Rows[n]["Scale"].ToString() != "") |
| | | { |
| | |
| | | case DataTypeEnum.dt_decimal: |
| | | case DataTypeEnum.dt_float: |
| | | sql.Append("@" + attrColumnName + " " + columnModel.DataType |
| | | + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); |
| | | + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | case DataTypeEnum.dt_decimal: |
| | | case DataTypeEnum.dt_float: |
| | | sql.Append("@" + attrColumnName + " " + columnModel.DataType |
| | | + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); |
| | | + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | case DataTypeEnum.dt_decimal: |
| | | case DataTypeEnum.dt_float: |
| | | sql.Append("@" + attrColumnName + " " + columnModel.DataType |
| | | + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao); |
| | | + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao); |
| | | break; |
| | | default: |
| | | break; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.ComponentModel; |
| | | |
| | | namespace CmsQueryExtensions |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾å¸®å©ç±». |
| | | /// </summary> |
| | | public static class EnumHelper |
| | | { |
| | | /// <summary> |
| | | /// è·åæä¸¾. |
| | | /// </summary> |
| | | /// <param name="enumName"> </param> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | public static List<EnumItem> GetEnumItems(string enumName) |
| | | { |
| | | // è·åå½åç¨åºéä¸çææç±»å |
| | | var enumType = AppDomain.CurrentDomain.GetAssemblies() |
| | | .SelectMany(a => a.GetTypes()) |
| | | .FirstOrDefault(t => t.Name == enumName && t.IsEnum); |
| | | |
| | | if (enumType == null) |
| | | { |
| | | throw new Exception($"æä¸¾ç±»å {enumName} ä¸åå¨"); |
| | | } |
| | | |
| | | return GetEnumItems(enumType); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæä¸¾ç±»å. |
| | | /// </summary> |
| | | /// <param name="enumType"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | public static List<EnumItem> GetEnumItems(Type enumType) |
| | | { |
| | | if (!enumType.IsEnum) |
| | | { |
| | | throw new Exception("æä¾çç±»å䏿¯æä¸¾ç±»å"); |
| | | } |
| | | |
| | | var result = new List<EnumItem>(); |
| | | var values = Enum.GetValues(enumType); |
| | | |
| | | foreach (var value in values) |
| | | { |
| | | var fieldInfo = enumType.GetField(value.ToString()); |
| | | var description = fieldInfo? |
| | | .GetCustomAttributes(typeof(DescriptionAttribute), false) |
| | | .FirstOrDefault() as DescriptionAttribute; |
| | | |
| | | result.Add(new EnumItem |
| | | { |
| | | Value = (int)value, |
| | | Name = value.ToString(), |
| | | Description = description?.Description ?? value.ToString(), |
| | | }); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æä¸¾æè¿°. |
| | | /// </summary> |
| | | public class EnumItem |
| | | { |
| | | public int Value { get; set; } |
| | | |
| | | public string Name { get; set; } |
| | | |
| | | public string Description { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Reflection; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CmsQueryExtensions |
| | | { |
| | | /// <summary> |
| | | /// 导åºå¸®å©ç±». |
| | | /// </summary> |
| | | public static class ExportHelper |
| | | { |
| | | |
| | | |
| | | // æ¹éè½¬æ¢æ¹æ³ |
| | | public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) |
| | | { |
| | | return list.Select(ConvertToExportData).ToList(); |
| | | } |
| | | |
| | | // éç¨è½¬æ¢æ¹æ³ï¼å
¼å®¹ Func<T, Dictionary<string, object>>ï¼ |
| | | public static Dictionary<string, object> ConvertToExportData<T>(T entity) |
| | | { |
| | | var dict = new Dictionary<string, object>(); |
| | | if (entity == null) return dict; |
| | | |
| | | foreach (var prop in typeof(T).GetProperties()) |
| | | { |
| | | var value = prop.GetValue(entity); |
| | | dict[prop.Name] = FormatValue(value); |
| | | } |
| | | return dict; |
| | | } |
| | | |
| | | private static object FormatValue(object value) |
| | | { |
| | | if (value == null) return string.Empty; |
| | | |
| | | // å¤çæä¸¾ |
| | | if (value is Enum enumValue) |
| | | return GetEnumDescriptionUtil.GetEnumDescription(enumValue); |
| | | |
| | | // å¤çå¸å° |
| | | if (value is bool boolValue) |
| | | return boolValue ? "æ¯" : "å¦"; |
| | | |
| | | return value; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CmsQueryExtensions |
| | | { |
| | | public class GetEnumDescriptionUtil |
| | | { |
| | | /// <summary> |
| | | /// è·åæä¸¾çæè¿° |
| | | /// </summary> |
| | | /// <param name="enumValue"></param> |
| | | /// <returns></returns> |
| | | public static string GetEnumDescription(Enum enumValue) |
| | | { |
| | | string value = enumValue.ToString(); |
| | | if (string.IsNullOrWhiteSpace(value) || value == "0") return ""; |
| | | FieldInfo field = enumValue.GetType().GetField(value); |
| | | object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //è·åæè¿°å±æ§ |
| | | if (objs == null || objs.Length == 0) //å½æè¿°å±æ§æ²¡ææ¶ï¼ç´æ¥è¿ååç§° |
| | | return value; |
| | | DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; |
| | | return descriptionAttribute.Description; |
| | | } |
| | | } |
| | | } |