Commit 1fa10a19 by 陶然

优化

parent 795fb41a
......@@ -37,5 +37,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("5.4.2023.8070")]
[assembly: AssemblyFileVersion("5.4.2023.8070")]
[assembly: AssemblyVersion("5.4.2023.10080")]
[assembly: AssemblyFileVersion("5.4.2023.10080")]
......@@ -716,6 +716,11 @@ namespace Kivii.Samples
package.AddOnlyProperties(o => o.Status);
conn.UpdateOnly(package);
}
var th = KiviiContext.NewThread(() =>
{
package.PackageCalculateTime();
});
th.Start();
}
}
catch (Exception ex)
......@@ -813,6 +818,24 @@ namespace Kivii.Samples
return existSample;
}
public static Sample PackageCalculateTime(this Sample package)
{
(package == null).ThrowIfTrue("请传入需要计算最大最小时间的包裹信息!");
if (package.Kvid == Guid.Empty) throw new Exception("请传入需要计算最大最小时间的包裹Kvid");
var conn = KiviiContext.GetOpenedDbConnection<Sample>();
package = conn.SingleById<Sample>(package.Kvid);
(package == null).ThrowIfTrue("请传入需要计算最大最小时间的包裹信息!");
if (package.Type != SampleType.Package) throw new Exception("不正确的类型!");
DateTime? maxDealTime = conn.Scalar<Sample, DateTime?>(o => Sql.Max(o.DealTime), o => o.PackageKvid == package.Kvid);
DateTime? maxDeadTime = conn.Scalar<Sample, DateTime?>(o => Sql.Max(o.DeadTime), o => o.PackageKvid == package.Kvid);
package.DealTime = maxDealTime;
package.AddOnlyProperties(o => o.DealTime);
package.DeadTime = maxDeadTime;
package.AddOnlyProperties(o => o.DeadTime);
conn.UpdateOnly(package);
return package;
}
/// <summary>
/// 获取当前指定样品所在地
/// </summary>
......
......@@ -323,6 +323,14 @@ namespace Kivii.Samples.Transforms
{
rtns.Results = packages.PackageClear(local, Route, conn);
trans.Commit();
var th = KiviiContext.NewThread(() =>
{
foreach (var item in packages)
{
item.PackageCalculateTime();
}
});
th.Start();
}
catch (Exception ex)
{
......@@ -344,16 +352,21 @@ namespace Kivii.Samples.Transforms
public override object OnExecution(IRequest req, IResponse res)
{
var conn = KiviiContext.GetOpenedDbConnection<Sample>();
var queryPackageKvids = conn.From<Sample>();
queryPackageKvids.Where(o => o.PackageKvid != Guid.Empty);
if (DealTime != DateTime.MinValue) queryPackageKvids.And(o => o.DealTime < DealTime);
if (DeadTime != DateTime.MinValue) queryPackageKvids.And(o => o.DeadTime < DeadTime);
queryPackageKvids.GroupBy(o => o.PackageKvid);
queryPackageKvids.Select(o => o.PackageKvid);
var queryPackages = conn.From<Sample>();
queryPackages.Where(o => o.Status == (int)PackageStatus.Inbound && Sql.In(o.Kvid, queryPackageKvids));
queryPackages.Where(o => o.Status == (int)PackageStatus.Inbound);
if (!Name.IsNullOrEmpty()) queryPackages.And(o => o.Name.Contains(Name));
if (DealTime != DateTime.MinValue)
{
queryPackages.And(o => o.DealTime <= DealTime);
queryPackages.OrderBy(o => o.DealTime);
}
if (DeadTime != DateTime.MinValue)
{
queryPackages.And(o => o.DeadTime <= DeadTime);
queryPackages.OrderBy(o => o.DeadTime);
}
var packages = conn.Select(queryPackages);
var rtns = new RestfulQueryResponse<Sample>();
......@@ -366,6 +379,35 @@ namespace Kivii.Samples.Transforms
}
[RequiresAnyRole(SystemRoles.Everyone)]
[Api(Description = "包裹最大时间计算")]
public class SamplePackageCalculateTime : RestfulExecution<Sample>
{
public Guid PackageKvid { get; set; }//要流转样品信息
public List<Guid> PackageKvids { get; set; }//要流转样品信息
public override object OnExecution(IRequest req, IResponse res)
{
(PackageKvid == Guid.Empty && PackageKvids.IsNullOrEmpty()).ThrowIfTrue("缺少要打包的样品信息!");
if (PackageKvids.IsNullOrEmpty()) PackageKvids = new List<Guid>();
if (PackageKvid != Guid.Empty) PackageKvids.Add(PackageKvid);
var rtns = new RestfulQueryResponse<Sample>();
rtns.Results = new List<Sample>();
foreach (var kvid in PackageKvids)
{
var package = new Sample();
package.Kvid = kvid;
package.PackageCalculateTime();
rtns.Results.Add(package);
}
rtns.Total = rtns.Results.Count;
return rtns;
}
}
[RequiresAnyRole(SystemRoles.Everyone)]
[Api(Description = "打包样查找")]
public class SamplePrePackaging : RestfulExecution<Sample>
{
......@@ -607,6 +649,12 @@ namespace Kivii.Samples.Transforms
{
rtns.Results = samples.Packaging(package, local, Route, conn);
trans.Commit();
var th = KiviiContext.NewThread(() =>
{
package.PackageCalculateTime();
});
th.Start();
}
catch (Exception ex)
{
......@@ -659,6 +707,13 @@ namespace Kivii.Samples.Transforms
{
rtns.Results = samples.PackageMoving(package, local, Route, conn);
trans.Commit();
var th = KiviiContext.NewThread(() =>
{
package.PackageCalculateTime();
});
th.Start();
}
catch (Exception ex)
{
......@@ -712,6 +767,7 @@ namespace Kivii.Samples.Transforms
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