Browse Source

称重定级的调整。

master
yibo 7 years ago
parent
commit
636f499e25
6 changed files with 139 additions and 4 deletions
  1. +1
    -1
      B3ClientService.Web/Pages/B3ClientService/BaseInfos/Worker_/WorkerEdit.cs
  2. +0
    -2
      B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
  3. +1
    -0
      B3ClientService/NamedValueTemplate.cs
  4. +28
    -1
      B3ClientService/OfflinRpc/LoginRpc.cs
  5. +108
    -0
      B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
  6. +1
    -0
      WebFolder/config/NamedValue/B3ClientService.xml

+ 1
- 1
B3ClientService.Web/Pages/B3ClientService/BaseInfos/Worker_/WorkerEdit.cs View File

@ -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());


+ 0
- 2
B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs View File

@ -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; }


+ 1
- 0
B3ClientService/NamedValueTemplate.cs View File

@ -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重定向
}


+ 28
- 1
B3ClientService/OfflinRpc/LoginRpc.cs View File

@ -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<string, bool>();
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<long, string, NamedValue<>>();
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;
}
}
}

+ 108
- 0
B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs View File

@ -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<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();
[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<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)
{
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<BodyDiscontItem>().ToList();
return serializer.Serialize(list);
}


+ 1
- 0
WebFolder/config/NamedValue/B3ClientService.xml View File

@ -17,6 +17,7 @@
<Word name="上线确认" value="104"/>
<Word name="烫毛分线" value="105"/>
<Word name="胴体定级" value="106"/>
<Word name="定级校验" value="107"/>
</NamedValue>
<NamedValue type="BWP.B3ClientService.NamedValueTemplate.适用客户端, B3ClientService">
<Word name="白条出入库" value="0"/>


Loading…
Cancel
Save