山东雷驰
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

441 lines
37 KiB

using AutoMapper;
using Kean.Application.Query.ViewModels;
using Kean.Infrastructure.Configuration;
using Kean.Infrastructure.Database.Repository.Default.Entities;
using Kean.Infrastructure.Database.Repository.Default.Entities.Interface;
//using Kean.Infrastructure.Database.Repository.Record.Entities;
using Kean.Infrastructure.Utilities;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
namespace Kean.Application.Query
{
/// <summary>
/// 模型映射配置
/// </summary>
public class AutoMapper : Profile
{
/// <summary>
/// 初始化 Kean.Application.Query.AutoMapper 类的新实例
/// </summary>
public AutoMapper()
{
CreateMap<T_SYS_SECURITY, Blacklist>()
.ForMember(viewmodel => viewmodel.Address, options => options.MapFrom(entity => entity.SECURITY_VALUE))
.ForMember(viewmodel => viewmodel.Timestamp, options => options.MapFrom(entity => entity.SECURITY_TIMESTAMP));
CreateMap<T_SYS_MENU, Menu>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.MENU_ID))
.ForMember(viewmodel => viewmodel.Parent, options => options.MapFrom(entity => entity.MENU_PARENT_ID))
.ForMember(viewmodel => viewmodel.Header, options => options.MapFrom(entity => entity.MENU_HEADER))
.ForMember(viewmodel => viewmodel.Url, options => options.MapFrom(entity => entity.MENU_URL))
.ForMember(viewmodel => viewmodel.Icon, options => options.MapFrom(entity => entity.MENU_ICON));
CreateMap<T_SYS_ROLE, Role>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.ROLE_ID))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.ROLE_NAME))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.ROLE_REMARK));
CreateMap<T_SYS_USER, User>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.USER_ID))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.USER_NAME))
.ForMember(viewmodel => viewmodel.Account, options => options.MapFrom(entity => entity.USER_ACCOUNT))
.ForMember(viewmodel => viewmodel.Avatar, options => options.MapFrom(entity => entity.USER_AVATAR));
CreateMap<dynamic, Message>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom((entity, _) => entity.MESSAGE_ID))
.ForMember(viewmodel => viewmodel.Time, options => options.MapFrom((entity, _) => entity.MESSAGE_TIME))
.ForMember(viewmodel => viewmodel.Subject, options => options.MapFrom((entity, _) => entity.MESSAGE_SUBJECT))
.ForMember(viewmodel => viewmodel.Content, options => options.MapFrom((entity, _) => entity.MESSAGE_CONTENT))
.ForMember(viewmodel => viewmodel.Flag, options => options.MapFrom((entity, _) => entity.MESSAGE_FLAG))
.ForMember(viewmodel => viewmodel.Source, options => options.MapFrom((entity, _) => new User { Id = entity.USER_ID, Name = entity.USER_NAME, Avatar = entity.USER_AVATAR }));
CreateMap<T_WH_WAREHOUSE, Warehouse>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.WAREHOUSE_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.WAREHOUSE_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.WAREHOUSE_NAME))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.WAREHOUSE_REMARK));
CreateMap<T_WH_AREA, Area>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.AREA_ID))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.AREA_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.AREA_NAME))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.AREA_TYPE))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.AREA_REMARK));
CreateMap<T_WH_CELL, Cell>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.CELL_ID))
.ForMember(viewmodel => viewmodel.Area, options => options.MapFrom(entity => entity.AREA_ID))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_ID))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.CELL_GROUP))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.CELL_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.CELL_NAME))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.CELL_TYPE))
.ForMember(viewmodel => viewmodel.AllowIn, options => options.MapFrom(entity => entity.CELL_IN))
.ForMember(viewmodel => viewmodel.AllowOut, options => options.MapFrom(entity => entity.CELL_OUT))
.ForMember(viewmodel => viewmodel.Row, options => options.MapFrom(entity => entity.CELL_Z))
.ForMember(viewmodel => viewmodel.Column, options => options.MapFrom(entity => entity.CELL_X))
.ForMember(viewmodel => viewmodel.Tier, options => options.MapFrom(entity => entity.CELL_Y))
.ForMember(viewmodel => viewmodel.Store, options => options.MapFrom(entity => entity.CELL_STATUS))
.ForMember(viewmodel => viewmodel.Task, options => options.MapFrom(entity => entity.RUN_STATUS))
.ForMember(viewmodel => viewmodel.CellTag, options => options.MapFrom(entity => entity.CELL_TAG))
.ForMember(viewmodel => viewmodel.Visual, options => options.MapFrom(entity => entity.CELL_VISUAL));
CreateMap<T_GOODS_MAIN, Material>()
.IncludeBase<Infrastructure.Database.Repository.Default.Entities.Abstract.T_GOODS_MAIN, MaterialProperty>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.GOODS_ID))
.ForMember(viewmodel => viewmodel.Category, options => options.MapFrom(entity => entity.CLASS_ID))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.GOODS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.GOODS_NAME));
CreateMap<T_GOODS_CLASS, Category>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.CLASS_ID))
.ForMember(viewmodel => viewmodel.Parent, options => options.MapFrom(entity => entity.CLASS_PARENT_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.CLASS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.CLASS_NAME));
CreateMap<V_GOODS_SAFETY, Safety>()
.IncludeBase<Infrastructure.Database.Repository.Default.Entities.Abstract.T_GOODS_MAIN, MaterialProperty>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.SAFETY_ID))
.ForMember(viewmodel => viewmodel.Material, options => options.MapFrom(entity => entity.GOODS_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.GOODS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.GOODS_NAME))
.ForMember(viewmodel => viewmodel.Category, options => options.MapFrom(entity => entity.CLASS_ID))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_ID))
.ForMember(viewmodel => viewmodel.LowerLimit, options => options.MapFrom(entity => entity.LOWER_LIMIT))
.ForMember(viewmodel => viewmodel.UpperLimit, options => options.MapFrom(entity => entity.UPPER_LIMIT));
CreateMap<T_PLAN_TYPE, Ordtyp>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.TYPE_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.TYPE_NAME))
.ForMember(viewmodel => viewmodel.No, options => options.MapFrom(entity => entity.TYPE_NO))
.ForMember(viewmodel => viewmodel.Menu, options => options.MapFrom(entity => entity.MENU_ID));
CreateMap<T_PLAN_FLOW, Flow>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.FLOW_ID))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.FLOW_NAME));
CreateMap<T_PLAN_FLOW_NODE, Flow.Node>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.NODE_ID))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.NODE_NAME))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.NODE_TYPE))
.ForMember(viewmodel => viewmodel.Enter, options => options.MapFrom(entity => entity.NODE_ENTER))
.ForMember(viewmodel => viewmodel.Alive, options => options.MapFrom(entity => entity.NODE_ALIVE))
.ForMember(viewmodel => viewmodel.Detail, options => options.MapFrom(entity => JsonHelper.Deserialize<IDictionary<int, string[][]>>(entity.NODE_DETAIL)))
.ForMember(viewmodel => viewmodel.Design, options => options.MapFrom(entity => JsonHelper.Deserialize<Point>(entity.NODE_DESIGN)));
CreateMap<T_PLAN_FLOW_PATH, Flow.Path>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.PATH_ID))
.ForMember(viewmodel => viewmodel.Source, options => options.MapFrom(entity => entity.PATH_SOURCE))
.ForMember(viewmodel => viewmodel.Target, options => options.MapFrom(entity => entity.PATH_TARGET))
.ForMember(viewmodel => viewmodel.Anchors, options => options.MapFrom(entity => JsonHelper.Deserialize<string[]>(entity.PATH_ANCHORS)))
.ForMember(viewmodel => viewmodel.Label, options => options.MapFrom(entity => entity.PATH_LABEL));
CreateMap<T_PLAN_MAIN, Order>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.PLAN_ID))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.PLAN_TYPE))
.ForMember(viewmodel => viewmodel.Flow, options => options.MapFrom(entity => entity.PLAN_FLOW))
.ForMember(viewmodel => viewmodel.Node, options => options.MapFrom(entity => entity.PLAN_NODE))
.ForMember(viewmodel => viewmodel.No, options => options.MapFrom(entity => entity.PLAN_CODE))
.ForMember(viewmodel => viewmodel.Creater, options => options.MapFrom(entity => entity.PLAN_CREATER))
.ForMember(viewmodel => viewmodel.CreateTime, options => options.MapFrom(entity => entity.PLAN_CREATE_TIME))
.ForMember(viewmodel => viewmodel.BeginTime, options => options.MapFrom(entity => entity.PLAN_BEGIN_TIME))
.ForMember(viewmodel => viewmodel.EndTime, options => options.MapFrom(entity => entity.PLAN_END_TIME));
CreateMap<V_PLAN_LIST, Order>()
.IncludeBase<Infrastructure.Database.Repository.Default.Entities.Abstract.V_GOODS_PROPERTY, MaterialProperty>()
.ForMember(viewmodel => viewmodel.Line, options => options.MapFrom(entity => entity.PLAN_LIST_ID))
.ForMember(viewmodel => viewmodel.Material, options => options.MapFrom(entity => entity.GOODS_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.GOODS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.GOODS_NAME))
.ForMember(viewmodel => viewmodel.Category, options => options.MapFrom(entity => entity.CLASS_NAME))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Quantity, options => options.MapFrom(entity => entity.PLANNED_QUANTITY))
.ForMember(viewmodel => viewmodel.Executing, options => options.MapFrom(entity => entity.ORDERED_QUANTITY))
.ForMember(viewmodel => viewmodel.Finished, options => options.MapFrom(entity => entity.FINISHED_QUANTITY))
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.PLAN_ID))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.PLAN_TYPE))
.ForMember(viewmodel => viewmodel.Flow, options => options.MapFrom(entity => entity.PLAN_FLOW))
.ForMember(viewmodel => viewmodel.Node, options => options.MapFrom(entity => entity.PLAN_NODE))
.ForMember(viewmodel => viewmodel.No, options => options.MapFrom(entity => entity.PLAN_CODE))
.ForMember(viewmodel => viewmodel.Creater, options => options.MapFrom(entity => entity.PLAN_CREATER))
.ForMember(viewmodel => viewmodel.CreateTime, options => options.MapFrom(entity => entity.PLAN_CREATE_TIME))
.ForMember(viewmodel => viewmodel.BeginTime, options => options.MapFrom(entity => entity.PLAN_BEGIN_TIME))
.ForMember(viewmodel => viewmodel.EndTime, options => options.MapFrom(entity => entity.PLAN_END_TIME));
CreateMap<V_STORAGE_LIST, Stock>()
.IncludeBase<Infrastructure.Database.Repository.Default.Entities.Abstract.V_GOODS_PROPERTY, MaterialProperty>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.STORAGE_LIST_ID))
.ForMember(viewmodel => viewmodel.Material, options => options.MapFrom(entity => entity.GOODS_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.GOODS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.GOODS_NAME))
.ForMember(viewmodel => viewmodel.Category, options => options.MapFrom(entity => entity.CLASS_NAME))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Quantity, options => options.MapFrom(entity => entity.STORAGE_LIST_QUANTITY))
.ForMember(viewmodel => viewmodel.InboundTime, options => options.MapFrom(entity => entity.INBOUND_TIME))
.ForMember(viewmodel => viewmodel.InventoryTime, options => options.MapFrom(entity => entity.INVENTORY_TIME))
.ForMember(viewmodel => viewmodel.InventoryAge, options => options.MapFrom(entity => entity.INVENTORY_AGE))
.ForMember(viewmodel => viewmodel.MaterialAge, options => options.MapFrom(entity => entity.GOODS_AGE))
.ForMember(viewmodel => viewmodel.MaterialAgeStatus, options => options.MapFrom(entity => entity.GOODS_AGE_STATUS))
.ForMember(viewmodel => viewmodel.AgeStatus, options => options.MapFrom(entity => entity.AGE_STATUS))
.ForMember(viewmodel => viewmodel.TransQty, options => options.MapFrom(entity => entity.TransQty))
.ForMember(viewmodel => viewmodel.TransUnit, options => options.MapFrom(entity => entity.TransUnit))
.ForMember(viewmodel => viewmodel.Barcode, options => options.MapFrom(entity => entity.STOCK_BARCODE))
.ForMember(viewmodel => viewmodel.Full, options => options.MapFrom(entity => entity.FULL_FLAG))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_NAME))
.ForMember(viewmodel => viewmodel.Area, options => options.MapFrom(entity => entity.AREA_NAME))
.ForMember(viewmodel => viewmodel.Cell, options => options.MapFrom(entity => entity.CELL_NAME))
.ForMember(viewmodel => viewmodel.Position, options => options.MapFrom(entity => entity.CELL_TYPE))
.ForMember(viewmodel => viewmodel.Enabled, options => options.MapFrom(entity => entity.STORAGE_LIST_FLAG))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.STORAGE_LIST_REMARK))
.ForMember(viewmodel => viewmodel.ExpirationOverflow, options => options.MapFrom(entity => entity.GOODS_EXP_OVERFLOW))
.ForMember(viewmodel => viewmodel.MinimumStockTimeSpan, options => options.MapFrom(entity => entity.MIN_STORAGE_TIME_OVERFLOW))
.ForMember(viewmodel => viewmodel.MaximumStockTimeSpan, options => options.MapFrom(entity => entity.MAX_STORAGE_TIME_OVERFLOW))
.ForMember(viewmodel => viewmodel.Laneway, options => options.MapFrom(entity => entity.CELL_LANEWAY))
.ForMember(viewmodel => viewmodel.Overdue, options => options.MapFrom(entity => entity.OVERDUE_TIME));
CreateMap<V_STORAGE_SAFETY, Safety>()
.IncludeBase<Infrastructure.Database.Repository.Default.Entities.Abstract.T_GOODS_MAIN, MaterialProperty>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.SAFETY_ID))
.ForMember(viewmodel => viewmodel.Material, options => options.MapFrom(entity => entity.GOODS_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.GOODS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.GOODS_NAME))
.ForMember(viewmodel => viewmodel.Category, options => options.MapFrom(entity => entity.CLASS_ID))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_ID))
.ForMember(viewmodel => viewmodel.LowerLimit, options => options.MapFrom(entity => entity.LOWER_LIMIT))
.ForMember(viewmodel => viewmodel.UpperLimit, options => options.MapFrom(entity => entity.UPPER_LIMIT))
.ForMember(viewmodel => viewmodel.Quantity, options => options.MapFrom(entity => entity.STORAGE_QUANTITY));
CreateMap<V_RECORD_LIST, Record>()
.IncludeBase<Infrastructure.Database.Repository.Default.Entities.Abstract.V_GOODS_PROPERTY, MaterialProperty>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.RECORD_LIST_ID))
.ForMember(viewmodel => viewmodel.Material, options => options.MapFrom(entity => entity.GOODS_ID))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.GOODS_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.GOODS_NAME))
.ForMember(viewmodel => viewmodel.Category, options => options.MapFrom(entity => entity.CLASS_NAME))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.TYPE_ID))
.ForMember(viewmodel => viewmodel.Quantity, options => options.MapFrom(entity => entity.RECORD_LIST_QUANTITY))
.ForMember(viewmodel => viewmodel.InboundTime, options => options.MapFrom(entity => entity.INBOUND_TIME))
.ForMember(viewmodel => viewmodel.InventoryAge, options => options.MapFrom(entity => entity.INVENTORY_AGE))
.ForMember(viewmodel => viewmodel.MaterialAge, options => options.MapFrom(entity => entity.GOODS_AGE))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.RECORD_LIST_REMARK))
.ForMember(viewmodel => viewmodel.Transaction, options => options.MapFrom(entity => entity.RECORD_TYPE))
.ForMember(viewmodel => viewmodel.Tag, options => options.MapFrom(entity => entity.RECORD_TAG))
.ForMember(viewmodel => viewmodel.Barcode, options => options.MapFrom(entity => entity.STOCK_BARCODE))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_NAME))
.ForMember(viewmodel => viewmodel.Original, options => options.MapFrom(entity => entity.START_CELL_NAME))
.ForMember(viewmodel => viewmodel.Destination, options => options.MapFrom(entity => entity.END_CELL_NAME))
.ForMember(viewmodel => viewmodel.BeginTime, options => options.MapFrom(entity => entity.BEGIN_TIME))
.ForMember(viewmodel => viewmodel.EndTime, options => options.MapFrom(entity => entity.END_TIME))
.ForMember(viewmodel => viewmodel.Operator, options => options.MapFrom(entity => entity.USER_NAME))
.ForMember(viewmodel => viewmodel.Enabled, options => options.MapFrom(entity => entity.STORAGE_LIST_FLAG))
.ForMember(viewmodel => viewmodel.TransQty, options => options.MapFrom(entity => entity.TransQty))
.ForMember(viewmodel => viewmodel.TransUnit, options => options.MapFrom(entity => entity.TransUnit))
.ForMember(viewmodel => viewmodel.SlTarget, options => options.MapFrom(entity => entity.SlTarget))
.ForMember(viewmodel => viewmodel.OrderInfo, options => options.MapFrom(entity => entity.OrderInfo))
.ForMember(viewmodel => viewmodel.Account, options => options.MapFrom(entity => entity.USER_ACCOUNT));
CreateMap<V_MANAGE_MAIN, Task>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.MANAGE_ID))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.MANAGE_TYPE))
.ForMember(viewmodel => viewmodel.Tag, options => options.MapFrom(entity => entity.MANAGE_TAG))
.ForMember(viewmodel => viewmodel.State, options => options.MapFrom(entity => entity.MANAGE_STATUS))
.ForMember(viewmodel => viewmodel.Barcode, options => options.MapFrom(entity => entity.STOCK_BARCODE))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_NAME))
.ForMember(viewmodel => viewmodel.Original, options => options.MapFrom(entity => entity.START_CELL_NAME))
.ForMember(viewmodel => viewmodel.Destination, options => options.MapFrom(entity => entity.END_CELL_NAME))
.ForMember(viewmodel => viewmodel.Time, options => options.MapFrom(entity => entity.BEGIN_TIME))
.ForMember(viewmodel => viewmodel.Priority, options => options.MapFrom(entity => entity.PRIORITY))
.ForMember(viewmodel => viewmodel.Operator, options => options.MapFrom(entity => entity.USER_NAME))
.ForMember(viewmodel => viewmodel.Account, options => options.MapFrom(entity => entity.USER_ACCOUNT))
.ForMember(viewmodel => viewmodel.Previous, options => options.MapFrom(entity => entity.PREVIOUS_ID))
.ForMember(viewmodel => viewmodel.GoodsName, options => options.MapFrom(entity => entity.GOODS_NAME))
.ForMember(viewmodel => viewmodel.QualityState, options => options.MapFrom(entity => entity.GOODS_QC_STATE))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.MANAGE_REMARK));
CreateMap<V_IO_CONTROL, Instruction>()
.ForMember(viewmodel => viewmodel.Direction, options => options.MapFrom(entity => entity.CONTROL_DIRECTION))
.ForMember(viewmodel => viewmodel.Function, options => options.MapFrom(entity => entity.CONTROL_FUNCTION))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.CONTROL_WAREHOUSE))
.ForMember(viewmodel => viewmodel.Device, options => options.MapFrom(entity => entity.CONTROL_DEVICE))
.ForMember(viewmodel => viewmodel.Barcode, options => options.MapFrom(entity => entity.STOCK_BARCODE))
.ForMember(viewmodel => viewmodel.Parameter, options => options.MapFrom(entity => entity.CONTROL_PARAMETER))
.ForMember(viewmodel => viewmodel.BeginTime, options => options.MapFrom(entity => entity.BEGIN_TIME))
.ForMember(viewmodel => viewmodel.EndTime, options => options.MapFrom(entity => entity.END_TIME))
.ForMember(viewmodel => viewmodel.State, options => options.MapFrom(entity => entity.CONTROL_STATUS))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.CONTROL_REMARK));
CreateMap<IO_STATION_MODEL, EmergencyStation>()
.ForMember(viewmodel => viewmodel.StationCode, options => options.MapFrom(entity => entity.STATION_CODE))
.ForMember(viewmodel => viewmodel.StationModel, options => options.MapFrom(entity => entity.STATION_MODEL))
.ForMember(viewmodel => viewmodel.StationStatus, options => options.MapFrom(entity => entity.STATION_STATUS))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.REMARK))
.ForMember(viewmodel => viewmodel.Inout, options => options.MapFrom(entity => entity.INOUT));
CreateMap<T_INTERFACE_RECORD, InterfaceRecord>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.ID))
.ForMember(viewmodel => viewmodel.Direction, options => options.MapFrom(entity => entity.DIRECTION))
.ForMember(viewmodel => viewmodel.Method, options => options.MapFrom(entity => entity.METHOD))
.ForMember(viewmodel => viewmodel.Barcode, options => options.MapFrom(entity => entity.BARCODE))
.ForMember(viewmodel => viewmodel.StartTime, options => options.MapFrom(entity => entity.START_TIME))
.ForMember(viewmodel => viewmodel.EndTime, options => options.MapFrom(entity => entity.END_TIME))
.ForMember(viewmodel => viewmodel.ParamIn, options => options.MapFrom(entity => entity.PARAM_IN))
.ForMember(viewmodel => viewmodel.ParamOut, options => options.MapFrom(entity => entity.PARAM_OUT))
.ForMember(viewmodel => viewmodel.Result, options => options.MapFrom(entity => entity.RESULT))
.ForMember(viewmodel => viewmodel.CreateTime, options => options.MapFrom(entity => entity.CREATE_TIME))
.ForMember(viewmodel => viewmodel.RequestNo, options => options.MapFrom(entity => entity.REQUEST_NO));
CreateMap<T_ERROR_FEEDBACK, ErrFeedback>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.ID))
.ForMember(viewmodel => viewmodel.Method, options => options.MapFrom(entity => entity.METHOD))
.ForMember(viewmodel => viewmodel.Barcode, options => options.MapFrom(entity => entity.BARCODE))
.ForMember(viewmodel => viewmodel.StartTime, options => options.MapFrom(entity => entity.START_TIME))
.ForMember(viewmodel => viewmodel.LastEndTime, options => options.MapFrom(entity => entity.LAST_END_TIME))
.ForMember(viewmodel => viewmodel.ParamIn, options => options.MapFrom(entity => entity.PARAM_IN))
.ForMember(viewmodel => viewmodel.LastParamOut, options => options.MapFrom(entity => entity.LAST_PARAM_OUT))
.ForMember(viewmodel => viewmodel.Result, options => options.MapFrom(entity => entity.RESULT))
.ForMember(viewmodel => viewmodel.CreateTime, options => options.MapFrom(entity => entity.CREATE_TIME))
.ForMember(viewmodel => viewmodel.RequestNoType, options => options.MapFrom(entity => entity.REQUEST_NO_TYPE))
.ForMember(viewmodel => viewmodel.FeedbackStatus, options => options.MapFrom(entity => entity.FEEDBACK_STATUS))
.ForMember(viewmodel => viewmodel.RequestNo, options => options.MapFrom(entity => entity.REQUEST_NO));
CreateMap<V_API_RECORD, ApiRecord>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.ID))
.ForMember(viewmodel => viewmodel.UserName, options => options.MapFrom(entity => entity.USER_NAME))
.ForMember(viewmodel => viewmodel.Method, options => options.MapFrom(entity => entity.METHOD))
.ForMember(viewmodel => viewmodel.ControllerName, options => options.MapFrom(entity => entity.CONTROLLER_NAME))
.ForMember(viewmodel => viewmodel.RequestBody, options => options.MapFrom(entity => entity.REQUEST_BODY))
.ForMember(viewmodel => viewmodel.RequestTime, options => options.MapFrom(entity => entity.REQUEST_TIME))
.ForMember(viewmodel => viewmodel.ResponseBody, options => options.MapFrom(entity => entity.RESPONSE_BODY))
.ForMember(viewmodel => viewmodel.ResponseTime, options => options.MapFrom(entity => entity.RESPONSE_TIME));
CreateMap<V_WH_CELL, Cell>()
.ForMember(viewmodel => viewmodel.Id, options => options.MapFrom(entity => entity.CELL_ID))
.ForMember(viewmodel => viewmodel.Area, options => options.MapFrom(entity => entity.AREA_ID))
.ForMember(viewmodel => viewmodel.Warehouse, options => options.MapFrom(entity => entity.WAREHOUSE_ID))
.ForMember(viewmodel => viewmodel.Group, options => options.MapFrom(entity => entity.CELL_GROUP))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.CELL_CODE))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.CELL_NAME))
.ForMember(viewmodel => viewmodel.Type, options => options.MapFrom(entity => entity.CELL_TYPE))
.ForMember(viewmodel => viewmodel.AllowIn, options => options.MapFrom(entity => entity.CELL_IN))
.ForMember(viewmodel => viewmodel.AllowOut, options => options.MapFrom(entity => entity.CELL_OUT))
.ForMember(viewmodel => viewmodel.Row, options => options.MapFrom(entity => entity.CELL_Z))
.ForMember(viewmodel => viewmodel.Column, options => options.MapFrom(entity => entity.CELL_X))
.ForMember(viewmodel => viewmodel.Tier, options => options.MapFrom(entity => entity.CELL_Y))
.ForMember(viewmodel => viewmodel.Store, options => options.MapFrom(entity => entity.CELL_STATUS))
.ForMember(viewmodel => viewmodel.Task, options => options.MapFrom(entity => entity.RUN_STATUS))
.ForMember(viewmodel => viewmodel.Visual, options => options.MapFrom(entity => entity.CELL_VISUAL))
.ForMember(viewmodel => viewmodel.Laneway, options => options.MapFrom(entity => entity.CELL_LANEWAY))
.ForMember(viewmodel => viewmodel.CellTag, options => options.MapFrom(entity => entity.CELL_TAG))
.ForMember(viewmodel => viewmodel.GoodsAgeStatus, options => options.MapFrom(entity => entity.GOODS_AGE_STATUS));
CreateMap<V_SYS_ITEM_LIST, Item>()
.ForMember(viewmodel => viewmodel.ItemId, options => options.MapFrom(entity => entity.ITEM_ID))
.ForMember(viewmodel => viewmodel.ItemListId, options => options.MapFrom(entity => entity.ITEM_LIST_ID))
.ForMember(viewmodel => viewmodel.ItemName, options => options.MapFrom(entity => entity.ITEM_NAME))
.ForMember(viewmodel => viewmodel.ItemCode, options => options.MapFrom(entity => entity.ITEM_CODE))
.ForMember(viewmodel => viewmodel.Code, options => options.MapFrom(entity => entity.ITEM_LIST_CODE))
.ForMember(viewmodel => viewmodel.Remark, options => options.MapFrom(entity => entity.ITEM_LIST_REMARK))
.ForMember(viewmodel => viewmodel.Name, options => options.MapFrom(entity => entity.ITEM_LIST_NAME));
}
}
/// <summary>
/// AutoMapper 扩展方法
/// </summary>
internal static class AutoMapperExtension
{
/// <summary>
/// 获取映射表达式
/// </summary>
/// <typeparam name="TSource">源类型</typeparam>
/// <typeparam name="TDestination">目标类型</typeparam>
/// <param name="mapper">映射</param>
/// <param name="property">属性</param>
/// <returns>Lambda 表达式</returns>
internal static Expression<Func<TSource, object>> GetPropertyMapExpression<TSource, TDestination>(this IMapper mapper, string property)
{
if (mapper.ConfigurationProvider is global::AutoMapper.Internal.IGlobalConfiguration configuration)
{
var map = configuration.FindTypeMapFor<TSource, TDestination>().PropertyMaps.FirstOrDefault(p => p.DestinationName.Equals(property, StringComparison.OrdinalIgnoreCase));
if (map?.CustomMapExpression != null)
{
return Expression.Lambda<Func<TSource, object>>(Expression.Convert(map.CustomMapExpression.Body, typeof(object)), map.CustomMapExpression.Parameters);
}
}
return null;
}
/// <summary>
/// 获取映射表达式
/// </summary>
/// <typeparam name="TSource1">源类型1</typeparam>
/// <typeparam name="TSource2">源类型2</typeparam>
/// <typeparam name="TDestination">目标类型</typeparam>
/// <param name="mapper">映射</param>
/// <param name="property">属性</param>
/// <returns>Lambda 表达式</returns>
internal static Expression<Func<TSource1, TSource2, object>> GetPropertyMapExpression<TSource1, TSource2, TDestination>(this IMapper mapper, string property)
{
if (mapper.ConfigurationProvider is global::AutoMapper.Internal.IGlobalConfiguration configuration)
{
var map = configuration.FindTypeMapFor<dynamic, TDestination>().PropertyMaps.FirstOrDefault(p => p.DestinationName.Equals(property, StringComparison.OrdinalIgnoreCase));
if (map?.CustomMapFunction != null
&& map.CustomMapFunction.Body is InvocationExpression invocationExpression
&& invocationExpression.Expression is MemberExpression memberExpression
&& memberExpression.Expression is ConstantExpression constantExpression
&& constantExpression.Value.GetType().GetField("mappingFunction")?.GetValue(constantExpression.Value) is Delegate mappingFunction
&& mappingFunction.Method.GetCustomAttribute(typeof(SourceAttribute)) is SourceAttribute sourceAttribute)
{
var parameters = new Dictionary<Type, ParameterExpression>()
{
[typeof(TSource1)] = Expression.Parameter(typeof(TSource1), "p1"),
[typeof(TSource2)] = Expression.Parameter(typeof(TSource2), "p2")
};
return Expression.Lambda<Func<TSource1, TSource2, object>>(
Expression.Convert(Expression.PropertyOrField(parameters[sourceAttribute.Type], sourceAttribute.Path), typeof(object)),
parameters.Values);
}
}
return null;
}
}
/// <summary>
/// 指示映射函数中源类型的具体信息
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
internal class SourceAttribute : Attribute
{
/// <summary>
/// 初始化 Kean.Application.Query.SourceAttribute 类的新实例
/// </summary>
/// <param name="type">源类型</param>
/// <param name="name">源路径</param>
internal SourceAttribute(Type type, string path)
{
Type = type;
Path = path;
}
/// <summary>
/// 源类型
/// </summary>
internal Type Type { get; }
/// <summary>
/// 源路径
/// </summary>
internal string Path { get; }
}
}