WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WebAPI/HttpClient.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WebAPI/InvokeHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WebAPI/LogService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WebAPI/WebAPI.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
@@ -1,4 +1,5 @@ using Newtonsoft.Json.Linq; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; @@ -31,7 +32,7 @@ try { ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where HitemID=" + HInterID, "h_v_IF_POInStockBillList"); ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where hmainid=" + HInterID, "h_v_IF_POInStockBillList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; @@ -244,6 +245,11 @@ { try { //先删除 金蝶数据 objJsonResult = DeleteKingDee(HInterID); if (objJsonResult.code == "0") return objJsonResult; oCN.BeginTran(); oCN.RunProc("Delete From Cg_POInStockBillMain where HInterID = " + HInterID); oCN.RunProc("Delete From Cg_POInStockBillSub where HInterID = " + HInterID); @@ -265,6 +271,83 @@ } } /// <summary> /// 反审核 /// </summary> [Route("Cg_POInStockBill/DeAuditPOInStockBill")] [HttpGet] public object DeAuditPOInStockBill(string HInterID) { try { //先删除 金蝶数据 objJsonResult = DeleteKingDee(HInterID); if (objJsonResult.code == "0") return objJsonResult; oCN.BeginTran(); oCN.RunProc("update Cg_POInStockBillMain set HERPBillNO='',HERPInterID = 0 ,HBillStatus =5 where HInterID = " + HInterID); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "操作成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //审核 删除 删除金蝶数据库对应 收料通知到数据 public json DeleteKingDee(string hinterid) { string sql = string.Format("select HinterID,HERPBillNO,HERPInterID from Cg_POInStockBillMain where HERPInterID>0 and hinterid in (" + hinterid + ")"); DataTable dt = oCN.RunProcReturn(sql, "deleteDt").Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { var sJson = new { Numbers = dr["HERPBillNO"].ToString(), Ids = "" }; var loginRet = InvokeHelper.Login(); var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); if (isSuccess == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet; objJsonResult.data = null; return objJsonResult; } var result = InvokeHelper.Delete("PUR_ReceiveBill", JsonConvert.SerializeObject(sJson)); //LogService.Write(result); if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "对应金蝶收料通知单删除失败 !" + result; objJsonResult.data = null; return objJsonResult; } } } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = null; return objJsonResult; } // } WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -1,4 +1,5 @@ using Newtonsoft.Json.Linq; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; @@ -211,6 +212,172 @@ } } [Route("AuditPOInStockBill")] [HttpGet] public object AuditPOInStockBill(string HInterID, string CurUserName) { json objjson = new json(); try { SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); string kdTbaleName = "AIS20210811135644"; string sql = string.Format(@" SELECT B.HINTERID,c.FID,c.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER AS FSETTLEORGNUMBER,E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID ,CU.FNUMBER AS FUNITNUMBER FROM CG_POINSTOCKBILLSUB B JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID JOIN AIS20210811135644..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID LEFT JOIN AIS20210811135644..T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMASTERID LEFT JOIN AIS20210811135644..T_BD_UNIT CU ON C.FUNITID =CU.FUNITID JOIN AIS20210811135644..T_PUR_POORDERENTRY_D CD ON C.FENTRYID = CD.FENTRYID LEFT JOIN AIS20210811135644..T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID JOIN AIS20210811135644..T_PUR_POORDERENTRY_F CR ON C.FENTRYID = CR.FENTRYID LEFT JOIN AIS20210811135644..T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID JOIN AIS20210811135644..T_PUR_POORDER D ON C.FID =D.FID LEFT JOIN AIS20210811135644..T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID LEFT JOIN AIS20210811135644..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID JOIN AIS20210811135644..T_PUR_POORDERFIN E ON C.FENTRYID =E.FENTRYID LEFT JOIN AIS20210811135644..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID WHERE b.hinterid in ({1}) and M.HERPInterID = 0 ", kdTbaleName, HInterID); DataTable dt = oCn.RunProcReturn(sql, "sltz").Tables[0]; List<string> fidList = new List<string>(); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (fidList.Contains(dr["FID"].ToString() + dr["HINTERID"].ToString())) continue; else fidList.Add(dr["FID"].ToString() + dr["HINTERID"].ToString()); DataRow[] drs = dt.Select("FID = " + dr["FID"].ToString() + " and HINTERID = "+dr["HINTERID"].ToString()); JObject model = new JObject(); model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SLD01_SYS" }); //单据类型 model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //通知日期 model.Add("FStockOrgId", new JObject() { ["Fnumber"] = dr["FRECEIVENUMBER"].ToString() }); // 收料组织 model.Add("FPurOrgId", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() }); //采购组织 model.Add("FSupplierId", new JObject() { ["Fnumber"] = dr["FSUPPLIERNUMBER"].ToString() }); //供应商 model.Add("FOwnerTypeIdHead", "BD_OwnerOrg");// 货主类型 model.Add("FOwnerIdHead", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() });//货主 JArray Fentity = new JArray(); foreach (var item in drs) { JObject FentityModel = new JObject(); FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMATERIALNUMBER"].ToString() }); // 物料编码 FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 单位 FentityModel.Add("FPreDeliveryDate", DateTime.Now.ToString("yyyy-MM-dd")); //预计到货日期 FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 计价单位 FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 库存单位 FentityModel.Add("FActReceiveQty", Convert.ToDecimal(item["HQTY"])); // 供应商送货数量(提料计划数量 - 已生成送货单数量) FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//货主类型 FentityModel.Add("FOwnerID", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() });//货主 FentityModel.Add("FSrcId", item["FID"].ToString());//源单内码 FentityModel.Add("FSRCFORMID", "PUR_PurchaseOrder");//源单类型 FentityModel.Add("FSrcBillNo", item["FBILLNO"].ToString());//源单单号 FentityModel.Add("FSRCENTRYID", item["FENTRYID"].ToString());//源单分录内码 FentityModel.Add("FORDERBILLNO", item["FBILLNO"].ToString());//源单单号 FentityModel.Add("FPOORDERENTRYID", item["FENTRYID"].ToString());//源单分录内码 JArray Fentity2 = new JArray(); JObject FentityModel2 = new JObject(); FentityModel2.Add("FDetailEntity_Link_FRULEID", "PUR_PurchaseOrder-PUR_ReceiveBill"); FentityModel2.Add("FDetailEntity_Link_FSTableName", "t_PUR_POOrderEntry"); FentityModel2.Add("FDetailEntity_Link_FSBillId", item["FID"].ToString()); FentityModel2.Add("FDetailEntity_Link_FSId", item["FEntryID"].ToString()); Fentity2.Add(FentityModel2); FentityModel.Add("FDetailEntity_Link", Fentity2); Fentity.Add(FentityModel); } model.Add("FDetailEntity", Fentity); //明细信息 JObject _FentityModel = new JObject(); _FentityModel.Add("FSettleOrgId", new JObject() { ["Fnumber"] = dr["FSETTLEORGNUMBER"].ToString() }); // 结算组织 _FentityModel.Add("FSettleCurrId", new JObject() { ["Fnumber"] = dr["FSETTLECURRNUMBER"].ToString() }); // 结算币别 _FentityModel.Add("FPricePoint", 0); // 定价时点 model.Add("FinanceEntity ", _FentityModel);//财务信息 JObject jsonRoot = new JObject() { ["Creator"] = "", ["NeedUpDateFields"] = new JArray(), ["NeedReturnFields"] = new JArray(), ["IsDeleteEntry"] = "false", ["SubSystemId"] = "", ["IsVerifyBaseDataField"] = "false", ["Model"] = model }; LogService.Write(JsonConvert.SerializeObject(jsonRoot)); var loginRet = InvokeHelper.Login(); var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); if (isSuccess == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = loginRet; objjson.data = null; return objjson; } var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString()); LogService.Write(result); if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE") { //更新送货单 主表 ERP单据号 以及 ERP主内玛 string FBillNo = JObject.Parse(result)["Result"]["Number"].ToString(); string FID = JObject.Parse(result)["Result"]["Id"].ToString(); string updateSql = string.Format(@" update a set a.HERPInterID = {0} , a.HERPBillNO ='{1}' from Cg_POInStockBillMain a join Cg_POInStockBillSub b on a.hinterid = b.hinterid where b.HInterID in ({2}) and b. HSOURCEINTERID = {3} and a.HERPInterID = 0 ", FID, FBillNo, HInterID, dr["FID"].ToString()); oCn.RunProc(updateSql); } else { objjson.code = "0"; objjson.count = 0; objjson.Message = result; objjson.data = null; return objjson; } } } sql = string.Format(@"update Cg_POInStockBillMain set HBillStatus = 2 , HChecker ='{0}', HCheckDate = getdate() where HInterID in ({1})", CurUserName, HInterID); oCn.RunProc(sql); objjson.code = "1"; objjson.count = 1; objjson.Message = "操作成功"; objjson.data = null; return objjson; } catch (Exception ex) { objjson.code = "0"; objjson.count = 0; objjson.Message = "操作失败" + ex.Message.ToString(); objjson.data = null; return objjson; } } //判断是否存在权限,并写入日志 public static bool Security_Log(string gnsy, int LogTF, bool Msg, string CurUserName) { WebAPI/HttpClient.cs
New file @@ -0,0 +1,103 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using System.Threading.Tasks; namespace WebAPI { public class HttpClient { /// <summary> /// Seivice URL /// </summary> public string Url { get; set; } /// <summary> /// 内容 /// </summary> public string Content { get; set; } /// <summary> /// Cookie,保证登录后,所有访问持有一个Cookie; /// </summary> static CookieContainer Cookie = new CookieContainer(); /// <summary> /// HTTP访问 /// </summary> public string SyncRequest() { HttpWebRequest httpRequest = HttpWebRequest.Create(Url) as HttpWebRequest; httpRequest.Method = "POST"; httpRequest.ContentType = "application/json"; httpRequest.CookieContainer = Cookie; httpRequest.Timeout = 1000 * 60 * 10;//10min using (Stream reqStream = httpRequest.GetRequestStream()) { JObject jObj = new JObject(); jObj.Add("format", 1); jObj.Add("useragent", "ApiClient"); jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString()); jObj.Add("parameters", Content); jObj.Add("timestamp", DateTime.Now); jObj.Add("v", "1.0"); string sContent = jObj.ToString(); var bytes = UnicodeEncoding.UTF8.GetBytes(sContent); reqStream.Write(bytes, 0, bytes.Length); reqStream.Flush(); } using (var repStream = httpRequest.GetResponse().GetResponseStream()) { using (var reader = new StreamReader(repStream)) { return ValidateResult(reader.ReadToEnd()); } } } public async Task<string> AsyncRequest() { HttpWebRequest httpRequest = WebRequest.Create(Url) as HttpWebRequest; httpRequest.Method = "POST"; httpRequest.ContentType = "application/json"; httpRequest.CookieContainer = Cookie; httpRequest.Timeout = 1000 * 60 * 10;//10min using (Stream reqStream = await httpRequest.GetRequestStreamAsync()) { JObject jObj = new JObject(); jObj.Add("format", 1); jObj.Add("useragent", "ApiClient"); jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString()); jObj.Add("parameters", Content); jObj.Add("timestamp", DateTime.Now); jObj.Add("v", "1.0"); string content = jObj.ToString(); var bytes = Encoding.UTF8.GetBytes(content); reqStream.Write(bytes, 0, bytes.Length); reqStream.Flush(); } using (var repStream = (await httpRequest.GetResponseAsync()).GetResponseStream()) { using (var reader = new StreamReader(repStream)) { return ValidateResult(await reader.ReadToEndAsync()); } } } private static string ValidateResult(string responseText) { if (responseText.StartsWith("response_error:")) { responseText.TrimStart("response_error:".ToCharArray()); } return responseText; } } } WebAPI/InvokeHelper.cs
New file @@ -0,0 +1,244 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; namespace WebAPI { public static class InvokeHelper { //private static string CloudUrl = "http://localhost/k3cloud/";//K/3 Cloud 业务站点地址 //private static string CloudUrl = "http://60.190.4.42:9002/k3cloud/";//K/3 Cloud 业务站点地址 private static string CloudUrl = "http://47.96.97.237/k3cloud/";//K/3 Cloud 业务站点地址 /// <summary> /// 登陆 /// </summary> public static string Login() { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc"); List<object> Parameters = new List<object>(); Parameters.Add("61aec029faed1a");//账套标示 Parameters.Add("Administrator");//用户名 Parameters.Add("qaz!@#123");//密码 Parameters.Add(2052);//2052代表中文 httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static async Task<string> LoginAsync() { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc"); List<object> Parameters = new List<object>(); Parameters.Add("5f9258a311401c");//账套标示 Parameters.Add("Administrator");//用户名 Parameters.Add("qaz!@#123");//密码 Parameters.Add(2052);//2052代表中文 httpClient.Content = JsonConvert.SerializeObject(Parameters); return await httpClient.AsyncRequest(); } /// <summary> /// 保存 /// </summary> /// <param name="formId"></param> /// <param name="content"></param> /// <returns></returns> public static string Save(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static string BatchSave(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static async Task<string> SaveAsync(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return await httpClient.AsyncRequest(); } /// <summary> /// 提交 /// </summary> /// <param name="formId"></param> /// <param name="content"></param> /// <returns></returns> public static string Submit(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } /// <summary> /// 删除 /// </summary> /// <param name="formId"></param> /// <param name="content"></param> /// <returns></returns> public static string Delete(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Delete.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static async Task<string> DeleteAsync(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Delete.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return await httpClient.AsyncRequest(); } /// <summary> /// 审核 /// </summary> /// <param name="formId"></param> /// <param name="content"></param> /// <returns></returns> public static string Audit(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } /// <summary> /// 查询 /// </summary> /// <param name="formId"></param> /// <param name="content"></param> /// <returns></returns> public static string View(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static string UnAudit(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.UnAudit.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static string Push(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } public static string Query(string formId, string content) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc"); List<object> Parameters = new List<object>(); //业务对象Id //Parameters.Add(formId); //Json字串 Parameters.Add(content); httpClient.Content = JsonConvert.SerializeObject(Parameters); return httpClient.SyncRequest(); } /// <summary> /// 自定义 /// </summary> /// <param name="key">自定义方法标识</param> /// <param name="args">参数</param> /// <returns></returns> public static string AbstractWebApiBusinessService(string key, List<object> args) { HttpClient httpClient = new HttpClient(); httpClient.Url = string.Concat(CloudUrl, key, ".common.kdsvc"); httpClient.Content = JsonConvert.SerializeObject(args); return httpClient.SyncRequest(); } } } WebAPI/LogService.cs
@@ -11,7 +11,23 @@ public class LogService { private static readonly object lockObj = new object(); public static void WriteAsync(object obj, string filePath = "Vlog", bool isAppend = true) { Task.Run(() => { Write(obj, filePath, isAppend); }); } public static void WriteAsync<T>(object obj, string filePath = "Vlog", bool isAppend = true) { Task.Run(() => { Write(obj, $@"{filePath}\{typeof(T).Name}", isAppend); }); } #region 日志 public static void Write(object obj, string filePath = "Vlog", bool isAppend = true) { WebAPI/WebAPI.csproj
@@ -453,6 +453,8 @@ <Compile Include="DLL\ClsSc_PackUnionBill.cs" /> <Compile Include="DLL\工资管理\ClsPay_GroupBalBill.cs" /> <Compile Include="DLL\工资管理\ClsPay_WorkTimesBill.cs" /> <Compile Include="HttpClient.cs" /> <Compile Include="InvokeHelper.cs" /> <Compile Include="Models\ClsGy_StockCheckItemBill.cs" /> <Compile Include="Models\ClsSc_PackUnionBillMain.cs" /> <Compile Include="Models\ClsSc_PackUnionBillSub.cs" />