AddSignleDirectory.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Helper;
  3. using PTMedicalInsurance.Variables;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows.Forms;
  13. namespace PTMedicalInsurance
  14. {
  15. public partial class AddSingleDirectory : Form
  16. {
  17. private int direcType ;
  18. public JObject joPamam = new JObject();
  19. private string chargeItemLevel;
  20. private string chargeItemLevelName;
  21. private string categoryCode;
  22. private string categoryName;
  23. public AddSingleDirectory()
  24. {
  25. InitializeComponent();
  26. }
  27. public AddSingleDirectory(int direcType)
  28. {
  29. InitializeComponent();
  30. this.direcType = direcType;
  31. cbxDirecType.SelectedIndex = this.direcType;
  32. initForm();
  33. }
  34. public AddSingleDirectory(int direcType,DataRow dr)
  35. {
  36. InitializeComponent();
  37. this.direcType = direcType;
  38. cbxDirecType.SelectedIndex = this.direcType;
  39. initForm();
  40. setValue(dr);
  41. }
  42. private void pnlClient_Paint(object sender, PaintEventArgs e)
  43. {
  44. }
  45. private void btnNo_Click(object sender, EventArgs e)
  46. {
  47. DialogResult = DialogResult.Cancel;
  48. }
  49. private void setTextBoxEnabled(bool b)
  50. {
  51. Control.ControlCollection sonControls = pnlClient.Controls;
  52. //遍历所有控件
  53. foreach (Control control in sonControls)
  54. {
  55. if (control is TextBox) control.Enabled = b;
  56. }
  57. }
  58. private bool getFlag(string value)
  59. {
  60. if (value == "")
  61. {
  62. return false;
  63. }
  64. if (value == "1")
  65. {
  66. return true;
  67. }
  68. else
  69. {
  70. return false;
  71. }
  72. }
  73. private void initForm()
  74. {
  75. setTextBoxEnabled(true);
  76. switch (direcType)
  77. {
  78. case 0:
  79. {
  80. initDrugForm();
  81. break;
  82. }
  83. case 2:
  84. {
  85. initDrugForm();
  86. break;
  87. }
  88. }
  89. }
  90. //private void setValue(DataRow dr)
  91. //{
  92. // switch (direcType)
  93. // {
  94. // case 0:
  95. // {
  96. // setDrugInfo(dr);
  97. // break;
  98. // }
  99. // }
  100. //}
  101. private void setValue(DataRow dr)
  102. {
  103. try
  104. {
  105. tbCode.Text = dr["Code"].ToString();
  106. tbName.Text = dr["Name"].ToString();
  107. tbLocateCode.Text = dr["LocateCode"].ToString();
  108. tbSafetyCode.Text = dr["DrugSafetyStandardCode"].ToString();
  109. tbDosageName.Text = dr["DosageFormName"].ToString();
  110. tbDosageCode.Text = dr["DosageFormCode"].ToString();
  111. categoryCode = dr["CategoryCode"].ToString();
  112. DataTable dt = (DataTable)dblkcbxCategory.DataSource;
  113. for (int i = 0; i < dt.Rows.Count; i++)
  114. {
  115. if (dt.Rows[i]["Code"].ToString() == categoryCode)
  116. {
  117. dblkcbxChargeItemType.Text=dblkcbxCategory.Text = categoryName =dt.Rows[i]["Name"].ToString();
  118. }
  119. }
  120. tbSpecification.Text = dr["Specification"].ToString();
  121. tbUnitOfPackag.Text = dr["UnitOfPackag"].ToString();
  122. tbUnitOfValuation.Text = dr["UnitOfValuation"].ToString();
  123. tbStartDate.Text = dr["StartDate"].ToString();
  124. tbEndDate.Text = dr["EndDate"].ToString();
  125. tbPinyinSearchCode.Text = dr["PinyinSearchCode"].ToString();
  126. rtbInstructions.Text = dr["Instructions"].ToString();
  127. rtbExceptContent.Text = dr["ExceptContent"].ToString();
  128. rtbConnotation.Text = dr["Connotation"].ToString();
  129. rtbLimitRange.Text = dr["LimitRange"].ToString();
  130. tbNote.Text = dr["Note"].ToString();
  131. tbApprovalNO.Text = dr["ApprovalNO"].ToString();
  132. tbVersionNO.Text = dr["VersionNO"].ToString();
  133. tbVersionName.Text = dr["VersionName"].ToString();
  134. cbUseFlag.Checked = getFlag(dr["UseFlag"].ToString());
  135. cbSpecialFlag.Checked = getFlag(dr["SpecialFlag"].ToString());
  136. cbLimitFlag.Checked = getFlag(dr["LimitFlag"].ToString());
  137. cbValidFlag.Checked = getFlag(dr["ValidFlag"].ToString());
  138. tbUniqueRecordNO.Text = dr["UniqueRecordNO"].ToString();
  139. tbNationalCode.Text = dr["NationalCode"].ToString();
  140. tbNationalName.Text = dr["NationalName"].ToString();
  141. tbManufacturers.Text = dr["Manufacturers"].ToString();
  142. if (dr["ChargeItemLevel"].ToString() != "")
  143. {
  144. chargeItemLevel = dr["ChargeItemLevel"].ToString();
  145. DataTable dt1 = (DataTable)dblkcbxChargeItemLevel.DataSource;
  146. for (int i = 0; i < dt1.Rows.Count; i++)
  147. {
  148. if (dt1.Rows[i]["Code"].ToString() == categoryCode)
  149. {
  150. dblkcbxChargeItemLevel.Text = chargeItemLevelName = dt1.Rows[i]["Name"].ToString();
  151. }
  152. }
  153. }
  154. else
  155. {
  156. dblkcbxChargeItemLevel.Text = "";
  157. }
  158. //tbCompany.Text = dr["Company"].ToString();
  159. }
  160. catch (Exception ex)
  161. {
  162. MessageBox.Show("setDrugInfo" + ex.Message);
  163. }
  164. }
  165. private void AssignToJoParam()
  166. {
  167. string hisTypeName = cbxDirecType.Text;
  168. string pym = tbPinyinSearchCode.Text;
  169. if (tbPinyinSearchCode.Text == "")
  170. {
  171. pym = "";
  172. }
  173. joPamam.Add("Code",tbCode.Text);
  174. joPamam.Add("Name", tbName.Text);
  175. joPamam.Add("HisType",direcType + 1);
  176. joPamam.Add("HisTypeName", hisTypeName);
  177. joPamam.Add("LocateCode", tbLocateCode.Text);
  178. joPamam.Add("LocateName", tbLocateName.Text);
  179. joPamam.Add("DrugSafetyStandardCode", tbSafetyCode.Text);
  180. joPamam.Add("DosageFormCode", tbDosageCode.Text);
  181. joPamam.Add("DosageFormName", tbDosageName.Text);
  182. joPamam.Add("CategoryCode", categoryCode);
  183. joPamam.Add("CategoryName", categoryName);
  184. joPamam.Add("Specification", tbSpecification.Text);
  185. joPamam.Add("SpecificationCode", "");
  186. joPamam.Add("UnitOfPackag", tbUnitOfPackag.Text);
  187. joPamam.Add("UnitOfValuation", tbUnitOfValuation.Text);
  188. joPamam.Add("StartDate", tbStartDate.Text);
  189. joPamam.Add("EndDate", tbEndDate.Text);
  190. joPamam.Add("PinyinSearchCode", pym);
  191. joPamam.Add("Instructions", rtbInstructions.Text);
  192. joPamam.Add("ExceptContent", rtbExceptContent.Text);
  193. joPamam.Add("Connotation", rtbConnotation.Text);
  194. joPamam.Add("Note", tbNote.Text);
  195. joPamam.Add("ValidFlag", Convert.ToInt32(cbValidFlag.Checked));
  196. joPamam.Add("ApprovalNO", tbApprovalNO.Text);
  197. joPamam.Add("VersionNO", tbVersionNO.Text);
  198. joPamam.Add("VersionName", tbVersionName.Text);
  199. joPamam.Add("UseFlag", Convert.ToInt32(cbUseFlag.Checked));
  200. joPamam.Add("SpecialFlag", Convert.ToInt32(cbSpecialFlag.Checked));
  201. joPamam.Add("LimitFlag", Convert.ToInt32(cbLimitFlag.Checked));
  202. joPamam.Add("LimitRange", rtbLimitRange.Text);
  203. joPamam.Add("UniqueRecordNO", tbUniqueRecordNO.Text);
  204. joPamam.Add("NationalCode", tbNationalCode.Text);
  205. joPamam.Add("NationalName", tbNationalName.Text);
  206. joPamam.Add("Manufacturers", tbManufacturers.Text);
  207. joPamam.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  208. joPamam.Add("ChargeItemType", categoryCode);
  209. joPamam.Add("ChargeItemLevel", chargeItemLevel);
  210. joPamam.Add("ChargeItemLevelName", chargeItemLevelName);
  211. joPamam.Add("Company", tbCompany.Text);
  212. }
  213. private void initDrugForm()
  214. {
  215. lbApprovalNO.ForeColor = Color.Red;
  216. lbSpecification.ForeColor = Color.Red;
  217. lbManufacturers.ForeColor = Color.Red;
  218. lbUnitOfPackag.ForeColor = Color.Red;
  219. lbCompany.ForeColor = Color.Red;
  220. //字典类,目录类查询都用区域医保对应的接口目录DR
  221. string sqlCondition = " and A.Interface_Dr = '" + Global.inf.InsuRegionInterfaceDr.ToString() + "'";
  222. //大类编码,收费项目类别
  223. string sqlStr = "SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'medChrgitmType'" + sqlCondition;
  224. SetDBLKCombox(ref dblkcbxCategory, sqlStr);
  225. SetDBLKCombox(ref dblkcbxChargeItemType, sqlStr);
  226. // 收费项目等级(统计类型)
  227. sqlStr = "SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'chrgitmLv'" + sqlCondition;
  228. SetDBLKCombox(ref dblkcbxChargeItemLevel, sqlStr);
  229. }
  230. private void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, string sqlStr)
  231. {
  232. dblcbx.sDisplayField = "Code,Name,SearchCode";
  233. dblcbx.sDisplayMember = "名称";
  234. dblcbx.sKeyWords = "Code,SearchCode";
  235. dblcbx.DataSource = GetDBLKComboxTable(sqlStr);
  236. dblcbx.RowFilterVisible = true;
  237. dblcbx.TextBox.Width = 400;
  238. dblcbx.DataGridView.Width = 400;
  239. dblcbx.DataGridView.Columns[0].Name = "编码";
  240. dblcbx.DataGridView.Columns[1].Name = "名称";
  241. dblcbx.DataGridView.Columns[2].Name = "查找码";
  242. dblcbx.DataGridView.Columns[0].Width = 100;
  243. dblcbx.DataGridView.Columns[1].Width = 200;
  244. }
  245. private DataTable GetDBLKComboxTable(string sqlStr)
  246. {
  247. InvokeHelper invoker = new InvokeHelper();
  248. dynamic joInparm = new JObject();
  249. dynamic joTmp = new JObject();
  250. joTmp.sqlStr = sqlStr;
  251. JArray jaParams = new JArray();
  252. jaParams.Add(joTmp);
  253. joInparm.Add("params", JArray.FromObject(jaParams));
  254. joInparm.code = "09010014";
  255. string inParam = joInparm.ToString();
  256. JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
  257. //dynamic jsonRtn = JsonConvert.DeserializeObject(strRtn);
  258. DataTable dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
  259. //dt.Columns[0].ColumnName = "编码";
  260. //dt.Columns[1].ColumnName = "名称";
  261. //dt.Columns[2].ColumnName = "拼音查找码";
  262. return dt;
  263. }
  264. private void btnYes_Click(object sender, EventArgs e)
  265. {
  266. AssignToJoParam();
  267. DialogResult = DialogResult.OK;
  268. }
  269. private void dblkcbxCategory_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  270. {
  271. DataGridViewRow row = e.Value as DataGridViewRow;
  272. DataRowView dataRow = row.DataBoundItem as DataRowView;
  273. categoryCode = dataRow["Code"].ToString().Trim();
  274. categoryName = dataRow["Name"].ToString().Trim();
  275. }
  276. private void dblkcbxChargeItemLevel_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  277. {
  278. DataGridViewRow row = e.Value as DataGridViewRow;
  279. DataRowView dataRow = row.DataBoundItem as DataRowView;
  280. chargeItemLevel = dataRow["Code"].ToString().Trim();
  281. chargeItemLevelName = dataRow["Name"].ToString().Trim();
  282. }
  283. }
  284. }