Browse Source

分割称重

master
wugang 8 years ago
parent
commit
98b3c1f143
8 changed files with 204 additions and 96 deletions
  1. +2
    -1
      B3ClientService/B3ClientService.csproj
  2. +2
    -0
      B3ClientService/BO/SegmentationByPproductTrace_/SegmentationByPproductTrace.cs
  3. +2
    -0
      B3ClientService/BO/SegmentationInStoreRecord_/SegmentationInStoreRecord.cs
  4. +5
    -5
      B3ClientService/BO/SegmentationWeightRecord_/SegmentationWeightRecord.cs
  5. +2
    -0
      B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs
  6. +0
    -90
      B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc.cs
  7. +33
    -0
      B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordDto.cs
  8. +158
    -0
      B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordRpc.cs

+ 2
- 1
B3ClientService/B3ClientService.csproj View File

@ -139,7 +139,8 @@
<Compile Include="Rpcs\BillRpc\ProductTaskRpc.cs" />
<Compile Include="Rpcs\BillRpc\SaleOutStoreRpc.cs" />
<Compile Include="Rpcs\BillRpc\SegmentationInStoreRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\SegmentationWeightRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\SegmentationWeightRecord_\SegmentationWeightRecordDto.cs" />
<Compile Include="Rpcs\BillRpc\SegmentationWeightRecord_\SegmentationWeightRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\TrunksIousOutInStoreRecord_\TrunksIousOutInStoreRecordDto.cs" />
<Compile Include="Rpcs\BillRpc\TrunksIousOutInStoreRecord_\TrunksIousOutInStoreRecordRpc.cs" />
<Compile Include="Rpcs\RpcBO\Bill\ClientGoodsSetDto.cs" />


+ 2
- 0
B3ClientService/BO/SegmentationByPproductTrace_/SegmentationByPproductTrace.cs View File

