Explorar el Código

winfrom提交

duyong hace 3 años
padre
commit
8fd4eb0b34

+ 3 - 2
CarMeterSystem/App.config

@@ -7,10 +7,10 @@
 		<!--<add key="ServiceUrl" value="http://127.0.0.1:9004/v1" />-->
     <!--<add key="ServiceUrl" value="http://10.104.4.105:9004/v1" />-->
     <!--<add key="ServiceUrl" value="http://192.168.216.143:9004/v1" />-->
-    <add key="ServiceUrl" value="http://10.104.0.1:9004/v1" />
+    <!--<add key="ServiceUrl" value="http://10.104.0.1:9004/v1" />-->
 		<!--<add key="ServiceUrl" value="http://192.168.107.60:8888/icore.icp.winform/pass/jlcar"/>-->
     <!--<add key="ServiceUrl" value="http://192.168.185.29/icore.icp.winform/pass/jlcar"/>-->
-    <!--<add key="ServiceUrl" value="http://jgwzjl.jiugang.com/icore.icp.web/pass/systemBase/v1"/>-->
+    <add key="ServiceUrl" value="http://jgwzjl.jiugang.com/icore.icp.web/pass/systemBase/v1"/>
     <!--实时库地址-->
 		<add key="icoredbTcp" value="tarantool://guest@10.99.200.86:2101" />
 		<!--SFTP或者vsftp服务端连接及地址-->
@@ -49,6 +49,7 @@
     <add key="carAdd" value="1" />
 
     <add key="isSendZNLC" value="1" />
+    <add key="isWriteRFID" value="1" />
 	</appSettings>
 	<system.web>
 		<membership defaultProvider="ClientAuthenticationMembershipProvider">

+ 86 - 18
CarMeterSystem/Form1.cs

@@ -7,6 +7,7 @@ using MeterModelLibrary;
 using MeterModuleLibrary.uc;
 using MeterPlugInLibrary;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Data;
 using System.Diagnostics;
@@ -51,9 +52,12 @@ namespace CarMeterSystem
         //语音播报
         private VoicePlay vicPlayClass = new VoicePlay();
 
-        //扫码枪
+        //扫码枪1
         private SweepCode sweepCodeClass = new SweepCode();
 
+        //扫码枪2
+        private SweepCodeCpoy sweepCodeCpoyClass = new SweepCodeCpoy();
+
         private LED_Control led_controler = null;
 
         //验证校秤数据
@@ -182,6 +186,7 @@ namespace CarMeterSystem
 
                         imageCurlControl.Start(); //图片采集线程
                         sweepCodeClass.StartThreadSweep(); //扫码线程
+                        sweepCodeCpoyClass.StartThreadSweep(); //扫码线程
                         ////***********************暂时注释掉*****************************************************
                         ////sweepCodeClass.StartThreadSweep();
                         ////**************************************************************************************
@@ -291,6 +296,9 @@ namespace CarMeterSystem
         private string editCarNo = "";
         private string preCarNo = "";
 
+        MeterWorkCarActualFirstService mwcfs = new MeterWorkCarActualFirstService();
+        RESTfulResult<string> rmsSweepCodeClass = new RESTfulResult<string>();
+
         /// <summary>
         /// 数据采集
         /// </summary>
@@ -322,36 +330,96 @@ namespace CarMeterSystem
                 #endregion
 
                 #region 扫码信息
+
+
                 sweepCodeClass.StrState = e.weightStatus + ""; //重量状态信息;当StrState= 0时,获取扫码信息,StrState= 2时将扫码信息置位“”空;其他状态不处理
-                l.WriteLog(12,sweepCodeClass.ToString());
-                if (string.IsNullOrEmpty(sweepCodeClass.StrCode))
+                sweepCodeCpoyClass.StrState = e.weightStatus + ""; //重量状态信息;当StrState= 0时,获取扫码信息,StrState= 2时将扫码信息置位“”空;其他状态不处理
+                l.WriteLog(12, sweepCodeClass.ToString());
+                l.WriteLog(12, sweepCodeCpoyClass.ToString());
+
+
+                if (string.IsNullOrEmpty(sweepCodeCpoyClass.StrCode))
                 {
                     if (string.IsNullOrEmpty(PbCache.strCode))
                     {
                         codeFlag = false;
                         firstCode = "";
                         PbCache.strCode = "";
-                        l.WriteLog(12, "主线程扫码值为空时清空;sweepCodeClass.StrCode值为" + sweepCodeClass.StrCode + " ;PbCache.strCode值为:" + PbCache.strCode);
+                        l.WriteLog(12, "主线程扫码值为空时清空;sweepCodeCpoyClass.StrCode值为" + sweepCodeCpoyClass.StrCode + " ;PbCache.strCode值为:" + PbCache.strCode);
+                    }
+                    else
+                    {
+                        if (string.IsNullOrEmpty(sweepCodeClass.StrCode))
+                        {
+                            if (string.IsNullOrEmpty(PbCache.strCode))
+                            {
+                                codeFlag = false;
+                                firstCode = "";
+                                PbCache.strCode = "";
+                                l.WriteLog(12, "主线程扫码值为空时清空;sweepCodeClass.StrCode值为" + sweepCodeClass.StrCode + " ;PbCache.strCode值为:" + PbCache.strCode);
+                            }
+                        }
+                        else
+                        {
+                            codeFlag = true;
+                            frmOneYardToEnd frmOneYardToEnd = new frmOneYardToEnd();
+                            Hashtable hashTable = new Hashtable();
+                            hashTable.Add("message", sweepCodeClass.StrCode);
+                            rmsSweepCodeClass = mwcfs.DecryptionForWfTest(hashTable);
+                            if (rmsSweepCodeClass.Code == "0")
+                            {
+                                PbCache.collect.carno = rmsSweepCodeClass.Data;
+                                PbCache.strCode = rmsSweepCodeClass.Data;
+                            }
+                            if (rmsSweepCodeClass.Code == "1")
+                            {
+                                vicPlayClass.GetVoicePlay("车号二维码已过期", PbCache.collect.carno);
+                                frmOneYardToEnd.setMsgInfo("车号二维码已过期");
+                            }
+                            if (rmsSweepCodeClass.Code == "2")
+                            {
+                                vicPlayClass.GetVoicePlay("不是有效车号二维码", PbCache.collect.carno);
+                                frmOneYardToEnd.setMsgInfo("不是有效车号二维码");
+                            }
+                            if (rmsSweepCodeClass.Code == "9")
+                            {
+                                vicPlayClass.GetVoicePlay("不是有效车号二维码", PbCache.collect.carno);
+                                frmOneYardToEnd.setMsgInfo("不是有效车号二维码");
+                            }
+                            l.WriteLog(12, "测试扫码值" + rmsSweepCodeClass.Data);
+                        }
                     }
                 }
                 else
                 {
-                    ////日期2021年12月22日:重复扫码,取前面12位
-                    //if (sweepCodeClass.StrCode.Length > 15)
-                    //{
-                    //    sweepCodeClass.StrCode = sweepCodeClass.StrCode.Substring(12);
-                    //}
-                    //if (firstCode != sweepCodeClass.StrCode || string.IsNullOrEmpty(PbCache.strCode))
-                    //{
-                    //    l.WriteLog(12, "主线程扫码值赋值;sweepCodeClass.StrCode值为" + sweepCodeClass.StrCode + " ;PbCache.strCode前值为:" + PbCache.strCode);
-                    //    PbCache.strCode = sweepCodeClass.StrCode;
-                    //    firstCode = PbCache.strCode;
-                    //}
-                    l.WriteLog(12, "测试扫码值"+PbCache.strCode);
-                    PbCache.collect.carno = sweepCodeClass.StrCode;
-                    PbCache.strCode = sweepCodeClass.StrCode;
                     codeFlag = true;
+                    frmOneYardToEnd frmOneYardToEnd = new frmOneYardToEnd();
+                    Hashtable hashTable = new Hashtable();
+                    hashTable.Add("message", sweepCodeCpoyClass.StrCode);
+                    rmsSweepCodeClass = mwcfs.DecryptionForWfTest(hashTable);
+                    if (rmsSweepCodeClass.Code == "0")
+                    {
+                        PbCache.collect.carno = rmsSweepCodeClass.Data;
+                        PbCache.strCode = rmsSweepCodeClass.Data;
+                    }
+                    if (rmsSweepCodeClass.Code == "1")
+                    {
+                        vicPlayClass.GetVoicePlay("车号二维码已过期", PbCache.collect.carno);
+                        frmOneYardToEnd.setMsgInfo("车号二维码已过期");
+                    }
+                    if (rmsSweepCodeClass.Code == "2")
+                    {
+                        vicPlayClass.GetVoicePlay("不是有效车号二维码", PbCache.collect.carno);
+                        frmOneYardToEnd.setMsgInfo("不是有效车号二维码");
+                    }
+                    if (rmsSweepCodeClass.Code == "9")
+                    {
+                        vicPlayClass.GetVoicePlay("不是有效车号二维码", PbCache.collect.carno);
+                        frmOneYardToEnd.setMsgInfo("不是有效车号二维码");
+                    }
+                    l.WriteLog(12, "测试扫码值" + rmsSweepCodeClass.Data);
                 }
