ソースを参照

winfrom提交

duyong 3 年 前
コミット
2a7125ce89

+ 1 - 1
CarMeterSystem/App.config

@@ -11,7 +11,7 @@
     <!--<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://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>
+    <!--<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>-->
     <!--<add key="ServiceUrl" value="http://jgwzjl.jiugang.com/icore.icp.web/pass/systemBase/v1"/>-->
     <!--<add key="ServiceUrl" value="http://10.130.1.2/icore.icp.web/pass/systemBase/v1"/>-->
     <!--实时库地址-->

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

@@ -1,5 +1,6 @@
 using com.hnshituo.core.webapp.vo;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Data;
 
@@ -77,6 +78,33 @@ namespace Common
             }
         }
 
+        /// <summary>
+        /// 查询当前预报最近的1条数据
+        /// </summary>
+        /// <param name="cpc"></param>
+        /// <returns></returns>
+        public RESTfulResult<outCar> combinationByParams(Hashtable cpc)
+        {
+            try
+            {
+                DbHelper db = new DbHelper();
+                RESTfulResult<outCar> rm = db.doOption<outCar>("meterworkparammaps", "combinationByParams", new object[] { cpc }, 1);
+                RESTfulResult<outCar> result = new RESTfulResult<outCar>();
+                result.Succeed = rm.Succeed;
+                result.Status = rm.Status;
+                result.Message = rm.Message;
+                result.ResultMessage = rm.ResultMessage;
+                result.Code = rm.Code;
+
+                result.Data = rm.Data;
+                return result;
+            }
+            catch (Exception ex)
+            {
+                return null;
+            }
+        }
+
         /// <summary>
         /// 查询当前预报最近的1条数据
         /// </summary>
@@ -481,4 +509,33 @@ namespace Common
         }
         #endregion
     }
+
+    public class outCar
+    {
+        /// <summary>
+        /// 根据称点查询监控信息
+        /// <summary>
+        //[AttributeID("pointNo")]
+        public RESTfulResult<List<MeterWorkMonitor>> spotInfoList { get; set; }
+
+        /// <summary>
+        ///根据车号查询最近的一次计量数据
+        /// <summary>
+        public RESTfulResult<List<MeterWorkCarActualFirst>> firstInfoList { get; set; }
+
+        /// <summary>
+        /// 根据车号查询委托表中未使用和使用中的委托
+        /// <summary>
+        public RESTfulResult<List<PreTrackScale>> scaleInfoList { get; set; }
+
+        /// <summary>
+        /// 计量实绩
+        /// <summary>
+        public RESTfulResult<List<MeterWorkCarActual>> actualInfoList { get; set; }
+
+        /// <summary>
+        /// 通过上次结净记录,找到该委托的签发时间
+        /// <summary>
+        public RESTfulResult<List<PreTrackScale>> scaleNewInfoList { get; set; }
+    }
 }

+ 62 - 39
MeterSceneLibrary/JISCO/OuterCarJISCO.cs

@@ -1,6 +1,7 @@
 using com.hnshituo.core.webapp.vo;
 using Common;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
@@ -31,6 +32,9 @@ namespace MeterSceneLibrary
         // 根据称点查询监控信息
         private RESTfulResult<List<MeterWorkMonitor>> listMonitor;
 
+        // 查询上一次结净数据
+        private MeterWorkCarActualService meterWorkCarActualService = new MeterWorkCarActualService();
+
         private JISCO.SaveMethod saveMethod = new JISCO.SaveMethod();
 
         public rtInfo MeterMethod(PreTrackScale scale)
@@ -41,9 +45,51 @@ namespace MeterSceneLibrary
             string ResultMessage = "";
             bool isError = false;
 
+            Hashtable map = new Hashtable();
+            map.Add("carNo", PbCache.lockCarNo);
+            map.Add("baseSpotNo", PbCache.sportInfo.baseSpotNo);
+            RESTfulResult<outCar> rmMap = meterWorkCarActualService.combinationByParams(map);
+
+            #region 数据查询
             //根据称点查询监控信息
