using com.hnshituo.core.webapp.vo;
using Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MeterConditionLibrary
{
    /// <summary>
    /// 九钢，验证一次计量的计量区域
    /// 1、一次计量数据（含期限皮重）要记录所在区域===》按照计量点进行区分；
    /// 2、若二次计量数据的计量区域与一次计量的计量区域不一致，则禁止自助计量；
    /// 3、在监控界面添加“不验证计量区域”的设置，勾选后，当次计量有效；
    /// 4、计量区域分为“东区”、“西区”、“联达区”
    /// </summary>
    public class validMeterArea
    {
        public static int iCnt = 0;

        /// <summary>
        /// 九钢，验证一次计量的计量区域
        /// 1、一次计量数据（含期限皮重）要记录所在区域===》按照计量点进行区分；
        /// 2、若二次计量数据的计量区域与一次计量的计量区域不一致，则禁止自助计量；
        /// 3、在监控界面添加“不验证计量区域”的设置，勾选后，当次计量有效；
        /// 4、计量区域分为“东区”、“西区”、“联达区”
        /// </summary>
        /// <param name="first"></param>
        public void ValidMethod(string firstBaseSpotNo)
        {

            //计量区域验证：validMeterArea == "0"表示不验证；PbCache.isNotValid表示远程计量
            if (PbCache.monitor.validMeterArea == "0" || PbCache.isNotValid)
            {
                PbCache.monitorResult.valid_meter_area = true;
            }
            else
            {
                MeterBaseSpotInfo firstSpotInfo = new MeterBaseSpotInfo();
                MeterBaseSpotInfoService Pservice = new MeterBaseSpotInfoService();
                RESTfulResult<List<MeterBaseSpotInfo>> rms = Pservice.doQueryWf(new MeterBaseSpotInfo {baseSpotNo= firstBaseSpotNo, validFlag = "1" });
                if (rms.Succeed && rms.Data != null && rms.Data.Count > 0)
                {
                    firstSpotInfo = rms.Data[0];
                }
                else
                {
                    PbCache.monitorResult.valid_meter_area = false;
                    PbCache.ResultMessage = "未查询到一次计量点【" + firstBaseSpotNo + "】的计量区域，请点击【语音求助】，联系司秤工处理！";
                }

                if (firstSpotInfo.spotAreaNo.Equals(PbCache.sportInfo.spotAreaNo))
                {
                    PbCache.monitorResult.valid_meter_area = true;
                }
                else
                {
                    PbCache.monitorResult.valid_meter_area = false;
                    PbCache.ResultMessage = "计量点【" + PbCache.sportInfo.baseSpotName + "】的计量区域【" + PbCache.sportInfo.spotAreaName + "】," +
                        "与一次计量点【" + firstSpotInfo.baseSpotName + "】的计量区域【" + firstSpotInfo.spotAreaName + "】不一致，禁止自助计量，" +
                        "请点击【语音求助】，联系司秤工处理！";

                }
            }
        }
    }
}
