Commit 4b1207bb by Neo Turing

优化

parent babb4f2a
......@@ -8,8 +8,19 @@ namespace Kivii.Third.Scjgj
{
internal class Configs
{
public const string TableNamePlan = "PM_PLAN";
public const string TableNamePlanDetail = "PM_PLAN_SUB";
public const string TableNameCary = "PM_CARY";
public const string TableNameProduceUnit = "PM_PRODUCE_UNIT";
public const string TableNameExecUint = "PM_EXEC_UINT";
public const string TableNameEcPlatform = "PM_EC_PLATFORM";
public const string TableNameOther = "PM_OTHER";
public const string TableNameLive = "PM_LIVE";
public const string TableNameBigData = "CORE_BIG_DATA";
public const string TableNamePlanUp = "PM_PLAN_UP";
public const string TableNameTaskSource = "PM_TASK_SOURCE";
public const string ConnectionString = "Data Source=218.94.159.228:8083/sjdb;User Id=sjqzsfzydbl;Password=admin;";
public const string ConnectionProviderName = "Oracle";
}
}
using Kivii.DataAnnotations;
using Kivii.Funq;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -371,13 +372,18 @@ namespace Kivii.Third.Scjgj.Entities
/// <summary>
/// 受检单位编号
/// </summary>
public int CARY_ID { get; set; }
public int? CARY_ID { get; set; }
[Ignore]
public Cary Cary { get; set; }
/// <summary>
/// 生产单位编号
/// </summary>
public int PRO_ID { get; set; }
public int? PRO_ID { get; set; }
[Ignore]
public ProduceUnit ProduceUnit { get; set; }
/// <summary>
/// 受检产品编号
/// </summary>
......@@ -458,7 +464,10 @@ namespace Kivii.Third.Scjgj.Entities
/// <summary>
/// 抽样单位编号
/// </summary>
public int EXEC_ID { get; set; }
public int? EXEC_ID { get; set; }
[Ignore]
public ExecUint ExecUint { get; set; }
/// <summary>
/// 备注
......@@ -570,7 +579,10 @@ namespace Kivii.Third.Scjgj.Entities
/// <summary>
/// 电商平台编号
/// </summary>
public int EC_ID { get; set; }
public int? EC_ID { get; set; }
[Ignore]
public EcPlatform EcPlatform { get; set; }
/// <summary>
/// 发票号
......@@ -928,7 +940,10 @@ namespace Kivii.Third.Scjgj.Entities
/// <summary>
/// 其他来源单位编码
/// </summary>
public int OTHER_ID { get; set; }
public int? OTHER_ID { get; set; }
[Ignore]
public Other Other { get; set; }
/// <summary>
/// 批次数据同步状态
......@@ -989,5 +1004,4 @@ namespace Kivii.Third.Scjgj.Entities
[StringLength(30)]
public string IMG_111_GROUP_ID { get; set; }
}
}
using Kivii.Lims.Entities;
using Kivii.Funq;
using Kivii.Lims.Entities;
using Kivii.Linq;
using Kivii.Third.Scjgj.Entities;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
......@@ -10,14 +13,247 @@ namespace Kivii.Third.Scjgj
{
internal static class Extensions
{
internal static Report ConvertTo(this PlanDetail item)
internal static PlanDetail ConvertTo(this PlanDetail item, IDbConnection conn = null)
{
Report rtns = new Report();
rtns.Metadata = new Dictionary<string, string>();
rtns.Metadata["SamplingOrderID"] = $"{item.PLAN_CODE}{item.LOT_NUM}";
rtns.SampleSourceBatchNumber = item.PLAN_CODE;
PlanDetail rtns = new PlanDetail();
bool connDispose = false;
if (conn == null)
{
connDispose = true;
var factory = Kivii.Linq.LinqUtils.GetLinqConnectionFactory("Data Source=218.94.159.228:8083/sjdb;User Id=sjqzsfzydbl;Password=admin;", "Oracle");
conn = factory.OpenDbConnection();
}
switch (item.CHECK_STATE)
{
case "1":
rtns = item.ConvertToNormal(conn);
break;
case "2":
rtns = item.ConvertToReject(conn);
break;
case "3":
rtns = item.ConvertToUnable(conn);
break;
case "4":
rtns = item.ConvertToFinished(conn);
break;
case "5":
rtns = item.ConvertToMarket(conn);
break;
case "6":
rtns = item.ConvertToOther(conn);
break;
case null:
rtns = item.ConvertToCommerce(conn);
break;
default:
break;
}
if (connDispose) { conn.Dispose(); }
return rtns;
}
/// <summary>
/// 正常抽样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToNormal(this PlanDetail item, IDbConnection conn)
{
if (item.CARY_ID != null)
{
item.Cary = GetCaryById(conn, item.CARY_ID);
}
if (item.PRO_ID != null)
{
item.ProduceUnit = GetProduceUnitById(conn, item.PRO_ID);
}
if (item.EXEC_ID != null)
{
item.ExecUint = GetExecUintById(conn, item.EXEC_ID);
}
return item;
}
/// <summary>
/// 拒绝采样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToReject(this PlanDetail item, IDbConnection conn)
{
return item;
}
/// <summary>
/// 无法抽样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToUnable(this PlanDetail item, IDbConnection conn)
{
return item;
}
/// <summary>
/// 成品油抽样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToFinished(this PlanDetail item, IDbConnection conn)
{
return item;
}
/// <summary>
/// 市场抽样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToMarket(this PlanDetail item, IDbConnection conn)
{
if (item.CARY_ID != null)
{
item.Cary = GetCaryById(conn, item.CARY_ID);
}
if (item.EXEC_ID != null)
{
item.ExecUint = GetExecUintById(conn, item.EXEC_ID);
}
if (item.PRO_ID != null)
{
item.ProduceUnit = GetProduceUnitById(conn, item.PRO_ID);
}
return item;
}
/// <summary>
/// 其他抽样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToOther(this PlanDetail item, IDbConnection conn)
{
if (item.CARY_ID != null)
{
item.Cary = GetCaryById(conn, item.CARY_ID);
}
if (item.EXEC_ID != null)
{
item.ExecUint = GetExecUintById(conn, item.EXEC_ID);
}
if (item.OTHER_ID != null)
{
item.Other = GetOtherById(conn, item.OTHER_ID);
}
return item;
}
/// <summary>
/// 电商买样
/// </summary>
/// <param name="item"></param>
/// <param name="conn"></param>
/// <returns></returns>
internal static PlanDetail ConvertToCommerce(this PlanDetail item, IDbConnection conn)
{
if (item.CARY_ID != null)
{
item.Cary = GetCaryById(conn, item.CARY_ID);
}
if (item.EXEC_ID != null)
{
item.ExecUint = GetExecUintById(conn, item.EXEC_ID);
}
if (item.EC_ID != null)
{
item.EcPlatform = GetEcPlatformById(conn, item.EC_ID);
}
if (item.PRO_ID != null)
{
item.ProduceUnit = GetProduceUnitById(conn, item.PRO_ID);
}
return item;
}
/// <summary>
/// 受检单位信息
/// </summary>
/// <param name="conn"></param>
/// <param name="caryId"></param>
/// <returns></returns>
internal static Cary GetCaryById(IDbConnection conn, int? caryId)
{
if (caryId == null) return null;
var query = conn.From<Cary>();
query.Where(o => o.ID == caryId);
return conn.Single(query);
}
/// <summary>
/// 生产单位信息
/// </summary>
/// <param name="conn"></param>
/// <param name="proId"></param>
/// <returns></returns>
internal static ProduceUnit GetProduceUnitById(IDbConnection conn, int? proId)
{
if (proId == null) return null;
var query = conn.From<ProduceUnit>();
query.Where(o => o.ID == proId);
return conn.Single(query);
}
/// <summary>
/// 抽样机构信息
/// </summary>
/// <param name="conn"></param>
/// <param name="execId"></param>
/// <returns></returns>
internal static ExecUint GetExecUintById(IDbConnection conn, int? execId)
{
if (execId == null) return null;
var query = conn.From<ExecUint>();
query.Where(o => o.ID == execId);
return conn.Single(query);
}
/// <summary>
/// 电商单位信息
/// </summary>
/// <param name="conn"></param>
/// <param name="ecId"></param>
/// <returns></returns>
internal static EcPlatform GetEcPlatformById(IDbConnection conn, int? ecId)
{
if (ecId == null) return null;
var query = conn.From<EcPlatform>();
query.Where(o => o.EC_ID == ecId);
return conn.Single(query);
}
/// <summary>
/// 其他来源单位信息
/// </summary>
/// <param name="conn"></param>
/// <param name="otherId"></param>
/// <returns></returns>
internal static Other GetOtherById(IDbConnection conn, int? otherId)
{
if (otherId == null) return null;
var query = conn.From<Other>();
query.Where(o => o.ID == otherId);
return conn.Single(query);
}
}
}
......@@ -54,8 +54,9 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Configs.cs" />
<Compile Include="Entities\OtherEntity.cs" />
<Compile Include="Extensions.cs" />
<Compile Include="Plan.cs" />
<Compile Include="Entities\Plan.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RestfulPlan.cs" />
</ItemGroup>
......
......@@ -26,7 +26,7 @@ namespace Kivii.Third.Scjgj
{
var rtns = new RestfulQueryResponse<Plan>();
rtns.Results = new List<Plan>();
var factory = Kivii.Linq.LinqUtils.GetLinqConnectionFactory("Data Source=218.94.159.228:8083/sjdb;User Id=sjqzsfzydbl;Password=admin;", "Oracle");
var factory = Kivii.Linq.LinqUtils.GetLinqConnectionFactory(Configs.ConnectionString, Configs.ConnectionProviderName);
using (var conn = factory.OpenDbConnection())
{
try
......@@ -86,7 +86,7 @@ namespace Kivii.Third.Scjgj
{
var rtns = new RestfulQueryResponse<PlanDetail>();
rtns.Results = new List<PlanDetail>();
var factory = Kivii.Linq.LinqUtils.GetLinqConnectionFactory("Data Source=218.94.159.228:8083/sjdb;User Id=sjqzsfzydbl;Password=admin;", "Oracle");
var factory = Kivii.Linq.LinqUtils.GetLinqConnectionFactory(Configs.ConnectionString, Configs.ConnectionProviderName);
using (var conn = factory.OpenDbConnection())
{
try
......@@ -134,7 +134,26 @@ namespace Kivii.Third.Scjgj
{
BatchNumber.ThrowIfNullOrEmpty("请传入计划编号");
PlanNumber.ThrowIfNullOrEmpty("请传入批次号");
return base.OnExecution(req, res);
var rtns = new RestfulQueryResponse<PlanDetail>();
rtns.Results = new List<PlanDetail>();
var factory = Kivii.Linq.LinqUtils.GetLinqConnectionFactory(Configs.ConnectionString, Configs.ConnectionProviderName);
using (var conn = factory.OpenDbConnection())
{
try
{
var query = conn.From<PlanDetail>();
query.Where(o => o.PLAN_CODE == BatchNumber && o.LOT_NUM == PlanNumber);
var planDetail = conn.Single(query);
var result = planDetail.ConvertTo(conn);
rtns.Results.Add(result);
}
catch (Exception ex)
{
throw ex;
}
}
return rtns;
}
}
}
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