Browse Source

feat: 调整清算界面

zhengjie 1 year ago
parent
commit
4c2c9edd1b
5 changed files with 656 additions and 638 deletions
  1. 88 32
      Forms/ClearingQuery.cs
  2. 449 605
      Forms/ClearingQuery.designer.cs
  3. 117 0
      Helper/ReadDataTableConverter.cs
  4. 1 0
      JiNanMI.csproj
  5. 1 1
      Variables/TradeEnum.cs

+ 88 - 32
Forms/ClearingQuery.cs

@@ -40,6 +40,7 @@ namespace PTMedicalInsurance.Forms
         private void Clearing_Load(object sender, EventArgs e)
         {
             ComboxSetter cbxSetter = new ComboxSetter();
+            cbxSetter.setCbxInterfaceDataSource(cbxInterface);
             cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "insutype", cbxInsuType);
             cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbxClrType);
 
@@ -53,6 +54,7 @@ namespace PTMedicalInsurance.Forms
             dpST.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
             dpED.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);
 
+            cbxInterface.SelectedValueChanged += new EventHandler(cbxInterface_SelectedValueChanged);
             WindowState = FormWindowState.Maximized;
 
             tbTmp.Text= Global.currentDirectory + "\\Download";
@@ -761,6 +763,50 @@ namespace PTMedicalInsurance.Forms
                 return -1;
             }
         }
+        /// <summary>
+        /// 查询明细
+        /// </summary>
+        /// <param name="outParam"></param>
+        /// <returns></returns>
+        private int checkDetail(out string outParam)
+        {
+            try
+            {
+                DataTable dt = (DataTable)dgvSettlSummary.DataSource;
+                int i = dgvSettlSummary.CurrentRow.Index;
+
+                dynamic joCheck = new JObject();
+                joCheck.clr_type = dt.Rows[i]["clr_type"].ToString();
+                joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString();
+                joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss");
+                joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss");
+                joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();
+                joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();
+                joCheck.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();
+                joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString();
+
+                JObject joData = new JObject();
+                joData.Add("data", joCheck);
+                InvokeHelper invoker = new InvokeHelper();
+                JObject jo3202Rtn = invoker.invokeCenterService(TradeEnum.FeeDetailCheck, joData);
+                if (JsonHelper.parseCenterReturnJson(jo3202Rtn, out outParam) != 0)
+                {
+                    return -1;
+                }
+                else
+                {
+                    outParam = JsonHelper.getDestValue(jo3202Rtn, "jsxx_ds");
+                    return 0;
+                }
+            }
+            catch (Exception ex)
+            {
+                outParam = "checkDetail:" + ex.Message;
+                return -1;
+            }
+
+        }
+
         private int checkDetail(string file_qury_no, out string outParam, out string fileName)
         {
             fileName = "";
@@ -835,6 +881,14 @@ namespace PTMedicalInsurance.Forms
                 return -1;
             }
 
