yi eason 3 lat temu
rodzic
commit
9253b25b39

+ 10 - 22
CarLocalMeter/App.config

@@ -7,8 +7,8 @@
 		<!--ping服务器的地址-->
 		<add key="ServiceIp" value="jgwzjl.jiugang.com"/>
 		
-		<add key="ServiceUrl" value="http://10.104.4.130:9004/v1" />
-		<!--<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>-->
+		<!--<add key="ServiceUrl" value="http://10.104.4.130:9004/v1" />-->
+		<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>
 		<!--<add key="ServiceUrl" value="http://jgwzjl.jiugang.com/icore.icp.web/pass/systemBase/v1"/>-->
 		
 		<add key="fpath" value="http://10.99.81.20/icore.icp.web/pass/file/upload/" />
@@ -36,7 +36,7 @@
 		
 		<!--硬盘录像机仪表抓拍设置的通道 2,3,5-->
 		<add key="channelOther" value="2,3,5" />
-		<add key="channelVis" value="4,1" /><!--需显示视频的通道4,1-->
+		<add key="channelVis" value="4,1" /><!--需显示视频的通道1#南4,1   8#西1,4-->
 		<add key="channelVisHeight" value="300" /><!--需显示高度-->
 		<add key="channelCarNo" value="4" /><!--车号抓拍通道,用于生成图2-->
 		<add key="channel" value="1" /><!--重量仪表抓拍通道-->
@@ -46,7 +46,7 @@
 		<add key="voicePlayUid" value="admin" />
 		<add key="voicePlayPwd" value="jlwj12345" />
 		<!--车号识别枪机 10.130.0.66是1#南 10.130.0.76是1#北   10.130.2.49是8#西-->
-		<add key="voiceCarNoIp" value="10.130.0.66" />
+		<add key="voiceCarNoIp" value="10.130.0.60" />
 		<add key="voiceCarNoPort" value="8000" />
 		<add key="voiceCarNoUid" value="admin" />
 		<add key="voiceCarNoPwd" value="jlwj12345" />
@@ -66,7 +66,7 @@
 		<!--点位对应的属性 plc状态,左右光栅,前后红外,道闸-->
 		<add key="plcLocationName" value="plcState,leftGs,rightGs,topHw,bottomHw,rgLight,dz" />
 		<!--0关闭plc,1打开plc-->
-		<add key="plcStart" value="0"/>
+		<add key="plcStart" value="1"/>
 		<!--道闸的点位-->
 		<add key="dz" value="80"/>
 		<!--道闸的开启值,因为程序不清楚车子是否已经完全脱离了道闸,所以一般是红地感线圈或者红外进行判断在PLC中做自动关闭的操作,所以程序这块只要做打开操作即可-->
@@ -80,8 +80,8 @@
 		<add key="messageLength" value="17" />
 		<!--数据截止位符号  1#南/北13  8#西3-->
 		<add key="separate" value="13" />
-	    <!--开始取值位置从1开始数   1#南/北5  8#西3-->
-		<add key="startPosition" value="5" />
+	    <!--开始取值位置从1开始数   1#南/北6  8#西4-->
+		<add key="startPosition" value="6" />
 		<!--取多少位   1#北6  8#西6-->
 		<add key="dataLength" value="6" />
 		<!-- 是否反转 false不反转 true反转-->
@@ -92,12 +92,12 @@
 		<!--零点判断绝对值在0到多少内为零点-->
 		<add key="minValue" value="50" />
 		
-		<!--led地址-->
-		<add key="ledIp" value="10.130.0.134"/>
+		<!--led地址 10.130.0.68-->
+		<add key="ledIp" value="10.130.0.68"/>
 		
 		<!--RFID配置只考虑tcp_ip的,如果串口很简单,不过这里不考虑-->
 		<!--rfid的IP地址-->
-		<add key="rfidIP" value="10.130.0.70" />
+		<add key="rfidIP" value="10.130.0.67" />
 		<!--rfid的Port地址-->
 		<add key="rfidPort" value="7086" />
 		<!--rfid断开重连持续时长分钟,若该时间内还是连不上则不再连接-->
