DataDownload.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Business;
  3. using PTMedicalInsurance.Common;
  4. using PTMedicalInsurance.Forms.BasicDatas.services;
  5. using PTMedicalInsurance.Helper;
  6. using PTMedicalInsurance.Variables;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. using System.Data;
  11. using System.Drawing;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using System.Windows.Forms;
  16. namespace PTMedicalInsurance.Forms.BasicDatas
  17. {
  18. public partial class DataDownload : Form
  19. {
  20. private Form mainForm;
  21. private DirectroyQueryService queryService = new DirectroyQueryService();
  22. private DirectoryDownloadService downloadService = new DirectoryDownloadService();
  23. private DirectoryManualMaintainService maintainService = new DirectoryManualMaintainService();
  24. private HandMaintainedDirectoryService handMaintainService = new HandMaintainedDirectoryService();
  25. private MIIrisServices mIS = new MIIrisServices();
  26. private GridViewSetter gvdSetter = new GridViewSetter();
  27. private DataTable dtDir = new DataTable();
  28. private string errMsg = "";
  29. private int pageSize = 50;
  30. private DirectoryTypeEnum directoryType = DirectoryTypeEnum.None;
  31. private ProgressWrapper _dataLoader;
  32. ToolTip toolTip = new ToolTip();
  33. CenterBusiness cBus = new CenterBusiness();
  34. public DataDownload()
  35. {
  36. InitializeComponent();
  37. }
  38. public DataDownload(Form frm)
  39. {
  40. InitializeComponent();
  41. InitForm(frm);
  42. }
  43. #region
  44. /// <summary>
  45. /// 初始化界面
  46. /// </summary>
  47. /// <param name="frm"></param>
  48. private void InitForm(Form frm)
  49. {
  50. mainForm = frm;
  51. CheckForIllegalCrossThreadCalls = false;
  52. // 禁用关闭按钮
  53. this.FormBorderStyle = FormBorderStyle.None;
  54. // 隐藏标题栏
  55. this.ControlBox = false;
  56. // 其他可能需要的配置
  57. this.TopLevel = false;
  58. this.Dock = DockStyle.Fill; // 根据需要设置 Dock 属性
  59. //默认药品,手工输入
  60. rbSingleDownload.Checked = rbDrug.Checked = true;
  61. }
  62. #region 控件设置
  63. private void ShowControl()
  64. {
  65. switch ((int)directoryType)
  66. {
  67. case 1://药品
  68. case 2://诊疗
  69. case 3://材料
  70. case 4://疾病诊断
  71. case 5://手术
  72. case 6://慢性病
  73. case 7://DRGs
  74. case 8://日间手术
  75. case 10://中药饮片下载
  76. case 11://医药机构制剂目录下载
  77. case 12://肿瘤形态学下载
  78. case 13://中医疾病下载
  79. case 14://中医证候下载
  80. {
  81. toolTip.SetToolTip(tbCode, "请在此输入医保编码");
  82. toolTip.SetToolTip(tbName, "请在此输入医保名称");
  83. tbUpdateTime.Enabled = tbCurPage.Enabled = tbPageCount.Enabled = tbCbd.Enabled = false;
  84. break;
  85. }
  86. case 9://字典表
  87. {
  88. toolTip.SetToolTip(tbCode, "请在此输入字典编码");
  89. toolTip.SetToolTip(tbName, "请在此输入字典名称");
  90. tbUpdateTime.Enabled = true;
  91. break;
  92. }
  93. case 15://民族药品
  94. case 16://目录信息查询
  95. case 17://医疗与医保目录匹配关系查询
  96. case 18://医药机构目录匹配查询
  97. case 19://医保目录限价查询
  98. case 20://医保目录先自付比例下载
  99. {
  100. tbUpdateTime.Enabled = tbCurPage.Enabled = tbPageCount.Enabled = tbCbd.Enabled = true;
  101. break;
  102. }
  103. case 21://医药机构信息
  104. {
  105. toolTip.SetToolTip(tbCode, "请在此输入医院编码");
  106. toolTip.SetToolTip(tbName, "请在此输入医院名称,支持模糊查找!");
  107. break;
  108. }
  109. }
  110. }
  111. /// <summary>
  112. /// 控件帮助
  113. /// </summary>
  114. private void SetHelp()
  115. {
  116. // 设置帮助提供程序
  117. helpProvider1.SetShowHelp(tbCode, true);
  118. helpProvider1.SetHelpString(tbCode, "请在此输入医保编码");
  119. helpProvider1.SetShowHelp(tbUpdateTime, true);
  120. helpProvider1.SetHelpString(tbUpdateTime, "请在此输入更新时间,格式:yyyy-MM-dd");
  121. helpProvider1.HelpNamespace = $@"{Global.curEvt.path}\test.chm";
  122. }
  123. /// <summary>
  124. /// 控件检测
  125. /// </summary>
  126. /// <param name="control"></param>
  127. /// <param name="err"></param>
  128. /// <returns></returns>
  129. private bool CheckNotEmpty(Control control, string err)
  130. {
  131. if (string.IsNullOrEmpty(control.Text))
  132. {
  133. errorProvider1.SetError(control, err);
  134. return false;
  135. }
  136. return true;
  137. }
  138. #endregion
  139. #region 查询
  140. /// <summary>
  141. /// 获取查询服务接口编码
  142. /// </summary>
  143. /// <returns></returns>
  144. private string GetPaginationServiceCode()
  145. {
  146. if (rbInstitutionInformation.Checked)
  147. {
  148. return "090100XX";
  149. }
  150. else if (rbDictionary.Checked)
  151. {
  152. return "09010043";
  153. }
  154. else
  155. {
  156. return "09010042";
  157. }
  158. }
  159. /// <summary>
  160. /// 获取分页的输入参数
  161. /// </summary>
  162. /// <returns></returns>
  163. private JObject GetPaginationInfoInput(int pageSize, int currentPage)
  164. {
  165. JObject joInput = new JObject {
  166. { "currentPage" , currentPage },
  167. { "pageSize" , pageSize },
  168. { "serviceCode" ,GetPaginationServiceCode() },
  169. { "directoryType" , (int)directoryType },
  170. { "directoryCode" , tbCode.Text },
  171. { "directoryName" , tbName.Text },
  172. { "approvalNO" , "" },
  173. { "dosageForm" , "" },
  174. { "specifications" , "" },
  175. { "manufacturers" , "" },
  176. { "directoryDr" , Global.inf.interfaceDr }
  177. };
  178. return joInput;
  179. }
  180. /// <summary>
  181. /// 几个中心查询的交易组织入参
  182. /// </summary>
  183. /// <param name="Index"></param>
  184. /// <param name="funNo"></param>
  185. /// <returns></returns>
  186. private JObject GetCenterQueryInput(out TradeEnum trade)
  187. {
  188. trade = TradeEnum.MedicalServiceDirectory;
  189. dynamic joData = new JObject();
  190. switch ((int)directoryType)
  191. {
  192. case 15://民族药品目
  193. {
  194. trade = TradeEnum.NationalityDrug;
  195. joData.med_list_codg = tbCode.Text; //医疗目录编码
  196. joData.genname_codg = ""; //通用名编号
  197. joData.drug_genname = ""; //药品通用名
  198. joData.drug_prodname = tbName.Text; //药品商品名
  199. joData.reg_name = ""; //注册名称
  200. joData.tcmherb_name = ""; //中草药名称
  201. joData.mlms_name = ""; //药材名称
  202. joData.vali_flag = ""; //有效标志
  203. joData.rid = ""; //唯一记录号
  204. joData.ver = ""; //版本号
  205. joData.ver_name = ""; //版本名称
  206. joData.opt_begn_time = ""; //经办开始时间
  207. joData.opt_end_time = ""; //经办结束时间
  208. joData.updt_time = tbUpdateTime.Text; //更新时间
  209. joData.page_num = tbCurPage.Text; //当前页数
  210. joData.page_size = tbPageCount.Text; //本页数据量
  211. break;
  212. }
  213. case 16://目录信息查询
  214. {
  215. trade = TradeEnum.InsuDirectory;
  216. joData.query_date = ""; //查询时间点
  217. joData.hilist_code = tbCode.Text; //医保目录编码
  218. joData.insu_admdvs = tbCbd.Text; //参保机构医保区划
  219. joData.begndate = ""; //开始日期
  220. joData.hilist_name = tbName.Text; //医保目录名称
  221. joData.wubi = ""; //五笔助记码
  222. joData.pinyin = ""; //拼音助记码
  223. joData.med_chrgitm_type = ""; //医疗收费项目类别
  224. joData.chrgitm_lv = ""; //收费项目等级
  225. joData.lmt_used_flag = ""; //限制使用标志
  226. joData.list_type = ""; //目录类别
  227. joData.med_use_flag = ""; //医疗使用标志
  228. joData.matn_used_flag = ""; //生育使用标志
  229. joData.hilist_use_type = ""; //医保目录使用类别
  230. joData.lmt_cpnd_type = ""; //限复方使用类型
  231. joData.vali_flag = ""; //有效标志
  232. joData.updt_time = tbUpdateTime.Text; //更新时间
  233. joData.page_num = tbCurPage.Text; //当前页数
  234. joData.page_size = tbPageCount.Text; //本页数据量
  235. break;
  236. }
  237. case 17://医疗与医保目录匹配
  238. {
  239. trade = TradeEnum.MedicalAndInsuDirectory;
  240. joData.query_date = ""; //查询时间点
  241. joData.medins_list_codg = ""; //定点医药机构目录编号
  242. joData.hilist_code = tbCode.Text; //医保目录编码
  243. joData.list_type = ""; //目录类别
  244. joData.insu_admdvs = tbCbd.Text; //参保机构医保区划
  245. joData.begndate = ""; //开始日期
  246. joData.vali_flag = ""; //有效标志
  247. joData.updt_time = tbUpdateTime.Text; //更新时间
  248. joData.page_num = tbCurPage.Text; //当前页数
  249. joData.page_size = tbPageCount.Text; //本页数据量
  250. break;
  251. }
  252. case 18://医药机构目录匹配
  253. {
  254. trade = TradeEnum.MedcineOrgDirectory;
  255. joData.query_date = ""; //查询时间点
  256. joData.fixmedins_code = ""; //定点医药机构编号
  257. joData.medins_list_codg = ""; //定点医药机构目录编号
  258. joData.medins_list_name = ""; //定点医药机构目录名称
  259. joData.insu_admdvs = tbCbd.Text; //参保机构医保区划
  260. joData.list_type = ""; //目录类别
  261. joData.med_list_codg = tbCode.Text; //医疗目录编码
  262. joData.begndate = ""; //开始日期
  263. joData.vali_flag = ""; //有效标志
  264. joData.updt_time = tbUpdateTime.Text; //更新时间
  265. joData.page_num = tbCurPage.Text; //当前页数
  266. joData.page_size = tbPageCount.Text; //本页数据量
  267. break;
  268. }
  269. case 19://医保目录限价
  270. {
  271. trade = TradeEnum.InsuPriceLimitDirectory;
  272. joData.query_date = ""; //查询时间点
  273. joData.hilist_code = tbCode.Text; //医保目录编码
  274. joData.hilist_lmtpric_type = ""; //医保目录限价类型
  275. joData.overlmt_dspo_way = ""; //医保目录超限处理方式
  276. joData.insu_admdvs = tbCbd.Text; //参保机构医保区划
  277. joData.begndate = ""; //开始日期
  278. joData.enddate = ""; //结束日期
  279. joData.vali_flag = ""; //有效标志
  280. joData.rid = ""; //唯一记录号
  281. joData.tabname = ""; //表名
  282. joData.poolarea_no = ""; //统筹区
  283. joData.updt_time = tbUpdateTime.Text; //更新时间
  284. joData.page_num = tbCurPage.Text; //当前页数
  285. joData.page_size = tbPageCount.Text; //本页数据量
  286. break;
  287. }
  288. case 20://医保目录先自付比例
  289. {
  290. trade = TradeEnum.PrepayPercentDirectory;
  291. joData.query_date = ""; //查询时间点
  292. joData.hilist_code = tbCode.Text; //医保目录编码
  293. joData.selfpay_prop_psn_type = "";//医保目录自付比例人员类别
  294. joData.selfpay_prop_type = ""; //目录自付比例类别
  295. joData.insu_admdvs = tbCbd.Text; //参保机构医保区划
  296. joData.begndate = ""; //开始日期
  297. joData.enddate = ""; //结束日期
  298. joData.vali_flag = ""; //有效标志
  299. joData.rid = ""; //唯一记录号
  300. joData.tabname = ""; //表名
  301. joData.poolarea_no = ""; //统筹区
  302. joData.updt_time = tbUpdateTime.Text; //更新时间
  303. joData.page_num = tbCurPage.Text; //当前页数
  304. joData.page_size = tbPageCount.Text; //本页数据量
  305. break;
  306. }
  307. case 21://医药机构信息
  308. {
  309. trade = TradeEnum.MedicalOrgination;
  310. joData.fixmedins_type = "1"; //定点医疗服务机构类型 1定点医疗机构,2定点零售药店,3工伤定点康复机构,4辅助器具配置机构,5计划生育服务机构
  311. joData.fixmedins_name = tbName.Text; //定点医药机构名称
  312. joData.fixmedins_code = ""; //定点医药机构编号
  313. break;
  314. }
  315. }
  316. return joData;
  317. }
  318. /// <summary>
  319. /// 获取目录类型,跟表结构设定尽量一致
  320. /// </summary>
  321. /// <returns></returns>
  322. private DirectoryTypeEnum GetDirecotryType()
  323. {
  324. if (rbDrug.Checked) return DirectoryTypeEnum.Drug;
  325. if (rbMedicalServices.Checked) return DirectoryTypeEnum.MedicalService;
  326. if (rbConsumables.Checked) return DirectoryTypeEnum.Consumables;
  327. if (rbDiagnosis.Checked) return DirectoryTypeEnum.DiseaseDiagnosis;
  328. if (rbSurgery.Checked) return DirectoryTypeEnum.Surgery;
  329. if (rbChronicSpecialDiseases.Checked) return DirectoryTypeEnum.OutpatientChronicDiseases;
  330. if (rbDrgs.Checked) return DirectoryTypeEnum.Drgs;
  331. if (rbDaySurgery.Checked) return DirectoryTypeEnum.DaySurgery;
  332. if (rbDictionary.Checked) return DirectoryTypeEnum.Dictionary;
  333. if (rbChineseHerbalPieces.Checked) return DirectoryTypeEnum.ChineseHerbalPieces;
  334. if (rbHospMadeMedicines.Checked) return DirectoryTypeEnum.HospMadeMedicines;
  335. if (rbEthnicMedicines.Checked) return DirectoryTypeEnum.EthnicMedicine;
  336. if (rbTumorMorphology.Checked) return DirectoryTypeEnum.TumorMorphology;
  337. if (rbTCMDiseaseCatalog.Checked) return DirectoryTypeEnum.TcmDisease;
  338. if (rbTCMSyndromeCatalog.Checked) return DirectoryTypeEnum.TcmSyndrome;
  339. if (rbInstitutionInformation.Checked) return DirectoryTypeEnum.InstitutionInformation;
  340. if (rbDirectoryInformationInquiry.Checked) return DirectoryTypeEnum.DirectoryInformationQuery;
  341. if (rbMedicalAndHealthInsuranceDirectoryMatching.Checked) return DirectoryTypeEnum.MedicalAndHealthInsuranceDirectoryMatching;
  342. if (rbHealthcareInstitutionDirectoryMatching.Checked) return DirectoryTypeEnum.MedicalInsuranceDirectoryMatch;
  343. if (rbPriceLimits.Checked) return DirectoryTypeEnum.PriceLimit;
  344. if (rbSelfPaymentRatio.Checked) return DirectoryTypeEnum.SelfPayRate;
  345. return DirectoryTypeEnum.None;
  346. }
  347. /// <summary>
  348. /// 校验查询条件
  349. /// </summary>
  350. /// <returns>是否通过验证</returns>
  351. private bool ValidateQueryConditions(out string error)
  352. {
  353. error = "";
  354. if ((int)directoryType > 14)
  355. {
  356. if ((int)directoryType != 21)
  357. {
  358. //if (!CheckNotEmpty(tbUpdateTime, "请输入日期,更新日期不能为空")) result = false;
  359. //if (!CheckNotEmpty(tbCurPage, "请输入当前页数!")) result = false;
  360. //if (!CheckNotEmpty(tbPageCount, "请输入本页数据量,每页条数必须大于0!")) result = false;
  361. if (tbUpdateTime.Text == "")
  362. {
  363. error = "请输入日期,更新日期不能为空";
  364. tbUpdateTime.Focus();
  365. return false;
  366. }
  367. if (tbCurPage.Text == "")
  368. {
  369. error = "请输入当前页数!";
  370. tbCurPage.Focus();
  371. return false;
  372. }
  373. if (tbPageCount.Text == "")
  374. {
  375. error = "请输入本页数据量,每页条数必须大于0!";
  376. tbPageCount.Focus();
  377. return false;
  378. }
  379. }
  380. else
  381. {
  382. if (string.IsNullOrEmpty(tbCode.Text) && tbName.Text == "")
  383. {
  384. tbCode.Focus();
  385. error = "医院编码或医院名称不可同时为空!";
  386. return false;
  387. }
  388. }
  389. }
  390. return true;
  391. }
  392. /// <summary>
  393. /// 查询分页信息封装
  394. /// </summary>
  395. /// <param name="currentPage">当前页</param>
  396. /// <param name="error"></param>
  397. /// <returns></returns>
  398. private int QueryPaginationInfo(int currentPage, out string error)
  399. {
  400. dgvDirectory.DataSource = null;
  401. //获取入参
  402. JObject input = GetPaginationInfoInput(pageSize, currentPage);
  403. ////校验入参
  404. //if (!ValidateQueryConditions(out error))
  405. //{
  406. // return -1;
  407. //}
  408. ////设置表格标题行
  409. //queryService.SetDgvDirectoryHeader((int)directoryType, dgvDirectory);
  410. //查询分页
  411. if (queryService.QueryMIDirectoryPaginationInfo(input, out error) != 0)
  412. {
  413. MessageBox.Show(error);
  414. return -1;
  415. }
  416. JObject joRtn = JObject.Parse(error);
  417. JArray ja = JArray.FromObject(joRtn["result"]["rows"]);
  418. //处理数据
  419. queryService.HandleDatatable((int)directoryType, ja);
  420. dtDir = (DataTable)ja.ToObject(typeof(DataTable));
  421. int totalCount = int.Parse(joRtn["result"]["total"].ToString());
  422. pgDownload.TotalCount = totalCount;
  423. pgDownload.PageSize = pageSize;
  424. dgvDirectory.DataSource = dtDir;
  425. return 0;
  426. }
  427. private int QueryCenterInfo(out string error)
  428. {
  429. string pages, recordCounts;
  430. error = "";
  431. dynamic joData = GetCenterQueryInput( out TradeEnum trade);
  432. JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(trade, joData);
  433. if (joRtn["infcode"].ToString() == "0")
  434. {
  435. DataTable dt;
  436. if ((int)directoryType == 21)
  437. {
  438. dt = (DataTable)joRtn["output"]["medinsinfo"].ToObject(typeof(DataTable));
  439. if (joRtn["output"]["medinsinfo"].ToString() == "")
  440. {
  441. error = "查询成功,但返回结果集为空!";
  442. return -1;
  443. }
  444. pgDownload.TotalCount = 50;
  445. pgDownload.PageSize = pageSize;
  446. }
  447. else
  448. {
  449. pages = joRtn["output"]["pages"].ToString(); //页数
  450. recordCounts = joRtn["output"]["recordCounts"].ToString(); //总记录条数
  451. dt = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
  452. if (recordCounts == "0")
  453. {
  454. error = "查询成功,但返回结果集为空!";
  455. return -1;
  456. }
  457. pgDownload.TotalCount = int.Parse(recordCounts);
  458. pgDownload.PageSize = int.Parse(tbPageCount.Text);
  459. }
  460. dgvDirectory.DataSource = dt;
  461. dgvDirectory.Columns[0].ReadOnly = true;
  462. return 0;
  463. }
  464. else
  465. {
  466. error = "调用交易" + trade.GetCode() + "出现错误,请查看日志!"; //joImportRtn["errorMessage"].ToString();
  467. return -1;
  468. }
  469. }
  470. private int Query(int currentPage, out string error)
  471. {
  472. //校验入参
  473. if (!ValidateQueryConditions(out error))
  474. {
  475. return -1;
  476. }
  477. //设置表格标题行
  478. queryService.SetDgvDirectoryHeader((int)directoryType, dgvDirectory);
  479. if ((int)directoryType <= 14)
  480. {
  481. //查询医院本地医保平台数据库分页信息
  482. return QueryPaginationInfo(currentPage, out error);
  483. }
  484. else
  485. {
  486. //查询中心目录信息
  487. return QueryCenterInfo( out error);
  488. }
  489. }
  490. private void rbDirecotryType_CheckChanged(object sender, EventArgs e)
  491. {
  492. directoryType = GetDirecotryType();
  493. ShowControl();
  494. }
  495. #endregion
  496. #region 下载
  497. /// <summary>
  498. /// 校验下载条件
  499. /// </summary>
  500. /// <returns>是否通过验证</returns>
  501. private bool ValidateDownloadConditions(out string error)
  502. {
  503. error = "";
  504. if ((int)directoryType == 9)
  505. {
  506. if (tbUpdateTime.Text == "")
  507. {
  508. error = "请输入日期,更新日期不能为空";
  509. tbUpdateTime.Focus();
  510. return false;
  511. }
  512. }
  513. else if ((int)directoryType > 14)
  514. {
  515. if ((int)directoryType != 21)
  516. {
  517. if (tbUpdateTime.Text == "")
  518. {
  519. error = "请输入日期,更新日期不能为空";
  520. tbUpdateTime.Focus();
  521. return false;
  522. }
  523. if (tbCurPage.Text == "")
  524. {
  525. error = "请输入当前页数!";
  526. tbCurPage.Focus();
  527. return false;
  528. }
  529. if (tbPageCount.Text == "")
  530. {
  531. error = "请输入本页数据量,每页条数必须大于0!";
  532. tbPageCount.Focus();
  533. return false;
  534. }
  535. }
  536. else
  537. {
  538. if (string.IsNullOrEmpty(tbCode.Text) || tbName.Text == "")
  539. {
  540. tbCode.Focus();
  541. error = "医院编码或医院名称不可同时为空!";
  542. return false;
  543. }
  544. }
  545. }
  546. return true;
  547. }
  548. private JObject GetDiconaryDownloadInput()
  549. {
  550. dynamic joData = new JObject();
  551. joData.type = tbCode.Text; //字典类型
  552. joData.parentValue = ""; //父字典键值
  553. joData.admdvs = Global.inf.areaCode; //行政区划 就医地
  554. joData.date = tbUpdateTime.Text; //查询日期
  555. joData.vali_flag = "1"; //有效标志
  556. return JObject.FromObject(joData);
  557. }
  558. private int Download(out string error)
  559. {
  560. if (!ValidateDownloadConditions(out error))
  561. {
  562. return -1;
  563. }
  564. if (rbDictionary.Checked)
  565. {
  566. //// 支持批量
  567. //string[] dictText = tbCode.Text.Trim().Split(",".ToCharArray());
  568. //dictText.ToList().ForEach((dict) =>
  569. //{
  570. // dynamic joData = new JObject();
  571. // joData.type = dict; //字典类型
  572. // joData.parentValue = ""; //父字典键值
  573. // joData.admdvs = Global.inf.areaCode; //行政区划 就医地
  574. // joData.date = tbUpdateTime.Text; //查询日期
  575. // joData.vali_flag = "1"; //有效标志
  576. // return downloadService.DownloadDictionary(input, "", out errMsg);
  577. //});
  578. dynamic joData = new JObject();
  579. joData.type = tbCode.Text; //字典类型
  580. joData.parentValue = ""; //父字典键值
  581. joData.admdvs = Global.inf.areaCode; //行政区划 就医地
  582. joData.date = tbUpdateTime.Text; //查询日期
  583. joData.vali_flag = "1"; //有效标志
  584. if (downloadService.DownloadDictionary(joData, tbCode.Text, out errMsg) == 0)
  585. {
  586. MessageBox.Show($"{tbCode.Text}下载成功!");
  587. return 0;
  588. }
  589. else
  590. {
  591. MessageBox.Show($"{tbCode.Text}下载失败!{errMsg}");
  592. return -1;
  593. }
  594. }
  595. else
  596. {
  597. if (rbSingleDownload.Checked)
  598. {
  599. return downloadService.SingleDownload(tbVersionNO.Text,directoryType,this,out errMsg);
  600. }
  601. else
  602. {
  603. return downloadService.LoopDownload(tbVersionNO.Text, directoryType, this, out errMsg);
  604. }
  605. }
  606. }
  607. #endregion
  608. #region 手动维护目录
  609. #endregion
  610. #endregion
  611. private void btnExit_Click(object sender, EventArgs e)
  612. {
  613. mainForm.Close();
  614. }
  615. private void btQuery_Click(object sender, EventArgs e)
  616. {
  617. if (Query(1,out errMsg) != 0)
  618. {
  619. MessageBox.Show(errMsg);
  620. }
  621. }
  622. private void pgDownload_PageChanged(object sender, object pagingSource, int pageIndex, int count)
  623. {
  624. if (Query(pageIndex, out errMsg) != 0)
  625. {
  626. MessageBox.Show(errMsg);
  627. }
  628. }
  629. private void btExit_Click(object sender, EventArgs e)
  630. {
  631. mainForm.Close();
  632. }
  633. private void btDownload_Click(object sender, EventArgs e)
  634. {
  635. if (Download(out errMsg) != 0)
  636. {
  637. MessageBox.Show(errMsg);
  638. }
  639. }
  640. private void btBatchUpdateAuxInfo_Click(object sender, EventArgs e)
  641. {
  642. }
  643. private void btnGetMaxVersion_Click(object sender, EventArgs e)
  644. {
  645. JObject joMaxVerNO = mIS.getDirectoryMaxVersionNO((int)directoryType - 1);
  646. string ver = joMaxVerNO["result"]["MaxVersionNO"].ToString();
  647. tbVersionNO.Text = ver;
  648. }
  649. private void btModify_Click(object sender, EventArgs e)
  650. {
  651. if (handMaintainService.Update(directoryType, dgvDirectory, out errMsg) != 0)
  652. {
  653. MessageBox.Show(errMsg);
  654. }
  655. else
  656. {
  657. MessageBox.Show("修改成功!");
  658. }
  659. }
  660. private void btAdd_Click(object sender, EventArgs e)
  661. {
  662. if (handMaintainService.Add(directoryType, out errMsg) != 0)
  663. {
  664. MessageBox.Show(errMsg);
  665. }
  666. else
  667. {
  668. MessageBox.Show("新增成功!");
  669. }
  670. }
  671. }
  672. }