Bläddra i källkod

winfrom提交

duyong 4 år sedan
förälder
incheckning
5e1532ac0d

+ 6 - 0
CarMeterSystem/App.config

@@ -36,6 +36,12 @@
     <!--期限皮使用方式配置:车号-物料-路线(1),车号-物料-称点(2)-->
     <add key="TareControlType" value="1" />
 
+    <!--厂内外车配置:001004003(内部),001004002(外部)-->
+    <add key="carTypeNo" value="001004003" />
+
+    <!--厂内外车配置:001004003(内部),001004002(外部)-->
+    <add key="carTypeName" value="内部" />
+
 		<add key="ClientSettingsProvider.ServiceUri" value="" />
 	</appSettings>
 	<system.web>

+ 2 - 2
CarMeterSystem/frmOneYardToEnd.cs

@@ -430,7 +430,7 @@ namespace CarMeterSystem
                             }
                             if (!string.IsNullOrEmpty(tempCarNo))
                             {
-                                carService.addCar(new MeterBaseCar { carNo = tempCarNo,carTypeNo = "001004003" ,carTypeName = "内部" });
+                                carService.addCar(new MeterBaseCar { carNo = tempCarNo,carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
                             }
                             return;
                         }
@@ -1009,7 +1009,7 @@ namespace CarMeterSystem
 
                                 if (!string.IsNullOrEmpty(PbCache.collect.carno))
                                 {
-                                    carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = "001004003", carTypeName = "内部" });
+                                    carService.addCar(new MeterBaseCar { carNo = PbCache.collect.carno, carTypeNo = AppConfigCache.carTypeNo, carTypeName = AppConfigCache.carTypeName });
                                 }
                                 return;
                             }

+ 10 - 0
Common/cacheCls/AppConfigCache.cs

@@ -77,5 +77,15 @@ namespace Common
         /// </summary>
         public static readonly string TareControlType = ConfigurationManager.AppSettings["TareControlType"].ToString().Trim();
 
+        /// <summary>
+        /// 0测试,1正式
+        /// </summary>
+        public static readonly string carTypeNo = ConfigurationManager.AppSettings["carTypeNo"].ToString().Trim();
+
+        /// <summary>
+        /// 0测试,1正式
+        /// </summary>
+        public static readonly string carTypeName = ConfigurationManager.AppSettings["carTypeName"].ToString().Trim();
+
     }
 }

+ 157 - 7
MeterSceneLibrary/JISCO/InnerCarJISCO.cs

