Browse Source

修改。

master
yibo 8 years ago
parent
commit
224533a773
7 changed files with 189 additions and 16 deletions
  1. +3
    -0
      B3ClientService/B3ClientService.csproj
  2. +35
    -0
      B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
  3. +29
    -0
      B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
  4. +7
    -0
      B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
  5. +17
    -0
      B3ClientService/NamedValueTemplate.cs
  6. +88
    -16
      B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
  7. +10
    -0
      WebFolder/config/NamedValue/B3ClientService.xml

+ 3
- 0
B3ClientService/B3ClientService.csproj View File

@ -80,8 +80,10 @@
<Compile Include="BO\BaseInfo\Sanction.cs" />
<Compile Include="BO\BaseInfo\Supplier.cs" />
<Compile Include="BO\BaseInfo\Zone.cs" />
<Compile Include="BO\Bill\CarcassStateWeight\CarcassStateWeight.cs" />
<Compile Include="BO\Bill\GradeAndWeight\GradeAndWeight_Detail.cs" />
<Compile Include="BO\Bill\GradeAndWeight\OrderGradeFinishRelate.cs" />
<Compile Include="BO\Bill\OrderDetail\HurryRecord.cs" />
<Compile Include="BO\Bill\OrderDetail\OrderDetail.cs" />
<Compile Include="BO\Bill\SecondOrder\SecondOrder.cs" />
<Compile Include="BO\Bill\SecondOrder\SecondOrder_Detail.cs" />
@ -103,6 +105,7 @@
<Compile Include="ClientSerializerBo\WeightBill\WeightBillList.cs" />
<Compile Include="ConvertUtil.cs" />
<Compile Include="CTuple.cs" />
<Compile Include="NamedValueTemplate.cs" />
<Compile Include="RpcBO\Bill\GradeAndWeight\GradeAndWeight.cs" />
<Compile Include="RpcBO\Bill\OrderDetail\NeedOrderEntity.cs" />
<Compile Include="RpcBO\Bill\OrderDetail\RpcOrderBill.cs" />


+ 35
- 0
B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs View File

@ -0,0 +1,35 @@
using BWP.B3ClientService.NamedValueTemplate;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.BO
{
[Serializable]
[BOClass]
[KeyField("GradeAndWeight_ID", KeyGenType.assigned)]
public class CarcassStateWeight
{
public long GradeAndWeight_ID { get; set; }
public string Code { get; set; }
public decimal? State1Weight { get; set; }
public decimal? State2Weight { get; set; }
public decimal? State3Weight { get; set; }
public decimal? State4Weight { get; set; }
public decimal? State5Weight { get; set; }
public NamedValue<> CurrentState { get; set; }
public decimal? CurrentWeight { get; set; }
}
}

+ 29
- 0
B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs View File

@ -0,0 +1,29 @@
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices.DomainObjects2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3ClientService.BO
{
[Serializable]
public class HurryRecord : Base
{
public long FromOrderDetail_ID { get; set; }
[ReferenceTo(typeof(OrderDetail), "B3WeighBill_ID")]
[Join("FromOrderDetail_ID", "ID")]
public long? B3WeighBill_ID { get; set; }
public long? ToOrderDetail_ID { get; set; }
[ReferenceTo(typeof(OrderDetail), "Order")]
[Join("ToOrderDetail_ID", "ID")]
public int? Order { get; set; }
public int HurryNumber { get; set; }
public DateTime Time { get; set; }
}
}

+ 7
- 0
B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs View File

@ -22,6 +22,10 @@ namespace BWP.B3ClientService.BO
[Join("WeightBill_ID", "ID")]
public long? B3WeighBill_ID { get; set; }
[ReferenceTo(typeof(WeightBill), "Supplier_Name")]
[Join("WeightBill_ID", "ID")]
public string Supplier_Name { get; set; }
public int Order { get; set; }
public int PlanNumber { get; set; }
@ -38,5 +42,8 @@ namespace BWP.B3ClientService.BO
[DbColumn(DefaultValue = 0)]
public bool Confirmed { get; set; }
[NonDmoProperty]
public int HurryNumber { get; set; }
}
}

+ 17
- 0
B3ClientService/NamedValueTemplate.cs View File

@ -0,0 +1,17 @@
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3ClientService.NamedValueTemplate
{
public sealed class
{
public static readonly NamedValue<> = new NamedValue<>(0);
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);
}
}

+ 88
- 16
B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs View File