+                
                 #endregion
 
                 #region 秤上无车10分钟获取一次基础数据

+ 163 - 115
CarMeterSystem/frmMain.cs

@@ -7,6 +7,7 @@ using MeterModelLibrary;
 using MeterModuleLibrary.uc;
 using MeterPlugInLibrary;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Data;
 using System.Diagnostics;
@@ -331,9 +332,28 @@ namespace CarMeterSystem
         private string editCarNo = "";
 
         private bool isResFlag = true;
+        private string RFIDCarNo = "";
+        private string isWriteRFID = AppConfigCache.isWriteRFID;
 
         private int num = 0;
-
+        //EventData实例化
+        RESTfulResult<string> rmsEventDataLastTime = new RESTfulResult<string>();
+        RESTfulResult<List<MeterWorkMonitor>> rmUpdateEventDataMonitor = new RESTfulResult<List<MeterWorkMonitor>>();
+        MeterWorkMonitor updateEventDataMonitor = new MeterWorkMonitor();
+        MeterMonitorWeight meterMonitorWeightEventData1 = new MeterMonitorWeight();
+        MeterMonitorWeight meterMonitorWeightEventData2 = new MeterMonitorWeight();
+        MeterWorkMonitor mwUpdate = new MeterWorkMonitor();
+        PbModelDbService<List<PbModelDb>> pbpRFIDEventData = new PbModelDbService<List<PbModelDb>>();
+        RESTfulResult<List<PbModelDb>> rmTRFIDEventData = new RESTfulResult<List<PbModelDb>>();
+        RESTfulResult<string> rmsmwUpdateEventData = new RESTfulResult<string>();
+        MeterWorkScheduledHelp meterWorkScheduledHelp1 = new MeterWorkScheduledHelp();
+        MeterWorkScheduledHelp meterWorkScheduledHelpRFID = new MeterWorkScheduledHelp();
+        RESTfulResult<string> rmsdoUpdateWfEventData = new RESTfulResult<string>();
+        RESTfulResult<string> rmssEventData = new RESTfulResult<string>();
+        MeterWorkMonitor meterWorkMonitorEventDataI = new MeterWorkMonitor();
+        MeterWorkCarActualFirstService mwcfs = new MeterWorkCarActualFirstService();
+        RESTfulResult<string> rmsSweepCodeClass = new RESTfulResult<string>();
+        frmOneYardToEnd frmOneYardToEnd = new frmOneYardToEnd();
         /// <summary>
         /// 数据采集
         /// </summary>
@@ -346,6 +366,7 @@ namespace CarMeterSystem
                 timer1.Enabled = true;
                 l.WriteLog(32, "定时器重启(timer1_Tick:frmMain),车号:" + PbCache.resultCarNo + "||" + (PbCache.collect == null ? "" : PbCache.collect.carno));
             }
+            #region
             //num++;
 
             //e.carno = "湘G88888";
@@ -374,7 +395,7 @@ namespace CarMeterSystem
             //{
             //    e.weight = 400;
             //}
-
+            #endregion
 
 
             //这里每隔0.5秒执行一次
@@ -412,10 +433,31 @@ namespace CarMeterSystem
                     //    PbCache.strCode = sweepCodeClass.StrCode;
                     //    firstCode = PbCache.strCode;
                     //}
-                    l.WriteLog(12, "测试扫码值" + PbCache.strCode);
-                    PbCache.collect.carno = sweepCodeClass.StrCode;
-                    PbCache.strCode = sweepCodeClass.StrCode;
                     codeFlag = true;
+                    Hashtable hashTable = new Hashtable();
+                    hashTable.Add("message", sweepCodeClass.StrCode);
+                    rmsSweepCodeClass = mwcfs.DecryptionForWfTest(hashTable);
+                    if (rmsSweepCodeClass.Code == "0")
+                    {
+                        PbCache.collect.carno = rmsSweepCodeClass.Data;
+                        PbCache.strCode = rmsSweepCodeClass.Data;
+                    }
+                    if (rmsSweepCodeClass.Code == "1")
+                    {
+                        vicPlayClass.GetVoicePlay("车号二维码已过期", PbCache.collect.carno);
+                        frmOneYardToEnd.setMsgInfo("车号二维码已过期");
+                    }
+                    if (rmsSweepCodeClass.Code == "2")
+                    {
+                        vicPlayClass.GetVoicePlay("不是有效车号二维码", PbCache.collect.carno);
+                        frmOneYardToEnd.setMsgInfo("不是有效车号二维码");
+                    }
+                    if (rmsSweepCodeClass.Code == "9")
+                    {
+                        vicPlayClass.GetVoicePlay("不是有效车号二维码", PbCache.collect.carno);
+                        frmOneYardToEnd.setMsgInfo("不是有效车号二维码");
+                    }
+                    l.WriteLog(12, "测试扫码值" + PbCache.strCode);
                 }
 
                 #endregion 扫码信息
@@ -455,10 +497,10 @@ namespace CarMeterSystem
                 if (iCount % 20 == 0)
                 {
                     //更新在线时间
-                    RESTfulResult<string> rms = meterWorkMonitor.doUpdateWfBySpotNo(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo});
-                    if (!rms.Succeed)
+                    rmsEventDataLastTime = meterWorkMonitor.doUpdateWfBySpotNo(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo});
+                    if (!rmsEventDataLastTime.Succeed)
                     {
-                        l.WriteLog(0, "frmMain.EventData异常:写入时间异常,原因:" + rms.ResultMessage);
+                        l.WriteLog(0, "frmMain.EventData异常:写入时间异常,原因:" + rmsEventDataLastTime.ResultMessage);
                     }
                 }
                 #endregion
