From d455872aaa3aec9fef582ccef86b75be475e6146 Mon Sep 17 00:00:00 2001
From: luanhui <1029149336@qq.com>
Date: Thu, 28 Dec 2017 10:01:09 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=86=9C=E8=A1=8Cwebservice?=
=?UTF-8?q?=20=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
B3QingDaoWanFu/B3QingDaoWanFu.csproj | 5 +
B3QingDaoWanFu/Rpc/GatheringRpc.cs | 95 +++++++++++
B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs | 39 +++++
.../B3WanFuSaleWebService.sln | 73 +++++++++
B3WanFuSaleWebService/RpcHelper/Gatherings.cs | 61 +++++++
.../RpcHelper/Properties/AssemblyInfo.cs | 36 +++++
B3WanFuSaleWebService/RpcHelper/Results.cs | 64 ++++++++
.../RpcHelper/RpcHelper.csproj | 62 ++++++++
.../RpcHelper/RpcHelperUtil.cs | 142 +++++++++++++++++
B3WanFuSaleWebService/Test/Program.cs | 39 +++++
.../Test/Properties/AssemblyInfo.cs | 36 +++++
.../Test/Properties/Settings.Designer.cs | 36 +++++
.../Test/Properties/Settings.settings | 9 ++
B3WanFuSaleWebService/Test/Test.csproj | 106 +++++++++++++
.../Web References/webservice/Reference.cs | 150 ++++++++++++++++++
.../Web References/webservice/Reference.map | 7 +
.../Web References/webservice/Service.disco | 6 +
.../Web References/webservice/Service.wsdl | 65 ++++++++
B3WanFuSaleWebService/Test/app.config | 15 ++
.../WebFolder/App_Code/Service.cs | 27 ++++
B3WanFuSaleWebService/WebFolder/Service.asmx | 1 +
B3WanFuSaleWebService/WebFolder/web.config | 49 ++++++
.../用于B3万福收款单接口.txt | 0
23 files changed, 1123 insertions(+)
create mode 100644 B3QingDaoWanFu/Rpc/GatheringRpc.cs
create mode 100644 B3WanFuSaleWebService/B3WanFuSaleWebService.sln
create mode 100644 B3WanFuSaleWebService/RpcHelper/Gatherings.cs
create mode 100644 B3WanFuSaleWebService/RpcHelper/Properties/AssemblyInfo.cs
create mode 100644 B3WanFuSaleWebService/RpcHelper/Results.cs
create mode 100644 B3WanFuSaleWebService/RpcHelper/RpcHelper.csproj
create mode 100644 B3WanFuSaleWebService/RpcHelper/RpcHelperUtil.cs
create mode 100644 B3WanFuSaleWebService/Test/Program.cs
create mode 100644 B3WanFuSaleWebService/Test/Properties/AssemblyInfo.cs
create mode 100644 B3WanFuSaleWebService/Test/Properties/Settings.Designer.cs
create mode 100644 B3WanFuSaleWebService/Test/Properties/Settings.settings
create mode 100644 B3WanFuSaleWebService/Test/Test.csproj
create mode 100644 B3WanFuSaleWebService/Test/Web References/webservice/Reference.cs
create mode 100644 B3WanFuSaleWebService/Test/Web References/webservice/Reference.map
create mode 100644 B3WanFuSaleWebService/Test/Web References/webservice/Service.disco
create mode 100644 B3WanFuSaleWebService/Test/Web References/webservice/Service.wsdl
create mode 100644 B3WanFuSaleWebService/Test/app.config
create mode 100644 B3WanFuSaleWebService/WebFolder/App_Code/Service.cs
create mode 100644 B3WanFuSaleWebService/WebFolder/Service.asmx
create mode 100644 B3WanFuSaleWebService/WebFolder/web.config
create mode 100644 B3WanFuSaleWebService/用于B3万福收款单接口.txt
diff --git a/B3QingDaoWanFu/B3QingDaoWanFu.csproj b/B3QingDaoWanFu/B3QingDaoWanFu.csproj
index c02aa21..02da20f 100644
--- a/B3QingDaoWanFu/B3QingDaoWanFu.csproj
+++ b/B3QingDaoWanFu/B3QingDaoWanFu.csproj
@@ -70,6 +70,10 @@
False
..\..\..\tsref\Debug\B3Sale.dll
+
+ False
+ ..\..\..\tsref\Debug\b3saleinterface.dll
+
False
D:\BwpB3Project\tsref\Debug\B3UnitedInfos.dll
@@ -129,6 +133,7 @@
+
diff --git a/B3QingDaoWanFu/Rpc/GatheringRpc.cs b/B3QingDaoWanFu/Rpc/GatheringRpc.cs
new file mode 100644
index 0000000..6bb2d9e
--- /dev/null
+++ b/B3QingDaoWanFu/Rpc/GatheringRpc.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using BWP.B3Frameworks.Utils;
+using BWP.B3QingDaoWanFu.Utils;
+using BWP.B3Sale.BL;
+using BWP.B3Sale.BO;
+using Forks.EnterpriseServices.BusinessInterfaces;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.JsonRpc;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3QingDaoWanFu.Rpc
+{
+ [Rpc]
+ public static class GatheringRpc
+ {
+ [Rpc]
+ public static long Insert(Gathering dmo)
+ {
+ using (var context = new TransactionContext())
+ {
+ var bl = BIFactory.Create(context);
+ bl.InitNewDmo(dmo);
+ var dom = new DQueryDom(new JoinAlias(typeof(Customer)));
+ dom.Columns.Add(DQSelectColumn.Field("AccountCustomer_ID"));
+ dom.Columns.Add(DQSelectColumn.Field("AccountCustomer_Name"));
+ dom.Where.Conditions.Add(DQCondition.EQ("OuterCode", dmo.AccountCustomer_OuterCode));//
+ //找到该客户对应的结账客户
+ var info = dom.EExecuteScalar(context.Session);
+ if (info == null)
+ throw new ApplicationException(string.Format("没有配置外部编码{0}的对应结账客户", dmo.AccountCustomer_OuterCode));
+ dmo.AccountCustomer_ID = info.Item1;
+ dmo.AccountCustomer_Name = info.Item2;
+
+ SetAccountCustomerInfo(dmo, context.Session);
+
+ var conf = new WanFuOnlineConfig();
+ if (conf.AccID.Value == 0)
+ {
+ throw new ApplicationException("没有配置会计单位");
+ }
+ if (conf.GatheringAccountID.Value == 0)
+ {
+ throw new ApplicationException("没有配置帐户");
+ }
+ if (conf.ReceiptTypeID.Value == 0)
+ {
+ throw new ApplicationException("没有配置收款类型");
+ }
+ dmo.AccountingUnit_ID = conf.AccID.Value;
+ dmo.ReceiptType_ID = conf.ReceiptTypeID.Value;
+ dmo.GatheringAccount_ID = conf.GatheringAccountID.Value;
+// DmoUtil.RefreshDependency(dmo, "AccountingUnit_ID", "ReceiptType_ID", "GatheringAccount_ID"); 这里没有必要执行
+
+ bl.Insert(dmo);
+ bl.Check(dmo);
+ context.Commit();
+ }
+ return dmo.ID;
+ }
+
+ private static void SetAccountCustomerInfo(Gathering dmo, IDmoSessionWithTransaction session)
+ {
+ var dom = new DQueryDom(new JoinAlias(typeof(Customer)));
+ new Customer().Employee_ID = 1;
+ dom.Columns.Add(DQSelectColumn.Field("Department_ID"));
+ dom.Columns.Add(DQSelectColumn.Field("Employee_ID"));
+ dom.Columns.Add(DQSelectColumn.Field("Department_Name"));
+ dom.Columns.Add(DQSelectColumn.Field("Employee_Name"));
+ dom.Where.Conditions.Add(DQCondition.EQ("ID", dmo.AccountCustomer_ID));
+ var tuple = EExecuteScalar(dom, session);
+ if (tuple != null)
+ {
+ dmo.Department_ID = tuple.Item1;
+ dmo.Employee_ID = tuple.Item2;
+ dmo.Department_Name = tuple.Item3;
+ dmo.Employee_Name = tuple.Item4;
+ }
+ else
+ {
+ throw new ApplicationException(string.Format("不存在编号为{0}的客户", dmo.AccountCustomer_OuterCode));
+ }
+ }
+
+ static Tuple EExecuteScalar(DQueryDom query, IDmoSessionWithTransaction session)
+ {
+ var list = query.EExecuteList(session);
+ return list.Count == 0 ? null : list[0];
+ }
+
+ }
+}
diff --git a/B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs b/B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs
index b3e9bc8..b59b4e6 100644
--- a/B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs
+++ b/B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs
@@ -17,5 +17,44 @@ namespace BWP.B3QingDaoWanFu.Utils
{
ConfigurationUtil.Fill(this);
}
+
+
+ private IntConfigRef _receiptTypeID = new IntConfigRef(0);
+
+ [LogicName("农行接口收款类型ID")]
+ [ConfigurationItemGroup("青岛万福")]
+ [ConfigurationItemDescription("农行接口收款类型ID配置")]
+ [DomainConfigurationItem]
+ public IntConfigRef ReceiptTypeID
+ {
+ get { return _receiptTypeID; }
+ set { _receiptTypeID = value; }
+ }
+
+
+ private IntConfigRef _gatheringAccountID = new IntConfigRef(0);
+
+ [LogicName("农行接口帐户ID")]
+ [ConfigurationItemGroup("青岛万福")]
+ [ConfigurationItemDescription("农行接口帐户ID配置")]
+ [DomainConfigurationItem]
+ public IntConfigRef GatheringAccountID
+ {
+ get { return _gatheringAccountID; }
+ set { _gatheringAccountID = value; }
+ }
+
+ private IntConfigRef _accID = new IntConfigRef(0);
+
+ [LogicName("农行接口会计单位ID")]
+ [ConfigurationItemGroup("青岛万福")]
+ [ConfigurationItemDescription("农行接口会计单位ID配置")]
+ [DomainConfigurationItem]
+ public IntConfigRef AccID
+ {
+ get { return _accID; }
+ set { _accID = value; }
+ }
+
}
}
diff --git a/B3WanFuSaleWebService/B3WanFuSaleWebService.sln b/B3WanFuSaleWebService/B3WanFuSaleWebService.sln
new file mode 100644
index 0000000..e071736
--- /dev/null
+++ b/B3WanFuSaleWebService/B3WanFuSaleWebService.sln
@@ -0,0 +1,73 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebFolder", "WebFolder\", "{8506D64E-C6F3-4410-93CF-BF3C9327C95B}"
+ ProjectSection(WebsiteProperties) = preProject
+ TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
+ ProjectReferences = "{FE9CD25F-773A-4533-98FD-45D7B08254F2}|RpcHelper.dll;"
+ Debug.AspNetCompiler.VirtualPath = "/WebFolder"
+ Debug.AspNetCompiler.PhysicalPath = "WebFolder\"
+ Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebFolder\"
+ Debug.AspNetCompiler.Updateable = "true"
+ Debug.AspNetCompiler.ForceOverwrite = "true"
+ Debug.AspNetCompiler.FixedNames = "false"
+ Debug.AspNetCompiler.Debug = "True"
+ Release.AspNetCompiler.VirtualPath = "/WebFolder"
+ Release.AspNetCompiler.PhysicalPath = "WebFolder\"
+ Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebFolder\"
+ Release.AspNetCompiler.Updateable = "true"
+ Release.AspNetCompiler.ForceOverwrite = "true"
+ Release.AspNetCompiler.FixedNames = "false"
+ Release.AspNetCompiler.Debug = "False"
+ VWDPort = "3491"
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpcHelper", "RpcHelper\RpcHelper.csproj", "{FE9CD25F-773A-4533-98FD-45D7B08254F2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{285FA7AE-A051-41A7-8B32-8B77E11E4E17}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8506D64E-C6F3-4410-93CF-BF3C9327C95B}.Release|x86.ActiveCfg = Debug|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}.Release|x86.ActiveCfg = Release|Any CPU
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Debug|x86.ActiveCfg = Debug|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Debug|x86.Build.0 = Debug|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Release|Any CPU.ActiveCfg = Release|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Release|Mixed Platforms.Build.0 = Release|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Release|x86.ActiveCfg = Release|x86
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/B3WanFuSaleWebService/RpcHelper/Gatherings.cs b/B3WanFuSaleWebService/RpcHelper/Gatherings.cs
new file mode 100644
index 0000000..3c0c576
--- /dev/null
+++ b/B3WanFuSaleWebService/RpcHelper/Gatherings.cs
@@ -0,0 +1,61 @@
+using System.Collections.Generic;
+using System.Xml.Serialization;
+
+namespace RpcHelper {
+ [XmlRoot(ElementName = "bills")]
+ public class Gatherings {
+
+ public Gatherings() {
+ Bills = new List();
+ }
+
+ [XmlElement(ElementName = "bill")]
+ public List Bills { get; set; }
+ }
+
+ public class Gathering {
+
+ public Gathering() {
+ Head = new GatheringHead();
+ }
+
+ [XmlElement(ElementName = "header")]
+ public GatheringHead Head;
+
+ }
+
+ public class GatheringHead {
+
+ private string _requestId = string.Empty;
+
+ [XmlElement(ElementName = "RequestId")]
+ public string RequestId {
+ get { return _requestId; }
+ set { _requestId = value; }
+ }
+
+ private string _customerCode = string.Empty;
+
+ [XmlElement(ElementName = "CustomerCode")]
+ public string CustomerCode {
+ get { return _customerCode; }
+ set { _customerCode = value; }
+ }
+
+ private string _time = string.Empty;
+ [XmlElement(ElementName = "Time")]
+ public string Time {
+ get { return _time; }
+ set { _time = value; }
+ }
+
+ private string _money = string.Empty;
+
+ [XmlElement(ElementName = "Money")]
+ public string Money {
+ get { return _money; }
+ set { _money = value; }
+ }
+
+ }
+}
diff --git a/B3WanFuSaleWebService/RpcHelper/Properties/AssemblyInfo.cs b/B3WanFuSaleWebService/RpcHelper/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f651d34
--- /dev/null
+++ b/B3WanFuSaleWebService/RpcHelper/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("RpcHelper")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("RpcHelper")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("a551ac88-8c1f-437e-ba0f-ead89212f71e")]
+
+// 程序集的版本信息由下面四个值组成:
+//
+// 主版本
+// 次版本
+// 内部版本号
+// 修订号
+//
+// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/B3WanFuSaleWebService/RpcHelper/Results.cs b/B3WanFuSaleWebService/RpcHelper/Results.cs
new file mode 100644
index 0000000..0624cad
--- /dev/null
+++ b/B3WanFuSaleWebService/RpcHelper/Results.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace RpcHelper {
+ [XmlRoot(ElementName = "results")]
+ public class Results {
+ public Results() {
+ SendResult = new List();
+ }
+
+ private string _resultcode = string.Empty;
+ [XmlElement(ElementName = "resultcode")]
+ public string Resultcode {
+ get { return _resultcode; }
+ set { _resultcode = value; }
+ }
+
+ private string _content = string.Empty;
+ [XmlElement(ElementName = "content")]
+ public string Content {
+ get { return _content; }
+ set { _content = value; }
+ }
+
+ [XmlElement(ElementName = "result")]
+ public List SendResult { get; set; }
+ }
+ public class Result {
+ private string _requestId = string.Empty;
+
+ [XmlElement(ElementName = "RequestId")]
+ public string RequestId {
+ get { return _requestId; }
+ set { _requestId = value; }
+ }
+
+
+ private string _resultcode = string.Empty;
+ [XmlElement(ElementName = "resultcode")]
+ public string Resultcode {
+ get { return _resultcode; }
+ set { _resultcode = value; }
+ }
+
+
+ private string _bwpid = string.Empty;
+ [XmlElement(ElementName = "BWPID")]
+ public string Bwpid {
+ get { return _bwpid; }
+ set { _bwpid = value; }
+ }
+
+ private string _content = string.Empty;
+ [XmlElement(ElementName = "content")]
+ public string Content {
+ get { return _content; }
+ set { _content = value; }
+ }
+
+ }
+}
diff --git a/B3WanFuSaleWebService/RpcHelper/RpcHelper.csproj b/B3WanFuSaleWebService/RpcHelper/RpcHelper.csproj
new file mode 100644
index 0000000..7521f77
--- /dev/null
+++ b/B3WanFuSaleWebService/RpcHelper/RpcHelper.csproj
@@ -0,0 +1,62 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}
+ Library
+ Properties
+ RpcHelper
+ RpcHelper
+ v4.0
+ 512
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ ..\..\..\Projects\tsref\release\Forks.JsonRpc.Client.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/RpcHelper/RpcHelperUtil.cs b/B3WanFuSaleWebService/RpcHelper/RpcHelperUtil.cs
new file mode 100644
index 0000000..dbfd14d
--- /dev/null
+++ b/B3WanFuSaleWebService/RpcHelper/RpcHelperUtil.cs
@@ -0,0 +1,142 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+using Forks.JsonRpc.Client;
+using Forks.JsonRpc.Client.Data;
+
+namespace RpcHelper {
+ public static class RpcHelperUtil {
+ private static bool _isInit;
+
+ public static string InsertGathering(string data) {
+ var logName = DateTime.Today.Date.ToString("yyyyMMdd") + "Gatheringlog.txt";
+ var results = new Results();
+ var path = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
+ string resultStr;
+ using (var textWriter = new StreamWriter(path + "\\log\\" + logName, true, Encoding.UTF8)) {
+ textWriter.WriteLine("{0} 收款单接口开始接收数据:------------------------------------", DateTime.Now);
+ textWriter.WriteLine(data);
+ Console.WriteLine("{0}:开始接受数据:", DateTime.Now);
+ Console.WriteLine(data);
+ try {
+ var dmo = ParseXmlToMsg(data);
+
+ if (!_isInit) {
+ var url = System.Configuration.ConfigurationManager.AppSettings["url"];
+ RpcFacade.Init(url, "QingDaoWanFuRpc");
+ _isInit = true;
+ }
+ var username = System.Configuration.ConfigurationManager.AppSettings["username"];
+ var strPwd = System.Configuration.ConfigurationManager.AppSettings["pwd"];
+
+ RpcFacade.Login(username, strPwd);
+
+ foreach (var bill in dmo.Bills) {
+ var r = new Result();
+ r.RequestId = bill.Head.RequestId;
+ textWriter.WriteLine("开始处理单据:" + r.RequestId);
+ Console.WriteLine("开始处理单据:" + r.RequestId);
+ results.SendResult.Add(r);
+
+ var gathering = new RpcObject("/MainSystem/B3Sale/BO/Gathering");
+ SetString(gathering, "AccountCustomer_OuterCode", bill.Head.CustomerCode);// 客户的外部编码
+ SetDateTime(gathering, "GatheringTime", bill.Head.Time);
+ SetDecimal(gathering, "GatheringMoney", bill.Head.Money);
+
+ try {
+ var id = RpcFacade.Call("/MainSystem/B3QingDaoWanFu/Rpc/GatheringRpc/Insert", gathering);
+
+ textWriter.WriteLine("成功创建收款单No." + id);
+ r.Content = "成功创建收款单No." + id;
+
+ r.Resultcode = "0";
+ r.Bwpid = id.ToString();
+ } catch (Exception e1) {
+ r.Resultcode = "1";
+ r.Content = "调用错误,原因:" + e1.Message;
+ textWriter.WriteLine("内部错误:" + e1.Message);
+ Console.WriteLine("内部错误:" + e1.Message);
+ }
+
+ }
+ } catch (Exception e) {
+ results.Resultcode = "1";
+ results.Content = "调用错误,原因:" + e.Message;
+ textWriter.WriteLine("内部错误:" + e.Message);
+ Console.WriteLine("内部错误:" + e.Message);
+ } finally {
+ RpcFacade.Logout();
+ }
+
+ if (results.SendResult.Count > 0 && results.SendResult.All(x => x.Resultcode == "0")) {
+ results.Resultcode = "0";
+ } else {
+ results.Resultcode = "1";
+ }
+ resultStr = ObjToXml(results, Formatting.Indented, Encoding.GetEncoding("gb2312"));
+ textWriter.WriteLine("返回报文:" + resultStr);
+ textWriter.WriteLine("{0} 收款单接口处理完毕 ", DateTime.Now);
+ }
+
+ return resultStr;
+ }
+
+ public static string ObjToXml(object obj, Formatting formatting, Encoding encoding) {
+ using (var stream = new MemoryStream()) {
+ using (var writer = new XmlTextWriter(stream, encoding)) {
+ writer.Formatting = formatting;
+ writer.IndentChar = '\t';
+ var ns = new XmlSerializerNamespaces();
+ ns.Add(string.Empty, string.Empty);
+ new XmlSerializer(obj.GetType()).Serialize(writer, obj, ns);
+ }
+ return encoding.GetString(stream.ToArray());
+ }
+ }
+
+ public static T ParseXmlToMsg(string xml) {
+ using (TextReader reader = new StringReader(xml)) {
+ return (T)new XmlSerializer(typeof(T)).Deserialize(reader);
+ }
+ }
+ private static void SetLong(RpcObject rpcObject, string name, string value) {
+ if (!string.IsNullOrEmpty(value)) {
+ rpcObject.Set(name, long.Parse(value));
+ }
+ }
+
+ private static void SetDateTime(RpcObject rpcObject, string name, string value) {
+ if (!string.IsNullOrEmpty(value)) {
+ rpcObject.Set(name, Convert.ToDateTime(value));
+ }
+ }
+
+ private static void SetDecimal(RpcObject rpcObject, string name, string value) {
+ if (!string.IsNullOrEmpty(value)) {
+ rpcObject.Set(name, decimal.Parse(value));
+ }
+ }
+
+ private static void SetInt(RpcObject rpcObject, string name, string value) {
+ if (!string.IsNullOrEmpty(value)) {
+ rpcObject.Set(name, int.Parse(value));
+ }
+ }
+
+ private static void SetShort(RpcObject rpcObject, string name, string value) {
+ if (!string.IsNullOrEmpty(value)) {
+ rpcObject.Set(name, short.Parse(value));
+ }
+ }
+
+ private static void SetString(RpcObject rpcObject, string name, string value) {
+ if (!string.IsNullOrEmpty(value)) {
+ rpcObject.Set(name, value);
+ }
+ }
+ }
+}
diff --git a/B3WanFuSaleWebService/Test/Program.cs b/B3WanFuSaleWebService/Test/Program.cs
new file mode 100644
index 0000000..1a5b846
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Program.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using RpcHelper;
+using Test.webservice;
+
+namespace Test {
+ class Program {
+ static void Main(string[] args) {
+ var web = new Service();
+ var r= InsertPlan(web);
+ Console.WriteLine(r);
+ Console.Read();
+ }
+
+ private static string InsertPlan(Service web) {
+ var o = new Gatherings();
+ var bill = new Gathering();
+ bill.Head.CustomerCode = "0036";
+ bill.Head.Time = "2016-04-06 12:00";
+ bill.Head.RequestId = "201604061200001";
+ bill.Head.Money = "100";
+
+ o.Bills.Add(bill);
+ var data = RpcHelperUtil.ObjToXml(o, Formatting.Indented, Encoding.GetEncoding("gb2312"));
+
+ //var xx = RpcHelper.ParseXmlToMsg(data);
+
+ Console.WriteLine(data);
+ //web.Url = "http://203.86.48.90:81/bwprpc/Service.asmx";
+ // web.Url = "http://192.168.1.2/bwprpc/Service.asmx";
+ web.Url = "http://localhost:2100/WanFuSale/Service.asmx";
+ var xml = web.InsertGathering(data);
+ return xml;
+ }
+ }
+}
diff --git a/B3WanFuSaleWebService/Test/Properties/AssemblyInfo.cs b/B3WanFuSaleWebService/Test/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..5d36497
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Test")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("c3e1d6d9-85bb-4fd7-a67a-2d2a2ff83f3b")]
+
+// 程序集的版本信息由下面四个值组成:
+//
+// 主版本
+// 次版本
+// 内部版本号
+// 修订号
+//
+// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/B3WanFuSaleWebService/Test/Properties/Settings.Designer.cs b/B3WanFuSaleWebService/Test/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..7d908ae
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Properties/Settings.Designer.cs
@@ -0,0 +1,36 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.18063
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace Test.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.ApplicationScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
+ [global::System.Configuration.DefaultSettingValueAttribute("http://localhost:2100/WanfuSale/Service.asmx")]
+ public string Test_webservice_Service {
+ get {
+ return ((string)(this["Test_webservice_Service"]));
+ }
+ }
+ }
+}
diff --git a/B3WanFuSaleWebService/Test/Properties/Settings.settings b/B3WanFuSaleWebService/Test/Properties/Settings.settings
new file mode 100644
index 0000000..50da550
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Properties/Settings.settings
@@ -0,0 +1,9 @@
+
+
+
+
+
+ http://localhost:2100/WanfuSale/Service.asmx
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/Test/Test.csproj b/B3WanFuSaleWebService/Test/Test.csproj
new file mode 100644
index 0000000..cef923d
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Test.csproj
@@ -0,0 +1,106 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {285FA7AE-A051-41A7-8B32-8B77E11E4E17}
+ Exe
+ Properties
+ Test
+ Test
+ v4.0
+ 512
+
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Settings.settings
+
+
+ True
+ True
+ Reference.map
+
+
+
+
+
+
+
+
+
+
+ Dynamic
+ Web References\webservice\
+ http://localhost:2100/WanfuSale/Service.asmx
+
+
+
+
+ Settings
+ Test_webservice_Service
+
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ MSDiscoCodeGenerator
+ Reference.cs
+
+
+
+
+
+
+ {FE9CD25F-773A-4533-98FD-45D7B08254F2}
+ RpcHelper
+
+
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/Test/Web References/webservice/Reference.cs b/B3WanFuSaleWebService/Test/Web References/webservice/Reference.cs
new file mode 100644
index 0000000..6f44a0e
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Web References/webservice/Reference.cs
@@ -0,0 +1,150 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.18063
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+//
+// 此源代码是由 Microsoft.VSDesigner 4.0.30319.18063 版自动生成。
+//
+#pragma warning disable 1591
+
+namespace Test.webservice {
+ using System;
+ using System.Web.Services;
+ using System.Diagnostics;
+ using System.Web.Services.Protocols;
+ using System.Xml.Serialization;
+ using System.ComponentModel;
+
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Web.Services.WebServiceBindingAttribute(Name="ServiceSoap", Namespace="http://tempuri.org/")]
+ public partial class Service : System.Web.Services.Protocols.SoapHttpClientProtocol {
+
+ private System.Threading.SendOrPostCallback InsertGatheringOperationCompleted;
+
+ private bool useDefaultCredentialsSetExplicitly;
+
+ ///
+ public Service() {
+ this.Url = global::Test.Properties.Settings.Default.Test_webservice_Service;
+ if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
+ this.UseDefaultCredentials = true;
+ this.useDefaultCredentialsSetExplicitly = false;
+ }
+ else {
+ this.useDefaultCredentialsSetExplicitly = true;
+ }
+ }
+
+ public new string Url {
+ get {
+ return base.Url;
+ }
+ set {
+ if ((((this.IsLocalFileSystemWebService(base.Url) == true)
+ && (this.useDefaultCredentialsSetExplicitly == false))
+ && (this.IsLocalFileSystemWebService(value) == false))) {
+ base.UseDefaultCredentials = false;
+ }
+ base.Url = value;
+ }
+ }
+
+ public new bool UseDefaultCredentials {
+ get {
+ return base.UseDefaultCredentials;
+ }
+ set {
+ base.UseDefaultCredentials = value;
+ this.useDefaultCredentialsSetExplicitly = true;
+ }
+ }
+
+ ///
+ public event InsertGatheringCompletedEventHandler InsertGatheringCompleted;
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/InsertGathering", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public string InsertGathering(string data) {
+ object[] results = this.Invoke("InsertGathering", new object[] {
+ data});
+ return ((string)(results[0]));
+ }
+
+ ///
+ public void InsertGatheringAsync(string data) {
+ this.InsertGatheringAsync(data, null);
+ }
+
+ ///
+ public void InsertGatheringAsync(string data, object userState) {
+ if ((this.InsertGatheringOperationCompleted == null)) {
+ this.InsertGatheringOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInsertGatheringOperationCompleted);
+ }
+ this.InvokeAsync("InsertGathering", new object[] {
+ data}, this.InsertGatheringOperationCompleted, userState);
+ }
+
+ private void OnInsertGatheringOperationCompleted(object arg) {
+ if ((this.InsertGatheringCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.InsertGatheringCompleted(this, new InsertGatheringCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ public new void CancelAsync(object userState) {
+ base.CancelAsync(userState);
+ }
+
+ private bool IsLocalFileSystemWebService(string url) {
+ if (((url == null)
+ || (url == string.Empty))) {
+ return false;
+ }
+ System.Uri wsUri = new System.Uri(url);
+ if (((wsUri.Port >= 1024)
+ && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929")]
+ public delegate void InsertGatheringCompletedEventHandler(object sender, InsertGatheringCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class InsertGatheringCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal InsertGatheringCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public string Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((string)(this.results[0]));
+ }
+ }
+ }
+}
+
+#pragma warning restore 1591
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/Test/Web References/webservice/Reference.map b/B3WanFuSaleWebService/Test/Web References/webservice/Reference.map
new file mode 100644
index 0000000..52afd46
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Web References/webservice/Reference.map
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/Test/Web References/webservice/Service.disco b/B3WanFuSaleWebService/Test/Web References/webservice/Service.disco
new file mode 100644
index 0000000..d4f141b
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Web References/webservice/Service.disco
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/Test/Web References/webservice/Service.wsdl b/B3WanFuSaleWebService/Test/Web References/webservice/Service.wsdl
new file mode 100644
index 0000000..6dde072
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/Web References/webservice/Service.wsdl
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/Test/app.config b/B3WanFuSaleWebService/Test/app.config
new file mode 100644
index 0000000..312ba6b
--- /dev/null
+++ b/B3WanFuSaleWebService/Test/app.config
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+ http://localhost:2100/WanfuSale/Service.asmx
+
+
+
+
diff --git a/B3WanFuSaleWebService/WebFolder/App_Code/Service.cs b/B3WanFuSaleWebService/WebFolder/App_Code/Service.cs
new file mode 100644
index 0000000..3c46056
--- /dev/null
+++ b/B3WanFuSaleWebService/WebFolder/App_Code/Service.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Services;
+using RpcHelper;
+
+[WebService(Namespace = "http://tempuri.org/")]
+[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
+// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
+// [System.Web.Script.Services.ScriptService]
+
+public class Service : System.Web.Services.WebService
+{
+ public Service () {
+
+ //如果使用设计的组件,请取消注释以下行
+ //InitializeComponent();
+ }
+
+ [WebMethod]
+ public string InsertGathering(string data) {
+ var result = RpcHelperUtil.InsertGathering(data);
+ return result;
+ }
+
+}
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/WebFolder/Service.asmx b/B3WanFuSaleWebService/WebFolder/Service.asmx
new file mode 100644
index 0000000..c3817fb
--- /dev/null
+++ b/B3WanFuSaleWebService/WebFolder/Service.asmx
@@ -0,0 +1 @@
+<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>
diff --git a/B3WanFuSaleWebService/WebFolder/web.config b/B3WanFuSaleWebService/WebFolder/web.config
new file mode 100644
index 0000000..8644379
--- /dev/null
+++ b/B3WanFuSaleWebService/WebFolder/web.config
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/B3WanFuSaleWebService/用于B3万福收款单接口.txt b/B3WanFuSaleWebService/用于B3万福收款单接口.txt
new file mode 100644
index 0000000..e69de29