@@ -108,18 +108,6 @@
 		<!--图片多久未上传则移送到bak文件夹的时间,这里配置的是小时,正常来说网络异常应该处理几小时足够了-->
 		<add key="imgTimeOut" value="5"/>
 
-		<!--下面的没有用到-->
-		<!--数据截止位符号-->
-		<add key="rfidSeparate" value="13" />
-		<!--报文长度-->
-		<add key="rfidMessageLength" value="17" />
-		<!--开始取值位置从0开始数-->
-		<add key="rfidStartPosition" value="5" />
-		<!--取多少位-->
-		<add key="rfidDataLength" value="6" />
-		<!-- 是否反转 false不反转 true反转-->
-		<add key="rfidIsFz" value="false"/>
-
 		<!--Redis配置-->
 		<add key="redisIp" value="127.0.0.1" />
 		<add key="redisPort" value="6379" />

+ 1 - 0
CarLocalMeter/CarLocalMeter.csproj

@@ -199,6 +199,7 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="bin\Debug\NModbus.xml" />
+    <Content Include="bin\Debug\Sound\计量完成多委托.wav" />
   </ItemGroup>
   <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

+ 1 - 1
CarLocalMeter/DbOption/MeterWorkCarActualFirstService.cs

@@ -218,7 +218,7 @@ namespace CarLocalMeter
             MeterMonitorNote monitorNote = new MeterMonitorNote();
             monitorNote.baseSpotNo = actualFirst2.baseSpotNo;
             monitorNote.baseSpotName = actualFirst2.baseSpotName;
-            monitorNote.operationContent = string.Format("产生一次计量数据和净数据");
+            monitorNote.operationContent = string.Format("产生一次计量数据和净数据");
             monitorNote.operationTime = actualFirst2.createTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
             monitorNote.carNo = actualFirst2.carNo;
             monitorNote.meterNoteSource = "0";

+ 5 - 2
CarLocalMeter/OptionCls/RfIdCarNo.cs

@@ -113,11 +113,14 @@ namespace CarLocalMeter
                 string epc = Core.Util.ConvertByteArrayToHexString(msg.ReceivedMessage.EPC);
                 string tid = Core.Util.ConvertByteArrayToHexString(msg.ReceivedMessage.TID);
                 string userDb = Core.Util.ConvertByteArrayToHexString(msg.ReceivedMessage.UserData);