@@ -527,26 +569,28 @@ namespace CarMeterSystem
                     if (iCount % 2 == 0)
                     {
                         //调用该方法时已赋值
-                        RESTfulResult<List<MeterWorkMonitor>> rm = meterWorkMonitor.doQueryOneWf(new MeterWorkMonitor { validFlag = "1", pointNo = PbCache.sportInfo.baseSpotNo });
-                        if (!rm.Succeed)
+                        updateEventDataMonitor.validFlag = "1";
+                        updateEventDataMonitor.pointNo = PbCache.sportInfo.baseSpotNo;
+                        rmUpdateEventDataMonitor = meterWorkMonitor.doQueryOneWf(updateEventDataMonitor);
+                        if (!rmUpdateEventDataMonitor.Succeed)
                         {
-                            l.WriteLog(0, "frmMain.EventData异常419:" + rm.ResultMessage);
+                            l.WriteLog(0, "frmMain.EventData异常419:" + rmUpdateEventDataMonitor.ResultMessage);
                         }
                         else
                         {
-                            if (rm.Data != null && rm.Data.Count > 0)
+                            if (rmUpdateEventDataMonitor.Data != null && rmUpdateEventDataMonitor.Data.Count > 0)
                             {
-                                PbCache.monitor = rm.Data[0];
+                                PbCache.monitor = rmUpdateEventDataMonitor.Data[0];
 
                                 if (string.IsNullOrEmpty(PbCache.collect_no))
                                 {
-                                    PbCache.collect_no = rm.Data[0].collectionCode;
+                                    PbCache.collect_no = rmUpdateEventDataMonitor.Data[0].collectionCode;
                                 }
 
-                                if (ledTxt != rm.Data[0].ledWriter && rm.Data[0].ledWriter != "")
+                                if (ledTxt != rmUpdateEventDataMonitor.Data[0].ledWriter && rmUpdateEventDataMonitor.Data[0].ledWriter != "")
                                 {
                                     //调用LED信息写入******************************
-                                    ledTxt = rm.Data[0].ledWriter;
+                                    ledTxt = rmUpdateEventDataMonitor.Data[0].ledWriter;
                                 }
 
                                 if (string.IsNullOrEmpty(ledTxt))
@@ -599,29 +643,24 @@ namespace CarMeterSystem
                             {
                                 preWgt = e.weight;
                                 sPreNo = PbCache.sportInfo.baseSpotNo + DateTime.Now.ToString("yyyyMMddHHmmssfff");
-
-                                monitorWeightService.doAddWf(new MeterMonitorWeight
-                                {
-                                    weightNo = sPreNo,
-                                    baseSpotNo = PbCache.sportInfo.baseSpotNo,
-                                    baseSpotName = PbCache.sportInfo.baseSpotName,
-                                    collectWeight = e.weight + "",
-                                    collectStartTime = PbCache.dtStartTime.Value,
-                                    collectEndTime = DateTime.Now,
-                                    spotTypeNo = "001002001",
-                                    spotTypeName = "汽车衡",
-                                    actualFirstNo = PbCache.actualFirstNo
-                                });
+                                meterMonitorWeightEventData1.weightNo = sPreNo;
+                                meterMonitorWeightEventData1.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                                meterMonitorWeightEventData1.baseSpotName = PbCache.sportInfo.baseSpotName;
+                                meterMonitorWeightEventData1.collectWeight = e.weight + "";
+                                meterMonitorWeightEventData1.collectStartTime = PbCache.dtStartTime.Value;
+                                meterMonitorWeightEventData1.collectEndTime = DateTime.Now;
+                                meterMonitorWeightEventData1.spotTypeNo = "001002001";
+                                meterMonitorWeightEventData1.spotTypeName = "汽车衡";
+                                meterMonitorWeightEventData1.actualFirstNo = PbCache.actualFirstNo;
+                                monitorWeightService.doAddWf(meterMonitorWeightEventData1);
                             }
                             else
                             {
                                 if (!string.IsNullOrEmpty(sPreNo))
                                 {
-                                    monitorWeightService.doUpdateWf(new MeterMonitorWeight
-                                    {
-                                        weightNo = sPreNo,
-                                        collectEndTime = DateTime.Now
-                                    });
+                                    meterMonitorWeightEventData2.weightNo = sPreNo;
+                                    meterMonitorWeightEventData2.collectEndTime = DateTime.Now;
+                                    monitorWeightService.doUpdateWf(meterMonitorWeightEventData2);
                                 }
                             }
                         }
@@ -630,7 +669,6 @@ namespace CarMeterSystem
 
                         #region 停留超时
                         iHodeTime++;
-                        MeterWorkMonitor mwUpdate = new MeterWorkMonitor();
                         mwUpdate.pointNo = PbCache.sportInfo.baseSpotNo;
                         mwUpdate.editCar = editCarNo;
 
@@ -662,14 +700,14 @@ namespace CarMeterSystem
                         {
                             string sqls = @"SELECT RFID_ID id,CAR_NO text FROM METER_BASE_RFID_INFO where RFID_CODE = '" + e.RfidNos + "'";
 
-                            PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
-                            RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
-                            if (rmT.Data == null || rmT.Data.Count == 0)
+                            rmTRFIDEventData = pbpRFIDEventData.executeSqlDataWf(sqls);
+                            if (rmTRFIDEventData.Data == null || rmTRFIDEventData.Data.Count == 0)
                             { }
                             else
                             {
-                                mwUpdate.rfidCar = rmT.Data[0].text;
-                                sCarNo = rmT.Data[0].text;
+                                mwUpdate.rfidCar = rmTRFIDEventData.Data[0].text;
+                                sCarNo = rmTRFIDEventData.Data[0].text;
+                                RFIDCarNo = rmTRFIDEventData.Data[0].text;
                             }
                         }
                         #endregion
@@ -700,8 +738,8 @@ namespace CarMeterSystem
                         mwUpdate.msgInfo = PbCache.ResultMessage;
                         mwUpdate.weightStatus = PbCache.collect.weightStatus;
                         //另外初始化一次监控数据
-                        RESTfulResult<string> rms = meterWorkMonitor.doUpdateWf(mwUpdate);
-                        if (!rms.Succeed)
+                        rmsmwUpdateEventData = meterWorkMonitor.doUpdateWf(mwUpdate);
+                        if (!rmsmwUpdateEventData.Succeed)
                         {
                             l.WriteLog(0, "frmMain.EventData异常583:写入信息异常" + mwUpdate);
                         }
@@ -770,7 +808,7 @@ namespace CarMeterSystem
                         MeterWorkMonitor mwUpdate = new MeterWorkMonitor();
                         mwUpdate.pointNo = PbCache.sportInfo.baseSpotNo;
                         mwUpdate.wgt = e.weight;
-                        RESTfulResult<string> rms = meterWorkMonitor.doUpdateWf(mwUpdate);
+                        rmsdoUpdateWfEventData = meterWorkMonitor.doUpdateWf(mwUpdate);
                     }
                     if (e.weight > 0 && e.weight < 200)
                     {
@@ -792,7 +830,6 @@ namespace CarMeterSystem
                     if (isResFlag)
                     {
                         isResFlag = false;
-                        MeterWorkScheduledHelp meterWorkScheduledHelp1 = new MeterWorkScheduledHelp();
                         meterWorkScheduledHelp1.baseSpotNo = PbCache.sportInfo.baseSpotNo;
                         meterWorkScheduledHelp1.baseSpotName = PbCache.sportInfo.baseSpotName;
                         meterWorkScheduledHelp1.carNo = string.IsNullOrEmpty(PbCache.collect.carno) ? PbCache.resultCarNo : PbCache.collect.carno;
@@ -802,7 +839,18 @@ namespace CarMeterSystem
                         meterWorkScheduledHelpService.add(meterWorkScheduledHelp1);
                         l.WriteLog(28, "车号:" + (string.IsNullOrEmpty(PbCache.collect.carno) ? (string.IsNullOrEmpty(PbCache.resultCarNo) ? "未识别" : PbCache.resultCarNo) : PbCache.collect.carno) + ";重量:" + (PbCache.lockWgt == 0 ? PbCache.resultWgt : PbCache.lockWgt + "") + ";提示信息:" + PbCache.resultMsgAll);
                     }
-
+                    //不等于空的时候说明写过一次日志了
+                    if (!string.IsNullOrEmpty(RFIDCarNo) && isWriteRFID == "1")
+                    {
+                        meterWorkScheduledHelp1.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                        meterWorkScheduledHelp1.baseSpotName = PbCache.sportInfo.baseSpotName;
+                        meterWorkScheduledHelp1.carNo = string.IsNullOrEmpty(PbCache.collect.carno) ? PbCache.resultCarNo : PbCache.collect.carno;
+                        meterWorkScheduledHelp1.helpContent = RFIDCarNo;
+                        meterWorkScheduledHelp1.warmType = "7";
+                        meterWorkScheduledHelp1.warmTypeName = "RFID识别率";
+                        meterWorkScheduledHelpService.add(meterWorkScheduledHelp1);
+                        RFIDCarNo = "";
+                    }
 
                     PbCache.isOvertimeAlarm = false; //是否超时报警
                     PbCache.strCode = "";
@@ -832,39 +880,37 @@ namespace CarMeterSystem
                             uc.setControlEnable(false);
                         }
                     }
