Browse Source

winfrom修改

duyong 4 years ago
parent
commit
70f8d4df07

+ 2 - 1
CarMeterSystem/App.config

@@ -6,9 +6,10 @@
 	<appSettings>
 		<!--<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://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服务端连接及地址-->

+ 25 - 14
CarMeterSystem/Form1.cs

@@ -74,6 +74,9 @@ namespace CarMeterSystem
         /// </summary>
         private BaseDbCls bd = new BaseDbCls();
 
+        //扫码修正车号标识
+        private bool codeFlag = false; 
+
         private List<ucBusinessType> lu = new List<ucBusinessType>();
 
         private bool isVoiceDownCar = false;//车上人员请下车播放一次
@@ -172,6 +175,7 @@ namespace CarMeterSystem
                         collection.Start(PbCache.sportInfo.baseSpotNo, PbCache.sportInfo.baseSpotName);
 
                         imageCurlControl.Start(); //图片采集线程
+                        //sweepCodeClass.StartThreadSweep(); //扫码线程
                         ////***********************暂时注释掉*****************************************************
                         ////sweepCodeClass.StartThreadSweep();
                         ////**************************************************************************************
@@ -313,7 +317,7 @@ namespace CarMeterSystem
 
                 #region 扫码信息
                 sweepCodeClass.StrState = e.weightStatus + ""; //重量状态信息;当StrState= 0时,获取扫码信息,StrState= 2时将扫码信息置位“”空;其他状态不处理
-
+                l.WriteLog(12,sweepCodeClass.ToString());
                 if (string.IsNullOrEmpty(sweepCodeClass.StrCode))
                 {
                     if (string.IsNullOrEmpty(PbCache.strCode))
@@ -325,17 +329,20 @@ namespace CarMeterSystem
                 }
                 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;
-                    }
+                    ////日期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;
+                    codeFlag = true;
                 }
 
                 #endregion
@@ -552,6 +559,8 @@ namespace CarMeterSystem
                         {
                             //未锁定的情况下,若监控界面设置了车号,则车号将改为设定车号
                             sCarNo = PbCache.monitor.setCar;
+                            codeFlag = false;
+                            sweepCodeClass.StrCode = "";
                         }
                         #endregion
 
@@ -633,8 +642,10 @@ namespace CarMeterSystem
                                 uc.setControlEnable(true);
                             }
                         }
-
-                        PbCache.collect.carno = sCarNo;
+                        if (sweepCodeClass.StrCode == "" && !codeFlag)
+                        {
+                            PbCache.collect.carno = sCarNo;
+                        }
                     }
 
                     //写入LED信息

+ 24 - 14
CarMeterSystem/frmMain.cs

@@ -72,6 +72,9 @@ namespace CarMeterSystem
         /// </summary>
         private BaseDbCls bd = new BaseDbCls();
 
+        //扫码修正车号标识
+        private bool codeFlag = false;
+
         private List<ucBusinessType> lu = new List<ucBusinessType>();
 
         private bool isVoiceDownCar = false;//车上人员请下车播放一次
@@ -340,19 +343,21 @@ namespace CarMeterSystem
                 }
                 else
                 {
-                    //日期2021年12月22日:重复扫码,取前面12位
-                    if (sweepCodeClass.StrCode.Length > 15)
-                    {
-                        // todo: 加入车号截取逻辑
-                        sweepCodeClass.StrCode = sweepCodeClass.StrCode.Substring(0,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;
-                        
-                    }
+                    ////日期2021年12月22日:重复扫码,取前面12位
+                    //if (sweepCodeClass.StrCode.Length > 15)
+                    //{
+                    //    // todo: 加入车号截取逻辑
+                    //    sweepCodeClass.StrCode = sweepCodeClass.StrCode.Substring(0,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;
+                    codeFlag = true;
                 }
 
                 #endregion 扫码信息
@@ -592,6 +597,8 @@ namespace CarMeterSystem
                             sCarNo = PbCache.monitor.setCar;
                             bEditCar = true;
                             flagCarMonit = true;
+                            codeFlag = false;
+                            sweepCodeClass.StrCode = "";
                         }
                         #endregion
 
@@ -655,7 +662,10 @@ namespace CarMeterSystem
                                 uc.setControlEnable(true);
                             }
                         }
-                        PbCache.collect.carno = sCarNo;
+                        if (sweepCodeClass.StrCode == "" && !codeFlag)
+                        {
+                            PbCache.collect.carno = sCarNo;
+                        }
                     }
 
                     //写入LED信息

+ 7 - 8
CarMeterSystem/frmOneYardToEnd.Designer.cs

@@ -68,7 +68,7 @@
             this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnSave.Font = new System.Drawing.Font("楷体", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)), true);
             this.btnSave.ForeColor = System.Drawing.Color.White;
-            this.btnSave.Location = new System.Drawing.Point(532, 650);
+            this.btnSave.Location = new System.Drawing.Point(480, 625);
             this.btnSave.Name = "btnSave";
             this.btnSave.Size = new System.Drawing.Size(129, 35);
             this.btnSave.TabIndex = 641;
@@ -98,7 +98,7 @@
             this.btnFH.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnFH.Font = new System.Drawing.Font("楷体", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)), true);
             this.btnFH.ForeColor = System.Drawing.Color.White;
-            this.btnFH.Location = new System.Drawing.Point(667, 650);
+            this.btnFH.Location = new System.Drawing.Point(615, 621);
             this.btnFH.Name = "btnFH";
             this.btnFH.Size = new System.Drawing.Size(255, 42);
             this.btnFH.TabIndex = 642;
@@ -112,7 +112,7 @@
             this.btnTare.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnTare.Font = new System.Drawing.Font("楷体", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)), true);
             this.btnTare.ForeColor = System.Drawing.Color.White;
-            this.btnTare.Location = new System.Drawing.Point(410, 649);
+            this.btnTare.Location = new System.Drawing.Point(400, 742);
             this.btnTare.Name = "btnTare";
             this.btnTare.Size = new System.Drawing.Size(116, 36);
             this.btnTare.TabIndex = 643;
@@ -127,7 +127,7 @@
             this.btnHelp.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnHelp.Font = new System.Drawing.Font("楷体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)), true);
             this.btnHelp.ForeColor = System.Drawing.Color.White;
-            this.btnHelp.Location = new System.Drawing.Point(514, 574);
+            this.btnHelp.Location = new System.Drawing.Point(504, 666);
             this.btnHelp.Name = "btnHelp";
             this.btnHelp.Size = new System.Drawing.Size(280, 70);
             this.btnHelp.TabIndex = 638;
@@ -291,7 +291,7 @@
             this.tableLayoutPanelPromptMsg.RowCount = 2;
             this.tableLayoutPanelPromptMsg.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
             this.tableLayoutPanelPromptMsg.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
-            this.tableLayoutPanelPromptMsg.Size = new System.Drawing.Size(1277, 133);
+            this.tableLayoutPanelPromptMsg.Size = new System.Drawing.Size(1277, 184);
             this.tableLayoutPanelPromptMsg.TabIndex = 646;
             // 
             // txtMsgInfo
@@ -305,10 +305,9 @@
             this.txtMsgInfo.Margin = new System.Windows.Forms.Padding(2);
             this.txtMsgInfo.Name = "txtMsgInfo";
             this.txtMsgInfo.ReadOnly = true;
-            this.txtMsgInfo.Size = new System.Drawing.Size(1273, 89);
+            this.txtMsgInfo.Size = new System.Drawing.Size(1273, 140);
             this.txtMsgInfo.TabIndex = 2;
-            this.txtMsgInfo.Text = "请在具备过磅状态后扫码计量!";
-            this.txtMsgInfo.Visible = false;
+            this.txtMsgInfo.Text = "";
             // 
             // label9
             // 

+ 366 - 334
CarMeterSystem/frmOneYardToEnd.cs

@@ -99,13 +99,12 @@ namespace CarMeterSystem
         {
             try
             {
-                if (PbCache.collect == null) return;
+                    if (PbCache.collect == null) return;
                 PbCache.isLockFrm = true;
                 PbCache.lockCarNo = PbCache.collect.carno;
                 PbCache.lockWgt = PbCache.collect.weight;
                 btnSave.Enabled = false;
                 lg.WriteLog(15, PbCache.lockCarNo + "点击保存按钮");
-
                 PreTrackScale preTrack = ucCarMeterInfoJisco1._preTrack;
                 string strMsg = "";
 
@@ -206,6 +205,7 @@ namespace CarMeterSystem
 
                             PbCache.isLockFrm = false;
                             btnSave.Enabled = true;
+                            setMsg(PbCache.ResultMessage);
                             return;
                         }
                     }
@@ -216,6 +216,7 @@ namespace CarMeterSystem
 
                         PbCache.isLockFrm = false;
                         btnSave.Enabled = true;
+                        setMsg(PbCache.ResultMessage);
                         return;
                     }
 
