913 lines
48 KiB
C#
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;
|
|
}));
|
|
}
|
|
}
|
|
}
|