Commit bbc15d01 by 陶然

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

parent 623a41bf
......@@ -233,6 +233,53 @@ namespace Kivii.Samples.Transforms
}
[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 = "打包样查找")]
public class SamplePrePackaging : RestfulExecution<Sample>
{
......@@ -396,20 +443,30 @@ namespace Kivii.Samples.Transforms
public class SampleUnPackaging : RestfulExecution<Sample>
{
public Guid Kvid { get; set; }//要取样品的信息
public List<Guid> Kvids { get; set; }//要取样品的信息
//public Guid Kvid { get; set; }//要取样品的信息
public Location Location { get; set; }//地点位置信息,只需要InternalCode
public Route Route { get; set; }//自定义路由信息,可不填写
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.InternalCode.IsNullOrEmpty()).ThrowIfTrue("缺少取样地点配置InternalCode信息");
var conn = KiviiContext.GetOpenedDbConnection<Location>();
var local = conn.Single<Location>(o => o.InternalCode == Location.InternalCode);
(local == null).ThrowIfTrue($"未找到{Location.InternalCode}打包地点配置信息!");
var sample = new Sample();
sample.Kvid = Kvid;
if (Kvids.IsNullOrEmpty()) Kvids = new List<Guid>();
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>();
rtns.Results = new List<Sample>();
......@@ -417,8 +474,11 @@ namespace Kivii.Samples.Transforms
var trans = conn.OpenTransaction();
try
{
var result = sample.UnPackaging(local, Route, conn);
rtns.Results.Add(result);
foreach (var item in samples)
{
var result = item.UnPackaging(local, Route, conn);
rtns.Results.Add(result);
}
trans.Commit();
}
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