@@ -279,14 +280,16 @@ namespace CarMeterSystem
                             {
                                 try
                                 {
-                                    btnSave.Enabled = true;
+                                    btnSave.Enabled = false;
                                     strRm = em.GetAndExecuteMethod<rtInfo>("MeterSceneLibrary", "InnerCarJISCO", "MeterMethod", new object[] { new PreTrackScale { } });
+                                    setMsg(strRm.ResultMessage);
                                 }
                                 catch (Exception exp)
                                 {
                                     PbCache.ResultMessage = "获取计量场景信息失败,请点击语音求助";
                                     //这里是未找到方法的情况
                                     lg.WriteLog(3, "获取场景失败!" + strRm.ResultMessage);
+                                    setMsg(PbCache.ResultMessage);
                                     //break;
                                     return;
                                 }
@@ -296,14 +299,16 @@ namespace CarMeterSystem
                             {
                                 try
                                 {
-                                    btnSave.Enabled = true;
+                                    btnSave.Enabled = false;
                                     strRm = em.GetAndExecuteMethod<rtInfo>("MeterSceneLibrary", "OuterCarJISCO", "MeterMethod", new object[] { new PreTrackScale { } });
+                                    setMsg(strRm.ResultMessage);
                                 }
                                 catch (Exception exp)
                                 {
                                     PbCache.ResultMessage = "获取计量场景信息失败,请点击语音求助";
                                     //这里是未找到方法的情况
                                     lg.WriteLog(3, "获取场景失败!" + strRm.ResultMessage);
+                                    setMsg(PbCache.ResultMessage);
                                     //break;
                                     return;
                                 }
@@ -326,6 +331,7 @@ namespace CarMeterSystem
                                 if (strRm.Data.result) //说明:标识当前跑了一个场景成功了;场景完成后则返回,不再进行下一个场景的执行操作;
                                 {
                                     PbCache.ResultMessage = strRm.Data.resultInfo; //语音提示文件
+                                    setMsg(PbCache.ResultMessage);
                                     Monitor(strRm.Data);
                                     //return;
                                 }
@@ -360,7 +366,7 @@ namespace CarMeterSystem
                         }
                         else
                         {
-                            PbCache.ResultMessage += "\n\r无法确认车辆类别,保存失败";
+                            PbCache.ResultMessage += "\n\r车号未注册,请联系处理";
                             PbCache.isLockFrm = false;
                             btnSave.Enabled = true;
                             setMsg(PbCache.ResultMessage);
@@ -444,12 +450,18 @@ namespace CarMeterSystem
                     #endregion LED写入
 
                     //计量完成后,显示毛重或者皮重
+
+
                     _ = BeginInvoke(new Action(() =>
                     {
-                        if (PbCache.isTareWeight)
-                            ucWeightCarTJXJG1.setWeightType("皮重");
-                        else
-                            ucWeightCarTJXJG1.setWeightType("毛重");
+                        if (!PbCache.isActual && !PbCache.isInnerCar)
+                        {
+                            if (PbCache.isTareWeight)
+                                ucWeightCarTJXJG1.setWeightType("皮重");
+                            else
+                                ucWeightCarTJXJG1.setWeightType("毛重");
+                        }
+                        
                     }));
 
                     //图片截取
@@ -576,431 +588,447 @@ namespace CarMeterSystem
 
             try
             {
-                if (PbCache.collect.weight < 500)
-                {
-                    //不显示重量
-                    ucWeightCarTJXJG1.setWgtBackColor(false);
-                    isCalibration = true;
-                    PbCache.addWgt = 0;
-                    this.Close();
-                }
+                
+                    if (PbCache.collect.weight < 500)
+                    {
+                        //不显示重量
+                        ucWeightCarTJXJG1.setWgtBackColor(false);
+                        isCalibration = true;
+                        PbCache.addWgt = 0;
+                        this.Close();
+                    }
 
-                #region 0.接受远程修改过后的车号并显示
-                //if (PbCache.monitor != null && !string.IsNullOrEmpty(PbCache.monitor.editCar))
-                //{
-                //    PbCache.lockCarNo = PbCache.monitor.editCar;
-                //}
-                #endregion
+                    #region 0.接受远程修改过后的车号并显示
+                    //if (PbCache.monitor != null && !string.IsNullOrEmpty(PbCache.monitor.editCar))
+                    //{
+                    //    PbCache.lockCarNo = PbCache.monitor.editCar;
+                    //}
+                    #endregion
 
-                #region 1、求助按钮控制
-                if (PbCache.monitor != null && !string.IsNullOrEmpty(PbCache.monitor.isHelp))
-                {
-                    switch (PbCache.monitor.isHelp)
+                    #region 1、求助按钮控制
+                    if (PbCache.monitor != null && !string.IsNullOrEmpty(PbCache.monitor.isHelp))
                     {
-                        case "0": //未呼叫
-                            {
-                                if (btnHelp.Text != "语音求助")
+                        switch (PbCache.monitor.isHelp)
+                        {
+                            case "0": //未呼叫
                                 {
-                                    btnHelp.BackColor = Color.DodgerBlue;
-                                    btnHelp.Text = "语音求助";
-                                }
-                            }; break;
-                        case "1": //呼叫待接听
-                            {
-                                if (btnHelp.Text != "呼叫中")
+                                    if (btnHelp.Text != "语音求助")
+                                    {
+                                        btnHelp.BackColor = Color.DodgerBlue;
+                                        btnHelp.Text = "语音求助";
+                                    }
+                                }; break;
+                            case "1": //呼叫待接听
                                 {
-                                    btnHelp.BackColor = Color.Red;
-                                    btnHelp.Text = "呼叫中";
-                                }
-                            }; break;
-                        case "2": //呼叫已接听
-                            {
-                                if (btnHelp.Text != "已接听")
+                                    if (btnHelp.Text != "呼叫中")
+                                    {
+                                        btnHelp.BackColor = Color.Red;
+                                        btnHelp.Text = "呼叫中";
+                                    }
+                                }; break;
+                            case "2": //呼叫已接听
                                 {
-                                    btnHelp.BackColor = Color.Green;
-                                    btnHelp.Text = "已接听";
-                                }
-                            }; break;
+                                    if (btnHelp.Text != "已接听")
+                                    {
+                                        btnHelp.BackColor = Color.Green;
+                                        btnHelp.Text = "已接听";
+                                    }
+                                }; break;
+                        }
                     }
-                }
-                #endregion 1、求助按钮控制
+                    #endregion 1、求助按钮控制
 
-                #region 界面未锁定的情况下,初始设置值<车号、监控界面交互、设置初始的毛皮类型>
-                if (!PbCache.isLockFrm)
-                {
-                    //ucWeightT1.setWgt(PbCache.collect.weight);
-                    //周俊伶注释
-                    //ucWeightT1.setWgt(Math.Round((double)PbCache.collect.weight / 1000, 2)); //2021年5月10日界面显示单位,调整为T
-                    //ucWeightT1.setStable(PbCache.collect.weightStatus != 1 ? true : false);
-                    //ucWeightT1.setExceed(PbCache.collect.weight > PbCache.range.upperRange ? false : true);
-
-                    //2021年5月10日界面显示单位,调整为T
-                    ucWeightCarTJXJG1.setWgt(Math.Round((double)PbCache.collect.weight / 1000, 2));
-                    // 修改界面过磅状态红/绿图标
-                    ucWeightCarTJXJG1.setStable(PbCache.collect.weightStatus != 1 ? true : false);
- 
-                    #region 远程计量交互代码
-
-                    //如果处于远程计量状态,且远程保存完成了,则提示保存完成,让司机知道
-                    if (PbCache.monitor != null)// && PbCache.collect.weight > 500)
+                    #region 界面未锁定的情况下,初始设置值<车号、监控界面交互、设置初始的毛皮类型>
+                    if (!PbCache.isLockFrm)
                     {
-                        if (!string.IsNullOrEmpty(PbCache.monitor.isOverWgt) && PbCache.monitor.isTakeOver == "2" && !isOverSound) //&& !PbCache.isLockFrm)
-                        {
-                            ucWeightCarTJXJG1.setWgtBackColor(true);//称重完成后,显示颜色;
-                            txtMsgInfo.Text = "称重完成";
-                            vicPlayClass.GetVoicePlay("称重完成", PbCache.collect.carno);
-                            isOverSound = true;
-                            Print1(PbCache.monitor.isOverWgt);
-                            return;
-                        }
+                        //ucWeightT1.setWgt(PbCache.collect.weight);
+                        //周俊伶注释
+                        //ucWeightT1.setWgt(Math.Round((double)PbCache.collect.weight / 1000, 2)); //2021年5月10日界面显示单位,调整为T
+                        //ucWeightT1.setStable(PbCache.collect.weightStatus != 1 ? true : false);
+                        //ucWeightT1.setExceed(PbCache.collect.weight > PbCache.range.upperRange ? false : true);
 
-                        if (PbCache.monitor.isTakeOver == "2" || !string.IsNullOrEmpty(PbCache.monitor.isOverWgt))
+                        //2021年5月10日界面显示单位,调整为T
+                        ucWeightCarTJXJG1.setWgt(Math.Round((double)PbCache.collect.weight / 1000, 2));
+                        // 修改界面过磅状态红/绿图标
+                        ucWeightCarTJXJG1.setStable(PbCache.collect.weightStatus != 1 ? true : false);
+
+                        #region 远程计量交互代码
+
+                        //如果处于远程计量状态,且远程保存完成了,则提示保存完成,让司机知道
+                        if (PbCache.monitor != null)// && PbCache.collect.weight > 500)
                         {
-                            btnSave.Visible = false;
-                            bRelation = true;
-                            lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";远程计量完成后,保存按钮隐藏!");
-                            if (!txtMsgInfo.Text.Contains("称重完成") && PbCache.monitor.isTakeOver == "2")
+                            if (!string.IsNullOrEmpty(PbCache.monitor.isOverWgt) && PbCache.monitor.isTakeOver == "2" && !isOverSound) //&& !PbCache.isLockFrm)
                             {
-                                txtMsgInfo.Text = "司秤工正在远程计量,请等待处理!!";
+                                ucWeightCarTJXJG1.setWgtBackColor(true);//称重完成后,显示颜色;
+                                txtMsgInfo.Text = "称重完成";
+                                vicPlayClass.GetVoicePlay("称重完成", PbCache.collect.carno);
+                                isOverSound = true;
+                                Print1(PbCache.monitor.isOverWgt);
+                                return;
                             }
-                            if (!txtMsgInfo.Text.Contains("称重完成") && !string.IsNullOrEmpty(PbCache.monitor.isOverWgt))
+
+                            if (PbCache.monitor.isTakeOver == "2" || !string.IsNullOrEmpty(PbCache.monitor.isOverWgt))
                             {
-                                txtMsgInfo.Text = "本次计量称重已经完成,车辆请下秤!!";
+                                btnSave.Visible = false;
+                                bRelation = true;
+                                lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";远程计量完成后,保存按钮隐藏!");
+                                if (!txtMsgInfo.Text.Contains("称重完成") && PbCache.monitor.isTakeOver == "2")
+                                {
+                                    txtMsgInfo.Text = "司秤工正在远程计量,请等待处理!!";
+                                }
+                                if (!txtMsgInfo.Text.Contains("称重完成") && !string.IsNullOrEmpty(PbCache.monitor.isOverWgt))
+                                {
+                                    txtMsgInfo.Text = "本次计量称重已经完成,车辆请下秤!!";
+                                }
+                                return;
                             }
-                            return;
                         }
-                    }
 
-                    #endregion 远程计量交互代码
-
-                    if (string.IsNullOrEmpty(TrackCarNo))
-                    {
-                        txtCarNo.Text = PbCache.collect.carno;
-                    }
-                    else
-                    {
-                        txtCarNo.Text = TrackCarNo;
+                        #endregion 远程计量交互代码
 
-                        if (PbCache.collect != null && !string.IsNullOrEmpty(PbCache.collect.carno))
+                        if (string.IsNullOrEmpty(TrackCarNo))
                         {
-                            if (TrackCarNo != PbCache.collect.carno)
+                            txtCarNo.Text = PbCache.collect.carno;
+                        }
+                        else
+                        {
+                            txtCarNo.Text = TrackCarNo;
+
+                            if (PbCache.collect != null && !string.IsNullOrEmpty(PbCache.collect.carno))
                             {
-                                if (PbCache.monitor.carErr != "1") //写入一次车号异常
+                                if (TrackCarNo != PbCache.collect.carno)
                                 {
-                                    RESTfulResult<string> rms = monitor.doUpdateWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo, carErr = "1" });
+                                    if (PbCache.monitor.carErr != "1") //写入一次车号异常
+                                    {
+                                        RESTfulResult<string> rms = monitor.doUpdateWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo, carErr = "1" });
+                                    }
+                                }
+                                else if (PbCache.monitor.carErr == "1") //若车号相等,但是之前写了一次车号异常,此时要改为车号正常
+                                {
+                                    RESTfulResult<string> rms = monitor.doUpdateWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo, carErr = "0" });
                                 }
                             }
-                            else if (PbCache.monitor.carErr == "1") //若车号相等,但是之前写了一次车号异常,此时要改为车号正常
-                            {
-                                RESTfulResult<string> rms = monitor.doUpdateWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo, carErr = "0" });
-                            }
-                        }
 
-                        // ??BourneCao 酒钢不可能预报车号和识别车号不一致
-                        vCarNo.ValidMethod(new PreTrackScale { carNo = TrackCarNo });
-                        
-                        if (TrackCarNo != PbCache.collect.carno && !PbCache.monitorResult.valid_carno)
-                        {
-                            // 2021年5月11日 未识别到车牌号,进行提示,避免出现重新扫码点保存的情况
-                            if (string.IsNullOrEmpty(PbCache.collect.carno))
+                            // ??BourneCao 酒钢不可能预报车号和识别车号不一致
+                            vCarNo.ValidMethod(new PreTrackScale { carNo = TrackCarNo });
+
+                            if (TrackCarNo != PbCache.collect.carno && !PbCache.monitorResult.valid_carno)
                             {
-                                txtMsgInfo.Text = string.Format("摄像头未识别到车牌号,不允许进行【保存】操作,请点击语音求助!");
-                                lg.WriteLog(14, "摄像头未识别到车牌号,不允许进行【保存】操作,请点击语音求助!");
+                                // 2021年5月11日 未识别到车牌号,进行提示,避免出现重新扫码点保存的情况
+                                if (string.IsNullOrEmpty(PbCache.collect.carno))
+                                {
+                                    txtMsgInfo.Text = string.Format("摄像头未识别到车牌号,不允许进行【保存】操作,请点击语音求助!");
+                                    lg.WriteLog(14, "摄像头未识别到车牌号,不允许进行【保存】操作,请点击语音求助!");
+                                }
+                                else
+                                {
+                                    txtMsgInfo.Text = string.Format("预报车号【{0}】与摄像头识别车号【{1}】不一致,请点击语音求助", TrackCarNo, PbCache.collect.carno);
+                                    lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";预报车号" + TrackCarNo + "与摄像头识别车号" + PbCache.collect.carno + "不一致!");
+                                }
+                                btnSave.Visible = false;
+                                return;
                             }
                             else
                             {
-                                txtMsgInfo.Text = string.Format("预报车号【{0}】与摄像头识别车号【{1}】不一致,请点击语音求助", TrackCarNo, PbCache.collect.carno);
-                                lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";预报车号" + TrackCarNo + "与摄像头识别车号" + PbCache.collect.carno + "不一致!");
-                            }
-                            btnSave.Visible = false;
-                            return;
-                        }
-                        else
-                        {
-                            if (txtMsgInfo.Text.Contains("摄像头"))
-                            {
-                                txtMsgInfo.Text = ""; //将原来的不允许计量的提示给去掉
-                            }
-                            PbCache.collect.carno = TrackCarNo;  
+                                if (txtMsgInfo.Text.Contains("摄像头"))
+                                {
+                                    txtMsgInfo.Text = ""; //将原来的不允许计量的提示给去掉
+                                }
+                                PbCache.collect.carno = TrackCarNo;
 
+                            }
                         }
                     }