-
+                    
+                    meterWorkMonitorEventDataI.pointNo = PbCache.sportInfo.baseSpotNo;
+                    meterWorkMonitorEventDataI.validWgt = "1";
+                    meterWorkMonitorEventDataI.validCarno = "1";
+                    meterWorkMonitorEventDataI.validTareTime = "1";
+                    meterWorkMonitorEventDataI.validMatTime = "1";
+                    meterWorkMonitorEventDataI.validTimeInterval = "1";
+                    meterWorkMonitorEventDataI.validParkStatus = "1";
+                    meterWorkMonitorEventDataI.validExceedWgt = "1";
+                    meterWorkMonitorEventDataI.validPredictionDiff = "1";
+                    meterWorkMonitorEventDataI.validLianda = "1";
+                    meterWorkMonitorEventDataI.validMatClick = "1";
+                    meterWorkMonitorEventDataI.setCar = "";
+                    meterWorkMonitorEventDataI.rfidCar = "";
+                    meterWorkMonitorEventDataI.photoCar = "";
+                    meterWorkMonitorEventDataI.scanCar = "";
+                    meterWorkMonitorEventDataI.editCar = "";
+                    meterWorkMonitorEventDataI.zeroState = "0";
+                    meterWorkMonitorEventDataI.carErr = "0";
+                    meterWorkMonitorEventDataI.ferroalloyResult = "0";
+                    meterWorkMonitorEventDataI.wgtErr = "0";
+                    meterWorkMonitorEventDataI.stopOverTime = "0";
+                    meterWorkMonitorEventDataI.msgInfo = "";
+                    meterWorkMonitorEventDataI.ledWriter = "";
+                    meterWorkMonitorEventDataI.isOverWgt = "";
+                    meterWorkMonitorEventDataI.isHelp = "0";
+                    meterWorkMonitorEventDataI.wgt = e.weight;
                     //*
                     //另外初始化一次监控数据
-                    RESTfulResult<string> rmss = meterWorkMonitor.doUpdateWf(new MeterWorkMonitor
-                    {
-                        pointNo = PbCache.sportInfo.baseSpotNo,
-                        validWgt = "1",
-                        validCarno = "1",
-                        validTareTime = "1",
-                        validMatTime = "1",
-                        validTimeInterval = "1",
-                        validParkStatus = "1",
-                        validExceedWgt = "1",
-                        validPredictionDiff = "1",
-                        validLianda = "1",
-                        validMatClick = "1",
-                        setCar = "",
-                        rfidCar = "",
-                        photoCar = "",
-                        scanCar = "",
-                        editCar = "",
-                        zeroState = "0",
-                        carErr = "0",
-                        ferroalloyResult = "0",
-                        wgtErr = "0",
-                        stopOverTime = "0",
-                        msgInfo = "",
-                        ledWriter = "",
-                        isOverWgt = "",
-                        isHelp = "0",
-                        wgt = e.weight
-                    });
-                    if (!rmss.Succeed)
+                    RESTfulResult<string> rmssEventData = meterWorkMonitor.doUpdateWf(meterWorkMonitorEventDataI);
+                    if (!rmssEventData.Succeed)
                     {
                         l.WriteLog(0, "frmMain.EventData异常754:写入信息异常");
                     }
@@ -887,6 +933,7 @@ namespace CarMeterSystem
         private delegate void ShowBtnTare(bool flag);//定义委托  期限皮重按钮
 
 
+        List<LiveData> lldoOperateLive = new List<LiveData>();
         /// <summary>
         /// 操作Live表的数据:零点报警
         /// </summary>
@@ -895,10 +942,10 @@ namespace CarMeterSystem
             {
                 return;
             }
