This commit is contained in:
quowingwang 2026-01-13 16:41:31 +08:00
commit 8cde843f06
15 changed files with 594 additions and 26 deletions

View File

@ -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

View File

@ -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)

View File

@ -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
{
/// <summary>
/// 工艺参数采集
/// </summary>
[Route("mes/ProductTraceProcessParameters")]
public class ProductTraceProcessParametersController : BaseController
{
/// <summary>
/// 工艺参数采集接口
/// </summary>
private readonly IProductTraceProcessParametersService _ProductTraceProcessParametersService;
public ProductTraceProcessParametersController(IProductTraceProcessParametersService ProductTraceProcessParametersService)
{
_ProductTraceProcessParametersService = ProductTraceProcessParametersService;
}
/// <summary>
/// 查询工艺参数采集列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "producttraceprocessparameters:list")]
public IActionResult QueryProductTraceProcessParameters([FromQuery] ProductTraceProcessParametersQueryDto parm)
{
var response = _ProductTraceProcessParametersService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询工艺参数采集详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "producttraceprocessparameters:query")]
public IActionResult GetProductTraceProcessParameters(int Id)
{
var response = _ProductTraceProcessParametersService.GetInfo(Id);
var info = response.Adapt<ProductTraceProcessParametersDto>();
return SUCCESS(info);
}
/// <summary>
/// 添加工艺参数采集
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "producttraceprocessparameters:add")]
[Log(Title = "工艺参数采集", BusinessType = BusinessType.INSERT)]
public IActionResult AddProductTraceProcessParameters([FromBody] ProductTraceProcessParametersDto parm)
{
var modal = parm.Adapt<ProductTraceProcessParameters>().ToCreate(HttpContext);
var response = _ProductTraceProcessParametersService.AddProductTraceProcessParameters(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新工艺参数采集
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "producttraceprocessparameters:edit")]
[Log(Title = "工艺参数采集", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateProductTraceProcessParameters([FromBody] ProductTraceProcessParametersDto parm)
{
var modal = parm.Adapt<ProductTraceProcessParameters>().ToUpdate(HttpContext);
var response = _ProductTraceProcessParametersService.UpdateProductTraceProcessParameters(modal);
return ToResponse(response);
}
/// <summary>
/// 删除工艺参数采集
/// </summary>
/// <returns></returns>
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "producttraceprocessparameters:delete")]
[Log(Title = "工艺参数采集", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteProductTraceProcessParameters([FromRoute]string ids)
{
var idArr = Tools.SplitAndConvert<int>(ids);
return ToResponse(_ProductTraceProcessParametersService.Delete(idArr));
}
}
}

View File

@ -34,7 +34,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\MES\" />
<Folder Include="Properties\PublishProfiles\" />
</ItemGroup>

View File

@ -39,42 +39,42 @@ namespace RIZO.Model.MES.product.Dto
/// <summary>
/// 雪花id
/// </summary>
public string Id { get; set; }
public string? Id { get; set; }
/// <summary>
/// 工单号
/// </summary>
public string Workorder { get; set; }
public string? Workorder { get; set; }
/// <summary>
/// 存货编码
/// </summary>
public string ProductionCode { get; set; }
public string? ProductionCode { get; set; }
/// <summary>
/// 产品名称
/// </summary>
public string ProductionName { get; set; }
public string? ProductionName { get; set; }
/// <summary>
/// 规格型号
/// </summary>
public string Specification { get; set; }
public string? Specification { get; set; }
/// <summary>
/// 项目号
/// </summary>
public string Project { get; set; }
public string? Project { get; set; }
/// <summary>
/// 客户编码
/// </summary>
public string CustomCode { get; set; }
public string? CustomCode { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
public string? Unit { get; set; }
/// <summary>
@ -96,7 +96,7 @@ namespace RIZO.Model.MES.product.Dto
/// <summary>
/// 组别
/// </summary>
public string GroupCode { get; set; }
public string? GroupCode { get; set; }
/// <summary>
@ -113,7 +113,7 @@ namespace RIZO.Model.MES.product.Dto
/// <summary>
/// 线别
/// </summary>
public string LineCode { get; set; }
public string? LineCode { get; set; }
/// <summary>
/// 序号
@ -155,12 +155,12 @@ namespace RIZO.Model.MES.product.Dto
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
public string? Remark { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreatedBy { get; set; }
public string? CreatedBy { get; set; }
/// <summary>
/// 创建时间
@ -170,7 +170,7 @@ namespace RIZO.Model.MES.product.Dto
/// <summary>
/// 更新人
/// </summary>
public string UpdatedBy { get; set; }
public string? UpdatedBy { get; set; }
/// <summary>
/// 更新时间

View File

@ -0,0 +1,88 @@
namespace RIZO.Model.Mes.Dto
{
/// <summary>
/// 工艺参数采集查询对象
/// </summary>
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; }
}
/// <summary>
/// 工艺参数采集输入输出对象
/// </summary>
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; }
}
}

View File