-
+                if (string.IsNullOrEmpty(CacleCls.rfidCarNo)) 
+                {
+                    CacleCls.rfidEpc = "";
+                }
                 if (CacleCls.rfidEpc != epc) 
                 {
                     CacleCls.rfidEpc = epc;
-                    if (CacleCls.rifdInfo != null && CacleCls.rfidCarNo.Count() > 0)
+                    if (CacleCls.rifdInfo != null && CacleCls.rifdInfo.Count() > 0)
                     {
                         foreach (KeyValuePair<string, string> rfid in CacleCls.rifdInfo)
                         {

+ 3 - 2
CarLocalMeter/OptionCls/Voice/VoicePlay.cs

@@ -82,10 +82,11 @@ namespace CarLocalMeter
         开始计量,
         车辆超重,
         计量完成,
-        净重量过小,
+        净重量过小,
         仪表未归零,
         两次计量重量接近,
         车号未识别,
-        程序处理异常
+        程序处理异常,
+        计量完成多委托
     }
 }

+ 1 - 24
CarLocalMeter/PbCls/AppConfigCache.cs

@@ -278,30 +278,7 @@ namespace CarLocalMeter
         /// </summary>
         public static int rfidPort = Convert.ToInt32(ConfigurationManager.AppSettings["rfidPort"].ToString());
 
-        /// <summary>
-        /// 走tcp的采集方式 数据截止位符号
-        /// </summary>
-        public static int rfidSeparate = Convert.ToInt32(ConfigurationManager.AppSettings["rfidSeparate"].ToString());
-
-        /// <summary>
-        /// 走tcp的采集方式  报文长度
-        /// </summary>
-        public static int rfidMessageLength = Convert.ToInt32(ConfigurationManager.AppSettings["rfidMessageLength"].ToString());
-
-        /// <summary>
-        /// 走tcp的采集方式  开始取值位置从0开始数
-        /// </summary>
-        public static int rfidStartPosition = Convert.ToInt32(ConfigurationManager.AppSettings["rfidStartPosition"].ToString());
-
-        /// <summary>
-        /// 走tcp的采集方式   取多少位
-        /// </summary>
-        public static int rfidDataLength = Convert.ToInt32(ConfigurationManager.AppSettings["rfidDataLength"].ToString());
-
-        /// <summary>
-        /// 走tcp的采集方式  是否反转 false不反转 true反转
-        /// </summary>
-        public static bool rfidIsFz = Convert.ToBoolean(ConfigurationManager.AppSettings["rfidIsFz"].ToString());
+        
         #endregion
 
         /// <summary>

+ 14 - 14
CarLocalMeter/frmMain.Designer.cs

@@ -280,10 +280,10 @@ namespace CarLocalMeter
             // plImgShow
             // 
             this.plImgShow.Controls.Add(this.pictureShow);
-            this.plImgShow.Location = new System.Drawing.Point(286, 320);
+            this.plImgShow.Location = new System.Drawing.Point(110, 320);
             this.plImgShow.Margin = new System.Windows.Forms.Padding(2);
             this.plImgShow.Name = "plImgShow";
-            this.plImgShow.Size = new System.Drawing.Size(900, 500);
+            this.plImgShow.Size = new System.Drawing.Size(1196, 631);
             this.plImgShow.TabIndex = 43;
             this.plImgShow.Visible = false;
             // 
@@ -294,7 +294,7 @@ namespace CarLocalMeter
             this.pictureShow.Location = new System.Drawing.Point(0, 0);
             this.pictureShow.Margin = new System.Windows.Forms.Padding(2);
             this.pictureShow.Name = "pictureShow";
-            this.pictureShow.Size = new System.Drawing.Size(900, 500);
+            this.pictureShow.Size = new System.Drawing.Size(1196, 631);
             this.pictureShow.TabIndex = 2;
             this.pictureShow.TabStop = false;
             this.pictureShow.DoubleClick += new System.EventHandler(this.pictureShow_DoubleClick);
@@ -466,7 +466,7 @@ namespace CarLocalMeter
             this.txtMsgInfo.Name = "txtMsgInfo";
             this.txtMsgInfo.ReadOnly = true;
             this.txtMsgInfo.Size = new System.Drawing.Size(847, 75);
-            this.txtMsgInfo.TabIndex = 3;
+            this.txtMsgInfo.TabIndex = 0;
             this.txtMsgInfo.Text = "";
             // 
             // tableLayoutPanel4
@@ -851,7 +851,7 @@ namespace CarLocalMeter
             this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 90F));
             this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 222F));
             this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
-            this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 73F));
+            this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 79F));
             this.tableLayoutPanel7.Controls.Add(this.label1, 5, 0);
             this.tableLayoutPanel7.Controls.Add(this.txtCarNo, 4, 0);
             this.tableLayoutPanel7.Controls.Add(this.cbCarNo, 3, 0);
@@ -875,11 +875,11 @@ namespace CarLocalMeter
             this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.label1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label1.ForeColor = System.Drawing.Color.Blue;
-            this.label1.Location = new System.Drawing.Point(732, 1);
+            this.label1.Location = new System.Drawing.Point(726, 1);
             this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label1.Name = "label1";
             this.label1.Size = new System.Drawing.Size(42, 36);
-            this.label1.TabIndex = 9;
+            this.label1.TabIndex = 4;
             this.label1.Text = "网络";
             this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
@@ -887,11 +887,11 @@ namespace CarLocalMeter
             // 
             this.txtCarNo.Dock = System.Windows.Forms.DockStyle.Fill;
             this.txtCarNo.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.txtCarNo.Location = new System.Drawing.Point(508, 3);
+            this.txtCarNo.Location = new System.Drawing.Point(502, 3);
             this.txtCarNo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.txtCarNo.Name = "txtCarNo";
             this.txtCarNo.Size = new System.Drawing.Size(216, 32);
-            this.txtCarNo.TabIndex = 81;
+            this.txtCarNo.TabIndex = 3;
             this.txtCarNo.TextChanged += new System.EventHandler(this.txtCarNo_TextChanged);
             this.txtCarNo.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtCarNo_KeyDown);
             // 
