Browse Source

调整。

master
yibo 7 years ago
parent
commit
1ff23f1b47
5 changed files with 299 additions and 3 deletions
  1. +3
    -0
      B3ClientService/B3ClientService.csproj
  2. +45
    -0
      B3ClientService/BO/MiniProgram/SendPigRecord.cs
  3. +15
    -0
      B3ClientService/BO/MiniProgram/WeiUserBind.cs
  4. +223
    -0
      B3ClientService/OfflinRpc/MiniProgramRpc.cs
  5. +13
    -3
      B3ClientService/Tasks/SyncCarcassInStoreToTrackBack.cs

+ 3
- 0
B3ClientService/B3ClientService.csproj View File

@ -175,6 +175,8 @@
<Compile Include="BO\ClientSyncBase.cs" />
<Compile Include="BO\ClientSyncBaseDto.cs" />
<Compile Include="BO\MaterialRequisitionRecord_\MaterialRequisitionRecord.cs" />
<Compile Include="BO\MiniProgram\SendPigRecord.cs" />
<Compile Include="BO\MiniProgram\WeiUserBind.cs" />
<Compile Include="BO\ProductTask_\ProductTask.cs" />
<Compile Include="BO\SectionStoreView.cs" />
<Compile Include="BO\SegmentationByPproductTrace_\SegmentationByPproductTrace.cs" />
@ -205,6 +207,7 @@
<Compile Include="OfflinRpc\LoginRpc.cs" />
<Compile Include="OfflinRpc\SectionStoreDetailRpc.cs" />
<Compile Include="OfflinRpc\SegmentProductionRpc.cs" />
<Compile Include="OfflinRpc\MiniProgramRpc.cs" />
<Compile Include="Rpcs\BillRpc\BaseInfoRpc.cs" />
<Compile Include="Rpcs\BillRpc\BeforeDeathRpc.cs" />
<Compile Include="Rpcs\BillRpc\ByProductWeightRecordRpc.cs" />


+ 45
- 0
B3ClientService/BO/MiniProgram/SendPigRecord.cs View File

@ -0,0 +1,45 @@
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices.DomainObjects2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3ClientService.BO
{
public class SendPigRecord : Base
{
public long userID { get; set; }
public string date { get; set; }
public string time { get; set; }
public int bType { get; set; }
public string carNum { get; set; }
public string carIDCard { get; set; }
public string supplier { get; set; }
public string supplierIDCard { get; set; }
public string receive { get; set; }
public string bank { get; set; }
public string bankNum { get; set; }
public int num { get; set; }
public decimal weight { get; set; }
public decimal price { get; set; }
public decimal money { get; set; }
public decimal? pweight { get; set; }
public decimal? pprice { get; set; }
public decimal? pmoney { get; set; }
public decimal? jjf { get; set; }
[NonDmoProperty]
public FarmerRecord[] farmers { get; set; }
}
public class FarmerRecord : Base
{
public long SendPigRecord_ID { get; set; }
public int fidx { get; set; }
public string fName { get; set; }
public string fTel { get; set; }
public string fAddress { get; set; }
public string fIDCard { get; set; }
}
}

+ 15
- 0
B3ClientService/BO/MiniProgram/WeiUserBind.cs View File

@ -0,0 +1,15 @@
using BWP.B3Frameworks.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3ClientService.BO
{
public class WeiUserBind : Base
{
public string WeiID { get; set; }
public string Name { get; set; }
}
}

+ 223
- 0
B3ClientService/OfflinRpc/MiniProgramRpc.cs View File

