|
|
@ -64,6 +64,60 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
return serializer.Serialize(list); |
|
|
return serializer.Serialize(list); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Rpc(RpcFlags.SkipAuth)] |
|
|
|
|
|
public static string GetFullGradeAndWeightList(DateTime date) |
|
|
|
|
|
{ |
|
|
|
|
|
var main = new JoinAlias(typeof(SecondOrder)); |
|
|
|
|
|
var order = new JoinAlias(typeof(OrderDetail)); |
|
|
|
|
|
var query = new DQueryDom(main); |
|
|
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("Order", order)); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("PlanNumber", order)); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID", order)); |
|
|
|
|
|
|
|
|
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "Date", date), DQCondition.EQ(order, "IsDrop", false))); |
|
|
|
|
|
var list = new List<object>(); |
|
|
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
|
|
{ |
|
|
|
|
|
using (var reader = session.ExecuteReader(query)) |
|
|
|
|
|
{ |
|
|
|
|
|
while (reader.Read()) |
|
|
|
|
|
{ |
|
|
|
|
|
var n = (int)reader[2]; |
|
|
|
|
|
var tang = (int)reader[3]; |
|
|
|
|
|
|
|
|
|
|
|
var entity = new |
|
|
|
|
|
{ |
|
|
|
|
|
OrderDetail_ID = (long)reader[0], |
|
|
|
|
|
Order = (int)reader[1], |
|
|
|
|
|
TangNumber = tang, |
|
|
|
|
|
MaoNumber = n - tang, |
|
|
|
|
|
WeightID = (long?)reader[4], |
|
|
|
|
|
}; |
|
|
|
|
|
list.Add(entity); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return serializer.Serialize(list); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Rpc(RpcFlags.SkipAuth)] |
|
|
|
|
|
public static string GetLivestock() |
|
|
|
|
|
{ |
|
|
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(Livestock))); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("Name")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("Technics")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("SortNum")); |
|
|
|
|
|
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("SortNum")); |
|
|
|
|
|
var list = query.EExecuteList<long, string, short, int?>().Select(x => new { ID = x.Item1, Name = x.Item2, Technics = x.Item3, SortNum = x.Item4 }); |
|
|
|
|
|
return serializer.Serialize(list); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static object _lock = new object(); |
|
|
static object _lock = new object(); |
|
|
[Rpc(RpcFlags.SkipAuth)] |
|
|
[Rpc(RpcFlags.SkipAuth)] |
|
|
public static long UpdateOrInsertDetailOrDelete(string json) |
|
|
public static long UpdateOrInsertDetailOrDelete(string json) |
|
|
@ -94,6 +148,59 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static object _lock2 = new object(); |
|
|
|
|
|
|
|
|
|
|
|
[Rpc(RpcFlags.SkipAuth)] |
|
|
|
|
|
public static string BatchSync(string json) |
|
|
|
|
|
{ |
|
|
|
|
|
lock (_lock2) |
|
|
|
|
|
{ |
|
|
|
|
|
var back = new List<Tuple<long, long>>(); |
|
|
|
|
|
var list = JsonConvert.DeserializeObject<List<GradeAndWeight_Detail>>(json); |
|
|
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
|
|
{ |
|
|
|
|
|
var idPair = GetLocalIdPair(session, list.Select(x => x.SID)); |
|
|
|
|
|
foreach (var entity in list) |
|
|
|
|
|
{ |
|
|
|
|
|
var exist = idPair.FirstOrDefault(x => x.Item1 == entity.SID); |
|
|
|
|
|
long? id = null; |
|
|
|
|
|
if (exist != null) |
|
|
|
|
|
id = exist.Item2; |
|
|
|
|
|
|
|
|
|
|
|
if (id.HasValue) |
|
|
|
|
|
{ |
|
|
|
|
|
entity.ID = id.Value; |
|
|
|
|
|
if (entity.IsDeleted) |
|
|
|
|
|
{ |
|
|
|
|
|
GradeAndWeightBL.Delete(entity.BarCode, session); |
|
|
|
|
|
session.Delete(new DmoIdentity(typeof(GradeAndWeight_Detail), entity.ID)); |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
session.Update(entity); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
session.Insert(entity); |
|
|
|
|
|
back.Add(new Tuple<long, long>(entity.SID, entity.ID)); |
|
|
|
|
|
GradeAndWeightBL.UpdataOrInsert(entity, session); |
|
|
|
|
|
} |
|
|
|
|
|
session.Commit(); |
|
|
|
|
|
} |
|
|
|
|
|
return JsonConvert.SerializeObject(back); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static List<Tuple<long, long>> GetLocalIdPair(IDmoSession session, IEnumerable<long> sid) |
|
|
|
|
|
{ |
|
|
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail))); |
|
|
|
|
|
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("SID"), sid.Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("SID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
|
|
query.Range = SelectRange.Top(1); |
|
|
|
|
|
return query.EExecuteList<long, long>(session); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
static long? GetIDIfExist(IDmoSession session, long sid) |
|
|
static long? GetIDIfExist(IDmoSession session, long sid) |
|
|
{ |
|
|
{ |
|
|
var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail))); |
|
|
var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail))); |
|
|
@ -114,6 +221,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
public static string GetBodyDiscontItemSetting() |
|
|
public static string GetBodyDiscontItemSetting() |
|
|
{ |
|
|
{ |
|
|
var query = new DmoQuery(typeof(BodyDiscontItem)); |
|
|
var query = new DmoQuery(typeof(BodyDiscontItem)); |
|
|
|
|
|
query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("Discont"))); |
|
|
var list = query.EExecuteList().Cast<BodyDiscontItem>().ToList(); |
|
|
var list = query.EExecuteList().Cast<BodyDiscontItem>().ToList(); |
|
|
return serializer.Serialize(list); |
|
|
return serializer.Serialize(list); |
|
|
} |
|
|
} |
|
|
|