Browse Source

白条领用,白条入库 调整。

master
yibo 7 years ago
parent
commit
8b72bf6307
4 changed files with 113 additions and 29 deletions
  1. +4
    -1
      B3ClientService/BO/MaterialRequisitionRecord_/MaterialRequisitionRecord.cs
  2. +4
    -1
      B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs
  3. +57
    -10
      B3ClientService/Rpcs/BillRpc/MaterialRequisitionRecordRpc_/MaterialRequisitionRecordRpc.cs
  4. +48
    -17
      B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs

+ 4
- 1
B3ClientService/BO/MaterialRequisitionRecord_/MaterialRequisitionRecord.cs View File

@ -13,6 +13,7 @@ namespace BWP.B3ClientService.BO
[DFClass] [DFClass]
public class MaterialRequisitionRecord : SyncBill public class MaterialRequisitionRecord : SyncBill
{ {
public long? UpID { get; set; }
public string BarCode { get; set; } public string BarCode { get; set; }
public long? Goods_ID { get; set; } public long? Goods_ID { get; set; }
public string Goods_Name { get; set; } public string Goods_Name { get; set; }
@ -27,7 +28,7 @@ namespace BWP.B3ClientService.BO
} }
[ReferenceTo(typeof(TrunksIousOutInStoreRecord), "Weight")] [ReferenceTo(typeof(TrunksIousOutInStoreRecord), "Weight")]
[Join("BarCode", "BarCode")]
[Join("UpID", "ID")]
public decimal? BeforeWeight { get; set; } public decimal? BeforeWeight { get; set; }
public decimal? Weight { get; set; } public decimal? Weight { get; set; }
@ -42,6 +43,8 @@ namespace BWP.B3ClientService.BO
public long? ProductBatch_ID { get; set; } public long? ProductBatch_ID { get; set; }
[ReferenceTo(typeof(ProductBatch),"Name")]
[Join("ProductBatch_ID", "ID")]
public string ProductBatch { get; set; } public string ProductBatch { get; set; }
public int RowVersion { get; set; } public int RowVersion { get; set; }


+ 4
- 1
B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs View File

@ -11,6 +11,7 @@ namespace BWP.B3ClientService.BO
[DFClass] [DFClass]
public class TrunksIousOutInStoreRecord : SyncBill public class TrunksIousOutInStoreRecord : SyncBill
{ {
public long? UpID { get; set; }
public string BarCode { get; set; } public string BarCode { get; set; }
public long? Goods_ID { get; set; } public long? Goods_ID { get; set; }
public string Goods_Name { get; set; } public string Goods_Name { get; set; }
@ -23,7 +24,7 @@ namespace BWP.B3ClientService.BO
} }
[ReferenceTo(typeof(GradeAndWeight_Detail), "Weight")] [ReferenceTo(typeof(GradeAndWeight_Detail), "Weight")]
[Join("BarCode", "BarCode")]
[Join("UpID", "ID")]
public decimal? BeforeWeight { get; set; } public decimal? BeforeWeight { get; set; }
public decimal? Weight { get; set; } public decimal? Weight { get; set; }
@ -38,6 +39,8 @@ namespace BWP.B3ClientService.BO
public long? ProductBatch_ID { get; set; } public long? ProductBatch_ID { get; set; }
[ReferenceTo(typeof(ProductBatch), "Name")]
[Join("ProductBatch_ID", "ID")]
public string ProductBatch { get; set; } public string ProductBatch { get; set; }
public int RowVersion { get; set; } public int RowVersion { get; set; }


+ 57
- 10
B3ClientService/Rpcs/BillRpc/MaterialRequisitionRecordRpc_/MaterialRequisitionRecordRpc.cs View File