-            MeterWorkMonitorService meterWorkMonitorService = new MeterWorkMonitorService();
-            listMonitor = meterWorkMonitorService.doQueryOneWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo });
+            listMonitor = rmMap.Data.spotInfoList == null ? new RESTfulResult<List<MeterWorkMonitor>>() { Succeed = true } : rmMap.Data.spotInfoList;
+
+            // VALUE_FLAG 状态(0=作废,1=有效(已匹配),2=结净,3=未匹配)
+            // 根据车号查询最近的一次计量数据
+            RESTfulResult<List<MeterWorkCarActualFirst>> rmX = rmMap.Data.firstInfoList == null ? new RESTfulResult<List<MeterWorkCarActualFirst>>() { Succeed = true } : rmMap.Data.firstInfoList; 
+
+            // 根据车号查询委托表中未使用和使用中的委托
+            // 状态(0:未配车;1:未使用;2:已使用;3:已作废;4:正使用)
+            RESTfulResult<List<PreTrackScale>> rmPre = rmMap.Data.scaleInfoList == null ? new RESTfulResult<List<PreTrackScale>>() { Succeed = true } : rmMap.Data.scaleInfoList;
+
+            //计量实绩
+            MeterWorkCarActual mwca = new MeterWorkCarActual();
+            mwca.carNo = PbCache.lockCarNo;
+            RESTfulResult<List<MeterWorkCarActual>> rm = rmMap.Data.actualInfoList == null ? new RESTfulResult<List<MeterWorkCarActual>>() { Succeed = true } : rmMap.Data.actualInfoList;
+
+            #endregion
+
+            // 签发时间比较
+            // 通过上次结净记录,找到该委托的签发时间
+            MeterWorkCarActual lastMeterWorkCarActual = new MeterWorkCarActual();
+            RESTfulResult<List<PreTrackScale>> lastPre = new RESTfulResult<List<PreTrackScale>>();
+            if (rm.Data == null && rm.Data.Count == 0)
+            {
+                lastMeterWorkCarActual = null;
+                lastPre = null;
+            }
+            else
+            {
+                lastMeterWorkCarActual = rm.Data[0];
+                if (string.IsNullOrEmpty(lastMeterWorkCarActual.predictionNo))
+                {
+                    lastPre = null;
+                }
+                else
+                {
+                    lastPre = preTrackScaleService.doQueryWf(new PreTrackScale { predictionNo = lastMeterWorkCarActual.predictionNo });
+                }
+            }
 
             mwaf.carNo = PbCache.lockCarNo;
             mwaf.weightType = "";  // 默认重量类型为空
@@ -76,16 +122,10 @@ namespace MeterSceneLibrary
             PbCache.yardActual = null;
             PbCache.yardFirst = null;
 