@@ -935,11 +935,11 @@ namespace CarLocalMeter
             "琼",
             "京",
             "津"});
-            this.cbCarNo.Location = new System.Drawing.Point(417, 3);
+            this.cbCarNo.Location = new System.Drawing.Point(411, 3);
             this.cbCarNo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.cbCarNo.Name = "cbCarNo";
             this.cbCarNo.Size = new System.Drawing.Size(84, 31);
-            this.cbCarNo.TabIndex = 82;
+            this.cbCarNo.TabIndex = 2;
             this.cbCarNo.SelectedIndexChanged += new System.EventHandler(this.cbCarNo_SelectedIndexChanged);
             // 
             // lbPointName
@@ -952,7 +952,7 @@ namespace CarLocalMeter
             this.lbPointName.Location = new System.Drawing.Point(86, 1);
             this.lbPointName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.lbPointName.Name = "lbPointName";
-            this.lbPointName.Size = new System.Drawing.Size(262, 36);
+            this.lbPointName.Size = new System.Drawing.Size(256, 36);
             this.lbPointName.TabIndex = 3;
             this.lbPointName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             // 
@@ -978,7 +978,7 @@ namespace CarLocalMeter
             this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
             this.label2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label2.ForeColor = System.Drawing.Color.Blue;
-            this.label2.Location = new System.Drawing.Point(357, 1);
+            this.label2.Location = new System.Drawing.Point(351, 1);
             this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label2.Name = "label2";
             this.label2.Size = new System.Drawing.Size(52, 36);
@@ -989,7 +989,7 @@ namespace CarLocalMeter
             // pbLineOn
             // 
             this.pbLineOn.Image = ((System.Drawing.Image)(resources.GetObject("pbLineOn.Image")));
-            this.pbLineOn.Location = new System.Drawing.Point(782, 4);
+            this.pbLineOn.Location = new System.Drawing.Point(776, 4);
             this.pbLineOn.Name = "pbLineOn";
             this.pbLineOn.Size = new System.Drawing.Size(39, 30);
             this.pbLineOn.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;

+ 76 - 97
CarLocalMeter/frmMain.cs

@@ -178,6 +178,7 @@ namespace CarLocalMeter
             blThreadFlag = true;
             DataCollectThread = new Thread(new ThreadStart(DataCollect));
             start();
+            txtMsgInfo.Focus();
         }
 
         #region 本地主逻辑判断线程
@@ -188,7 +189,6 @@ namespace CarLocalMeter
         string strOldCarNo = "";
         bool isMeasureSuccess = false;
         int voiceNum = 0;
-        int iImgCnt = 0;
 
         private void start() => DataCollectThread.Start();
 
@@ -250,7 +250,6 @@ namespace CarLocalMeter
                         if (CacleCls.weight > 500)
                         {
                             iError = 21;
-                            iImgCnt = 0;
                             CacleCls.isClear = false;
 
                             #region 一些必要验证及提醒
@@ -314,59 +313,6 @@ namespace CarLocalMeter
                                 }
                                 //*/
 
