From 0f9349476def3d2489bd2e42d81ea05207d2839a Mon Sep 17 00:00:00 2001 From: gcw_MV9p2JJN Date: Tue, 13 Jan 2026 16:31:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E5=8F=82=E6=95=B0=E9=87=87?= =?UTF-8?q?=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- General_Line_MES.sln | 2 +- .../MES/product/ProWorkorderController.cs | 13 +- ...ProductTraceProcessParametersController.cs | 100 +++++++++++ RIZO.Admin.WebApi/RIZO.Admin.WebApi.csproj | 1 - .../wwwroot/ImportTemplate/workorder.xlsx | Bin 0 -> 10768 bytes RIZO.Model/MES/product/Dto/ProWorkorderDto.cs | 26 +-- .../Dto/ProductTraceProcessParametersDto.cs | 88 ++++++++++ .../ProductTraceProcessParameters.cs | 161 ++++++++++++++++++ RIZO.Model/RIZO.Model.csproj | 4 - .../product/IService/IProWorkorderService.cs | 6 +- .../MES/product/ProWorkorderService.cs | 18 +- .../IProductTraceProcessParametersService.cs | 21 +++ .../ProductTraceProcessParametersService.cs | 91 ++++++++++ RIZO.Service/RIZO.Service.csproj | 4 +- valeo_lmes.sln | 85 +++++++++ 15 files changed, 594 insertions(+), 26 deletions(-) create mode 100644 RIZO.Admin.WebApi/Controllers/MES/product_trace/ProductTraceProcessParametersController.cs create mode 100644 RIZO.Admin.WebApi/wwwroot/ImportTemplate/workorder.xlsx create mode 100644 RIZO.Model/MES/product_trace/Dto/ProductTraceProcessParametersDto.cs create mode 100644 RIZO.Model/MES/product_trace/ProductTraceProcessParameters.cs create mode 100644 RIZO.Service/MES/product_trace/IMesService/IProductTraceProcessParametersService.cs create mode 100644 RIZO.Service/MES/product_trace/ProductTraceProcessParametersService.cs create mode 100644 valeo_lmes.sln diff --git a/General_Line_MES.sln b/General_Line_MES.sln index 96bcda7..0381c64 100644 --- a/General_Line_MES.sln +++ b/General_Line_MES.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.0.11222.15 d18.0 +VisualStudioVersion = 18.0.11222.15 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Admin.WebApi", "RIZO.Admin.WebApi\RIZO.Admin.WebApi.csproj", "{E5497BB4-B0C1-4794-9FAE-163F626EC399}" EndProject diff --git a/RIZO.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs b/RIZO.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs index 829d09b..84ba496 100644 --- a/RIZO.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs +++ b/RIZO.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs @@ -278,6 +278,15 @@ namespace RIZO.Admin.WebApi.Controllers //} + //TODO 获取物料 + [HttpGet("get_material")] + public IActionResult GetMaterialInfo(string? Name_or_Code) + { + var response = _ProWorkorderService.GetMaterialInfo(Name_or_Code); + return SUCCESS(response); + + } + ////TODO 获取客户 //[HttpPost("get_custom")] @@ -317,9 +326,9 @@ namespace RIZO.Admin.WebApi.Controllers // return SUCCESS(response); //} - //TODO 获取组 + // TODO 获取组 //[HttpGet("get_groups")] - //public IActionResult GetGroupList(string route_code,DateTime dateTime) + //public IActionResult GetGroupList(string route_code, DateTime dateTime) //{ // if (string.IsNullOrEmpty(route_code)) { return SUCCESS(null); } // if (dateTime == DateTime.MinValue) diff --git a/RIZO.Admin.WebApi/Controllers/MES/product_trace/ProductTraceProcessParametersController.cs b/RIZO.Admin.WebApi/Controllers/MES/product_trace/ProductTraceProcessParametersController.cs new file mode 100644 index 0000000..278e812 --- /dev/null +++ b/RIZO.Admin.WebApi/Controllers/MES/product_trace/ProductTraceProcessParametersController.cs @@ -0,0 +1,100 @@ +using Microsoft.AspNetCore.Mvc; +using RIZO.Model.Mes.Dto; +using RIZO.Model.Mes; +using RIZO.Service.Mes.IMesService; + +//创建时间:2026-01-13 +namespace RIZO.Admin.WebApi.Controllers.Mes +{ + /// + /// 工艺参数采集 + /// + [Route("mes/ProductTraceProcessParameters")] + public class ProductTraceProcessParametersController : BaseController + { + /// + /// 工艺参数采集接口 + /// + private readonly IProductTraceProcessParametersService _ProductTraceProcessParametersService; + + public ProductTraceProcessParametersController(IProductTraceProcessParametersService ProductTraceProcessParametersService) + { + _ProductTraceProcessParametersService = ProductTraceProcessParametersService; + } + + /// + /// 查询工艺参数采集列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "producttraceprocessparameters:list")] + public IActionResult QueryProductTraceProcessParameters([FromQuery] ProductTraceProcessParametersQueryDto parm) + { + var response = _ProductTraceProcessParametersService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询工艺参数采集详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "producttraceprocessparameters:query")] + public IActionResult GetProductTraceProcessParameters(int Id) + { + var response = _ProductTraceProcessParametersService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加工艺参数采集 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "producttraceprocessparameters:add")] + [Log(Title = "工艺参数采集", BusinessType = BusinessType.INSERT)] + public IActionResult AddProductTraceProcessParameters([FromBody] ProductTraceProcessParametersDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _ProductTraceProcessParametersService.AddProductTraceProcessParameters(modal); + + return SUCCESS(response); + } + + /// + /// 更新工艺参数采集 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "producttraceprocessparameters:edit")] + [Log(Title = "工艺参数采集", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateProductTraceProcessParameters([FromBody] ProductTraceProcessParametersDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _ProductTraceProcessParametersService.UpdateProductTraceProcessParameters(modal); + + return ToResponse(response); + } + + /// + /// 删除工艺参数采集 + /// + /// + [HttpPost("delete/{ids}")] + [ActionPermissionFilter(Permission = "producttraceprocessparameters:delete")] + [Log(Title = "工艺参数采集", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteProductTraceProcessParameters([FromRoute]string ids) + { + var idArr = Tools.SplitAndConvert(ids); + + return ToResponse(_ProductTraceProcessParametersService.Delete(idArr)); + } + + } +} \ No newline at end of file diff --git a/RIZO.Admin.WebApi/RIZO.Admin.WebApi.csproj b/RIZO.Admin.WebApi/RIZO.Admin.WebApi.csproj index 045f099..35138f6 100644 --- a/RIZO.Admin.WebApi/RIZO.Admin.WebApi.csproj +++ b/RIZO.Admin.WebApi/RIZO.Admin.WebApi.csproj @@ -34,7 +34,6 @@ - diff --git a/RIZO.Admin.WebApi/wwwroot/ImportTemplate/workorder.xlsx b/RIZO.Admin.WebApi/wwwroot/ImportTemplate/workorder.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..284ba969c6e410868b91f271fbad408e9678a602 GIT binary patch literal 10768 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 PuN*_jSGn&bZ+ia^Fcawj literal 0 HcmV?d00001 diff --git a/RIZO.Model/MES/product/Dto/ProWorkorderDto.cs b/RIZO.Model/MES/product/Dto/ProWorkorderDto.cs index 55f3bbc..214326a 100644 --- a/RIZO.Model/MES/product/Dto/ProWorkorderDto.cs +++ b/RIZO.Model/MES/product/Dto/ProWorkorderDto.cs @@ -39,42 +39,42 @@ namespace RIZO.Model.MES.product.Dto /// /// 雪花id /// - public string Id { get; set; } + public string? Id { get; set; } /// /// 工单号 /// - public string Workorder { get; set; } + public string? Workorder { get; set; } /// /// 存货编码 /// - public string ProductionCode { get; set; } + public string? ProductionCode { get; set; } /// /// 产品名称 /// - public string ProductionName { get; set; } + public string? ProductionName { get; set; } /// /// 规格型号 /// - public string Specification { get; set; } + public string? Specification { get; set; } /// /// 项目号 /// - public string Project { get; set; } + public string? Project { get; set; } /// /// 客户编码 /// - public string CustomCode { get; set; } + public string? CustomCode { get; set; } /// /// 单位 /// - public string Unit { get; set; } + public string? Unit { get; set; } /// @@ -96,7 +96,7 @@ namespace RIZO.Model.MES.product.Dto /// /// 组别 /// - public string GroupCode { get; set; } + public string? GroupCode { get; set; } /// @@ -113,7 +113,7 @@ namespace RIZO.Model.MES.product.Dto /// /// 线别 /// - public string LineCode { get; set; } + public string? LineCode { get; set; } /// /// 序号 @@ -155,12 +155,12 @@ namespace RIZO.Model.MES.product.Dto /// /// 备注 /// - public string Remark { get; set; } + public string? Remark { get; set; } /// /// 创建人 /// - public string CreatedBy { get; set; } + public string? CreatedBy { get; set; } /// /// 创建时间 @@ -170,7 +170,7 @@ namespace RIZO.Model.MES.product.Dto /// /// 更新人 /// - public string UpdatedBy { get; set; } + public string? UpdatedBy { get; set; } /// /// 更新时间 diff --git a/RIZO.Model/MES/product_trace/Dto/ProductTraceProcessParametersDto.cs b/RIZO.Model/MES/product_trace/Dto/ProductTraceProcessParametersDto.cs new file mode 100644 index 0000000..bce9df9 --- /dev/null +++ b/RIZO.Model/MES/product_trace/Dto/ProductTraceProcessParametersDto.cs @@ -0,0 +1,88 @@ + +namespace RIZO.Model.Mes.Dto +{ + /// + /// 工艺参数采集查询对象 + /// + public class ProductTraceProcessParametersQueryDto : PagerInfo + { + public DateTime[] TraceTimeArray { get; set; }=new DateTime[2]; + public string WorkstationCode { get; set; } + + public string ProductlinebodyCode { get; set; } + + public string OperationCode { get; set; } + + public string RoutingCode { get; set; } + + public string ProductSn { get; set; } + + public string Workorder { get; set; } + + public string ParameterCode { get; set; } + + + } + + /// + /// 工艺参数采集输入输出对象 + /// + public class ProductTraceProcessParametersDto + { + [Required(ErrorMessage = "数据类型:FLOAT, INT, STRING, BOOL, AI(模拟量输入)等不能为空")] + public string DataType { get; set; } + + public DateTime? UpdatedTime { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string Updatedby { get; set; } + + public string Createdby { get; set; } + + public string Operator { get; set; } + + public DateTime? CollectTime { get; set; } + + public int? Result { get; set; } + + public decimal MaxValue { get; set; } + + public decimal MinValue { get; set; } + + public decimal StandardValue { get; set; } + + public string Unit { get; set; } + + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string Description { get; set; } + + public string PlcPoint { get; set; } + + public string ParameterName { get; set; } + + [Required(ErrorMessage = "参数名称,如:温度、压力、时间不能为空")] + public string ParameterCode { get; set; } + + public string WorkstationCode { get; set; } + + public string ProductlinebodyCode { get; set; } + + public string FlowCode { get; set; } + + public string OperationCode { get; set; } + + public string RoutingCode { get; set; } + + public string ProductSn { get; set; } + + public string Workorder { get; set; } + + + + [ExcelColumn(Name = "数据类型:FLOAT, INT, STRING, BOOL, AI(模拟量输入)等")] + public string DataTypeLabel { get; set; } + } +} \ No newline at end of file diff --git a/RIZO.Model/MES/product_trace/ProductTraceProcessParameters.cs b/RIZO.Model/MES/product_trace/ProductTraceProcessParameters.cs new file mode 100644 index 0000000..f4fff40 --- /dev/null +++ b/RIZO.Model/MES/product_trace/ProductTraceProcessParameters.cs @@ -0,0 +1,161 @@ + +namespace RIZO.Model.Mes +{ + /// + /// 工艺参数采集 + /// + [SugarTable("product_trace_process_parameters")] + public class ProductTraceProcessParameters + { + + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + + + /// + /// 工单号 + /// + public string Workorder { get; set; } + + + /// + /// 产品SN + /// + [SugarColumn(ColumnName = "product_SN")] + public string ProductSn { get; set; } + + + + /// + /// 工艺路线编码 + /// + public string RoutingCode { get; set; } + + /// + /// 工序号 + /// + public string OperationCode { get; set; } + + + + /// + /// 流程code + /// + public string FlowCode { get; set; } + + /// + /// 产线code + /// + public string ProductlinebodyCode { get; set; } + + /// + /// 工站code + /// + public string WorkstationCode { get; set; } + + + /// + /// 显示名称(用于UI展示,可和name一样) + /// + [SugarColumn(ColumnName = "parameter_name")] + public string ParameterName { get; set; } + + /// + /// 参数名称,如:温度、压力、时间 + /// + [SugarColumn(ColumnName = "parameter_code")] + public string ParameterCode { get; set; } + + + /// + /// plc点位 + /// + [SugarColumn(ColumnName = "plc_point")] + public string PlcPoint { get; set; } + + + + /// + /// 参数描述,如:模具温度,用于热压工序 + /// + public string Description { get; set; } + + + + + /// + /// 数据类型:FLOAT, INT, STRING, BOOL, AI(模拟量输入)等 + /// + [SugarColumn(ColumnName = "data_type")] + public string DataType { get; set; } + + + /// + /// 单位,如:℃、MPa、秒、mm + /// + public string Unit { get; set; } + + + /// + /// 最大允许值(用于报警/校验) + /// + [SugarColumn(ColumnName = "max_value")] + public decimal MaxValue { get; set; } + + /// + /// 最小允许值(用于报警/校验) + /// + [SugarColumn(ColumnName = "min_value")] + public decimal MinValue { get; set; } + + /// + /// 标准/目标值(如目标温度 200.0 ℃) + /// + [SugarColumn(ColumnName = "standard_value")] + public decimal StandardValue { get; set; } + + + + /// + /// 1 是合格 0是不合格 + /// + public int? Result { get; set; } + + /// + /// 操作人 + /// + public string Operator { get; set; } + + /// + /// 采集时间 + /// + [SugarColumn(ColumnName = "collect_time")] + public DateTime? CollectTime { get; set; } + + /// 更新时间 + /// + [SugarColumn(ColumnName = "updated_time")] + public DateTime? UpdatedTime { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "created_time")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + public string Updatedby { get; set; } + + /// + /// 创建人 + /// + public string Createdby { get; set; } + + } +} \ No newline at end of file diff --git a/RIZO.Model/RIZO.Model.csproj b/RIZO.Model/RIZO.Model.csproj index e0addc3..4b1c26b 100644 --- a/RIZO.Model/RIZO.Model.csproj +++ b/RIZO.Model/RIZO.Model.csproj @@ -12,8 +12,4 @@ - - - - diff --git a/RIZO.Service/MES/product/IService/IProWorkorderService.cs b/RIZO.Service/MES/product/IService/IProWorkorderService.cs index 113ca71..5cffd7e 100644 --- a/RIZO.Service/MES/product/IService/IProWorkorderService.cs +++ b/RIZO.Service/MES/product/IService/IProWorkorderService.cs @@ -6,6 +6,7 @@ using RIZO.Model.MES.product.Dto; using RIZO.Model.System.Dto; using RIZO.Model.System; using Microsoft.AspNetCore.Http; +using MDM.Model.Material; @@ -42,6 +43,9 @@ namespace RIZO.Service.MES.product.IService public PagedInfo WorkOrderExport(DateTime exportTime, PagerInfo pager); //List GetMaterialInfo(BaseMaterialListQueryDto5 parm); + List GetMaterialInfo(string Name_or_Code); + + //List GetCustomInfo(BaseCustomQueryDto2 parm); // List GetGroupList(DateTime dateTime); @@ -55,7 +59,7 @@ namespace RIZO.Service.MES.product.IService //List GetGroupList(); - // List SearchBOMNum(string workorder_num); + // List SearchBOMNum(string workorder_num); int WorkOrderLog(string workorder, string log, string Operator); diff --git a/RIZO.Service/MES/product/ProWorkorderService.cs b/RIZO.Service/MES/product/ProWorkorderService.cs index ec07e46..1adbee4 100644 --- a/RIZO.Service/MES/product/ProWorkorderService.cs +++ b/RIZO.Service/MES/product/ProWorkorderService.cs @@ -4,6 +4,7 @@ using Infrastructure.Attribute; using Infrastructure.Converter; using Mapster; using MathNet.Numerics.Distributions; +using MDM.Model.Material; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Components.Forms; using Microsoft.AspNetCore.Http; @@ -948,6 +949,21 @@ namespace RIZO.Service.MES.product //} + /// + /// 获取物料信息 + /// + /// + public List GetMaterialInfo(string Name_or_Code) + { + var predicate = Expressionable.Create() + .OrIF(!string.IsNullOrEmpty(Name_or_Code), it => it.Name.Contains(Name_or_Code)) + .OrIF(!string.IsNullOrEmpty(Name_or_Code), it => it.Code.Contains(Name_or_Code)) + ; + + return Context.Queryable() + .Where(predicate.ToExpression()).Take(20).ToList(); + } + /// /// 获取客户信息 /// @@ -1023,7 +1039,7 @@ namespace RIZO.Service.MES.product - + /// /// 查询BOM 及其所需数量 diff --git a/RIZO.Service/MES/product_trace/IMesService/IProductTraceProcessParametersService.cs b/RIZO.Service/MES/product_trace/IMesService/IProductTraceProcessParametersService.cs new file mode 100644 index 0000000..2fcfbc2 --- /dev/null +++ b/RIZO.Service/MES/product_trace/IMesService/IProductTraceProcessParametersService.cs @@ -0,0 +1,21 @@ +using RIZO.Model.Mes.Dto; +using RIZO.Model.Mes; + +namespace RIZO.Service.Mes.IMesService +{ + /// + /// 工艺参数采集service接口 + /// + public interface IProductTraceProcessParametersService : IBaseService + { + PagedInfo GetList(ProductTraceProcessParametersQueryDto parm); + + ProductTraceProcessParameters GetInfo(int Id); + + + ProductTraceProcessParameters AddProductTraceProcessParameters(ProductTraceProcessParameters parm); + int UpdateProductTraceProcessParameters(ProductTraceProcessParameters parm); + + + } +} diff --git a/RIZO.Service/MES/product_trace/ProductTraceProcessParametersService.cs b/RIZO.Service/MES/product_trace/ProductTraceProcessParametersService.cs new file mode 100644 index 0000000..492563c --- /dev/null +++ b/RIZO.Service/MES/product_trace/ProductTraceProcessParametersService.cs @@ -0,0 +1,91 @@ +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using RIZO.Model.Mes; +using RIZO.Model.Mes.Dto; +using RIZO.Repository; +using RIZO.Service.Mes.IMesService; +using System.ComponentModel; + +namespace RIZO.Service.Mes +{ + /// + /// 工艺参数采集Service业务层处理 + /// + [AppService(ServiceType = typeof(IProductTraceProcessParametersService), ServiceLifetime = LifeTime.Transient)] + public class ProductTraceProcessParametersService : BaseService, IProductTraceProcessParametersService + { + /// + /// 查询工艺参数采集列表 + /// + /// + /// + public PagedInfo GetList(ProductTraceProcessParametersQueryDto parm) + { + var predicate = QueryExp(parm) + .AndIF(!string.IsNullOrEmpty(parm.WorkstationCode), x => x.WorkstationCode.Contains( parm.WorkstationCode)) + .AndIF(!string.IsNullOrEmpty(parm.ProductlinebodyCode), x => x.ProductlinebodyCode.Contains(parm.ProductlinebodyCode)) + .AndIF(!string.IsNullOrEmpty(parm.OperationCode), x => x.OperationCode.Contains(parm.OperationCode)) + .AndIF(!string.IsNullOrEmpty(parm.RoutingCode), x => x.RoutingCode.Contains(parm.RoutingCode)) + .AndIF(!string.IsNullOrEmpty(parm.ProductSn), x => x.ProductSn.Contains(parm.ProductSn)) + .AndIF(!string.IsNullOrEmpty(parm.Workorder), x => x.Workorder.Contains(parm.Workorder)) + .AndIF(!string.IsNullOrEmpty(parm.ParameterCode), x => x.ParameterCode.Contains(parm.ParameterCode)) + .AndIF(parm.TraceTimeArray != null && parm.TraceTimeArray.Length == 2, x => x.CollectTime >= parm.TraceTimeArray[0] && x.CollectTime <= parm.TraceTimeArray[1]) + + + ; + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public ProductTraceProcessParameters GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加工艺参数采集 + /// + /// + /// + public ProductTraceProcessParameters AddProductTraceProcessParameters(ProductTraceProcessParameters model) + { + return Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改工艺参数采集 + /// + /// + /// + public int UpdateProductTraceProcessParameters(ProductTraceProcessParameters model) + { + return Update(model, true); + } + + /// + /// 查询导出表达式 + /// + /// + /// + private static Expressionable QueryExp(ProductTraceProcessParametersQueryDto parm) + { + var predicate = Expressionable.Create(); + + return predicate; + } + } +} \ No newline at end of file diff --git a/RIZO.Service/RIZO.Service.csproj b/RIZO.Service/RIZO.Service.csproj index aaf640a..e8a3eea 100644 --- a/RIZO.Service/RIZO.Service.csproj +++ b/RIZO.Service/RIZO.Service.csproj @@ -9,11 +9,9 @@ 1591 + - - - diff --git a/valeo_lmes.sln b/valeo_lmes.sln new file mode 100644 index 0000000..96bcda7 --- /dev/null +++ b/valeo_lmes.sln @@ -0,0 +1,85 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 18 +VisualStudioVersion = 18.0.11222.15 d18.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Admin.WebApi", "RIZO.Admin.WebApi\RIZO.Admin.WebApi.csproj", "{E5497BB4-B0C1-4794-9FAE-163F626EC399}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Model", "RIZO.Model\RIZO.Model.csproj", "{B35D73B1-2E22-4636-B88B-10C5E6D8E524}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Common", "RIZO.Common\RIZO.Common.csproj", "{42C84599-1E99-45B4-929B-417C37337EF8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Infrastructure", "Infrastructure\RIZO.Infrastructure.csproj", "{5D740120-5491-4FE2-B5BE-8A9C48BFE3C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Tasks", "RIZO.Tasks\RIZO.Tasks.csproj", "{B657ED99-40E5-423A-AFE7-157C4EE576CB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Service", "RIZO.Service\RIZO.Service.csproj", "{75ADA3C1-148D-4727-A718-79447D9B5EEE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.Repository", "RIZO.Repository\RIZO.Repository.csproj", "{17E277BF-B2B8-4111-AE43-38246128C83C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.CodeGenerator", "RIZO.CodeGenerator\RIZO.CodeGenerator.csproj", "{B353DE0B-12C6-4C15-909A-DB68F71D5AE9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RIZO.ServiceCore", "RIZO.ServiceCore\RIZO.ServiceCore.csproj", "{4E2CC4E4-F109-4876-8498-912E13905765}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RIZO.Mall", "RIZO.Mall\RIZO.Mall.csproj", "{46A22606-F436-4846-AF21-E66E732E1912}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MDM", "MDM\MDM.csproj", "{BA1FDC29-D3F7-E2E9-48BB-D9E0C3021BE7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E5497BB4-B0C1-4794-9FAE-163F626EC399}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5497BB4-B0C1-4794-9FAE-163F626EC399}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5497BB4-B0C1-4794-9FAE-163F626EC399}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5497BB4-B0C1-4794-9FAE-163F626EC399}.Release|Any CPU.Build.0 = Release|Any CPU + {B35D73B1-2E22-4636-B88B-10C5E6D8E524}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B35D73B1-2E22-4636-B88B-10C5E6D8E524}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B35D73B1-2E22-4636-B88B-10C5E6D8E524}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B35D73B1-2E22-4636-B88B-10C5E6D8E524}.Release|Any CPU.Build.0 = Release|Any CPU + {42C84599-1E99-45B4-929B-417C37337EF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42C84599-1E99-45B4-929B-417C37337EF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42C84599-1E99-45B4-929B-417C37337EF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42C84599-1E99-45B4-929B-417C37337EF8}.Release|Any CPU.Build.0 = Release|Any CPU + {5D740120-5491-4FE2-B5BE-8A9C48BFE3C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D740120-5491-4FE2-B5BE-8A9C48BFE3C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D740120-5491-4FE2-B5BE-8A9C48BFE3C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D740120-5491-4FE2-B5BE-8A9C48BFE3C5}.Release|Any CPU.Build.0 = Release|Any CPU + {B657ED99-40E5-423A-AFE7-157C4EE576CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B657ED99-40E5-423A-AFE7-157C4EE576CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B657ED99-40E5-423A-AFE7-157C4EE576CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B657ED99-40E5-423A-AFE7-157C4EE576CB}.Release|Any CPU.Build.0 = Release|Any CPU + {75ADA3C1-148D-4727-A718-79447D9B5EEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75ADA3C1-148D-4727-A718-79447D9B5EEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75ADA3C1-148D-4727-A718-79447D9B5EEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75ADA3C1-148D-4727-A718-79447D9B5EEE}.Release|Any CPU.Build.0 = Release|Any CPU + {17E277BF-B2B8-4111-AE43-38246128C83C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17E277BF-B2B8-4111-AE43-38246128C83C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17E277BF-B2B8-4111-AE43-38246128C83C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17E277BF-B2B8-4111-AE43-38246128C83C}.Release|Any CPU.Build.0 = Release|Any CPU + {B353DE0B-12C6-4C15-909A-DB68F71D5AE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B353DE0B-12C6-4C15-909A-DB68F71D5AE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B353DE0B-12C6-4C15-909A-DB68F71D5AE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B353DE0B-12C6-4C15-909A-DB68F71D5AE9}.Release|Any CPU.Build.0 = Release|Any CPU + {4E2CC4E4-F109-4876-8498-912E13905765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E2CC4E4-F109-4876-8498-912E13905765}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E2CC4E4-F109-4876-8498-912E13905765}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E2CC4E4-F109-4876-8498-912E13905765}.Release|Any CPU.Build.0 = Release|Any CPU + {46A22606-F436-4846-AF21-E66E732E1912}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46A22606-F436-4846-AF21-E66E732E1912}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46A22606-F436-4846-AF21-E66E732E1912}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46A22606-F436-4846-AF21-E66E732E1912}.Release|Any CPU.Build.0 = Release|Any CPU + {BA1FDC29-D3F7-E2E9-48BB-D9E0C3021BE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA1FDC29-D3F7-E2E9-48BB-D9E0C3021BE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA1FDC29-D3F7-E2E9-48BB-D9E0C3021BE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA1FDC29-D3F7-E2E9-48BB-D9E0C3021BE7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0469FF3A-7322-4053-94C7-881B103A57C5} + EndGlobalSection +EndGlobal