DirectoryMap.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719
  1. 
  2. using Newtonsoft.Json.Linq;
  3. using PTMedicalInsurance.Business;
  4. using PTMedicalInsurance.Common;
  5. using PTMedicalInsurance.Forms.BasicDatas.services;
  6. using PTMedicalInsurance.Helper;
  7. using PTMedicalInsurance.Variables;
  8. using Sunny.UI;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.IO;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. using System.Windows.Forms;
  19. using DataTable = System.Data.DataTable;
  20. using Global = PTMedicalInsurance.Variables.Global;
  21. namespace PTMedicalInsurance.Forms.BasicDatas
  22. {
  23. public partial class DirectoryMap : Form
  24. {
  25. private Form mainForm;
  26. MIIrisServices mIS = new MIIrisServices();
  27. private HisDirectoryCategoryEnum hisDirectoryCategory;
  28. private MapFlagEnum mapFlag;
  29. private int pageSize = 50;
  30. private int currentPage = 1;
  31. private string sortColumn = "Code";
  32. private DirectoryMapService directoryMapService = new DirectoryMapService();
  33. private GridViewSetter gvdSetter = new GridViewSetter();
  34. private string errMsg;
  35. private string directoryCategoryDesc; //目录大类中文说明,配合目录导出使用
  36. private string mapFlagDesc; //对照标志中文说明,配合目录导出使用
  37. public DirectoryMap()
  38. {
  39. InitializeComponent();
  40. }
  41. public DirectoryMap(Form frm)
  42. {
  43. InitializeComponent();
  44. InitForm(frm);
  45. }
  46. /// <summary>
  47. /// 标题设置映射字典
  48. /// </summary>
  49. private Dictionary<HisDirectoryCategoryEnum, string> miDirHeaderTextJsonFileMap = new Dictionary<HisDirectoryCategoryEnum, string>
  50. {
  51. { HisDirectoryCategoryEnum.none, "Map_MiDir_Default.json" }, //对照界面中心目录药品
  52. { HisDirectoryCategoryEnum.drugs, "Map_MiDir_Drug.json" }, //对照界面中心目录药品
  53. { HisDirectoryCategoryEnum.diagnosi, "Map_MiDir_MedicalService.json" },//对照界面中心目录诊疗
  54. { HisDirectoryCategoryEnum.consumables, "Map_MiDir_Consumables.json" },//对照界面中心目录材料
  55. };
  56. /// <summary>
  57. /// 标题设置映射字典
  58. /// </summary>
  59. private Dictionary<HisDirectoryCategoryEnum, string> hisDirHeaderTextJsonFileMap = new Dictionary<HisDirectoryCategoryEnum, string>
  60. {
  61. { HisDirectoryCategoryEnum.none, "Map_HisDir_Default.json" }, //对照界面中心目录药品
  62. { HisDirectoryCategoryEnum.drugs, "Map_HisDir_Drug.json" }, //对照界面HIS目录药品
  63. { HisDirectoryCategoryEnum.diagnosi, "Map_HisDir_MedicalService.json" },//对照界面HIS目录诊疗
  64. { HisDirectoryCategoryEnum.consumables, "Map_HisDir_Consumables.json" },//对照界面HIS目录材料
  65. };
  66. private void InitForm(Form frm)
  67. {
  68. mainForm = frm;
  69. CheckForIllegalCrossThreadCalls = false;
  70. // 禁用关闭按钮
  71. this.FormBorderStyle = FormBorderStyle.None;
  72. // 隐藏标题栏
  73. this.ControlBox = false;
  74. // 其他可能需要的配置
  75. this.TopLevel = false;
  76. this.Dock = DockStyle.Fill; // 根据需要设置 Dock 属性
  77. //
  78. rbgDirecType_C.SelectedIndex = 0;
  79. rbOnlyName.Checked = rbAll.Checked = true;
  80. //
  81. gvdSetter.SetHeaderTextOfMapping_HisDirectory(dgvHISDirectory);
  82. //
  83. dgvCenterDirectory.DataError += directoryMapService.dataGridView_DataError;
  84. }
  85. #region
  86. #region 控件设置
  87. private void SetHisDirectoryCategory()
  88. {
  89. switch (rbgDirecType_C.SelectedIndex)
  90. {
  91. case 0:
  92. hisDirectoryCategory = HisDirectoryCategoryEnum.drugs;
  93. directoryCategoryDesc = "药品";
  94. break;
  95. case 1:
  96. hisDirectoryCategory = HisDirectoryCategoryEnum.diagnosi;
  97. directoryCategoryDesc = "诊疗";
  98. break;
  99. case 2:
  100. hisDirectoryCategory = HisDirectoryCategoryEnum.consumables;
  101. directoryCategoryDesc = "材料";
  102. break;
  103. default:
  104. hisDirectoryCategory = HisDirectoryCategoryEnum.none;
  105. break;
  106. }
  107. }
  108. private void SetMapFlag()
  109. {
  110. if (rbAll.Checked)
  111. {
  112. mapFlag = MapFlagEnum.All;
  113. mapFlagDesc = "全部";
  114. sortColumn = "Code";
  115. }
  116. else if (rbMaped.Checked)
  117. {
  118. mapFlag = MapFlagEnum.Mapped;
  119. mapFlagDesc = "已对照";
  120. sortColumn = "HisCode";
  121. }
  122. else if (rbNoMaped.Checked)
  123. {
  124. mapFlag = MapFlagEnum.NoMapped;
  125. mapFlagDesc = "未对照";
  126. sortColumn = "Code";
  127. }
  128. else
  129. {
  130. mapFlag = MapFlagEnum.None;
  131. mapFlagDesc = "未知";
  132. sortColumn = "Code";
  133. }
  134. }
  135. #endregion
  136. #region 获取入参
  137. private JObject GetHisDirInput()
  138. {
  139. JArray jaPagination = new JArray();
  140. JArray jaParams = new JArray();
  141. string flag = "All";
  142. dynamic joParam = new JObject();
  143. joParam.code = "";
  144. joParam.descripts = "";
  145. joParam.FindType = new JArray();
  146. joParam.TypeID = "";
  147. joParam.alias = tbHISDirectoryFilter.Text;
  148. joParam.include = "Hosp";
  149. joParam.groupID = "324";
  150. joParam.hospID = Global.inf.hisHospitalDr;
  151. joParam.interfaceDr = Global.inf.interfaceDr;
  152. joParam.type = hisDirectoryCategory.ToString() ;
  153. joParam.flag = mapFlag.ToString();
  154. joParam.specInput = txtSpecFilter.Text.Trim();
  155. jaParams.Add(joParam);
  156. dynamic joPagination = new JObject();
  157. joPagination.pageSize = pageSize;
  158. //joPagination.pageSize = 2;
  159. joPagination.currentPage = currentPage;
  160. joPagination.sortColumn = sortColumn;
  161. joPagination.sortOrder = "asc";
  162. jaPagination.Add(joPagination);
  163. JObject joRtn = new JObject();
  164. joRtn.Add("params", jaParams);
  165. joRtn.Add("pagination",jaPagination);
  166. return joRtn;
  167. }
  168. private JObject GetInsuDirInput()
  169. {
  170. JObject joInput = new JObject {
  171. { "currentPage" , currentPage },
  172. { "pageSize" , pageSize },
  173. { "serviceCode" , "09010042" },
  174. { "directoryType" , (int)hisDirectoryCategory },
  175. { "directoryCode" , tbInsuCode.Text },
  176. { "directoryName" , tbCenterDirectoryFilter.Text },
  177. { "approvalNO" , tbApprovalNO.Text },
  178. { "dosageForm" , tbDosageForm.Text },
  179. { "specifications" , tbSpecifications.Text },
  180. { "manufacturers" , tbManufacturer.Text },
  181. { "directoryDr" , Global.inf.interfaceDr }
  182. };
  183. return joInput;
  184. }
  185. /// <summary>
  186. /// 获取更新医保信息的入参
  187. /// </summary>
  188. /// <param name="Index"></param>
  189. /// <param name="frm"></param>
  190. /// <param name="trade"></param>
  191. /// <returns></returns>
  192. private JObject GetUpdateInsuInfoInput(int Index, UpdateDirecotryCondition frm, out TradeEnum trade)
  193. {
  194. trade = TradeEnum.MedicalServiceDirectory;
  195. dynamic joData = new JObject();
  196. switch (Index)
  197. {
  198. case 14://民族药品目
  199. {
  200. trade = TradeEnum.NationalityDrug;
  201. joData.med_list_codg = frm.Code; //医疗目录编码
  202. joData.genname_codg = ""; //通用名编号
  203. joData.drug_genname = ""; //药品通用名
  204. joData.drug_prodname = frm.Name; //药品商品名
  205. joData.reg_name = ""; //注册名称
  206. joData.tcmherb_name = ""; //中草药名称
  207. joData.mlms_name = ""; //药材名称
  208. joData.vali_flag = ""; //有效标志
  209. joData.rid = ""; //唯一记录号
  210. joData.ver = ""; //版本号
  211. joData.ver_name = ""; //版本名称
  212. joData.opt_begn_time = ""; //经办开始时间
  213. joData.opt_end_time = ""; //经办结束时间
  214. joData.updt_time = frm.UpdateTime; //更新时间
  215. joData.page_num = frm.CurrentPage; //当前页数
  216. joData.page_size = frm.PageSize; //本页数据量
  217. break;
  218. }
  219. case 15://目录信息查询
  220. {
  221. trade = TradeEnum.InsuDirectory;
  222. joData.query_date = ""; //查询时间点
  223. joData.hilist_code = frm.Code; //医保目录编码
  224. joData.insu_admdvs = frm.InsuAdmDvs; //参保机构医保区划
  225. joData.begndate = ""; //开始日期
  226. joData.hilist_name = frm.Name; //医保目录名称
  227. joData.wubi = ""; //五笔助记码
  228. joData.pinyin = ""; //拼音助记码
  229. joData.med_chrgitm_type = ""; //医疗收费项目类别
  230. joData.chrgitm_lv = ""; //收费项目等级
  231. joData.lmt_used_flag = ""; //限制使用标志
  232. joData.list_type = ""; //目录类别
  233. joData.med_use_flag = ""; //医疗使用标志
  234. joData.matn_used_flag = ""; //生育使用标志
  235. joData.hilist_use_type = ""; //医保目录使用类别
  236. joData.lmt_cpnd_type = ""; //限复方使用类型
  237. joData.vali_flag = ""; //有效标志
  238. joData.updt_time = frm.UpdateTime; //更新时间
  239. joData.page_num = frm.CurrentPage; //当前页数
  240. joData.page_size = frm.PageSize; //本页数据量
  241. break;
  242. }
  243. case 16://医疗与医保目录匹配
  244. {
  245. trade = TradeEnum.MedicalAndInsuDirectory;
  246. joData.query_date = ""; //查询时间点
  247. joData.medins_list_codg = ""; //定点医药机构目录编号
  248. joData.hilist_code = frm.Code; //医保目录编码
  249. joData.list_type = ""; //目录类别
  250. joData.insu_admdvs = frm.InsuAdmDvs; //参保机构医保区划
  251. joData.begndate = ""; //开始日期
  252. joData.vali_flag = ""; //有效标志
  253. joData.updt_time = frm.UpdateTime; //更新时间
  254. joData.page_num = frm.CurrentPage; //当前页数
  255. joData.page_size = frm.PageSize; //本页数据量
  256. break;
  257. }
  258. case 17://医药机构目录匹配
  259. {
  260. trade = TradeEnum.MedcineOrgDirectory;
  261. joData.query_date = ""; //查询时间点
  262. joData.fixmedins_code = ""; //定点医药机构编号
  263. joData.medins_list_codg = ""; //定点医药机构目录编号
  264. joData.medins_list_name = ""; //定点医药机构目录名称
  265. joData.insu_admdvs = frm.InsuAdmDvs; //参保机构医保区划
  266. joData.list_type = ""; //目录类别
  267. joData.med_list_codg = frm.Code; //医疗目录编码
  268. joData.begndate = ""; //开始日期
  269. joData.vali_flag = ""; //有效标志
  270. joData.updt_time = frm.UpdateTime; //更新时间
  271. joData.page_num = frm.CurrentPage; //当前页数
  272. joData.page_size = frm.PageSize; //本页数据量
  273. break;
  274. }
  275. case 18://医保目录限价
  276. {
  277. trade = TradeEnum.InsuPriceLimitDirectory;
  278. joData.query_date = ""; //查询时间点
  279. joData.hilist_code = frm.Code; //医保目录编码
  280. joData.hilist_lmtpric_type = ""; //医保目录限价类型
  281. joData.overlmt_dspo_way = ""; //医保目录超限处理方式
  282. joData.insu_admdvs = frm.InsuAdmDvs; //参保机构医保区划
  283. joData.begndate = ""; //开始日期
  284. joData.enddate = ""; //结束日期
  285. joData.vali_flag = ""; //有效标志
  286. joData.rid = ""; //唯一记录号
  287. joData.tabname = ""; //表名
  288. joData.poolarea_no = ""; //统筹区
  289. joData.updt_time = frm.UpdateTime; //更新时间
  290. joData.page_num = frm.CurrentPage; //当前页数
  291. joData.page_size = frm.PageSize; //本页数据量
  292. break;
  293. }
  294. case 19://医保目录先自付比例
  295. {
  296. trade = TradeEnum.PrepayPercentDirectory;
  297. joData.query_date = ""; //查询时间点
  298. joData.hilist_code = frm.Code; //医保目录编码
  299. joData.selfpay_prop_psn_type = "";//医保目录自付比例人员类别
  300. joData.selfpay_prop_type = ""; //目录自付比例类别
  301. joData.insu_admdvs = frm.InsuAdmDvs; //参保机构医保区划
  302. joData.begndate = ""; //开始日期
  303. joData.enddate = ""; //结束日期
  304. joData.vali_flag = ""; //有效标志
  305. joData.rid = ""; //唯一记录号
  306. joData.tabname = ""; //表名
  307. joData.poolarea_no = ""; //统筹区
  308. joData.updt_time = frm.UpdateTime; //更新时间
  309. joData.page_num = frm.CurrentPage; //当前页数
  310. joData.page_size = frm.PageSize; //本页数据量
  311. break;
  312. }
  313. }
  314. return joData;
  315. }
  316. #endregion
  317. #region 查询
  318. private void QueryDirectory()
  319. {
  320. JObject joRtn = directoryMapService.QueryDirectory(GetHisDirInput(), mapFlag);
  321. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  322. {
  323. MessageBox.Show(errMsg);
  324. }
  325. else
  326. {
  327. DataTable dt = (DataTable)joRtn["result"]["Data"].ToObject(typeof(DataTable));
  328. int totalCount = int.Parse(joRtn["result"]["TotalCount"].ToString());
  329. pgHISDirect.TotalCount = totalCount;
  330. pgHISDirect.PageSize = pageSize;
  331. dgvHISDirectory.DataSource = dt;
  332. if (directoryMapService.SetDgvDirectoryHeader(hisDirHeaderTextJsonFileMap.GetValue(hisDirectoryCategory), dgvHISDirectory, out errMsg) != 0)
  333. {
  334. MessageBox.Show(errMsg);
  335. return;
  336. }
  337. dgvHISDirectory.Columns[0].ReadOnly = true;
  338. }
  339. }
  340. private void QueryMiDirectory()
  341. {
  342. JObject joRtn = directoryMapService.QueryMiDirectory(GetInsuDirInput());
  343. if (joRtn["errorCode"].ToString() != "0")
  344. {
  345. MessageBox.Show("IRIS数据返回错误:" + joRtn["errorMessage"].ToString());
  346. return;
  347. }
  348. if (joRtn["result"]["rows"] == null)
  349. {
  350. MessageBox.Show("该节点不存在");
  351. return;
  352. }
  353. if (joRtn["result"]["total"].ToString() == "0")
  354. {
  355. MessageBox.Show("未查询到数据");
  356. dgvCenterDirectory.DataSource = null;
  357. return;
  358. }
  359. DataTable dt = (DataTable)joRtn["result"]["rows"].ToObject(typeof(DataTable));
  360. int totalCount = int.Parse(joRtn["result"]["total"].ToString());
  361. pgCenterDirect.TotalCount = totalCount;
  362. pgCenterDirect.PageSize = pageSize;
  363. dgvCenterDirectory.DataSource = dt;
  364. if (directoryMapService.SetDgvDirectoryHeader(miDirHeaderTextJsonFileMap.GetValue(hisDirectoryCategory), dgvCenterDirectory, out errMsg) != 0)
  365. {
  366. MessageBox.Show(errMsg);
  367. return;
  368. }
  369. dgvCenterDirectory.Columns[0].ReadOnly = true;
  370. }
  371. #endregion
  372. #region 对照
  373. private void Mapping()
  374. {
  375. int iHis = dgvHISDirectory.CurrentRow.Index;
  376. if (dgvCenterDirectory.CurrentRow == null)
  377. {
  378. MessageBox.Show("请查询中心目录");
  379. return;
  380. }
  381. int iCenter = dgvCenterDirectory.CurrentRow.Index;
  382. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  383. DataTable dtCenter = (DataTable)dgvCenterDirectory.DataSource;
  384. dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Code"].Value.ToString();
  385. dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Name"].Value.ToString();
  386. JArray jaParams = new JArray();
  387. dynamic jsonTemp = new JObject();
  388. jsonTemp.ID = dtHis.Rows[iHis]["MapID"];
  389. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  390. jsonTemp.updateUserID = Global.user.ID;
  391. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  392. jsonTemp.HISCode = dgvHISDirectory.Rows[iHis].Cells["itemCode"].Value;
  393. jsonTemp.HISName = dgvHISDirectory.Rows[iHis].Cells["itemDesc"].Value;
  394. jsonTemp.ChargeItemDr = dtHis.Rows[iHis]["ID"];
  395. jsonTemp.DiretoryDr = dtCenter.Rows[iCenter]["medInsuDirectoryID"];
  396. //1.已对照 2.已对照但未上传 3 已对照且已上传
  397. jsonTemp.State = 1;
  398. jsonTemp.HisType = (int)hisDirectoryCategory;
  399. jsonTemp.HisTypeName = rbgDirecType_C.Items[(int)hisDirectoryCategory - 1].ToString();
  400. jsonTemp.InsuCode = dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Code"].Value;
  401. jsonTemp.InsuName = dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Name"].Value;
  402. jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  403. jaParams.Add(jsonTemp);
  404. JObject joIn = new JObject();
  405. joIn.Add(new JProperty("params", jaParams));
  406. joIn.Add("code", "09010040");
  407. InvokeHelper invoker = new InvokeHelper();
  408. JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "插入对照信息");
  409. //JObject joRtn = JObject.Parse(irisRtn);
  410. if ((int)joRtn["errorCode"] == 0)
  411. {
  412. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "已对照";
  413. dgvHISDirectory.Rows[iHis].Cells["MapID"].Value =joRtn["data"]["mapID"].ToString();
  414. dtHis.Rows[iHis]["MapID"] = joRtn["data"]["mapID"].ToString();
  415. }
  416. else
  417. {
  418. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "对照失败";
  419. }
  420. }
  421. private void CancelMapping()
  422. {
  423. int iHis = dgvHISDirectory.CurrentRow.Index;
  424. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  425. JArray jaParams = new JArray();
  426. dynamic jsonTemp = new JObject();
  427. jsonTemp.ID = dtHis.Rows[iHis]["MapID"];
  428. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  429. jsonTemp.updateUserID = Global.user.ID;
  430. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  431. jsonTemp.HISCode = dgvHISDirectory.Rows[iHis].Cells["itemCode"].Value;
  432. jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  433. jaParams.Add(jsonTemp);
  434. JObject joIn = new JObject();
  435. joIn.Add(new JProperty("params", jaParams));
  436. joIn.Add("code", "09010041");
  437. InvokeHelper invoker = new InvokeHelper();
  438. JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "取消对照");
  439. if ((int)joRtn["errorCode"] == 0)
  440. {
  441. dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = "";
  442. dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = "";
  443. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "";
  444. dgvHISDirectory.Rows[iHis].Cells["MapID"].Value = 0;
  445. }
  446. else
  447. {
  448. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "取消失败";
  449. }
  450. }
  451. #endregion
  452. #region 导出
  453. private int queryExportData_CallBack(DataLoaderContext context, out string errMsg)
  454. {
  455. errMsg = "";
  456. return 0;
  457. }
  458. #endregion
  459. #region 批量更新
  460. private void batchUpdateMappedInsuInfo(int index)
  461. {
  462. //获取入参条件
  463. TradeEnum trade;
  464. JObject joCondition = new JObject();
  465. UpdateDirecotryCondition updateDirecotryCondition = new UpdateDirecotryCondition();
  466. if (updateDirecotryCondition.ShowDialog() == DialogResult.Cancel)
  467. {
  468. //MessageBox.Show("");
  469. return;
  470. }
  471. else
  472. {
  473. joCondition = GetUpdateInsuInfoInput(index,updateDirecotryCondition,out trade);
  474. joCondition.Add("funno", trade.GetCode());
  475. }
  476. //查表
  477. string sqlStr = $"select * from HB_MedInsuMapRelation where Interface_Dr='{Global.inf.interfaceDr}' and Hospital_Dr ='{Global.inf.hospitalDr}'";
  478. JObject joSqlstr = new JObject();
  479. joSqlstr.Add("sqlStr", sqlStr);
  480. JObject joRtn = mIS.QueryMappedData(joSqlstr, "查询所有已对照数据");
  481. JObject joResult = JObject.FromObject(joRtn["result"]);
  482. joResult.Add("condition", joCondition);
  483. directoryMapService.batchUpdateMappedInsuInfo(joResult, this);
  484. }
  485. #endregion
  486. #endregion
  487. private void btTripMenu_Click(object sender, EventArgs e)
  488. {
  489. cmsIntegratedMenu.Show(((Sunny.UI.UIButton)sender), new Point(0, btTripMenu.Height));
  490. }
  491. private void rbgDirecType_C_ValueChanged(object sender, int index, string text)
  492. {
  493. SetHisDirectoryCategory();
  494. }
  495. private void rbAll_ValueChanged(object sender, bool value)
  496. {
  497. SetMapFlag();
  498. }
  499. private void btnQueryHISDirectory_Click(object sender, EventArgs e)
  500. {
  501. currentPage = 1;
  502. QueryDirectory();
  503. }
  504. private void tsmExportAllMappedData_Click(object sender, EventArgs e)
  505. {
  506. MessageBox.Show("请点击按左侧类别导出!");
  507. }
  508. private void tsmExportMappedDataByLeft_Click(object sender, EventArgs e)
  509. {
  510. ProgressWrapper _dataLoader;
  511. _dataLoader = new ProgressWrapper(queryExportData_CallBack, this);
  512. _dataLoader.SetProgressBar(ProgressBarStyle.Marquee, "正在导出...", 50);
  513. _dataLoader.Start(new object[] { 0 }, (result, errMsg) =>
  514. {
  515. // 在这里处理结果和错误信息
  516. if (result == 0)
  517. {
  518. MessageBox.Show(errMsg);
  519. }
  520. else
  521. {
  522. MessageBox.Show(errMsg);
  523. }
  524. });
  525. }
  526. private void pgHISDirect_PageChanged(object sender, object pagingSource, int pageIndex, int count)
  527. {
  528. //当两者均为1说明点击的是查询按钮
  529. if (!((currentPage == 1) && (pageIndex == 1)))
  530. {
  531. currentPage = pageIndex;
  532. QueryDirectory();
  533. }
  534. }
  535. private void btnQueryCenterDirectory_Click(object sender, EventArgs e)
  536. {
  537. currentPage = 1;
  538. QueryMiDirectory();
  539. }
  540. private void pgCenterDirect_PageChanged(object sender, object pagingSource, int pageIndex, int count)
  541. {
  542. if (!((currentPage == 1) && (pageIndex == 1)))
  543. {
  544. currentPage = pageIndex;
  545. QueryMiDirectory();
  546. }
  547. }
  548. private void tsmiMapping_Click(object sender, EventArgs e)
  549. {
  550. Mapping();
  551. }
  552. private void tsmiCancleMapping_Click(object sender, EventArgs e)
  553. {
  554. CancelMapping();
  555. }
  556. private void tsmUpdateCellPriceOfAllMapped_Click(object sender, EventArgs e)
  557. {
  558. batchUpdateMappedInsuInfo(18);
  559. }
  560. private void btSetCenterDirHeaderText_Click(object sender, EventArgs e)
  561. {
  562. //获取数据源
  563. DataGridViewHeaderSetForm frm = new DataGridViewHeaderSetForm(miDirHeaderTextJsonFileMap.GetValue(hisDirectoryCategory), (DataTable)dgvCenterDirectory.DataSource);
  564. frm.StartPosition = FormStartPosition.CenterParent;
  565. if (frm.ShowDialog() == DialogResult.OK)
  566. {
  567. }
  568. }
  569. private void btSetHisDirHeaderText_Click(object sender, EventArgs e)
  570. {
  571. //获取数据源
  572. DataGridViewHeaderSetForm frm = new DataGridViewHeaderSetForm(hisDirHeaderTextJsonFileMap.GetValue(hisDirectoryCategory), (DataTable)dgvHISDirectory.DataSource);
  573. frm.StartPosition = FormStartPosition.CenterParent;
  574. if (frm.ShowDialog() == DialogResult.OK)
  575. {
  576. }
  577. }
  578. private void dgvHISDirectory_SelectionChanged(object sender, EventArgs e)
  579. {
  580. DataGridViewRow dr = dgvHISDirectory.CurrentRow;
  581. if (dr == null)
  582. {
  583. return; // 防止没有选中行
  584. }
  585. if (!dgvHISDirectory.Columns.Contains("InsuCode"))
  586. {
  587. Global.writeLog("未找到InsuCode");
  588. // 可以在这里调试:打印所有列名
  589. foreach (DataGridViewColumn col in dgvHISDirectory.Columns)
  590. {
  591. System.Diagnostics.Debug.WriteLine($"列名: {col.Name}");
  592. Global.writeLog($"列名: {col.Name},值:{dr.Cells[col.Name].Value}");
  593. }
  594. return;
  595. }
  596. // 先检查列是否存在
  597. DataGridViewCell cell = dr.Cells["InsuCode"];
  598. if (cell == null || cell.Value == null || cell.Value == DBNull.Value)
  599. {
  600. return;
  601. }
  602. if (cell != null)
  603. {
  604. if (cell.Value.ToString() != "")
  605. {
  606. tbInsuCode.Text = cell.Value.ToString();
  607. tbCenterDirectoryFilter.Text = "";
  608. tbApprovalNO.Text = "";
  609. }
  610. else
  611. {
  612. tbInsuCode.Text = "";
  613. if (rbOnlyName.Checked)
  614. {
  615. tbInsuCode.Text = "";
  616. tbApprovalNO.Text = "";
  617. tbCenterDirectoryFilter.Text = "%" + dr.Cells["itemDesc"].Value.ToString() + "%";
  618. }
  619. if (rbOnlyApprNO.Checked)
  620. {
  621. tbCenterDirectoryFilter.Text = "";
  622. tbInsuCode.Text = "";
  623. tbApprovalNO.Text = "%" + dr.Cells["pprovalNo"].Value.ToString() + "%";
  624. }
  625. if (rbBoth.Checked)
  626. {
  627. tbInsuCode.Text = "";
  628. tbCenterDirectoryFilter.Text = "%" +dr.Cells["itemDesc"].Value.ToString() + "%";
  629. tbApprovalNO.Text = "%" + dr.Cells["pprovalNo"].Value.ToString() + "%";
  630. }
  631. }
  632. }
  633. }
  634. }
  635. }