Browse Source

winfrom修改

duyong 4 years ago
parent
commit
cdd9a72fee

+ 158 - 106
CarMeterSystem/frmOneYardToEnd.cs

@@ -39,6 +39,7 @@ namespace CarMeterSystem
 
         private validTermTareCar termTareCar = new validTermTareCar();//验证是否可留期限皮
         private validRecoverInfo recoverInfo = new validRecoverInfo();//验证是否需要复磅以及是否满足复磅条件
+        private validArea areaInfo = new validArea();//验证区域是否正确
         private validPrediction validPred = new validPrediction(); //验证预报信息
         private validUnloadAutomatic unloadAutomatic = new validUnloadAutomatic(); //自动卸货
         private validDataValidity dataValidity = new validDataValidity(); //验证采集的重量是否正常
@@ -166,6 +167,15 @@ namespace CarMeterSystem
                     return;
                 }
 
+                //判断区域是否正确
+                if (!areaInfo.ValidMethod(PbCache.sportInfo, txtCarNo.Text) && PbCache.monitor.validArea == "1")
+                {
+                    PbCache.isLockFrm = false;
+                    btnSave.Enabled = true;
+                    setMsg("车辆两次称点区域不同");
+                    return;
+                }
+
                 //2021年6月22日 存在需要复磅的数据,不允许进行保存操作
                 recoverInfo.ValidAllowSave(PbCache.lockCarNo);
                 if (PbCache.isAllowRecover)
@@ -282,14 +292,27 @@ namespace CarMeterSystem
 
                             ExecuteMethod em = new ExecuteMethod();
 
+                            //判断是否为外发试验性称量,预防超载或欠载(不算正常计量)(吉瑞、铁合金车辆)
+                            bool isjT = false; 
 
+                            if (car.belongUnitTypeNo == "000000" || car.belongUnitTypeNo == "000001")
+                            {
+                                isjT = true;
+                            }
                             // 厂内车辆
-                            if (car.carTypeNo == "001004003")
+                            if (car.carTypeNo == "001004003" || isjT)
                             {
                                 try
                                 {
                                     btnSave.Enabled = false;
-                                    strRm = em.GetAndExecuteMethod<rtInfo>("MeterSceneLibrary", "InnerCarJISCO", "MeterMethod", new object[] { new PreTrackScale { } });
+                                    if (isjT)
+                                    {
+                                        strRm = em.GetAndExecuteMethod<rtInfo>("MeterSceneLibrary", "InnerCarJISCO", "MeterMethod", new object[] { new PreTrackScale { carNo = PbCache.lockCarNo } });
+                                    }
+                                    else
+                                    {
+                                        strRm = em.GetAndExecuteMethod<rtInfo>("MeterSceneLibrary", "InnerCarJISCO", "MeterMethod", new object[] { new PreTrackScale { } });
+                                    }
                                     setMsg(strRm.ResultMessage);
                                     strMsg = strRm.ResultMessage;
                                     if (!string.IsNullOrEmpty(PbCache.LEDResultMessage))
@@ -312,7 +335,7 @@ namespace CarMeterSystem
                                 }
                             }
                             // 厂外车辆
-                            else if (car.carTypeNo == "001004002")
+                            else if (car.carTypeNo == "001004002" && !isjT)
                             {
                                 try
                                 {
@@ -510,6 +533,8 @@ namespace CarMeterSystem
                         meterWorkScheduledHelp.baseSpotName = PbCache.sportInfo.baseSpotName;
                         meterWorkScheduledHelp.carNo = PbCache.collect.carno;
                         meterWorkScheduledHelp.helpContent = PbCache.monitorResultMessage;
+                        meterWorkScheduledHelp.warnType = "2";
+                        meterWorkScheduledHelp.warnTypeName = "智能终端报警";
                         meterWorkScheduledHelpService.add(meterWorkScheduledHelp);
                     }
 
@@ -668,6 +693,18 @@ namespace CarMeterSystem
                         this.Close();
                     }
 
