Files
lserp_cs_6.0/插件库/Lskj.QueryEssentialInfo/FrmMain.cs
T
2026-08-11 14:18:01 +08:00

913 lines
48 KiB
C#

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;
}
/// <summary>
/// 初始化时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
}
/// <summary>
/// 报送人员
/// </summary>
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();
}));
}
/// <summary>
/// 报送查询
/// </summary>
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}");
}
}
}
}
}
/// <summary>
/// 查询专项附加
/// </summary>
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();
}));
}
/// <summary>
/// 养老金查询
/// </summary>
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();
}));
}
/// <summary>
/// 三方薪资查询
/// </summary>
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();
}));
}
/// <summary>
/// 个税申报
/// </summary>
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();
}));
}
/// <summary>
/// 个税申报作废
/// </summary>
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();
}));
}
/// <summary>
/// 个税申报查询
/// </summary>
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();
}));
}
/// <summary>
/// 税款查询
/// </summary>
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();
}));
}
/// <summary>
/// 显示当前文件
/// </summary>
/// <param name="text"></param>
private void SetProcessMsg(string text)
{
labelCurrentItem.Invoke(new Action(() =>
{
labelCurrentItem.Text = text;
}));
}
/// <summary>
/// 显示当前进度
/// </summary>
/// <param name="current"></param>
/// <param name="total"></param>
private void SetProcessBar()
{
Invoke(new Action(() =>
{
progressBarCurrent.Value += 1;
}));
}
}
}