diff --git a/B3ClientService.Web/Pages/B3ClientService/BaseInfos/Worker_/WorkerEdit.cs b/B3ClientService.Web/Pages/B3ClientService/BaseInfos/Worker_/WorkerEdit.cs index 78ac531..bd0dfcc 100644 --- a/B3ClientService.Web/Pages/B3ClientService/BaseInfos/Worker_/WorkerEdit.cs +++ b/B3ClientService.Web/Pages/B3ClientService/BaseInfos/Worker_/WorkerEdit.cs @@ -29,7 +29,7 @@ namespace BWP.Web.Pages.B3ClientService.BaseInfos.Worker_ config.Add("Name"); config.Add("Code"); config.Add("StrPwd"); - config.Add("ReasonSelect"); + config.Add("ReasonSelect").ColSpan = 8; config.Add("Remark"); layoutManager.Config = config; parent.Controls.Add(layoutManager.CreateLayout()); diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs index adb12c7..7fb50f5 100644 --- a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs +++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs @@ -32,10 +32,8 @@ namespace BWP.B3ClientService.BO [NonDmoProperty] public bool IsDeleted { get; set; } - [DbColumn(DefaultValue = 0)] public bool IsDrop { get; set; } - [DbColumn(DefaultValue = 0)] public long SID { get; set; } public string BarCode { get; set; } diff --git a/B3ClientService/NamedValueTemplate.cs b/B3ClientService/NamedValueTemplate.cs index e0663b8..0b6be95 100644 --- a/B3ClientService/NamedValueTemplate.cs +++ b/B3ClientService/NamedValueTemplate.cs @@ -27,6 +27,7 @@ namespace BWP.B3ClientService.NamedValueTemplate public static readonly NamedValue<终端> 上线确认 = new NamedValue<终端>(104); public static readonly NamedValue<终端> 烫毛分线 = new NamedValue<终端>(105); public static readonly NamedValue<终端> 胴体定级 = new NamedValue<终端>(106); + public static readonly NamedValue<终端> 定级校验 = new NamedValue<终端>(107); //201-300重定向 } diff --git a/B3ClientService/OfflinRpc/LoginRpc.cs b/B3ClientService/OfflinRpc/LoginRpc.cs index ec63262..dc59be9 100644 --- a/B3ClientService/OfflinRpc/LoginRpc.cs +++ b/B3ClientService/OfflinRpc/LoginRpc.cs @@ -3,6 +3,7 @@ using BWP.B3ClientService.NamedValueTemplate; using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; using Forks.EnterpriseServices.JsonRpc; +using Forks.EnterpriseServices.SqlDoms; using Forks.Utils; using Newtonsoft.Json; using System; @@ -47,7 +48,7 @@ namespace BWP.B3ClientService.Rpcs var query = new DQueryDom(new JoinAlias(typeof(Worker))); query.Columns.Add(DQSelectColumn.Field("Name")); query.Columns.Add(DQSelectColumn.Field("Stopped")); - query.Where.Conditions.Add(DQCondition.EQ("Code",code)); + query.Where.Conditions.Add(DQCondition.EQ("Code", code)); var result = query.EExecuteScalar(); if (result == null) return "0"; @@ -55,5 +56,31 @@ namespace BWP.B3ClientService.Rpcs return "-1"; return result.Item1; } + + [Rpc(RpcFlags.SkipAuth)] + public static string FullLogin(string name, string pwd) + { + var main = new JoinAlias(typeof(Worker)); + var role = new JoinAlias(typeof(WorkerDriveRelate)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Inner, new DQDmoSource(role), DQCondition.EQ(main, "ID", role, "Worker_ID")); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("Code")); + query.Columns.Add(DQSelectColumn.Field("Drive", role)); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Name", name), DQCondition.EQ("Password", InnerUtils.EncodePwd(pwd)))); + + var arr = query.EExecuteList>(); + if (arr.Any()) + { + var user = new + { + ID = arr[0].Item1, + Code = arr[0].Item2, + Role = string.Join(",", arr.Select(x => x.Item3.Value)) + }; + return JsonConvert.SerializeObject(user); + } + return null; + } } } diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs index bbf2c66..9f99b51 100644 --- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs @@ -64,6 +64,60 @@ namespace BWP.B3ClientService.Rpcs.BillRpc 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(); + 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().Select(x => new { ID = x.Item1, Name = x.Item2, Technics = x.Item3, SortNum = x.Item4 }); + return serializer.Serialize(list); + } + + static object _lock = new object(); [Rpc(RpcFlags.SkipAuth)] 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>(); + var list = JsonConvert.DeserializeObject>(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(entity.SID, entity.ID)); + GradeAndWeightBL.UpdataOrInsert(entity, session); + } + session.Commit(); + } + return JsonConvert.SerializeObject(back); + } + } + + static List> GetLocalIdPair(IDmoSession session, IEnumerable 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(session); + } + static long? GetIDIfExist(IDmoSession session, long sid) { var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail))); @@ -114,6 +221,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc public static string GetBodyDiscontItemSetting() { var query = new DmoQuery(typeof(BodyDiscontItem)); + query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("Discont"))); var list = query.EExecuteList().Cast().ToList(); return serializer.Serialize(list); } diff --git a/WebFolder/config/NamedValue/B3ClientService.xml b/WebFolder/config/NamedValue/B3ClientService.xml index d731dbe..e2df829 100644 --- a/WebFolder/config/NamedValue/B3ClientService.xml +++ b/WebFolder/config/NamedValue/B3ClientService.xml @@ -17,6 +17,7 @@ +