using QM.KJGH.Model.KJGH; using QM.KJGH.Model.View; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WS; using WS.IO.Office; namespace QM.KJGH.CGGL.Model.QxCghj { public class JcyjzbReportIo { /// /// 指标编号(2021003) /// [Export("指标编号", 1)] public string code { set; get; } /// /// 行政区划代码(150100) /// [Export("行政区划代码", 2)] public string divisionCode { set; get; } /// /// 监测时间(注:监测时间为监测值的时间更新频率为年度时, /// 监测时间仅填写年份,如2020; /// 更新频率为季度时,填写年度-季度,如2020-2; /// 更新频率为月度时,填写年度-月度,如2020-03;) /// [Export("监测时间", 3)] public string monitorTime { set; get; } /// /// 监测数值(注:如果监测值填写了,则上面监测时间字段也必须填写。反之亦然,否则接口会过滤) /// [Export("监测值", 4)] public string monitorValue { set; get; } /// /// 规划年份(注:如果规划年份填写了,则下面规划值也必须填写。反之亦然,否则接口会过滤。如2020) /// [Export("近期规划年", 5)] public string targetYear { set; get; } /// /// 规划值(注:如果规划值填写了,则上面规划年份也必须填写。反之亦然,否则接口会过滤。如12.32) /// [Export("近期规划值", 6)] public string targetValue { set; get; } /// /// 基期年(注:基期年需要更新则上面两个规划年份、规划值都必须填写,否则接口会过滤。如2020) /// [Export("基期年", 7)] public string baseYear { set; get; } /// /// 基期值(注:基期年填写了,则上面基期年也必须填写。反之亦然,否则接口会过滤。如2020) /// [Export("基期值", 8)] public string baseValue { set; get; } /// /// 远期规划年份(注:如果远期规划年份填写了,则下面远期规划值也必须填写。反之亦然,否则接口会过滤。如2050) /// [Export("远期规划目标年", 9)] public string forwardTargetYear { set; get; } /// /// 远期规划值(注:如果远期规划值填写了,则上面远期规划年份也必须填写。反之亦然,否则接口会过滤。如12.32) /// [Export("远期规划目标值", 10)] public string forwardTargetValue { set; get; } public string JCSJLX { get { var len = monitorTime.Trim().Length; switch (len) { case 4: return "年"; case 6: return "季"; case 7: return "月"; default: return ""; } } } /// /// 检查数据 /// /// public string CheckData(Dictionary listZbx, Dictionary listXzq) { List msgs = new List(); #region 必填性 if (string.IsNullOrWhiteSpace(code)) msgs.Add($"指标编号(code)不能为空"); if (string.IsNullOrWhiteSpace(divisionCode)) msgs.Add($"行政区划代码(divisionCode)不能为空"); if (string.IsNullOrWhiteSpace(monitorTime)) msgs.Add($"监测时间(monitorTime)不能为空"); if (string.IsNullOrWhiteSpace(monitorValue)) msgs.Add($"监测值(monitorValue)不能为空"); #endregion #region 完整性 if (string.IsNullOrWhiteSpace(targetYear) != string.IsNullOrWhiteSpace(targetValue)) msgs.Add($"近期规划年(targetYear)、近期规划值(targetValue)必须都为空或都不为空"); if (string.IsNullOrWhiteSpace(baseYear) != string.IsNullOrWhiteSpace(baseValue)) msgs.Add($"基期年(baseYear)、基期值(baseValue)必须都为空或都不为空"); if (string.IsNullOrWhiteSpace(forwardTargetYear) != string.IsNullOrWhiteSpace(forwardTargetValue)) msgs.Add($"远期规划目标年(forwardTargetYear)、远期规划目标值(forwardTargetValue)必须都为空或都不为空"); #endregion #region 正确性 if (!string.IsNullOrWhiteSpace(code) && !listZbx.Keys.Contains(code)) msgs.Add($"指标编号({code})不存在"); if (!string.IsNullOrWhiteSpace(divisionCode) && !listXzq.Keys.Contains(divisionCode)) msgs.Add($"行政区划代码({divisionCode})不存在"); #endregion if (msgs.Count > 0) return msgs.Join("、"); return string.Empty; } } }