-                }
 
-                #endregion 界面未锁定的情况下,初始设置值<车号、监控界面交互、设置初始的毛皮类型>
+                    #endregion 界面未锁定的情况下,初始设置值<车号、监控界面交互、设置初始的毛皮类型>
 
-                #region 红外对射及量程验证及停留超时验证
-                valid.ValidMethod();
-                if (PbCache.range != null && PbCache.range.upperRange < PbCache.collect.weight)
-                {
-                    //超量程
-                    if (!isPlayRangeVoice)
+                    #region 红外对射及量程验证及停留超时验证
+                    valid.ValidMethod();
+                    if (PbCache.range != null && PbCache.range.upperRange < PbCache.collect.weight)
                     {
-                        vicPlayClass.GetVoicePlay("已超量程", PbCache.collect.carno);
-                        txtMsgInfo.Text = "当前重量已超量程,秤体量程为【" + PbCache.range.upperRange / 1000 + "】T,不允许进行自助计量操作!";
-                        isPlayRangeVoice = true;
+                        //超量程
+                        if (!isPlayRangeVoice)
+                        {
+                            vicPlayClass.GetVoicePlay("已超量程", PbCache.collect.carno);
+                            txtMsgInfo.Text = "当前重量已超量程,秤体量程为【" + PbCache.range.upperRange / 1000 + "】T,不允许进行自助计量操作!";
+                            isPlayRangeVoice = true;
+                        }
                     }
-                }
-                if (PbCache.collect.weightStatus == 0 && !PbCache.monitorResult.valid_park_status)
-                {
-                    //重量稳定,且对射验证不合格
-                    if (!isPlayCalibVoice)
+                    if (PbCache.collect.weightStatus == 0 && !PbCache.monitorResult.valid_park_status)
                     {
-                        vicPlayClass.GetVoicePlay("您的车辆未停到位", PbCache.collect.carno);
-                        txtMsgInfo.Text = "您的车辆未停到位,请调整车辆位置,不要遮挡激光检测设备,不允许进行自助计量操作!";//timer1_Tick
-                        isPlayCalibVoice = true;
+                        //重量稳定,且对射验证不合格
+                        if (!isPlayCalibVoice)
+                        {
+                            vicPlayClass.GetVoicePlay("您的车辆未停到位", PbCache.collect.carno);
+                            txtMsgInfo.Text = "您的车辆未停到位,请调整车辆位置,不要遮挡激光检测设备,不允许进行自助计量操作!";//timer1_Tick
+                            isPlayCalibVoice = true;
+                        }
                     }
-                }
-                if (PbCache.isOvertimeAlarm)
-                {
-                    //停留超时提醒,不作为计量卡控的条件
-                    if (!isPlayOvertimeVoice && !PbCache.isLockFrm)
+                    if (PbCache.isOvertimeAlarm)
                     {
-                        vicPlayClass.GetVoicePlay("停留超时", PbCache.collect.carno);
-                        //txtMsgInfo.Text = "您的车辆已停留超过三分钟,遇到操作问题请点击【语音求助】联系司秤工处理或继续进行自助计量!";
-                        isPlayOvertimeVoice = true;
-                        return;
+                        //停留超时提醒,不作为计量卡控的条件
+                        if (!isPlayOvertimeVoice && !PbCache.isLockFrm)
+                        {
+                            vicPlayClass.GetVoicePlay("停留超时", PbCache.collect.carno);
+                            //txtMsgInfo.Text = "您的车辆已停留超过三分钟,遇到操作问题请点击【语音求助】联系司秤工处理或继续进行自助计量!";
+                            isPlayOvertimeVoice = true;
+                            return;
+                        }
                     }
-                }
 
-                #endregion 红外对射及量程验证及停留超时验证
+                    #endregion 红外对射及量程验证及停留超时验证
 
 
-                #region 查一次是否校秤,若未校秤则不能计量
+                    #region 查一次是否校秤,若未校秤则不能计量
 
-                //*
-                if (bRelation)
-                {
-                    string msgInfo = "";
-                    isCalibration = vCalib.ValidMethod(new MeterWorkCalibrationMain { baseSpotNo = PbCache.sportInfo.baseSpotNo, valueFlag = "2" }, out msgInfo);
-                    bRelation = false;
-                }
+                    //*
+                    if (bRelation)
+                    {
+                        string msgInfo = "";
+                        isCalibration = vCalib.ValidMethod(new MeterWorkCalibrationMain { baseSpotNo = PbCache.sportInfo.baseSpotNo, valueFlag = "2" }, 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))
+                    if (!isCalibration)
                     {
-                        if (!bXCStart)
+                        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))
                         {
-                            vicPlayClass.GetVoicePlay("未校秤", "");
-                            bXCStart = true;
+                            if (!bXCStart)
+                            {
+                                vicPlayClass.GetVoicePlay("未校秤", "");
+                                bXCStart = true;
+                            }
+                            txtMsgInfo.Text = "未校秤无法计量";
+                            return;
                         }
-                        txtMsgInfo.Text = "未校秤无法计量";
-                        return;
                     }
-                }
-                //*/
+                    //*/
 
-                #endregion 查一次是否校秤,若未校秤则不能计量
+                    #endregion 查一次是否校秤,若未校秤则不能计量
 
-                #region 判断是否需要复磅
+                    #region 判断是否需要复磅
 
-                if (isShowRecover && !string.IsNullOrEmpty(txtCarNo.Text))
-                {
-                    recoverInfo.ValidMethod(txtCarNo.Text);
-                    if (PbCache.isAllowRecover)
+                    if (isShowRecover && !string.IsNullOrEmpty(txtCarNo.Text))
                     {
-                        btnRecover.Visible = true;
-                    }
-                    else
-                    {
-                        btnRecover.Visible = false;
+                        recoverInfo.ValidMethod(txtCarNo.Text);
+                        if (PbCache.isAllowRecover)
+                        {
+                            btnRecover.Visible = true;
+                        }
+                        else
+                        {
+                            btnRecover.Visible = false;
+                        }
+                        isShowRecover = false;
                     }
-                    isShowRecover = false;
-                }
 
-                #endregion 判断是否需要复磅
+                    #endregion 判断是否需要复磅
 
-                #region 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
+                    #region 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
 
-                //如果没有查过一次,且扫描到车号信息,且重量稳定
-                if ((bRailwayActual || sPreCarNo != TrackCarNo || firstCode != PbCache.strCode) && PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_park_status)
-                {
-                    firstWgt = 0;
-                    sPreCarNo = TrackCarNo;
-
-                    #region 查询一次计量表中是否存在一条未结净的数据,非一车联运情况扫码两次,一车联运的话
-
-                    RESTfulResult<List<MeterWorkCarActualFirst>> RESTfulResult = workCarActualFirstService.doQueryWf(new MeterWorkCarActualFirst { carNo = PbCache.collect.carno, valueFlag = "1" });
-                    if (RESTfulResult.Succeed)
+                    //如果没有查过一次,且扫描到车号信息,且重量稳定
+                    if ((bRailwayActual || sPreCarNo != TrackCarNo || firstCode != PbCache.strCode) && PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_park_status)
                     {
-                        if (RESTfulResult.Data != null && RESTfulResult.Data.Count > 0)
+                        firstWgt = 0;
+                        sPreCarNo = TrackCarNo;
+                        //判断车辆是厂内车还是厂外车
+                        RESTfulResult<List<MeterBaseCar>> resCarList = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno });
+                        if (resCarList.Succeed)
                         {
-                            if (PbCache.sportInfo.baseSpotNo == lianDaPointNo)
+                            if (resCarList.Data != null && resCarList.Data.Count > 0)
                             {
-                                bool flag = false;
-                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data) 
+                                MeterBaseCar car = resCarList.Data[0];
+                                //厂内车辆
+                                if (car.carTypeNo == "001004003")
                                 {
-                                    //联达磅过的联达物料
-                                    if (fs.predictionNo.Contains("_")) 
+                                    RESTfulResult<List<PreTrackScale>> rmScale = PreTrackScaleService.doQueryByFlag(new PreTrackScale { carNo = PbCache.collect.carno, lineDesc = "1" });
+
+                                    if (rmScale.Succeed)
                                     {
-                                        firstWgt = fs.meterWeight.Value;
-                                        firstDb = fs;
-                                        firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
-                                        //给用户控件设置值
-                                        ucCarMeterInfoJisco1.setFormControlValue(firstDb);
-                                        flag = true;
-                                        break;
+                                        if (rmScale.Data != null && rmScale.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("_", "");
+                                            //给用户控件设置值
+                                            ucCarMeterInfoJisco1.setFormControlValue(actualFirst);
+                                        }
                                     }
+                                    bRailwayActual = false;
                                 }
-                                if (!flag) 
-                                {
-                                    firstWgt = RESTfulResult.Data[0].meterWeight.Value;
-                                    firstDb = RESTfulResult.Data[0];
-                                    firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
-                                    //给用户控件设置值
-                                    ucCarMeterInfoJisco1.setFormControlValue(firstDb);
-                                }
-                            }
-                            else 
-                            {
-                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data) 
+                                //厂外车辆
+                                else if (car.carTypeNo == "001004002")
                                 {
-                                    if (fs.predictionNo != null && !fs.predictionNo.Contains("_")) 
+                                    #region 查询一次计量表中是否存在一条未结净的数据,非一车联运情况扫码两次,一车联运的话
+
+                                    RESTfulResult<List<MeterWorkCarActualFirst>> RESTfulResult = workCarActualFirstService.doQueryWf(new MeterWorkCarActualFirst { carNo = PbCache.collect.carno, valueFlag = "1" });
+                                    if (RESTfulResult.Succeed)
                                     {
-                                        firstWgt = RESTfulResult.Data[0].meterWeight.Value;
-                                        firstDb = RESTfulResult.Data[0];
-                                        firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
-                                        //给用户控件设置值
-                                        ucCarMeterInfoJisco1.setFormControlValue(firstDb);
-                                        break;
+                                        if (RESTfulResult.Data != null && RESTfulResult.Data.Count > 0)
+                                        {
+                                            if (PbCache.sportInfo.baseSpotNo == lianDaPointNo)
+                                            {
+                                                bool flag = false;
+                                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data)
+                                                {
+                                                    //联达磅过的联达物料
+                                                    if (fs.predictionNo.Contains("_"))
+                                                    {
+                                                        firstWgt = fs.meterWeight.Value;
+                                                        firstDb = fs;
+                                                        firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
+                                                        //给用户控件设置值
+                                                        ucCarMeterInfoJisco1.setFormControlValue(firstDb);
+                                                        flag = true;
+                                                        break;
+                                                    }
+                                                }
+                                                if (!flag)
+                                                {
+                                                    firstWgt = RESTfulResult.Data[0].meterWeight.Value;
+                                                    firstDb = RESTfulResult.Data[0];
+                                                    firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
+                                                    //给用户控件设置值
+                                                    ucCarMeterInfoJisco1.setFormControlValue(firstDb);
+                                                }
+                                            }
+                                            else
+                                            {
+                                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data)
+                                                {
+                                                    if (fs.predictionNo != null && !fs.predictionNo.Contains("_"))
+                                                    {
+                                                        firstWgt = RESTfulResult.Data[0].meterWeight.Value;
+                                                        firstDb = RESTfulResult.Data[0];
+                                                        firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
+                                                        //给用户控件设置值
+                                                        ucCarMeterInfoJisco1.setFormControlValue(firstDb);
+                                                        break;
+                                                    }
+                                                }
+                                            }
+                                        }
                                     }