-            List<LiveData> ll = MemoClass.getWarnInfo(PbCache.collect_no);
-            if (ll != null)
+            lldoOperateLive = MemoClass.getWarnInfo(PbCache.collect_no);
+            if (lldoOperateLive != null)
             {
-                foreach (LiveData lv in ll)
+                foreach (LiveData lv in lldoOperateLive)
                 {
                     switch (lv.Tagname.Replace(PbCache.collect_no, ""))
                     {
@@ -927,7 +974,9 @@ namespace CarMeterSystem
             }
         }
 
-
+        List<LiveData> lldoLive = new List<LiveData>();
+        RESTfulResult<string> rmsdoLive = new RESTfulResult<string>();
+        MeterWorkMonitor mwmdoLive = new MeterWorkMonitor();
         /// <summary>
         /// 操作Live表的数据:零点报警
         /// </summary>
@@ -937,76 +986,75 @@ namespace CarMeterSystem
             {
                 return;
             }
-            List<LiveData> ll = MemoClass.getWarnInfo(PbCache.collect_no);
-            MeterWorkMonitor mwm = new MeterWorkMonitor();
-            mwm.pointNo = PbCache.sportInfo.baseSpotNo;
-            mwm.redGreenLightState = "0";
-            if (ll != null)
+            lldoLive = MemoClass.getWarnInfo(PbCache.collect_no);
+            mwmdoLive.pointNo = PbCache.sportInfo.baseSpotNo;
+            mwmdoLive.redGreenLightState = "0";
+            if (lldoLive != null)
             {
-                foreach (LiveData lv in ll)
+                foreach (LiveData lv in lldoLive)
                 {
                     switch (lv.Tagname.Replace(PbCache.collect_no, ""))
                     {
                         case "PowerStatus":
-                            mwm.powerState = lv.Value.ToString();
+                            mwmdoLive.powerState = lv.Value.ToString();
                             break;
                         case "PlcWatchDog":
                             if (int.Parse(lv.Value.ToString()) >= 0 && int.Parse(lv.Value.ToString()) <= 0)
                             {
-                                mwm.plcState = 0.ToString();
+                                mwmdoLive.plcState = 0.ToString();
                             }
                             break;
                         case "InfraredWest":
                             if (lv.Value.ToString() == "2")
                             {
-                                mwm.leftInfraredRayState = "0";
+                                mwmdoLive.leftInfraredRayState = "0";
                             }
                             else
                             {
-                                mwm.leftInfraredRayState = lv.Value.ToString();
+                                mwmdoLive.leftInfraredRayState = lv.Value.ToString();
                             }
                             break;
                         case "InfraredEast":
                             if (lv.Value.ToString() == "2")
                             {
-                                mwm.rightInfraredRayState = "0";
+                                mwmdoLive.rightInfraredRayState = "0";
                             }
                             else
                             {
-                                mwm.rightInfraredRayState = lv.Value.ToString();
+                                mwmdoLive.rightInfraredRayState = lv.Value.ToString();
                             }
                             break;
                         case "AmplifierState":
-                            mwm.amplifierState = lv.Value.ToString();
+                            mwmdoLive.amplifierState = lv.Value.ToString();
                             break;
                         case "LampState":
-                            mwm.lampState = lv.Value.ToString();
+                            mwmdoLive.lampState = lv.Value.ToString();
                             break;
                         case "InfraredLeft":
                             if (lv.Value.ToString() == "2")
                             {
-                                mwm.frontInfraredRayState = "0";
+                                mwmdoLive.frontInfraredRayState = "0";
                             }
                             else
                             {
-                                mwm.frontInfraredRayState = lv.Value.ToString();
+                                mwmdoLive.frontInfraredRayState = lv.Value.ToString();
                             }
                             break;
                         case "InfraredRight":
                             if (lv.Value.ToString() == "2")
                             {
-                                mwm.rearInfraredRayState = "0";
+                                mwmdoLive.rearInfraredRayState = "0";
                             }
                             else
                             {
-                                mwm.rearInfraredRayState = lv.Value.ToString();
+                                mwmdoLive.rearInfraredRayState = lv.Value.ToString();
                             }
                             break;
                         case "RfidState":
-                            mwm.rfidState = lv.Value.ToString();
+                            mwmdoLive.rfidState = lv.Value.ToString();
                             break;
                         case "ZeroWeightStatus":
-                            mwm.zeroState = lv.Value.ToString();
+                            mwmdoLive.zeroState = lv.Value.ToString();
                             if (((lv.Value ?? "0") + "").Equals("1"))
                             {
                                 doInsertZeroAlarm();
@@ -1020,10 +1068,11 @@ namespace CarMeterSystem
                     }
                 }
             }
-            RESTfulResult<string> rms = meterWorkMonitor.doUpdateWf(mwm);
+            rmsdoLive = meterWorkMonitor.doUpdateWf(mwmdoLive);
         }
 
-
+        MeterWorkZeroAlarm workZeroAlarmdoInsertZeroAlarm = new MeterWorkZeroAlarm();
+        RESTfulResult<String> rmsworkZeroAlarmdoInsertZeroAlarm = new RESTfulResult<string>();
         /// <summary>
         /// 新增零点报警的数据
         /// </summary>
@@ -1032,23 +1081,22 @@ namespace CarMeterSystem
             if (!PbCache.isZeroAlarm)
             {
                 PbCache.isZeroAlarm = true;
-                MeterWorkZeroAlarm workZeroAlarm = new MeterWorkZeroAlarm();
-                workZeroAlarm.zeroWeight = PbCache.collect.weight;
-                workZeroAlarm.spotTypeNo = PbCache.sportInfo.spotTypeNo;
-                workZeroAlarm.spotTypeName = PbCache.sportInfo.spotTypeName;
-                workZeroAlarm.baseSpotNo = PbCache.sportInfo.baseSpotNo;
-                workZeroAlarm.baseSpotName = PbCache.sportInfo.baseSpotName;
-                workZeroAlarm.scalePointNo = PbCache.collect_no;
-                workZeroAlarm.createManNo = PbCache.sportInfo.baseSpotNo;
-                workZeroAlarm.createManName = PbCache.sportInfo.baseSpotName;
-                RESTfulResult<String> rms = zeroAlarmService.doInsertZeroAlarm(workZeroAlarm);
-                if (rms.Succeed)
+                workZeroAlarmdoInsertZeroAlarm.zeroWeight = PbCache.collect.weight;
+                workZeroAlarmdoInsertZeroAlarm.spotTypeNo = PbCache.sportInfo.spotTypeNo;
+                workZeroAlarmdoInsertZeroAlarm.spotTypeName = PbCache.sportInfo.spotTypeName;
+                workZeroAlarmdoInsertZeroAlarm.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                workZeroAlarmdoInsertZeroAlarm.baseSpotName = PbCache.sportInfo.baseSpotName;
+                workZeroAlarmdoInsertZeroAlarm.scalePointNo = PbCache.collect_no;
+                workZeroAlarmdoInsertZeroAlarm.createManNo = PbCache.sportInfo.baseSpotNo;
+                workZeroAlarmdoInsertZeroAlarm.createManName = PbCache.sportInfo.baseSpotName;
+                rmsworkZeroAlarmdoInsertZeroAlarm = zeroAlarmService.doInsertZeroAlarm(workZeroAlarmdoInsertZeroAlarm);
+                if (rmsworkZeroAlarmdoInsertZeroAlarm.Succeed)
                 {
-                    l.WriteLog(20, "新增成功:" + workZeroAlarm.baseSpotName +":"+ workZeroAlarm.zeroWeight);
+                    l.WriteLog(20, "新增成功:" + workZeroAlarmdoInsertZeroAlarm.baseSpotName +":"+ workZeroAlarmdoInsertZeroAlarm.zeroWeight);
                 }
                 else
                 {
-                    l.WriteLog(20, "操作失败:" + workZeroAlarm.baseSpotName + ":" + workZeroAlarm.zeroWeight + rms.Data + rms.Message);
+                    l.WriteLog(20, "操作失败:" + workZeroAlarmdoInsertZeroAlarm.baseSpotName + ":" + workZeroAlarmdoInsertZeroAlarm.zeroWeight + rmsworkZeroAlarmdoInsertZeroAlarm.Data + rmsworkZeroAlarmdoInsertZeroAlarm.Message);
                 }
             }
         }

+ 80 - 49
CarMeterSystem/frmOneYardToEnd.cs

@@ -912,6 +912,28 @@ namespace CarMeterSystem
 
         private bool isWriteLog = false;
 