-            // VALUE_FLAG 状态(0=作废,1=有效(已匹配),2=结净,3=未匹配)
-            // 根据车号查询最近的一次计量数据
-            RESTfulResult<List<MeterWorkCarActualFirst>> rmX = mwcfs.doQueryByFlag(new MeterWorkCarActualFirst { carNo = PbCache.lockCarNo });
             if (rmX.Succeed)
             {
                 List<MeterWorkCarActualFirst> list = rmX.Data;
 
-                // 根据车号查询委托表中未使用和使用中的委托
-                // 状态(0:未配车;1:未使用;2:已使用;3:已作废;4:正使用)
-                RESTfulResult<List<PreTrackScale>> rmPre = preTrackScaleService.doQueryByFlag(new PreTrackScale { carNo = PbCache.lockCarNo });
                 listPreScale = rmPre.Data;
 
                 // 不存在一次计量数据
@@ -126,13 +166,7 @@ namespace MeterSceneLibrary
                             //EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
                             //mwaf = entityBase.format<MeterWorkCarActualFirst>(scale, mwaf);
 
-                            // 查询上一次结净数据
-                            MeterWorkCarActualService meterWorkCarActualService = new MeterWorkCarActualService();
-                            //计量实绩
-                            MeterWorkCarActual mwca = new MeterWorkCarActual();
-                            mwca.carNo = PbCache.lockCarNo;
-
-                            RESTfulResult<List<MeterWorkCarActual>> rm = meterWorkCarActualService.doQueryActaulWf(mwca);
+                            
 
                             if (rm.Succeed)
                             {
@@ -154,9 +188,6 @@ namespace MeterSceneLibrary
                                 }
                                 else
                                 {
-                                    MeterWorkCarActual lastMeterWorkCarActual = rm.Data[0];
-
-
                                     // 上次净重记录未匹配委托
                                     if (lastMeterWorkCarActual.isPreScale == "0")
                                     {
@@ -180,9 +211,7 @@ namespace MeterSceneLibrary
                                         bool isYCDX = false;
 
                                         bool isHZ = false;
-                                        // 签发时间比较
-                                        // 通过上次结净记录,找到该委托的签发时间
-                                        RESTfulResult<List<PreTrackScale>> lastPre = preTrackScaleService.doQueryWf(new PreTrackScale { predictionNo = lastMeterWorkCarActual.predictionNo });
+                                        
                                         //int min = 999;
 
                                         //if (lastPre.Succeed && lastPre.Data.Count == 1)
@@ -425,12 +454,6 @@ namespace MeterSceneLibrary
                         else if (listPreScale.Count > 1)
                         {
                             bool isHZ = false;
-                            MeterWorkCarActualService meterWorkCarActualService = new MeterWorkCarActualService();
-                            //计量实绩
-                            MeterWorkCarActual mwca = new MeterWorkCarActual();
-                            mwca.carNo = PbCache.lockCarNo;
-
-                            RESTfulResult<List<MeterWorkCarActual>> rm = meterWorkCarActualService.doQueryActaulWf(mwca);
 
                             if (rm.Succeed) 
                             {
@@ -577,7 +600,7 @@ namespace MeterSceneLibrary
                                     rt.resultInfo += ",无委托结净";
                                     PbCache.voiceType = 1;
                                     PbCache.LEDResultMessage = string.Format("车号{0},2次重量{1}吨,净重{2}吨,无委托结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
-                                    PbCache.monitorResultMessage = string.Format("计量完成,车号{0}无委托结净", PbCache.lockCarNo, listPreScale.Count);
+                                    PbCache.monitorResultMessage = string.Format("计量完成,车号{0}无委托结净", PbCache.lockCarNo);
 
                                 }
                                 // 只存在一条使用中的委托
@@ -643,26 +666,26 @@ namespace MeterSceneLibrary
                                         PreTrackScale ptss = new PreTrackScale();
                                         foreach (var item in listPreScale)
                                         {
-                                            if (item.receiverRemark == "H01")
+                                            if (item.receiverRemark == "HO1")
                                             {
                                                 ptss = item;
                                             }
                                         }
 
 
-                                        MeterWorkCarActualFirst mwca = new MeterWorkCarActualFirst();
-                                        mwca = rmX.Data[0];
-                                        mwca.isPreScale = "1";
+                                        MeterWorkCarActualFirst mwca2 = new MeterWorkCarActualFirst();
+                                        mwca2 = rmX.Data[0];
+                                        mwca2.isPreScale = "1";
 
                                         EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
-                                        mwca = entityBase.format<MeterWorkCarActualFirst>(ptss, mwca);
+                                        mwca2 = entityBase.format<MeterWorkCarActualFirst>(ptss, mwca2);
 
                                         //EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
                                         //mwaf = entityBase1.format<MeterWorkCarActualFirst>(listPreScale[0], mwaf);
                                         //mwaf.isPreScale = "1";
                                         
                                         PbCache.voiceType = 1;
-                                        rt = saveMethod.doNetHZHX(ptss, mwca, mwaf);
+                                        rt = saveMethod.doNetHZHX(ptss, mwca2, mwaf);
                                         PbCache.LEDResultMessage = string.Format("车号{0},2次重量{1}吨,净重{2}吨,混装业务", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
                                         rt.resultInfo += ",混装业务";
                                     }
@@ -843,9 +866,9 @@ namespace MeterSceneLibrary
                                          * a. 正常结净产生一条净重记录
                                          * b. 自动生成一条一次毛重计量数据,重量值值为当次计量数据中的毛重
                                          */
-                                        MeterWorkCarActualFirst mwca = new MeterWorkCarActualFirst();
-                                        mwca = rmX.Data[0];
-                                        mwca.isPreScale = "1";
+                                        MeterWorkCarActualFirst mwca3 = new MeterWorkCarActualFirst();
+                                        mwca3 = rmX.Data[0];
+                                        mwca3.isPreScale = "1";
 
                                         PreTrackScale pts = null;
 
@@ -858,13 +881,13 @@ namespace MeterSceneLibrary
                                         }
 
                                         EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
-                                        mwca = entityBase.format<MeterWorkCarActualFirst>(pts, mwca);
+                                        mwca3 = entityBase.format<MeterWorkCarActualFirst>(pts, mwca3);
 
                                         //EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
                                         //mwaf = entityBase1.format<MeterWorkCarActualFirst>(pts, mwaf);
                                         //mwaf.isPreScale = "1";
 
-                                        rt = saveMethod.doNetHZHX(pts, mwca, mwaf);
+                                        rt = saveMethod.doNetHZHX(pts, mwca3, mwaf);
                                         rt.resultInfo += ",混装业务";
                                         PbCache.voiceType = 1;
                                         PbCache.LEDResultMessage = string.Format("车号{0},2次重量{1}吨,净重{2}吨,混装业务", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));