|
|
@@ -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)
|