+        //timer1_Tick实例化
+        MeterWorkScheduledHelp meterWorkScheduledHelpTimerPark = new MeterWorkScheduledHelp();
+        RESTfulResult<string> rmsMonitorcarErr1 = new RESTfulResult<string>();
+        RESTfulResult<string> rmsMonitorcarErr2 = new RESTfulResult<string>();
+        MeterWorkMonitor monitorcarErr1 = new MeterWorkMonitor();
+        MeterWorkMonitor monitorcarErr2 = new MeterWorkMonitor();
+        PreTrackScale preTrackScaleVCarNo = new PreTrackScale();
+        PbModelDbService<List<PbModelDb>> pbpAppTimer = new PbModelDbService<List<PbModelDb>>();
+        MeterWorkCalibrationMain meterWorkCalibrationMainTimer = new MeterWorkCalibrationMain();
+        MeterBaseCalibraNumRel calibraNumRelTimer = new MeterBaseCalibraNumRel();
+        RESTfulResult<List<MeterBaseCar>> resCarListTimer = new RESTfulResult<List<MeterBaseCar>>();
+        RESTfulResult<List<MeterBaseCar>> resCarListScaleTimer = new RESTfulResult<List<MeterBaseCar>>();
+        MeterBaseCar carScaleTimer = new MeterBaseCar();
+        RESTfulResult<List<PreTrackScale>> rmScaleListCarTimer = new RESTfulResult<List<PreTrackScale>>();
+        PreTrackScale preTrackScaleCarTimer = new PreTrackScale();
+        MeterWorkCarActualFirst actualFirstTimer = new MeterWorkCarActualFirst();
+        EntityBase<PreTrackScale> entityBaseTimer1 = new EntityBase<PreTrackScale>();
+        RESTfulResult<List<MeterWorkCarActualFirst>> RESTfulResultOutTimer = new RESTfulResult<List<MeterWorkCarActualFirst>>();
+        MeterWorkCarActualFirst outFirstTimer = new MeterWorkCarActualFirst();
+        RESTfulResult<MeterBaseCar> resResgiterCarTimer = new RESTfulResult<MeterBaseCar>();
+        MeterBaseCar resgiterCarTimer = new MeterBaseCar();
+
         private void timer1_Tick(object sender, EventArgs e)
         {
 
@@ -941,14 +963,13 @@ namespace CarMeterSystem
 
                     if (PbCache.collect.parkStatus == 3)
                     {
-                        MeterWorkScheduledHelp meterWorkScheduledHelp = new MeterWorkScheduledHelp();
-                        meterWorkScheduledHelp.baseSpotNo = PbCache.sportInfo.baseSpotNo;
-                        meterWorkScheduledHelp.baseSpotName = PbCache.sportInfo.baseSpotName;
-                        meterWorkScheduledHelp.carNo = PbCache.collect.carno;
-                        meterWorkScheduledHelp.helpContent = "疑似跟车,请核查";
-                        meterWorkScheduledHelp.warmType = "3";
-                        meterWorkScheduledHelp.warmTypeName = "智能终端报警";
-                        meterWorkScheduledHelpService.add(meterWorkScheduledHelp);
+                        meterWorkScheduledHelpTimerPark.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                        meterWorkScheduledHelpTimerPark.baseSpotName = PbCache.sportInfo.baseSpotName;
+                        meterWorkScheduledHelpTimerPark.carNo = PbCache.collect.carno;
+                        meterWorkScheduledHelpTimerPark.helpContent = "疑似跟车,请核查";
+                        meterWorkScheduledHelpTimerPark.warmType = "3";
+                        meterWorkScheduledHelpTimerPark.warmTypeName = "智能终端报警";
+                        meterWorkScheduledHelpService.add(meterWorkScheduledHelpTimerPark);
                     }
 
                     #region 0.接受远程修改过后的车号并显示
@@ -1058,17 +1079,22 @@ namespace CarMeterSystem
                                 {
                                     if (PbCache.monitor.carErr != "1") //写入一次车号异常
                                     {
-                                        RESTfulResult<string> rms = monitor.doUpdateWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo, carErr = "1" });
+                                        monitorcarErr1.pointNo = PbCache.sportInfo.baseSpotNo;
+                                        monitorcarErr1.carErr = "1";
+                                        rmsMonitorcarErr1 = monitor.doUpdateWf(monitorcarErr1);
                                     }
                                 }
                                 else if (PbCache.monitor.carErr == "1") //若车号相等,但是之前写了一次车号异常,此时要改为车号正常
                                 {
-                                    RESTfulResult<string> rms = monitor.doUpdateWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo, carErr = "0" });
+                                    monitorcarErr2.pointNo = PbCache.sportInfo.baseSpotNo;
+                                    monitorcarErr2.carErr = "0";
+                                    rmsMonitorcarErr2 = monitor.doUpdateWf(monitorcarErr2);
                                 }
                             }
 
                             // ??BourneCao 酒钢不可能预报车号和识别车号不一致
-                            vCarNo.ValidMethod(new PreTrackScale { carNo = TrackCarNo });
+                            preTrackScaleVCarNo.carNo = TrackCarNo;
+                            vCarNo.ValidMethod(preTrackScaleVCarNo);
 
                             if (TrackCarNo != PbCache.collect.carno && !PbCache.monitorResult.valid_carno)
                             {
@@ -1151,9 +1177,7 @@ namespace CarMeterSystem
                         if (ConfigurationManager.AppSettings["carAdd"].ToString().Trim() == "1")
                         {
                             string sqls = "UPDATE METER_BASE_APP_TEST SET CAR_NO= '" + PbCache.collect.carno + "' where ID = 1";
-
-                            PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
-                            RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
+                            pbpAppTimer.executeSqlDataWf(sqls);
                         }
                     }
                     #endregion
@@ -1166,15 +1190,17 @@ namespace CarMeterSystem
                     //*
                     if (bRelation)
                     {
+                        meterWorkCalibrationMainTimer.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                        meterWorkCalibrationMainTimer.valueFlag = "2";
                         string msgInfo = "";
-                        isCalibration = vCalib.ValidMethod(new MeterWorkCalibrationMain { baseSpotNo = PbCache.sportInfo.baseSpotNo, valueFlag = "2" }, out msgInfo);
+                        isCalibration = vCalib.ValidMethod(meterWorkCalibrationMainTimer, out msgInfo);
                         bRelation = false;
                     }
 
                     if (!isCalibration)
                     {
-                        MeterBaseCalibraNumRel calibraNumRel = PbCache.ltBaseCalibraNumRel.Where(s => s.baseSpotNo == PbCache.sportInfo.baseSpotNo).FirstOrDefault();
-                        if (calibraNumRel == null || calibraNumRel.isMeter == "否" || PbCache.collect.weight > (calibraNumRel.upWeight == null ? 0 : calibraNumRel.upWeight.Value))
+                        calibraNumRelTimer = PbCache.ltBaseCalibraNumRel.Where(s => s.baseSpotNo == PbCache.sportInfo.baseSpotNo).FirstOrDefault();
+                        if (calibraNumRelTimer == null || calibraNumRelTimer.isMeter == "否" || PbCache.collect.weight > (calibraNumRelTimer.upWeight == null ? 0 : calibraNumRelTimer.upWeight.Value))
                         {
                             if (!bXCStart)
                             {
@@ -1225,12 +1251,12 @@ namespace CarMeterSystem
 
                     if (!string.IsNullOrEmpty(PbCache.collect.carno))
                     {
-                        RESTfulResult<List<MeterBaseCar>> resCarList = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno, validFlag = "0" });
-                        if (resCarList.Data == null || resCarList.Data.Count == 0 || resCarList.Data.Count != 1)
+                        resCarListTimer = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno, validFlag = "0" });
+                        if (resCarListTimer.Data == null || resCarListTimer.Data.Count == 0 || resCarListTimer.Data.Count != 1)
                         {
                             if (!registerCar)
                             {
-                                RESTfulResult<MeterBaseCar> res = carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
+                                carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
                                 registerCar = true;
                             }
                             
@@ -1255,48 +1281,49 @@ namespace CarMeterSystem
                             led_controler.setStaticLineMsg(PbCache.sportInfo.ledIp, "车号未识别,请联系处理");
                             return;
                         }
-                        RESTfulResult<List<MeterBaseCar>> resCarList = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno, validFlag = "0" }); 
-                        if (resCarList.Succeed)
+                        
+
+                        resCarListScaleTimer = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno, validFlag = "0" }); 
+                        if (resCarListScaleTimer.Succeed)
                         {
-                            if (resCarList.Data != null && resCarList.Data.Count == 1)
+                            if (resCarListScaleTimer.Data != null && resCarListScaleTimer.Data.Count == 1)
                             {
-                                MeterBaseCar car = resCarList.Data[0];
+                                carScaleTimer = resCarListScaleTimer.Data[0];
                                 //厂内车辆
-                                if (car.carTypeNo == "001004003")
+                                if (carScaleTimer.carTypeNo == "001004003")
                                 {
-                                    RESTfulResult<List<PreTrackScale>> rmScale = PreTrackScaleService.doQueryByFlag(new PreTrackScale { carNo = PbCache.collect.carno, lineDesc = "1" });
+                                    preTrackScaleCarTimer.carNo = PbCache.collect.carno;
+                                    preTrackScaleCarTimer.lineDesc = "1";
+                                    rmScaleListCarTimer = PreTrackScaleService.doQueryByFlag(preTrackScaleCarTimer);
 
-                                    if (rmScale.Succeed)
+                                    if (rmScaleListCarTimer.Succeed)
                                     {
-                                        if (rmScale.Data != null && rmScale.Data.Count == 1)
+                                        if (rmScaleListCarTimer.Data != null && rmScaleListCarTimer.Data.Count == 1)
                                         {
-                                            MeterWorkCarActualFirst actualFirst = new MeterWorkCarActualFirst();
-
-                                            firstWgt = rmScale.Data[0].meterWeight == null ? 0 : rmScale.Data[0].meterWeight.Value;
-
-                                            EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
-                                            actualFirst = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], actualFirst);
-
-                                            actualFirst.predictionNo = actualFirst.predictionNo.Replace("_", "");
+                                            firstWgt = rmScaleListCarTimer.Data[0].meterWeight == null ? 0 : rmScaleListCarTimer.Data[0].meterWeight.Value;
+                                            actualFirstTimer = entityBaseTimer1.format<MeterWorkCarActualFirst>(rmScaleListCarTimer.Data[0], actualFirstTimer);
+                                            actualFirstTimer.predictionNo = actualFirstTimer.predictionNo.Replace("_", "");
                                             //给用户控件设置值
-                                            ucCarMeterInfoJisco1.setFormControlValue(actualFirst);
+                                            ucCarMeterInfoJisco1.setFormControlValue(actualFirstTimer);
                                         }
                                     }
                                     bRailwayActual = false;
                                 }
                                 //厂外车辆