@ -0,0 +1,161 @@
namespace RIZO.Model.Mes
{
/// <summary>
/// 工艺参数采集
/// </summary>
[SugarTable("product_trace_process_parameters")]
public class ProductTraceProcessParameters
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 工单号
/// </summary>
public string Workorder { get; set; }
/// <summary>
/// 产品SN
/// </summary>
[SugarColumn(ColumnName = "product_SN")]
public string ProductSn { get; set; }
/// <summary>
/// 工艺路线编码
/// </summary>
public string RoutingCode { get; set; }
/// <summary>
/// 工序号
/// </summary>
public string OperationCode { get; set; }
/// <summary>
/// 流程code
/// </summary>
public string FlowCode { get; set; }
/// <summary>
/// 产线code
/// </summary>
public string ProductlinebodyCode { get; set; }
/// <summary>
/// 工站code
/// </summary>
public string WorkstationCode { get; set; }
/// <summary>
/// 显示名称用于UI展示可和name一样
/// </summary>
[SugarColumn(ColumnName = "parameter_name")]
public string ParameterName { get; set; }
/// <summary>
/// 参数名称,如:温度、压力、时间
/// </summary>
[SugarColumn(ColumnName = "parameter_code")]
public string ParameterCode { get; set; }
/// <summary>
/// plc点位
/// </summary>
[SugarColumn(ColumnName = "plc_point")]
public string PlcPoint { get; set; }
/// <summary>
/// 参数描述,如:模具温度,用于热压工序
/// </summary>
public string Description { get; set; }
/// <summary>
/// 数据类型FLOAT, INT, STRING, BOOL, AI模拟量输入
/// </summary>
[SugarColumn(ColumnName = "data_type")]
public string DataType { get; set; }
/// <summary>
/// 单位℃、MPa、秒、mm
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 最大允许值(用于报警/校验)
/// </summary>
[SugarColumn(ColumnName = "max_value")]
public decimal MaxValue { get; set; }
/// <summary>
/// 最小允许值(用于报警/校验)
/// </summary>
[SugarColumn(ColumnName = "min_value")]
public decimal MinValue { get; set; }
/// <summary>
/// 标准/目标值(如目标温度 200.0 ℃)
/// </summary>
[SugarColumn(ColumnName = "standard_value")]
public decimal StandardValue { get; set; }
/// <summary>
/// 1 是合格 0是不合格
/// </summary>
public int? Result { get; set; }
/// <summary>
/// 操作人
/// </summary>
public string Operator { get; set; }
/// <summary>
/// 采集时间
/// </summary>
[SugarColumn(ColumnName = "collect_time")]
public DateTime? CollectTime { get; set; }
/// 更新时间
/// </summary>
[SugarColumn(ColumnName = "updated_time")]
public DateTime? UpdatedTime { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnName = "created_time")]
public DateTime? CreatedTime { get; set; }
/// <summary>
/// 更新人
/// </summary>
public string Updatedby { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string Createdby { get; set; }
}
}

View File

@ -12,8 +12,4 @@
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.1.4.207" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="MES\" />
</ItemGroup>
</Project>

View File

@ -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<ProWorkorder> WorkOrderExport(DateTime exportTime, PagerInfo pager);
//List<BaseMaterialList> GetMaterialInfo(BaseMaterialListQueryDto5 parm);
List<MaterialList> GetMaterialInfo(string Name_or_Code);
//List<BaseCustom> GetCustomInfo(BaseCustomQueryDto2 parm);
// List<Group> GetGroupList(DateTime dateTime);
@ -55,7 +59,7 @@ namespace RIZO.Service.MES.product.IService
//List<BaseGroup> GetGroupList();
// List<WorkOrderBom> SearchBOMNum(string workorder_num);
// List<WorkOrderBom> SearchBOMNum(string workorder_num);
int WorkOrderLog(string workorder, string log, string Operator);

View File

@ -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
//}
/// <summary>
/// 获取物料信息
/// </summary>
/// <returns></returns>
public List<MaterialList> GetMaterialInfo(string Name_or_Code)
{
var predicate = Expressionable.Create<MaterialList>()
.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<MaterialList>()
.Where(predicate.ToExpression()).Take(20).ToList();
}
/// <summary>
/// 获取客户信息
/// </summary>
@ -1023,7 +1039,7 @@ namespace RIZO.Service.MES.product
/// <summary>
/// 查询BOM 及其所需数量

View File

@ -0,0 +1,21 @@
using RIZO.Model.Mes.Dto;
using RIZO.Model.Mes;
namespace RIZO.Service.Mes.IMesService
{
/// <summary>
/// 工艺参数采集service接口
/// </summary>
public interface IProductTraceProcessParametersService : IBaseService<ProductTraceProcessParameters>
{
PagedInfo<ProductTraceProcessParametersDto> GetList(ProductTraceProcessParametersQueryDto parm);
ProductTraceProcessParameters GetInfo(int Id);
ProductTraceProcessParameters AddProductTraceProcessParameters(ProductTraceProcessParameters parm);
int UpdateProductTraceProcessParameters(ProductTraceProcessParameters parm);
}
}

View File

@ -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
{
/// <summary>
/// 工艺参数采集Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IProductTraceProcessParametersService), ServiceLifetime = LifeTime.Transient)]
public class ProductTraceProcessParametersService : BaseService<ProductTraceProcessParameters>, IProductTraceProcessParametersService
{
/// <summary>
/// 查询工艺参数采集列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<ProductTraceProcessParametersDto> 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<ProductTraceProcessParameters, ProductTraceProcessParametersDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public ProductTraceProcessParameters GetInfo(int Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加工艺参数采集
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public ProductTraceProcessParameters AddProductTraceProcessParameters(ProductTraceProcessParameters model)
{
return Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改工艺参数采集
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateProductTraceProcessParameters(ProductTraceProcessParameters model)
{
return Update(model, true);
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<ProductTraceProcessParameters> QueryExp(ProductTraceProcessParametersQueryDto parm)
{
var predicate = Expressionable.Create<ProductTraceProcessParameters>();
return predicate;
}
}
}

View File

@ -9,11 +9,9 @@
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\MDM\MDM.csproj" />
<ProjectReference Include="..\RIZO.ServiceCore\RIZO.ServiceCore.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="MES\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NPOI" Version="2.7.5" />
</ItemGroup>

85
valeo_lmes.sln Normal file
View File

@ -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