+                                    #endregion
+                                    bRailwayActual = false;
                                 }
                             }
                         }
-                        else
-                        {
-                            RESTfulResult<List<PreTrackScale>> RESTfulResultPre = PreTrackScaleService.doQueryWf(new PreTrackScale { carNo = PbCache.collect.carno, valueFlag = "1" });
-                            if (RESTfulResultPre.Succeed)
-                            {
-                                if (RESTfulResult.Data != null && RESTfulResultPre.Data.Count == 1)
-                                {
-                                    firstWgt = RESTfulResultPre.Data[0].meterWeight.Value;
+                        #region 查一次是否可留期限皮,可以则显示按钮
 
-                                    EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
-                                    firstDb = entityBase1.format<MeterWorkCarActualFirst>(RESTfulResultPre.Data[0], firstDb);
+                        PbCache.lockWgt = PbCache.collect.weight;
 
-                                    firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
-                                    //给用户控件设置值
-                                    ucCarMeterInfoJisco1.setFormControlValue(firstDb);
-                                }
-                            }
+                        //2021年3月15日 期限皮重显示按钮的显示方法修改 isShowBtnTare   ValidMethod
+                        if (termTareCar.isShowBtnTare(TrackCarNo))
+                        {
+                            lg.WriteLog(3, string.Format("9车辆[{0}进入期限皮重显示按钮的显示判断", TrackCarNo));
+                            btnTare.Visible = true;
                         }
-                        bRailwayActual = false;
-                    }
-                    #endregion 查询一次计量表中是否存在一条未结净的数据,非一车联运情况扫码两次,一车联运的话
+                        //
 
-                    #region 查一次是否可留期限皮,可以则显示按钮
-
-                    PbCache.lockWgt = PbCache.collect.weight;
-
-                    //2021年3月15日 期限皮重显示按钮的显示方法修改 isShowBtnTare   ValidMethod
-                    if (termTareCar.isShowBtnTare(TrackCarNo))
-                    {
-                        lg.WriteLog(3, string.Format("9车辆[{0}进入期限皮重显示按钮的显示判断", TrackCarNo));
-                        btnTare.Visible = true;
+                        #endregion 查一次是否可留期限皮,可以则显示按钮
                     }
-                    //
 
-                    #endregion 查一次是否可留期限皮,可以则显示按钮
-                }
-
-                #endregion 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
+                    #endregion 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
 
 
-                #region 毛皮净赋值;存在一次重量firstWgt的情况下才赋值毛皮净重
+                    #region 毛皮净赋值;存在一次重量firstWgt的情况下才赋值毛皮净重
 
-                if (PbCache.collect.weightStatus == 0 && firstWgt > 500)
-                {
-                    if (Math.Abs(firstWgt - PbCache.collect.weight) > AppConfigCache.differenceWgt)
+                    if (PbCache.collect.weightStatus == 0 && firstWgt > 500)
                     {
-                        //2021年5月10日界面显示单位,调整为T
-                        if (PbCache.collect.weight > firstWgt)
-                        {
-                            txtGroess.Text = Math.Round((double)PbCache.collect.weight / 1000, 2) + "";
-                            txtTare.Text = Math.Round(firstWgt / 1000, 2) + "";
-                        }
-                        else
+                        if (Math.Abs(firstWgt - PbCache.collect.weight) > AppConfigCache.differenceWgt)
                         {
-                            txtTare.Text = Math.Round((double)PbCache.collect.weight / 1000, 2) + "";
-                            txtGroess.Text = Math.Round(firstWgt / 1000, 2) + "";
+                            //2021年5月10日界面显示单位,调整为T
+                            if (PbCache.collect.weight > firstWgt)
+                            {
+                                txtGroess.Text = Math.Round((double)PbCache.collect.weight / 1000, 2) + "";
+                                txtTare.Text = Math.Round(firstWgt / 1000, 2) + "";
+                            }
+                            else
+                            {
+                                txtTare.Text = Math.Round((double)PbCache.collect.weight / 1000, 2) + "";
+                                txtGroess.Text = Math.Round(firstWgt / 1000, 2) + "";
+                            }
+                            txtNet.Text = Math.Round(Math.Abs(PbCache.collect.weight - firstWgt) / 1000, 2) + "";
                         }
-                        txtNet.Text = Math.Round(Math.Abs(PbCache.collect.weight - firstWgt) / 1000, 2) + "";
                     }
-                }
 
-                #endregion 毛皮净赋值;存在一次重量firstWgt的情况下才赋值毛皮净重
+                    #endregion 毛皮净赋值;存在一次重量firstWgt的情况下才赋值毛皮净重
 
-                #region 界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证
+                    #region 界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证
 
-                //没有远程接管,且已查过一次数据,且界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证的情况下,则按钮可用
-                if (PbCache.monitor != null && PbCache.monitor.isTakeOver == "0" && !bRailwayActual
-                    && PbCache.collect.weightStatus == 0 && ucWeightT1.isGreenWgt)
-                {
-                    if (!PbCache.isLockFrm)
+                    //没有远程接管,且已查过一次数据,且界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证的情况下,则按钮可用
+                    if (PbCache.monitor != null && PbCache.monitor.isTakeOver == "0" && !bRailwayActual
+                        && PbCache.collect.weightStatus == 0 && ucWeightT1.isGreenWgt)
                     {
-                        if (!btnSave.Visible)//PbCache.isLockFrm
+                        if (!PbCache.isLockFrm)
                         {
-                            btnSave.Visible = true;
+                            if (!btnSave.Visible)//PbCache.isLockFrm
+                            {
+                                btnSave.Visible = true;
+                            }
+                            if (!isVoiceDownCar)
+                            {
+                                isVoiceDownCar = true;
+                                vicPlayClass.GetVoicePlay("车上人员请下车", PbCache.collect.carno);
+                                //txtMsgInfo.Text = "请核对车号后,扫描您手机中的二维码";
+                            }
                         }
-                        if (!isVoiceDownCar)
+                        else if (PbCache.monitor.validMatClick == "0")
                         {
-                            isVoiceDownCar = true;
-                            vicPlayClass.GetVoicePlay("车上人员请下车", PbCache.collect.carno);
-                            //txtMsgInfo.Text = "请核对车号后,扫描您手机中的二维码";
-                        }
-                    }
-                    else if (PbCache.monitor.validMatClick == "0")
-                    {
-                        //已锁定 && !PbCache.isLockFrm 
-                        if (!btnSave.Enabled) 
-                        {
-                            PbCache.isLockFrm = false;
-                            btnSave.Enabled = true;
+                            //已锁定 && !PbCache.isLockFrm 
+                            if (!btnSave.Enabled)
+                            {
+                                PbCache.isLockFrm = false;
+                                btnSave.Enabled = true;
 
-                            // 如果计量点配置中,设置了秤点计量类型为智能计量(下秤),验证扫码信息是否与识别车号一致。
-                            // 如果为是,自动保存
+                                // 如果计量点配置中,设置了秤点计量类型为智能计量(下秤),验证扫码信息是否与识别车号一致。
+                                // 如果为是,自动保存
 
-                            //五秒后自动执行保存方法
-                            //Thread.Sleep(5000);
-                            //this.btnSave.PerformClick();
+                                //五秒后自动执行保存方法
+                                //Thread.Sleep(5000);
+                                //this.btnSave.PerformClick();
+                            }
                         }
-                    }
 
-                }
-                else
-                {
-                    //2021年12月30日 添加提示信息
-                    if (!PbCache.isLockFrm)
+                    }
+                    else
                     {
-                        if (PbCache.monitor.isTakeOver == "1")
+                        //2021年12月30日 添加提示信息
+                        if (!PbCache.isLockFrm)
                         {
-                            lblog = "正在进行派位,不允许进行自助计量,请点击【语音求助】,联系司秤工处理!";
-                            DoShowlbLog(lblog);
+                            if (PbCache.monitor.isTakeOver == "1")
+                            {
+                                lblog = "正在进行派位,不允许进行自助计量,请点击【语音求助】,联系司秤工处理!";
+                                DoShowlbLog(lblog);
+                            }
+                            if (PbCache.monitor.isTakeOver == "2")
+                            {
+                                lblog = "正在进行远程计量,请等待司秤工处理!";
+                                DoShowlbLog(lblog);
+                            }
                         }
-                        if (PbCache.monitor.isTakeOver == "2")
+
+                        if (btnSave.Visible && !PbCache.isLockFrm)
                         {
-                            lblog = "正在进行远程计量,请等待司秤工处理!";
-                            DoShowlbLog(lblog);
+                            btnSave.Visible = false;
+                            lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";对射没对准【" + PbCache.monitorResult.valid_park_status + "】" +
+                                "||重量不是绿色【" + ucWeightT1.isGreenWgt + "】" +
+                                "||重量不稳定 0:重量稳定; 1:重量不稳定;  2:空磅【" + PbCache.collect.weightStatus + "】" +
+                                "||不是智能计量状态【" + PbCache.monitor.isTakeOver + "】" +
+                                "||扫码编号为空隐藏【" + firstCode + "】" +
+                                "||一次计量数据已经查询完成【" + bRailwayActual + "】" +
+                                "||界面已锁定【" + PbCache.isLockFrm + "】,保存按钮隐藏!");
                         }
                     }
-                    
-                    if (btnSave.Visible && !PbCache.isLockFrm)
-                    {
-                        btnSave.Visible = false;
-                        lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";对射没对准【" + PbCache.monitorResult.valid_park_status + "】" +
-                            "||重量不是绿色【" + ucWeightT1.isGreenWgt + "】" +
-                            "||重量不稳定 0:重量稳定; 1:重量不稳定;  2:空磅【" + PbCache.collect.weightStatus + "】" +
-                            "||不是智能计量状态【" + PbCache.monitor.isTakeOver + "】" +
-                            "||扫码编号为空隐藏【" + firstCode + "】" +
-                            "||一次计量数据已经查询完成【" + bRailwayActual + "】" +
-                            "||界面已锁定【" + PbCache.isLockFrm + "】,保存按钮隐藏!");
-                    }
-                }
-
-                #endregion 界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证
 
+                    #endregion 界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证
 
             }
             catch (Exception ex)
@@ -1757,6 +1785,10 @@ namespace CarMeterSystem
                 meterWorkMonitor.isHelp = "1";
                 rms = monitor.doUpdateWf(meterWorkMonitor);
             }
+            if (rms == null)
+            {
+                return;
+            }
             if (!rms.Succeed)
             {
                 lg.WriteLog(3, PbCache.lockCarNo + "求助写入失败");

+ 28 - 0
Common/DbOption/work/MeterWorkCarActualService.cs

@@ -76,6 +76,34 @@ namespace Common
                 return null;
             }
         }