-                                #region 一次计量数据跟预报获取一次,有可能稳定特别快导致一次计量数据跟预报还未获取到,所以我这改为去保存按钮处获取
-                                /*
-                                if (!string.IsNullOrEmpty(CacleCls.lockCarNo) && CacleCls.serverFlag)
-                                {
-                                    //查询一次计量数据
-                                    if (!getFirst)
-                                    {
-                                        RESTfulResultOutTimer = workCarActualFirstService.doQueryWf(new MeterWorkCarActualFirst { valueFlag = "1", carNo = CacleCls.lockCarNo });
-
-                                        if (RESTfulResultOutTimer.Succeed)
-                                        {
-                                            if (RESTfulResultOutTimer.Data != null && RESTfulResultOutTimer.Data.Count > 0)
-                                            {
-                                                CacleCls.firstDb = RESTfulResultOutTimer.Data[0];
-                                                if (CacleCls.firstDb.predictionNo != null && !CacleCls.firstDb.predictionNo.Contains("_"))
-                                                {
-                                                    txtMATTER_NAME.Text = CacleCls.firstDb.matterName;
-                                                    txtFORWARDING_UNIT_NAME.Text = CacleCls.firstDb.forwardingUnitName;
-                                                    txtRECEIVING_UINT_NAME.Text = CacleCls.firstDb.receivingUintName;
-                                                    txtMETER_TYPE.Text = CacleCls.firstDb.meterTypeName;
-                                                }
-                                            }
-                                        }
-                                        getFirst = true;
-                                    }
-                                    iError = 24;
-                                    //根据网络状态及车号以及是否存在一次计量数据,查询一次预报信息,然后将getPreInfo改为true
-                                    if (!getPreInfo)
-                                    {
-                                        if (CacleCls.firstDb == null || string.IsNullOrEmpty(CacleCls.firstDb?.predictionNo))
-                                        {
-                                            //如果没有一次信息或者一次信息里面没带预报信息,则查询一次预报信息
-                                            rmScaleListCarTimer = PreTrackScaleService.doQueryByFlag(new PreTrackScale { lineDesc = "1", carNo = CacleCls.lockCarNo });
-                                            if (rmScaleListCarTimer.Succeed)
-                                            {
-                                                if (rmScaleListCarTimer.Data != null && rmScaleListCarTimer.Data.Count == 1)
-                                                {
-                                                    CacleCls.preTrackScale = rmScaleListCarTimer.Data[0];
-
-                                                    txtMATTER_NAME.Text = CacleCls.preTrackScale.matterName;
-                                                    txtFORWARDING_UNIT_NAME.Text = CacleCls.preTrackScale.forwardingUnitName;
-                                                    txtRECEIVING_UINT_NAME.Text = CacleCls.preTrackScale.receivingUintName;
-                                                    txtMETER_TYPE.Text = CacleCls.preTrackScale.meterTypeName;
-                                                }
-                                            }
-                                        }
-                                        getPreInfo = true;
-                                    }
-                                    iError = 25;
-                                }
-                                //*/
-                                #endregion
-
 
                                 //进行计量称重条件的判断  车号不为空、重量稳定、车辆已停到位
                                 if (CacleCls.isWd == 0 && CacleCls.leftGs != "1" && CacleCls.rightGs != "1" && CacleCls.topJg != "1" && CacleCls.bottomJg != "1")
@@ -407,7 +353,10 @@ namespace CarLocalMeter
                                 {
                                     if (CacleCls.voiceOver)
                                     {
-                                        vicPlayClass.GetVoicePlay(VoiceEnum.计量完成, CacleCls.lockCarNo);
+                                        if(flagPre)
+                                            vicPlayClass.GetVoicePlay(VoiceEnum.计量完成, CacleCls.lockCarNo);
+                                        else
+                                            vicPlayClass.GetVoicePlay(VoiceEnum.计量完成多委托, CacleCls.lockCarNo);
                                         voiceNum++;
                                     }
                                 }
@@ -426,11 +375,14 @@ namespace CarLocalMeter
                             flagCaption = false;
                             isVoiceDownCar = false;
                             strGuid = "";
