yi eason 3 лет назад
Родитель
Сommit
df2dac1554

+ 0 - 3
CarLocalMeter/OptionCls/DbUpload.cs

@@ -93,10 +93,7 @@ namespace CarLocalMeter
                             }
                             else
                             {
-                                //计量失败,播报失败,然后写led屏幕及日志
                                 lg.WriteLog(LogType.serverLog, rmRst.ResultMessage);
-                                CacleCls.isLock = false;
-                                return;
                             }
                         }
                     }

+ 18 - 0
RailLocalMeter/DbOption/MeterWorkRailwayActFirstService.cs

@@ -42,5 +42,23 @@ namespace RailLocalMeter
             RESTfulResult<ResponseData> rm = db.doOption<ResponseData>("meterworkrailwayactfirsts", "doIdentifyWeight", new object[] { info }, 1);
             return rm;
         }
+
+        internal RESTfulResult<ResponseData> doAddWfStaticTwo(PreRailwayScale preRailwayScale, MeterWorkRailwayActFirst gross, MeterWorkRailwayActFirst tare)
+        {
+            DbHelper db = new DbHelper();
+            PbSomeModel<PreRailwayScale, MeterWorkRailwayActFirst, MeterWorkRailwayActFirst, MeterMonitorNote> pbSomeModel = new PbSomeModel<PreRailwayScale, MeterWorkRailwayActFirst, MeterWorkRailwayActFirst, MeterMonitorNote>();
+            pbSomeModel.one = preRailwayScale;
+            pbSomeModel.two = gross;
+            pbSomeModel.three = tare;
+            RESTfulResult<ResponseData> rm = db.doOption<ResponseData>("meterworkrailwayactfirsts", "doAddWfStaticTwo", new object[] { pbSomeModel }, 1);
+            return rm;
+        }
+
+        internal RESTfulResult<List<DjPbModel>> doDbUpload(List<MeterWorkRailwayActFirst> lm)
+        {
+            DbHelper db = new DbHelper();
+            RESTfulResult<List<DjPbModel>> rm = db.doOption<List<DjPbModel>>("meterworkrailwayactfirsts", "addFirstEmergencyList", new object[] { lm }, 1);
+            return rm;
+        }
     }
 }

+ 7 - 0
RailLocalMeter/DbOption/MeterWorkRailwayActualService.cs

@@ -15,5 +15,12 @@ namespace RailLocalMeter
             RESTfulResult<List<MeterWorkRailwayActual>> rm = db.doOption<List<MeterWorkRailwayActual>>("meterworkrailwayactuals", "/noPage", new object[] { meterWorkRailwayActual }, 1);
             return rm;
         }
+
+        internal RESTfulResult<List<DjPbModel>> doDbUpload(List<MeterWorkRailwayActual> lm)
+        {
+            DbHelper db = new DbHelper();
+            RESTfulResult<List<DjPbModel>> rm = db.doOption<List<DjPbModel>>("meterworkrailwayactuals", "/addNetEmergencyList", new object[] { lm }, 1);
+            return rm;
+        }
     }
 }

+ 183 - 0
RailLocalMeter/OptionCls/DbUpload.cs