+
+        /// <summary>
+        /// 查询当前预报最近的1条数据
+        /// </summary>
+        /// <param name="cpc"></param>
+        /// <returns></returns>
+        public RESTfulResult<List<MeterWorkCarActual>> doQueryActaulWf(MeterWorkCarActual cpc)
+        {
+            try
+            {
+                DbHelper db = new DbHelper();
+                RESTfulResult<PageList<List<MeterWorkCarActual>>> rm = db.doOption<PageList<List<MeterWorkCarActual>>>("meterworkcaractuals", "selectByMap", new object[] { cpc }, 1);
+                RESTfulResult<List<MeterWorkCarActual>> result = new RESTfulResult<List<MeterWorkCarActual>>();
+                result.Succeed = rm.Succeed;
+                result.Status = rm.Status;
+                result.Message = rm.Message;
+                result.ResultMessage = rm.ResultMessage;
+                result.Code = rm.Code;
+
+                result.Data = rm.Data?.list;
+                return result;
+            }
+            catch (Exception ex)
+            {
+                lg.WriteLog(13, "查询计量实绩信息异常MeterWorkCarActualService/doQueryOneWf,车号【" + cpc.carNo + "】!异常信息:" + ex);
+                return null;
+            }
+        }
         //多条件模糊查询 自带自定义状态
         public RESTfulResult<List<MeterWorkCarActual>> doQueryAndMultiple(CommonPage<MeterWorkCarActual> info)
         {

+ 11 - 3
Common/Reflex/EntityBase.cs

@@ -9,7 +9,7 @@ namespace Common
 {
     public class EntityBase<T>
     {
-        public M format<M>(T t,M m) 
+        public M format<M>(T t, M m,List<string> list = null) 
         {
             PropertyInfo[] PropertyInfos1 = t.GetType().GetProperties();
             PropertyInfo[] PropertyInfos2 = m.GetType().GetProperties();
@@ -20,9 +20,17 @@ namespace Common
             {
                 foreach (PropertyInfo p1 in PropertyInfos1) 
                 {
-                    if (p2.Name == "createManNo" || p2.Name == "createManName" || p2.Name == "createTime")
+                    if (list != null)
                     {
-                        continue;
+                        bool noChange = list.Contains(p2.Name);
+                        if (noChange)
+                        {
+                            break;
+                        }
+                    }
+                    if (p2.Name == "createManName" || p2.Name == "createManNo" || p2.Name == "createTime" || p2.Name == "updateManName" || p2.Name == "updateManNo" || p2.Name == "updateTime" || p2.Name == "valueFlag")
+                    {
+                        break;
                     }
                     if (p2.Name.ToUpper() == p1.Name.ToUpper()) 
                     {

+ 10 - 0
Common/cacheCls/PbCache.cs

@@ -306,5 +306,15 @@ namespace Common
         /// 是否允许复磅
         /// </summary>
         public static bool isAllowRecover { get; set; }
+
+        /// <summary>
+        /// 是否厂内车
+        /// </summary>
+        public static bool isInnerCar { get; set; }
+
+        /// <summary>
+        /// 是否一次数据
+        /// </summary>
+        public static bool isActual { get; set; }
     }
 }

+ 25 - 0
Common/vo/work/MeterWorkCarActual.cs

@@ -524,6 +524,31 @@ namespace Common
 
 		public string note { get; set; }
 
+		/// <summary>
+		/// 创建人姓名
+		/// <summary>
+		public string createManName { get; set; }
+
+		/// <summary>
+		/// 创建时间
+		/// <summary>
+		public DateTime createTime { get; set; }
+
+		/// <summary>
+		/// 修改人编号
+		/// <summary>
+		public string updateManNo { get; set; }
+
+		/// <summary>
+		/// 修改人姓名
+		/// <summary>
+		public string updateManName { get; set; }
+
+		/// <summary>
+		/// 修改人时间
+		/// <summary>
+		public DateTime? updateTime { get; set; }
+
 		#region 老系统字段
 		/// <summary>
 		/// 主凭据号 

+ 48 - 47
MeterModuleLibrary/uc/ucCarMeterInfoJisco.Designer.cs

@@ -31,7 +31,9 @@
             this.tableLayoutPanelMsg = new System.Windows.Forms.TableLayoutPanel();
             this.panelRECEIVING_UINT_NAME = new System.Windows.Forms.Panel();
             this.txtRECEIVING_UINT_NAME = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
             this.panelSHIPMENT_NET_WEIGHT = new System.Windows.Forms.Panel();
+            this.txtMATTER_NAME = new System.Windows.Forms.Label();
             this.panelCONTRACT_NO = new System.Windows.Forms.Panel();
             this.txtCONTRACT_NO = new System.Windows.Forms.Label();
             this.panelFORWARDING_UNIT_NAME = new System.Windows.Forms.Panel();
@@ -41,12 +43,10 @@
             this.label1 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
             this.label4 = new System.Windows.Forms.Label();
+            this.label5 = new System.Windows.Forms.Label();
+            this.label8 = new System.Windows.Forms.Label();
             this.panelPREDICTION_NO = new System.Windows.Forms.Panel();
             this.txtPREDICTION_NO = new System.Windows.Forms.Label();
-            this.label8 = new System.Windows.Forms.Label();
-            this.label5 = new System.Windows.Forms.Label();
-            this.label3 = new System.Windows.Forms.Label();
-            this.txtMATTER_NAME = new System.Windows.Forms.Label();
             this.tableLayoutPanelMsg.SuspendLayout();
             this.panelRECEIVING_UINT_NAME.SuspendLayout();
             this.panelSHIPMENT_NET_WEIGHT.SuspendLayout();
@@ -108,6 +108,17 @@
             this.txtRECEIVING_UINT_NAME.TabIndex = 15;
             this.txtRECEIVING_UINT_NAME.Text = "                    ";
             // 
+            // label3
+            // 
+            this.label3.Anchor = System.Windows.Forms.AnchorStyles.None;
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label3.Location = new System.Drawing.Point(619, 168);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(139, 36);
+            this.label3.TabIndex = 2;
+            this.label3.Text = "物资名称";
+            // 
             // panelSHIPMENT_NET_WEIGHT
             // 
             this.panelSHIPMENT_NET_WEIGHT.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(244)))), ((int)(((byte)(252)))));
@@ -119,6 +130,16 @@
             this.panelSHIPMENT_NET_WEIGHT.Size = new System.Drawing.Size(420, 124);
             this.panelSHIPMENT_NET_WEIGHT.TabIndex = 22;
             // 
+            // txtMATTER_NAME
+            // 
+            this.txtMATTER_NAME.AutoSize = true;
+            this.txtMATTER_NAME.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.txtMATTER_NAME.Location = new System.Drawing.Point(3, 44);
+            this.txtMATTER_NAME.Name = "txtMATTER_NAME";
+            this.txtMATTER_NAME.Size = new System.Drawing.Size(195, 36);
+            this.txtMATTER_NAME.TabIndex = 10;
+            this.txtMATTER_NAME.Text = "                    ";
+            // 
             // panelCONTRACT_NO
             // 
             this.panelCONTRACT_NO.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(244)))), ((int)(((byte)(252)))));
@@ -156,6 +177,7 @@
             // 
             this.txtFORWARDING_UNIT_NAME.Anchor = System.Windows.Forms.AnchorStyles.Left;
             this.txtFORWARDING_UNIT_NAME.AutoSize = true;
+            this.txtFORWARDING_UNIT_NAME.Enabled = false;
             this.txtFORWARDING_UNIT_NAME.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.txtFORWARDING_UNIT_NAME.ForeColor = System.Drawing.Color.Black;
             this.txtFORWARDING_UNIT_NAME.Location = new System.Drawing.Point(3, 48);
@@ -220,6 +242,28 @@
             this.label4.TabIndex = 3;
             this.label4.Text = "发货单位";
             // 
+            // label5
+            // 
+            this.label5.Anchor = System.Windows.Forms.AnchorStyles.None;
+            this.label5.AutoSize = true;
+            this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label5.Location = new System.Drawing.Point(619, 44);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(139, 36);
+            this.label5.TabIndex = 4;
+            this.label5.Text = "委托类型";
+            // 
+            // label8
+            // 
+            this.label8.Anchor = System.Windows.Forms.AnchorStyles.None;
+            this.label8.AutoSize = true;
+            this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label8.Location = new System.Drawing.Point(619, 292);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(139, 36);
+            this.label8.TabIndex = 7;
+            this.label8.Text = "收货单位";
+            // 
             // panelPREDICTION_NO
             // 
             this.panelPREDICTION_NO.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(244)))), ((int)(((byte)(252)))));
@@ -242,49 +286,6 @@
             this.txtPREDICTION_NO.TabIndex = 8;
             this.txtPREDICTION_NO.Text = "                    ";
             // 
-            // label8
-            // 
-            this.label8.Anchor = System.Windows.Forms.AnchorStyles.None;
-            this.label8.AutoSize = true;
-            this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.label8.Location = new System.Drawing.Point(619, 292);
-            this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(139, 36);
-            this.label8.TabIndex = 7;
-            this.label8.Text = "收货单位";
-            // 
-            // label5
-            // 
-            this.label5.Anchor = System.Windows.Forms.AnchorStyles.None;
-            this.label5.AutoSize = true;
-            this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.label5.Location = new System.Drawing.Point(619, 44);
-            this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(139, 36);
-            this.label5.TabIndex = 4;
-            this.label5.Text = "委托类型";
-            // 
-            // label3
-            // 
-            this.label3.Anchor = System.Windows.Forms.AnchorStyles.None;
-            this.label3.AutoSize = true;
-            this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.label3.Location = new System.Drawing.Point(619, 168);
-            this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(139, 36);
-            this.label3.TabIndex = 2;
-            this.label3.Text = "物资名称";
-            // 
-            // txtMATTER_NAME
-            // 
-            this.txtMATTER_NAME.AutoSize = true;
-            this.txtMATTER_NAME.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.txtMATTER_NAME.Location = new System.Drawing.Point(3, 28);
-            this.txtMATTER_NAME.Name = "txtMATTER_NAME";
-            this.txtMATTER_NAME.Size = new System.Drawing.Size(195, 36);
-            this.txtMATTER_NAME.TabIndex = 10;
-            this.txtMATTER_NAME.Text = "                    ";
-            // 
             // ucCarMeterInfoJisco
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

+ 30 - 2
MeterModuleLibrary/uc/ucCarMeterInfoJisco.cs

