using Lskj.Business.Impl; using Lskj.Control; using Lskj.Core; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Security.Authentication; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Lskj.QueryEssentialInfo { public partial class FrmMain : BaseForm { public DynamicQueryEssential Model; public FrmMain() { InitializeComponent(); this.Load += OnFrmMainLoad; } /// /// 初始化时 /// /// /// private void OnFrmMainLoad(object sender, EventArgs e) { try { const SslProtocols _Tls12 = (SslProtocols)0x00000C00; const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12; ServicePointManager.SecurityProtocol |= Tls12; progressBarCurrent.Maximum = 100; progressBarCurrent.Value = 0; QueryApiUtil.mainRow = BaseImpl.GetDataRowResult(Model.MainSourceSql); QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); QueryApiUtil.EssentialTabExists(); Task.Factory.StartNew(() => { try { switch (Model.ExecMode) { case "00": RYSend(); Invoke(new Action(() => { MessageUtil.Show("报送人员完成"); })); break; case "0": RYJQuery(); ZXFJQuery(); Invoke(new Action(() => { MessageUtil.Show("专项附加查询完成"); })); break; case "1": RYJQuery(); GSSKQuery(); Invoke(new Action(() => { MessageUtil.Show("个税税款查询完成"); })); break; case "11": RYJQuery(); GSSBSubmit(); Invoke(new Action(() => { MessageUtil.Show("个税申报完成"); })); break; case "-11": RYJQuery(); GSSBInvalidSubmit(); Invoke(new Action(() => { MessageUtil.Show("个税申报作废完成"); })); break; case "111": GSSBQuery(); Invoke(new Action(() => { MessageUtil.Show("个税申报查询成功"); })); break; case "2": RYJQuery(); YLJQuery(); Invoke(new Action(() => { MessageUtil.Show("个人养老金查询完成"); })); break; case "3": RYJQuery(); DSFXZQuery(); Invoke(new Action(() => { MessageUtil.Show("第三方薪资查询完成"); })); break; } } catch (Exception ex) { Invoke(new Action(() => { MessageUtil.Show(ex.Message); this.Close(); })); } }); } catch (Exception ex) { MessageUtil.Show(ex.Message); this.Close(); } } /// /// 报送人员 /// private void RYSend() { QueryApiUtil.Init(out string initResult, out string initMsg); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); if (rowsEnumerable.Where(n => string.IsNullOrEmpty(n["p_emp_addTag"] + "") || (n["p_emp_addTag"] + "").Equals("0")).Count() > 0) { SetProcessMsg($"正在报送人员..."); string personCode = QueryApiUtil.Person(out string personResult, out string personMsg); if (!personCode.Equals("0")) { throw new Exception($"报送失败\r\n{personMsg}"); } } Invoke(new Action(() => { this.Close(); })); } /// /// 报送查询 /// private void RYJQuery() { var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); if (rowsEnumerable.Where(n => string.IsNullOrEmpty(n["p_emp_addTag"] + "") || (n["p_emp_addTag"] + "").Equals("0")).Count() > 0) { SetProcessMsg($"正在查询报送人员..."); string personQueryCode = QueryApiUtil.PersonQuery(out string personQueryResult, out string personQueryMsg); if (!personQueryCode.Equals("0")) { throw new Exception($"报送查询失败\r\n{personQueryMsg}"); } else { JObject personQueryJObject = (JObject)JsonConvert.DeserializeObject(personQueryResult); if (personQueryJObject["data"] is JArray) { JArray personQueryJArray = (JArray)personQueryJObject["data"]; foreach (JObject personJObject in personQueryJArray) { string name = personJObject["name"] + ""; string sfzh = personJObject["sfzh"] + ""; string bszt = personJObject["bszt"] + ""; string sfyzzt = personJObject["sfyzzt"] + ""; if (bszt.Equals("报送成功") && sfyzzt.Equals("验证成功")) { DataRow selectRow = rowsEnumerable.Where(n => (n["idNumber"] + "").Equals(sfzh)).FirstOrDefault(); if (selectRow != null) { SqlHelper.ExecuteNonQuery($"update {Model.EmployeeTab} set p_emp_addTag = 1 where p_emp_idcardnum = '{sfzh}'"); } } else { DataRow selectRow = rowsEnumerable.Where(n => (n["idNumber"] + "").Equals(sfzh)).FirstOrDefault(); if (selectRow != null) { SqlHelper.ExecuteNonQuery($"update {Model.EmployeeTab} set p_emp_addTag = 2,error_msg='{bszt},{sfyzzt}' where p_emp_idcardnum = '{sfzh}'"); } } SetProcessMsg($"已报送:{name}"); } } else if (personQueryJObject["data"] is JObject listObject && listObject.ContainsKey("list") && listObject["list"] is JArray) { JArray personQueryJArray = (JArray)personQueryJObject["data"]["list"]; foreach (JObject personJObject in personQueryJArray) { string name = personJObject["name"] + ""; string sfzh = personJObject["sfzh"] + ""; string bszt = personJObject["bszt"] + ""; string sfyzzt = personJObject["sfyzzt"] + ""; if (bszt.Equals("报送成功") && sfyzzt.Equals("验证成功")) { DataRow selectRow = rowsEnumerable.Where(n => (n["idNumber"] + "").Equals(sfzh)).FirstOrDefault(); if (selectRow != null) { SqlHelper.ExecuteNonQuery($"update {Model.EmployeeTab} set p_emp_addTag = 1 where p_emp_idcardnum = '{sfzh}'"); } } else { DataRow selectRow = rowsEnumerable.Where(n => (n["idNumber"] + "").Equals(sfzh)).FirstOrDefault(); if (selectRow != null) { SqlHelper.ExecuteNonQuery($"update {Model.EmployeeTab} set p_emp_addTag = 2,error_msg='{bszt},{sfyzzt}' where p_emp_idcardnum = '{sfzh}'"); } } SetProcessMsg($"已报送:{name}"); } } } } } /// /// 查询专项附加 /// private void ZXFJQuery() { QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int bsFaildCount = rowsEnumerable.Where(n => !(n["p_emp_addTag"] + "").Equals("1")).Count(); if (bsFaildCount > 0) { throw new Exception($"人员未全部报送成功,请稍后再试或联系管理员"); } Invoke(new Action(() => { int maxCount = rowsEnumerable.Where(n => (n["p_emp_addTag"] + "").Equals("1")).Count(); if (maxCount > 0) { progressBarCurrent.Maximum = rowsEnumerable.Where(n => (n["p_emp_addTag"] + "").Equals("1")).Count(); } else { throw new Exception($"人员报送失败,员工未成功上报专项附加"); } })); SetProcessMsg($"正在同步专项附加数据..."); string postAdditionCode = QueryApiUtil.PostAddition(out string postAdditionResult, out string postAdditionMsg); SetProcessMsg($"正在查询专项附加数据..."); string getAdditionCode = QueryApiUtil.GetAddition(out string getAdditionResult, out string getAdditionMsg); if (!getAdditionCode.Equals("0")) { if (getAdditionMsg.Equals("还未通过税务共享平台获取专项附加或员工还未上报专项附加")) { for (int i = 0; i < 5; i++) { getAdditionResult = ""; getAdditionMsg = ""; getAdditionCode = QueryApiUtil.GetAddition(out getAdditionResult, out getAdditionMsg); if (getAdditionCode.Equals("0")) { break; } else { Thread.Sleep(1000); } } } } if (!getAdditionCode.Equals("0")) { throw new Exception($"查询数据失败\r\n{getAdditionMsg}"); } else { JObject additionJObject = (JObject)JsonConvert.DeserializeObject(getAdditionResult); if (additionJObject["data"] is JObject) { JObject additionDataJObject = (JObject)additionJObject["data"]; if (additionDataJObject.ContainsKey("list") && additionDataJObject["list"] is JArray) { string ysyf = QueryApiUtil.mainRow["ysyf"] + ""; JArray additionListJArray = (JArray)additionDataJObject["list"]; foreach (JObject item in additionListJArray) { StringBuilder sqlBuilder = new StringBuilder(); string peopleName = item["peopleName"] + ""; string idNumber = item["idNumber"] + ""; DataRow selectRow = rowsEnumerable.Where(n => (n["idNumber"] + "").Equals(idNumber)).FirstOrDefault(); if (selectRow != null && (selectRow["p_emp_addTag"] + "").Equals("1")) { sqlBuilder.AppendLine($"delete from p_gszxfjkctab where idnumber = '{idNumber}' and itemid = '{ysyf}' and type <> '个人养老金';"); string sylrAccumulate = item["sylrAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','赡养老人','{sylrAccumulate}','','{idNumber}','{ysyf}');"); string znjyAccumulate = item["znjyAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','子女教育','{znjyAccumulate}','','{idNumber}','{ysyf}');"); string xljxjyAccumulate = item["xljxjyAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','学历继续教育','{xljxjyAccumulate}','','{idNumber}','{ysyf}');"); string zyzgjxjyAccumulate = item["zyzgjxjyAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','专业资格继续教育','{zyzgjxjyAccumulate}','','{idNumber}','{ysyf}');"); string zfdklxAccumulate = item["zfdklxAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','住房贷款利息','{zfdklxAccumulate}','','{idNumber}','{ysyf}');"); string zfzjAccumulate = item["zfzjAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','租房租金','{zfzjAccumulate}','','{idNumber}','{ysyf}');"); string yyezhfAccumulate = item["yyezhfAccumulate"] + ""; sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{peopleName}','婴幼儿照护','{yyezhfAccumulate}','','{idNumber}','{ysyf}');"); if (!string.IsNullOrEmpty(sqlBuilder.ToString())) { BaseImpl.ExecSqlValue(sqlBuilder.ToString()); } SetProcessMsg($"已查询:{peopleName}"); SetProcessBar(); } } } } } #region 已弃用 //string token = ""; //string aggOrgId = ""; //string accountId = ""; //if ((string.IsNullOrEmpty(token) || string.IsNullOrEmpty(aggOrgId)) && QueryApiUtil.AlterTable("p_systemtab", "queryEssentialToken", "varchar(1000)") && QueryApiUtil.AlterTable("p_systemtab", "queryEssentialAggOrgId", "varchar(200)")) //{ // DataRow tokenRow = BaseImpl.GetDataRowResult("select queryEssentialToken,queryEssentialAggOrgId from p_systemtab"); // token = tokenRow["queryEssentialToken"] + ""; // aggOrgId = tokenRow["queryEssentialAggOrgId"] + ""; // if (string.IsNullOrEmpty(token)) // { // QueryApiUtil.GetToken(ref token, ref aggOrgId); // } //} //string checkPasswordMsg = ""; //string checkPasswordCode = QueryApiUtil.CheckPassword(ref token, ref aggOrgId, ref accountId, ref checkPasswordMsg); //if (!checkPasswordCode.Equals("2000")) //{ // QueryApiUtil.GetToken(ref token, ref aggOrgId); // checkPasswordMsg = ""; // checkPasswordCode = QueryApiUtil.CheckPassword(ref token, ref aggOrgId, ref accountId, ref checkPasswordMsg); //} //if (!checkPasswordCode.Equals("2000")) //{ // throw new Exception($"验证失败\r\n{checkPasswordMsg}"); //} //string employeeInfoCode = QueryApiUtil.QueryEssentialEmployeeInfo(ref token, ref aggOrgId, ref accountId, out string employeeInfoResult); //if (employeeInfoCode.Equals("2000") || employeeInfoCode.Equals("-9998")) //{ // if (employeeInfoCode.Equals("2000")) // { // JObject employeeInfoJObject = (JObject)JsonConvert.DeserializeObject(employeeInfoResult); // string success = employeeInfoJObject.ContainsKey("success") ? employeeInfoJObject["success"] + "" : ""; // string message = employeeInfoJObject.ContainsKey("message") ? employeeInfoJObject["message"] + "" : ""; // if (success.Equals("true", StringComparison.OrdinalIgnoreCase)) // { // string taskId = employeeInfoJObject["data"]["taskId"] + ""; // string backStates = "0"; // string backSuccess = ""; // string backMessage = ""; // int waitCount = 1; // while (backStates.Equals("0") || backStates.Equals("1")) // { // SetProcessMsg($"等待报送数据返回({waitCount})..."); // string employeeInfoBackCode = QueryApiUtil.QueryEssentialEmployeeInfoFeedback(taskId, ref token, ref aggOrgId, ref accountId, out string employeeInfoBackResult); // if (employeeInfoBackCode.Equals("2000")) // { // JObject employeeInfoBackJObject = (JObject)JsonConvert.DeserializeObject(employeeInfoBackResult); // backSuccess = employeeInfoBackJObject.ContainsKey("success") ? employeeInfoBackJObject["success"] + "" : ""; // if (backSuccess.Equals("true", StringComparison.OrdinalIgnoreCase)) // { // backMessage = employeeInfoBackJObject["data"]["taskStatusName"] + ""; // backStates = employeeInfoBackJObject["data"]["taskStatus"] + ""; // if (backStates.Equals("3"))//已完成 // { // JArray resultArray = (JArray)employeeInfoBackJObject["data"]["result"]; // foreach (JObject result in resultArray) // { // string xm = result["xm"] + ""; // string zjhm = result["zzhm"] + ""; // SqlHelper.ExecuteNonQuery($"update p_employeeTab set p_emp_addTag = 1 where p_emp_idcardnum = '{zjhm}'"); // SetProcessMsg($"已报送:{xm}"); // SetProcessBar(); // } // } // if (backStates.Equals("2")) // { // string errorMessage = employeeInfoBackJObject["data"]["message"] + ""; // throw new Exception($"报送反馈请求失败\r\n{errorMessage}"); // } // } // } // else // { // throw new Exception($"报送反馈请求失败\r\n{employeeInfoBackResult}"); // } // } // } // } //} //else //{ // throw new Exception($"报送失败\r\n{employeeInfoResult}"); //} //string queryInfoCode = QueryApiUtil.QueryEssentialInfo(ref token, ref aggOrgId, ref accountId, out string queryInfoResult); //if (queryInfoCode.Equals("2000") || queryInfoCode.Equals("-9998")) //{ // if (queryInfoCode.Equals("2000")) // { // JObject queryInfoJObject = (JObject)JsonConvert.DeserializeObject(queryInfoResult); // string success = queryInfoJObject.ContainsKey("success") ? queryInfoJObject["success"] + "" : ""; // string message = queryInfoJObject.ContainsKey("message") ? queryInfoJObject["message"] + "" : ""; // if (success.Equals("true", StringComparison.OrdinalIgnoreCase)) // { // string taskId = queryInfoJObject["data"]["taskId"] + ""; // string backStates = "0"; // string backSuccess = ""; // string backMessage = ""; // int waitCount = 1; // while (backStates.Equals("0") || backStates.Equals("1")) // { // SetProcessMsg($"等待查询数据返回({waitCount})..."); // string queryInfoBackCode = QueryApiUtil.QueryEssentialInfoFeedback(taskId, ref token, ref aggOrgId, ref accountId, out string queryInfoBackResult); // if (queryInfoBackCode.Equals("2000")) // { // JObject queryInfoBackJObject = (JObject)JsonConvert.DeserializeObject(queryInfoBackResult); // backSuccess = queryInfoBackJObject.ContainsKey("success") ? queryInfoBackJObject["success"] + "" : ""; // if (backSuccess.Equals("true", StringComparison.OrdinalIgnoreCase)) // { // backMessage = queryInfoBackJObject["data"]["taskStatusName"] + ""; // backStates = queryInfoBackJObject["data"]["taskStatus"] + ""; // if (backStates.Equals("3")) // { // string itemId = QueryApiUtil.mainRow["skssq"] + ""; // JArray resultArray = (JArray)queryInfoBackJObject["data"]["result"]; // foreach (JObject result in resultArray) // { // StringBuilder sqlBuilder = new StringBuilder(); // string xm = result["xm"] + ""; // string zzlx = result["zzlx"] + ""; // string zzhm = result["zzhm"] + ""; // sqlBuilder.AppendLine($"delete from p_gszxfjkctab where idnumber = '{zzhm}' and itemid = '{itemId}';"); // #region 子女教育 // JArray znjys = (JArray)result["znjys"]; // foreach (JObject znjy in znjys) // { // string znjyxm = znjy["xm"] + ""; // sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{xm}','子女教育','2000','{znjyxm}','{zzhm}','{itemId}');"); // } // #endregion // #region 赡养老人 // if (result["sylrs"] is JObject) // { // JObject sylrs = (JObject)result["sylrs"]; // string ftje = sylrs["ftje"] + ""; // sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{xm}','赡养老人','{ftje}','','{zzhm}','{itemId}');"); // } // #endregion // #region 住房租金 // JArray fwzls = (JArray)result["fwzls"]; // foreach (JObject fwzl in fwzls) // { // string zfzlhtbh = fwzl["zfzlhtbh"] + ""; // sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{xm}','住房租金','1500','{zfzlhtbh}','{zzhm}','{itemId}');"); // } // #endregion // #region 住房贷款 // JArray fwdks = (JArray)result["fwdks"]; // foreach (JObject fwdk in fwdks) // { // string zsh = fwdk["zsh"] + ""; // sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{xm}','住房贷款','1000','{zsh}','{zzhm}','{itemId}');"); // } // #endregion // #region 继续教育 // JArray jxjys = (JArray)result["jxjys"]; // foreach (JObject jxjy in jxjys) // { // string zsmc = jxjy["zsmc"] + ""; // sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{xm}','继续教育','400','{zsmc}','{zzhm}','{itemId}');"); // } // #endregion // #region 婴幼儿照护 // JArray yyezhls = (JArray)result["yyezhls"]; // foreach (JObject yyezhl in yyezhls) // { // string yyexm = yyezhl["xm"] + ""; // sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{xm}','婴幼儿照护','2000','{yyexm}','{zzhm}','{itemId}');"); // } // #endregion // SqlHelper.ExecuteNonQuery(sqlBuilder.ToString()); // SetProcessMsg($"已查询:{xm}"); // SetProcessBar(); // } // } // if (backStates.Equals("2")) // { // string errorMessage = queryInfoBackJObject["data"]["message"] + ""; // throw new Exception($"报送反馈请求失败\r\n{errorMessage}"); // } // } // } // else // { // throw new Exception($"数据请求反馈失败\r\n{queryInfoBackResult}"); // } // Thread.Sleep(1000); // } // Invoke(new Action(() => // { // MessageUtil.Show(backMessage); // })); // } // } //} //else //{ // throw new Exception($"数据请求失败\r\n{queryInfoResult}"); //} #endregion Invoke(new Action(() => { this.Close(); })); } /// /// 养老金查询 /// private void YLJQuery() { QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int bsFaildCount = rowsEnumerable.Where(n => !(n["p_emp_addTag"] + "").Equals("1")).Count(); if (bsFaildCount > 0) { throw new Exception($"人员未全部报送成功,请稍后再试或联系管理员"); } Invoke(new Action(() => { rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int maxCount = rowsEnumerable.Where(n => (n["p_emp_addTag"] + "").Equals("1")).Count(); if (maxCount > 0) { progressBarCurrent.Maximum = rowsEnumerable.Where(n => (n["p_emp_addTag"] + "").Equals("1")).Count(); } else { throw new Exception($"人员报送失败,员工未成功上报专项附加"); } })); SetProcessMsg($"正在查询个人养老金数据..."); string yljfqCode = QueryApiUtil.GetYLJFQ(out string yljfqResult, out string yljfqMsg); JObject yljfqJObject = JsonConvert.DeserializeObject(yljfqResult) as JObject; string partRespCode = yljfqJObject.ContainsKey("partRespCode") ? yljfqJObject["partRespCode"] + "" : "0"; if (!yljfqCode.Equals("0") || !partRespCode.Equals("0")) { for (int i = 0; i < 5; i++) { yljfqResult = ""; yljfqMsg = ""; yljfqCode = QueryApiUtil.GetYLJFQ(out yljfqResult, out yljfqMsg); partRespCode = yljfqJObject.ContainsKey("partRespCode") ? yljfqJObject["partRespCode"] + "" : "0"; if (yljfqCode.Equals("0") || partRespCode.Equals("0")) { break; } else { Thread.Sleep(1000); } } } if (!yljfqCode.Equals("0")) { throw new Exception($"发起查询失败\r\n{yljfqMsg}"); } else { string yljmxCode = QueryApiUtil.GetYLJMX(out string yljmxResult, out string yljmxMsg); if (!yljmxCode.Equals("0")) { throw new Exception($"查询数据失败\r\n{yljmxMsg}"); } else { JObject yljJObject = (JObject)JsonConvert.DeserializeObject(yljmxResult); if (yljJObject.ContainsKey("data") && yljJObject["data"] is JArray) { JArray yljDataJArray = (JArray)yljJObject["data"]; foreach (JObject item in yljDataJArray) { StringBuilder sqlBuilder = new StringBuilder(); string ysyf = QueryApiUtil.mainRow["ysyf"] + ""; string name = item["name"] + ""; string zjhm = item["zjhm"] + ""; string sypzbh = item["sypzbh"] + ""; string pzlbDm = item["pzlbDm"] + ""; string jcje = item["jcje"] + ""; string jcsj = item["jcsj"] + ""; string xgrq = item["xgrq"] + ""; DataRow selectRow = rowsEnumerable.Where(n => (n["idNumber"] + "").Equals(zjhm)).FirstOrDefault(); if (selectRow != null && (selectRow["p_emp_addTag"] + "").Equals("1")) { sqlBuilder.AppendLine($"delete from p_gszxfjkctab where idnumber = '{zjhm}' and itemid = '{ysyf}' and type = '个人养老金';"); sqlBuilder.AppendLine($"insert into p_gszxfjkctab (employeename,type,money,bak,idnumber,itemid) values ('{name}','个人养老金','{jcje}','','{zjhm}','{ysyf}');"); if (!string.IsNullOrEmpty(sqlBuilder.ToString())) { BaseImpl.ExecSqlValue(sqlBuilder.ToString()); } //SetProcessMsg($"已查询:{peopleName}"); SetProcessBar(); } } } } } Invoke(new Action(() => { this.Close(); })); } /// /// 三方薪资查询 /// private void DSFXZQuery() { QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int bsFaildCount = rowsEnumerable.Where(n => !(n["p_emp_addTag"] + "").Equals("1")).Count(); if (bsFaildCount > 0) { throw new Exception($"人员未全部报送成功,请稍后再试或联系管理员"); } Invoke(new Action(() => { rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int maxCount = rowsEnumerable.Where(n => (n["p_emp_addTag"] + "").Equals("1")).Count(); if (maxCount > 0) { progressBarCurrent.Maximum = rowsEnumerable.Where(n => (n["p_emp_addTag"] + "").Equals("1")).Count(); } else { throw new Exception($"人员报送失败,员工未成功上报专项附加"); } })); SetProcessMsg($"正在同步收入..."); string dsfxzCode = QueryApiUtil.GetIncome(out string dsfxzResult, out string dsfxzMsg); if (!dsfxzCode.Equals("0")) { throw new Exception($"同步收入失败\r\n{dsfxzMsg}"); } Invoke(new Action(() => { this.Close(); })); } /// /// 个税申报 /// private void GSSBSubmit() { QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int bsFaildCount = rowsEnumerable.Where(n => !(n["p_emp_addTag"] + "").Equals("1")).Count(); if (bsFaildCount > 0) { throw new Exception($"人员未全部报送成功,请稍后再试或联系管理员"); } SetProcessMsg($"正在进行个税申报..."); string submitCode = QueryApiUtil.Submit(out string submitResult, out string submitMsg); if (!submitCode.Equals("0")) { throw new Exception($"个税申报失败\r\n{submitMsg}"); } Invoke(new Action(() => { this.Close(); })); } /// /// 个税申报作废 /// private void GSSBInvalidSubmit() { QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int bsFaildCount = rowsEnumerable.Where(n => !(n["p_emp_addTag"] + "").Equals("1")).Count(); if (bsFaildCount > 0) { throw new Exception($"人员未全部报送成功,请稍后再试或联系管理员"); } SetProcessMsg($"正在作废个税申报..."); string submitCode = QueryApiUtil.InvalidSubmit(out string submitResult, out string submitMsg); if (!submitCode.Equals("0")) { throw new Exception($"个税申报作废失败\r\n{submitMsg}"); } Invoke(new Action(() => { this.Close(); })); } /// /// 个税申报查询 /// private void GSSBQuery() { SetProcessMsg($"正在查询个税申报结果..."); string submitQueryCode = "-99"; string submitQueryResult = ""; string submitQueryMsg = ""; submitQueryResult = ""; submitQueryMsg = ""; submitQueryCode = QueryApiUtil.SubmitQuery(out submitQueryResult, out submitQueryMsg); if (!submitQueryCode.Equals("0")) { throw new Exception($"个税申报失败\r\n{submitQueryMsg}"); } else { throw new Exception($"个税申报成功\r\n{submitQueryMsg}"); } Invoke(new Action(() => { this.Close(); })); } /// /// 税款查询 /// private void GSSKQuery() { QueryApiUtil.detailTab = BaseImpl.GetDataTableResult(Model.DetailSourceSql); var rowsEnumerable = QueryApiUtil.detailTab.AsEnumerable(); int bsFaildCount = rowsEnumerable.Where(n => !(n["p_emp_addTag"] + "").Equals("1")).Count(); if (bsFaildCount > 0) { throw new Exception($"人员未全部报送成功,请稍后再试或联系管理员"); } SetProcessMsg($"正在同步收入..."); string incomeCode = QueryApiUtil.GetIncome(out string incomeResult, out string incomeMsg); if (!incomeCode.Equals("0")) { throw new Exception($"同步收入失败\r\n{incomeMsg}"); } SetProcessMsg($"正在计算税款..."); string computeCode = QueryApiUtil.GetCompute(out string computeResult, "101060100", out string computeMsg); if (!computeCode.Equals("0")) { throw new Exception($"计算税款\r\n{computeMsg}"); } SetProcessMsg($"正在获取税款计算结果..."); string resultCode = "-99"; string resultResult = ""; string resultMsg = ""; for (int i = 0; i < 5; i++) { resultResult = ""; resultMsg = ""; resultCode = QueryApiUtil.GetResult(out resultResult, "101060100", out resultMsg); if (resultCode.Equals("0")) { break; } else { Thread.Sleep(1000); } } if (!resultCode.Equals("0")) { throw new Exception($"获取税款计算结果失败\r\n{resultMsg}"); } else { JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultResult); JArray zhsdJArray = (JArray)resultJObject["data"]["zhsdList"]; string skssq = QueryApiUtil.mainRow["skssqQ"] + ""; StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.AppendLine($"delete from IndividualTax_Result_Detail where skssq = '{skssq}'"); foreach (JObject zhsdJObject in zhsdJArray) { JObject personJObject = (JObject)zhsdJObject; string nsrxm = personJObject["nsrxm"] + ""; string sfzjhm = personJObject["sfzjhm"] + ""; string zrrdah = personJObject["zrrdah"] + ""; string sdxmdm = personJObject["sdxmdm"] + ""; string sdxmMc = personJObject["sdxmMc"] + ""; string bqsre = personJObject["bqsre"] + ""; string ljsre = personJObject["ljsre"] + ""; string bqfy = personJObject["bqfy"] + ""; string bqmssr = personJObject["bqmssr"] + ""; string ljmssr = personJObject["ljmssr"] + ""; string yjbjcfy = personJObject["yjbjcfy"] + ""; string ljjbjcfy = personJObject["ljjbjcfy"] + ""; string jbylbxf = personJObject["jbylbxf"] + ""; string jbyilbxf = personJObject["jbyilbxf"] + ""; string sybxf = personJObject["sybxf"] + ""; string zfgjj = personJObject["zfgjj"] + ""; string bqzxkchj = personJObject["bqzxkchj"] + ""; string ljzxkchj = personJObject["ljzxkchj"] + ""; string nj = personJObject["nj"] + ""; string syjkbx = personJObject["syjkbx"] + ""; string syylbx = personJObject["syylbx"] + ""; string qtje = personJObject["qtje"] + ""; string bqqtkchj = personJObject["bqqtkchj"] + ""; string ljqtkchj = personJObject["ljqtkchj"] + ""; string znjyzc = personJObject["znjyzc"] + ""; string sylrzc = personJObject["sylrzc"] + ""; string zfdklxzc = personJObject["zfdklxzc"] + ""; string zfzjzc = personJObject["zfzjzc"] + ""; string jxjyzc = personJObject["jxjyzc"] + ""; string yyezhzc = personJObject["yyezhzc"] + ""; string bqzxfjkchj = personJObject["bqzxfjkchj"] + ""; string ljznjyzc = personJObject["ljznjyzc"] + ""; string ljsylrzc = personJObject["ljsylrzc"] + ""; string ljzfdklxzc = personJObject["ljzfdklxzc"] + ""; string ljzfzjzc = personJObject["ljzfzjzc"] + ""; string ljjxjyzc = personJObject["ljjxjyzc"] + ""; string ljyyezhzc = personJObject["ljyyezhzc"] + ""; string ljzxfjkchj = personJObject["ljzxfjkchj"] + ""; string bqzykcdjze = personJObject["bqzykcdjze"] + ""; string ljzykcdjze = personJObject["ljzykcdjze"] + ""; string ljynssde = personJObject["ljynssde"] + ""; string sl = personJObject["sl"] + ""; string sskcs = personJObject["sskcs"] + ""; string ljynse = personJObject["ljynse"] + ""; string bqjmse = personJObject["bqjmse"] + ""; string ljjmse = personJObject["ljjmse"] + ""; string ljyingkjse = personJObject["ljyingkjse"] + ""; string bqyiyujse = personJObject["bqyiyujse"] + ""; string ljyiyujse = personJObject["ljyiyujse"] + ""; string ybtse = personJObject["ybtse"] + ""; string ljfy = personJObject["ljfy"] + ""; string yxkcdsf = personJObject["yxkcdsf"] + ""; string bz = personJObject["bz"] + ""; string qpcykse = personJObject["qpcykse"] + ""; string bpcybtse = personJObject["bpcybtse"] + ""; string batchId = personJObject["batchId"] + ""; string S(string val) => string.IsNullOrEmpty(val) ? "NULL" : $"'{val.Replace("'", "''")}'"; string N(string val) => string.IsNullOrEmpty(val) ? "0" : val; string sql = $@" INSERT INTO IndividualTax_Result_Detail ( nsrxm, sfzjhm, zrrdah, sdxmdm, sdxmMc, bqsre, ljsre, bqfy, bqmssr, ljmssr, yjbjcfy, ljjbjcfy, jbylbxf, jbyilbxf, sybxf, zfgjj, bqzxkchj, ljzxkchj, nj, syjkbx, syylbx, qtje, bqqtkchj, ljqtkchj, znjyzc, sylrzc, zfdklxzc, zfzjzc, jxjyzc, yyezhzc, bqzxfjkchj, ljznjyzc, ljsylrzc, ljzfdklxzc, ljzfzjzc, ljjxjyzc, ljyyezhzc, ljzxfjkchj, bqzykcdjze, ljzykcdjze, ljynssde, sl, sskcs, ljynse, bqjmse, ljjmse, ljyingkjse, bqyiyujse, ljyiyujse, ybtse, ljfy, yxkcdsf, bz, qpcykse, bpcybtse, batchId,skssq ) VALUES ( {S(nsrxm)}, {S(sfzjhm)}, {S(zrrdah)}, {S(sdxmdm)}, {S(sdxmMc)}, {N(bqsre)}, {N(ljsre)}, {N(bqfy)}, {N(bqmssr)}, {N(ljmssr)}, {N(yjbjcfy)}, {N(ljjbjcfy)}, {N(jbylbxf)}, {N(jbyilbxf)}, {N(sybxf)}, {N(zfgjj)}, {N(bqzxkchj)}, {N(ljzxkchj)}, {N(nj)}, {N(syjkbx)}, {N(syylbx)}, {N(qtje)}, {N(bqqtkchj)}, {N(ljqtkchj)}, {N(znjyzc)}, {N(sylrzc)}, {N(zfdklxzc)}, {N(zfzjzc)}, {N(jxjyzc)}, {N(yyezhzc)}, {N(bqzxfjkchj)}, {N(ljznjyzc)}, {N(ljsylrzc)}, {N(ljzfdklxzc)}, {N(ljzfzjzc)}, {N(ljjxjyzc)}, {N(ljyyezhzc)}, {N(ljzxfjkchj)}, {N(bqzykcdjze)}, {N(ljzykcdjze)}, {N(ljynssde)}, {N(sl)}, {N(sskcs)}, {N(ljynse)}, {N(bqjmse)}, {N(ljjmse)}, {N(ljyingkjse)}, {N(bqyiyujse)}, {N(ljyiyujse)}, {N(ybtse)}, {N(ljfy)}, {N(yxkcdsf)}, {S(bz)}, {N(qpcykse)}, {N(bpcybtse)}, {S(batchId)},{S(skssq)} );"; sqlBuilder.AppendLine(sql); } if (!string.IsNullOrEmpty(sqlBuilder.ToString())) { SqlHelper.ExecuteNonQuery(sqlBuilder.ToString()); } } Invoke(new Action(() => { this.Close(); })); } /// /// 显示当前文件 /// /// private void SetProcessMsg(string text) { labelCurrentItem.Invoke(new Action(() => { labelCurrentItem.Text = text; })); } /// /// 显示当前进度 /// /// /// private void SetProcessBar() { Invoke(new Action(() => { progressBarCurrent.Value += 1; })); } } }