@ -143,20 +143,26 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
}
[Rpc]
public static string GetOrderDetail(DateTime date, int? minOrder)
public static string GetOrderDetail(DateTime date, bool onlyNormal)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
query.Columns.Add(DQSelectColumn.Field("Order"));
query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name"));
query.Columns.Add(DQSelectColumn.Field("IsHurryButcher"));
query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID"));
query.Columns.Add(DQSelectColumn.Field("SecondarySplit"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
if (minOrder.HasValue)
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Order", minOrder));
if (onlyNormal)
{
var record = HurryRecordTemp.Register(query, query.From.RootSource.Alias);
query.Columns.Add(DQSelectColumn.Field("Number", record));
query.Where.Conditions.Add(DQCondition.EQ("IsHurryButcher", false));
}
var list = new List<OrderDetail>();
using (var session = Dmo.NewSession())
{
@ -173,6 +179,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.IsHurryButcher = (bool)reader[5];
entity.B3WeighBill_ID = (long?)reader[6];
entity.SecondarySplit = (bool)reader[7];
entity.Supplier_Name = (string)reader[8];
if (onlyNormal)
{
entity.HurryNumber = Convert.ToInt32(reader[9] ?? 0);
entity.PlanNumber += entity.HurryNumber;
}
list.Add(entity);
}
}
@ -180,12 +192,32 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list);
}
class HurryRecordTemp
{
public long OrderDetail_ID { get; set; }
public int? Number { get; set; }
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias)
{
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Field("FromOrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.GroupBy.Expressions.Add(DQExpression.Field("FromOrderDetail_ID"));
rootQuery.RegisterQueryTable(typeof(HurryRecordTemp), new string[] { "OrderDetail_ID", "Number" }, query);
var alias = new JoinAlias(typeof(HurryRecordTemp));
rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "OrderDetail_ID"));
return alias;
}
}
[Rpc]
public static int GetMaxOrder(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Max("Order"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("Date", date.Date, date.Date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date.Date), DQCondition.EQ("DeleteState", false)));
return query.EExecuteScalar<int?>() ?? 0;
}
@ -248,17 +280,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return 1;
}
[Rpc]
public static int UpdateHurryFlag(long id, bool isHurryButcher)
{
using (var session = Dmo.NewSession())
{
UpdateOrderDetailPartial(session, id, "IsHurryButcher", isHurryButcher);
session.Commit();
}
return 1;
}
[Rpc]
public static int Delete(long id)
{
@ -297,5 +318,56 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
update.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThan("Order", greaterThanOrder), DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
session.ExecuteNonQuery(update);
}
[Rpc]
public static string GetHurryRecords(long orderId)
{
var query = new DmoQuery(typeof(HurryRecord));
query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", orderId));
return serializer.Serialize(query.EExecuteList().Cast<HurryRecord>().ToList());
}
[Rpc]
public static int DeleteHurryRecord(long id)
{
using (var session = Dmo.NewSession())
{
var hurryNumber = InnerBLUtil.GetDmoPropertyByID<int>(session, typeof(HurryRecord), "HurryNumber", id);
var delete = new DQDeleteDom(typeof(HurryRecord));
delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(delete);
AddOrderNumber(session, id, hurryNumber);
session.Commit();
}
return 1;
}
[Rpc]
public static int InsertHurryRecord(string detail)
{
detail = detail.ESerializeDateTime();
var entity = serializer.Deserialize<HurryRecord>(detail);
using (var session = Dmo.NewSession())
{
session.Insert(entity);
AddOrderNumber(session, entity.ID, -entity.HurryNumber);
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", entity.FromOrderDetail_ID));
var r= Convert.ToInt32(query.EExecuteScalar(session) ?? 0);
session.Commit();
return r;
}
}
static void AddOrderNumber(IDmoSession session, long ID, int subNumber)
{
var update = new DQUpdateDom(typeof(OrderDetail));
update.Where.Conditions.Add(DQCondition.EQ("ID", ID));
update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("PlanNumber", DQExpression.Add(DQExpression.Field("PlanNumber"), DQExpression.Value(subNumber))));
session.ExecuteNonQuery(update);
}
}
}

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

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<NamedValueSettings>
<NamedValue type="BWP.B3ClientService.NamedValueTemplate.胴体状态, B3ClientService">
<Word name="胴体称重" value="0"/>
<Word name="入预冷库" value="1"/>
<Word name="分割领用" value="2"/>
<Word name="入销售库" value="3"/>
<Word name="销售出库" value="4"/>
</NamedValue>
</NamedValueSettings>

Loading…
Cancel
Save