@@ -32,12 +32,40 @@ namespace MeterModuleLibrary
 
         public void setFormControlValue(MeterWorkCarActualFirst first)
         {
+            string predictionTypeName = "";
+            switch (first.predictionType)
+            {
+                case "0":
+                    predictionTypeName = "批次预报";
+                    break;
+                case "1":
+                    predictionTypeName = "单次预报";
+                    break;
+                case "2":
+                    predictionTypeName = "联运预报";
+                    break;
+                case "3":
+                    predictionTypeName = "分检预报";
+                    break;
+                case "4":
+                    predictionTypeName = "集装箱预报";
+                    break;
+                case "5":
+                    predictionTypeName = "双委托";
+                    break;
+                case "6":
+                    predictionTypeName = "一车多卸";
+                    break;
+                case "7":
+                    predictionTypeName = "混装";
+                    break;
+            }
             txtMETER_TYPE.Text = first.meterTypeName;
             txtPREDICTION_NO.Text = first.predictionNo;
             txtMATTER_NAME.Text = first.matterName;
             txtFORWARDING_UNIT_NAME.Text = first.forwardingUnitName;
             txtRECEIVING_UINT_NAME.Text = first.receivingUintName;
-            txtCONTRACT_NO.Text = first.contractNo;
+            txtCONTRACT_NO.Text = predictionTypeName;
             //txtSHIPMENT_WEIGHT.Text = "毛/净:" + first.shipmentGrossWeight / 1000 + " T / " + first.shipmentNetWeight / 1000 + " T"; //预报毛重
             //txtLOAD_POINT_NAME.Text = first.loadPointName;
             string strMemo = first.memo;
@@ -63,7 +91,7 @@ namespace MeterModuleLibrary
             txtMATTER_NAME.Text = preTrack.matterName;
             txtFORWARDING_UNIT_NAME.Text = preTrack.forwardingUnitName;
             txtRECEIVING_UINT_NAME.Text = preTrack.receivingUintName;
-            txtCONTRACT_NO.Text = preTrack.contractNo;
+            txtCONTRACT_NO.Text = preTrack.predictionType;
             //txtSHIPMENT_WEIGHT.Text = "毛/净:" + preTrack.shipmentGrossWeight / 1000 + " T / " + preTrack.shipmentNetWeight / 1000 + " T"; //预报毛重
             //txtLOAD_POINT_NAME.Text = preTrack.loadPointName;
             //string strMemo = preTrack.memo;

+ 4 - 3
MeterPlugInLibrary/扫码枪/SweepCode.cs

@@ -48,7 +48,8 @@ namespace MeterPlugInLibrary
                         //WriteLog("开始扫码线程:重量状态为:" + strState);
                         if (strState.Equals("0"))
                         {
-                            sCode = GetSweepCodeInfo(15, 7, "9600,N,8,1");//扫码信息;九江用COM7
+                            sCode = GetSweepCodeInfo(15, 11, "9600,N,8,1");//扫码信息;九江用COM7
+                            WriteLog("扫码返回:" + sCode);
                             if (!string.IsNullOrEmpty(sCode)) 
                             {
                                 strCode = sCode;
@@ -117,7 +118,7 @@ namespace MeterPlugInLibrary
                 if (i != 0)
                 {
                     WriteLog("打开扫描枪异常");
-                    return "";//打开扫描枪异常
+                    return "打开扫描枪异常";//打开扫描枪异常
                 }
 
                 byte[] szData = new byte[256];
@@ -127,7 +128,7 @@ namespace MeterPlugInLibrary
                 if (!string.IsNullOrEmpty(strGet))
                 {
                     byte[] buffer = Encoding.UTF8.GetBytes(strGet);
-                    strGet = Encoding.GetEncoding("GB2312").GetString(buffer);
+                    strGet = Encoding.GetEncoding("utf-8").GetString(buffer);
                     //WriteLog("二维码信息(转换中文操作):" + strGet);
                 }
                 strSweepCode = strGet.Trim().Substring(0, 120).Replace("\r", "").Replace("\n", "").Replace(" ", "").Replace("\0", "");//得到二维码编号

+ 55 - 12
MeterSceneLibrary/JISCO/InnerCarJISCO.cs

@@ -59,8 +59,8 @@ namespace MeterSceneLibrary
             mwaf.actualFirstNo = DateTime.Now.ToString("yyyyMMdd");//10
             mwaf.meterWeight = PbCache.lockWgt;//计量重量
             mwaf.addWeight = PbCache.addWgt;//附加重量
-            mwaf.createManNo = PbCache.sportInfo.baseSpotNo;
-            mwaf.createManName = PbCache.sportInfo.baseSpotName;
+            mwaf.createManNo = "admin";
+            mwaf.createManName = "admin";
             mwaf.meterGroup = "";
             mwaf.meterClass = "";
             mwaf.createManNo = "SYSTEM";
@@ -69,7 +69,7 @@ namespace MeterSceneLibrary
             mwaf.baseSpotNo = PbCache.sportInfo.baseSpotNo;//计量点编号
             mwaf.baseSpotName = PbCache.sportInfo.baseSpotName;
             //mwaf.memo = "";
-            mwaf.valueFlag = "3"; //状态(0 = 作废,1 = 有效(已匹配),2 = 结净,3 = 未匹配
+            mwaf.valueFlag = "1"; //状态(0 = 作废,1 = 有效(已匹配),2 = 结净)
             mwaf.updateManName = "";
             mwaf.updateManNo = "";
             mwaf.updateTime = null;
@@ -77,6 +77,8 @@ namespace MeterSceneLibrary
             mwaf.meterMode = "2"; //1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
             mwaf.addWeight = PbCache.addWgt;
             mwaf.dataSource = "1"; //数据来源(1=智能终端,2=本地计量,3=应急计量,4=手动录入(计量票据录入))
+            PbCache.isActual = false;
+            PbCache.isInnerCar = false;
 
             // 根据车号查询重量类型预处理表
             RESTfulResult<List<MeterWorkPreWgttype>> rmX = wgttypeService.doQueryWf(new MeterWorkPreWgttype { carNo = PbCache.lockCarNo, valueFlag = "1" });
@@ -92,7 +94,7 @@ namespace MeterSceneLibrary
                     /* a. 程序报警
                      * b. 自动进行语音求助
                      */
-                    rt = saveMethod.doError("没有重量类型预处理数据,请联系计量大厅");
+                    rt = saveMethod.doError("未选择称重类型,请选择后开始计量");
                 }
                 // 存在一条预处理数据
                 else if (list == null || list.Count == 1)
@@ -148,6 +150,7 @@ namespace MeterSceneLibrary
                                         * a. 正常保存重量匹配委托
                                         * b. 提示称重完成
                                         */
+                                        mwaf.weightType = "1";
                                         rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
                                     }
                                     // 重量类型为皮重且在皮重误差外
@@ -174,9 +177,10 @@ namespace MeterSceneLibrary
                                         if (tareCarResult.Succeed)
                                         {
                                             // 没有期限皮重权限
-                                            if (tareCarResult.Data.Count == 0)
+                                            if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
                                             {
-                                                rt = saveMethod.doError("该车辆没有期限皮重权限,请联系计量大厅");
+                                                mwaf.weightType = "0";
+                                                rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
                                             }
                                             // 有期限皮重权限 
                                             else if (tareCarResult.Data.Count >= 1)
@@ -196,7 +200,8 @@ namespace MeterSceneLibrary
                                                     if (rmT.Data != null && rmT.Data.Count > 0)
                                                     {
                                                         // 存在使用期限皮重权限,并使用期限皮重洁净
-
+                                                        List<string> l = new List<string>();
+                                                        l.Add("create");
                                                         //给一次数据匹配委托
                                                         EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
                                                         mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
@@ -206,6 +211,7 @@ namespace MeterSceneLibrary
                                                     }
                                                     else
                                                     {
+                                                        mwaf.weightType = "0";
                                                         // 只保存一次计量数据
                                                         rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
                                                     }
@@ -234,9 +240,20 @@ namespace MeterSceneLibrary
                                             }
                                         }
                                     }
-
+                                    if (rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt < 0 || listMonitor.Data[0].validPredictionDiff == "0")
+                                    {
+                                        if (list[0].weightTypeNo == "001033001")
+                                        {
+                                            mwaf.weightType = "0";
+                                        }
+                                        else if (list[0].weightTypeNo == "001033002")
+                                        {
+                                            mwaf.weightType = "1";
+                                        }
+                                        rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                    }
                                     // 当次重量和上次重量满足洁净最小值条件
-                                    if (Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) > diffrentWgt || listMonitor.Data[0].validPredictionDiff == "0")
+                                    else if (Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) > diffrentWgt || listMonitor.Data[0].validPredictionDiff == "0")
                                     {
                                         // 查询当前秤点是否启用历史皮重判断(暂时不考虑此限制)By BourneCao
                                         // String spotNo = PbCache.sportInfo.baseSpotNo;
@@ -265,6 +282,7 @@ namespace MeterSceneLibrary
                                         {
                                             if (firstList[0].weightType == "0")
                                             {
+                                                mwaf.weightType = "0";
                                                 rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
                                             }
                                             else
@@ -285,6 +303,12 @@ namespace MeterSceneLibrary
                                             rt = saveMethod.doError(PbCache.ResultMessage);
                                         }
                                     }
+                                    // 重量类型为毛重,不在皮重误差内,正常结净
+                                    else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == false)
+                                    {
+                                        mwaf.weightType = "0";
+                                        rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                    }
                                     else
                                     {
                                         rt = saveMethod.doError("第一次计量重量【" + rmFirst.Data[0].meterWeight.Value / 1000 + "T】和第二次计量重量【" + PbCache.lockWgt / 1000 + "T】接近,小于结净最小值【" + diffrentWgt / 1000 + " T】");
@@ -305,9 +329,15 @@ namespace MeterSceneLibrary
                                         EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
                                         mwaf = entityBase.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
                                         mwaf.isPreScale = "1";
+                                        mwaf.weightType = "0";
 
                                         rt = saveMethod.doNetAddMuch(mwaf);
                                     }
+                                    else if (firstList[firstList.Count - 1].weightType == "0" && list[0].weightTypeNo == "001033001")
+                                    {
+                                        mwaf.weightType = "0";
+                                        rt = saveMethod.doAddFirst(rmScale.Data[0],mwaf);
+                                    }
                                     else
                                     {
                                         rt = saveMethod.doError("存在多条有效的一次计量数据,请联系计量大厅");
@@ -379,10 +409,25 @@ namespace MeterSceneLibrary
                                             rt.WarnContent = "validWgt";
                                         }
                                     }
+                                    // 存在多条有效的一次计量数据
+                                    else if (firstList == null || firstList.Count > 1)
+                                    {
+                                        /* a. 程序报警a
+                                         * b. 自动进行语音求助
+                                         */
+                                        //多条一次记录下判断是否全为毛重,是全部结净
+                                        if (firstList[firstList.Count - 1].weightType == "0" && list[0].weightTypeNo == "001033002")
+                                        {
+                                            //给一次数据匹配委托
+                                            mwaf.weightType = "0";
+
+                                            rt = saveMethod.doNetAddMuch(mwaf);
+                                        }
+                                    }
                                 }
                                 else
                                 {
-                                    rt = saveMethod.doError("毛重未匹配委托,请联系计量大厅处理");
+                                    rt = saveMethod.doError("委托匹配异常,无法计量,请联系处理");
                                     rt.isWarn = true;
                                     rt.WarnContent = "validIsPre";
                                 }
@@ -401,8 +446,6 @@ namespace MeterSceneLibrary
                     rt = saveMethod.doError("存在多条上称申请数据,请联系计量大厅");
                 }
             }
-
-
             return rt;
         }
     }

+ 29 - 19
MeterSceneLibrary/JISCO/OuterCarJISCO.cs

@@ -51,8 +51,8 @@ namespace MeterSceneLibrary
             mwaf.actualFirstNo = DateTime.Now.ToString("yyyyMMdd");//10
             mwaf.meterWeight = PbCache.lockWgt;//计量重量
             mwaf.addWeight = PbCache.addWgt;//附加重量
-            mwaf.createManNo = PbCache.sportInfo.baseSpotNo;
-            mwaf.createManName = PbCache.sportInfo.baseSpotName;
+            mwaf.createManNo = "admin";
+            mwaf.createManName = "admin";
             mwaf.meterGroup = "";
             mwaf.meterClass = "";
             mwaf.createTime = DateTime.Now;
@@ -68,6 +68,8 @@ namespace MeterSceneLibrary
             mwaf.addWeight = PbCache.addWgt;
             mwaf.dataSource = "1"; //数据来源(1=智能终端,2=本地计量,3=应急计量,4=手动录入(计量票据录入))
             mwaf.isPreScale = "0";
+            PbCache.isActual = false;
+            PbCache.isInnerCar = false;
 
             // VALUE_FLAG 状态(0=作废,1=有效(已匹配),2=结净,3=未匹配)
             // 根据车号查询最近的一次计量数据
@@ -94,8 +96,8 @@ namespace MeterSceneLibrary
                         // 不存在委托
                         if (listPreScale == null || listPreScale.Count == 0)    
                         {
-                            rt.isWarn = true;
-                            rt.WarnContent = "validIsPre";
+                            PbCache.isActual = true;
+                            PbCache.isInnerCar = true;
                             rt = saveMethod.doAddFirst(null, mwaf);
                         }
                         // 存在一条使用中的委托