+        }
+
+        private int importToDgvCenterSetlRec(string outParam)
+        {
+            DataTable dt = JsonConvert.DeserializeObject<DataTable>(outParam, new ReadDataTableConverter());
+            dgvCenterSettlRec.DataSource = dt;
+            return 0;
+
         }
         private int importToDgvCenterSetlRec(string fileName, string zipFilePath, out string outParam)
         {
@@ -913,47 +967,49 @@ namespace PTMedicalInsurance.Forms
             outParam = "";
             //先签到
             CenterBusiness cBus = new CenterBusiness();
-            JObject jo9001Rtn = new JObject();
-            cBus.signIn(out jo9001Rtn);
+            //JObject jo9001Rtn = new JObject();
+            //cBus.signIn(out jo9001Rtn);
             try
             {
                 //导出并压缩
-                if (exportAndCompress(out outParam) != 0)
-                {
-                    return -1;
-                }
-                string zipPath = outParam;
-                Global.writeLog("exportAndCompress:" + zipPath);
-                //上传给中心,
-                if (uploadFileToCenter(zipPath, out outParam) != 0)
-                {
-                    return -1;
-                }
-                Global.writeLog("uploadFileToCenter:" + outParam);
-                string file_query_no = outParam;
-                string fileName = "";
+                //if (exportAndCompress(out outParam) != 0)
+                //{
+                //    return -1;
+                //}
+                //string zipPath = outParam;
+                //Global.writeLog("exportAndCompress:" + zipPath);
+                ////上传给中心,
+                //if (uploadFileToCenter(zipPath, out outParam) != 0)
+                //{
+                //    return -1;
+                //}
+                //Global.writeLog("uploadFileToCenter:" + outParam);
+                //string file_query_no = outParam;
+                //string fileName = "";
                 //3202明细对账  输出查询号和文件名
-                if (checkDetail(file_query_no, out outParam, out fileName) != 0)
-                {
-                    return -1;
-                }
-                file_query_no = outParam;
-                Global.writeLog("checkDetail:" + outParam + "///" + fileName);
-                //下载  获取 查询号和文件名后 下载
-                if (downloadZIP(file_query_no, fileName, out outParam) != 0)
+                if (checkDetail(out outParam) != 0)
                 {
                     return -1;
                 }
+                //file_query_no = outParam;
+                //Global.writeLog("checkDetail:" + outParam + "///" + fileName);
+                ////下载  获取 查询号和文件名后 下载
+                //if (downloadZIP(file_query_no, fileName, out outParam) != 0)
+                //{
+                //    return -1;
+                //}
 
-                zipPath = outParam;
+                //zipPath = outParam;
 
-                Global.writeLog("downloadZIP:" + outParam);
-                //导入DGV
-                if (importToDgvCenterSetlRec(fileName, zipPath, out outParam) != 0)
-                {
-                    return -1;
-                }
-                Global.writeLog("importToDgvCenterSetlRec:" + outParam);
+                importToDgvCenterSetlRec(outParam);
+
+                //Global.writeLog("downloadZIP:" + outParam);
+                ////导入DGV
+                //if (importToDgvCenterSetlRec(fileName, zipPath, out outParam) != 0)
+                //{
+                //    return -1;
+                //}
+                //Global.writeLog("importToDgvCenterSetlRec:" + outParam);
                 return 0;
             }
             catch (Exception ex)

File diff suppressed because it is too large
+ 449 - 605
Forms/ClearingQuery.designer.cs


+ 117 - 0
Helper/ReadDataTableConverter.cs

@@ -0,0 +1,117 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PTMedicalInsurance.Helper
+{
+    class ReadDataTableConverter : JsonConverter
+    {
+        public override bool CanConvert(Type objectType)
+        {
+            return objectType == typeof(DataTable);
+        }
+
+        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
+        {
+            JArray array = JArray.Load(reader);
+            var dataTypes = DetermineColumnDataTypes(array);
+            var table = BuildDataTable(array, dataTypes);
+            return table;
+        }
+
+        private DataTable BuildDataTable(JArray array, Dictionary<string, Type> dataTypes)
+        {
+            DataTable table = new DataTable();
+            foreach (var kvp in dataTypes)
+            {
+                table.Columns.Add(kvp.Key, kvp.Value);
+            }
+
+            foreach (JObject item in array.Children<JObject>())
+            {
+                DataRow row = table.NewRow();
+                foreach (JProperty prop in item.Properties())
+                {
+                    if (prop.Value.Type != JTokenType.Null)
+                    {
+                        Type dataType = dataTypes[prop.Name];
+                        row[prop.Name] = prop.Value.ToObject(dataType);
+                    }
+                }
+                table.Rows.Add(row);
+            }
+            return table;
+        }
+
+        private Dictionary<string, Type> DetermineColumnDataTypes(JArray array)
+        {
+            var dataTypes = new Dictionary<string, Type>();
+            foreach (JObject item in array.Children<JObject>())
+            {
+                foreach (JProperty prop in item.Properties())
+                {
+                    Type currentType = GetDataType(prop.Value.Type);
+                    if (currentType != null)
+                    {
+                        Type previousType;
+                        if (!dataTypes.TryGetValue(prop.Name, out previousType) ||
+                            (previousType == typeof(long) && currentType == typeof(decimal)))
+                        {
+                            dataTypes[prop.Name] = currentType;
+                        }
+                        else if (previousType != currentType)
+                        {
+                            dataTypes[prop.Name] = typeof(string);
+                        }
+                    }
+                }
+            }
+            return dataTypes;
+        }
+
+        private Type GetDataType(JTokenType tokenType)
+        {
+            switch (tokenType)
+            {
+                case JTokenType.Null:
+                    return null;
+                case JTokenType.String:
+                    return typeof(string);
+                case JTokenType.Integer:
+                    return typeof(long);
+                case JTokenType.Float:
+                    return typeof(decimal);
+                case JTokenType.Boolean:
+                    return typeof(bool);
+                case JTokenType.Date:
+                    return typeof(DateTime);
+                case JTokenType.TimeSpan:
+                    return typeof(TimeSpan);
+                case JTokenType.Guid:
+                    return typeof(Guid);
+                case JTokenType.Bytes:
+                    return typeof(byte[]);
+                case JTokenType.Array:
+                case JTokenType.Object:
+                    throw new JsonException("This converter does not support complex types");
+                default:
+                    return typeof(string);
+            }
+        }
+
+        public override bool CanWrite
+        {
+            get { return false; }
+        }
+
+        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}

+ 1 - 0
JiNanMI.csproj

@@ -216,6 +216,7 @@
       <DependentUpon>PrintersForm.cs</DependentUpon>
     </Compile>
     <Compile Include="Helper\JsonMapper.cs" />
+    <Compile Include="Helper\ReadDataTableConverter.cs" />
     <Compile Include="Variables\ModeEnum.cs" />
     <Compile Include="Variables\TradeEnum.cs" />
     <Compile Include="Common\Utils.cs" />

+ 1 - 1
Variables/TradeEnum.cs

@@ -331,7 +331,7 @@ namespace PTMedicalInsurance
         /// <summary>
         /// 3202,费用结算对明细账
         /// </summary>
-        [Trade("3202", "费用结算对明细账", ModeEnum.DLL)]
+        [Trade("query_jsxx", "费用结算对明细账", ModeEnum.DLL)]
         FeeDetailCheck,
 
         #endregion

Some files were not shown because too many files changed in this diff