Commit 30e8f3bd by 任天宇

初始化

parent ad9c24ed
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk
{
internal class Configs
{
public const string TableNameLaXiaOrder = "Lims_LaXiaOrders_v3";
public const string TableNameLaXiaOrderDetail = "Lims_LaXiaOrderDetails_v3";
public const string TableNameTestItem = "Lims_TestItems_v3";
}
}
using Kivii;
using Kivii.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Entities
{
[Alias(Configs.TableNameLaXiaOrder)]
public class LaXiaOrder:Entity
{
#region 第三方关联V1.0
[ApiMember(Description = "业务Kvid")]
[DefaultEmptyGuid]
public Guid BizKvid { get; set; }
[ApiMember(Description = "业务流水号")]
[IgnoreUpdate]
[StringLength(200), Default("")]
public string BizId { get; set; }
[ApiMember(Description = "业务类型,指实体类型全名称")]
[IgnoreUpdate]
[StringLength(200), Default("")]
public string BizType { get; set; }
#endregion
[Unique]
[ApiMember(Description = "检测单号")]
public string CheckNumbers { get; set; }
[ApiMember(Description = "质量检测")]
public string Name { get; set; }
[ApiMember(Description = "委托品牌")]
public string CBrand { get; set; }
[ApiMember(Description = "品牌")]
public string Brand { get; set; }
[ApiMember(Description = "款号")]
public string Style { get; set; }
[ApiMember(Description = "执行标准")]
public string Standard { get; set; }
[ApiMember(Description = "检测级别")]
public string TestLevel { get; set; }
[ApiMember(Description = "面料品质样")]
public string Quarity { get; set; }
[ApiMember(Description = "提供面料成分")]
public string Contains { get; set; }
[ApiMember(Description = "付款方式")]
public string PayType { get; set; }
[ApiMember(Description = "测试要求")]
public string TestType { get; set; }
[ApiMember(Description = "检测所编号")]
public string TestInstitute { get; set; }
[ApiMember(Description = "供应商")]
public string Supplier { get; set; }
[ApiMember(Description = "产品颜色")]
public string Color { get; set; }
[ApiMember(Description = "成分")]
public string Part { get; set; }
[ApiMember(Description = "支付金额")]
public decimal Money { get; set; }
[ApiMember(Description = "检测单类型")]
public string Type { get; set; }
[ApiMember(Description = "原报告编号")]
public string OriginalReportNo { get; set; }
[ApiMember(Description = "原款号")]
public string OriginalStyle { get; set; }
[ApiMember(Description = "采购订单号")]
public string OriginalPO { get; set; }
}
}
using Kivii;
using Kivii.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Entities
{
[Alias(Configs.TableNameLaXiaOrderDetail)]
public class LaXiaOrderDetail:Entity
{
public Guid OrderKvid { get; set; }
[ApiMember(Description = "测试规格")]
[StringLength(50)]
public string name { get; set; }
[ApiMember(Description = "编码")]
[StringLength(50)]
public string code { get; set; }
[ApiMember(Description = "部位")]
[StringLength(50)]
public string part { get; set; }
public string desc { get; set; }
public string color { get; set; }
public string type { get; set; }
public string required { get; set; }
public string requirement { get; set; }
public string practialWay { get; set; }
public string practialResult { get; set; }
public string practialAdvice { get; set; }
public string cost { get; set; }
public string unit { get; set; }
}
}
using Kivii;
using Kivii.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Entities
{
[Alias(Configs.TableNameTestItem)]
public class TestItem:Entity
{
public string OwnerName { get; set; }
[DefaultEmptyGuid]
public Guid OwnerKvid { get; set; }
[DefaultEmptyGuid]
public Guid ParentKvid { get; set; }
public string ParentName { get; set; }
public string Name { get; set; }
[Unique]
public string Code { get; set; }
}
}
using Jst.Lims.Entities;
using Jst.Lims.LaxiaSdk.Entities;
using Kivii;
using Kivii.Linq;
using Kivii.Web;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Extensions
{
public class Detail
{
[ApiMember(Description = "测试规格")]
public string Name { get; set; }
[ApiMember(Description = "编码")]
public string Code { get; set; }
[ApiMember(Description = "部位")]
public string Part { get; set; }
}
public class ConfirmResponse
{
public int ResponseCode { get; set; }
public string ResponseMsg { get; set; }
}
//拉夏发送数据接口
[Route("/LaXia/Api")]
public class LaxiaOrderConfirm : RestfulExecution<LaXiaOrder>
{
public string Token { get; set; }
[ApiMember(Description = "检测单号")]
public string CheckNumbers { get; set; }
[ApiMember(Description = "质量检测")]
public string Name { get; set; }
[ApiMember(Description = "委托品牌")]
public string CBrand { get; set; }
[ApiMember(Description = "品牌")]
public string Brand { get; set; }
[ApiMember(Description = "款号")]
public string Style { get; set; }
[ApiMember(Description = "执行标准")]
public string Standard { get; set; }
[ApiMember(Description = "检测级别")]
public string TestLevel { get; set; }
[ApiMember(Description = "面料品质样")]
public string Quarity { get; set; }
[ApiMember(Description = "提供面料成分")]
public string Contains { get; set; }
[ApiMember(Description = "付款方式")]
public string PayType { get; set; }
[ApiMember(Description = "测试要求")]
public string TestType { get; set; }
[ApiMember(Description = "检测所编号")]
public string TestInstitute { get; set; }
[ApiMember(Description = "供应商")]
public string Supplier { get; set; }
[ApiMember(Description = "产品颜色")]
public string Color { get; set; }
[ApiMember(Description = "成分")]
public string Part { get; set; }
[ApiMember(Description = "支付金额")]
public decimal Money { get; set; }
[ApiMember(Description = "检测单类型")]
public string Type { get; set; }
[ApiMember(Description = "原报告编号")]
public string OriginalReportNo { get; set; }
[ApiMember(Description = "原款号")]
public string OriginalStyle { get; set; }
[ApiMember(Description = "采购订单号")]
public string OriginalPO { get; set; }
public List<Detail> Detials { get; set; }
private IDbTransaction _trans;
public override object OnExecution(IRequest req, IResponse res)
{
var rtns = new ConfirmResponse();
var conn = KiviiContext.GetOpenedDbConnection<LaXiaOrder>();
if (Token != "LX123456") {
rtns.ResponseCode = 0;
rtns.ResponseMsg = "客户未禁授权,请联系管理员授权访问!";
return rtns;
}
if (conn.Exists<LaXiaOrder>(o => o.CheckNumbers == CheckNumbers)) {
rtns.ResponseCode = 0;
rtns.ResponseMsg = "检测单号已存在!上传失败";
return rtns;
}
_trans = conn.OpenTransaction();
try
{
var OrderItem = new LaXiaOrder();
var DetailItem = new LaXiaOrderDetail();
OrderItem.Kvid = Guid.NewGuid();
foreach (var detail in Detials)
{
DetailItem.OrderKvid = OrderItem.Kvid;
DetailItem.Kvid = Guid.NewGuid();
DetailItem.name = detail.Name;
DetailItem.code = detail.Code;
DetailItem.part = detail.Part;
conn.Insert(DetailItem);
}
OrderItem.CheckNumbers = CheckNumbers;
OrderItem.Name = Name;
OrderItem.CBrand = CBrand;
OrderItem.Brand = Brand;
OrderItem.Style = Style;
OrderItem.Standard = Standard;
OrderItem.TestLevel = (5/TestLevel.ToInt()).ToString();
OrderItem.TestInstitute = TestInstitute;
OrderItem.Quarity = Quarity;
OrderItem.Contains = Contains;
OrderItem.PayType = PayType;
OrderItem.TestType = TestType;
OrderItem.Supplier = Supplier;
OrderItem.Color = Color;
OrderItem.Part = Part;
OrderItem.Money = Money;
OrderItem.Type = Type;
OrderItem.OriginalReportNo = OriginalReportNo;
OrderItem.OriginalStyle = OriginalStyle;
OrderItem.OriginalPO = OriginalPO;
conn.Insert(OrderItem);
_trans.Commit();
rtns.ResponseCode = 1;
rtns.ResponseMsg = "正常接收";
}
catch (Exception ex)
{
if (_trans != null) _trans.Rollback();
rtns.ResponseCode = 0;
rtns.ResponseMsg = "接收失败,异常原因:"+ex;
}
return rtns;
}
}
//lism业务人员确认收到拉夏寄过来的货物接口
public class OrderStatusTo1 : RestfulExecution<LaXiaOrder>
{
public string CheckNumbers { get; set; }
public override object OnExecution(IRequest req, IResponse res)
{
LaXiaOrder order = null;
var conn = KiviiContext.GetOpenedDbConnection<LaXiaOrder>();
var queryOrder = conn.From<LaXiaOrder>().Where(o => o.CheckNumbers == CheckNumbers);
order = conn.Select(queryOrder).FirstOrDefault();
if (order == null) throw new Exception("未查询到该编号的信息!");
else if (order.Status == 1) throw new Exception("已存在该编号的样品信息,请核实后操作!");
else if (order.Status == 0)
{
order.Status = 1;
order.AddOnlyProperties(o => o.Status);
conn.UpdateOnly(order);
order.RemoveAllOnlyProperties();
}
else throw new Exception("状态异常,无法操作,请联系管理员!");
return order;
}
}
public class TestPdf
{
public string FileName { get; set; }
public string FilePath { get; set; }
}
//状态反馈至拉夏的接口 10:不接受 20:已接收 30:已修改 40:已完成
public class TestResultResponse
{
public string Result { get; set; }
public string Message { get; set; }
}
[Route("/plmservice/TestInstitute2scm")]
public class TestResult:IReturn<TestResultResponse>
{
public string userName { get; set; }
public string pwd { get; set; }
public string testInstitute { get; set; }
public string supplier { get; set; }
public string CheckNumbers { get; set; }
public string style { get; set; }
public int status { get; set; }
public string standard { get; set; }
public string testLevel { get; set; }
public string quarity { get; set; }
public string contains { get; set; }
public int result { get; set; }
public List<LaXiaOrderDetail> detail { get; set; }
public List<TestPdf> pdf { get; set; }
}
public class StatusBackToLaxia : RestfulExecution<LaXiaOrder>
{
public string CheckNumbers { get; set; }
public int Status { get; set; }
private IDbTransaction _trans;
public override object OnExecution(IRequest req, IResponse res)
{
JsonServiceClient client = new JsonServiceClient("http://222.73.66.84:8089");
var conn = KiviiContext.GetOpenedDbConnection<LaXiaOrder>();
var query = conn.From<LaXiaOrder>().Where(o => o.CheckNumbers == CheckNumbers);
var queryTest = conn.Select(query).FirstOrDefault();
var rtns = new TestResultResponse();
_trans = conn.OpenTransaction();
try
{
if (queryTest == null)
{
throw new Exception("操作异常,检测单号不存在!");
}
var testResult = new TestResult
{
userName = "test",
pwd = "password",
testInstitute = queryTest.TestInstitute,
CheckNumbers = CheckNumbers,
supplier = queryTest.Supplier,
style = queryTest.Style,
status = Status
};
var connLims = KiviiContext.GetOpenedDbConnection<Contract>();
var query2 = connLims.From<Contract>();
//query2.Select(o => new { o.OrderID });
var contractList = connLims.Select(query2);
//只有在状态为已接收和已修改时,同步在lims系统中创建合同
if (!contractList.Exists(o => o.OrderID == CheckNumbers)&&(Status==20||Status==30))
{
var newContract = new Contract();
newContract.Kvid = Guid.NewGuid();
newContract.ReportId = "LX"+ DateTime.Now.Year.ToString()+ DateTime.Now.Hour.ToString()+ DateTime.Now.Minute.ToString()+ DateTime.Now.Second.ToString();
newContract.OrderID = CheckNumbers;
newContract.CustomerOrgName = queryTest.CBrand;
newContract.ProductBrand = queryTest.Brand;
newContract.ProductModel = queryTest.Style;
newContract.StandardOverView = queryTest.Standard;
var detailList = conn.Select<LaXiaOrderDetail>(o => o.OrderKvid == queryTest.Kvid);
var detailString="";
foreach(var detail in detailList)
{
detailString += detail.name+",";
}
var productSafetyGrade = queryTest.TestLevel == "1" ? "A等品" : queryTest.TestLevel == "2" ? "B等品" : queryTest.TestLevel == "3" ? "C等品" : "";
newContract.ProductSafetyGrade = queryTest.TestLevel;
var productGrade = queryTest.Quarity == "1" ? "合格品" : queryTest.Quarity == "2" ? "一等品" : queryTest.Quarity == "3" ? "优等品" : "";
newContract.ProductGrade = queryTest.Quarity;
newContract.Metadata["Eremark"] = $"检验依据:{queryTest.Standard+Environment.NewLine}检验项目:{detailString+Environment.NewLine}样品等级:{ productGrade+Environment.NewLine}安全类别:{ productSafetyGrade}";
connLims.Insert(newContract);
//同时更新该检测申请的 bizkvid为刚刚创建的合同
queryTest.BizKvid = newContract.Kvid;
queryTest.AddOnlyProperties(o => o.BizKvid);
}
if (Status == 30)//先更新好拉夏发送过来的数据之后才能调用30状态的已修改接口
{
testResult.standard = queryTest.Standard;
testResult.testLevel = queryTest.TestLevel;
testResult.quarity = queryTest.Quarity;
testResult.contains = queryTest.Contains;
}
//状态:已完成
if (Status == 40)
{
var query3 = conn.From<LaXiaOrderDetail>().Where(o => o.OrderKvid == queryTest.Kvid);
var queryTestDetailList = conn.Select(query3).ToList();
var currentContract = connLims.Select<Contract>(o => o.Kvid == queryTest.BizKvid).FirstOrDefault();
testResult.standard = currentContract.StandardOverView;
testResult.testLevel = currentContract.ProductSafetyGrade;
testResult.quarity = currentContract.ProductGrade;
testResult.contains = currentContract.ProductName;
//查询所有检测项目中是否有不合格的,来返回result给拉夏接口,1:通过,2:不通过
var query4 = conn.From<Lims.Entities.Task>().Where(o => o.ContractKvid == queryTest.BizKvid);
var taskList = connLims.Select(query4);
if (taskList.Exists(o => o.IsQualified == "不合格"))
{
testResult.result = 2;
}
else
{
testResult.result = 1;
}
var testDetailList = new List<LaXiaOrderDetail>();
//查询已完成的检测,去查他的项目,然后到项目对应表中去查对应的项目名称和编号
//var groups = taskList.
//var query5 = conn.From<TestItem>();
var testItemList = conn.Select<TestItem>();
foreach(var task in taskList)
{
var laxiaOrderDetail = new LaXiaOrderDetail();
laxiaOrderDetail.type = "理化";
laxiaOrderDetail.practialWay = task.TestMethod;
laxiaOrderDetail.practialResult = task.MeasuredValue;
laxiaOrderDetail.practialAdvice = task.IsQualified;
laxiaOrderDetail.part = queryTest.Part;
laxiaOrderDetail.color = queryTest.Color;
laxiaOrderDetail.requirement = task.ReferenceValue;
laxiaOrderDetail.cost = Math.Round(task.RealFee,2,MidpointRounding.AwayFromZero).ToString();
laxiaOrderDetail.unit = task.Unit;
//处理Required为1:要求检测和2:新增检测
if (queryTestDetailList.Exists(o => o.name == task.Title))
{
laxiaOrderDetail.required = "1";
}
else
{
laxiaOrderDetail.required = "2";
}
//处理返回的项目对应表中的名称和对应的编码
//处理大项
if (task.ParentKvid == Guid.Empty)
{
laxiaOrderDetail.name = task.Title;
if (testItemList.FirstOrDefault(o => o.Name == task.Title)==null)
{
laxiaOrderDetail.code = "000000";
}
else
{
laxiaOrderDetail.code=testItemList.FirstOrDefault(o => o.Name == task.Title).Code;
}
}
//处理小项
else
{
laxiaOrderDetail.name = task.TitleEx;
testItemList = testItemList.Where(o => o.ParentName == task.Title).ToList();
if(testItemList.FirstOrDefault(o => o.Name == task.TitleEx) == null)
{
laxiaOrderDetail.code = "000000";
}
else
{
laxiaOrderDetail.code = testItemList.FirstOrDefault(o => o.Name == task.TitleEx).Code;
}
}
testDetailList.Add(laxiaOrderDetail);
}
//处理Required为3:删除检测
foreach(var testDetail in queryTestDetailList)
{
if (!taskList.Exists(o => o.Title == testDetail.name)||!taskList.Exists(o=>o.TitleEx==testDetail.name))
{
var laxiaOrderDetail = new LaXiaOrderDetail();
laxiaOrderDetail = testDetail;
laxiaOrderDetail.required = "3";
testDetailList.Add(laxiaOrderDetail);
}
}
testResult.detail = testDetailList;
//处理返回pdf,先要查到该合同
var testPdfList = new List<TestPdf>();
var testPdf = new TestPdf();
testPdf.FileName = "检测结果pdf";
testPdf.FilePath = "http://apps.jst-gov.com/Reports/" + currentContract.Kvid + "/" + currentContract.ReportId + ".pdf";
testPdfList.Add(testPdf);
testResult.pdf = testPdfList;
}
//数据返回给拉夏后,同步更新原拉夏发送的数据状态
if(Status == 10 || Status == 20 || Status == 30 || Status == 40)
{
queryTest.Status = Status;
queryTest.AddOnlyProperties(o => o.Status);
conn.UpdateOnly(queryTest);
}
else
{
throw new Exception("非法参数!");
}
rtns = client.Post(testResult);
_trans.Commit();
_trans.Dispose();
}
catch(Exception ex)
{
_trans.Rollback();
throw ex;
}
return rtns;
}
}
}
<?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>{2E647BA2-04E6-4146-A05F-DA062D27873D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Jst.Lims.LaxiaSdk</RootNamespace>
<AssemblyName>Jst.Lims.LaxiaSdk</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>bin\Debug\</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>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kivii.Common.V4.5, Version=5.4.2019.2280, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Kivii.Common.5.4.2019.2280\lib\net45\Kivii.Common.V4.5.dll</HintPath>
</Reference>
<Reference Include="Kivii.Core.V4.5, Version=5.4.2019.2280, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Kivii.Core.5.4.2019.2280\lib\net45\Kivii.Core.V4.5.dll</HintPath>
</Reference>
<Reference Include="Kivii.Linq.V4.5, Version=5.4.2019.2280, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Kivii.Linq.5.4.2019.2280\lib\net45\Kivii.Linq.V4.5.dll</HintPath>
</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\LaXiaOrder.cs" />
<Compile Include="Entities\LaXiaOrderDetail.cs" />
<Compile Include="Entities\TestItem.cs" />
<Compile Include="Extensions\LaXiaApi.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Transforms\RestfulLaXiaOrder.cs" />
<Compile Include="Transforms\RestfulLaXiaOrderDetail.cs" />
<Compile Include="Transforms\RestfulTestItem.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Jst.Lims.Contracts\Src\Jst.Lims.Contracts.V4.5.csproj">
<Project>{fd63a9a8-9fdb-4292-9113-b734f0900aba}</Project>
<Name>Jst.Lims.Contracts.V4.5</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Jst.Lims.LaxiaSdk")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Jst.Lims.LaxiaSdk")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("2e647ba2-04e6-4146-a05f-da062d27873d")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using Jst.Lims.LaxiaSdk.Entities;
using Kivii;
using Kivii.Linq;
using Kivii.Web;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Transforms
{
//public class LaXiaOrderCreate : RestfulCreate<LaXiaOrder>
//{ }
public class LaXiaOrderRead : RestfulRead<LaXiaOrder>
{ }
public class LaXiaOrderUpdate : RestfulUpdate<LaXiaOrder>
{ }
public class LaXiaOrderDelete : RestfulDelete<LaXiaOrder>
{
private IDbTransaction _trans;
private List<LaXiaOrderDetail> _details;
public override bool OnPreRestfulDelete(IRequest req, IResponse res, IDbConnection dbConnection, IRestfulDeleteResponse<LaXiaOrder> rtns)
{
_details = dbConnection.Select<LaXiaOrderDetail>(o => Sql.In(o.OrderKvid, Kvids));
_trans = dbConnection.OpenTransaction();
foreach (var detail in _details)
{
detail.Status = -1;
detail.AddOnlyProperties(o => o.Status);
detail.UpdateTime = DateTime.Now;
detail.AddOnlyProperties(o => o.UpdateTime);
dbConnection.UpdateOnly(detail);
}
return base.OnPreRestfulDelete(req, res, dbConnection, rtns);
}
public override bool OnPostRestfulDelete(IRequest req, IResponse res, IDbConnection dbConnection, IRestfulDeleteResponse<LaXiaOrder> rtns)
{
if (_trans != null) _trans.Commit();
return base.OnPostRestfulDelete(req, res, dbConnection, rtns);
}
}
public class LaXiaOrderQuery : RestfulQuery<LaXiaOrder>
{ }
}
using Jst.Lims.LaxiaSdk.Entities;
using Kivii;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Transforms
{
public class LaXiaOrderDetailRead : RestfulRead<LaXiaOrderDetail>
{ }
public class LaXiaOrderDetailQuery : RestfulQuery<LaXiaOrderDetail>
{ }
}
using Jst.Lims.LaxiaSdk.Entities;
using Kivii;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jst.Lims.LaxiaSdk.Transforms
{
public class TestItemCreate : RestfulCreate<TestItem>
{
}
public class TestItemDelete : RestfulDelete<TestItem>
{
}
public class TestItemRead : RestfulRead<TestItem>
{
}
public class TestItemQuery : RestfulQuery<TestItem>
{
}
public class TestItemUpdate : RestfulUpdate<TestItem>
{
}
}
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Kivii.Common" version="5.4.2019.2280" targetFramework="net45" />
<package id="Kivii.Core" version="5.4.2019.2280" targetFramework="net45" />
<package id="Kivii.Linq" version="5.4.2019.2280" 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