@ -4,6 +4,7 @@ using System.Data;
using System.Linq;
using System.Text;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
namespace BWP.B3ClientService.BO
@ -13,6 +14,7 @@ namespace BWP.B3ClientService.BO
/// 分割品入库
/// </summary>
[Serializable]
[DFClass]
public class SegmentationByPproductTrace : Base
{
private DateTime mCreateTime = DateTime.Now;


+ 2
- 0
B3ClientService/BO/SegmentationInStoreRecord_/SegmentationInStoreRecord.cs View File

@ -4,6 +4,7 @@ using System.Data;
using System.Linq;
using System.Text;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
namespace BWP.B3ClientService.BO
@ -12,6 +13,7 @@ namespace BWP.B3ClientService.BO
/// 分割品入库
/// </summary>
[Serializable]
[DFClass]
public class SegmentationInStoreRecord:Base
{
private DateTime mCreateTime = DateTime.Now;


+ 5
- 5
B3ClientService/BO/SegmentationWeightRecord_/SegmentationWeightRecord.cs View File

@ -4,6 +4,7 @@ using System.Data;
using System.Linq;
using System.Text;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
namespace BWP.B3ClientService.BO
@ -13,6 +14,7 @@ namespace BWP.B3ClientService.BO
/// 分割品称重
/// </summary>
[Serializable]
[DFClass]
public class SegmentationWeightRecord:Base
{
private DateTime mCreateTime=DateTime.Now;
@ -26,12 +28,10 @@ namespace BWP.B3ClientService.BO
public string Goods_Name { get; set; }
public string Goods_Spec { get; set; }
public decimal Weight { get; set; }//净重
public decimal PiWeight { get; set; }//皮重
public decimal MaoWeight { get; set; }//毛重
public decimal JingWeight { get; set; }//净重
public string ProductBatch { get; set; }
public string CardBarCode { get; set; }//放产品的车的条码


+ 2
- 0
B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs View File

@ -2,10 +2,12 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Forks.EnterpriseServices.DataForm;
namespace BWP.B3ClientService.BO
{
[Serializable]
[DFClass]
public class TrunksIousOutInStoreRecord: ClientSyncBase
{
public string BarCode { get; set; }


+ 0
- 90
B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc.cs View File

@ -1,90 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3ClientService.BO;
using BWP.B3ClientService.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Newtonsoft.Json;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs.BillRpc
{
[Rpc]
public static class SegmentationWeightRecordRpc
{
[Rpc]
public static long Insert(string json)
{
var record = JsonConvert.DeserializeObject<SegmentationWeightRecord>(json);
record.CreateTime=DateTime.Now;
using (var session=Dmo.NewSession())
{
session.Insert(record);
var segmentationByPproductTrace = GetSegmentationByPproductTrace(record);
SegmentationByPproductTraceBL.Insert(session, segmentationByPproductTrace);
session.Commit();
}
return record.ID;
}
private static SegmentationByPproductTrace GetSegmentationByPproductTrace(SegmentationWeightRecord record)
{
var dmo = new SegmentationByPproductTrace();
dmo.BarCode = record.BarCode;
dmo.Goods_ID = record.Goods_ID;
dmo.Goods_Name = record.Goods_Name;
dmo.Weight = record.JingWeight;
dmo.Goods_Spec = record.Goods_Spec;
dmo.ProductTime = record.CreateTime;
return dmo;
}
/// <summary>
/// 获取为入库的
/// </summary>
/// <returns></returns>
[Rpc]
public static string GetNotInStoreList()
{
var query=new DmoQuery(typeof(SegmentationWeightRecord));
query.Where.Conditions.Add(DQCondition.EQ("IsInStored",false));
var list = query.EExecuteList().Cast<SegmentationWeightRecord>().ToList();
return JsonConvert.SerializeObject(list);
}
/// <summary>
/// 获取为入库的
/// </summary>
/// <returns></returns>
[Rpc]
public static string GetNotInStoreListByMaxId(long id)
{
var query = new DmoQuery(typeof(SegmentationWeightRecord));
query.Where.Conditions.Add(DQCondition.EQ("IsInStored", false));
query.Where.Conditions.Add(DQCondition.GreaterThan("ID", id));
var list = query.EExecuteList().Cast<SegmentationWeightRecord>().ToList();
return JsonConvert.SerializeObject(list);
}
/// <summary>
/// 批量 设置已入库
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
[Rpc]
public static bool SetInStored(string json)
{
var list = JsonConvert.DeserializeObject<List<int>>(json);
var whereList = list.Select(x => DQExpression.Value(x)).ToArray();
var updateDom=new DQUpdateDom(typeof(SegmentationWeightRecord));
updateDom.Columns.Add(new DQUpdateColumn("IsInStored",true));
updateDom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"),whereList));
updateDom.EExecute();
return true;
}
}
}

+ 33
- 0
B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordDto.cs View File

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3ClientService.BO;
using Forks.EnterpriseServices.DataForm;
namespace BWP.B3ClientService.Rpcs.BillRpc.SegmentationWeightRecord_
{
[Serializable, DFClass]
public class SegmentationWeightRecordDto : ClientSyncBaseDto
{
public DateTime CreateTime { get; set; }
public string BarCode { get; set; }//条码
public long Goods_ID { get; set; }
public string Goods_Name { get; set; }
public string Goods_Spec { get; set; }
public decimal Weight { get; set; }//净重
public string ProductBatch { get; set; }
public string CardBarCode { get; set; }//放产品的车的条码
public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的
public string CreateUserName { get; set; }
public bool IsInStored { get; set; }//是否已经入库
}
}

+ 158
- 0
B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordRpc.cs View File

@ -0,0 +1,158 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3ClientService.BO;
using BWP.B3ClientService.Rpcs.BillRpc.SegmentationWeightRecord_;
using BWP.B3ClientService.Utils;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Newtonsoft.Json;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs.BillRpc
{
[Rpc]
public static class SegmentationWeightRecordRpc
{
[Rpc]
public static string GetCountByNameAndBatch(long goodsId, string batch)
{
decimal weight = 0m;
int count = 0;
var query=new DQueryDom(new JoinAlias(typeof(SegmentationWeightRecord)));
query.Columns.Add(DQSelectColumn.Sum("Weight"));
query.Columns.Add(DQSelectColumn.Count("ID"));
query.Where.Conditions.Add(DQCondition.EQ("Goods_ID",goodsId));
query.Where.Conditions.Add(DQCondition.EQ("ProductBatch", batch));
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("CreateTime",DateTime.Today));
query.Where.Conditions.Add(DQCondition.LessThan("CreateTime",DateTime.Today.AddDays(1)));
// var dd = query.EExecuteScalar<decimal?, int>();
using (var session=Dmo.NewSession())
{
using (var reader=session.ExecuteReader(query))
{
if (reader.Read())
{
weight =Convert.ToDecimal(reader[0]);
count = Convert.ToInt32(reader[1]);
}
}
}
return weight.ToString("#0.##") + "," + count;
}
private static readonly object _insertObj=new object();
[Rpc]
public static long Insert(string json)
{
lock (_insertObj)
{
var record = JsonConvert.DeserializeObject<SegmentationWeightRecord>(json);
record.CreateTime = DateTime.Now;
using (var session = Dmo.NewSession())
{
session.Insert(record);
var segmentationByPproductTrace = GetSegmentationByPproductTrace(record);
SegmentationByPproductTraceBL.Insert(session, segmentationByPproductTrace);
session.Commit();
}
return record.ID;
}
}
private static readonly object _updateObj = new object();
[Rpc]
public static int Update(string json)
{
lock (_updateObj)
{
var clientRecord = JsonConvert.DeserializeObject<SegmentationWeightRecordDto>(json);
using (var session = Dmo.NewSession())
{
var record = session.Load(new DmoIdentity(typeof(SegmentationWeightRecord), clientRecord.Service_ID ?? 0));
DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID");
session.Update(record);
//需要更新大表???
}
return 1;
}
}
[Rpc]
public static int Delete(long id)
{
var delDom = new DQDeleteDom(typeof(SegmentationWeightRecord));
delDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
using (var session = Dmo.NewSession())
{
session.ExecuteNonQuery(delDom);
//需要删除大表
}
return 1;
}
private static SegmentationByPproductTrace GetSegmentationByPproductTrace(SegmentationWeightRecord record)
{
var dmo = new SegmentationByPproductTrace();
dmo.BarCode = record.BarCode;
dmo.Goods_ID = record.Goods_ID;
dmo.Goods_Name = record.Goods_Name;
dmo.Weight = record.Weight;
dmo.Goods_Spec = record.Goods_Spec;
dmo.ProductTime = record.CreateTime;
return dmo;
}
/// <summary>
/// 获取为入库的
/// </summary>
/// <returns></returns>
[Rpc]
public static string GetNotInStoreList()
{
var query=new DmoQuery(typeof(SegmentationWeightRecord));
query.Where.Conditions.Add(DQCondition.EQ("IsInStored",false));
var list = query.EExecuteList().Cast<SegmentationWeightRecord>().ToList();
return JsonConvert.SerializeObject(list);
}
/// <summary>
/// 获取为入库的
/// </summary>
/// <returns></returns>
[Rpc]
public static string GetNotInStoreListByMaxId(long id)
{
var query = new DmoQuery(typeof(SegmentationWeightRecord));
query.Where.Conditions.Add(DQCondition.EQ("IsInStored", false));
query.Where.Conditions.Add(DQCondition.GreaterThan("ID", id));
var list = query.EExecuteList().Cast<SegmentationWeightRecord>().ToList();
return JsonConvert.SerializeObject(list);
}
/// <summary>
/// 批量 设置已入库
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
[Rpc]
public static bool SetInStored(string json)
{
var list = JsonConvert.DeserializeObject<List<int>>(json);
var whereList = list.Select(x => DQExpression.Value(x)).ToArray();
var updateDom=new DQUpdateDom(typeof(SegmentationWeightRecord));
updateDom.Columns.Add(new DQUpdateColumn("IsInStored",true));
updateDom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"),whereList));
updateDom.EExecute();
return true;
}
}
}

Loading…
Cancel
Save