@@ -113,18 +115,15 @@ namespace MeterSceneLibrary
                             // 查询上一次结净数据
                             MeterWorkCarActualService meterWorkCarActualService = new MeterWorkCarActualService();
                             //计量实绩
-                            CommonPage<MeterWorkCarActual> cpc = new CommonPage<MeterWorkCarActual>();
                             MeterWorkCarActual mwca = new MeterWorkCarActual();
                             mwca.carNo = PbCache.lockCarNo;
-                            cpc.param = mwca;
-                            cpc.pageSize = 1;
 
-                            RESTfulResult<List<MeterWorkCarActual>> rm = meterWorkCarActualService.doQueryOneWf(cpc);
+                            RESTfulResult<List<MeterWorkCarActual>> rm = meterWorkCarActualService.doQueryActaulWf(mwca);
 
                             if (rm.Succeed)
                             {
                                 // 之前没有净重记录
-                                if (rm.Data.Count == 0)
+                                if (rm.Data == null || rm.Data.Count == 0)
                                 {
                                     /*
                                      * a. 正常保存重量(重量类型为空)
@@ -133,6 +132,8 @@ namespace MeterSceneLibrary
                                      * d. 提示称重完成
                                      */
                                     // 把委托编号复制给一次计量记录
+                                    PbCache.isActual = true;
+                                    PbCache.isInnerCar = true;
                                     rt = saveMethod.doAddFirst(listPreScale[0] , mwaf);
                                 }
                                 else
@@ -143,10 +144,10 @@ namespace MeterSceneLibrary
                                     // 上次净重记录未匹配委托
                                     if (lastMeterWorkCarActual.isPreScale == "0")
                                     {
+                                        PbCache.isActual = true;
+                                        PbCache.isInnerCar = true;
                                         rt = saveMethod.doAddFirst(null, mwaf);
                                         rt = saveMethod.doError("称重完成,上次净重数据未匹配委托,请联系计量大厅");
-                                        rt.isWarn = true;
-                                        rt.WarnContent = "validIsPre";
                                     }
                                     // 上次净重已匹配委托 
                                     else if (lastMeterWorkCarActual.isPreScale == "1")
@@ -330,12 +331,17 @@ namespace MeterSceneLibrary
                                         // 把委托编号复制给一次计量记录
                                         EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
                                         mwaf = entityBase.format<MeterWorkCarActualFirst>(listPreScale[0], mwaf);
-
+                                        PbCache.isActual = true;
+                                        PbCache.isInnerCar = true;
                                         rt = saveMethod.doAddFirst(listPreScale[0], mwaf);
                                     }
                                 }
 
                             }
+                            else
+                            {
+                                rt = saveMethod.doError("接口调用错误:无法读取车辆最近一次结净数据");
+                            }
                         }
                         // 存在多条委托
                         else if (listPreScale.Count > 1)
@@ -353,6 +359,8 @@ namespace MeterSceneLibrary
                             {
                                 pre = listPreScale[0];
                             }
+                            PbCache.isActual = true;
+                            PbCache.isInnerCar = true;
                             rt = saveMethod.doAddFirst(pre, mwaf);
                         }
                     }
@@ -394,9 +402,9 @@ namespace MeterSceneLibrary
                                      * a. 正常产生洁净数据(状态为未发布)
                                      * b. 提示司机当前计量数据未匹配委托,请联系计量打印进行处理
                                      */
+                                    rt = saveMethod.doNet(null, rmX.Data[0], mwaf);
                                     rt.isWarn = true;
                                     rt.WarnContent = "validIsPre";
-                                    rt = saveMethod.doNet(scale, rmX.Data[0], mwaf);
 
                                 }
                                 // 只存在一条使用中的委托
@@ -416,7 +424,11 @@ namespace MeterSceneLibrary
                                      * a. 程序根据大减小的原则,保存净重并正确设置一次计量数据中的重量类型
                                      * b. 播放称重完成的语音提示
                                      */
-                                    rt = saveMethod.doNetAndScale(scale, rmX.Data[0], mwaf);
+                                    EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
+                                    mwaf = entityBase.format<MeterWorkCarActualFirst>(listPreScale[0], mwaf);
+                                    mwaf.isPreScale = "1";
+
+                                    rt = saveMethod.doNet(listPreScale[0], rmX.Data[0], mwaf);
                                 }
                                 // 如果存在两条未使用的委托
                                 else if (listPreScale.Count == 2 && listPreScale[1].valueFlag == "1" && listPreScale[1].valueFlag == "1")
@@ -465,9 +477,7 @@ namespace MeterSceneLibrary
                                          * c. 进行大厅报警,请联系计量大厅进行处理
                                          * d. 自动进行语音求助(但是原有的语音求助逻辑是重量归零相应秤点的求助信息也会清空)
                                          */
-
-                                        rt = saveMethod.doNet(scale, rmX.Data[0], mwaf);
-                                        rt = saveMethod.doError("称重完成,当前所存计量数据未匹配委托,请联系计量大厅进行处理");
+                                        rt = saveMethod.doNet(null, rmX.Data[0], mwaf);
                                         rt.isWarn = true;
                                         rt.WarnContent = "validIsPre";
                                     }
@@ -511,8 +521,8 @@ namespace MeterSceneLibrary
                                     //    rt = saveMethod.doNet(scale, rmX.Data[0], mwaf);
                                     //    rt = saveMethod.doError("称重完成,当前所存计量数据未匹配委托,请联系计量大厅进行处理");
                                     //}
-                                    rt = saveMethod.doNet(scale, rmX.Data[0], mwaf);
-                                    rt = saveMethod.doError("称重完成,当前所存计量数据未匹配委托,请联系计量大厅进行处理");
+                                    
+                                    rt = saveMethod.doNet(null, rmX.Data[0], mwaf);
                                     rt.isWarn = true;
                                     rt.WarnContent = "validIsPre";
                                 }

+ 118 - 25
MeterSceneLibrary/JISCO/private/SaveMethod.cs

@@ -38,7 +38,6 @@ namespace MeterSceneLibrary.JISCO
                 EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
                 model = entityBase.format<MeterWorkCarActualFirst>(scale, model);
             }
-
             //操作日志
             MeterMonitorNote monitorNote = new MeterMonitorNote();
             monitorNote.baseSpotNo = model.baseSpotNo;
@@ -59,7 +58,14 @@ namespace MeterSceneLibrary.JISCO
                 rt.resultInfo = "称重完成";
                 PbCache.actualFirstNo = rmI.Data;
                 PbCache.strQRCode = rmI.Message;
-                PbCache.isTareWeight = false;//毛重
+                if (model.weightType == "0")
+                {
+                    PbCache.isTareWeight = false;//毛重
+                }
+                else
+                {
+                    PbCache.isTareWeight = true;//皮重
+                }
             }
             else
             {
@@ -83,7 +89,7 @@ namespace MeterSceneLibrary.JISCO
 
             // 将第一个一次数据状态改为 已结净
             //actualFirst.valueFlag = "2";
-
+            netDb.isPreScale = "0";
             // 复制对象
             if (scale != null)
             {
@@ -92,6 +98,15 @@ namespace MeterSceneLibrary.JISCO
                 netDb.isPreScale = "1";
             }
 
+            if (actualFirst2.meterWeight.Value > actualFirst.meterWeight.Value)
+            {
+                actualFirst2.weightType = "0";//毛重
+            }
+            else
+            {
+                actualFirst2.weightType = "1";//皮重
+            }
+
             netDb.carNo = actualFirst.carNo;
             netDb.tareTime = DateTime.Now;
             netDb.tareWeight = actualFirst.meterWeight.Value < PbCache.lockWgt ? actualFirst.meterWeight.Value : PbCache.lockWgt; // 谁小谁是皮 BourneCao
@@ -114,8 +129,6 @@ namespace MeterSceneLibrary.JISCO
             netDb.baseSpot1No = actualFirst.baseSpotNo;
             netDb.baseSpot1Name = actualFirst.baseSpotName;
             netDb.grossMode = "2"; // 1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
-            netDb.grossManNo = actualFirst.createManNo;
-            netDb.grossManName = actualFirst.createManName;
             netDb.grossClass = actualFirst.meterClass;
             netDb.grossGroup = actualFirst.meterGroup;
             netDb.valueFlag = "1";
@@ -133,14 +146,43 @@ namespace MeterSceneLibrary.JISCO
             netDb.netMode = "1"; //1:正常结净;2:匹配结净
             netDb.uploadFlag = "1"; //0=待审核;1:待上传;2=已上传
             netDb.dataSource = "1";//1 = 智能终端,2 = 本地计量,3 = 应急计量,4 = 手动录入(计量票据录入)
-                                  //要判断下当前是否勾选了不验证皮重
+                                   //要判断下当前是否勾选了不验证皮重
+
+            if (actualFirst2.weightType == "0")
+            {
+                netDb.grossManNo = "admin";
+                netDb.grossManName = "admin";
+                netDb.grossTime = DateTime.Now;
+
+                netDb.tareManName = actualFirst.createManName;
+                netDb.tareManNo = actualFirst.createManNo;
+                netDb.tareTime = actualFirst.createTime;
+            }
+            else
+            {
+                netDb.tareManName = "admin";
+                netDb.tareManNo = "admin";
+                netDb.tareTime = DateTime.Now;
+
+                netDb.grossManName = actualFirst.createManName;
+                netDb.grossManNo = actualFirst.createManNo;
+                netDb.grossTime = actualFirst.createTime;
+            }
+            netDb.netManName = "admin";
+            netDb.netManNo = "admin";
+            netDb.netTime = DateTime.Now;
+            netDb.createManName = "admin";
+            netDb.createTime = DateTime.Now;
+            netDb.updateManName = "admin";
+            netDb.updateManNo = "admin";
+            netDb.updateTime = DateTime.Now;
 
 
             //操作日志
             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";
@@ -149,7 +191,6 @@ namespace MeterSceneLibrary.JISCO
 
             MeterWorkCarActualService actualService = new MeterWorkCarActualService();
             RESTfulResult<string> rmI = actualService.doAddNet(actualFirst, actualFirst2, netDb, monitorNote, "1");
-
             if (rmI.Succeed)
             {
                 rt.result = true;
@@ -158,11 +199,11 @@ namespace MeterSceneLibrary.JISCO
                 PbCache.strQRCode = rmI.Message;
                 if (actualFirst2.meterWeight.Value > actualFirst.meterWeight.Value)
                 {
-                    PbCache.isTareWeight = true;//毛重
+                    PbCache.isTareWeight = false;//毛重
                 }
                 else
                 {
-                    PbCache.isTareWeight = false;//皮重
+                    PbCache.isTareWeight = true;//皮重
                 }
                 
             }
@@ -216,8 +257,20 @@ namespace MeterSceneLibrary.JISCO
             netDb.baseSpot1No = actualFirst.baseSpotNo;
             netDb.baseSpot1Name = actualFirst.baseSpotName;
             netDb.grossMode = "2"; // 1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
-            netDb.grossManNo = actualFirst.createManNo;
-            netDb.grossManName = actualFirst.createManName;
+            netDb.netManName = "admin";
+            netDb.netManNo = "admin";
+            netDb.netTime = DateTime.Now;
+            netDb.grossManNo = "admin";
+            netDb.grossManName = "admin";
+            netDb.grossTime = DateTime.Now;
+            netDb.tareManName = "admin";
+            netDb.tareManNo = "admin";
+            netDb.tareTime = DateTime.Now;
+            netDb.createManName = "admin";
+            netDb.createTime = DateTime.Now;
+            netDb.updateManName = "admin";
+            netDb.updateManNo = "admin";
+            netDb.updateTime = DateTime.Now;
             netDb.grossClass = actualFirst.meterClass;
             netDb.grossGroup = actualFirst.meterGroup;
             netDb.valueFlag = "1";
@@ -261,11 +314,11 @@ namespace MeterSceneLibrary.JISCO
                 PbCache.strQRCode = rmI.Message;
                 if (actualFirst2.meterWeight.Value > actualFirst.meterWeight.Value)
                 {
-                    PbCache.isTareWeight = true;//毛重
+                    PbCache.isTareWeight = false;//毛重
                 }
                 else
                 {
-                    PbCache.isTareWeight = false;//皮重
+                    PbCache.isTareWeight = true;//皮重
                 }
             }
             else