@ -0,0 +1,223 @@
using BWP.B3ClientService.BO;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs
{
[Rpc]
public static class MiniProgramRpc
{
[Rpc(RpcFlags.SkipAuth)]
public static WeiUserBind GetBindID(string code)
{
var url = "https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&grant_type=authorization_code&js_code={2}";
var request = (HttpWebRequest)WebRequest.Create(string.Format(url, "wx106e1fc979e5fad5", "57883555a451434569cbcb58d2047aac", code));
var response = request.GetResponse();
using (var stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream, Encoding.UTF8))
{
var weiID = JsonConvert.DeserializeObject<WeiSer>(reader.ReadToEnd()).openid;
var user = GetBindWeiUser(weiID);
if (user == null)
user = new WeiUserBind { WeiID = weiID };
return user;
}
}
}
[Rpc(RpcFlags.SkipAuth)]
public static long InsertBind(string json)
{
var entity = JsonConvert.DeserializeObject<WeiUserBind>(json);
using (var session = Dmo.NewSession())
{
session.Insert(entity);
session.Commit();
}
return entity.ID;
}
static WeiUserBind GetBindWeiUser(string weiID)
{
var query = new DmoQuery(typeof(WeiUserBind));
query.Where.Conditions.Add(DQCondition.EQ("WeiID", weiID));
return query.EExecuteScalar<WeiUserBind>();
}
[Rpc(RpcFlags.SkipAuth)]
public static string GetLastInfo(long id)
{
var query = new DQueryDom(new JoinAlias(typeof(SendPigRecord)));
query.Columns.Add(DQSelectColumn.Field("bType"));
query.Columns.Add(DQSelectColumn.Field("carNum"));
query.Columns.Add(DQSelectColumn.Field("carIDCard"));
query.Columns.Add(DQSelectColumn.Field("supplier"));
query.Columns.Add(DQSelectColumn.Field("supplierIDCard"));
query.Columns.Add(DQSelectColumn.Field("receive"));
query.Columns.Add(DQSelectColumn.Field("bank"));
query.Columns.Add(DQSelectColumn.Field("bankNum"));
query.Where.Conditions.Add(DQCondition.EQ("userID", id));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Range = SelectRange.Top(1);
var entity = new MinDmo() { bType = 0 };
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
if (reader.Read())
{
entity.bType = (int)reader[0];
entity.carNum = (string)reader[1];
entity.carIDCard = (string)reader[2];
entity.supplier = (string)reader[3];
entity.supplierIDCard = (string)reader[4];
entity.receive = (string)reader[5];
entity.bank = (string)reader[6];
entity.bankNum = (string)reader[7];
}
}
}
return JsonConvert.SerializeObject(entity);
}
[Rpc(RpcFlags.SkipAuth)]
public static long Submit(string json)
{
var entity = JsonConvert.DeserializeObject<SendPigRecord>(json);
using (var session = Dmo.NewSession())
{
session.Insert(entity);
foreach (var item in entity.farmers)
{
item.SendPigRecord_ID = entity.ID;
session.Insert(item);
}
session.Commit();
}
return entity.ID;
}
[Rpc(RpcFlags.SkipAuth)]
public static string GetHistoryList(int type, long userID)
{
var query = new DQueryDom(new JoinAlias(typeof(SendPigRecord)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("date"));
query.Columns.Add(DQSelectColumn.Field("supplier"));
query.Columns.Add(DQSelectColumn.Field("carNum"));
query.Where.Conditions.Add(DQCondition.EQ("userID", userID));
var list = new List<HistoryObj>();
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new HistoryObj();
entity.ID = (long)reader[0];
entity.Date = (string)reader[1];
entity.Supplier = (string)reader[2];
entity.Car = (string)reader[3];
list.Add(entity);
}
}
}
return JsonConvert.SerializeObject(list);
}
[Rpc(RpcFlags.SkipAuth)]
public static string GetRecord(long id, long userID)
{
var query = new DmoQuery(typeof(SendPigRecord));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ID", id), DQCondition.EQ("userID", userID)));
var entity = query.EExecuteScalar<SendPigRecord>();
var detail = new DmoQuery(typeof(FarmerRecord));
detail.Where.Conditions.Add(DQCondition.EQ("SendPigRecord_ID", id));
var list = detail.EExecuteList().Cast<FarmerRecord>();
entity.farmers = list.ToArray();
return JsonConvert.SerializeObject(entity);
}
[Rpc(RpcFlags.SkipAuth)]
public static long Save(string json)
{
var entity = JsonConvert.DeserializeObject<SendPigRecord>(json);
using (var session = Dmo.NewSession())
{
var dids = entity.farmers.Select(x => x.ID).Where(x => x > 0);
Delete(session, entity.ID, dids);
session.Update(entity);
foreach (var item in entity.farmers)
{
if (item.ID == 0)
{
item.SendPigRecord_ID = entity.ID;
session.Insert(item);
}
else
session.Update(item);
}
session.Commit();
}
return entity.ID;
}
static void Delete(IDmoSession session, long id, IEnumerable<long> exist)
{
var delete = new DQDeleteDom(typeof(FarmerRecord));
delete.Where.Conditions.Add(DQCondition.EQ("SendPigRecord_ID", id));
if (exist.Any())
delete.Where.Conditions.Add(DQCondition.NotInList(DQExpression.Field("ID"), exist.Select(x => DQExpression.Value(x)).ToArray()));
session.ExecuteNonQuery(delete);
}
}
class HistoryObj
{
public long ID { get; set; }
public string Date { get; set; }
public string Supplier { get; set; }
public string Car { get; set; }
}
class MinDmo
{
public int bType { get; set; }
public string carNum { get; set; }
public string carIDCard { get; set; }
public string supplier { get; set; }
public string supplierIDCard { get; set; }
public string receive { get; set; }
public string bank { get; set; }
public string bankNum { get; set; }
}
class WeiSer
{
public string openid { get; set; }
}
}