@ -18,33 +18,70 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
[Rpc] [Rpc]
public static string GetUnSubmitList() public static string GetUnSubmitList()
{ {
var query = new DQueryDom(new JoinAlias(typeof(MaterialRequisitionRecord)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
var list = query.EExecuteDmoList<MaterialRequisitionRecord>("ID", "BarCode", "Goods_Name", "Goods_Code", "Goods_MainUnit", "Weight");
return JsonConvert.SerializeObject(list);
return GetEntityList(false);
} }
[Rpc] [Rpc]
public static string GetSubmitedList() public static string GetSubmitedList()
{
return GetEntityList(true);
}
static string GetEntityList(bool submited)
{ {
var query = new DQueryDom(new JoinAlias(typeof(MaterialRequisitionRecord))); var query = new DQueryDom(new JoinAlias(typeof(MaterialRequisitionRecord)));
query.Where.Conditions.Add(DQCondition.EQ("IsSubmited", true));
if (submited)
{
query.Where.Conditions.Add(DQCondition.EQ("IsSubmited", true));
query.Range = SelectRange.Top(50);
}
else
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Range = SelectRange.Top(50);
var list = query.EExecuteDmoList<MaterialRequisitionRecord>("ID", "BarCode", "Goods_Name", "Goods_Code", "Goods_MainUnit", "Number", "BeforeWeight", "Weight");
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Goods_Code"));
query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
if (submited)
{
query.Columns.Add(DQSelectColumn.Field("Number"));
}
var list = new List<MaterialRequisitionRecord>();
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new MaterialRequisitionRecord();
list.Add(entity);
entity.ID = (long)reader[0];
entity.BarCode = (string)reader[1];
entity.Goods_Name = (string)reader[2];
entity.Goods_Code = (string)reader[3];
entity.Goods_MainUnit = (string)reader[4];
entity.Weight = (decimal?)reader[5];
if (submited)
{
entity.Number = (int)reader[6];
}
}
}
}
return JsonConvert.SerializeObject(list); return JsonConvert.SerializeObject(list);
} }
[Rpc] [Rpc]
public static string GetCodeStoreInfo(string code) public static string GetCodeStoreInfo(string code)
{ {
var main = new JoinAlias(typeof(TrunksIousOutInStoreRecord)); var main = new JoinAlias(typeof(TrunksIousOutInStoreRecord));
var take = new JoinAlias(typeof(MaterialRequisitionRecord)); var take = new JoinAlias(typeof(MaterialRequisitionRecord));
var query = new DQueryDom(main); var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(take), DQCondition.And(DQCondition.EQ(main, "BarCode", take, "BarCode"), DQCondition.EQ(take, "DeleteState", false)));
query.From.AddJoin(JoinType.Left, new DQDmoSource(take), DQCondition.And(DQCondition.EQ(main, "ID", take, "UpID"), DQCondition.EQ(take, "DeleteState", false)));
query.Columns.Add(DQSelectColumn.Field("ID", main)); query.Columns.Add(DQSelectColumn.Field("ID", main));
query.Columns.Add(DQSelectColumn.Field("Weight", main)); query.Columns.Add(DQSelectColumn.Field("Weight", main));
query.Columns.Add(DQSelectColumn.Field("Goods_Name", main)); query.Columns.Add(DQSelectColumn.Field("Goods_Name", main));
@ -76,6 +113,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var record = JsonConvert.DeserializeObject<MaterialRequisitionRecord>(json); var record = JsonConvert.DeserializeObject<MaterialRequisitionRecord>(json);
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
record.UpID = GetUpID(session, record.BarCode);
record.CreateTime = record.ModifyTime = DateTime.Now; record.CreateTime = record.ModifyTime = DateTime.Now;
FillGoodsInfo(record, session); FillGoodsInfo(record, session);
session.Insert(record); session.Insert(record);
@ -84,6 +122,15 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return JsonConvert.SerializeObject(record); return JsonConvert.SerializeObject(record);
} }
static long GetUpID(IDmoSession session, string barCode)
{
var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord)));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Range = SelectRange.Top(1);
return query.EExecuteScalar<long>(session);
}
static void FillGoodsInfo(MaterialRequisitionRecord record, IDmoSession session) static void FillGoodsInfo(MaterialRequisitionRecord record, IDmoSession session)
{ {
var query = new DQueryDom(new JoinAlias(typeof(ClientGoodsSet_Detail))); var query = new DQueryDom(new JoinAlias(typeof(ClientGoodsSet_Detail)));


+ 48
- 17
B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs View File

@ -11,6 +11,8 @@ using Forks.EnterpriseServices.SqlDoms;
using Newtonsoft.Json; using Newtonsoft.Json;
using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework;
using System.Web; using System.Web;
using System.Web.Script.Serialization;
using System.Collections.Generic;
namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
{ {
@ -20,23 +22,51 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
[Rpc] [Rpc]
public static string GetUnSubmitList() public static string GetUnSubmitList()
{ {
var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord)));
query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("IsSubmited")), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
var list = query.EExecuteDmoList<TrunksIousOutInStoreRecord>("ID", "BarCode", "Goods_Name", "Number", "Weight");
return JsonConvert.SerializeObject(list);
return GetEntityList(false);
} }
[Rpc] [Rpc]
public static string GetSubmitedList() public static string GetSubmitedList()
{
return GetEntityList(true);
}
static string GetEntityList(bool submited)
{ {
var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord))); var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord)));
query.Where.Conditions.Add(DQCondition.EQ("IsSubmited", true));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
if (submited)
{
query.Columns.Add(DQSelectColumn.Field("BeforeWeight"));
query.Where.Conditions.Add(DQCondition.EQ("IsSubmited", true));
query.Range = SelectRange.Top(50);
}
else
query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("IsSubmited")), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Range = SelectRange.Top(50);
var list = query.EExecuteDmoList<TrunksIousOutInStoreRecord>("ID", "BarCode", "Goods_Name", "Number", "BeforeWeight", "Weight");
var list = new List<TrunksIousOutInStoreRecord>();
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new TrunksIousOutInStoreRecord();
list.Add(entity);
entity.ID = (long)reader[0];
entity.BarCode = (string)reader[1];
entity.Goods_Name = (string)reader[2];
entity.Number = (int)reader[3];
entity.Weight = (decimal?)reader[4];
if (submited)
entity.BeforeWeight = (decimal?)reader[5];
}
}
}
return JsonConvert.SerializeObject(list); return JsonConvert.SerializeObject(list);
} }
@ -53,7 +83,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
update.Columns.Add(new DQUpdateColumn("WorkUnit_ID", entity.WorkUnit_ID)); update.Columns.Add(new DQUpdateColumn("WorkUnit_ID", entity.WorkUnit_ID));
update.Columns.Add(new DQUpdateColumn("Store_ID", entity.Store_ID)); update.Columns.Add(new DQUpdateColumn("Store_ID", entity.Store_ID));
update.Columns.Add(new DQUpdateColumn("ProductBatch_ID", entity.ProductBatch_ID)); update.Columns.Add(new DQUpdateColumn("ProductBatch_ID", entity.ProductBatch_ID));
update.Columns.Add(new DQUpdateColumn("ProductBatch", entity.ProductBatch));
update.Columns.Add(new DQUpdateColumn("IsSubmited", true)); update.Columns.Add(new DQUpdateColumn("IsSubmited", true));
update.Columns.Add(new DQUpdateColumn("Sync", false)); update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("CreateTime", DateTime.Now)); update.Columns.Add(new DQUpdateColumn("CreateTime", DateTime.Now));
@ -80,13 +109,14 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
{ {
if (string.IsNullOrEmpty(barCode)) if (string.IsNullOrEmpty(barCode))
throw new Exception("条码不能为空"); throw new Exception("条码不能为空");
CheckCodeRight(barCode);
var upID = CheckCodeRight(barCode);
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
var record = GetExist(session, barCode);
var record = GetExist(session, upID);
if (record == null) if (record == null)
{ {
record = new TrunksIousOutInStoreRecord(); record = new TrunksIousOutInStoreRecord();
record.UpID = upID;
record.Goods_ID = goodsId; record.Goods_ID = goodsId;
record.Goods_Name = goodsName; record.Goods_Name = goodsName;
record.BarCode = barCode; record.BarCode = barCode;
@ -107,10 +137,10 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
} }
} }
private static TrunksIousOutInStoreRecord GetExist(IDmoSession session, string barCode)
private static TrunksIousOutInStoreRecord GetExist(IDmoSession session, long upID)
{ {
var query = new DmoQuery(typeof(TrunksIousOutInStoreRecord)); var query = new DmoQuery(typeof(TrunksIousOutInStoreRecord));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
query.Where.Conditions.Add(DQCondition.EQ("UpID", upID));
var res = session.ExecuteList(query).Cast<TrunksIousOutInStoreRecord>().ToList(); var res = session.ExecuteList(query).Cast<TrunksIousOutInStoreRecord>().ToList();
if (res.Count > 0) if (res.Count > 0)
{ {
@ -120,14 +150,15 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
return null; return null;
} }
static void CheckCodeRight(string barCode)
static long CheckCodeRight(string barCode)
{ {
var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail))); var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail)));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode)); query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Range = SelectRange.Top(1); query.Range = SelectRange.Top(1);
if (query.EExecuteScalar() == null) if (query.EExecuteScalar() == null)
throw new Exception("条码不正确"); throw new Exception("条码不正确");
return query.EExecuteScalar<long>();
} }
} }
} }

Loading…
Cancel
Save