@@ -359,8 +412,7 @@ namespace MeterSceneLibrary.JISCO
             netDb.baseSpot2No = PbCache.sportInfo.baseSpotNo;
             netDb.baseSpot2Name = PbCache.sportInfo.baseSpotName;
             netDb.tareMode = "2";//1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
-            netDb.tareManNo = actualFirst1.createManNo;
-            netDb.tareManName = actualFirst1.createManName;
+            
             netDb.tareClass = actualFirst1.meterClass;
             netDb.tareGroup = actualFirst1.meterGroup;
             
@@ -369,8 +421,7 @@ namespace MeterSceneLibrary.JISCO
             netDb.baseSpot1No = actualFirst.baseSpotNo;
             netDb.baseSpot1Name = actualFirst.baseSpotName;
             netDb.grossMode = "2"; // 1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
-            netDb.grossManNo = actualFirst.createManNo;
-            netDb.grossManName = actualFirst.createManName;
+            
             netDb.grossClass = actualFirst.meterClass;
             netDb.grossGroup = actualFirst.meterGroup;
 
@@ -381,6 +432,21 @@ namespace MeterSceneLibrary.JISCO
             netDb.netSpot3No = PbCache.sportInfo.baseSpotNo; //净重计量点编号
             netDb.netSpot3Name = PbCache.sportInfo.baseSpotName; //净重计量点
 
+            netDb.netManName = "admin";
+            netDb.netManNo = "admin";
+            netDb.netTime = DateTime.Now;
+            netDb.grossManNo = "admin";
+            netDb.grossManName = "admin";
+            netDb.grossTime = DateTime.Now;
+            netDb.tareManName = "admin";
+            netDb.tareManNo = "admin";
+            netDb.tareTime = DateTime.Now;
+            netDb.createManName = "admin";
+            netDb.createTime = DateTime.Now;
+            netDb.updateManName = "admin";
+            netDb.updateManNo = "admin";
+            netDb.updateTime = DateTime.Now;
+
             netDb.addWeight = (actualFirst.addWeight == null ? 0 : actualFirst.addWeight.Value);
             //净重=毛-皮-附加重量
             netDb.netWeight = netDb.grossWeight - netDb.tareWeight - netDb.addWeight;
@@ -403,11 +469,11 @@ namespace MeterSceneLibrary.JISCO
                 PbCache.strQRCode = rmI.Message;
                 if (actualFirst1.meterWeight.Value > actualFirst.meterWeight.Value)
                 {
-                    PbCache.isTareWeight = true;//毛重
+                    PbCache.isTareWeight = false;//毛重
                 }
                 else
                 {
-                    PbCache.isTareWeight = false;//皮重
+                    PbCache.isTareWeight = true;//皮重
                 }
             }
             else
@@ -448,8 +514,6 @@ namespace MeterSceneLibrary.JISCO
             netDb.baseSpot1No = actualFirst.baseSpotNo;
             netDb.baseSpot1Name = actualFirst.baseSpotName;
             netDb.grossMode = "2"; // 1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
-            netDb.grossManNo = actualFirst.createManNo;
-            netDb.grossManName = actualFirst.createManName;
             netDb.grossClass = actualFirst.meterClass;
             netDb.grossGroup = actualFirst.meterGroup;
 
@@ -468,6 +532,21 @@ namespace MeterSceneLibrary.JISCO
             netDb.dataSource = "1"; //1 = 智能终端,2 = 本地计量,3 = 应急计量,4 = 手动录入(计量票据录入)
                                     //要判断下当前是否勾选了不验证皮重
 
+            netDb.netManName = "admin";
+            netDb.netManNo = "admin";
+            netDb.netTime = DateTime.Now;
+            netDb.grossManNo = "admin";
+            netDb.grossManName = "admin";
+            netDb.grossTime = DateTime.Now;
+            netDb.tareManName = "admin";
+            netDb.tareManNo = "admin";
+            netDb.tareTime = DateTime.Now;
+            netDb.createManName = "admin";
+            netDb.createTime = DateTime.Now;
+            netDb.updateManName = "admin";
+            netDb.updateManNo = "admin";
+            netDb.updateTime = DateTime.Now;
+
             // 保存结净记录,后续改成统一提交模式  BourneCao
 
             MeterWorkCarActualService actualService = new MeterWorkCarActualService();
@@ -577,11 +656,11 @@ namespace MeterSceneLibrary.JISCO
                     if (PbCache.lockWgt >= minWgt && PbCache.lockWgt <= maxWgt)
                     {
                         PbCache.monitorResult.valid_wgt = true;
+                        PbCache.ResultMessage = "当前毛重【" + PbCache.lockWgt / 1000 + "T 】在皮重配置范围,历史皮重为【" + Convert.ToDouble(meterWeight) / 1000 + "T】,偏差最大允许重量为【" + hisTareCount.fixedWeightValue.Value + "kg】";
                     }
                     else
                     {
                         PbCache.monitorResult.valid_wgt = false;
-                        PbCache.ResultMessage = "当前皮重【" + PbCache.lockWgt / 1000 + "T 】不在皮重配置范围,历史皮重为【" + Convert.ToDouble(meterWeight) / 1000 + "T】,偏差最大允许重量为【" + hisTareCount.fixedWeightValue.Value + "kg】";
                     }
                 }
                 else if (hisTareCount.countTypeNo == "001011002") //比例 当前重量>=历史皮重-历史皮重*比例   当前重量<=历史皮重+历史皮重*比例
@@ -683,7 +762,21 @@ namespace MeterSceneLibrary.JISCO
             // 保存结净记录,后续改成统一提交模式  BourneCao
 
             MeterWorkCarActualService actualService = new MeterWorkCarActualService();
-            actualService.doNetAddMuch(actualFirst);
+            RESTfulResult<string> rmI = actualService.doNetAddMuch(actualFirst);
+            if (rmI.Succeed)
+            {
+                rt.result = true;
+                rt.resultInfo = "称重完成";
+                PbCache.actualFirstNo = rmI.Data;
+                PbCache.strQRCode = rmI.Message;
+                PbCache.isTareWeight = true;//皮重
+            }
+            else
+            {
+                rt.result = false;
+                rt.isError = true;
+                rt.resultInfo = "称重数据保存失败";
+            }
             return rt;
         }
 
@@ -695,7 +788,7 @@ namespace MeterSceneLibrary.JISCO
             rt.result = false;
             rt.isError = true;
             rt.resultInfo = "计量失败:" + msg;
-
+            
             return rt;
         }
         #endregion

+ 1 - 1
TrainVideoDataDispose/Program.cs

@@ -15,7 +15,7 @@ namespace TrainVideoDataDispose
         {
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
-            Application.Run(new Form1());
+            Application.Run(new text());
         }
     }
 }

+ 9 - 0
TrainVideoDataDispose/TrainVideoDataDispose.csproj

@@ -117,6 +117,12 @@
     </Compile>
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="text.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="text.Designer.cs">
+      <DependentUpon>text.cs</DependentUpon>
+    </Compile>
     <EmbeddedResource Include="Form1.resx">
       <DependentUpon>Form1.cs</DependentUpon>
     </EmbeddedResource>
@@ -130,6 +136,9 @@
       <DependentUpon>Resources.resx</DependentUpon>
       <DesignTime>True</DesignTime>
     </Compile>
+    <EmbeddedResource Include="text.resx">
+      <DependentUpon>text.cs</DependentUpon>
+    </EmbeddedResource>
     <None Include="App.config" />
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>

+ 61 - 0
TrainVideoDataDispose/text.Designer.cs

@@ -0,0 +1,61 @@
+
+namespace TrainVideoDataDispose
+{
+    partial class text
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.button1 = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // button1
+            // 
+            this.button1.Location = new System.Drawing.Point(12, 23);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(75, 23);
+            this.button1.TabIndex = 0;
+            this.button1.Text = "button1";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            // 
+            // text
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(800, 450);
+            this.Controls.Add(this.button1);
+            this.Name = "text";
+            this.Text = "text";
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button button1;
+    }
+}

+ 71 - 0
TrainVideoDataDispose/text.cs

@@ -0,0 +1,71 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace TrainVideoDataDispose
+{
+    public partial class text : Form
+    {
+        public text()
+        {
+            InitializeComponent();
+        }
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+            string datas = "<?xml version: \"1.0\" encoding=\"utf - 8\"?><DataOperation><operationType>search</operationType><searchCond><searchID>C9C75F94-1CA0-0001-BF8B-131E7EE0C9A0</searchID><timeSpanList><timeSpan><startTime>2022-04-09T00:00:00Z</startTime><endTime>2022-04-09T23:59:59Z</endTime></timeSpan></timeSpanList><criteria><dataType>0</dataType><channel/><plateType/><plateColor/><direction/><plate/><speedMin/><speedMax/><vehicleType/><vehicleColor/><laneNo/><surveilType>0</surveilType><romoteHost/><analysised>true</analysised><sendFlag/></criteria><searchResultPosition>0</searchResultPosition><maxResults>20</maxResults></searchCond></DataOperation>";
+            Hashtable hashtable = new Hashtable();
+            hashtable.Add("Authorization", "Digest username=\"admin\", realm=\"DVRNVRDVS\", nonce=\"d632db908d1b779b748f21029bf170a2: 1649501141033\", uri=\"/ISAPI/Traffic/ContentMgmt/dataOperation\", algorithm=MD5, response=\"04f92810633b6941fe491cc1235a12b5\", qop=auth, nc=00000092, cnonce=\"0d74d34eee63862e\"");
+            string result = Http("http://10.111.67.23/ISAPI/Traffic/ContentMgmt/dataOperation", "POST", "application/json;charset=utf-8", hashtable, datas);
+
+        }
+
+        /// <summary>
+        /// 不做catch处理,需要在外部做
+        /// </summary>
+        /// <param name="url"></param>
+        /// <param name="method">默认GET,空则补充为GET</param>
+        /// <param name="contenttype">默认json,空则补充为json</param>
+        /// <param name="header">请求头部</param>
+        /// <param name="data">请求body内容</param>
+        /// <returns></returns>
+        public static string Http(string url, string method = "GET", string contenttype = "application/json;charset=utf-8", Hashtable header = null, string data = null)
+        {
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+            request.Method = string.IsNullOrEmpty(method) ? "GET" : method;
+            request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/json;charset=utf-8" : contenttype;
+
+            
+            if (header != null)
+            {
+                foreach (var i in header.Keys)
+                {
+                    request.Headers.Add(i.ToString(), header[i].ToString());
+                }
+            }
+            if (!string.IsNullOrEmpty(data))
+            {
+                Stream RequestStream = request.GetRequestStream();
+                byte[] bytes = Encoding.UTF8.GetBytes(data);
+                RequestStream.Write(bytes, 0, bytes.Length);
+                RequestStream.Close();
+            }
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            Stream ResponseStream = response.GetResponseStream();
+            StreamReader StreamReader = new StreamReader(ResponseStream, Encoding.GetEncoding("utf-8"));
+            string re = StreamReader.ReadToEnd();
+            StreamReader.Close();
+            ResponseStream.Close();
+            return re;
+        }
+    }
+}

+ 120 - 0
TrainVideoDataDispose/text.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>