-                                else if (car.carTypeNo == "001004002" && !PbCache.isPre)
+                                else if (carScaleTimer.carTypeNo == "001004002" && !PbCache.isPre)
                                 {
                                     #region 查询一次计量表中是否存在一条未结净的数据,非一车联运情况扫码两次,一车联运的话
-                                    RESTfulResult<List<MeterWorkCarActualFirst>> RESTfulResult = workCarActualFirstService.doQueryWf(new MeterWorkCarActualFirst { carNo = PbCache.collect.carno, valueFlag = "1" });
-                                    if (RESTfulResult.Succeed)
+                                    outFirstTimer.carNo = PbCache.collect.carno;
+                                    outFirstTimer.valueFlag = "1";
+                                    RESTfulResultOutTimer = workCarActualFirstService.doQueryWf(outFirstTimer);
+                                    if (RESTfulResultOutTimer.Succeed)
                                     {
-                                        if (RESTfulResult.Data != null && RESTfulResult.Data.Count > 0)
+                                        if (RESTfulResultOutTimer.Data != null && RESTfulResultOutTimer.Data.Count > 0)
                                         {
                                             if (PbCache.sportInfo.baseSpotNo == lianDaPointNo)
                                             {
                                                 bool flag = false;
-                                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data)
+                                                foreach (MeterWorkCarActualFirst fs in RESTfulResultOutTimer.Data)
                                                 {
                                                     //联达磅过的联达物料
                                                     if (fs.predictionNo.Contains("_"))
@@ -1312,8 +1339,8 @@ namespace CarMeterSystem
                                                 }
                                                 if (!flag)
                                                 {
-                                                    firstWgt = RESTfulResult.Data[0].meterWeight.Value;
-                                                    firstDb = RESTfulResult.Data[0];
+                                                    firstWgt = RESTfulResultOutTimer.Data[0].meterWeight.Value;
+                                                    firstDb = RESTfulResultOutTimer.Data[0];
                                                     firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
                                                     //给用户控件设置值
                                                     ucCarMeterInfoJisco1.setFormControlValue(firstDb);
@@ -1321,12 +1348,12 @@ namespace CarMeterSystem
                                             }
                                             else
                                             {
-                                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data)
+                                                foreach (MeterWorkCarActualFirst fs in RESTfulResultOutTimer.Data)
                                                 {
                                                     if (fs.predictionNo != null && !fs.predictionNo.Contains("_"))
                                                     {
-                                                        firstWgt = RESTfulResult.Data[0].meterWeight.Value;
-                                                        firstDb = RESTfulResult.Data[0];
+                                                        firstWgt = RESTfulResultOutTimer.Data[0].meterWeight.Value;
+                                                        firstDb = RESTfulResultOutTimer.Data[0];
                                                         firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
                                                         //给用户控件设置值
                                                         ucCarMeterInfoJisco1.setFormControlValue(firstDb);
@@ -1380,9 +1407,13 @@ namespace CarMeterSystem
 
                                     if (!string.IsNullOrEmpty(PbCache.collect.carno))
                                     {
+                                        
+                                        resgiterCarTimer.carNo = PbCache.collect.carno;
+                                        resgiterCarTimer.carTypeNo = AppConfigCache.carTypeNo;
+                                        resgiterCarTimer.carTypeName = AppConfigCache.carTypeName;
                                         lg.WriteLog(30, string.Format("车号注册参数-车号:{0},车辆类型编号:{1},车辆类型名称:{2}", PbCache.collect.carno, AppConfigCache.carTypeNo, AppConfigCache.carTypeName));
-                                        RESTfulResult<MeterBaseCar> res = carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
-                                        lg.WriteLog(30, res.Succeed ? "注册成功" : "注册失败,原因:" + res.ResultMessage);
+                                        resResgiterCarTimer = carService.addCar(resgiterCarTimer);
+                                        lg.WriteLog(30, resResgiterCarTimer.Succeed ? "注册成功" : "注册失败,原因:" + resResgiterCarTimer.ResultMessage);
                                     }
                                     led_controler.setStaticLineMsg(PbCache.sportInfo.ledIp, ledinfo);
                                     bRailwayActual = false;

+ 21 - 0
Common/DbOption/work/MeterWorkCarActualFirstService.cs

@@ -1,5 +1,6 @@
 using com.hnshituo.core.webapp.vo;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
 
@@ -28,6 +29,26 @@ namespace Common
             return rm;
         }
 
+        /// <summary>
+        /// 加密车号获取
+        /// </summary>
+        /// <param name="info">MeterWorkCarActualFirst</param>
+        /// <returns></returns>
+        public RESTfulResult<string> DecryptionForWfTest(Hashtable hashtable)
+        {
+            DbHelper db = new DbHelper();
+
+            RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "/DecryptionForWfTest", new object[] { hashtable }, 1);
+            RESTfulResult<string> result = new RESTfulResult<string>();
+            result.Succeed = rm.Succeed;
+            result.Status = rm.Status;
+            result.Message = rm.Message;
+            result.ResultMessage = rm.ResultMessage;
+            result.Code = rm.Code;
+            result.Data = rm.Data;
+            return rm;
+        }
+
         /// <summary>
         /// 根据预报编号查数据
         /// </summary>

+ 5 - 0
Common/cacheCls/AppConfigCache.cs

@@ -72,6 +72,11 @@ namespace Common
         /// </summary>
         public static readonly string productType = ConfigurationManager.AppSettings["productType"].ToString().Trim();
 
+        /// <summary>
+        /// 0测试,1正式
+        /// </summary>
+        public static readonly string isWriteRFID = ConfigurationManager.AppSettings["isWriteRFID"].ToString().Trim();
+
         /// <summary>
         /// 0测试,1正式
         /// </summary>

+ 1 - 0
MeterPlugInLibrary/MeterPlugInLibrary.csproj

@@ -65,6 +65,7 @@
     <Compile Include="实时库数据采集\ProductDataControl.cs" />
     <Compile Include="实时库数据采集\StorageDataCollectionControl.cs" />
     <Compile Include="实时库数据采集\StaticDataCollectionControl.cs" />
+    <Compile Include="扫码枪\SweepCodeCpoy.cs" />
     <Compile Include="海康摄像头截图\CHCNetSDK.cs" />
     <Compile Include="打印机\Print.cs" />
     <Compile Include="扫码枪\Scanning.cs" />

+ 1 - 1
MeterPlugInLibrary/扫码枪/SweepCode.cs

@@ -50,7 +50,7 @@ namespace MeterPlugInLibrary
                         //WriteLog("开始扫码线程:重量状态为:" + strState);
                         if (strState.Equals("0"))
                         {
-                            sCode = GetSweepCodeInfo(15, 11, "9600,N,8,1");//扫码信息;九江用COM7
+                            sCode = GetSweepCodeInfo(15, 11, "9600,N,8,1");
                             WriteLog("扫码返回:" + sCode + "是否错误:" + isError);
                             if (!string.IsNullOrEmpty(sCode) && !isError) 
                             {

+ 187 - 0
MeterPlugInLibrary/扫码枪/SweepCodeCpoy.cs

@@ -0,0 +1,187 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Common;
+
+namespace MeterPlugInLibrary
+{
+    public class SweepCodeCpoy
+    {
+        private string strCode = "";//扫码信息
+
+        private bool isError = false;//扫码信息
+        public string StrCode
+        {
+            get { return strCode; }
+            set { strCode = value; }
+        }
+        private string strState = "";//状态 0重量稳定 1重量不稳定 2空磅
+        public string StrState
+        {
+            get { return strState; }
+            set { strState = value; }
+        }
+        private object obj = new object();
+        private Thread mThread = null;
+        public void StartThreadSweep()
+        {
+            mThread = new Thread(new ThreadStart(ThreadSweepInfo));
+            mThread.Start();
+        }
+
+        /// <summary>
+        /// 扫码信息读取
+        /// </summary>
+        /// <returns></returns>
+        private void ThreadSweepInfo()
+        {
+            try
+            {
+                while (true)
+                {
+                    lock (obj)
+                    {
+                        string sCode = "";
+                        Thread.Sleep(500);
+                        //WriteLog("开始扫码线程:重量状态为:" + strState);
+                        if (strState.Equals("0"))
+                        {
+                            sCode = GetSweepCodeInfo(15, 3, "9600,N,8,1");
+                            WriteLog("扫码返回:" + sCode + "是否错误:" + isError);
+                            if (!string.IsNullOrEmpty(sCode) && !isError) 
+                            {
+                                strCode = sCode;
+                                string lb = "进入扫码";
+                                WriteLog(lb + ",读到的二维码扫码信息:" + strCode);
+                            }
+                            else
+                            {
+                                WriteLog("扫码信息报错,:" + strCode);
+                                strCode = "";
+                            }
+                            //Thread.Sleep(20 * 1000);//15秒执行一次
+                        }
+                        else if (strState.Equals("2"))
+                        {
+                            strCode = "";
+                        }
+                    }
+                }
+            }
+            catch (Exception exp)
+            {
+                strCode = "";
+                WriteLog("扫码信息读取异常!" + exp.Message);
+            }
+        }
+        /// <summary>
+        /// 关闭线程
+        /// </summary>
+        /// <returns></returns>
+        public bool CloseThread()
+        {
+            try
+            {
+                if (mThread != null)
+                {
+                    mThread.Abort();
+                    Close();
+                }
+                return true;
+            }
+            catch
+            {
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// 二维码/条形码 信息获取
+        /// </summary>
+        /// <param name="intSleep">扫码枪多长时间关闭</param>
+        /// <param name="iPort">端口</param>
+        /// <param name="strComParam">波特率</param>
+        /// <returns></returns>
+        public string GetSweepCodeInfo(int intSleep, int iPort, string strComParam)
+        {
+            try
+            {
+                string strSweepCode = "";
+                int i = Scanning.SetDeviceType(3);//设备类型
+                if (i != 0)
+                {
+                    isError = true;
+                    WriteLog("设备类型异常");
+                    return "设备类型异常";
+                }
+
+                i = Scanning.OpenDevice(iPort, strComParam);//打开扫描枪
+                if (i != 0)
+                {
+                    isError = true;
+                    WriteLog("打开扫描枪异常");
+                    return "打开扫描枪异常";//打开扫描枪异常
+                }
+
+                byte[] szData = new byte[256];
+                i = Scanning.ReadData(ref szData[0], intSleep);//同步读条码信息
+
+                string strGet = System.Text.Encoding.Default.GetString(szData, 0, szData.Length); //将字节数组转换为字符串
+                if (!string.IsNullOrEmpty(strGet))
+                {
+                    byte[] buffer = Encoding.UTF8.GetBytes(strGet);
+                    strGet = Encoding.GetEncoding("utf-8").GetString(buffer);
+                    //WriteLog("二维码信息(转换中文操作):" + strGet);
+                }
+                strSweepCode = strGet.Trim().Substring(0, 120).Replace("\r", "").Replace("\n", "").Replace(" ", "").Replace("\0", "");//得到二维码编号
+                //strSweepCode = strSweepCode.Split('|')[0];
+                if (!string.IsNullOrEmpty(strSweepCode))
+                    WriteLog("二维码编号:【" + strSweepCode + "】");
+                i = Scanning.CloseDevice();//关闭扫描枪
+                return strSweepCode;
+            }
+            catch (Exception exp)
+            {
+                isError = true;
+                WriteLog("扫码异常!" + exp.Message);
+                return "";
+            }
+        }
+      
+        /// <summary>
+        /// 关闭扫描枪
+        /// </summary>
+        public void Close()
+        {
+            WriteLog("扫码关闭!");
+            Scanning.CloseDevice();//关闭扫描枪
+        }
+
+        private void WriteLog(string str)
+        {
+            string m_szRunPath;
+            m_szRunPath = System.Environment.CurrentDirectory;
+            if (System.IO.Directory.Exists(m_szRunPath + "\\log") == false)
+            {
+                System.IO.Directory.CreateDirectory(m_szRunPath + "\\log");
+            }
+            string strDate = System.DateTime.Now.ToString("yyyyMMdd");
+            string strPathFile = m_szRunPath + "\\log\\" + strDate;
+            if (!Directory.Exists(strPathFile))//如果不存在就创建file文件夹
+            {
+                Directory.CreateDirectory(strPathFile);
+            }
+            System.IO.TextWriter tw = new System.IO.StreamWriter(strPathFile + "\\扫码设备_" + strDate + ".log", true);
+
+            tw.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
+            tw.WriteLine(str);
+            tw.WriteLine("\r\n");
+
+            tw.Close();
+        }
+    }
+}

+ 13 - 2
MeterSceneLibrary/JISCO/OuterCarJISCO.cs

@@ -631,18 +631,29 @@ namespace MeterSceneLibrary
                                          * a. 正常结净产生一条净重记录
                                          * b. 自动生成一条一次毛重计量数据,重量值值为当次计量数据中的毛重
                                          */
+                                        PreTrackScale ptss = new PreTrackScale();
+                                        foreach (var item in listPreScale)
+                                        {
+                                            if (item.receiverRemark == "HO1")
+                                            {
+                                                ptss = item;
+                                            }
+                                        }
+
+
                                         MeterWorkCarActualFirst mwca = new MeterWorkCarActualFirst();
                                         mwca = rmX.Data[0];
                                         mwca.isPreScale = "1";
 
                                         EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
-                                        mwca = entityBase.format<MeterWorkCarActualFirst>(listPreScale[0], mwca);
+                                        mwca = entityBase.format<MeterWorkCarActualFirst>(ptss, mwca);
 
                                         //EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
                                         //mwaf = entityBase1.format<MeterWorkCarActualFirst>(listPreScale[0], mwaf);
                                         //mwaf.isPreScale = "1";
+                                        
                                         PbCache.voiceType = 1;
-                                        rt = saveMethod.doNetHZHX(listPreScale[1], mwca, mwaf);
+                                        rt = saveMethod.doNetHZHX(ptss, mwca, mwaf);
                                         PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,混装业务", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
                                         rt.resultInfo += ",混装业务";
                                     }