Пример #1
0
        public JsonResult PostData(IList <FinanceQueryEntity> list)
        {
            ResultEntity result;
            var          errorList = new List <FinanceEntityView>();

            // 添加代码检查数据合理性
            // 1. check所有的lillyID是否是在职的
            //var allUsers = WeChatCommonService.lstUser;
            foreach (var l in list)
            {
                //var user = allUsers.FirstOrDefault(t => t.userid == l.LillyId);
                var financeQueryEntityView = (FinanceEntityView) new FinanceEntityView().ConvertAPIModel(l);
                try
                {
                    //在LocalSAD做完之前,先不验证用户的合法性
                    //if (user == null)
                    //{
                    //    financeQueryEntityView.Error += "##System ID not found";
                    //}

                    // TEA No 应该是TEA开头+9位数字
                    if (!(financeQueryEntityView.TEANO.StartsWith("TEA") && financeQueryEntityView.TEANO.Length == 12))
                    {
                        financeQueryEntityView.Error += "不合法的TEANO<br/>";
                    }

                    // 2. check当前导入的这些,有没有ContractNo+lillyID 和以前不同的,如果以前是空则通过
                    var s = _financeService.Repository.Entities.FirstOrDefault(t => t.TEANO == financeQueryEntityView.TEANO && t.LillyId != financeQueryEntityView.LillyId);
                    if (s != null)
                    {
                        financeQueryEntityView.Error += "系统ID和TEANo不匹配<br/>";
                    }

                    // 3. 日期在3个月之类
                    if (l.ReceiveDate.AddMonths(4) < DateTime.Now)
                    {
                        financeQueryEntityView.Error += "收单日期不能早于当前时间3个月<br/>";
                    }
                    if (l.ReceiveDate > DateTime.Now)
                    {
                        financeQueryEntityView.Error += "收单日期不能晚于当前时间<br/>";
                    }
                }
                catch (Exception ex)
                {
                    financeQueryEntityView.Error += "其他错误<br/>" + ex.Message;
                }

                if (!string.IsNullOrEmpty(financeQueryEntityView.Error))
                {
                    errorList.Add(financeQueryEntityView);
                }
            }

            if (errorList.Count > 0)
            {
                return(Json(new { sEcho = Request["draw"], aaData = errorList }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                result = _financeService.AddOrUpdate(list);
            }
            catch (Exception ex)
            {
                LogManager.GetLogger(this.GetType()).Debug(string.Format("Import Failed. The reason is", ex.Message));
                return(ErrorNotification("导入失败 , 请检查本地数据源."));

                throw;
            }

            return(Json(new { InsertCount = result.InsertCount, UpdateCount = result.UpdateCount }, JsonRequestBehavior.AllowGet));
        }