DataDownload.cs 28 KB

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