+                    if (PbCache.collect.parkStatus == 3)
+                    {
+                        MeterWorkScheduledHelp meterWorkScheduledHelp = new MeterWorkScheduledHelp();
+                        meterWorkScheduledHelp.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                        meterWorkScheduledHelp.baseSpotName = PbCache.sportInfo.baseSpotName;
+                        meterWorkScheduledHelp.carNo = PbCache.collect.carno;
+                        meterWorkScheduledHelp.helpContent = "疑似跟车,请核查";
+                        meterWorkScheduledHelp.warnType = "3";
+                        meterWorkScheduledHelp.warnTypeName = "智能终端报警";
+                        meterWorkScheduledHelpService.add(meterWorkScheduledHelp);
+                    }
+
                     #region 0.接受远程修改过后的车号并显示
                     //if (PbCache.monitor != null && !string.IsNullOrEmpty(PbCache.monitor.editCar))
                     //{
@@ -859,15 +896,15 @@ namespace CarMeterSystem
                 #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)
                     {
@@ -903,145 +940,160 @@ namespace CarMeterSystem
                         isShowRecover = false;
                     }
 
+                #endregion 判断是否需要复磅
+
+                    #region 判断区域是否正确
+
+                    //if (PbCache.monitor.validArea == "1")
+                    //{
+                    //    if (areaInfo.ValidMethod(PbCache.sportInfo, txtCarNo.Text))
+                    //    {
+                    //        btnSave.Enabled = true;
+                    //    }
+                    //    else
+                    //    {
+                    //        btnSave.Enabled = false;
+                    //    }
+                    //}
                     #endregion 判断是否需要复磅
 
                     #region 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
 
                     //如果没有查过一次,且扫描到车号信息,且重量稳定
                     if ((bRailwayActual || sPreCarNo != TrackCarNo || firstCode != PbCache.strCode) && PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_park_status)
-                    {
-                        firstWgt = 0;
-                        sPreCarNo = TrackCarNo;
-                        //判断车辆是厂内车还是厂外车
-                        RESTfulResult<List<MeterBaseCar>> resCarList = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno });
-                        if (resCarList.Succeed)
                         {
-                            if (resCarList.Data != null && resCarList.Data.Count == 1)
+                            firstWgt = 0;
+                            sPreCarNo = TrackCarNo;
+                            //判断车辆是厂内车还是厂外车
+                            RESTfulResult<List<MeterBaseCar>> resCarList = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.collect.carno });
+                            if (resCarList.Succeed)
                             {
-                                MeterBaseCar car = resCarList.Data[0];
-                                //厂内车辆
-                                if (car.carTypeNo == "001004003")
+                                if (resCarList.Data != null && resCarList.Data.Count == 1)
                                 {
-                                    RESTfulResult<List<PreTrackScale>> rmScale = PreTrackScaleService.doQueryByFlag(new PreTrackScale { carNo = PbCache.collect.carno, lineDesc = "1" });
-
-                                    if (rmScale.Succeed)
+                                    MeterBaseCar car = resCarList.Data[0];
+                                    //厂内车辆
+                                    if (car.carTypeNo == "001004003")
                                     {
-                                        if (rmScale.Data != null && rmScale.Data.Count == 1)
+                                        RESTfulResult<List<PreTrackScale>> rmScale = PreTrackScaleService.doQueryByFlag(new PreTrackScale { carNo = PbCache.collect.carno, lineDesc = "1" });
+
+                                        if (rmScale.Succeed)
                                         {
-                                            MeterWorkCarActualFirst actualFirst = new MeterWorkCarActualFirst();
+                                            if (rmScale.Data != null && rmScale.Data.Count == 1)
+                                            {
+                                                MeterWorkCarActualFirst actualFirst = new MeterWorkCarActualFirst();
 
-                                            firstWgt = rmScale.Data[0].meterWeight == null ? 0 : rmScale.Data[0].meterWeight.Value;
+                                                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);
+                                                EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
+                                                actualFirst = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], actualFirst);
 
-                                            actualFirst.predictionNo = actualFirst.predictionNo.Replace("_", "");
-                                            //给用户控件设置值
-                                            ucCarMeterInfoJisco1.setFormControlValue(actualFirst);
+                                                actualFirst.predictionNo = actualFirst.predictionNo.Replace("_", "");
+                                                //给用户控件设置值
+                                                ucCarMeterInfoJisco1.setFormControlValue(actualFirst);
+                                            }
                                         }