@@ -201,11 +201,10 @@ namespace MeterSceneLibrary
                                             {
                                                 //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
                                                 string sqls = @"select t.matter_no id, t.matter_name text
-                                                from meter_base_matter_info t,meter_base_metertype_conf t2
+                                                from meter_base_matter_info t
                                                 where t.allowed_tare_weight = '1'
                                                 and t.valid_flag = '1'
-                                                and t.matter_no='" + rmScale.Data[0].matterNo + @"'
-                                                and t2.is_allow_term_tare = '1' and  t2.meter_type_no = '" + rmScale.Data[0].meterTypeNo + @"'";
+                                                and t.matter_no='" + rmScale.Data[0].matterNo + @"'";
 
                                                 PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
                                                 RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
@@ -752,13 +751,164 @@ namespace MeterSceneLibrary
                                          * b. 自动进行语音求助
                                          */
                                         //多条一次记录下判断是否全为毛重,是全部结净
-                                        if (firstList[firstList.Count - 1].weightType == "0" && list[0].weightTypeNo == "001033002")
+                                        foreach (var item in firstList)
                                         {
-                                            //给一次数据匹配委托
-                                            mwaf.weightType = "0";
+                                            // 判断车辆是否具有期限皮重权限
+                                            MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
+                                            RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
 
-                                            rt = saveMethod.doNetAddMuch(mwaf);
+                                            if (tareCarResult.Succeed)
+                                            {
+                                                // 没有期限皮重权限
+                                                if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
+                                                {
+                                                    mwaf.weightType = "0";
+                                                    rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                                    PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                                }
+                                                // 有期限皮重权限 
+                                                else if (tareCarResult.Data.Count >= 1)
+                                                {
+                                                    //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
+                                                    string sqls = @"select t.matter_no id, t.matter_name text
+                                                                    from meter_base_matter_info t
+                                                                    where t.allowed_tare_weight = '1'
+                                                                    and t.valid_flag = '1'
+                                                                    and t.matter_no='" + rmScale.Data[0].matterNo + "'";
+
+                                                    PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
+                                                    RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
+                                                    if (rmT.Succeed)
+                                                    {
+                                                        if (rmT.Data != null && rmT.Data.Count > 0)
+                                                        {
+                                                            //判断是使用车号-物料-称点,还是使用车号-物料-路线判断期限皮
+                                                            #region 车号-物料-路线
+                                                            if (AppConfigCache.TareControlType == "1")
+                                                            {
+                                                                // 判断收发货单位是否具有期限皮重权限
+                                                                MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
+                                                                MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
+                                                                meterBaseUnitInfo.forwardingUnitName = rmScale.Data[0].forwardingUnitName;
+                                                                meterBaseUnitInfo.forwardingUnitNo = rmScale.Data[0].forwardingUnitNo;
+                                                                meterBaseUnitInfo.receivingUnitName = rmScale.Data[0].receivingUintName;
+                                                                meterBaseUnitInfo.receivingUnitNo = rmScale.Data[0].receivingUintNo;
+                                                                RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
+                                                                if (tareUnitResult.Succeed)
+                                                                {
+                                                                    if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
+                                                                    {
+                                                                        mwaf.weightType = "0";
+                                                                        // 只保存一次计量数据
+                                                                        rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                                                        PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                                                    }
+                                                                    else
+                                                                    {
+                                                                        MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
+                                                                        RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
+                                                                        if (termTareData.Succeed)
+                                                                        {
+                                                                            if (termTareData.Data == null)
+                                                                            {
+                                                                                mwaf.weightType = "0";
+                                                                                // 只保存一次计量数据
+                                                                                rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                                                                PbCache.ResultMessage = "计量成功,期限皮不存在或者已过期,请留存期限皮";
+                                                                                PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮不存在或者已过期请留存期限皮", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                                                            }
+                                                                            else
+                                                                            {
+                                                                                // 存在使用期限皮重权限,并使用期限皮重洁净
+                                                                                List<string> l = new List<string>();
+                                                                                l.Add("create");
+                                                                                //给一次数据匹配委托
+                                                                                EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
+                                                                                mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
+                                                                                mwaf.isPreScale = "1";
+                                                                                mwaf.weightType = "0";
+
+                                                                                PbCache.ResultMessage = "计量成功,期限皮结净";
+                                                                                PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+
+                                                                                rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                }
+                                                            }
+                                                            #endregion
+                                                            #region 车号-物料-称点
+                                                            if (AppConfigCache.TareControlType == "2")
+                                                            {
+                                                                // 判断称点是否具有期限皮重权限
+                                                                MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
+                                                                meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
+                                                                meterBaseSpotInfo.allowedTareWeight = "1";
+                                                                RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
+                                                                if (tareSpotResult.Succeed)
+                                                                {
+                                                                    if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
+                                                                    {
+                                                                        mwaf.weightType = "0";
+                                                                        // 只保存一次计量数据
+                                                                        rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                                                        PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                                                    }
+                                                                    else
+                                                                    {
+                                                                        MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
+                                                                        RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
+                                                                        if (termTareData.Succeed)
+                                                                        {
+                                                                            if (termTareData.Data == null)
+                                                                            {
+                                                                                mwaf.weightType = "0";
+                                                                                // 只保存一次计量数据
+                                                                                rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                                                                PbCache.ResultMessage = "计量成功,期限皮不存在或者已过期,请留存期限皮";
+                                                                                PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮不存在或者已过期请留存期限皮", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                                                            }
+                                                                            else
+                                                                            {
+                                                                                // 存在使用期限皮重权限,并使用期限皮重洁净
+                                                                                List<string> l = new List<string>();
+                                                                                l.Add("create");
+                                                                                //给一次数据匹配委托
+                                                                                EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
+                                                                                mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
+                                                                                mwaf.isPreScale = "1";
+                                                                                mwaf.weightType = "0";
+
+                                                                                PbCache.ResultMessage = "计量成功,期限皮结净";
+                                                                                PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+
+                                                                                rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                }
+                                                            }
+                                                            #endregion
+                                                        }
+                                                        else
+                                                        {
+                                                            mwaf.weightType = "0";
+                                                            // 只保存一次计量数据
+                                                            rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                                            PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
+                                                        }
+                                                    }
+                                                }
+                                            }
                                         }
+                                        //if (firstList[firstList.Count - 1].weightType == "0" && list[0].weightTypeNo == "001033002")
+                                        //{
+                                        //    //给一次数据匹配委托
+                                        //    mwaf.weightType = "0";
+
+                                        //    rt = saveMethod.doNetAddMuch(mwaf);
+                                        //}
                                     }
                                 }
                                 else