@@ -0,0 +1,183 @@
+using com.hnshituo.core.webapp.vo;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace RailLocalMeter
+{
+    public class DbUpload
+    {
+        Log lg = Log.GetInstance();
+        private bool blThreadFlag = true;
+        Thread DataCollectThread = null;//采集进程
+        MeterWorkRailwayActFirstService firstService = new MeterWorkRailwayActFirstService();
+        MeterWorkRailwayActualService netService = new MeterWorkRailwayActualService();
+
+        ImageOption imgControl = new ImageOption();
+
+        public DbUpload()
+        {
+            DataCollectThread = new Thread(new ThreadStart(DataCollect));
+        }
+
+        public void start()
+        {
+            DataCollectThread.Start();
+        }
+
+        public void stop()
+        {
+            blThreadFlag = false;
+        }
+
+        private void DataCollect()
+        {
+            if (!blThreadFlag) return;
+
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            while (blThreadFlag)
+            {
+                try
+                {
+                    //重量小于500且网络正常时触发
+                    if (CacleCls.weight < 500 && CacleCls.serverFlag)
+                    {
+                        dic.Clear();
+                        //若本地存在计量数据未进行上传的,则进行数据上传并得到返回的结果
+                        //得到结果后构造成Dictionary然后进行图片操作,修改图片名称及位置
+                        bool bReadFlag = false;
+                        string strRtMsgInfo = "";
+
+                        try 
+                        {
+                            List<MeterWorkRailwayActFirst> lm = FileOption.ReadDb<MeterWorkRailwayActFirst>(FileTypeEnum.一次数据, ref bReadFlag, ref strRtMsgInfo);
+                            if (bReadFlag)
+                            {
+                                //进行数据上传操作
+                                RESTfulResult<List<DjPbModel>> rmRst = firstService.doDbUpload(lm);
+                                if (rmRst.Succeed)
+                                {
+                                    if (rmRst.Data.Count == lm.Count)
+                                    {
+                                        //直接重写文件
+                                        FileOption.clearFile();
+                                        //然后对图片进行压缩及修改名称处理
+                                        foreach (DjPbModel dm in rmRst.Data)
+                                        {
+                                            dic.Add(dm.key, dm.value);
+                                        }
+                                    }
+                                    else
+                                    {
+                                        //清理下文件
+                                        FileOption.clearFile();
+                                        //重写下未成功的数据
+                                        foreach (MeterWorkRailwayActFirst first in lm)
+                                        {
+                                            DjPbModel pm = rmRst.Data.Where(s => s.key == first.actualFirstNo).FirstOrDefault();
+                                            if (pm == null || string.IsNullOrEmpty(pm.key) || string.IsNullOrEmpty(pm.value))
+                                            {
+                                                //Thread.Sleep(100);
+                                                bool flag = FileOption.WriterDb(first, FileTypeEnum.一次数据, out string msgInfo);
+                                                if (!flag)
+                                                {
+                                                    lg.WriteLog(LogType.serverLog, $"重写失败:{msgInfo},数据:{JsonConvert.SerializeObject(first, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }) }");
+                                                }
+                                            }
+                                            else
+                                            {
+                                                dic.Add(pm.key, pm.value);
+                                            }
+                                        }
+                                    }
+
+                                    if (dic.Count > 0) imgControl.ZipFiles(dic);
+                                }
+                                else
+                                {
+                                    //计量失败,播报失败,然后写led屏幕及日志
+                                    lg.WriteLog(LogType.serverLog, rmRst.ResultMessage);
+                                }
+                            }
+                        }
+                        catch (Exception e) 
+                        {
+                            lg.WriteLog(LogType.serverLog, "一次数据上传异常:" + e.Message);
+                        }
+
+                        bReadFlag = false;
+                        strRtMsgInfo = "";
+                        try 
+                        {
+                            List<MeterWorkRailwayActual> lmNet = FileOption.ReadDb<MeterWorkRailwayActual>(FileTypeEnum.结净数据, ref bReadFlag, ref strRtMsgInfo);
+                            if (bReadFlag)
+                            {
+                                //进行数据上传操作
+                                RESTfulResult<List<DjPbModel>> rmRst = netService.doDbUpload(lmNet);
+                                if (rmRst.Succeed)
+                                {
+                                    if (rmRst.Data.Count == lmNet.Count)
+                                    {
+                                        //直接重写文件
+                                        FileOption.clearFile();
+                                        //然后对图片进行压缩及修改名称处理
+                                        foreach (DjPbModel dm in rmRst.Data)
+                                        {
+                                            dic.Add(dm.key, dm.value);
+                                        }
+                                    }
+                                    else
+                                    {
+                                        //清理下文件
+                                        FileOption.clearFile();
+                                        //重写下未成功的数据
+                                        foreach (MeterWorkRailwayActual net in lmNet)
+                                        {
+                                            DjPbModel pm = rmRst.Data.Where(s => s.key == net.actualNo).FirstOrDefault();
+                                            if (pm == null || string.IsNullOrEmpty(pm.key) || string.IsNullOrEmpty(pm.value))
+                                            {
+                                                //Thread.Sleep(100);
+                                                bool flag = FileOption.WriterDb(net, FileTypeEnum.结净数据, out string msgInfo);
+                                                if (!flag)
+                                                {
+                                                    lg.WriteLog(LogType.serverLog, $"重写失败:{msgInfo},数据:{JsonConvert.SerializeObject(net, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }) }");
+                                                }
+                                            }
+                                            else
+                                            {
+                                                dic.Add(pm.key, pm.value);
+                                            }
+                                        }
+                                    }
+
+                                    if (dic.Count > 0) imgControl.ZipFiles(dic);
+                                }
+                                else
+                                {
+                                    //计量失败,播报失败,然后写led屏幕及日志
+                                    lg.WriteLog(LogType.serverLog, rmRst.ResultMessage);
+                                }
+                            }
+
+                        }
+                        catch (Exception e) 
+                        {
+                            lg.WriteLog(LogType.serverLog, "结净数据上传异常:" + e.Message);
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    lg.WriteLog(LogType.SystemLog, "数据上传异常:" + ex.Message);
+                }
+                Thread.Sleep(AppConfigCache.sleepUploadTime);
+            }
+        }
+    }
+}
+
+

+ 1 - 0
RailLocalMeter/RailLocalMeter.csproj

@@ -134,6 +134,7 @@
     <Compile Include="ModelCls\MeterWorkRailwayActual.cs" />
     <Compile Include="ModelCls\PreRailwayScale.cs" />
     <Compile Include="ModelCls\ResponseData.cs" />
+    <Compile Include="OptionCls\DbUpload.cs" />
     <Compile Include="OptionCls\Led\LedDll.cs" />
     <Compile Include="OptionCls\Led\LED_Control.cs" />
     <Compile Include="OptionCls\MoxaCls.cs" />

+ 5 - 6
RailLocalMeter/frmMain.Designer.cs

@@ -2066,7 +2066,7 @@ namespace RailLocalMeter
             this.cbSetFirst.AutoSize = true;
             this.cbSetFirst.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.cbSetFirst.ForeColor = System.Drawing.Color.Black;
-            this.cbSetFirst.Location = new System.Drawing.Point(109, 179);
+            this.cbSetFirst.Location = new System.Drawing.Point(138, 179);
             this.cbSetFirst.Name = "cbSetFirst";
             this.cbSetFirst.Size = new System.Drawing.Size(154, 24);
             this.cbSetFirst.TabIndex = 14;
@@ -2083,11 +2083,10 @@ namespace RailLocalMeter
             this.cbJg.ForeColor = System.Drawing.Color.Red;
             this.cbJg.Location = new System.Drawing.Point(9, 179);
             this.cbJg.Name = "cbJg";
-            this.cbJg.Size = new System.Drawing.Size(70, 24);
+            this.cbJg.Size = new System.Drawing.Size(112, 24);
             this.cbJg.TabIndex = 13;
-            this.cbJg.Text = "接管";
+            this.cbJg.Text = "自助计量";
             this.cbJg.UseVisualStyleBackColor = true;
-            this.cbJg.Visible = false;
             this.cbJg.CheckedChanged += new System.EventHandler(this.cbJg_CheckedChanged);
             // 
             // btnSave
@@ -2096,7 +2095,7 @@ namespace RailLocalMeter
             this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnSave.Font = new System.Drawing.Font("楷体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)), true);
             this.btnSave.ForeColor = System.Drawing.Color.White;
-            this.btnSave.Location = new System.Drawing.Point(324, 171);
+            this.btnSave.Location = new System.Drawing.Point(353, 171);
             this.btnSave.Margin = new System.Windows.Forms.Padding(4);
             this.btnSave.Name = "btnSave";
             this.btnSave.Size = new System.Drawing.Size(100, 40);
@@ -2111,7 +2110,7 @@ namespace RailLocalMeter
             this.btnOpenVoice.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnOpenVoice.Font = new System.Drawing.Font("楷体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)), true);
             this.btnOpenVoice.ForeColor = System.Drawing.Color.White;
-            this.btnOpenVoice.Location = new System.Drawing.Point(482, 171);
+            this.btnOpenVoice.Location = new System.Drawing.Point(511, 171);
             this.btnOpenVoice.Margin = new System.Windows.Forms.Padding(4);
             this.btnOpenVoice.Name = "btnOpenVoice";
             this.btnOpenVoice.Size = new System.Drawing.Size(100, 40);

+ 149 - 63
RailLocalMeter/frmMain.cs

@@ -73,6 +73,11 @@ namespace RailLocalMeter
         /// </summary>
         PingNetwork ping = new PingNetwork();
 
+        /// <summary>
+        /// 本地离线计量的数据上传
+        /// </summary>
+        DbUpload upload = new DbUpload();
+
         /// <summary>
         /// 以下是硬盘录像机的控制
         /// </summary>
@@ -102,7 +107,7 @@ namespace RailLocalMeter
                 ip = $"{rd.Next(99999, 999999)}";
             }
 
-            //CacleCls.isJg = true;
+            CacleCls.isJg = true;
             CacleCls.updateRfidInfoTime = DateTime.Now;
             if (!string.IsNullOrEmpty(AppConfigCache.ledIp))
             {
@@ -163,7 +168,7 @@ namespace RailLocalMeter
             mx.start();
             rfid.Start();
             imgControl.Start();
-
+            upload.start();
 
             blThreadFlag = true;
             DataCollectThread = new Thread(new ThreadStart(DataCollect));
@@ -300,7 +305,15 @@ namespace RailLocalMeter
                                     return;
                                 }
 
-                                //重量最后一位不为0也是超量程
+                                if (CacleCls.lockCarNo.Length != 7) 
+                                {
+                                    txtMsgInfo.Text = "车号不为7位";
+                                    vicPlayClass.GetVoicePlay(VoiceEnum.车号未识别, "");
+                                    led_controler.setStaticLineMsg(AppConfigCache.ledIp, "车号不为7位");
+                                    return;
+                                }
+
+                                    //重量最后一位不为0也是超量程
                                 if ((AppConfigCache.maxRange * 1000 < CacleCls.weight) || CacleCls.weight.ToString().Substring(CacleCls.weight.ToString().Length - 1, 1) != "0")
                                 {
                                     //超量程
@@ -330,6 +343,7 @@ namespace RailLocalMeter
 
                                     lg.WriteLog(LogType.SystemLog, CacleCls.lockCarNo + "开始保存:" + DateTime.Now.ToLongTimeString());
                                 }
+                                btnSave_Click(null, null);
                             }
                             #endregion
 
@@ -428,6 +442,7 @@ namespace RailLocalMeter
             try { mx?.ClosingCollect(); } catch { }
             try { rfid?.ClosingCollect(); } catch { }
             try { if (bVoice) ce?.StopTalk(); } catch { }
+            try { upload?.stop(); } catch { }
 
             foreach (int i in voPlay)
             {
@@ -473,42 +488,56 @@ namespace RailLocalMeter
                     return;
                 }
 
-                //接管状态点的保存
-                if (!isUseLabelTare && MessageBox.Show("是否确认保存当前计量数据?", "提示", MessageBoxButtons.OKCancel) != DialogResult.OK)
-                {
-                    return;
-                }
 
-                if (string.IsNullOrEmpty(CacleCls.lockCarNo))
+                if (CacleCls.isJg) 
                 {
-                    txtMsgInfo.Text = "没有车号,无法保存";
-                    return;
-                }
-                else if (CacleCls.lockWgt < 1000)
-                {
-                    txtMsgInfo.Text = "重量过小,无法保存";
-                    return;
-                }
-                else if (CacleCls.isWd != 0)
-                {
-                    DialogResult dr = MessageBox.Show($"[{CacleCls.lockCarNo}]重量不稳定,请确认是否保存当前计量数据?", "提示", MessageBoxButtons.OKCancel);
-                    if (dr == DialogResult.Cancel)
+                    //接管状态点的保存
+                    if (!isUseLabelTare && MessageBox.Show("是否确认保存当前计量数据?", "提示", MessageBoxButtons.OKCancel) != DialogResult.OK)
                     {
                         return;
                     }
-                }
-                else if (CacleCls.topJg == "1" || CacleCls.bottomJg == "1")
-                {
-                    DialogResult dr = MessageBox.Show($"[{CacleCls.lockCarNo}]未停到位,请确认是否保存当前计量数据?", "提示", MessageBoxButtons.OKCancel);
-                    if (dr == DialogResult.Cancel)
+
+                    if (string.IsNullOrEmpty(CacleCls.lockCarNo))
                     {
+                        txtMsgInfo.Text = "没有车号,无法保存";
                         return;
                     }
+                    
+                    if (CacleCls.lockWgt < 1000)
+                    {
+                        txtMsgInfo.Text = "重量过小,无法保存";
+                        return;
+                    }
+                    
+                    if (CacleCls.isWd != 0)
+                    {
+                        DialogResult dr = MessageBox.Show($"[{CacleCls.lockCarNo}]重量不稳定,请确认是否保存当前计量数据?", "提示", MessageBoxButtons.OKCancel);
+                        if (dr == DialogResult.Cancel)
+                        {
+                            return;
+                        }
+                    }
+                    
+                    if (CacleCls.topJg == "1" || CacleCls.bottomJg == "1")
+                    {
+                        DialogResult dr = MessageBox.Show($"[{CacleCls.lockCarNo}]未停到位,请确认是否保存当前计量数据?", "提示", MessageBoxButtons.OKCancel);
+                        if (dr == DialogResult.Cancel)
+                        {
+                            return;
+                        }
+                    }
+
+                    //车号不是7位,请确认
+                    if (CacleCls.lockCarNo.Length != 7)
+                    {
+                        DialogResult dr = MessageBox.Show("车号不是7位,请确认是否保存当前计量数据?", "提示", MessageBoxButtons.OKCancel);
+                        if (dr == DialogResult.Cancel)
+                        {
+                            return;
+                        }
+                    }
                 }
-                else
-                {
-                    lg.WriteLog(LogType.SystemLog, CacleCls.lockCarNo + "接管状态下进行的保存:" + DateTime.Now.ToLongTimeString());
-                }
+                
 
                 /*
                 //存在零点,且不为接管状态则禁止计量
@@ -521,37 +550,33 @@ namespace RailLocalMeter
                 }
                 //*/
 
-                //车号不是7位,请确认
-                if (CacleCls.lockCarNo.Length != 7)
-                {
-                    DialogResult dr = MessageBox.Show("车号不是7位,请确认是否保存当前计量数据?", "提示", MessageBoxButtons.OKCancel);
-                    if (dr == DialogResult.Cancel)
-                    {
-                        return;
-                    }
-                }
-
 
                 CacleCls.firstDb = null;
-                ultraGridFirst.UpdateData();
-                foreach (UltraGridRow ugr in ultraGridFirst.Rows)
+                CacleCls.preTrackScale = null;
+                //如果是自动计量的,只保存一次数据,且不匹配预报
+                if (CacleCls.isJg) 
                 {
-                    if (ugr.Cells["UNCK"].Text.ToUpper() == "TRUE")
+                    ultraGridFirst.UpdateData();
+                    foreach (UltraGridRow ugr in ultraGridFirst.Rows)
                     {
-                        CacleCls.firstDb = dataTableFirst.TableToDataList<MeterWorkRailwayActFirst>().Where(s => s.actualFirstNo == ugr.Cells["actualFirstNo"].Text.Trim()).FirstOrDefault();
-                        break;
+                        if (ugr.Cells["UNCK"].Text.ToUpper() == "TRUE")
+                        {
+                            CacleCls.firstDb = dataTableFirst.TableToDataList<MeterWorkRailwayActFirst>().Where(s => s.actualFirstNo == ugr.Cells["actualFirstNo"].Text.Trim()).FirstOrDefault();
+                            break;
+                        }
                     }
-                }
 
-                ultraGridPre.UpdateData();
-                foreach (UltraGridRow ugr in ultraGridPre.Rows)
-                {
-                    if (ugr.Cells["UNCK"].Text.ToUpper() == "TRUE")
+                    ultraGridPre.UpdateData();
+                    foreach (UltraGridRow ugr in ultraGridPre.Rows)
                     {
-                        CacleCls.preTrackScale = dataTablePre.TableToDataList<PreRailwayScale>().Where(s => s.predictionNo == ugr.Cells["predictionNo"].Text.Trim()).FirstOrDefault();
-                        break;
+                        if (ugr.Cells["UNCK"].Text.ToUpper() == "TRUE")
+                        {
+                            CacleCls.preTrackScale = dataTablePre.TableToDataList<PreRailwayScale>().Where(s => s.predictionNo == ugr.Cells["predictionNo"].Text.Trim()).FirstOrDefault();
+                            break;
+                        }
                     }
                 }
+                
 
                 if (CacleCls.firstDb != null && !isUseLabelTare)
                 {
@@ -718,13 +743,80 @@ namespace RailLocalMeter
                         }
                         else
                         {
-                            //勾选了一次计量数据,勾选了预报数据
+                            //上面对是否勾选接自助计量做了判断,如果勾选了这个CacleCls.firstDb就不会赋值,所以一定为null
+                            if (CacleCls.firstDb != null)
+                            {
+                                //存结净数据
+
+                                MeterWorkRailwayActFirst mwraf = new MeterWorkRailwayActFirst();
+                                CreateFirst(ref mwraf);
+                                
+                                if (CacleCls.preTrackScale != null)
+                                {
+                                    CacleCls.preTrackScale.format(mwraf);
+                                }
+
+                                CacleCls.firstDb.valueFlag = "2";
+                                CacleCls.firstDb.dataSource = "3";
+                                CacleCls.firstDb.checkFlag = "0";
 
-                            //勾选了一次计量数据,未勾选预报数据
+                                MeterWorkRailwayActFirst gross = null;
+                                MeterWorkRailwayActFirst tare = null;
 
-                            //未勾选一次计量数据,未勾选预报数据,勾选自动结净
+                                if (mwraf.meterWeight > CacleCls.firstDb.meterWeight)
+                                {
+                                    mwraf.weightType = "0";
+                                    CacleCls.firstDb.weightType = "1";
+                                    gross = mwraf;
+                                    tare = CacleCls.firstDb;
+                                }
+                                else
+                                {
+                                    mwraf.weightType = "1";
+                                    CacleCls.firstDb.weightType = "0";
+                                    tare = mwraf;
+                                    gross = CacleCls.firstDb;
+                                }
 
-                            //未勾选一次计量数据,未勾选预报数据,未勾选自动结净
+                                if (firstService.doAddWfStaticTwo(CacleCls.preTrackScale, gross, tare).Succeed)
+                                {
+                                    isMeasureSuccess = true; //保存成功
+                                }
+                                else
+                                {
+                                    vicPlayClass.GetVoicePlay(VoiceEnum.程序处理异常, CacleCls.lockCarNo);
+                                    led_controler.setStaticLineMsg(AppConfigCache.ledIp, "计量失败,请联系管理员");
+                                    txtMsgInfo.Text = "计量失败写入,本地文件异常:" + msgInfo;
+                                    lg.WriteLog(LogType.serverLog, "计量失败,写入本地文件异常:" + msgInfo);
+                                    CacleCls.isLock = false;
+                                    return;
+                                }
+                            }
+                            else
+                            {
+                                //存一次计量数据
+                                MeterWorkRailwayActFirst firstDb = new MeterWorkRailwayActFirst();
+                                CreateFirst(ref firstDb);
+                                if (CacleCls.preTrackScale != null)
+                                {
+                                    CacleCls.preTrackScale.format(firstDb);
+                                }
+
+                                if (firstService.add(firstDb).Succeed)
+                                {
+                                    isMeasureSuccess = true; //保存成功
+                                }
+                                else
+                                {
+                                    vicPlayClass.GetVoicePlay(VoiceEnum.程序处理异常, CacleCls.lockCarNo);
+                                    led_controler.setStaticLineMsg(AppConfigCache.ledIp, "计量失败,请联系管理员");
+                                    txtMsgInfo.Text = "计量失败写入,本地文件异常:" + msgInfo;
+                                    lg.WriteLog(LogType.serverLog, "计量失败,写入本地文件异常:" + msgInfo);
+                                    CacleCls.isLock = false;
+                                    return;
+                                }
+
+                            }
                         }
                     }
                     else //没网络统一写一次数据
@@ -749,12 +841,6 @@ namespace RailLocalMeter
                 }
 
 
-
-
-
-
-
-
                 //计量成功
                 if (isMeasureSuccess)
                 {
@@ -1098,7 +1184,7 @@ namespace RailLocalMeter
             mwraf.railwayTypeNo = AppConfigCache.railwayTypeNo;
             mwraf.railwayTypeName = AppConfigCache.railwayTypeName;
             mwraf.meterMode = "1";
-            mwraf.dataSource = "1";
+            mwraf.dataSource = "3";
             mwraf.checkFlag = "0";
             mwraf.noticeNo = $"{ip},{Thread.CurrentThread.Name}";
             if (isUseLabelTare)