Clearing.cs 91 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using PTMedicalInsurance.Common;
  11. using PTMedicalInsurance.Helper;
  12. using Newtonsoft.Json.Linq;
  13. using PTMedicalInsurance.FormSetter;
  14. using System.IO;
  15. using System.IO.Compression;
  16. using PTMedicalInsurance.Business;
  17. using Sunny.UI;
  18. using Newtonsoft.Json;
  19. using System.Collections;
  20. using PTMedicalInsurance.Variables;
  21. namespace PTMedicalInsurance.Forms
  22. {
  23. public partial class Clearing : Form
  24. {
  25. private string txtPath;
  26. private string txtName;
  27. private string finalAchPath;
  28. private UIDataGridViewFooter dgvHisSettlRecFooter = new Sunny.UI.UIDataGridViewFooter();
  29. JObject jo9102Rtn = new JObject();
  30. public Clearing()
  31. {
  32. InitializeComponent();
  33. this.StartPosition = FormStartPosition.CenterParent;
  34. }
  35. private void Clearing_Load(object sender, EventArgs e)
  36. {
  37. ComboxSetter cbxSetter = new ComboxSetter();
  38. cbxSetter.setCbxInterfaceDataSource(cbxInterface);
  39. cbxSetter.setCbxInterfaceDataSource(cbInterface_2);
  40. cbxSetter.setCbxInterfaceDataSource(cbInterface_3);
  41. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "insutype", cbxInsuType);
  42. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbxClrType);
  43. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbClrType_2);
  44. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_way", cbClrWay_2);
  45. cbxSetter.setCbxDictionaryDataSource("1", "clr_type", cbxClrType_O);
  46. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "med_type", cbxYllb);
  47. cbxInterface.SelectedValueChanged += new EventHandler(cbxInterface_SelectedValueChanged);
  48. cbInterface_2.SelectedValueChanged += new EventHandler(cbInterface_2_SelectedValueChanged);
  49. cbInterface_3.SelectedValueChanged += new EventHandler(cbInterface_3_SelectedValueChanged);
  50. GridViewSetter grdSetter = new GridViewSetter();
  51. grdSetter.SetHeaderTextOfCheck(dgvSettlSummary);
  52. grdSetter.SetHeaderTextOfClearingData(dgvClearingData);
  53. grdSetter.SetHeaderTextOfOthPlcCheck(dgvOthCheck);
  54. cbgGroupSet.SelectAll();
  55. cbgGroupSet.SetItemCheckState(4, false);
  56. cbxValid.SelectedIndex = 0;
  57. cbValid_2.SelectedIndex = 1;
  58. cbValid_3.SelectedIndex = 0;
  59. rbgTimeWay.SelectedIndex = 0;
  60. dpST.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  61. dpED.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);
  62. dpST_2.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  63. dpED_2.Text = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1).ToString("yyyy-MM-01 23:59:59");
  64. dpED_3.Value = DateTime.Now;
  65. WindowState = FormWindowState.Maximized;
  66. tbTmp.Text= Global.currentDirectory + "\\Download";
  67. tc_Main.SelectedIndex = 2;
  68. rg_ClearType.SelectedIndex = 0;
  69. rg_querType.SelectedIndex = 0;
  70. }
  71. private void cbxInterface_SelectedValueChanged(object sender, EventArgs e)
  72. {
  73. DataTable dtInteface = (DataTable)cbxInterface.DataSource;
  74. int i = cbxInterface.SelectedIndex;
  75. if (i != 2)
  76. {
  77. Global.pat.insuplc_admdvs = "";
  78. }
  79. else
  80. {
  81. Global.pat.insuplc_admdvs = "530199";
  82. }
  83. Global.inf.hospitalNO = dtInteface.Rows[i]["HospitalNO"].ToString();
  84. Global.inf.hospitalName = dtInteface.Rows[i]["HospitalName"].ToString();
  85. Global.inf.centerURL = dtInteface.Rows[i]["CenterURL"].ToString();
  86. Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();
  87. Global.user.name = "0";
  88. Global.user.ID = "0";
  89. Global.inf.operatoType = "3";
  90. Global.inf.version = "v1.0";
  91. Global.inf.recivedSystem = "SY";
  92. Global.inf.interfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString());
  93. ComboxSetter cbxSetter = new ComboxSetter();
  94. cbxSetter.setCbxDictionaryDataSource(dtInteface.Rows[i]["ID"].ToString(), "insutype", cbxInsuType);
  95. cbxSetter.setCbxDictionaryDataSource(dtInteface.Rows[i]["ID"].ToString(), "clr_type", cbxClrType);
  96. }
  97. private void cbInterface_2_SelectedValueChanged(object sender, EventArgs e)
  98. {
  99. DataTable dtInteface = (DataTable)cbInterface_2.DataSource;
  100. int i = cbInterface_2.SelectedIndex;
  101. if (i != 2)
  102. {
  103. Global.inf.areaCode = "";
  104. }
  105. else
  106. {
  107. Global.pat.insuplc_admdvs = "530100";
  108. }
  109. Global.inf.hospitalNO = dtInteface.Rows[i]["HospitalNO"].ToString();
  110. Global.inf.hospitalName = dtInteface.Rows[i]["HospitalName"].ToString();
  111. Global.inf.centerURL = dtInteface.Rows[i]["CenterURL"].ToString();
  112. Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();
  113. Global.user.name = "0";
  114. Global.user.ID = "0";
  115. Global.inf.operatoType = "3";
  116. Global.inf.version = "v1.0";
  117. Global.inf.recivedSystem = "SY";
  118. Global.inf.interfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString());
  119. ComboxSetter cbxSetter = new ComboxSetter();
  120. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbClrType_2);
  121. cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_way", cbClrWay_2);
  122. }
  123. private void cbInterface_3_SelectedValueChanged(object sender, EventArgs e)
  124. {
  125. DataTable dtInteface = (DataTable)cbInterface_2.DataSource;
  126. int i = cbInterface_2.SelectedIndex;
  127. if (i != 2)
  128. {
  129. Global.inf.areaCode = "";
  130. }
  131. else
  132. {
  133. Global.pat.insuplc_admdvs = "530100";
  134. }
  135. Global.inf.hospitalNO = dtInteface.Rows[i]["HospitalNO"].ToString();
  136. Global.inf.hospitalName = dtInteface.Rows[i]["HospitalName"].ToString();
  137. Global.inf.centerURL = dtInteface.Rows[i]["CenterURL"].ToString();
  138. Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();
  139. Global.user.name = "0";
  140. Global.user.ID = "0";
  141. Global.inf.operatoType = "3";
  142. Global.inf.version = "v1.0";
  143. Global.inf.recivedSystem = "SY";
  144. }
  145. private void cmsCheck_Opening(object sender, CancelEventArgs e)
  146. {
  147. }
  148. /// <summary>
  149. /// 单条对总账事件
  150. /// </summary>
  151. /// <param name="sender"></param>
  152. /// <param name="e"></param>
  153. private void tsmCheck_Single_Click(object sender, EventArgs e)
  154. {
  155. string error = "";
  156. if (Check_Single(out error) != 0)
  157. {
  158. MessageBox.Show("对总账失败:" + error);
  159. }
  160. else
  161. {
  162. MessageBox.Show("对总账成功");
  163. }
  164. }
  165. /// <summary>
  166. /// 单条对总账【本地】
  167. /// </summary>
  168. /// <param name="error"></param>
  169. /// <returns></returns>
  170. private int Check_Single(out string error)
  171. {
  172. error = "";
  173. DataTable dt = (DataTable)dgvSettlSummary.DataSource;
  174. int i = dgvSettlSummary.CurrentRow.Index;
  175. dynamic joCheck = new JObject();
  176. joCheck.insutype = dt.Rows[i]["insutype"].ToString(); //险种类型
  177. joCheck.clr_type = dt.Rows[i]["clr_type"].ToString(); //清算类别
  178. if (tbSettlOption.Text != "")
  179. {
  180. joCheck.setl_optins = tbSettlOption.Text; //dt.Rows[i]["setl_optins"].ToString(); //结算经办机构
  181. }
  182. else
  183. {
  184. joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString(); //结算经办机构
  185. }
  186. joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString(); //医疗费总额
  187. joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString(); //基金支付总额
  188. joCheck.acct_pay = dt.Rows[i]["acct_pay"].ToString(); //个人账户支付金额
  189. joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString(); //定点医药机构结算笔数
  190. joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss"); //对账开始日期
  191. joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss"); //对账结束日期
  192. JObject joData = new JObject();
  193. joData.Add("data", joCheck);
  194. //上传给中心
  195. //先签到
  196. CenterBusiness cBus = new CenterBusiness();
  197. JObject jo9001Rtn = new JObject();
  198. cBus.signIn(out jo9001Rtn);
  199. InvokeHelper invoker = new InvokeHelper();
  200. JObject joRtn = invoker.invokeCenterService("3201", JsonHelper.setCenterInpar("3201", joData.ToString()));
  201. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  202. {
  203. return -1;
  204. }
  205. else
  206. {
  207. if (JsonHelper.getDestValue(joRtn, "output.stmtinfo.stmt_rslt") != "0")
  208. {
  209. error = JsonHelper.getDestValue(joRtn, "output.stmtinfo.stmt_rslt_dscr");
  210. return -1;
  211. }
  212. else
  213. {
  214. return 0;
  215. }
  216. }
  217. }
  218. private int OthPlcCheck_Single(out string error)
  219. {
  220. error = "";
  221. DataTable dt = (DataTable)dgvOthCheck.DataSource;
  222. int i = dgvOthCheck.CurrentRow.Index;
  223. Global.inf.areaCode = dt.Rows[i]["insuplc_admdvs"].ToString();
  224. int billType = int.Parse(dt.Rows[i]["BillType"].ToString());
  225. dynamic joCheck = new JObject();
  226. joCheck.psn_no = dt.Rows[i]["PersonnelNO"].ToString();
  227. joCheck.medfee_sumamt = billType * Convert.ToDecimal(dt.Rows[i]["Sumamt"].ToString());
  228. joCheck.optins_pay_sumamt = billType * (Convert.ToDecimal(dt.Rows[i]["FundPaySumamt"].ToString()) + Convert.ToDecimal(dt.Rows[i]["AccountPaySumamt"].ToString()));
  229. joCheck.mdtrt_setl_time = Convert.ToDateTime(dt.Rows[i]["SettlementTime"].ToString()).ToString("yyyyMMddHHmmss");
  230. joCheck.trns_type = dt.Rows[i]["BillType"].ToString();
  231. joCheck.mdtrt_id = dt.Rows[i]["MdtrtID"].ToString();
  232. joCheck.setl_id = dt.Rows[i]["SettlementID"].ToString();
  233. JArray jaCheck = new JArray();
  234. jaCheck.Add(joCheck);
  235. JObject joData = new JObject();
  236. joData.Add("data", jaCheck);
  237. //上传给中心
  238. //先签到
  239. CenterBusiness cBus = new CenterBusiness();
  240. JObject jo9001Rtn = new JObject();
  241. cBus.signIn(out jo9001Rtn);
  242. InvokeHelper invoker = new InvokeHelper();
  243. JObject joRtn = invoker.invokeCenterService("S3501", joData.ToString());
  244. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  245. {
  246. return -1;
  247. }
  248. else
  249. {
  250. if (JsonHelper.getDestValue(joRtn, "output.result[0].succ_flag") != "0")
  251. {
  252. error = JsonHelper.getDestValue(joRtn, "output.result[0].prmmsg");
  253. return -1;
  254. }
  255. else
  256. return 0;
  257. }
  258. }
  259. private int Clearing_Single(out string error)
  260. {
  261. error = "";
  262. DataTable dt = (DataTable)dgvClearingSum.DataSource;
  263. int i = dgvClearingSum.CurrentRow.Index;
  264. dynamic joClearing = new JObject();
  265. joClearing.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();
  266. joClearing.acct_pay = dt.Rows[i]["acct_pay"].ToString();
  267. joClearing.setl_optins = dt.Rows[i]["setl_optins"].ToString();
  268. joClearing.stmt_begndate = dpST_2.Value.ToString("yyyyMMdd");
  269. joClearing.stmt_enddate = dpED_2.Value.ToString("yyyyMMdd");
  270. joClearing.insutype = dt.Rows[i]["insutype"].ToString();
  271. joClearing.med_type = dt.Rows[i]["med_type"].ToString();
  272. joClearing.clr_type = dt.Rows[i]["clr_type"].ToString();
  273. JArray clr1= new JArray();
  274. clr1.Add(joClearing);
  275. JObject joData = new JObject();
  276. joData.Add("clrdata", clr1);
  277. //上传给中心
  278. //先签到
  279. CenterBusiness cBus = new CenterBusiness();
  280. JObject jo9001Rtn = new JObject();
  281. cBus.signIn(out jo9001Rtn);
  282. InvokeHelper invoker = new InvokeHelper();
  283. JObject joRtn = invoker.invokeCenterService("3202a", JsonHelper.setCenterInpar("3202a", joData.ToString()));
  284. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  285. {
  286. MessageBox.Show("清算失败!医保返回:" + joRtn.ToString());
  287. return -1;
  288. }
  289. else
  290. {
  291. //保存到医保平台
  292. JObject joTmp = new JObject();
  293. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  294. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  295. joTmp.Add("ApplyID", Global.curEvt.msgid); //湖北3202a本地清算成功没有返回值,这里就传报文里的msgid
  296. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  297. joTmp.Add("ClrWay", ""); //dt.Rows[i]["med_type"].ToString()
  298. joTmp.Add("ClrType", dt.Rows[i]["clr_type"].ToString());
  299. joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));
  300. joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());
  301. joTmp.Add("Sumamt", dt.Rows[i]["medfee_sumamt"].ToString());
  302. joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());
  303. joTmp.Add("FundPay", dt.Rows[i]["fund_pay_sumamt"].ToString());
  304. joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());
  305. joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString());
  306. joTmp.Add("InsuranceType", dt.Rows[i]["insutype"].ToString());
  307. joTmp.Add("MedType", dt.Rows[i]["med_type"].ToString());
  308. joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));
  309. joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));
  310. joTmp.Add("OthPlcFlag", 0);
  311. joTmp.Add("ValidFlag", 1);
  312. joTmp.Add("Operator", "0");
  313. joTmp.Add("InsuBusinessID", "3202a");
  314. JArray jaParam = new JArray();
  315. jaParam.Add(joTmp);
  316. JObject joUpdate = new JObject();
  317. joUpdate.Add("params", jaParam);
  318. joUpdate.Add("updateUserID", "0");
  319. joUpdate.Add("HospitalDr", Global.inf.hospitalDr);
  320. joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);
  321. joUpdate.Add("code", "09010067");
  322. invoker = new InvokeHelper();
  323. joRtn = invoker.invokeInsuService(joUpdate.ToString(), "插入清算记录");
  324. MessageBox.Show("清算成功!医保返回:" + joRtn.ToString());
  325. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  326. {
  327. return -1;
  328. }
  329. else
  330. return 0;
  331. }
  332. }
  333. private int OthPlcClearing_Single(out string error)
  334. {
  335. if (tbInsuPlc.Text != "")
  336. Global.inf.areaCode = tbInsuPlc.Text;
  337. error = "";
  338. DataTable dt = (DataTable)dgvClearingSum.DataSource;
  339. int i = dgvClearingSum.CurrentRow.Index;
  340. string sInputXML;
  341. sInputXML = " <DATA><INPUTS><INPUT> "
  342. + " <MON_SETL_APPY_ID>"+ dpED_2.Value.ToString("yyyyMMdd") + "</MON_SETL_APPY_ID> "
  343. + " <FIXMEDINS_NO>" + dt.Rows[i]["FIXMEDINS_NO"].ToString() + "</FIXMEDINS_NO>"
  344. + " <CLR_CNT>" + dt.Rows[i]["psntime"].ToString() + "</CLR_CNT> "
  345. + " <MEDFEE_SUMAMT>"+ dt.Rows[i]["medfee_sumamt"].ToString() + "</MEDFEE_SUMAMT>"
  346. + " <OPTINS_PAY_SUMAMT>" + dt.Rows[i]["optins_pay_sumamt"].ToString() + "</OPTINS_PAY_SUMAMT> "
  347. + " <BEGNDATE>" + dpST_2.Value.ToString("yyyyMMdd") + "</BEGNDATE>"
  348. + " <ENDDATE>" + dpED_2.Value.ToString("yyyyMMdd") + "</ENDDATE>"
  349. + " <OPTER_NAME>" + dt.Rows[i]["OPTER_NAME"].ToString() + "</OPTER_NAME> "
  350. + " </INPUT></INPUTS></DATA>";
  351. //上传给中心
  352. //先签到
  353. CenterBusiness cBus = new CenterBusiness();
  354. JObject jo9001Rtn = new JObject();
  355. cBus.signIn(out jo9001Rtn);
  356. InvokeHelper invoker = new InvokeHelper();
  357. JObject joRtn = invoker.invokeCenterService("1608", JsonHelper.setCenterInpar("1608", sInputXML));
  358. MessageBox.Show("异地清算返参" + joRtn.ToString());
  359. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  360. {
  361. MessageBox.Show("清算失败!医保返回:" + joRtn.ToString());
  362. return -1;
  363. }
  364. else
  365. {
  366. //保存到医保平台
  367. JObject joTmp = new JObject();
  368. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  369. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  370. joTmp.Add("ApplyID", Global.curEvt.msgid); //1608交易没有反参 这里存入参报文里的msgid
  371. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  372. joTmp.Add("ClrWay", "1");//异地无该项默认1
  373. joTmp.Add("ClrType", "111");//异地无该项默认111
  374. joTmp.Add("ClearYearMonth", dpED_2.Value.ToString("yyyyMM"));
  375. joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());
  376. joTmp.Add("Sumamt", dt.Rows[i]["medfee_sumamt"].ToString());
  377. joTmp.Add("MedAcceptSumamt", dt.Rows[i]["medfee_sumamt"].ToString());
  378. joTmp.Add("FundPay", dt.Rows[i]["optins_pay_sumamt"].ToString());
  379. joTmp.Add("CashPay", 0);
  380. joTmp.Add("AccountPay", 0);
  381. joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));
  382. joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));
  383. joTmp.Add("OthPlcFlag", 1);
  384. joTmp.Add("ValidFlag", 1);
  385. joTmp.Add("Operator", "0");
  386. joTmp.Add("InsuBusinessID", "1608");
  387. JArray jaParam = new JArray();
  388. jaParam.Add(joTmp);
  389. JObject joUpdate = new JObject();
  390. joUpdate.Add("params", jaParam);
  391. joUpdate.Add("updateUserID", "0");
  392. joUpdate.Add("HospitalDr", Global.inf.hospitalDr);
  393. joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);
  394. joUpdate.Add("code", "09010067");
  395. invoker = new InvokeHelper();
  396. joRtn = invoker.invokeInsuService(joUpdate.ToString(), "插入清算记录");
  397. MessageBox.Show("清算成功!医保返回:" + joRtn.ToString());
  398. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  399. {
  400. return -1;
  401. }
  402. else
  403. return 0;
  404. }
  405. }
  406. private int CancleClearing_Single(out string error)
  407. {
  408. error = "";
  409. DataTable dt = (DataTable)dgvClearingData.DataSource;
  410. int i = dgvClearingData.CurrentRow.Index;
  411. dynamic joCancleClearing = new JObject();
  412. joCancleClearing.fund_pay_sumamt = dt.Rows[i]["FundPay"].ToString();
  413. joCancleClearing.acct_pay = dt.Rows[i]["AccountPay"].ToString();
  414. joCancleClearing.setl_optins = dt.Rows[i]["setl_optins"].ToString();
  415. joCancleClearing.stmt_begndate = dt.Rows[i]["Begndate"].ToString();
  416. joCancleClearing.stmt_enddate = dt.Rows[i]["Enddate"].ToString();
  417. joCancleClearing.insutype = dt.Rows[i]["InsuranceType"].ToString();
  418. joCancleClearing.med_type = dt.Rows[i]["MedType"].ToString();
  419. joCancleClearing.clr_type = dt.Rows[i]["ClrType"].ToString();
  420. Global.pat.insuplc_admdvs = dt.Rows[i]["setl_optins"].ToString();
  421. JObject joData = new JObject();
  422. joData.Add("clrdata", joCancleClearing);
  423. //上传给中心
  424. //先签到
  425. CenterBusiness cBus = new CenterBusiness();
  426. JObject jo9001Rtn = new JObject();
  427. cBus.signIn(out jo9001Rtn);
  428. InvokeHelper invoker = new InvokeHelper();
  429. JObject joRtn = invoker.invokeCenterService("3204a", JsonHelper.setCenterInpar("3204a", joData.ToString()));
  430. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  431. {
  432. return -1;
  433. }
  434. else
  435. {
  436. //保存到医保平台
  437. JObject joTmp = new JObject();
  438. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  439. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  440. joTmp.Add("ApplyID", dt.Rows[i]["ApplyID"].ToString());
  441. //joTmp.Add("CancleOccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  442. //joTmp.Add("ClrWay", dt.Rows[i]["clr_way"].ToString());
  443. joTmp.Add("ClrType", dt.Rows[i]["ClrType"].ToString());
  444. //joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));
  445. //joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());
  446. //joTmp.Add("Sumamt", dt.Rows[i]["med_sumfee"].ToString());
  447. //joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());
  448. //joTmp.Add("FundPay", dt.Rows[i]["fund_appy_sum"].ToString());
  449. //joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());
  450. //joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString());
  451. //joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));
  452. //joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));
  453. joTmp.Add("ValidFlag", -1);
  454. joTmp.Add("updateUserID", "0");
  455. //joTmp.Add("Operator", "0");
  456. joTmp.Add("InsuBusinessID", "3204a");
  457. JArray jaParam = new JArray();
  458. jaParam.Add(joTmp);
  459. JObject joUpdate = new JObject();
  460. joUpdate.Add("params", jaParam);
  461. joUpdate.Add("updateUserID", "0");
  462. joUpdate.Add("HospitalDr", Global.inf.hospitalDr);
  463. joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);
  464. joUpdate.Add("code", "09010067");
  465. invoker = new InvokeHelper();
  466. joRtn = invoker.invokeInsuService(joUpdate.ToString(), "更新清算记录");
  467. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  468. {
  469. return -1;
  470. }
  471. else
  472. return 0;
  473. }
  474. }
  475. private int CancleOthPlcClearing_Single(out string error)
  476. {
  477. error = "";
  478. DataTable dt = (DataTable)dgvClearingData.DataSource;
  479. int i = dgvClearingData.CurrentRow.Index;
  480. dynamic joCancleClearing = new JObject();
  481. joCancleClearing.clr_appy_evt_id = dt.Rows[i]["ApplyID"].ToString();
  482. joCancleClearing.data_ym = dt.Rows[i]["ClearYearMonth"].ToString();
  483. JObject joData = new JObject();
  484. joData.Add("data", joCancleClearing);
  485. //上传给中心
  486. //先签到
  487. CenterBusiness cBus = new CenterBusiness();
  488. JObject jo9001Rtn = new JObject();
  489. cBus.signIn(out jo9001Rtn);
  490. InvokeHelper invoker = new InvokeHelper();
  491. JObject joRtn = invoker.invokeCenterService("1618", JsonHelper.setCenterInpar("1618", joData.ToString()));
  492. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  493. {
  494. return -1;
  495. }
  496. else
  497. {
  498. //保存到医保平台
  499. JObject joTmp = new JObject();
  500. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  501. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  502. joTmp.Add("ApplyID", dt.Rows[i]["ApplyID"].ToString());
  503. //joTmp.Add("CancleOccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  504. //joTmp.Add("ClrWay", dt.Rows[i]["clr_way"].ToString());
  505. joTmp.Add("ClrType", dt.Rows[i]["ClrType"].ToString());
  506. //joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));
  507. //joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());
  508. //joTmp.Add("Sumamt", dt.Rows[i]["med_sumfee"].ToString());
  509. //joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());
  510. //joTmp.Add("FundPay", dt.Rows[i]["fund_appy_sum"].ToString());
  511. //joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());
  512. //joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString());
  513. //joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));
  514. //joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));
  515. joTmp.Add("ValidFlag", -1);
  516. joTmp.Add("updateUserID", "0");
  517. joTmp.Add("InsuBusinessID", "1618");
  518. JArray jaParam = new JArray();
  519. jaParam.Add(joTmp);
  520. JObject joUpdate = new JObject();
  521. joUpdate.Add("params", jaParam);
  522. joUpdate.Add("updateUserID", "0");
  523. joUpdate.Add("HospitalDr", Global.inf.hospitalDr);
  524. joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);
  525. joUpdate.Add("code", "09010067");
  526. invoker = new InvokeHelper();
  527. joRtn = invoker.invokeInsuService(joUpdate.ToString(), "更新清算记录");
  528. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  529. {
  530. return -1;
  531. }
  532. else
  533. return 0;
  534. }
  535. }
  536. private int queryHisSettlementInfo(out string error)
  537. {
  538. GridViewSetter grdSetter = new GridViewSetter();
  539. grdSetter.SetHeaderTextOfHisSettlRec(dgvHisSettlRec);
  540. error = "";
  541. try
  542. {
  543. DataTable dtInteface = (DataTable)cbxInterface.DataSource;
  544. int i = cbxInterface.SelectedIndex;
  545. string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt, ";
  546. sqlStr = sqlStr + " SUM(BillType*AccountPaySumamt) AS acct_pay,SUM(BillType*HealthInsurancePay) AS fund_pay_sumamt ";
  547. //sqlStr = sqlStr + " Interface_dr,clearingWay AS clr_way,clearingType AS clr_type ";
  548. string conditionStr = " ";
  549. DataTable dtSettlSummary = (DataTable)dgvSettlSummary.DataSource;
  550. int iCurRow = dgvSettlSummary.CurrentRow.Index;
  551. //DataTable dtInteface = (DataTable)cbxInterface.DataSource;
  552. if (cbgGroupSet.GetItemCheckState(0))
  553. {
  554. conditionStr = conditionStr + " and Interface_Dr ='" + dtSettlSummary.Rows[iCurRow]["Interface_dr"].ToString() + "'";
  555. }
  556. if (cbgGroupSet.GetItemCheckState(1))
  557. {
  558. conditionStr = conditionStr + " and InsuranceType ='" + dtSettlSummary.Rows[iCurRow]["insutype"].ToString() + "'";
  559. }
  560. if (cbgGroupSet.GetItemCheckState(2))
  561. {
  562. conditionStr = conditionStr + " and ClearingType ='" + dtSettlSummary.Rows[iCurRow]["clr_type"].ToString() + "'";
  563. }
  564. if (cbgGroupSet.GetItemCheckState(3))
  565. {
  566. conditionStr = conditionStr + " and ClearingOrgan ='" + dtSettlSummary.Rows[iCurRow]["setl_optins"].ToString() + "'";
  567. }
  568. if (cbgGroupSet.GetItemCheckState(4))
  569. {
  570. sqlStr = sqlStr + ",BillType";
  571. conditionStr = conditionStr + " and BillType ='" + dtSettlSummary.Rows[iCurRow]["BillType"].ToString() + "'";
  572. }
  573. sqlStr = "select * FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();
  574. sqlStr = sqlStr + " and OccurTime>'" + dpST.Text + "'";
  575. sqlStr = sqlStr + " and OccurTime<'" + dpED.Text + "'";
  576. //ValidFlag=1 and BillType=1 表示正常结算记录 ValidFlag=0 and BillType=-1 表示退费记录 ValidFlag=0表示无效记录
  577. if (cbxValid.SelectedIndex != 0)
  578. {
  579. if (cbxValid.SelectedIndex == 1)
  580. sqlStr = sqlStr + " and ValidFlag =1 and BillType=1";
  581. else
  582. sqlStr = sqlStr + " and ValidFlag =0 and BillType=-1";
  583. }
  584. //省医保和市医保对账一样,异地对账需要用到另外的对账交易
  585. if (Global.inf.interfaceDr == 1)
  586. {
  587. sqlStr = sqlStr + " and (InsuranceAreaCode='539900' or InsuranceAreaCode='530100')";
  588. }
  589. //conditionStr = conditionStr.Substring(0,conditionStr.Length -1 );
  590. //conditionStr = conditionStr.Remove(conditionStr.Length - 1, 1);
  591. sqlStr = sqlStr + conditionStr;
  592. JObject joSqlstr = new JObject();
  593. joSqlstr.Add("sqlStr", sqlStr);
  594. JArray jaParam = new JArray();
  595. jaParam.Add(joSqlstr);
  596. JObject joSettlQuery = new JObject();
  597. joSettlQuery.Add("params", jaParam);
  598. joSettlQuery.Add("code", "09010059");
  599. InvokeHelper invoker = new InvokeHelper();
  600. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
  601. //DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  602. JArray ja = JArray.Parse(JsonHelper.getDestValue(joRtn, "result.data"));
  603. DataTable dt = (DataTable)JsonConvert.DeserializeObject(JsonHelper.getDestValue(joRtn, "result.data"), (typeof(DataTable)));
  604. dgvHisSettlRec.DataSource = dt;
  605. //dt.Columns[7].DataType = typeof(float);//不允许
  606. //dgvHisSettlRecFooter.DataGridView = dgvHisSettlRec;
  607. //dgvHisSettlRecFooter.Dock = System.Windows.Forms.DockStyle.Bottom;
  608. //dgvHisSettlRecFooter.Clear();
  609. //dgvHisSettlRecFooter["AdmID"] = "合计";
  610. //dgvHisSettlRecFooter["OverLimitAmount"] = "测试";
  611. return 0;
  612. }
  613. catch (Exception ex)
  614. {
  615. error = "queryHisSettlementInfo:" + ex.Message;
  616. return -1;
  617. }
  618. }
  619. private void tsmCheckDetail_Single_Click(object sender, EventArgs e)
  620. {
  621. //HIS明细
  622. string error;
  623. if (queryHisSettlementInfo(out error) != 0)
  624. {
  625. MessageBox.Show(error);
  626. }
  627. //中心明细
  628. if (CheckDetail_Single(out error) != 0)
  629. {
  630. MessageBox.Show(error);
  631. }
  632. }
  633. /// <summary>
  634. /// 查询HIS结算明细记录
  635. /// </summary>
  636. /// <param name="sender"></param>
  637. /// <param name="e"></param>
  638. private void tsmHisRecord_Click(object sender, EventArgs e)
  639. {
  640. string error;
  641. if (queryHisSettlementInfo(out error) != 0)
  642. {
  643. MessageBox.Show(error);
  644. }
  645. }
  646. public static void writeToTxt(string content, string filePath, string fileName)
  647. {
  648. //创建文件夹,文件夹名称与TXT同名
  649. string finalPath = filePath + "\\" + fileName;
  650. if (!Directory.Exists(finalPath))
  651. {
  652. DirectoryInfo dirInfo = Directory.CreateDirectory(finalPath);
  653. }
  654. //判断文件夹中是否存在txt
  655. string finalFileName = finalPath + "\\" + fileName + ".txt";
  656. if (!File.Exists(finalFileName))
  657. {
  658. FileStream fs1 = File.Create(finalFileName);
  659. fs1.Close();
  660. }
  661. FileStream fs = new FileStream(finalFileName, FileMode.Append, FileAccess.Write);
  662. StreamWriter sw = new StreamWriter(fs);
  663. sw.WriteLine(content);
  664. sw.Close();
  665. fs.Close();
  666. }
  667. /// <summary>
  668. /// 读文件到byte[]
  669. /// </summary>
  670. /// <param name="fileName">硬盘文件路径</param>
  671. /// <returns></returns>
  672. public static byte[] ReadFileToByte(string fileName)
  673. {
  674. FileStream pFileStream = null;
  675. byte[] pReadByte = new byte[0];
  676. try
  677. {
  678. pFileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
  679. BinaryReader r = new BinaryReader(pFileStream);
  680. r.BaseStream.Seek(0, SeekOrigin.Begin); //将文件指针设置到文件开
  681. pReadByte = r.ReadBytes((int)r.BaseStream.Length);
  682. return pReadByte;
  683. }
  684. catch
  685. {
  686. return pReadByte;
  687. }
  688. finally
  689. {
  690. if (pFileStream != null)
  691. pFileStream.Close();
  692. }
  693. }
  694. /// <summary>
  695. ///单字节转有符号整数
  696. /// </summary>
  697. /// <param name="data"></param>
  698. /// <returns></returns>
  699. public string byteArrayToDecString(byte[] data)
  700. {
  701. StringBuilder builder = new StringBuilder();
  702. for (int i = 0; i < data.Length; i++)
  703. {
  704. builder.Append((sbyte)data[i] + ",");
  705. }
  706. return builder.ToString().Trim();
  707. }
  708. private int HISDetailDataExport(string filePath, string fileName)
  709. {
  710. try
  711. {
  712. DataTable dt = (DataTable)dgvHisSettlRec.DataSource;
  713. string content = "";
  714. for (int i = 0; i < dt.Rows.Count; i++)
  715. {
  716. string flag = "";
  717. if (dt.Rows[i]["ValidFlag"].ToString() == "-1")
  718. {
  719. flag = "1";
  720. }
  721. else
  722. {
  723. flag = "0";
  724. }
  725. content = "\r\n"
  726. + dt.Rows[i]["SettlementID"].ToString() + "\t"
  727. + dt.Rows[i]["MdtrtID"].ToString() + "\t"
  728. + dt.Rows[i]["PersonnelNO"].ToString() + "\t"
  729. + dt.Rows[i]["Sumamt"].ToString() + "\t"
  730. + dt.Rows[i]["FundPaySumamt"].ToString() + "\t"
  731. + dt.Rows[i]["AccountPaySumamt"].ToString() + "\t"
  732. + flag
  733. + content;
  734. }
  735. string finalContent = content.Remove(0, 2);
  736. writeToTxt(finalContent, filePath, fileName);
  737. return 0;
  738. }
  739. catch (Exception ex)
  740. {
  741. MessageBox.Show(ex.Message);
  742. return -1;
  743. }
  744. }
  745. private void tsmExport_Click(object sender, EventArgs e)
  746. {
  747. txtName = DateTime.Now.ToString("yyyyMMddHHmmssffff");
  748. txtPath = Global.currentDirectory + "\\Download";
  749. if (HISDetailDataExport(txtPath, txtName) != 0)
  750. {
  751. MessageBox.Show("导出TXT失败!");
  752. }
  753. else
  754. {
  755. MessageBox.Show("导出TXT成功!");
  756. }
  757. //System.IO.Compression.ZipFile.CreateFromDirectory(txtPath + "\\" + "2022ceshi", txtPath + "\\" + "111.zip");
  758. }
  759. private void tsmCompress_Click(object sender, EventArgs e)
  760. {
  761. string path = @"C:\ProgramData\prykNT\prBrowser\bin\service\plugins\INSUNew\DownLoad\111";
  762. string name = @"1121.zip";
  763. string finalDirPath = txtPath + "\\" + txtName;
  764. finalAchPath = finalDirPath + ".zip";
  765. System.IO.Compression.ZipFile.CreateFromDirectory(finalDirPath, finalAchPath);
  766. //System.IO.Compression.ZipFile.CreateFromDirectory(path, name);
  767. //System.IO.Compression.ZipFile.CreateFromDirectory(path, name, 0, true);
  768. MessageBox.Show("将TXT压缩为ZIP成功!");
  769. }
  770. private void tsmZIPToSDec_Click(object sender, EventArgs e)
  771. {
  772. byte[] bArray = ReadFileToByte(finalAchPath);
  773. string str = byteArrayToDecString(bArray);
  774. Global.writeLog(str);
  775. MessageBox.Show("ZIP转为有符号整数成功!");
  776. }
  777. private void tsmUploadZIP_Click(object sender, EventArgs e)
  778. {
  779. string outParam = "";
  780. byte[] bArray = ReadFileToByte(finalAchPath);
  781. string str = "[" + byteArrayToDecString(bArray) + "]";
  782. JObject joTmp = new JObject();
  783. joTmp.Add("in", JArray.Parse(str));
  784. joTmp.Add("filename", txtName + ".zip");
  785. Global.inf.fileName = txtName + ".zip";
  786. //joTmp.Add("filename", finalAchPath.Replace("\\",@"\"));
  787. joTmp.Add("fixmedins_code", Global.inf.hospitalNO);
  788. JObject joFsUploadIn = new JObject();
  789. joFsUploadIn.Add("fsUploadIn", joTmp);
  790. InvokeHelper invoker = new InvokeHelper();
  791. JObject jo9101Rtn= invoker.invokeCenterService("9101", JsonHelper.setCenterInpar("9101", joFsUploadIn.ToString()));
  792. if (JsonHelper.parseCenterRtnValue(jo9101Rtn, out outParam) != 0)
  793. {
  794. outParam = JsonHelper.setExceptionJson(-1, "【9101】文件上传失败", outParam).ToString();
  795. return;
  796. }
  797. else
  798. {
  799. MessageBox.Show("【9101】文件上传成功");
  800. }
  801. }
  802. private void tsm3202_Click(object sender, EventArgs e)
  803. {
  804. string outParam = "";
  805. DataTable dt = (DataTable)dgvSettlSummary.DataSource;
  806. int i = dgvSettlSummary.CurrentRow.Index;
  807. MessageBox.Show(dt.Rows[i]["clr_type"].ToString());
  808. dynamic joCheck = new JObject();
  809. joCheck.file_qury_no = JObject.Parse(tbTmp.Text);
  810. joCheck.clr_type = dt.Rows[i]["clr_type"].ToString();
  811. joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString();
  812. joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss");
  813. joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss");
  814. joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();
  815. joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();
  816. joCheck.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();
  817. joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString();
  818. JObject joData = new JObject();
  819. joData.Add("data", joCheck);
  820. InvokeHelper invoker = new InvokeHelper();
  821. JObject jo3202Rtn= invoker.invokeCenterService("3202", JsonHelper.setCenterInpar("3202", joData.ToString()));
  822. if (JsonHelper.parseCenterRtnValue(jo3202Rtn, out outParam) != 0)
  823. {
  824. outParam = JsonHelper.setExceptionJson(-1, "【3202】医保明细对账失败", outParam).ToString();
  825. MessageBox.Show(outParam);
  826. return;
  827. }
  828. else
  829. {
  830. MessageBox.Show("【3202】医保明细对账成功");
  831. }
  832. }
  833. private void tsmDownload_Click(object sender, EventArgs e)
  834. {
  835. string outParam = "";
  836. JObject joTmp = new JObject();
  837. joTmp.Add("file_qury_no", JObject.Parse(tbTmp.Text.Replace(@"\\", @"\")));
  838. joTmp.Add("filename", txtName + ".zip");
  839. joTmp.Add("fixmedins_code", Global.inf.hospitalNO);
  840. JObject joFsDownloadIn = new JObject();
  841. joFsDownloadIn.Add("fsDownloadIn", joTmp);
  842. InvokeHelper invoker = new InvokeHelper();
  843. jo9102Rtn = invoker.invokeCenterService("9102", JsonHelper.setCenterInpar("9102", joFsDownloadIn).ToString());
  844. if (JsonHelper.parseCenterRtnValue(jo9102Rtn, out outParam) != 0)
  845. {
  846. outParam = JsonHelper.setExceptionJson(-1, "【9102】文件下载失败", outParam).ToString();
  847. MessageBox.Show(outParam);
  848. return;
  849. }
  850. else
  851. {
  852. MessageBox.Show("【9102】文件下载成功");
  853. }
  854. }
  855. private void tsmUnCompress_Click(object sender, EventArgs e)
  856. {
  857. //解压缩
  858. string zipFilePath = jo9102Rtn["filePath"].ToString();
  859. string txtFileDir = System.Environment.CurrentDirectory + "\\Download";
  860. //string txtFilePath = txtFileDir + "\\" + filename.Substring(0, filename.Length - 4);
  861. string txtFilePath = txtFileDir;
  862. if (File.Exists(txtFilePath))
  863. {
  864. File.Delete(txtFilePath);
  865. }
  866. ZipFile.ExtractToDirectory(zipFilePath, txtFileDir);
  867. }
  868. private void tsmImport_Click(object sender, EventArgs e)
  869. {
  870. GridViewSetter grd = new GridViewSetter();
  871. grd.SetHeaderTextOfDgvCenterSetlRec(dgvCenterSettlRec);
  872. string txtFileDir = tbTmp.Text;//E:\GHSF\SCYBDownLoad\result.txt
  873. string[] lines = System.IO.File.ReadAllLines(txtFileDir);
  874. Global.writeLog(lines.ToString());
  875. DataTable dt = new DataTable();
  876. dt.Columns.Add("sn", typeof(int));
  877. dt.Columns.Add("psn_no", typeof(string));
  878. dt.Columns.Add("mdtrt_id", typeof(string));
  879. dt.Columns.Add("setl_id", typeof(string));
  880. dt.Columns.Add("msgid", typeof(string));
  881. dt.Columns.Add("stmt_rslt", typeof(string));
  882. dt.Columns.Add("refd_setl_flag", typeof(string));
  883. dt.Columns.Add("memo", typeof(string));
  884. dt.Columns.Add("medfee_sumamt", typeof(string));
  885. dt.Columns.Add("fund_pay_sumamt", typeof(string));
  886. dt.Columns.Add("acct_pay", typeof(string));
  887. //foreach (string line in lines)
  888. for (int i = 0; i < lines.Length; i++)
  889. {
  890. string[] strs = (lines[i] + "\t").Split('\t');
  891. DataRow dr = dt.NewRow();
  892. //Global.inf.writeLog(lines[i].ToString());
  893. //Global.inf.writeLog(strs.Length.ToString());
  894. dr["sn"] = i;
  895. dr["psn_no"] = strs[0];
  896. dr["mdtrt_id"] = strs[1];
  897. dr["setl_id"] = strs[2];
  898. dr["msgid"] = strs[3];
  899. dr["stmt_rslt"] = strs[4];
  900. dr["refd_setl_flag"] = strs[5];
  901. dr["memo"] = strs[6];
  902. dr["medfee_sumamt"] = strs[7];
  903. dr["fund_pay_sumamt"] = strs[8];
  904. dr["acct_pay"] = strs[9];
  905. //dr["Field2"] = strs[2];
  906. dt.Rows.Add(dr);
  907. }
  908. dgvCenterSettlRec.DataSource = dt;
  909. }
  910. private int exportAndCompress(out string zipPath)
  911. {
  912. zipPath = "";
  913. try
  914. {
  915. //导出TXT
  916. string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff");
  917. string filePath = Global.currentDirectory + "\\Download";
  918. HISDetailDataExport(filePath, fileName);
  919. //压缩
  920. string finalDirPath = filePath + "\\" + fileName;//同名文件夹
  921. zipPath = finalDirPath + ".zip";
  922. System.IO.Compression.ZipFile.CreateFromDirectory(finalDirPath, zipPath);
  923. return 0;
  924. }
  925. catch (Exception ex)
  926. {
  927. zipPath = "exportAndCompress:" + ex.Message;
  928. return -1;
  929. }
  930. }
  931. /// <summary>
  932. /// 上传ZIP文件转字节流再转换为有符号10进制数组后上传
  933. /// </summary>
  934. /// <param name="zipPath"></param>
  935. /// <param name="file_qury_no"></param>
  936. /// <returns></returns>
  937. private int uploadFileToCenter(string zipPath, out string file_qury_no)
  938. {
  939. string outParam = "";
  940. try
  941. {
  942. byte[] bArray = ReadFileToByte(zipPath);
  943. string str = "[" + byteArrayToDecString(bArray) + "]";
  944. JObject joTmp = new JObject();
  945. joTmp.Add("in", JArray.Parse(str));
  946. joTmp.Add("filename", txtName + ".zip");
  947. joTmp.Add("fixmedins_code", Global.inf.hospitalNO);
  948. JObject joFsUploadIn = new JObject();
  949. joFsUploadIn.Add("fsUploadIn", joTmp);
  950. InvokeHelper invoker = new InvokeHelper();
  951. JObject jo9101Rtn = invoker.invokeCenterService("9101", JsonHelper.setCenterInpar("9101", joFsUploadIn.ToString()));
  952. if (JsonHelper.parseCenterReturnJson(jo9101Rtn, out outParam) != 0)
  953. {
  954. file_qury_no = outParam;
  955. return -1;
  956. }
  957. else
  958. {
  959. file_qury_no = JsonHelper.getDestValue(jo9101Rtn, "output.file_qury_no");
  960. return 0;
  961. }
  962. }
  963. catch (Exception ex)
  964. {
  965. file_qury_no = "uploadFileToCenter:" + ex.Message;
  966. return -1;
  967. }
  968. }
  969. private int checkDetail(string file_qury_no, out string outParam, out string fileName)
  970. {
  971. fileName = "";
  972. try
  973. {
  974. DataTable dt = (DataTable)dgvSettlSummary.DataSource;
  975. int i = dgvSettlSummary.CurrentRow.Index;
  976. Global.inf.areaCode = "";
  977. dynamic joCheck = new JObject();
  978. joCheck.file_qury_no = file_qury_no.Replace(@"\\", @"\");
  979. joCheck.clr_type = dt.Rows[i]["clr_type"].ToString();
  980. joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString();
  981. joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss");
  982. joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss");
  983. joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();
  984. joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();
  985. joCheck.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();
  986. joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString();
  987. JObject joData = new JObject();
  988. joData.Add("data", joCheck);
  989. InvokeHelper invoker = new InvokeHelper();
  990. JObject jo3202Rtn = invoker.invokeCenterService("3202", JsonHelper.setCenterInpar("3202", joData.ToString()));
  991. if (JsonHelper.parseCenterReturnJson(jo3202Rtn, out outParam) != 0)
  992. {
  993. return -1;
  994. }
  995. else
  996. {
  997. outParam = JsonHelper.getDestValue(jo3202Rtn, "output.fileinfo.file_qury_no");
  998. fileName = JsonHelper.getDestValue(jo3202Rtn, "output.fileinfo.filename");
  999. return 0;
  1000. }
  1001. }
  1002. catch (Exception ex)
  1003. {
  1004. outParam = "checkDetail:" + ex.Message;
  1005. return -1;
  1006. }
  1007. }
  1008. private int downloadZIP(string file_qury_no, string fileName, out string outParam)
  1009. {
  1010. outParam = "";
  1011. try
  1012. {
  1013. JObject joTmp = new JObject();
  1014. joTmp = new JObject();
  1015. joTmp.Add("file_qury_no", file_qury_no.Replace(@"\\", @"\"));
  1016. joTmp.Add("filename", fileName);
  1017. joTmp.Add("fixmedins_code", Global.inf.hospitalNO);
  1018. JObject joFsDownloadIn = new JObject();
  1019. joFsDownloadIn.Add("fsDownloadIn", joTmp);
  1020. InvokeHelper invoker = new InvokeHelper();
  1021. JObject jo9102Rtn = invoker.DownloadCenterFile(JsonHelper.setCenterInpar("9102", joFsDownloadIn).ToString());
  1022. string error = "";
  1023. if (JsonHelper.parseIrisRtnValue(jo9102Rtn, out error) != 0)
  1024. {
  1025. outParam = error;
  1026. return -1;
  1027. }
  1028. else
  1029. {
  1030. outParam = JsonHelper.getDestValue(jo9102Rtn, "filePath");
  1031. return 0;
  1032. }
  1033. }
  1034. catch (Exception ex)
  1035. {
  1036. outParam = "downloadZIP:" + ex.Message;
  1037. return -1;
  1038. }
  1039. }
  1040. private int importToDgvCenterSetlRec(string fileName, string zipFilePath, out string outParam)
  1041. {
  1042. outParam = "";
  1043. try
  1044. {
  1045. string dir = fileName.Substring(1, fileName.Length - 4);
  1046. //解压缩
  1047. string txtFileDir = System.Environment.CurrentDirectory + "\\Download\\" + dir;
  1048. string txtFilePath = zipFilePath.Substring(0, zipFilePath.Length - 4);
  1049. if (File.Exists(txtFilePath))
  1050. {
  1051. File.Delete(txtFilePath);
  1052. }
  1053. if (!Directory.Exists(txtFileDir))
  1054. {
  1055. Directory.CreateDirectory(txtFileDir);
  1056. }
  1057. ZipFile.ExtractToDirectory(zipFilePath, txtFileDir);
  1058. //导入文件
  1059. GridViewSetter grd = new GridViewSetter();
  1060. grd.SetHeaderTextOfDgvCenterSetlRec(dgvCenterSettlRec);
  1061. //txtFileDir = txtFileDir;//E:\GHSF\SCYBDownLoad\result.txt
  1062. string[] lines = System.IO.File.ReadAllLines(txtFileDir + "\\result.txt");
  1063. DataTable dt = new DataTable();
  1064. dt.Columns.Add("sn", typeof(int));
  1065. dt.Columns.Add("psn_no", typeof(string));
  1066. dt.Columns.Add("mdtrt_id", typeof(string));
  1067. dt.Columns.Add("setl_id", typeof(string));
  1068. dt.Columns.Add("msgid", typeof(string));
  1069. dt.Columns.Add("stmt_rslt", typeof(string));
  1070. dt.Columns.Add("refd_setl_flag", typeof(string));
  1071. dt.Columns.Add("memo", typeof(string));
  1072. dt.Columns.Add("medfee_sumamt", typeof(string));
  1073. dt.Columns.Add("fund_pay_sumamt", typeof(string));
  1074. dt.Columns.Add("acct_pay", typeof(string));
  1075. //foreach (string line in lines)
  1076. for (int i = 0; i < lines.Length; i++)
  1077. {
  1078. string[] strs = (lines[i] + "\t").Split('\t');
  1079. DataRow dr = dt.NewRow();
  1080. //Global.inf.writeLog(lines[i].ToString());
  1081. //Global.inf.writeLog(strs.Length.ToString());
  1082. dr["sn"] = i + 1;
  1083. dr["psn_no"] = strs[0];
  1084. dr["mdtrt_id"] = strs[1];
  1085. dr["setl_id"] = strs[2];
  1086. dr["msgid"] = strs[3];
  1087. dr["stmt_rslt"] = strs[4];
  1088. dr["refd_setl_flag"] = strs[5];
  1089. dr["memo"] = strs[6];
  1090. dr["medfee_sumamt"] = strs[7];
  1091. dr["fund_pay_sumamt"] = strs[8];
  1092. dr["acct_pay"] = strs[9];
  1093. //dr["Field2"] = strs[2];
  1094. dt.Rows.Add(dr);
  1095. }
  1096. dgvCenterSettlRec.DataSource = dt;
  1097. return 0;
  1098. }
  1099. catch (Exception ex)
  1100. {
  1101. outParam = "importToDgvCenterSetlRec:" + ex.Message;
  1102. return -1;
  1103. }
  1104. }
  1105. private int CheckDetail_Single(out string outParam)
  1106. {
  1107. outParam = "";
  1108. //先签到
  1109. CenterBusiness cBus = new CenterBusiness();
  1110. JObject jo9001Rtn = new JObject();
  1111. cBus.signIn(out jo9001Rtn);
  1112. try
  1113. {
  1114. //导出并压缩
  1115. if (exportAndCompress(out outParam) != 0)
  1116. {
  1117. return -1;
  1118. }
  1119. string zipPath = outParam;
  1120. Global.writeLog("exportAndCompress:" + zipPath);
  1121. //上传给中心,
  1122. if (uploadFileToCenter(zipPath, out outParam) != 0)
  1123. {
  1124. return -1;
  1125. }
  1126. Global.writeLog("uploadFileToCenter:" + outParam);
  1127. string file_query_no = outParam;
  1128. string fileName = "";
  1129. //3202明细对账 输出查询号和文件名
  1130. if (checkDetail(file_query_no, out outParam, out fileName) != 0)
  1131. {
  1132. return -1;
  1133. }
  1134. file_query_no = outParam;
  1135. Global.writeLog("checkDetail:" + outParam + "///" + fileName);
  1136. //下载 获取 查询号和文件名后 下载
  1137. if (downloadZIP(file_query_no, fileName, out outParam) != 0)
  1138. {
  1139. return -1;
  1140. }
  1141. zipPath = outParam;
  1142. Global.writeLog("downloadZIP:" + outParam);
  1143. //导入DGV
  1144. if (importToDgvCenterSetlRec(fileName, zipPath, out outParam) != 0)
  1145. {
  1146. return -1;
  1147. }
  1148. Global.writeLog("importToDgvCenterSetlRec:" + outParam);
  1149. return 0;
  1150. }
  1151. catch (Exception ex)
  1152. {
  1153. outParam = "CheckDetail_Single:" + ex.Message;
  1154. return -1;
  1155. }
  1156. }
  1157. private void dgvRowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1158. {
  1159. DataGridView dgv = (DataGridView)sender;
  1160. dgv.RowHeadersWidth = 60;
  1161. if (dgv.Rows.Count > 1)
  1162. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1163. }
  1164. private void dgvSettlSummary_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1165. {
  1166. if (dgvSettlSummary.Rows.Count > 1)
  1167. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1168. }
  1169. private void dgvHisSettlRec_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1170. {
  1171. if (dgvHisSettlRec.Rows.Count > 1)
  1172. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1173. }
  1174. private int compareDataGridView(string value, string colName, Sunny.UI.UIDataGridView dgv)
  1175. {
  1176. try
  1177. {
  1178. for (int i = 0; i < dgv.RowCount; i++)
  1179. {
  1180. if (dgv.Rows[i].Cells[colName].Value.ToString() == value)
  1181. {
  1182. return 0;
  1183. }
  1184. }
  1185. return -1;
  1186. }
  1187. catch (Exception ex)
  1188. {
  1189. MessageBox.Show("compareDataGridView" + ex.Message);
  1190. return -1;
  1191. }
  1192. }
  1193. private void tsmAICheck_Click(object sender, EventArgs e)
  1194. {
  1195. for (int i = 0; i < dgvHisSettlRec.RowCount; i++)
  1196. {
  1197. string value = dgvHisSettlRec.Rows[i].Cells["SettlementID"].Value.ToString();
  1198. string colName = "setl_id";
  1199. if (compareDataGridView(value, colName, dgvCenterSettlRec) != 0)
  1200. {
  1201. dgvHisSettlRec.Rows[i].DefaultCellStyle.BackColor = Color.Red;
  1202. rtbCheckDetailLog.AppendText("HIS结算ID:" + value + "在中心明细中未找到数据!" + "\r\n");
  1203. }
  1204. }
  1205. for (int i = 0; i < dgvCenterSettlRec.RowCount; i++)
  1206. {
  1207. string value = dgvCenterSettlRec.Rows[i].Cells["setl_id"].Value.ToString();
  1208. string colName = "SettlementID";
  1209. if (compareDataGridView(value, colName, dgvHisSettlRec) != 0)
  1210. {
  1211. dgvCenterSettlRec.Rows[i].DefaultCellStyle.BackColor = Color.Red;
  1212. rtbCheckDetailLog.AppendText("中心结算ID:" + value + "在HIS明细中未找到数据!" + "\r\n");
  1213. }
  1214. }
  1215. }
  1216. private void tsmCheckDetail_Batch_Click(object sender, EventArgs e)
  1217. {
  1218. }
  1219. private void toolStripMenuItem1_Click(object sender, EventArgs e)
  1220. {
  1221. int i = dgvHisSettlRec.CurrentRow.Index;
  1222. DataTable dt = (DataTable)dgvHisSettlRec.DataSource;
  1223. MessageBox.Show(dt.Rows[i]["AccountPaySumamt"].ToString());
  1224. }
  1225. private void btnAddOneDay_Click(object sender, EventArgs e)
  1226. {
  1227. dpST.Value = dpST.Value.AddDays(1);
  1228. dpED.Value = dpED.Value.AddDays(1);
  1229. }
  1230. private void btnReduceOndDay_Click(object sender, EventArgs e)
  1231. {
  1232. dpST.Value = dpST.Value.AddDays(-1);
  1233. dpED.Value = dpED.Value.AddDays(-1);
  1234. }
  1235. private void Clearing1()
  1236. {
  1237. //组织入参,进行中心清算
  1238. int i = dgvSettlSummary.CurrentRow.Index;
  1239. DataTable dt = (DataTable)dgvSettlSummary.DataSource;
  1240. JObject joData = new JObject();
  1241. joData.Add("", dgvSettlSummary.CurrentRow.Cells[""].Value.ToString());
  1242. //存到医保平台
  1243. }
  1244. private void btnQueryClrSum_Click(object sender, EventArgs e)
  1245. {
  1246. DataTable dtInteface = (DataTable)cbInterface_2.DataSource;
  1247. int i = cbInterface_2.SelectedIndex;
  1248. GridViewSetter grdSetter = new GridViewSetter();
  1249. string sqlStr = "";
  1250. switch (rg_ClearType.SelectedIndex)
  1251. {
  1252. case 0:
  1253. {
  1254. grdSetter.SetHeaderTextOfClearing(dgvClearingSum);
  1255. sqlStr = " SELECT count(*) AS psntime, "
  1256. + " SUM(Billtype*Sumamt) AS medfee_sumamt, "
  1257. + " SUM(Billtype*(0.00+FundPaySumamt+AccountPaySumamt+PersonCashPay)) AS med_sumfee, "
  1258. + " SUM(billtype*PersonCashPay) AS cash_payamt, "
  1259. + " SUM(billtype*(0.00+AccountPaySumamt)) AS acct_pay,"
  1260. + " SUM(Convert(NUMERIC(16,2),billtype*(0.00+FundPaySumamt))) AS fund_pay_sumamt, "
  1261. + " ClearingOrgan as setl_optins,InsuranceType as insutype,MedicalType as med_type,ClearingType as clr_type ";
  1262. sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE left(ClearingOrgan,4)='4201' and BillType<>9 ";
  1263. break;
  1264. }
  1265. case 1:
  1266. {
  1267. grdSetter.SetHeaderTextOfClearingAllopatry(dgvClearingSum);
  1268. sqlStr = " SELECT count(*) AS psntime, "
  1269. + " SUM(Billtype*(0.00+Sumamt)) AS medfee_sumamt, "
  1270. + " SUM(Billtype*(0.00+FundPaySumamt+AccountPaySumamt)) AS optins_pay_sumamt, "
  1271. //+ " SUM(billtype*AccountPaySumamt) AS acct_pay, "
  1272. //+ " SUM(billtype*FundPaySumamt) AS fund_appy_sum, "
  1273. + "'"+ dpST_2.Text + "' as BEGNDATE, "
  1274. + "'" + dpED_2.Text + "' as ENDDATE, "
  1275. + " '管理员' as OPTER_NAME, 'H42010400368' as FIXMEDINS_NO, '' as MON_SETL_APPY_ID ";
  1276. sqlStr = sqlStr + "FROM BS_MedInsuSettlement WHERE left(InsuranceAreaCode,4)<>'4201' and BillType<>9 ";
  1277. break;
  1278. }
  1279. }
  1280. sqlStr = sqlStr + " And Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();
  1281. sqlStr = sqlStr + " And OccurTime>'" + dpST_2.Text + "'";
  1282. sqlStr = sqlStr + " And OccurTime<'" + dpED_2.Text + "'";
  1283. if (cbInterface_2.Text != "")
  1284. {
  1285. sqlStr = sqlStr + " And Interface_dr =" + dtInteface.Rows[i]["ID"].ToString();
  1286. }
  1287. if (cbInsutype_2.Text != "")
  1288. {
  1289. sqlStr = sqlStr + " And InsuranceType ='" + cbInsutype_2.SelectedValue + "'";
  1290. }
  1291. if (cbClrType_2.Text != "")
  1292. {
  1293. sqlStr = sqlStr + " And ClearingType ='" + cbClrType_2.SelectedValue + "'";
  1294. }
  1295. if (tbSettlOption_2.Text != "")
  1296. {
  1297. sqlStr = sqlStr + " And ClearingOrgan ='" + tbSettlOption_2.Text + "'";
  1298. }
  1299. if (cbClrWay_2.Text != "")
  1300. {
  1301. sqlStr = sqlStr + " And ClearingWay ='" + cbClrWay_2.SelectedValue + "'";
  1302. }
  1303. if (cbValid_2.SelectedIndex != 0)
  1304. {
  1305. if (cbValid_2.SelectedIndex == 1)
  1306. { sqlStr = sqlStr + " and ValidFlag =1"; }
  1307. else
  1308. sqlStr = sqlStr + " and ValidFlag =-1";
  1309. }
  1310. if (rg_ClearType.SelectedIndex == 0)
  1311. { sqlStr = sqlStr + " Group By ClearingOrgan, InsuranceType, MedicalType, ClearingType "; }
  1312. JObject joSqlstr = new JObject();
  1313. joSqlstr.Add("sqlStr", sqlStr);
  1314. JArray jaParam = new JArray();
  1315. jaParam.Add(joSqlstr);
  1316. JObject joSettlQuery = new JObject();
  1317. joSettlQuery.Add("params", jaParam);
  1318. joSettlQuery.Add("code", "09010081");
  1319. InvokeHelper invoker = new InvokeHelper();
  1320. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询汇总结算信息(清算)");
  1321. if (rg_ClearType.SelectedIndex == 0)
  1322. {
  1323. joRtn["result"]["data"][0]["fund_pay_sumamt"] = joRtn["result"]["data"][0]["fund_pay_sumamt"].ToString(0.00);
  1324. joRtn["result"]["data"][0]["acct_pay"] = joRtn["result"]["data"][0]["acct_pay"].ToString(0.00);
  1325. }
  1326. else
  1327. {
  1328. joRtn["result"]["data"][0]["medfee_sumamt"] = joRtn["result"]["data"][0]["medfee_sumamt"].ToString(0.00);
  1329. joRtn["result"]["data"][0]["optins_pay_sumamt"] = joRtn["result"]["data"][0]["optins_pay_sumamt"].ToString(0.00);
  1330. }
  1331. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  1332. dgvClearingSum.DataSource = dt;
  1333. }
  1334. private void tmsClearing_2_Click(object sender, EventArgs e)
  1335. {
  1336. string error = "";
  1337. switch (rg_ClearType.SelectedIndex)
  1338. {
  1339. case 0:
  1340. {
  1341. if (Clearing_Single(out error) != 0)
  1342. {
  1343. MessageBox.Show("本地清算失败:" + error);
  1344. }
  1345. else
  1346. {
  1347. MessageBox.Show("本地清算成功");
  1348. }
  1349. break;
  1350. }
  1351. case 1:
  1352. {
  1353. if (OthPlcClearing_Single(out error) != 0)
  1354. {
  1355. MessageBox.Show("异地清算失败:" + error);
  1356. }
  1357. else
  1358. {
  1359. MessageBox.Show("异地清算成功");
  1360. }
  1361. break;
  1362. }
  1363. }
  1364. }
  1365. private void btnQueryClearing_Click(object sender, EventArgs e)
  1366. {
  1367. DataTable dtInteface = (DataTable)cbInterface_3.DataSource;
  1368. int i = cbInterface_3.SelectedIndex;
  1369. //
  1370. string sqlStr = "SELECT * from BS_MedInsuClearingRecord where Hosp_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString(); ;
  1371. sqlStr = sqlStr + " and Interface_Dr =" + dtInteface.Rows[i]["ID"].ToString();
  1372. if (rbgTimeWay.SelectedIndex == 0)
  1373. {
  1374. sqlStr = sqlStr + " and OccurTime>'" + dpST_3.Value.ToString("yyyy-MM-dd 00:00:00") + "'";
  1375. sqlStr = sqlStr + " and OccurTime<'" + dpED_3.Value.ToString("yyyy-MM-dd 23:59:59") + "'";
  1376. }
  1377. else
  1378. {
  1379. sqlStr = sqlStr + " and Begndate>='" + dpST_3.Value.ToString("yyyy-MM-dd 00:00:00") + "'";
  1380. sqlStr = sqlStr + " and Enddate<='" + dpED_3.Value.ToString("yyyy-MM-dd 23:59:59") + "'";
  1381. }
  1382. if (cbValid_3.SelectedIndex != 0)
  1383. {
  1384. if (cbValid_3.SelectedIndex == 1)
  1385. { sqlStr = sqlStr + " and ValidFlag =1"; }
  1386. else
  1387. sqlStr = sqlStr + " and ValidFlag =-1";
  1388. }
  1389. switch (rg_querType.SelectedIndex)
  1390. {
  1391. case 0:
  1392. {
  1393. sqlStr = sqlStr + " And InsuBusinessID='3202a' ";
  1394. break;
  1395. }
  1396. case 1:
  1397. {
  1398. sqlStr = sqlStr + " And InsuBusinessID='1608' ";
  1399. break;
  1400. }
  1401. }
  1402. JObject joSqlstr = new JObject();
  1403. joSqlstr.Add("sqlStr", sqlStr);
  1404. JArray jaParam = new JArray();
  1405. jaParam.Add(joSqlstr);
  1406. JObject joSettlQuery = new JObject();
  1407. joSettlQuery.Add("params", jaParam);
  1408. joSettlQuery.Add("code", "09010069");
  1409. InvokeHelper invoker = new InvokeHelper();
  1410. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询清算信息");
  1411. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  1412. dgvClearingData.DataSource = dt;
  1413. }
  1414. private void btnCancleClearing_Click(object sender, EventArgs e)
  1415. {
  1416. string error = "";
  1417. if (rg_querType.SelectedIndex == 0)
  1418. {
  1419. if (CancleClearing_Single(out error) != 0)
  1420. {
  1421. MessageBox.Show("撤销清算失败:" + error);
  1422. }
  1423. else
  1424. {
  1425. MessageBox.Show("撤销清算成功");
  1426. }
  1427. }
  1428. else
  1429. {
  1430. if (CancleOthPlcClearing_Single(out error) != 0)
  1431. {
  1432. MessageBox.Show("异地撤销清算失败:" + error);
  1433. }
  1434. else
  1435. {
  1436. MessageBox.Show("异地撤销清算成功");
  1437. }
  1438. }
  1439. }
  1440. private void btnAddMonth_Click(object sender, EventArgs e)
  1441. {
  1442. dpST_2.Value = dpST_2.Value.AddMonths(1);
  1443. dpED_2.Value = dpST_2.Value.AddDays(1 - dpST_2.Value.Day).AddMonths(1).AddMinutes(-1);
  1444. }
  1445. private void btnReduceMonth_Click(object sender, EventArgs e)
  1446. {
  1447. dpST_2.Value = dpST_2.Value.AddMonths(-1);
  1448. dpED_2.Value = dpST_2.Value.AddDays(1 - dpST_2.Value.Day).AddMonths(1).AddMinutes(-1);
  1449. }
  1450. private void uiButton3_Click(object sender, EventArgs e)
  1451. {
  1452. string sqlStr = "SELECT * ";
  1453. sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.interfaceDr;
  1454. sqlStr = sqlStr + " and OccurTime>'" + dpST_O.Text + "'";
  1455. sqlStr = sqlStr + " and OccurTime<'" + dpED_O.Text + "'";
  1456. sqlStr = sqlStr + " and Interface_dr =1";
  1457. sqlStr = sqlStr + " and (InsuranceAreaCode<>'539900' and InsuranceAreaCode<>'530100')";
  1458. //if (cbxInsuType.Text != "")
  1459. //{
  1460. // sqlStr = sqlStr + " and insutype ='" + cbxInsuType.SelectedValue + "'";
  1461. //}
  1462. if (cbxClrType_O.Text != "")
  1463. {
  1464. sqlStr = sqlStr + " and ClearingType ='" + cbxClrType_O.SelectedValue + "'";
  1465. }
  1466. //if (tbSettlOption.Text != "")
  1467. //{
  1468. // sqlStr = sqlStr + " and ClearingOrgan ='" + tbSettlOption.Text + "'";
  1469. //}
  1470. if (cbxValid_O.SelectedIndex != 0)
  1471. {
  1472. if (cbxValid_O.SelectedIndex == 1)
  1473. { sqlStr = sqlStr + " and ValidFlag =1"; }
  1474. else
  1475. sqlStr = sqlStr + " and ValidFlag =-1";
  1476. }
  1477. JObject joSqlstr = new JObject();
  1478. joSqlstr.Add("sqlStr", sqlStr);
  1479. JArray jaParam = new JArray();
  1480. jaParam.Add(joSqlstr);
  1481. JObject joSettlQuery = new JObject();
  1482. joSettlQuery.Add("params", jaParam);
  1483. joSettlQuery.Add("code", "09010059");
  1484. InvokeHelper invoker = new InvokeHelper();
  1485. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
  1486. //DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  1487. DataTable dt = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable)));
  1488. //DataTable dtResult = new DataTable();
  1489. ////克隆表结构
  1490. //dtResult = dt.Clone();
  1491. //foreach (DataColumn col in dtResult.Columns)
  1492. //{
  1493. // if (col.ColumnName == "BillID")
  1494. // {
  1495. // //修改列类型
  1496. // col.DataType = typeof(string);
  1497. // }
  1498. // if (col.ColumnName == "RecordID")
  1499. // {
  1500. // //修改列类型
  1501. // col.DataType = typeof(string);
  1502. // }
  1503. //}
  1504. //foreach (DataRow row in dt.Rows)
  1505. //{
  1506. // DataRow newDtRow = dtResult.NewRow();
  1507. // foreach (DataColumn column in dt.Columns)
  1508. // {
  1509. // if (column.ColumnName == "BillID")
  1510. // {
  1511. // MessageBox.Show("cs1:" + column.ColumnName + row[column.ColumnName].ToString());
  1512. // newDtRow[column.ColumnName] = Convert.ToString(row[column.ColumnName]);
  1513. // }
  1514. // else
  1515. // {
  1516. // newDtRow[column.ColumnName] = row[column.ColumnName];
  1517. // }
  1518. // }
  1519. // dtResult.Rows.Add(newDtRow);
  1520. //}
  1521. dgvOthCheck.DataSource = dt;
  1522. }
  1523. private void tsmOthPlcCheck_Click(object sender, EventArgs e)
  1524. {
  1525. string error = "";
  1526. if (OthPlcCheck_Single(out error) != 0)
  1527. {
  1528. MessageBox.Show("对账失败:" + error);
  1529. }
  1530. else
  1531. {
  1532. MessageBox.Show("对账成功");
  1533. }
  1534. }
  1535. private void uiSymbolButton2_Click(object sender, EventArgs e)
  1536. {
  1537. dpST_O.Value = dpST_O.Value.AddDays(1);
  1538. dpED_O.Value = dpED_O.Value.AddDays(1);
  1539. }
  1540. private ArrayList getIndexArray(String inputStr, String findStr)
  1541. {
  1542. ArrayList list = new ArrayList();
  1543. int start = 0;
  1544. while (start < inputStr.Length)
  1545. {
  1546. int index = inputStr.IndexOf(findStr, start);
  1547. if (index >= 0)
  1548. {
  1549. list.Add(index);
  1550. start = index + findStr.Length;
  1551. }
  1552. else
  1553. {
  1554. break;
  1555. }
  1556. }
  1557. return list;
  1558. }
  1559. private void uiButton2_Click(object sender, EventArgs e)
  1560. {
  1561. DataTable dt = (DataTable)dgvOthCheck.DataSource;
  1562. string error = "";
  1563. int failRows = 0;
  1564. for (int i = 0; i < dt.Rows.Count; i++)
  1565. {
  1566. //dgvOthCheck.Rows[i].Selected = true;
  1567. dgvOthCheck.CurrentCell = dgvOthCheck.Rows[i].Cells[0];
  1568. if (OthPlcCheck_Single(out error) != 0)
  1569. {
  1570. string str = "【当前人员】:";
  1571. //Graphics g = this.CreateGraphics();
  1572. //Font font = new Font("宋体", 14, FontStyle.Bold);
  1573. //SolidBrush brush = new SolidBrush(Color.Red);
  1574. //g.DrawString(str, font, brush, 20, 50);
  1575. string patInfo = str + dt.Rows[i]["PatientName"].ToString()
  1576. + ",结算编号:" + dt.Rows[i]["SettlementID"].ToString()
  1577. + ",清算类别:" + dt.Rows[i]["ClearingType"].ToString()
  1578. + ",就诊类别(1门诊2住院):" + dt.Rows[i]["admType"].ToString();
  1579. rtbOthCheckResultRecord.AppendText(patInfo + ";对账失败:" + error + "\r\n");
  1580. failRows++;
  1581. }
  1582. else
  1583. {
  1584. //rtbOthCheckResultRecord.AppendText("当前人员:" + dt.Rows[i]["PatientName"].ToString() + ";对账成功!" + "\r\n");
  1585. }
  1586. }
  1587. if (failRows == 0)
  1588. {
  1589. rtbOthCheckResultRecord.AppendText("当前所有人员对账成功!" + "\r\n");
  1590. }
  1591. else
  1592. {
  1593. string str = "【当前人员】";
  1594. ArrayList list = getIndexArray(rtbOthCheckResultRecord.Text, str);
  1595. for (int i = 0; i < list.Count; i++)
  1596. {
  1597. int index = (int)list[i];
  1598. rtbOthCheckResultRecord.Select(index, str.Length);
  1599. rtbOthCheckResultRecord.SelectionColor = Color.Red;
  1600. Font oldFont = rtbOthCheckResultRecord.SelectionFont;
  1601. Font font = new Font(oldFont, oldFont.Style | FontStyle.Bold);
  1602. rtbOthCheckResultRecord.SelectionFont = font;
  1603. }
  1604. }
  1605. }
  1606. private void tsmHandCheck_Click(object sender, EventArgs e)
  1607. {
  1608. JObject joData = JObject.Parse(rtbCheckDetailLog.Text);
  1609. InvokeHelper invoker = new InvokeHelper();
  1610. JObject joRtn = invoker.invokeCenterService("3201", JsonHelper.setCenterInpar("3202", joData.ToString()));
  1611. }
  1612. private void btnClose_Click(object sender, EventArgs e)
  1613. {
  1614. Close();
  1615. }
  1616. private void Btn_Query_Click(object sender, EventArgs e)
  1617. {
  1618. DataTable dtInteface = (DataTable)cbxInterface.DataSource;
  1619. int i = cbxInterface.SelectedIndex;
  1620. //乘以单据类型后,IRIS会返回整数,关键不知道SQL里咋转换为浮点数
  1621. //string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt,SUM(BillType*PersonCashPay) AS cash_payamt, ";
  1622. //sqlStr = sqlStr + " SUM(BillType*AccountPaySumamt) AS acct_pay,SUM(BillType*FundPaySumamt) AS fund_pay_sumamt ";
  1623. string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt,SUM(BillType*PersonCashPay) AS cash_payamt, ";
  1624. sqlStr = sqlStr + " SUM(billType*AccountPaySumamt) AS acct_pay,SUM(BillType*FundPaySumamt) AS fund_pay_sumamt ";
  1625. //sqlStr = sqlStr + " Interface_dr,clearingWay AS clr_way,clearingType AS clr_type ";
  1626. string conditionStr = " Group By";
  1627. if (cbgGroupSet.GetItemCheckState(0))
  1628. {
  1629. sqlStr = sqlStr + ",Interface_Dr";
  1630. conditionStr = conditionStr + " Interface_Dr,";
  1631. }
  1632. if (cbgGroupSet.GetItemCheckState(1))
  1633. {
  1634. sqlStr = sqlStr + ",InsuranceType as insutype";
  1635. conditionStr = conditionStr + " InsuranceType,";
  1636. }
  1637. if (cbgGroupSet.GetItemCheckState(2))
  1638. {
  1639. sqlStr = sqlStr + ",ClearingType as clr_type";
  1640. conditionStr = conditionStr + " ClearingType,";
  1641. }
  1642. if (cbgGroupSet.GetItemCheckState(3))
  1643. {
  1644. sqlStr = sqlStr + ",ClearingOrgan as setl_optins";
  1645. conditionStr = conditionStr + " ClearingOrgan,";
  1646. }
  1647. if (cbgGroupSet.GetItemCheckState(4))
  1648. {
  1649. sqlStr = sqlStr + ",BillType";
  1650. conditionStr = conditionStr + " BillType,";
  1651. }
  1652. sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();
  1653. sqlStr = sqlStr + " and OccurTime>'" + dpST.Text + "'";
  1654. sqlStr = sqlStr + " and OccurTime<'" + dpED.Text + "'";
  1655. if (cbxInterface.Text != "")
  1656. {
  1657. sqlStr = sqlStr + " and Interface_Dr =" + dtInteface.Rows[i]["ID"].ToString();
  1658. }
  1659. if (cbxInsuType.Text != "")
  1660. {
  1661. sqlStr = sqlStr + " and InsuranceType ='" + cbxInsuType.SelectedValue + "'";
  1662. }
  1663. if (cbxClrType.Text != "")
  1664. {
  1665. sqlStr = sqlStr + " and ClearingType ='" + cbxClrType.SelectedValue + "'";
  1666. }
  1667. if (tbSettlOption.Text != "")
  1668. {
  1669. sqlStr = sqlStr + " and ClearingOrgan ='" + tbSettlOption.Text + "'";
  1670. }
  1671. //ValidFlag=1 and BillType=1 表示正常结算记录 ValidFlag=0 and BillType=-1 表示退费记录 ValidFlag=0表示无效记录
  1672. if (cbxValid.SelectedIndex != 0)
  1673. {
  1674. if (cbxValid.SelectedIndex == 1)
  1675. sqlStr = sqlStr + " and ValidFlag =1 and BillType=1";
  1676. else
  1677. sqlStr = sqlStr + " and ValidFlag =0 and BillType=-1";
  1678. }
  1679. if (Global.inf.interfaceDr == 1)
  1680. {
  1681. sqlStr = sqlStr + " and (InsuranceAreaCode='539900' or InsuranceAreaCode='530100')";
  1682. }
  1683. //conditionStr = conditionStr.Substring(0,conditionStr.Length -1 );
  1684. conditionStr = conditionStr.Remove(conditionStr.Length - 1, 1);
  1685. sqlStr = sqlStr + conditionStr;
  1686. JObject joSqlstr = new JObject();
  1687. //MessageBox.Show(sqlStr);
  1688. joSqlstr.Add("sqlStr", sqlStr);
  1689. JArray jaParam = new JArray();
  1690. jaParam.Add(joSqlstr);
  1691. JObject joSettlQuery = new JObject();
  1692. joSettlQuery.Add("params", jaParam);
  1693. joSettlQuery.Add("code", "09010061");
  1694. InvokeHelper invoker = new InvokeHelper();
  1695. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询汇总结算信息");
  1696. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  1697. dgvSettlSummary.DataSource = dt;
  1698. //初始化HIS结算明细View数据
  1699. dgvHisSettlRec.DataSource = null;
  1700. }
  1701. private void btnBatchCheck_Click(object sender, EventArgs e)
  1702. {
  1703. }
  1704. private void btnPatchClr_Click(object sender, EventArgs e)
  1705. {
  1706. }
  1707. private void cmsClearing_Opening(object sender, CancelEventArgs e)
  1708. {
  1709. }
  1710. private void dgvSettlSummary_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  1711. {
  1712. string error;
  1713. if (queryHisSettlementInfo(out error) != 0)
  1714. {
  1715. MessageBox.Show(error);
  1716. }
  1717. }
  1718. private void uiButton6_Click(object sender, EventArgs e)
  1719. {
  1720. GridViewSetter grdSetter = new GridViewSetter();
  1721. grdSetter.SetHeaderTextOfSetlSelectRec(dgv_Query);
  1722. string inNum = "";
  1723. string SetlFlag = "0";//退结算标志
  1724. if (chbg_BusinessType.GetItemCheckState(0) == true)
  1725. {
  1726. inNum = "5262";//选中本地5262结算查询
  1727. }
  1728. if (chbg_BusinessType.GetItemCheckState(1) == true)
  1729. {
  1730. inNum = "5267";//选中异地5267结算查询
  1731. }
  1732. MessageBox.Show("选择交易号" + inNum);
  1733. if (Chk_RefdSetlFlag.Checked)
  1734. {
  1735. SetlFlag = "1";
  1736. }
  1737. else {
  1738. SetlFlag = "0";
  1739. }
  1740. if ((dt_ST.Text == "") || (dt_ET.Text == "") || (tb_PageNum.Text == "") || (tb_PageSize.Text == ""))
  1741. {
  1742. MessageBox.Show("红色必填项不能为空!");
  1743. return;
  1744. }
  1745. string error;
  1746. dynamic joData = new JObject();
  1747. joData.refd_setl_flag = SetlFlag;
  1748. joData.q_begntime = dt_ST.Value.ToString("yyyy-MM-dd 00:00:00");
  1749. joData.q_endtime = dt_ET.Value.ToString("yyyy-MM-dd 00:00:00");
  1750. joData.med_type = cbxYllb.SelectedValue;
  1751. joData.page_num = tb_PageNum.Text;
  1752. joData.page_size = tb_PageSize.Text;
  1753. if (inNum== "5262"){
  1754. joData.psn_no = tb_PsnNo.Text;
  1755. joData.is_clr_flag = "0";
  1756. joData.certno = tb_Certno.Text;
  1757. }//5262本地结算信息查询可查单个患者结算信息
  1758. JObject joData2562 = new JObject();
  1759. joData2562.Add("data", joData);
  1760. //上传给中心
  1761. //先签到
  1762. CenterBusiness cBus = new CenterBusiness();
  1763. JObject jo9001Rtn = new JObject();
  1764. cBus.signIn(out jo9001Rtn);
  1765. InvokeHelper invoker = new InvokeHelper();
  1766. //JObject joRtn = invoker.invokeCenterService("5262", JsonHelper.setCenterInpar("5262", joData.ToString
  1767. JObject joRtn = invoker.invokeCenterService(inNum, JsonHelper.setCenterInpar(inNum, joData2562.ToString()));//根据动态选中获取交易号5262、5267
  1768. if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
  1769. {
  1770. MessageBox.Show("【"+inNum +"】结算信息按时间段查询失败:" + error);
  1771. return;
  1772. }
  1773. else
  1774. {
  1775. //获取页数和当前页大小
  1776. ////DataTable dt_pageInfo=new DataTable();
  1777. ////DataRow newRow = dt_pageInfo.NewRow();
  1778. ////dt_pageInfo.Columns.Add("size", Type.GetType("System.String"));
  1779. ////dt_pageInfo.Columns.Add("record_counts", Type.GetType("System.String"));
  1780. ////newRow["size"] = joRtn["output"]["page_info"]["size"].ToString();
  1781. ////newRow["record_counts"] = joRtn["output"]["page_info"]["record_counts"].ToString();
  1782. ////dt_pageInfo.Rows.Add(newRow);
  1783. ////// DataTable dt_pageInfo = (DataTable)joRtn["output"]["page_info"].ToObject(typeof(DataTable));
  1784. string pages = joRtn["output"]["page_info"]["size"].ToString(); //当前页大小
  1785. string recordCounts = joRtn["output"]["page_info"]["record_counts"].ToString(); //总记录条数
  1786. DataTable dt_result = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
  1787. if ((recordCounts == "")|| (recordCounts == "0"))
  1788. {
  1789. MessageBox.Show("查询成功,但返回结果集为空!请检查当前时间是否存在医保结算信息或查询条件是否正确!");
  1790. return;
  1791. }
  1792. // dgv_Query_Page.DataSource = dt_pageInfo;
  1793. dgv_Query.DataSource = dt_result;
  1794. dgv_Query.RowStateChanged += Dgv_Query_RowStateChanged;
  1795. }
  1796. }
  1797. private void Dgv_Query_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1798. {
  1799. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1800. }
  1801. private void chbg_BusinessType_ValueChanged(object sender, int index, string text, bool isChecked)
  1802. {
  1803. }
  1804. private void dgv_Query_Page_CellContentClick(object sender, DataGridViewCellEventArgs e)
  1805. {
  1806. }
  1807. private void dgv_Query_CellContentClick(object sender, DataGridViewCellEventArgs e)
  1808. {
  1809. }
  1810. private void cbxInsuType_SelectedIndexChanged(object sender, EventArgs e)
  1811. {
  1812. }
  1813. private void gbConditionSet_Click(object sender, EventArgs e)
  1814. {
  1815. }
  1816. private void uiButton8_Click(object sender, EventArgs e)
  1817. {
  1818. GridViewSetter grdSetter = new GridViewSetter();
  1819. grdSetter.SetHeaderTextOfSetlSelectPageRec(dgv_Query_Page);
  1820. string inNum = "";
  1821. string hisSetlFlag = "1";//退结算标志
  1822. if (chbg_BusinessType.GetItemCheckState(0) == true)
  1823. {
  1824. inNum = "5262";//选中本地5262结算查询
  1825. }
  1826. if (chbg_BusinessType.GetItemCheckState(1) == true)
  1827. {
  1828. inNum = "5267";//选中异地5267结算查询
  1829. }
  1830. MessageBox.Show("选择交易号" + inNum);
  1831. if (Chk_RefdSetlFlag.Checked)//HIS 无效标志为0,有效标志为1
  1832. {
  1833. hisSetlFlag = "0";
  1834. }
  1835. else
  1836. {
  1837. hisSetlFlag = "1";
  1838. }
  1839. if ((dt_ST.Text == "") || (dt_ET.Text == "") )
  1840. {
  1841. MessageBox.Show("开始结束时间必填项不能为空!");
  1842. return;
  1843. }
  1844. string Sqlstr = "";
  1845. if(inNum == "5262")
  1846. {//查询武汉本地结算记录
  1847. //Sqlstr = "SELECT MSGID,MdtrtID,SettlementID,PersonnelNO,PatientName,CertificateNO,Gender,InsuranceType,SettlementDateTime,MedicalType,Sumamt,FundPaySumamt," +
  1848. // " AccountPaySumamt,PersonCashPay,ClearingOrgan,ClearingType,ValidFlag,BillType FROM BS_MedInsuSettlement WHERE Hospital_Dr='18' " +
  1849. Sqlstr = "SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr='18'" +
  1850. " AND LEFT(InsuranceAreaCode,4)='4201' " +
  1851. " AND ValidFlag='" + hisSetlFlag + "'"+
  1852. " AND MedicalType='" + cbxYllb.SelectedValue + "'"+
  1853. " AND SettlementDateTime>='" + dt_ST.Value.ToString("yyyy-MM-dd HH:mm:ss") +"'"+
  1854. " AND SettlementDateTime<='" + dt_ET.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'" ;
  1855. }
  1856. else if (inNum == "5267")
  1857. {
  1858. //查询武汉异地结算记录含省本级
  1859. //Sqlstr = "SELECT MSGID,MdtrtID,SettlementID,PersonnelNO,PatientName,CertificateNO,Gender,InsuranceType,SettlementDateTime,MedicalType,Sumamt,FundPaySumamt," +
  1860. // "AccountPaySumamt,PersonCashPay,ClearingOrgan,ClearingType,ValidFlag,BillType FROM BS_MedInsuSettlement WHERE Hospital_Dr='18' " +
  1861. Sqlstr = "SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr='18'" +
  1862. "AND LEFT(InsuranceAreaCode,4)<>'4201' " +
  1863. " AND ValidFlag='" + hisSetlFlag + "'" +
  1864. " AND MedicalType='" + cbxYllb.SelectedValue + "'" +
  1865. "AND SettlementDateTime>='" + dt_ST.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'" +
  1866. " AND SettlementDateTime<='" + dt_ET.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'";
  1867. }
  1868. //查HIS结算信息
  1869. JObject joSqlstr = new JObject();
  1870. joSqlstr.Add("sqlStr", Sqlstr);
  1871. JArray jaParam = new JArray();
  1872. jaParam.Add(joSqlstr);
  1873. JObject joSettlQuery = new JObject();
  1874. joSettlQuery.Add("params", jaParam);
  1875. joSettlQuery.Add("code", "09010059");
  1876. InvokeHelper invoker = new InvokeHelper();
  1877. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
  1878. JArray ja = JArray.Parse(JsonHelper.getDestValue(joRtn, "result.data"));
  1879. DataTable His_result = (DataTable)JsonConvert.DeserializeObject(JsonHelper.getDestValue(joRtn, "result.data"), (typeof(DataTable)));
  1880. dgv_Query_Page.DataSource = His_result;
  1881. dgv_Query_Page.RowStateChanged += Dgv_Query_Page_RowStateChanged2;
  1882. }
  1883. private void Dgv_Query_Page_RowStateChanged2(object sender, DataGridViewRowStateChangedEventArgs e)
  1884. {
  1885. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1886. //throw new NotImplementedException();
  1887. }
  1888. //e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1889. private void Bdhisyb_Click(object sender, EventArgs e)
  1890. {
  1891. for (int i = 0; i < dgv_Query_Page.RowCount; i++)
  1892. {
  1893. string value = dgv_Query_Page.Rows[i].Cells["SettlementID"].Value.ToString();
  1894. string colName = "setl_id";
  1895. if (compareDataGridView(value, colName, dgv_Query) != 0)
  1896. {
  1897. dgv_Query_Page.Rows[i].DefaultCellStyle.BackColor = Color.Red;
  1898. rtbCheckDetailLog.AppendText("HIS结算ID:" + value + "在中心明细中未找到数据!" + "\r\n");
  1899. }
  1900. }
  1901. for (int i = 0; i < dgv_Query.RowCount; i++)
  1902. {
  1903. string value = dgv_Query.Rows[i].Cells["setl_id"].Value.ToString();
  1904. string colName = "SettlementID";
  1905. if (compareDataGridView(value, colName, dgv_Query_Page) != 0)
  1906. {
  1907. dgv_Query.Rows[i].DefaultCellStyle.BackColor = Color.Red;
  1908. rtbCheckDetailLog.AppendText("中心结算ID:" + value + "在HIS明细中未找到数据!" + "\r\n");
  1909. }
  1910. }
  1911. }
  1912. private void uiButton5_Click(object sender, EventArgs e)
  1913. {
  1914. }
  1915. private void uiButton9_Click(object sender, EventArgs e)
  1916. {
  1917. //先签到
  1918. CenterBusiness cBus = new CenterBusiness();
  1919. JObject jo9001Rtn = new JObject();
  1920. cBus.signIn(out jo9001Rtn);
  1921. InvokeHelper invoker = new InvokeHelper();
  1922. JObject joRtn = invoker.invokeCenterService("3205a", JsonHelper.setCenterInpar("3202a", ""));
  1923. }
  1924. }
  1925. }