123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732 |
- using Newtonsoft.Json.Linq;
- using PTMedicalInsurance.Entity.Base.Clearing;
- using PTMedicalInsurance.Helper;
- using PTMedicalInsurance.Variables;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace PTMedicalInsurance.Business.Clearing
- {
- //异地清分
- class OutOfAreaPatientClearing
- {
- private InvokeHelper invoker = new InvokeHelper();
- private MIIrisServices mIS = new MIIrisServices();
- //private string year;
- //private string month;
- private DataTable datatable;
- private string transid;
- public int totalrow;
- #region 查询相关
- /// <summary>
- /// 查询医院医保库里的异地数据
- /// </summary>
- /// <param name="input"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int QueryHospitalData(JObject input, out string outMsg)
- {
- string hospitalDr = JsonHelper.getDestValue(input, "hospitalDr");
- DateTime dt = DateTime.Parse(JsonHelper.getDestValue(input, "month"));
- Global.curEvt.year = dt.ToString("yyyy");
- Global.curEvt.month = dt.ToString("MM");
- string begin = JsonHelper.getDestValue(input, "beginDate") + "0:00:00";
- string end = JsonHelper.getDestValue(input, "endDate") + "23:59:59"; ;
- string sqlStr = "Select CertificateNO,MdtrtID,SettlementDateTime,SettlementID,Sumamt,FundPaySumamt,'' mdtrt_setl_time ";
- sqlStr = sqlStr + ",'' as mdtrt_id,'' as setl_sn,'' as fulamt_advpay_flag,'' mdtrtarea,'' medins_no,'' certno,'' medfee_sumamt,'' optins_pay_sumamt,'1' cnfm_flag ";
- sqlStr = sqlStr + $" FROM BS_MedInsuSettlement WHERE ValidFlag = 1 and Hospital_Dr=" + hospitalDr;
- sqlStr = sqlStr + $" and OccurTime>='{begin}'";
- sqlStr = sqlStr + $" and OccurTime<='{end}'";
- sqlStr = sqlStr + " and (left(InsuranceAreaCode,2)<>'44')";
- sqlStr = sqlStr + " order by SettlementDateTime ";
- JObject joRtn = mIS.DynamicQuery(sqlStr, "查询HIS异地结算数据");
- return JsonHelper.parseIrisRtnResult(joRtn, out outMsg);
- }
- /// <summary>
- /// 查询中心的异地数据
- /// </summary>
- /// <param name="input"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int QueryCenterData(JObject input, out string outMsg)
- {
- JObject joRtn = invoker.invokeCenterService(TradeEnum.QueryOutOfAreaClearingDetail, new JObject(new JProperty("data", input)));
- if (JsonHelper.parseCenterReturnJson(joRtn, out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- outMsg = joRtn.ToString();
- return 0;
- }
- }
- /// <summary>
- /// 循环查询中心数据,最后拼接成JARRY
- /// </summary>
- /// <param name="input"></param>
- /// <param name="ja"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int Combin3260Data(JObject input, out JArray ja, out string outMsg)
- {
- QueryOutOfAreaClearingDetailsInput queryInput = new QueryOutOfAreaClearingDetailsInput();
- DateTime dt = DateTime.Parse(input["month"].ToString());
- queryInput.trt_year = dt.ToString("yyyy");
- queryInput.trt_month = dt.ToString("MM");
- int startrow = 1;
- ja = null;
- //var combinedList = new List<QueryOutOfAreaClearingDetailsOutput>();
- while (true)
- {
- queryInput.startrow = startrow;
- if (QueryCenterData(queryInput.ToJson(), out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- JObject joRtn = JObject.Parse(outMsg);
- JArray jaData = JArray.FromObject(joRtn["output"]["data"]);
- totalrow = int.Parse(joRtn["output"]["totalrow"].ToString());
- if (ja == null)
- {
- ja = jaData;
- }
- else
- {
- foreach (var jo in jaData)
- {
- ja.Add(jo);
- }
- }
- startrow = startrow + jaData.Count;
- if (jaData.Count < 100)
- {
- outMsg = "遍历完成,已查询到返回条数小于100!";
- return 0;
- }
- }
- }
- }
- /// <summary>
- /// 跟已查询出的医院数据进行匹配,未匹配成功的标记红色,多匹配的标记黄色,并新增行数显示
- /// </summary>
- /// <param name="dgv"></param>
- /// <param name="ja"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int MatchCenterData(DataGridView dgv, JArray ja, out string outMsg)
- {
- outMsg = "";
- //JArray jaDgv = (JArray)dgv.DataSource;
- DataTable dt = (DataTable)dgv.DataSource;
- DataColumn seqnoColumn = new DataColumn("seqno", typeof(int));
- seqnoColumn.DefaultValue = 0;
- dt.Columns.Add(seqnoColumn);
- //先遍历中心数据后遍历医院数据
- foreach (var item in ja)
- {
- bool isExist = false;
- JObject joCenter = (JObject)item;
- foreach (DataRow dr in dt.Rows)
- {
- if (dr["SettlementID"].ToString() == joCenter["setl_sn"].ToString())
- {
- dr["setl_sn"] = joCenter["setl_sn"].ToString();
- dr["seqno"] = int.Parse(joCenter["seqno"].ToString());
- dr["medfee_sumamt"] = joCenter["medfee_sumamt"].ToString();
- dr["fulamt_advpay_flag"] = joCenter["fulamt_advpay_flag"].ToString();
- dr["optins_pay_sumamt"] = joCenter["optins_pay_sumamt"].ToString();
- dr["mdtrt_setl_time"] = joCenter["mdtrt_setl_time"].ToString();
- dr["certno"] = joCenter["certno"].ToString();
- dr["mdtrt_id"] = joCenter["mdtrt_id"].ToString();
- dr["medins_no"] = joCenter["medins_no"].ToString();
- dr["mdtrtarea"] = joCenter["mdtrtarea"].ToString();
- isExist = true;
- }
- }
- if (!isExist)
- {
- // 创建一个新的行
- DataRow newRow = dt.NewRow();
- // 设置新行的值
- newRow["CertificateNO"] = "HIS未查询到,可扩大月份查询";
- newRow["MdtrtID"] = "";
- newRow["SettlementDateTime"] = "";
- newRow["SettlementID"] = joCenter["setl_sn"].ToString();
- newRow["Sumamt"] = "";
- newRow["FundPaySumamt"] = "";
- newRow["setl_sn"] = joCenter["setl_sn"].ToString();
- newRow["seqno"] = int.Parse(joCenter["seqno"].ToString());
- newRow["medfee_sumamt"] = joCenter["medfee_sumamt"].ToString();
- newRow["fulamt_advpay_flag"] = joCenter["fulamt_advpay_flag"].ToString();
- newRow["optins_pay_sumamt"] = joCenter["optins_pay_sumamt"].ToString();
- newRow["mdtrt_setl_time"] = joCenter["mdtrt_setl_time"].ToString();
- newRow["certno"] = joCenter["certno"].ToString();
- newRow["mdtrt_id"] = joCenter["mdtrt_id"].ToString();
- newRow["medins_no"] = joCenter["medins_no"].ToString();
- newRow["mdtrtarea"] = joCenter["mdtrtarea"].ToString();
- dt.Rows.Add(newRow);
- }
- }
-
- //dt.Columns.Add("rowid",typeof(int));
- //for (int i = 0;i <dt.Rows.Count;i ++)
- //{
- // dt.Rows[i]["rowid"] = i + 1;
- //}
- // 使用 LINQ 对 DataTable 进行排序
- var sortedRows = from row in dt.AsEnumerable()
- orderby row.Field<int>("seqno")
- select row;
- // 将排序后的行加载到新的 DataTable 中
- DataTable sortedTable = sortedRows.CopyToDataTable();
- datatable = sortedTable;
- dgv.DataSource = sortedTable;
- ////先遍历医院数据,如果未匹配到中心数据则标红
- //foreach (DataRow dr in dt.Rows)
- //{
- //}
- return 0;
- }
- /// <summary>
- /// 匹配医保库的上传记录表
- /// </summary>
- /// <param name="input"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int MatchMIUploadRecord(JObject input, out string outMsg)
- {
- outMsg = "";
- return 0;
- }
- #endregion
- #region 上传确认
- /// <summary>
- /// 组织3261的入参
- /// </summary>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public OutOfAreaClearingConfirmDetail OrgnizeSingle3261Detail(DataRow dr)
- {
- OutOfAreaClearingConfirmDetail detail = new OutOfAreaClearingConfirmDetail();
- detail.certno = dr["CertificateNO"].ToString();
- detail.mdtrt_id = dr["MdtrtID"].ToString();
- detail.mdtrt_setl_time = dr["SettlementDateTime"].ToString();
- detail.setl_sn = dr["SettlementID"].ToString();
- detail.medfee_sumamt = decimal.Parse(dr["Sumamt"].ToString());
- detail.cnfm_flag = dr["cnfm_flag"].ToString();
- detail.optins_pay_sumamt =decimal.Parse(dr["FundPaySumamt"].ToString());
- return detail;
- }
- /// <summary>
- /// 将确认结果上传给中心
- /// </summary>
- /// <param name="input"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int UploadToCenter(JObject input, out string outMsg)
- {
- JObject joRtn = invoker.invokeCenterService(TradeEnum.ConfirmOutOfAreaClearing, input);
- if (JsonHelper.parseCenterReturnJson(joRtn, out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- outMsg = joRtn.ToString();
- return 0;
- }
- }
- /// <summary>
- /// 上传异地清分
- /// </summary>
- /// <param name="dgv"></param>
- /// <param name="rows"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- //public int BatchUpload(DataGridView dgv, int rows, out string outMsg)
- //{
- // outMsg = "";
- // List<OutOfAreaClearingConfirmDetail> details = new List<OutOfAreaClearingConfirmDetail>();
- // int rowTotalCount = datatable.Rows.Count;
- // for (int i = 0; i < rowTotalCount; i++)
- // {
- // DataRow dr = datatable.Rows[i];
- // JObject joTmp = new JObject();
- // if (((i + 1) / rows == 0) || ((i + 1) == rowTotalCount))
- // {
- // details = new List<OutOfAreaClearingConfirmDetail>();
- // //int totalrow = 0;
- // //if ((i + 1) / rows == 0)
- // //{
- // // totalrow = rows;
- // //}
- // //else
- // //{
- // // totalrow = rowTotalCount / rows;
- // //}
- // OutOfAreaClearingConfirmInput input = new OutOfAreaClearingConfirmInput();
- // OutOfAreaClearingConfirmData data = new OutOfAreaClearingConfirmData();
- // data.trt_year = year;
- // data.trt_month = month;
- // data.totalrow = totalrow;
- // input.detail = details;
- // input.data = data;
- // JObject joIn = input.ToJson();
- // if (UploadToCenter(joIn, out outMsg) != 0)
- // {
- // }
- // else
- // {
- // UpdateUploadRecord(JArray.Parse(JsonHelper.getDestValue(joIn, "detail")), out outMsg);
- // }
- // }
- // else
- // {
- // details.Add(OrgnizeSingle3261Detail(dr));
- // }
- // }
- // return 0;
- //}
- public int BatchUpload(DataGridView dgv, int rows, out string outMsg)
- {
- int iFalse = 0;outMsg = "";
- foreach (DataRow dr in datatable.Rows)
- {
- string err;
- if (dr["MdtrtID"].ToString() == "")
- {
- continue;
- }
- if (SingleUpload(dr, out err) != 0)
- {
- iFalse++;
- outMsg = outMsg + "\n" + err;
- }
- }
- return -iFalse;
- }
- #endregion
- #region 更新后台
- public int UpdateUploadRecord(JArray ja, out string outMsg)
- {
- outMsg = "";
- int iFalse = 0;
- foreach (JObject jo in ja)
- {
- string err = "";
- if (UpdateSingleUploadRecord(jo, out err) != 0)
- {
- iFalse++;
- outMsg = outMsg + "\n;" + err;
- }
- }
- return iFalse;
- }
- public int UpdateSingleUploadRecord(JObject jo, out string outMsg)
- {
- JObject joUpdateIn = new JObject();
- joUpdateIn.Add("businessCode", "OutOfAreaClearing");
- joUpdateIn.Add("businessID", jo["setl_sn"].ToString());//单条传,如果批量传,这么处理就有问题
- //joUpdateIn.Add("memo", jo["cnfm_flag"].ToString());//单条传,如果批量传,这么处理就有问题
- joUpdateIn.Add("memo", transid);//单条传,如果批量传,这么处理就有问题
- joUpdateIn.Add("input", jo);
- dynamic joOut = new
- {
- errorCode = "0",
- cnfm_flag = jo["cnfm_flag"].ToString()
- };
- joUpdateIn.Add("output", JObject.FromObject(joOut));
- //JoIn包含 起止时间,医院ID,接口ID,患者姓名,患者数电号
- JObject joInTmp = JsonHelper.setIrisInpar("02020007", joUpdateIn);
- //SELECT *FROM SQLUser.HB_User WHERE Hospital_Dr = 39
- joInTmp["session"][0]["userID"] = "278";
- joInTmp["session"][0]["hospID"] = Global.inf.hospitalDr;
- JObject joRtn = invoker.invokeInsuService(joInTmp.ToString(), "更新通用记录表");
- return JsonHelper.parseIrisRtnValue(joRtn, out outMsg);
- }
- /// <summary>
- /// 查询通用记录表-查询异地清分确认记录
- /// </summary>
- /// <param name="jo"></param>
- /// <param name="outMsg"></param>
- /// <returns></returns>
- public int QuerySingleUploadRecord(string businessID,out JObject joRtn, out string outMsg)
- {
- JObject joQueryIn = new JObject();
- joQueryIn.Add("businessCode", "ShenZhenOutOfAreaClearing");
- joQueryIn.Add("businessID", businessID); //结算ID
- joQueryIn.Add("HospitalDr", Global.inf.hospitalDr);
- //JoIn包含 起止时间,医院ID,接口ID,患者姓名,患者数电号
- JObject joInTmp = JsonHelper.setIrisInpar("02020186", joQueryIn);
- //SELECT *FROM SQLUser.HB_User WHERE Hospital_Dr = 39
- joInTmp["session"][0]["userID"] = "278";
- joInTmp["session"][0]["hospID"] = Global.inf.hospitalDr;
- joRtn = invoker.invokeInsuService(joInTmp.ToString(), "查询通用记录表异地清分记录");
- return JsonHelper.parseIrisRtnValue(joRtn, out outMsg);
- }
- #endregion
- #region 取消确认
- public int RollBack(JObject input, out string outMsg)
- {
- JObject joRtn = invoker.invokeCenterService(TradeEnum.RollBackOutOfAreaClearing, new JObject(new JProperty("data",input)));
- if (JsonHelper.parseCenterReturnJson(joRtn, out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- outMsg = joRtn.ToString();
- return 0;
- }
- }
- #endregion
- #region 业务封装
- public int Query(JObject input, DataGridView dgv, out string outMsg)
- {
- //查询HIS医保结异地结算记录
- if (QueryHospitalData(input, out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- JArray jaData = JArray.Parse(JsonHelper.getDestValue(JObject.Parse(outMsg),"data"));
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010129", jaData).ToString(), "根据传入的东莞异地清分记录匹配上传记录表");
- JArray jaMatchedData = JArray.FromObject(joRtn["data"]);
- dgv.DataSource = (DataTable)jaMatchedData.ToObject(typeof(DataTable));
- }
- //JArray jaCenter = new JArray();
- if (Combin3260Data(input, out JArray jaCenter, out outMsg) != 0)
- return -1;
- //匹配数据
- return MatchCenterData(dgv, jaCenter, out outMsg);
- }
- public int SingleUpload(DataRow dr, out string outMsg)
- {
- List<OutOfAreaClearingConfirmDetail> details = new List<OutOfAreaClearingConfirmDetail>();
- OutOfAreaClearingConfirmInput input = new OutOfAreaClearingConfirmInput();
- OutOfAreaClearingConfirmData data = new OutOfAreaClearingConfirmData();
- data.trt_year = Global.curEvt.year;
- data.trt_month = Global.curEvt.month;
- data.totalrow = Global.curEvt.totalrow;
- details.Add(OrgnizeSingle3261Detail(dr));
- input.detail = details;
- input.data = data;
- if (UploadToCenter(input.ToJson(), out outMsg )!= 0)
- {
- return -1;
- }
- else
- {
- transid = Global.curEvt.msgid;
- return UpdateSingleUploadRecord(JObject.Parse(JsonHelper.getDestValue(input.ToJson(),"detail[0]")),out outMsg);
- }
- }
- public int SingleUploadNew(DataRow dr, string totalrow, out string outMsg)
- {
- List<OutOfAreaClearingConfirmDetail> details = new List<OutOfAreaClearingConfirmDetail>();
- OutOfAreaClearingConfirmInput input = new OutOfAreaClearingConfirmInput();
- OutOfAreaClearingConfirmData data = new OutOfAreaClearingConfirmData();
- data.trt_year = Global.curEvt.year;
- data.trt_month = Global.curEvt.month;
- data.totalrow = Global.curEvt.totalrow; //int.Parse(totalrow)
- details.Add(OrgnizeSingle3261Detail(dr));
- input.detail = details;
- input.data = data;
- if (UploadToCenter(input.ToJson(), out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- transid = Global.curEvt.msgid;
- return UpdateSingleUploadRecord(JObject.Parse(JsonHelper.getDestValue(input.ToJson(), "detail[0]")), out outMsg);
- }
- }
- public int Upload(DataGridView dgv, out string outMsg)
- {
- return BatchUpload(dgv, 100, out outMsg);
- }
- public int GetParamsALL(DataGridView dgv,out JArray jaRtn, out string outMsg)
- {
- jaRtn = null;
- outMsg = "";
- if ((DataTable)dgv.DataSource == null)
- {
- outMsg="请先查询HIS和医保结算信息!";
- return -1;
- }
- JArray ja = new JArray();
- DataTable dt = (DataTable)dgv.DataSource;
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- if (string.IsNullOrEmpty(dt.Rows[i]["certno"].ToString()) == false)
- {
- JObject joDetail = new JObject
- {
- {"certno", dt.Rows[i]["certno"].ToString()},
- {"mdtrt_id", dt.Rows[i]["mdtrt_id"].ToString()},
- {"mdtrt_setl_time", dt.Rows[i]["mdtrt_setl_time"].ToString()},
- {"setl_sn", dt.Rows[i]["setl_sn"].ToString()},
- {"medfee_sumamt", dt.Rows[i]["medfee_sumamt"].ToString()},
- {"cnfm_flag", "1"}, //dt.Rows[i]["cnfm_flag"].ToString()
- {"optins_pay_sumamt", dt.Rows[i]["optins_pay_sumamt"].ToString()}
- };
- ja.Add(joDetail);
- }
- }
- if (ja.Count == 0)
- {
- outMsg = "无待确认上传的异地清分结算记录!";
- return -1;
- }
- jaRtn = ja;
- return 0;
- }
- public int uploadDetailToCenter(int singleCount, JArray jaDetail, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- JArray jaTmp = new JArray();
- for (int i = 0; i < jaDetail.Count; i++)
- {
- //if (jaDetail[i]["validFlag"].ToString() == "N") continue;
- jaTmp.Add(jaDetail[i]);
- if (((i + 1) % singleCount == 0) || ((i + 1) == jaDetail.Count))
- {
- JObject jo = new JObject();
- jo.Add("trt_year", Global.curEvt.year);
- jo.Add("trt_month", Global.curEvt.month);
- jo.Add("totalrow", Global.curEvt.totalrow);
- JObject joInput = new JObject();
- joInput.Add("data", jo);
- joInput.Add("detail", jaTmp);
- JObject joRtn = invoker.invokeCenterService(TradeEnum.ConfirmOutOfAreaClearing, joInput);
- if (JsonHelper.parseCenterReturnJson(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- //返回成功更新通用记录表
- transid = Global.curEvt.msgid;
- for (int j = 0; j < jaTmp.Count; j++)
- {
- JObject joHis = new JObject();
- joHis = JObject.Parse(jaTmp[j].ToString());
- if (UpdateSingleUploadRecord(joHis, out errMsg) != 0)
- {
- outParam = outParam + errMsg;
- }
- }
-
- //errMsg = joRtn.ToString();
- //return 0;
- }
-
- jaTmp = new JArray();
- }
- }
- return 0;
- }
- catch (Exception ex)
- {
- outParam = "uploadDetail 异常:" + ex.Message;
- return -1;
- }
- }
- public int RollBackSingle(DataGridView dgv, out string outMsg)
- {
- OutOfAreaClearingRollBackInput input = new OutOfAreaClearingRollBackInput();
- input.trt_year = Global.curEvt.year;
- input.trt_month = Global.curEvt.month;
- input.otransid = "";
- RollBack(input.ToJson(), out outMsg);
- return UpdateSingleUploadRecord(input.ToJson(), out outMsg);
- }
- public int RollBackSingle(DataRow dr, out string outMsg)
- {
- if (QuerySingleUploadRecord(dr["SettlementID"].ToString(), out JObject joRtn, out outMsg) != 0)
- {
- outMsg = "查询通用记录表异地清分确认记录失败" + outMsg;
- return -1;
- }
- OutOfAreaClearingRollBackInput input = new OutOfAreaClearingRollBackInput();
- input.trt_year = Global.curEvt.year;
- input.trt_month = Global.curEvt.month;
- input.otransid = JsonHelper.getDestValue(joRtn, "result.data[0].Memo");
- if (RollBack(input.ToJson(), out outMsg) != 0)
- {
- return -1;
- }
- return UpdateSingleUploadRecord(input.ToJson(), out outMsg);
- }
- public int RollBackSingleNew(DataRow dr, out string outMsg)
- {
- if (QuerySingleUploadRecord(dr["SettlementID"].ToString(), out JObject joRtn, out outMsg) != 0)
- {
- outMsg = "查询通用记录表异地清分确认记录失败" + outMsg;
- return -1;
- }
- //OutOfAreaClearingRollBackInput input = new OutOfAreaClearingRollBackInput();
- JObject joInput = new JObject();
- joInput.Add("trt_year", Global.curEvt.year);
- joInput.Add("trt_month", Global.curEvt.month);
- joInput.Add("otransid", JsonHelper.getDestValue(joRtn, "result.data[0].Memo"));
- joInput.Add("setl_sn", dr["setl_sn"].ToString());
- joInput.Add("revokeFlag", "Y");
- joInput.Add("uploadFlag", "N");
- if (RollBack(joInput, out outMsg) != 0)
- {
- return -1;
- }
-
- return UpdateSingleUploadRecord(joInput, out outMsg);
- }
- public int RollBackAll(out string outMsg)
- {
- OutOfAreaClearingRollBackInput input = new OutOfAreaClearingRollBackInput();
- input.trt_month = Global.curEvt.month;
- input.trt_year = Global.curEvt.year;
- input.otransid = "0";
- if (RollBack(input.ToJson(), out outMsg) != 0)
- {
- return -1;
- }
- else
- {
- //更新通用上传记录表
- //return UpdateSingleUploadRecord(input.ToJson(), out outMsg);
- return 0;
- }
- }
- public int RollBackAll(DataGridView dgv, out string outparam)
- {
- string outMsg = ""; outparam = "";
- JObject joInput = new JObject();
- joInput.Add("trt_month", Global.curEvt.month);
- joInput.Add("trt_year", Global.curEvt.year);
- joInput.Add("otransid", "0");
- if (RollBack(joInput, out outMsg) != 0)
- {
- outparam = outMsg;
- return -1;
- }
- else
- {
- DataTable dt = (DataTable)dgv.DataSource;
- //更新通用上传记录表
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- DataRow dr = dt.Rows[i];
- dynamic detail = new JObject();
- detail.certno = dr["CertificateNO"].ToString();
- detail.mdtrt_id = dr["MdtrtID"].ToString();
- detail.mdtrt_setl_time = dr["SettlementDateTime"].ToString();
- detail.setl_sn = dr["SettlementID"].ToString();
- detail.medfee_sumamt = decimal.Parse(dr["Sumamt"].ToString());
- detail.cnfm_flag = dr["cnfm_flag"].ToString();
- detail.optins_pay_sumamt = decimal.Parse(dr["FundPaySumamt"].ToString());
- detail.revokeFlag = "Y"; //撤销
- detail.uploadFlag = "N"; //撤销
- transid = "";
- if (string.IsNullOrEmpty(dr["msgid"].ToString()) == false)
- {
- UpdateSingleUploadRecord(detail, out outparam);
- }
- }
- return 0;
- }
- }
- #endregion
- }
- }
|