+                            flagPre = true;
 
                             if (!CacleCls.isClear)
                             {
+                                
                                 iError = 32;
                                 CacleCls.Clear(); //清理一次数据
+                                txtMsgInfo.Focus();
                                 btnSave.Enabled = false;
                                 cbCarNo.Text = "";
                                 cbCarNo.SelectedIndex = -1;
@@ -445,7 +397,7 @@ namespace CarLocalMeter
                                 txtGroess.Text = "";
                                 txtTare.Text = "";
                                 txtNet.Text = "";
-
+                                led_controler.setStaticLineMsg(AppConfigCache.ledIp, $"欢迎使用,智能计量");
                                 iError = 33;
                                 //释放一次内存
                                 FlushMemory();
@@ -471,6 +423,7 @@ namespace CarLocalMeter
 
         int lockWgtImg = 0;
         string strGuid = "";
+        bool flagPre = true;
         private void btnSave_Click(object sender, EventArgs e)
         {
             try
@@ -534,13 +487,15 @@ namespace CarLocalMeter
 
                 if (!CacleCls.isJg && CacleCls.firstDb != null)
                 {
+                    //*
                     if (Math.Abs(CacleCls.firstDb.meterWeight.Value - CacleCls.lockWgt) < AppConfigCache.differenceWgt)
                     {
-                        vicPlayClass.GetVoicePlay(VoiceEnum.净重量过小, CacleCls.lockCarNo);
-                        txtMsgInfo.Text = "计量失败,净重量过小";
-                        led_controler.setStaticLineMsg(AppConfigCache.ledIp, "计量失败,净重量过小");
+                        vicPlayClass.GetVoicePlay(VoiceEnum.净重量过小, CacleCls.lockCarNo);
+                        txtMsgInfo.Text = "计量失败,净重量过小";
+                        led_controler.setStaticLineMsg(AppConfigCache.ledIp, "计量失败,净重量过小");
                         return;
                     }
+                    //*/
                 }
 
                 #region 获取一次数据跟车号
@@ -599,12 +554,38 @@ namespace CarLocalMeter
                             {
                                 if (rmScaleListCarTimer.Data != null && rmScaleListCarTimer.Data.Count > 0)
                                 {
-                                    CacleCls.preTrackScale = rmScaleListCarTimer.Data[0];
+                                    CacleCls.preTrackScale = null;
+                                    if (!string.IsNullOrEmpty(CacleCls.firstDb.predictionNo)) 
+                                    {
+                                        CacleCls.preTrackScale = rmScaleListCarTimer.Data.Where(s => s.predictionNo == CacleCls.firstDb.predictionNo).FirstOrDefault();
+                                    }
+                                    else 
+                                    {
+                                        string strMat = "", strFor = "", strRec = "";
+                                        foreach (PreTrackScale pr in rmScaleListCarTimer.Data)
+                                        {
+                                            if (strMat == "")
+                                            {
+                                                strMat = pr.matterNo;
+                                                strFor = pr.forwardingUnitNo;
+                                                strRec = pr.receivingUintNo;
+                                            }
+                                            else if (pr.matterNo != strMat || pr.forwardingUnitNo != strFor || pr.receivingUintNo != strRec)
+                                            {
+                                                flagPre = false;
+                                                break;
+                                            }
+
+                                        }
+                                    }
 
-                                    txtMATTER_NAME.Text = CacleCls.preTrackScale.matterName;
-                                    txtFORWARDING_UNIT_NAME.Text = CacleCls.preTrackScale.forwardingUnitName;
-                                    txtRECEIVING_UINT_NAME.Text = CacleCls.preTrackScale.receivingUintName;
-                                    txtMETER_TYPE.Text = CacleCls.preTrackScale.meterTypeName;
+                                    if (flagPre && CacleCls.preTrackScale != null)
+                                    {
+                                        txtMATTER_NAME.Text = CacleCls.preTrackScale.matterName;
+                                        txtFORWARDING_UNIT_NAME.Text = CacleCls.preTrackScale.forwardingUnitName;
+                                        txtRECEIVING_UINT_NAME.Text = CacleCls.preTrackScale.receivingUintName;
+                                        txtMETER_TYPE.Text = CacleCls.preTrackScale.meterTypeName;
+                                    }
                                 }
                             }
                         }
@@ -661,34 +642,17 @@ namespace CarLocalMeter
                         }
                     }
 