+                                        bRailwayActual = false;
                                     }
-                                    bRailwayActual = false;
-                                }
-                                //厂外车辆
-                                else if (car.carTypeNo == "001004002")
-                                {
-                                    #region 查询一次计量表中是否存在一条未结净的数据,非一车联运情况扫码两次,一车联运的话
-
-                                    RESTfulResult<List<MeterWorkCarActualFirst>> RESTfulResult = workCarActualFirstService.doQueryWf(new MeterWorkCarActualFirst { carNo = PbCache.collect.carno, valueFlag = "1" });
-                                    if (RESTfulResult.Succeed)
+                                    //厂外车辆
+                                    else if (car.carTypeNo == "001004002")
                                     {
-                                        if (RESTfulResult.Data != null && RESTfulResult.Data.Count > 0)
+                                        #region 查询一次计量表中是否存在一条未结净的数据,非一车联运情况扫码两次,一车联运的话
+
+                                        RESTfulResult<List<MeterWorkCarActualFirst>> RESTfulResult = workCarActualFirstService.doQueryWf(new MeterWorkCarActualFirst { carNo = PbCache.collect.carno, valueFlag = "1" });
+                                        if (RESTfulResult.Succeed)
                                         {
-                                            if (PbCache.sportInfo.baseSpotNo == lianDaPointNo)
+                                            if (RESTfulResult.Data != null && RESTfulResult.Data.Count > 0)
                                             {
-                                                bool flag = false;
-                                                foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data)
+                                                if (PbCache.sportInfo.baseSpotNo == lianDaPointNo)
                                                 {
-                                                    //联达磅过的联达物料
-                                                    if (fs.predictionNo.Contains("_"))
+                                                    bool flag = false;
+                                                    foreach (MeterWorkCarActualFirst fs in RESTfulResult.Data)
                                                     {
-                                                        firstWgt = fs.meterWeight.Value;
-                                                        firstDb = fs;
-                                                        firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
-                                                        //给用户控件设置值
-                                                        ucCarMeterInfoJisco1.setFormControlValue(firstDb);
-                                                        flag = true;
-                                                        break;
+                                                        //联达磅过的联达物料
+                                                        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("_"))
+                                                    if (!flag)
                                                     {
                                                         firstWgt = RESTfulResult.Data[0].meterWeight.Value;
                                                         firstDb = RESTfulResult.Data[0];
                                                         firstDb.predictionNo = firstDb.predictionNo.Replace("_", "");
                                                         //给用户控件设置值
                                                         ucCarMeterInfoJisco1.setFormControlValue(firstDb);
-                                                        break;
+                                                    }
+                                                }
+                                                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;
                                     }
-                                    #endregion
-                                    bRailwayActual = false;
-                                }
-                            }
-                            else
-                            {
-                                if (string.IsNullOrEmpty(PbCache.collect.carno))
-                                {
-                                    txtMsgInfo.Text  = "车号为空,请联系处理";
-                                    PbCache.monitorResultMessage = "车号为空,请联系处理";
                                 }
                                 else
                                 {
-                                    txtMsgInfo.Text  = "车号未注册,请联系处理";
-                                    PbCache.monitorResultMessage = "车号未注册,请联系处理";
-                                }
-                                PbCache.isLockFrm = false;
-                                btnSave.Enabled = true;
+                                    if (string.IsNullOrEmpty(PbCache.collect.carno))
+                                    {
+                                        txtMsgInfo.Text  = "车号为空,请联系处理";
+                                        PbCache.monitorResultMessage = "车号为空,请联系处理";
+                                    }
+                                    else
+                                    {
+                                        txtMsgInfo.Text  = "车号未注册,请联系处理";
+                                        PbCache.monitorResultMessage = "车号未注册,请联系处理";
+                                    }
+                                    PbCache.isLockFrm = false;
+                                    btnSave.Enabled = true;
                                 
-                                rtInfo rt = new rtInfo();
-                                rt.isWarn = true;
-                                rt.WarnContent = "carErr";
-                                Monitor(rt);
+                                    rtInfo rt = new rtInfo();
+                                    rt.isWarn = true;
+                                    rt.WarnContent = "carErr";
+                                    Monitor(rt);
 
-                                if (!string.IsNullOrEmpty(PbCache.collect.carno))
-                                {
-                                    carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
+                                    if (!string.IsNullOrEmpty(PbCache.collect.carno))
+                                    {
+                                        carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
+                                    }
+                                    return;
                                 }
-                                return;
                             }
