Browse Source

加入分割品领料Rpc

master
yibo 7 years ago
parent
commit
098645ffef
5 changed files with 149 additions and 3 deletions
  1. +1
    -0
      B3ClientService/B3ClientService.csproj
  2. +24
    -3
      B3ClientService/BO/Bill/SegmentProductionInfo.cs
  3. +1
    -0
      B3ClientService/NamedValueTemplate.cs
  4. +122
    -0
      B3ClientService/OfflinRpc/SegmentPickUpRpc.cs
  5. +1
    -0
      WebFolder/config/NamedValue/B3ClientService.xml

+ 1
- 0
B3ClientService/B3ClientService.csproj View File

@ -211,6 +211,7 @@
<Compile Include="OfflinRpc\LoginRpc.cs" />
<Compile Include="OfflinRpc\SectionStoreDetailRpc.cs" />
<Compile Include="OfflinRpc\SegmentInStoreRpc.cs" />
<Compile Include="OfflinRpc\SegmentPickUpRpc.cs" />
<Compile Include="OfflinRpc\SegmentProductionRpc.cs" />
<Compile Include="OfflinRpc\MiniProgramRpc.cs" />
<Compile Include="OfflinRpc\SegmentSaleOutStoreRpc.cs" />


+ 24
- 3
B3ClientService/BO/Bill/SegmentProductionInfo.cs View File

@ -1,8 +1,10 @@
using BWP.B3Frameworks.BO;
using BWP.B3ClientService.NamedValueTemplate;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataDictionary;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Data;
@ -73,9 +75,24 @@ namespace BWP.B3ClientService.BO
#endregion
#region 销售时间
[LogicName("销售时间")]
#region 领用信息
[LogicName("领用人员")]
public long? PickWorker_ID { get; set; }
[LogicName("领用工作单元")]
public long? PickWorkUnit_ID { get; set; }
[LogicName("领用时间")]
public DateTime? PickTime { get; set; }
[LogicName("领用类型")]
public NamedValue<>? PickType { get; set; }
[LogicName("领用数量")]
[DbColumn(DefaultValue = 1)]
public decimal? PickNumber { get; set; }
#endregion
public bool IsSync { get; set; }
@ -86,5 +103,9 @@ namespace BWP.B3ClientService.BO
public long? BillID { get; set; }
public long? DetailID { get; set; }
[ReferenceTo(typeof(Goods), "Name")]
[Join("Goods_ID", "ID")]
public string Goods_Name { get; set; }
}
}

+ 1
- 0
B3ClientService/NamedValueTemplate.cs View File

@ -21,6 +21,7 @@ namespace BWP.B3ClientService.NamedValueTemplate
public static readonly NamedValue<> = new NamedValue<>(1);
public static readonly NamedValue<> = new NamedValue<>(2);
public static readonly NamedValue<> = new NamedValue<>(3);
public static readonly NamedValue<> = new NamedValue<>(4);
//51-100供B3用
public static readonly NamedValue<> = new NamedValue<>(103);
public static readonly NamedValue<> 线 = new NamedValue<>(104);


+ 122
- 0
B3ClientService/OfflinRpc/SegmentPickUpRpc.cs View File

@ -0,0 +1,122 @@
using BWP.B3ClientService.BO;
using BWP.B3ClientService.NamedValueTemplate;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs
{
[Rpc]
public static class SegmentPickUpRpc
{
[Rpc(RpcFlags.SkipAuth)]
public static string GetScanInfo(string barCode)
{
var query = new DQueryDom(new JoinAlias(typeof(SegmentProductionInfo)));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
var r = query.EExecuteScalar<long, string, decimal>();
if (r == null)
return null;
return JsonConvert.SerializeObject(new ExtensionObj { LongExt1 = r.Item1, StringExt1 = r.Item2, DecimalExt1 = r.Item3 });
}
[Rpc(RpcFlags.SkipAuth)]
public static string GetBeforeInfo(List<string> codeList)
{
var query = new DQueryDom(new JoinAlias(typeof(SegmentProductionInfo)));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("Goods_ID")), DQCondition.InList(DQExpression.Field("BarCode"), codeList.Select(x => DQExpression.Value(x)).ToArray())));
var result = query.EExecuteList<string, decimal, long, string>();
var back = result.Select(x => new ExtensionObj { StringExt1 = x.Item1, DecimalExt1 = x.Item2, LongExt1 = x.Item3, StringExt2 = x.Item4 });
return JsonConvert.SerializeObject(back);
}
[Rpc(RpcFlags.SkipAuth)]
public static int UploadSegmentInfo(string jsonArr)
{
var list = JsonConvert.DeserializeObject<List<SegmentPickUpObj>>(jsonArr);
using (var session = Dmo.NewSession())
{
foreach (var item in list)
{
var id = GetID(item.BarCode, session);
if (id.HasValue)
Update(id.Value, item, session);
else
Insert(item, session);
}
session.Commit();
}
return 1;
}
static long? GetID(string code, IDmoSession session)
{
if (string.IsNullOrEmpty(code))
return null;
var query = new DQueryDom(new JoinAlias(typeof(SegmentProductionInfo)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", code));
return query.EExecuteScalar<long?>(session);
}
static void Update(long id, SegmentPickUpObj obj, IDmoSession session)
{
var update = new DQUpdateDom(typeof(SegmentProductionInfo));
update.Columns.Add(new DQUpdateColumn("PickWorker_ID", obj.TakeOutWorker_ID));
update.Columns.Add(new DQUpdateColumn("PickWorkUnit_ID", obj.WorkUnit_ID));
update.Columns.Add(new DQUpdateColumn("PickTime", obj.Time));
update.Columns.Add(new DQUpdateColumn("PickNumber", 1));
update.Columns.Add(new DQUpdateColumn("PickType", .));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(update);
}
static void Insert(SegmentPickUpObj obj, IDmoSession session)
{
var entity = new SegmentProductionInfo();
entity.BarCode = obj.BarCode;
entity.Goods_ID = obj.Goods_ID;
entity.PickWorker_ID = obj.TakeOutWorker_ID;
entity.PickWorkUnit_ID = obj.WorkUnit_ID;
entity.Weight = obj.Weight;
entity.PickTime = obj.Time;
entity.PickNumber = obj.Number;
entity.PickType = .;
if (string.IsNullOrEmpty(entity.BarCode))
entity.ProductBatch_ID = obj.ProductBatch_ID;
session.Insert(entity);
}
}
class SegmentPickUpObj
{
public string BarCode { get; set; }
public long TakeOutWorker_ID { get; set; }
public long? WorkUnit_ID { get; set; }
public long? ProductBatch_ID { get; set; }
public long? Goods_ID { get; set; }
public decimal? Weight { get; set; }
public DateTime? Time { get; set; }
public int Number { get; set; }
}
}

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

@ -12,6 +12,7 @@
<Word name="白条领用" value="1"/>
<Word name="分割生产" value="2"/>
<Word name="扫码入库" value="3"/>
<Word name="分割领用" value="4"/>
<Word name="赶猪确认" value="103"/>
<Word name="上线确认" value="104"/>
<Word name="烫毛分线" value="105"/>


Loading…
Cancel
Save