SVN r1154
SVN-Revision: r1154
This commit is contained in:
@@ -57,6 +57,13 @@ namespace Lskj.QueryEssentialInfo
|
||||
}));
|
||||
break;
|
||||
case "1":
|
||||
GSSKQuery();
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
MessageUtil.Show("个税税款查询完成");
|
||||
}));
|
||||
break;
|
||||
case "11":
|
||||
GSSBQuery();
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
@@ -677,6 +684,48 @@ namespace Lskj.QueryEssentialInfo
|
||||
/// 个税申报
|
||||
/// </summary>
|
||||
private void GSSBQuery()
|
||||
{
|
||||
SetProcessMsg($"正在进行个税申报...");
|
||||
string submitCode = QueryApiUtil.Submit(out string submitResult, out string submitMsg);
|
||||
if (!submitCode.Equals("0"))
|
||||
{
|
||||
throw new Exception($"个税申报失败\r\n{submitMsg}");
|
||||
}
|
||||
SetProcessMsg($"正在查询个税申报结果...");
|
||||
string submitQueryCode = "-99";
|
||||
string submitQueryResult = "";
|
||||
string submitQueryMsg = "";
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
submitQueryResult = "";
|
||||
submitQueryMsg = "";
|
||||
submitQueryCode = QueryApiUtil.SubmitQuery(out submitQueryResult, out submitQueryMsg);
|
||||
if (submitQueryCode.Equals("0"))
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
}
|
||||
if (!submitQueryCode.Equals("0"))
|
||||
{
|
||||
throw new Exception($"个税申报失败\r\n{submitQueryMsg}");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.Close();
|
||||
}));
|
||||
}
|
||||
/// <summary>
|
||||
/// 税款查询
|
||||
/// </summary>
|
||||
private void GSSKQuery()
|
||||
{
|
||||
SetProcessMsg($"正在同步收入...");
|
||||
string incomeCode = QueryApiUtil.GetIncome(out string incomeResult, out string incomeMsg);
|
||||
@@ -684,29 +733,128 @@ namespace Lskj.QueryEssentialInfo
|
||||
{
|
||||
throw new Exception($"同步收入失败\r\n{incomeMsg}");
|
||||
}
|
||||
SetProcessMsg($"正在生成批次信息...");
|
||||
string batchCode = QueryApiUtil.GetBatch(out string batchResult, "101060100", out string batchMsg);
|
||||
if (!batchCode.Equals("0"))
|
||||
SetProcessMsg($"正在计算税款...");
|
||||
string computeCode = QueryApiUtil.GetCompute(out string computeResult, "101060100", out string computeMsg);
|
||||
if (!computeCode.Equals("0"))
|
||||
{
|
||||
throw new Exception($"生成批次信息失败\r\n{batchMsg}");
|
||||
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);
|
||||
}
|
||||
}
|
||||
SetProcessMsg($"正在获取计算结果...");
|
||||
string resultCode = QueryApiUtil.GetResult(out string resultResult, "101060100", out string resultMsg);
|
||||
if (!resultCode.Equals("0"))
|
||||
{
|
||||
throw new Exception($"获取计算结果\r\n{resultMsg}");
|
||||
throw new Exception($"获取税款计算结果失败\r\n{resultMsg}");
|
||||
}
|
||||
//SetProcessMsg($"正在进行个税申报...");
|
||||
//string submitCode = QueryApiUtil.Submit(out string submitResult, out string submitMsg);
|
||||
//if (!submitCode.Equals("0"))
|
||||
//{
|
||||
// throw new Exception($"个税申报失败\r\n{submitMsg}");
|
||||
//}
|
||||
//SetProcessMsg($"正在查询个税申报结果...");
|
||||
//string submitQueryCode = "-99";
|
||||
//while (!submitQueryCode.Equals("0"))
|
||||
//{
|
||||
// submitQueryCode = QueryApiUtil.SubmitQuery(out string submitQueryResult, out string submitQueryMsg);
|
||||
// if (!submitQueryCode.Equals("0"))
|
||||
// {
|
||||
// if
|
||||
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)}
|
||||
);";
|
||||
sqlBu
|
||||
@@ -837,9 +837,9 @@ namespace Lskj.QueryEssentialInfo
|
||||
headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}");
|
||||
JObject pmsJObject = new JObject();
|
||||
pmsJObject.Add("qysh", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("operator", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("skssqQ", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("skssqZ", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("operator", mainRow["operator"] + "");
|
||||
pmsJObject.Add("skssqQ", mainRow["skssqQ"] + "");
|
||||
pmsJObject.Add("skssqZ", mainRow["skssqZ"] + "");
|
||||
JArray bizDataListJArry = new JArray();
|
||||
JArray incomeDataListJArry = new JArray();
|
||||
var groupedRows = detailTab.AsEnumerable().Where(row => (row["p_emp_addTag"] + "") == "1").GroupBy(row => row["incomeTypeCode"] + "");
|
||||
@@ -875,6 +875,7 @@ namespace Lskj.QueryEssentialInfo
|
||||
{
|
||||
|
||||
}
|
||||
incomeDataJObject.Add("externFields", externFieldsJObject);
|
||||
incomeDataListJArry.Add(incomeDataJObject);
|
||||
}
|
||||
bizDataJObject.Add("incomeTypeCode", typeCode);
|
||||
@@ -903,7 +904,7 @@ namespace Lskj.QueryEssentialInfo
|
||||
/// <param name="resultRead"></param>
|
||||
/// <param name="resultMsg"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetBatch(out string resultRead, string incomeTypeCode, out string resultMsg)
|
||||
public static string GetBatch(out string resultRead, string nsrlxdm, string incomeTypeCode, out string resultMsg)
|
||||
{
|
||||
string code = "-9999";
|
||||
resultRead = "";
|
||||
@@ -926,7 +927,7 @@ namespace Lskj.QueryEssentialInfo
|
||||
JObject pmsJObject = new JObject();
|
||||
pmsJObject.Add("qysh", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("ysyf", mainRow["ysyf"] + "");
|
||||
pmsJObject.Add("nsrlxdm", mainRow["nsrlxdm"] + "");
|
||||
pmsJObject.Add("nsrlxdm", nsrlxdm);
|
||||
pmsJObject.Add("incomeTypeCode", incomeTypeCode);
|
||||
HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST);
|
||||
resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd();
|
||||
@@ -944,20 +945,68 @@ namespace Lskj.QueryEssentialInfo
|
||||
return code;
|
||||
}
|
||||
/// <summary>
|
||||
/// 计算税款
|
||||
/// </summary>
|
||||
/// <param name="resultRead"></param>
|
||||
/// <param name="nsrlxdm"></param>
|
||||
/// <param name="resultMsg"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetCompute(out string resultRead, string nsrlxdm, out string resultMsg)
|
||||
{
|
||||
string code = "-9999";
|
||||
resultRead = "";
|
||||
resultMsg = "";
|
||||
try
|
||||
{
|
||||
string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/compute";
|
||||
HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8);
|
||||
Dictionary<string, string> headerDic = new Dictionary<string, string>();
|
||||
DateTime utcNow = DateTime.UtcNow;
|
||||
string date = utcNow.ToString("r", CultureInfo.InvariantCulture);
|
||||
string host = "api.baiwangjs.com";
|
||||
string x_htjs_nonce = Guid.NewGuid().ToString().ToLower();
|
||||
string x_htjs_ua = "1.8.0_181 64 bit, sdk-ver=1.0.0";
|
||||
headerDic.Add("Date", DateTime.UtcNow.ToString());
|
||||
headerDic.Add("host", host);
|
||||
headerDic.Add("x-htjs-nonce", x_htjs_nonce);
|
||||
headerDic.Add("x-htjs-ua", x_htjs_ua);
|
||||
headerDic.Add("Authorization", $"{GetAuthorization(date, host, x_htjs_nonce, x_htjs_ua)}");
|
||||
JObject pmsJObject = new JObject();
|
||||
pmsJObject.Add("qysh", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("operator", mainRow["operator"] + "");
|
||||
pmsJObject.Add("skssqQ", mainRow["skssqQ"] + "");
|
||||
pmsJObject.Add("skssqZ", mainRow["skssqZ"] + "");
|
||||
pmsJObject.Add("nsrlxDm", nsrlxdm);
|
||||
HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST);
|
||||
resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd();
|
||||
if (webResponse != null && !string.IsNullOrEmpty(resultRead))
|
||||
{
|
||||
JObject resultJObject = (JObject)JsonConvert.DeserializeObject(resultRead);
|
||||
code = resultJObject["code"] + "";
|
||||
resultMsg = resultJObject["msg"] + "";
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取计算结果
|
||||
/// </summary>
|
||||
/// <param name="resultRead"></param>
|
||||
/// <param name="incomeTypeCode"></param>
|
||||
/// <param name="resultMsg"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetResult(out string resultRead, string incomeTypeCode, out string resultMsg)
|
||||
public static string GetResult(out string resultRead, string nsrlxdm, out string resultMsg)
|
||||
{
|
||||
string code = "-9999";
|
||||
resultRead = "";
|
||||
resultMsg = "";
|
||||
try
|
||||
{
|
||||
string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/acquire/compute/result";
|
||||
string url = $"{urlStart}/web/sbmk/personal-tax/api/v1/compute/query";
|
||||
HttpTools.setting("application/json", null, null, HttpTools.Encode.UTF8);
|
||||
Dictionary<string, string> headerDic = new Dictionary<string, string>();
|
||||
DateTime utcNow = DateTime.UtcNow;
|
||||
@@ -974,7 +1023,7 @@ namespace Lskj.QueryEssentialInfo
|
||||
pmsJObject.Add("qysh", mainRow["qysh"] + "");
|
||||
pmsJObject.Add("skssqQ", mainRow["skssqQ"] + "");
|
||||
pmsJObject.Add("skssqZ", mainRow["skssqZ"] + "");
|
||||
pmsJObject.Add("incomeTypeCode", incomeTypeCode);
|
||||
pmsJObject.Add("nsrlxDm", nsrlxdm);
|
||||
HttpWebResponse webResponse = HttpTools.Post(url, JsonConvert.SerializeObject(pmsJObject), null, headerDic, HttpTools.Method.POST);
|
||||
resultRead = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd();
|
||||
if (webResponse != null && !string.IsNullOrEmpty(resultRead))
|
||||
|
||||
Reference in New Issue
Block a user