-                        }
-                        #region 查一次是否可留期限皮,可以则显示按钮
+                            #region 查一次是否可留期限皮,可以则显示按钮
 
-                        PbCache.lockWgt = PbCache.collect.weight;
+                            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;
-                        }
-                        //
+                            //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的情况下才赋值毛皮净重

+ 4 - 0
Common/Common.csproj

@@ -96,6 +96,8 @@
     <Compile Include="DbOption\base\MeterBaseUnitInfoService.cs" />
     <Compile Include="DbOption\scale\PreBeltScalePreService.cs" />
     <Compile Include="DbOption\scale\PreTrackNoticeService.cs" />
+    <Compile Include="DbOption\work\MeterWorkCompareSpotScaleService.cs" />
+    <Compile Include="DbOption\work\MeterWorkCompareSpotService.cs" />
     <Compile Include="DbOption\work\MeterWorkBeltActualService.cs" />
     <Compile Include="DbOption\work\MeterWorkBeltXiaopiService.cs" />
     <Compile Include="DbOption\work\MeterWorkBeltTimingService.cs" />
@@ -127,6 +129,8 @@
     <Compile Include="vo\pb\CraneScaleCollectModel.cs" />
     <Compile Include="vo\scale\PreBeltScaleForecast.cs" />
     <Compile Include="vo\scale\PreTrackNotice.cs" />
+    <Compile Include="vo\work\MeterWorkCompareSpot.cs" />
+    <Compile Include="vo\work\MeterWorkCompareSpotSacle.cs" />
     <Compile Include="vo\work\MeterWorkBeltActual.cs" />
     <Compile Include="vo\work\MeterWorkBeltXiaopi.cs" />
     <Compile Include="vo\work\MeterWorkBeltTiminginfo.cs" />

+ 12 - 0
Common/DbOption/work/MeterWorkCompareSpotScaleService.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Common.DbOption.work
+{
+    public class MeterWorkCompareSpotScaleService
+    {
+    }
+}

+ 12 - 0
Common/DbOption/work/MeterWorkCompareSpotService.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Common.DbOption.work
+{
+    public class MeterWorkCompareSpotService
+    {
+    }
+}

+ 10 - 0
Common/vo/base/MeterBaseCar.cs

@@ -100,5 +100,15 @@ namespace Common
 		/// <summary>
 		public DateTime? updateTime { get; set; }
 
+		/// <summary>
+		/// 归属单位类型编码
+		/// <summary>
+		public string belongUnitTypeNo { get; set; }
+
+		/// <summary>
+		/// 归属单位类型名称
+		/// <summary>
+		public string belongUnitTypeName { get; set; }
+
 	}
 }

+ 15 - 0
Common/vo/base/MeterBaseUnitInfo.cs

@@ -34,6 +34,21 @@ namespace Common
 		/// <summary>
 		public string receivingUnitName { get; set; }
 