-                    #region
-                    /* //下面的代码可实现抓放大的图,不过我这为了时间更准,抓的左侧显示的图
-                    if (iPic != 0)
-                    {
-                        ce.StopRealPlay(iPic);
-                    }
-                    ce.RealPlay(pictureShow, AppConfigCache.channel);
-                    plImgShow.Visible = true;
-                    Thread.Sleep(200);
-                    Bitmap bit = new Bitmap(plImgShow.Width, plImgShow.Height);//实例化一个和窗体一样大的bitmap
-                    Graphics g = Graphics.FromImage(bit);
-                    g.CompositingQuality = CompositingQuality.HighQuality;//质量设为最高 HighQuality
-                    g.CopyFromScreen(plImgShow.Left, plImgShow.Top + 25, 0, 0, new Size(plImgShow.Width, plImgShow.Height));//保存整个窗体为图片       
-                    bit.Save($"{AppConfigCache.path}/imgShort/formalImg/{AppConfigCache.pointNo}_C{strGuid}_tempImg_1.jpg");//默认保存格式为PNG,保存成jpg格式质量不是很好
-                    bit.Dispose();
-                    plImgShow.Visible = false;
-                    ce.StopRealPlay(AppConfigCache.channel);
-                    //*/
-                    #endregion
+                    
                 }
                 #endregion
 
                 if (CacleCls.serverFlag) //网络正常
                 {
                     //没有接管的情况下
-                    if (!CacleCls.isJg && CacleCls.firstDb != null && Math.Abs(CacleCls.firstDb.meterWeight.Value - AppConfigCache.differenceWgt) < AppConfigCache.differenceWgt)
+                    //* 2023-04-22测试时注释,实际应用时需要
+                    if (!CacleCls.isJg && CacleCls.firstDb != null && Math.Abs(CacleCls.firstDb.meterWeight.Value - CacleCls.lockWgt) < AppConfigCache.differenceWgt)
                     {
-                        string str = "第一次计量重量【" + CacleCls.firstDb.meterWeight.Value / 1000 + "T】和第二次计量重量【" + CacleCls.lockWgt / 1000 + "T】接近,小于结净最小值【" + AppConfigCache.differenceWgt / 1000 + " T】";
+                        string str = "第一次计量重量【" + Math.Round((decimal)CacleCls.firstDb.meterWeight.Value / 1000, 2) + "T】和第二次计量重量【" + Math.Round((decimal)CacleCls.lockWgt / 1000, 2) + "T】接近,小于结净最小值【" + Math.Round((decimal)AppConfigCache.differenceWgt / 1000, 2) + " T】";
                         vicPlayClass.GetVoicePlay(VoiceEnum.两次计量重量接近, CacleCls.lockCarNo);
                         led_controler.setStaticLineMsg(AppConfigCache.ledIp, $"上次重量与当,前重量接近,需操作工确认");
                         txtMsgInfo.Text = str;
@@ -696,6 +660,7 @@ namespace CarLocalMeter
                         CacleCls.isLock = false;
                         return;
                     }
+                    //*/
 
 
                     //一次计量
@@ -793,28 +758,42 @@ namespace CarLocalMeter
                 //计量成功
                 if (isMeasureSuccess)
                 {
-                    txtMsgInfo.Text = "计量完成";
+                    btnSave.Enabled = false;
+
+                    if (!flagPre)
+                    {
+                        txtMsgInfo.Text = "计量完成,存在多个委托";
+                    }else
+                    {
+                        txtMsgInfo.Text = "计量完成";
+                    }
                     #region 毛皮净赋值
                     if (CacleCls.firstDb != null && CacleCls.firstDb.meterWeight > 0 && CacleCls.lockWgt > 0)
                     {
                         if (CacleCls.firstDb.meterWeight > CacleCls.lockWgt)
                         {
-                            txtGroess.Text = $"{CacleCls.firstDb.meterWeight / 1000}";
-                            txtTare.Text = $"{CacleCls.lockWgt / 1000}";
-                            txtNet.Text = $"{(CacleCls.firstDb.meterWeight - CacleCls.lockWgt) / 1000}";
+                            txtGroess.Text = $"{Math.Round((decimal)CacleCls.firstDb.meterWeight / 1000, 2)}"; 
+                            txtTare.Text = $"{Math.Round((decimal)CacleCls.lockWgt / 1000, 2)}";
+                            txtNet.Text = $"{Math.Round((decimal)(CacleCls.firstDb.meterWeight.Value - CacleCls.lockWgt) / 1000, 2)}";
                         }
                         else
                         {
-                            txtGroess.Text = $"{CacleCls.lockWgt / 1000}";
-                            txtTare.Text = $"{CacleCls.firstDb.meterWeight / 1000}";
-                            txtNet.Text = $"{(CacleCls.lockWgt - CacleCls.firstDb.meterWeight) / 1000}";
+                            txtGroess.Text = $"{Math.Round((decimal)CacleCls.lockWgt / 1000, 2)}";
+                            txtTare.Text = $"{Math.Round((decimal)CacleCls.firstDb.meterWeight / 1000, 2)}";
+                            txtNet.Text = $"{Math.Round((decimal)(CacleCls.lockWgt - CacleCls.firstDb.meterWeight) / 1000, 2)}";
                         }
                     }
+                    if (CacleCls.firstDb == null)
+                    {
+                        //计量完成多委托
 
-                    if (!string.IsNullOrEmpty(CacleCls.LEDResultMessage))
+                        led_controler.setStaticLineMsg(AppConfigCache.ledIp, $"车号{CacleCls.lockCarNo},重量{Math.Round((decimal)CacleCls.lockWgt / 1000, 2)}吨,计量完成");
+                    }
+                    else 
                     {
-                        led_controler.setStaticLineMsg(AppConfigCache.ledIp, CacleCls.LEDResultMessage);
+                        led_controler.setStaticLineMsg(AppConfigCache.ledIp, $"车号{CacleCls.lockCarNo},重量{Math.Round((decimal)CacleCls.lockWgt / 1000, 2)}吨,净重{Math.Round((decimal)Math.Abs(CacleCls.firstDb.meterWeight.Value - CacleCls.lockWgt) / 1000, 2)}吨,计量完成");
                     }
+
                     #endregion
 
                     //屏幕截图操作
@@ -946,7 +925,7 @@ namespace CarLocalMeter
         private void cbJg_CheckedChanged(object sender, EventArgs e)
         {
             CacleCls.isJg = cbJg.Checked;
-            btnSave.Enabled = cbJg.Checked;
+            if(!isMeasureSuccess) btnSave.Enabled = cbJg.Checked;
         }
 
         private void txtCarNo_TextChanged(object sender, EventArgs e)
@@ -975,7 +954,7 @@ namespace CarLocalMeter
 
         private void txtCarNo_KeyDown(object sender, KeyEventArgs e)
         {
-            if (e.KeyCode == Keys.Enter) label3.Focus();
+            if (e.KeyCode == Keys.Enter) txtMsgInfo.Focus();
         }
 
         private void btnOpenDz_Click(object sender, EventArgs e)

+ 2 - 2
MeterSceneLibrary/JISCO/InnerCarJISCO.cs

@@ -303,8 +303,8 @@ namespace MeterSceneLibrary
                                                             else
                                                             {
                                                                 // 存在使用期限皮重权限,并使用期限皮重结净
-                                                                List<string> l = new List<string>();
-                                                                l.Add("create");
+                                                                //List<string> l = new List<string>();
+                                                                //l.Add("create");
                                                                 //给一次数据匹配委托
                                                                 EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
                                                                 mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);

+ 2 - 11
RailLocalMeter/App.config

@@ -7,8 +7,7 @@
 		<!--ping服务器的地址-->
 		<add key="ServiceIp" value="jgwzjl.jiugang.com"/>
 
-		<add key="ServiceUrl" value="http://10.104.4.130:9004/v1" />
-		<!--<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>-->
+		<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>
 		<!--<add key="ServiceUrl" value="http://jgwzjl.jiugang.com/icore.icp.web/pass/systemBase/v1"/>-->
 
 		<add key="fpath" value="http://10.99.81.20/icore.icp.web/pass/file/upload/" />
@@ -17,17 +16,11 @@
 		<add key="imgMass" value="100" />
 		<add key="imgMass2" value="100" />
 
-		<!-- 一次计量数据过期时间(小时)-->
-		<add key="isEndHour" value="400"/>
 		<!--毛皮差值验证(单位kg)-->
 		<add key="differenceWgt" value="500" />
-		<!--输入的皮重跟历史皮重超差值(kg)-->
-		<add key="difTareHisWgt" value="300" />
-		<!--毛皮分界线,小于该值为皮重,大于为毛(kg)-->
+		<!--毛皮分界线,小于该值为皮重,大于为毛(kg),实际上没用到-->
 		<add key="tareGrossBoundary" value="30000" />
 
-		<!--计量间隔时间分钟-->
-		<add key="timeJg" value="10" />
 		<!--计量完成,语音播放次数-->
 		<add key="voiceNum" value="5" />
 
@@ -39,8 +32,6 @@
 		
 		<!--秤体量程(单位t)-->
 		<add key="maxRange" value="300" />
-		
-		
 
 		<!--硬盘录像机仪表抓拍设置的通道-->
 		<add key="channelOther" value="1,2" />