+ 13
- 3
B3ClientService/Tasks/SyncCarcassInStoreToTrackBack.cs View File

@ -40,7 +40,7 @@ namespace BWP.B3ClientService.Tasks
var arr = JsonConvert.SerializeObject(infos);
TraceBackInfoUtil.Insert(sUrl, arr);
}
DeleteSyncd <SyncCarcassInStoreLog>(session, list.Min(x => x.ID), list.Max(x => x.ID),"ID");
DeleteSyncd<SyncCarcassInStoreLog>(session, list.Min(x => x.ID), list.Max(x => x.ID), "ID");
}
List<TraceBackInStoreInfo> GetUnSyncdInfo(IDmoSession session)
@ -54,10 +54,12 @@ namespace BWP.B3ClientService.Tasks
return list.Select(x => new TraceBackInStoreInfo { ID = x.Item1, Code = x.Item2, InStoreDate = x.Item3 }).ToList();
}
void DeleteSyncd<T>(IDmoSession session, long min, long max,string idF)
void DeleteSyncd<T>(IDmoSession session, long min, long max, string idF, IDQExpression condition = null)
{
var delete = new DQDeleteDom(typeof(T));
delete.Where.Conditions.Add(DQCondition.Between(idF, min, max));
if (condition != null)
delete.Where.Conditions.Add(condition);
session.ExecuteNonQuery(delete);
}
@ -69,17 +71,25 @@ namespace BWP.B3ClientService.Tasks
return;
var arr = JsonConvert.SerializeObject(list);
TraceBackInfoUtil.Insert(sUrl, arr);
DeleteSyncd<ButcherTraceBackInfo>(session, list.Min(x => x.GID), list.Max(x => x.GID), "GID");
DeleteSyncd<ButcherTraceBackInfo>(session, list.Min(x => x.GID), list.Max(x => x.GID), "GID", DQCondition.IsNotNull(DQExpression.Field("Farmer")));
}
IEnumerable<ButcherTraceBackInfo> GetTraceBackInfo(IDmoSession session)
{
FillNoFarmerInfo(session);
var query = new DmoQuery(typeof(ButcherTraceBackInfo));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("GID"));
query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("Farmer")));
query.Range = SelectRange.Top(500);
return session.ExecuteList(query).Cast<ButcherTraceBackInfo>();
}
void FillNoFarmerInfo(IDmoSession session)
{
var sql = "update main set main.Farmer=f.Name,main.PigFarmAddress=f.Address,main.TestingMan=wb.AnimalTestMan,main.TestingNo =wb.AnimalTestNumber from B3ClientService_ButcherTraceBackInfo main left outer join B3ClientService_GradeAndWeight_Detail gaw on main.GID=gaw.ID left outer join B3ClientService_OrderDetail od on gaw.OrderDetail_ID = od.ID left outer join B3ClientService_WeightBill wb on od.WeightBill_ID=wb.ID left outer join B3ClientService_WeightBill_FarmerDetail wbf on wb.ID=wbf.WeightBill_ID left outer join B3ClientService_Farmer f on wbf.Farmer_ID=f.ID where main.Farmer is null and f.Name is not null";
session.ExecuteSqlNonQuery(sql);
}
public string Name
{
get { return "抽取白条信息到追溯服务器"; }


Loading…
Cancel
Save