+		/// <summary>
+		/// 物料编号
+		/// <summary>
+		public string matterNo { get; set; }
+
+		/// <summary>
+		/// 物料名称
+		/// <summary>
+		public string matterName { get; set; }
+
+		/// <summary>
+		/// 车号
+		/// <summary>
+		public string caoNo { get; set; }
+
 		/// <summary>
 		/// 是否允许使用期限皮重(0不可,1可以)
 		/// <summary>

+ 106 - 0
Common/vo/work/MeterWorkCompareSpot.cs

@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Common
+{
+    public class MeterWorkCompareSpot
+    {
+		/// <summary>
+		/// 主键
+		/// <summary>
+		public string CompareSpotId { get; set; }
+
+		/// <summary>
+		/// 数据状态(0:作废,1:未使用, 2:已使用)
+		/// <summary>
+		public string valueFlag { get; set; }
+
+		/// <summary>
+		/// 创建人姓名
+		/// <summary>
+		public string createManName { get; set; }
+
+		/// <summary>
+		/// 创建人手机
+		/// <summary>
+		public string createManPhone { get; set; }
+
+		/// <summary>
+		/// 创建时间
+		/// <summary>
+		public DateTime? createTime { get; set; }
+
+		/// <summary>
+		/// 修改人姓名
+		/// <summary>
+		public string updateManName { get; set; }
+
+		/// <summary>
+		/// 修改人手机
+		/// <summary>
+		public string updateManPhone { get; set; }
+
+		/// <summary>
+		/// 创建时间
+		/// <summary>
+		public DateTime? updateTime { get; set; }
+
+		/// <summary>
+		/// 车号
+		/// <summary>
+		public string carNo { get; set; }
+
+		/// <summary>
+		/// 重量1
+		/// <summary>
+		public double weightNum1 { get; set; }
+
+		/// <summary>
+		/// 时间1
+		/// <summary>
+		public DateTime? weightDate1 { get; set; }
+
+		/// <summary>
+		/// 重量2
+		/// <summary>
+		public double weightNum2 { get; set; }
+
+		/// <summary>
+		/// 时间2
+		/// <summary>
+		public DateTime? weightDate2 { get; set; }
+
+		/// <summary>
+		/// 重量3
+		/// <summary>
+		public double weightNum3 { get; set; }
+
+		/// <summary>
+		/// 时间3
+		/// <summary>
+		public DateTime? weightDate3 { get; set; }
+
+		/// <summary>
+		/// 重量4
+		/// <summary>
+		public double weightNum4 { get; set; }
+
+		/// <summary>
+		/// 时间4
+		/// <summary>
+		public DateTime? weightDate4 { get; set; }
+
+		/// <summary>
+		/// 重量5
+		/// <summary>
+		public double weightNum5 { get; set; }
+
+		/// <summary>
+		/// 时间5
+		/// <summary>
+		public DateTime? weightDate5 { get; set; }
+	}
+}

+ 61 - 0
Common/vo/work/MeterWorkCompareSpotSacle.cs

@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Common
+{
+    public class MeterWorkCompareSpotSacle
+    {
+		/// <summary>
+		/// 主键
+		/// <summary>
+		public string CompareSpotSacleId { get; set; }
+
+		/// <summary>
+		/// 数据状态(0:作废,1:未使用, 2:已使用)
+		/// <summary>
+		public string valueFlag { get; set; }
+
+		/// <summary>
+		/// 车号
+		/// <summary>
+		public string carNo { get; set; }
+
+		/// <summary>
+		/// 数量
+		/// <summary>
+		public string num { get; set; }
+
+		/// <summary>
+		/// 创建人姓名
+		/// <summary>
+		public string createManName { get; set; }
+
+		/// <summary>
+		/// 创建人手机
+		/// <summary>
+		public string createManPhone { get; set; }
+
+		/// <summary>
+		/// 创建时间
+		/// <summary>
+		public DateTime? createTime { get; set; }
+
+		/// <summary>
+		/// 修改人姓名
+		/// <summary>
+		public string updateManName { get; set; }
+
+		/// <summary>
+		/// 修改人手机
+		/// <summary>
+		public string updateManPhone { get; set; }
+
+		/// <summary>
+		/// 创建时间
+		/// <summary>
+		public DateTime? updateTime { get; set; }
+	}
+}

