Commit a8a0e3fc by 陶然

init

parents
################################################################################
# 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。
################################################################################
/Src/obj
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Samples
{
internal class Configs
{
public const string TableNameSample = "SMPL_Samples";
public const string TableNameLocation = "SMPL_Locations";
public const string TableNameRoute = "SMPL_Routes";
//public const string TableNameSource = "SMPL_Sources";
}
}
using Kivii.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Samples.Entities
{
[Api(Description = "地点配置")]
[Alias(Configs.TableNameLocation)]
public class Location : EntityWithMetadata
{
[InternalSetter]
[DefaultEmptyGuid]
public Guid OwnerKvid { get; set; }
[InternalSetter]
[StringLength(500)]//所属信息,记录当前数据的所属信息,可以是部门可以是组织可以是个人
public string OwnerName { get; set; }
[ApiMember(Description = "地点名称")]
[Required]
[StringLength(200)]
public string Title { get; set; }
[ApiMember(Description = "地点地址")]
[StringLength(500), Default("")]
public string Address { get; set; }
/// <summary>
/// 内部编码,唯一,样品在流转过程中必须传入目标地点的InternalCode
/// </summary>
[ApiMember(Description = "内部编码")]
[StringLength(200), Required]
[Unique()]
public string InternalCode { get; set; }
[ApiMember(Description = "配置类型")]
[StringLength(50), Default("")]
public string Type { get; set; }
[InternalSetter]
[DefaultEmptyGuid]
public Guid ManagerKvid { get; set; }
[InternalSetter]
[StringLength(500)]
public string ManagerName { get; set; }
#region 文本 摘要 备注
[ApiMember(Description = "摘要,最大500字")]
//[IgnoreUpdate]
[StringLength(500), Default("")]
public string Summary { get; set; }
[ApiMember(Description = "备注,最大2000字")]
[StringLength(2000), Default("")]
public string Remark { get; set; }
#endregion
}
}
using Kivii.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Samples.Entities
{
[Api(Description = "样品路由")]
[Alias(Configs.TableNameRoute)]
public class Route: EntityWithMetadata, IEntityHasBiz, IEntityInAssemblyDb, IEntityHasRemark, IEntityHasCreator, IEntityHasUpdater
{
[ApiMember(Description = "样品名称")]
[IgnoreUpdate]
[StringLength(200), Default("")]
public string SampleName { get; set; }
[ApiMember(Description = "样品Kvid")]
[DefaultEmptyGuid]
public Guid SampleKvid { get; set; }
[ApiMember(Description = "主样品Kvid")]
[DefaultEmptyGuid]
public Guid SampleRootKvid { get; set; }
[ApiMember(Description = "父级样品Kvid")]
[DefaultEmptyGuid]
public Guid SampleParentKvid { get; set; }
#region 第三方关联V1.0
[ApiMember(Description = "关联业务,例如:此样品用于具体某一报告,此处记录报告信息")]
[InternalSetter]
[StringLength(200), Default("")]
public string BizId { get; set; }
[ApiMember(Description = "业务Kvid")]
[InternalSetter]
[DefaultEmptyGuid]
public Guid BizKvid { get; set; }
[ApiMember(Description = "业务类型,指实体类型全名称")]
[InternalSetter]
[StringLength(200), Default("")]
public string BizType { get; set; }
#endregion
#region 基本信息
[ApiMember(Description = "样品路由标题")]
[StringLength(200), Required]
public string Title { get; set; }
/// <summary>
/// 送样,快递等
/// </summary>
[ApiMember(Description = "样品路由类型")]
[StringLength(50)]
public string Type { get; set; }
/// <summary>
/// 当前路由地点
/// </summary>
[ApiMember(Description = "当前路由地点")]
[StringLength(200), Required]
public string CurrentLocationTitle { get; set; }
[ApiMember(Description = "当前路由地点Kvid")]
[DefaultEmptyGuid]
public Guid CurrentLocationKvid { get; set; }
/// <summary>
/// 目标地点,目标节点是下一个节点产生后返写的,代表此样品已经从当前节点离开
/// </summary>
[ApiMember(Description = "目标路由地点")]
[StringLength(200)]
public string NextLocationTitle { get; set; }
[ApiMember(Description = "目标路由地点Kvid")]
[DefaultEmptyGuid]
public Guid NextLocationKvid { get; set; }
/// <summary>
/// 操作人
/// </summary>
[ApiMember(Description = "操作人")]
[StringLength(100), Default("")]
public string OperatorName { get; set; }
/// <summary>
/// 操作人Kvid
/// </summary>
[ApiMember(Description = "操作人Kvid")]
public Guid OperatorKvid { get; set; }
/// <summary>
/// 操作日期
/// </summary>
[ApiMember(Description = "操作日期")]
public DateTime OperateTime { get; set; }
/// <summary>
/// 摘要
/// </summary>
[ApiMember(Description = "摘要")]
[StringLength(1000), Default("")]
public string Summary { get; set; }
[ApiMember(Description = "备注")]
[StringLength(1000), Default("")]
public string Remark { get; set; }
[ApiMember(Description = "创建人Kvid ")]
[IgnoreUpdate]
[CurrentMemberKvid]
public Guid CreatorKvid { get; set; }
[ApiMember(Description = "创建人")]
[IgnoreUpdate]
[StringLength(50), CurrentMemberName]
public string CreatorName { get; set; }
[ApiMember(Description = "更新人Kvid ")]
[CurrentMemberKvid]
public Guid UpdaterKvid { get; set; }
[ApiMember(Description = "更新人")]
[StringLength(50), CurrentMemberName]
public string UpdaterName { get; set; }
#endregion
}
}
using Kivii.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Samples.Entities
{
[Api(Description = "样品信息")]
[Alias(Configs.TableNameSample)]
public class Sample: EntityWithMetadata, IEntityInAssemblyDb, IEntityHasRemark, IEntityHasCreator, IEntityHasUpdater
{
#region 第三方关联V1.0
[ApiMember(Description = "关联业务,例如:此样品用于具体某一报告,此处记录报告信息")]
[InternalSetter]
[StringLength(200), Default("")]
public string BizId { get; set; }
[ApiMember(Description = "业务Kvid")]
[InternalSetter]
[DefaultEmptyGuid]
public Guid BizKvid { get; set; }
[ApiMember(Description = "业务类型,指实体类型全名称")]
[InternalSetter]
[StringLength(200), Default("")]
public string BizType { get; set; }
[InternalSetter]
[DefaultEmptyGuid]
public Guid OwnerKvid { get; set; }
[InternalSetter]
[StringLength(500)]//所属信息,记录当前数据的所属信息,可以是部门可以是组织可以是个人
public string OwnerName { get; set; }
#endregion
#region 关联信息
[InternalSetter]
[DefaultEmptyGuid]
public Guid RootKvid { get; set; }
[ApiMember(Description = "父级样品Kvid")]
[DefaultEmptyGuid]
public Guid ParentKvid { get; set; }
[ApiMember(Description = "包裹Kvid,只有在样品打包后会记录当前样品所属的包裹Kvid,包裹也是样品实体,包裹类型")]
[DefaultEmptyGuid]
public Guid PackageKvid { get; set; }
[ApiMember(Description = "来源名称")]
[IgnoreUpdate]
[StringLength(200), Default("")]
public string SourceName { get; set; }
[ApiMember(Description = "来源编号,邮寄则为记录快递号,抽样则为计划编号")]
[IgnoreUpdate]
[StringLength(200), Default("")]
public string SourceNumber { get; set; }
[ApiMember(Description = "来源类型,例如是快递方式则记录,顺丰,中通等")]
[IgnoreUpdate]
[StringLength(200), Default("")]
public string SourceType { get; set; }
#endregion
#region 基本信息
[ApiMember(Description = "样品名称")]
[Required]
[StringLength(200)]
public string Name { get; set; }
[ApiMember(Description = "样品内部编号")]
[StringLength(200), Default("")]
public string InternalCode { get; set; }
[ApiMember(Description = "样品编号")]
[SerialNumber]
[StringLength(100), Default("")]
public string SerialNumber { get; set; }
[ApiMember(Description = "样品批次编号")]
[StringLength(200), Default("")]
public string BatchNumber { get; set; }
[ApiMember(Description = "样品类型,类型:主样,子样,包裹")]
[StringLength(50), Default("")]
public SampleType Type { get; set; }
[ApiMember(Description = "操作日期")]
public DateTime OperateTime { get; set; }
[ApiMember(Description = "样品分类")]
[StringLength(50), Default("")]
public string Category { get; set; }
[ApiMember(Description = "样品品牌")]
[StringLength(200), Default("")]
public string Brand { get; set; }
[ApiMember(Description = "样品规格")]
[StringLength(200), Default("")]
public string Specification { get; set; }
[ApiMember(Description = "样品型号")]
[StringLength(200), Default("")]
public string Model { get; set; }
[ApiMember(Description = "样品材质")]
[StringLength(200), Default("")]
public string Material { get; set; }
[ApiMember(Description = "样品品级")]
[StringLength(200), Default("")]
public string Grade { get; set; }
[ApiMember(Description = "安全类别")]
[StringLength(200), Default("")]
public string GradeSafety { get; set; }
[ApiMember(Description = "样品状况,一般是指收到样品时的状况,是否完好等")]
[StringLength(200), Default("")]
public string Condition { get; set; }
#endregion
#region 数量相关
[ApiMember(Description = "样品数量")]
[DecimalLength(10, 2), Default(0)]
public decimal Quantity { get; set; }
[ApiMember(Description = "数量单位")]
[StringLength(50), Default("")]
public string QuantityUnit { get; set; }
#endregion
#region 生产单位信息及生产日期
[ApiMember(Description = "生产单位")]
[StringLength(100), Default("")]
public string ManufacturerName { get; set; }
[ApiMember(Description = "生产单位Kvid")]
[DefaultEmptyGuid]
[IgnoreUpdate]
public Guid ManufacturerKvid { get; set; }
[ApiMember(Description = "生产单位联系人姓名")]
[StringLength(50), Default("")]
public string ManufacturerContactName { get; set; }
[ApiMember(Description = "生产单位联系人Kvid")]
[DefaultEmptyGuid]
[IgnoreUpdate]
public Guid ManufacturerContactKvid { get; set; }
[ApiMember(Description = "生产单位联系人电话")]
[StringLength(50), Default("")]
//正则表达式验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})
public string ManufacturerContactNumber { get; set; }
[ApiMember(Description = "生产单位地址")]
[StringLength(200), Default("")]
public string ManufacturerAddress { get; set; }
[ApiMember(Description = "生产日期")]
public DateTime? ProductionDate { get; set; }
#endregion
#region 文本 备注
[ApiMember(Description = "摘要")]
[StringLength(1000), Default("")]
public string Summary { get; set; }
[ApiMember(Description = "备注")]
[StringLength(1000), Default("")]
public string Remark { get; set; }
#endregion
[Ignore]
public DateTime? AssignTime { get; set; }
#region 创建/更新人V1.0
[ApiMember(Description = "创建人Kvid ")]
[IgnoreUpdate]
[CurrentMemberKvid]
public Guid CreatorKvid { get; set; }
[ApiMember(Description = "创建人")]
[IgnoreUpdate]
[StringLength(50), CurrentMemberName]
public string CreatorName { get; set; }
[ApiMember(Description = "更新人Kvid ")]
[CurrentMemberKvid]
public Guid UpdaterKvid { get; set; }
[ApiMember(Description = "更新人")]
[StringLength(50), CurrentMemberName]
public string UpdaterName { get; set; }
#endregion
}
public enum SampleType
{
Unsupport=0,
/// <summary>
/// 主样
/// </summary>
Master,
/// <summary>
/// 子样
/// </summary>
Node,
/// <summary>
/// 包裹
/// </summary>
Package
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{93752ABA-829A-470A-A726-78CDEF47B969}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Kivii.Samples</RootNamespace>
<AssemblyName>Kivii.Biz.Samples.V4.5</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\k5-local\appextend\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\Kivii%27s Releases\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kivii.Common.V4.5, Version=5.6.2023.2150, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\k5-local\packages\Kivii.Common.5.6.2023.2150\lib\net45\Kivii.Common.V4.5.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Kivii.Core.V4.5, Version=5.6.2023.1310, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\k5-local\packages\Kivii.Core.5.6.2023.1310\lib\net45\Kivii.Core.V4.5.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Kivii.Linq.V4.5, Version=5.6.2022.12200, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\k5-local\packages\Kivii.Linq.5.6.2022.12200\lib\net45\Kivii.Linq.V4.5.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Configs.cs" />
<Compile Include="Entities\Sample.cs" />
<Compile Include="Entities\Location.cs" />
<Compile Include="Entities\Route.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SampleExtension.cs" />
<Compile Include="Transforms\RestfulLocation.cs" />
<Compile Include="Transforms\RestfulRoute.cs" />
<Compile Include="Transforms\RestfulSample.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if "$(ConfigurationName)"=="Release" if exist "$(TargetDir)Reactor\dotNET_Reactor.exe" (call "$(TargetDir)Reactor\dotNET_Reactor.exe" -file "$(TargetPath)" -targetfile "$(TargetDir)Release\$(TargetFileName)" -stringencryption 0 -antitamp 1 -suppressildasm 1)</PostBuildEvent>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartArguments>-debug</StartArguments>
<StartAction>Program</StartAction>
<StartProgram>D:\git.kivii.org\k5-local\Startup.exe</StartProgram>
</PropertyGroup>
</Project>
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Kivii.Biz.Samples.V4.5")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
#if DEBUG
[assembly: AssemblyCompany("Kivii.Org")]
#else
[assembly: AssemblyCompany("Kivii.Com")]
#endif
[assembly: AssemblyProduct("Kivii.Biz.Samples.V4.5")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("93752aba-829a-470a-a726-78cdef47b969")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("5.4.2023.4240")]
[assembly: AssemblyFileVersion("5.4.2023.4240")]
using Kivii.Samples.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Samples.Transforms
{
[RequiresAnyRole(SystemRoles.Everyone)]
public class LocationCreate : RestfulCreate<Location>
{
}
[RequiresAnyRole(SystemRoles.Everyone)]
public class LocationUpdate : RestfulUpdate<Location>
{
}
[RequiresAnyRole(SystemRoles.Everyone)]
public class LocationRead : RestfulRead<Location>
{
}
[RequiresAnyRole(SystemRoles.Everyone)]
public class LocationDelete : RestfulDelete<Location>
{
}
[RequiresAnyRole(SystemRoles.Everyone)]
public class LocationQuery : RestfulQuery<Location>
{
}
}
using Kivii.Samples.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Samples.Transforms
{
//[RequiresAnyRole(SystemRoles.Everyone)]
//public class RouteCreate : RestfulCreate<Route>
//{
//}
//[RequiresAnyRole(SystemRoles.Everyone)]
//public class RouteUpdate : RestfulUpdate<Route>
//{
//}
[RequiresAnyRole(SystemRoles.Everyone)]
public class RouteRead : RestfulRead<Route>
{
}
//[RequiresAnyRole(SystemRoles.Everyone)]
//public class RouteDelete : RestfulDelete<Route>
//{
//}
[RequiresAnyRole(SystemRoles.Everyone)]
public class RouteQuery : RestfulQuery<Route>
{
}
}
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Kivii.Common" version="5.6.2023.2150" targetFramework="net45" />
<package id="Kivii.Core" version="5.6.2023.1310" targetFramework="net45" />
<package id="Kivii.Linq" version="5.6.2022.12200" targetFramework="net45" />
</packages>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment