Commit bbc15d01 by 陶然

增加了样品包裹清空的接口,优化了包裹取样接口传递的参数,支持批量取样

parent 623a41bf
...@@ -233,6 +233,53 @@ namespace Kivii.Samples.Transforms ...@@ -233,6 +233,53 @@ namespace Kivii.Samples.Transforms
} }
[RequiresAnyRole(SystemRoles.Everyone)] [RequiresAnyRole(SystemRoles.Everyone)]
[Api(Description = "包裹清空")]
public class SamplePackageClear : RestfulExecution<Sample>
{
public Guid PackageKvid { get; set; }//要流转样品信息
public List<Guid> PackageKvids { get; set; }//要流转样品信息
public Location Location { get; set; }//地点位置信息,只需要InternalCode
public Route Route { get; set; }//自定义路由信息,可不填写
public override object OnExecution(IRequest req, IResponse res)
{
(PackageKvid == Guid.Empty && PackageKvids.IsNullOrEmpty()).ThrowIfTrue("缺少要打包的样品信息!");
Location.ThrowIfNull("缺少打包地点信息!");
(Location.InternalCode.IsNullOrEmpty()).ThrowIfTrue("缺少打包地点配置InternalCode信息");
var conn = KiviiContext.GetOpenedDbConnection<Location>();
var local = conn.Single<Location>(o => o.InternalCode == Location.InternalCode);
(local == null).ThrowIfTrue($"未找到{Location.InternalCode}打包地点配置信息!");
if (PackageKvids.IsNullOrEmpty()) PackageKvids = new List<Guid>();
if (PackageKvid != Guid.Empty) PackageKvids.Add(PackageKvid);
var packages = new List<Sample>();
foreach (var kvid in PackageKvids)
{
var package = new Sample();
package.Kvid = kvid;
packages.Add(package);
}
var rtns = new RestfulExecutionResponse<Sample>();
rtns.Results = new List<Sample>();
var trans = conn.OpenTransaction();
try
{
rtns.Results = packages.PackageClear(local, Route, conn);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
return rtns;
}
}
[RequiresAnyRole(SystemRoles.Everyone)]
[Api(Description = "打包样查找")] [Api(Description = "打包样查找")]
public class SamplePrePackaging : RestfulExecution<Sample> public class SamplePrePackaging : RestfulExecution<Sample>
{ {
...@@ -396,20 +443,30 @@ namespace Kivii.Samples.Transforms ...@@ -396,20 +443,30 @@ namespace Kivii.Samples.Transforms
public class SampleUnPackaging : RestfulExecution<Sample> public class SampleUnPackaging : RestfulExecution<Sample>
{ {
public Guid Kvid { get; set; }//要取样品的信息 public Guid Kvid { get; set; }//要取样品的信息
public List<Guid> Kvids { get; set; }//要取样品的信息
//public Guid Kvid { get; set; }//要取样品的信息
public Location Location { get; set; }//地点位置信息,只需要InternalCode public Location Location { get; set; }//地点位置信息,只需要InternalCode
public Route Route { get; set; }//自定义路由信息,可不填写 public Route Route { get; set; }//自定义路由信息,可不填写
public override object OnExecution(IRequest req, IResponse res) public override object OnExecution(IRequest req, IResponse res)
{ {
(Kvid == Guid.Empty).ThrowIfTrue("缺少要要取样品信息!"); (Kvid == Guid.Empty && Kvids.IsNullOrEmpty()).ThrowIfTrue("缺少要取样品的信息!");
//(Kvid == Guid.Empty).ThrowIfTrue("缺少要要取样品信息!");
Location.ThrowIfNull("缺少取样地点信息!"); Location.ThrowIfNull("缺少取样地点信息!");
(Location.InternalCode.IsNullOrEmpty()).ThrowIfTrue("缺少取样地点配置InternalCode信息"); (Location.InternalCode.IsNullOrEmpty()).ThrowIfTrue("缺少取样地点配置InternalCode信息");
var conn = KiviiContext.GetOpenedDbConnection<Location>(); var conn = KiviiContext.GetOpenedDbConnection<Location>();
var local = conn.Single<Location>(o => o.InternalCode == Location.InternalCode); var local = conn.Single<Location>(o => o.InternalCode == Location.InternalCode);
(local == null).ThrowIfTrue($"未找到{Location.InternalCode}打包地点配置信息!"); (local == null).ThrowIfTrue($"未找到{Location.InternalCode}打包地点配置信息!");
var sample = new Sample(); if (Kvids.IsNullOrEmpty()) Kvids = new List<Guid>();
sample.Kvid = Kvid; if (Kvid != Guid.Empty) Kvids.Add(Kvid);
List<Sample> samples = new List<Sample>();
foreach (var kvid in Kvids)
{
var sample = new Sample();
sample.Kvid = kvid;
samples.Add(sample);
}
var rtns = new RestfulExecutionResponse<Sample>(); var rtns = new RestfulExecutionResponse<Sample>();
rtns.Results = new List<Sample>(); rtns.Results = new List<Sample>();
...@@ -417,8 +474,11 @@ namespace Kivii.Samples.Transforms ...@@ -417,8 +474,11 @@ namespace Kivii.Samples.Transforms
var trans = conn.OpenTransaction(); var trans = conn.OpenTransaction();
try try
{ {
var result = sample.UnPackaging(local, Route, conn); foreach (var item in samples)
rtns.Results.Add(result); {
var result = item.UnPackaging(local, Route, conn);
rtns.Results.Add(result);
}
trans.Commit(); trans.Commit();
} }
catch (Exception ex) catch (Exception ex)
......
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