+ 5 - 0
Common/vo/work/MeterWorkMonitor.cs

@@ -60,6 +60,11 @@ namespace Common
 		/// <summary>
 		public string validPredictionDiff { get; set; }
 
+		/// <summary>
+		/// 验证区域  0不验证  1验证
+		/// <summary>
+		public string validArea { get; set; }
+
 		/// <summary>
 		/// 是否有效 1有效 0无效
 		/// <summary>

+ 6 - 0
Common/vo/work/MeterWorkPreWgttype.cs

@@ -84,5 +84,11 @@ namespace Common
 		/// 预报编号
 		/// <summary>
 		public string preTrackScaleNo { get; set; }
+
+		/// <summary>
+		/// 是否确认
+		/// <summary>
+		public string submitFlag { get; set; }
+		
 	}
 }

+ 12 - 0
Common/vo/work/MeterWorkScheduledHelp.cs

@@ -79,5 +79,17 @@ namespace Common
         /// <summary>
         //[AttributeID("pointNo")]
         public string measureTaskNum { get; set; }
+
+        /// <summary>
+        /// 报警类型
+        /// <summary>
+        //[AttributeID("pointNo")]
+        public string warnType { get; set; }
+
+        /// <summary>
+        /// 报警类型名称
+        /// <summary>
+        //[AttributeID("pointNo")]
+        public string warnTypeName { get; set; }
     }
 }

+ 1 - 0
MeterConditionLibrary/MeterConditionLibrary.csproj

@@ -47,6 +47,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="validArea.cs" />
     <Compile Include="validMeterArea.cs" />
     <Compile Include="validShipWeight.cs" />
     <Compile Include="validWeightType.cs" />

+ 53 - 0
MeterConditionLibrary/validArea.cs

@@ -0,0 +1,53 @@
+using Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using com.hnshituo.core.webapp.vo;
+
+namespace MeterConditionLibrary
+{
+    public class validArea
+    {
+        MeterWorkCarActualFirstService meterWorkCarActualFirstService = new MeterWorkCarActualFirstService();
+
+        MeterBaseSpotInfoService meterBaseSpotInfoService = new MeterBaseSpotInfoService();
+        public bool ValidMethod(MeterBaseSpotInfo spot,string carNo)
+        {
+            //查询该车号一次数据
+            RESTfulResult<List<MeterWorkCarActualFirst>> rmFirst = meterWorkCarActualFirstService.doQueryByFlag(new MeterWorkCarActualFirst { carNo = carNo });
+            if (rmFirst.Succeed)
+            {
+                if (rmFirst.Data == null || rmFirst.Data.Count == 0)
+                {
+                    return true;
+                }
+                else
+                {
+                    //查询称点信息
+                    RESTfulResult<List<MeterBaseSpotInfo>> rmSpot = meterBaseSpotInfoService.doQueryWf(new MeterBaseSpotInfo { baseSpotNo = rmFirst.Data[0].baseSpotNo });
+                    if (rmSpot.Succeed)
+                    {
+                        if (rmSpot.Data == null || rmSpot.Data.Count == 0)
+                        {
+                            return true;
+                        }
+                        else
+                        {
+                            if (rmSpot.Data[0].spotAreaNo == spot.spotAreaNo)
+                            {
+                                return true;
+                            }
+                            else
+                            {
+                                return false;
+                            }
+                        }
+                    }
+                }
+            }
+            return true;
+        }
+    }
+}

File diff suppressed because it is too large
+ 570 - 472
MeterSceneLibrary/JISCO/InnerCarJISCO.cs


+ 68 - 14
MeterSceneLibrary/JISCO/OuterCarJISCO.cs

@@ -376,6 +376,32 @@ namespace MeterSceneLibrary
                             */
                             PreTrackScale pre = null;
                             string res = "";
+                            string matter = "";
+                            string forwarding = "";
+                            string receiving = "";
+                            bool flag = true;
+                            foreach (var item in listPreScale)
+                            {
+                                if (matter == "" && forwarding == "" && receiving == "")
+                                {
+                                    matter = item.matterNo;
+                                    forwarding = item.forwardingUnitNo;
+                                    receiving = item.receivingUintNo;
+                                }
+                                else
+                                {
+                                    if (matter == item.matterNo && forwarding == item.forwardingUnitNo && receiving == item.receivingUintNo)
+                                    {}
+                                    else
+                                    {
+                                        flag = false;
+                                    }
+                                }
+                            }
+                            if (flag)
+                            {
+                                pre = listPreScale[0];
+                            }
                             if (listPreScale.Count == 2 &&  listPreScale[0].valueFlag == "1" && listPreScale[1].valueFlag == "1" && listPreScale[0].predictionType == "6" && listPreScale[1].predictionType == "6")
                             {
                                 pre = listPreScale[0];
@@ -392,17 +418,19 @@ namespace MeterSceneLibrary
                             {
                                 // 正常洁净并生成两条净重数据
                                 pre = listPreScale[0];
-                                res = ",双委托业务";
+                                res = ",双委托业务"; 
+                                PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,双委托业务", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
                             }
+                            
                             if (pre == null)
                             {
                                 res = ",存在多个委托,无法自动匹配";
+                                PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,多委托无法自动匹配请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                PbCache.monitorResultMessage = string.Format("计量完成,车号{0}存在{1}个委托,无法自动匹配", PbCache.lockCarNo, listPreScale.Count);
                             }
                             PbCache.isActual = true;
                             PbCache.isInnerCar = true;
                             rt = saveMethod.doAddFirst(pre, mwaf);
-                            PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,多委托无法自动匹配请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
-                            PbCache.monitorResultMessage = string.Format("计量完成,车号{0}存在{1}个委托,无法自动匹配", PbCache.lockCarNo, listPreScale.Count);
                             if (res != "")
                             {
                                 rt.resultInfo += res;
@@ -520,7 +548,7 @@ namespace MeterSceneLibrary
                                         mwaf = entityBase1.format<MeterWorkCarActualFirst>(listPreScale[0], mwaf);
                                         mwaf.isPreScale = "1";
 
-                                        rt = saveMethod.doNet(listPreScale[0], mwca, mwaf);
+                                        rt = saveMethod.doNetHZHX(listPreScale[0], mwca, mwaf);
                                         PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
                                     }
                                     // 不满足以上逻辑
@@ -579,13 +607,42 @@ namespace MeterSceneLibrary
                                     //    rt = saveMethod.doNet(scale, rmX.Data[0], mwaf);
                                     //    rt = saveMethod.doError("称重完成,当前所存计量数据未匹配委托,请联系计量大厅进行处理");
                                     //}
-                                    
-                                    rt = saveMethod.doNet(null, rmX.Data[0], mwaf);
+                                    PreTrackScale pre = null;
+                                    string matter = "";
+                                    string forwarding = "";
+                                    string receiving = "";
+                                    bool flag = true;
+                                    foreach (var item in listPreScale)
+                                    {
+                                        if (matter == "" && forwarding == "" && receiving == "")
+                                        {
+                                            matter = item.matterNo;
+                                            forwarding = item.forwardingUnitNo;
+                                            receiving = item.receivingUintNo;
+                                        }
+                                        else
+                                        {
+                                            if (matter == item.matterNo && forwarding == item.forwardingUnitNo && receiving == item.receivingUintNo)
+                                            { }
+                                            else
+                                            {
+                                                flag = false;
+                                            }
+                                        }
+                                    }
+                                    if (flag)
+                                    {
+                                        pre = listPreScale[0];
+                                    }
+                                    rt = saveMethod.doNet(pre, rmX.Data[0], mwaf);
                                     rt.isWarn = true;
                                     rt.WarnContent = "validIsPre";
-                                    rt.resultInfo += ",存在多个委托,无法自动匹配";
-                                    PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,多委托无法自动匹配请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
-                                    PbCache.monitorResultMessage = string.Format("计量完成,车号{0}存在{1}个委托,无法自动匹配", PbCache.lockCarNo, listPreScale.Count);
+                                    if (pre == null)
+                                    {
+                                        PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,多委托无法自动匹配请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                        PbCache.monitorResultMessage = string.Format("计量完成,车号{0}存在{1}个委托,无法自动匹配", PbCache.lockCarNo, listPreScale.Count);
+                                        rt.resultInfo += ",存在多个委托,无法自动匹配";
+                                    }
                                 }
                             }
                             // 存在的一次计量数据已匹配委托
@@ -639,10 +696,7 @@ namespace MeterSceneLibrary
                                         rt = saveMethod.doNetAddTwo(listPreScale, rmX.Data[0], mwaf);
                                     }
                                     /*
-                                     * 委托关系满足一车多卸逻辑
-                                     * 分两种情况:
-                                     * 1、委托数据中没有委托类型标识,则根据签发时间排序,如果两条数据发货单位一致,收货单位不一致,且签发时间在10分钟内,则可判定为一车多卸业务,根据时间顺序选择第一条委托产生净重数据,然后使用第二条委托产生一个毛重数据。
-                                     * 2、委托数据中存在委托类型标识,且类型都为一车多卸。
+                                     * 委托关系满足混装混卸逻辑
                                      */
                                     else if (listPreScale[0].predictionType == "6" && listPreScale[1].predictionType == "6" || listPreScale[0].predictionType == "7" && listPreScale[1].predictionType == "7")
                                     {
@@ -671,7 +725,7 @@ namespace MeterSceneLibrary
                                         mwaf = entityBase1.format<MeterWorkCarActualFirst>(pts, mwaf);
                                         mwaf.isPreScale = "1";
 
-                                        rt = saveMethod.doNet(listPreScale[0], mwca, mwaf);
+                                        rt = saveMethod.doNetHZHX(listPreScale[0], mwca, mwaf);
                                         PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
                                     }
                                     // 不满足以上逻辑

+ 20 - 0
MeterSceneLibrary/JISCO/compare.cs

@@ -0,0 +1,20 @@
+using Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MeterSceneLibrary
+{
+    public class compare
+    {
+
+        private rtInfo rt = new rtInfo();
+        public rtInfo MeterMethod(PreTrackScale scale)
+        {
+            //MeterWorkCompareSpot 
+            return rt;
+        }
+    }
+}

+ 0 - 1
MeterSceneLibrary/JISCO/private/SaveMethod.cs

@@ -243,7 +243,6 @@ namespace MeterSceneLibrary.JISCO
                 netDb = entityBase3.format<MeterWorkCarActual>(scale, netDb);
                 netDb.isPreScale = "1";
             }
-
             
 
             netDb.carNo = actualFirst.carNo;

+ 1 - 0
MeterSceneLibrary/MeterSceneLibrary.csproj

@@ -65,6 +65,7 @@
     <Compile Include="FirstTareSecondlyGross.cs" />
     <Compile Include="FirstTaresSecondlyGrossesLock.cs" />
     <Compile Include="FirstTaresSecondlyGrossesUnLock.cs" />
+    <Compile Include="JISCO\compare.cs" />
     <Compile Include="JISCO\InnerCarJISCO.cs" />
     <Compile Include="InnerMeter.cs" />
     <Compile Include="InnerRemoteMeter.cs" />

Some files were not shown because too many files changed in this diff