/// <summary>
        /// 数据验证
        /// </summary>
        /// <param name="input">条件参数</param>
        /// <param name="errMsgList">错误信息集合</param>
        /// <returns></returns>
        private async Task <string> CreateValidateAsync(Desc_Customer_Material_AppCreateInputDto input, List <string> errMsgList)
        {
            try
            {
                await Task.Yield();

                return(string.Join(',', errMsgList));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        /// <summary>
        /// 新增客户-物资
        /// </summary>
        /// <param name="input">条件参数</param>
        /// <returns></returns>
        public async Task <ActionResult> AddDescCustomerMaterial(Desc_Customer_Material_AppCreateInputDto input)
        {
            try
            {
                var result = await _appService.CreateDescCustomerMaterialAsync(input);

                return(Ok(JsonUtils.SerializeObject(true, "success")));
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("异常消息:{0} {1}", ex.Message, ex.InnerException?.Message);
                return(BadRequest(JsonUtils.SerializeObject(false, "failed", ex.Message)));
            }
        }
        /// <summary>
        /// 客户物资导入验证
        /// </summary>
        /// <param name="input"></param>
        /// <param name="dataTable"></param>
        /// <param name="errorTable"></param>
        /// <param name="successData"></param>
        /// <param name="materialInfoList"></param>
        /// <returns></returns>
        public async Task <string> ImportValidateAsync(Desc_Customer_Material_AppCreateInputDto input, DataTable dataTable, DataTable errorTable, DataTable successData, List <MaterialInfo> materialInfoList)
        {
            try
            {
                string errMsg     = string.Empty;
                var    errMsgList = new List <string>();
                errMsg = await ImportValidateAsync(input, dataTable, errorTable, successData, materialInfoList, errMsgList);

                return(errMsg);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 新增验证
        /// </summary>
        /// <param name="input">条件参数</param>
        /// <returns></returns>
        public async Task <string> CreateValidateAsync(Desc_Customer_Material_AppCreateInputDto input)
        {
            try
            {
                string errMsg     = string.Empty;
                var    errMsgList = new List <string>();
                errMsg = await CreateValidateAsync(input, errMsgList);

                return(errMsg);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #5
0
        /// <summary>
        /// 导入客户物资关系
        /// </summary>
        /// <param name="input">条件参数</param>
        /// <returns></returns>
        public async Task <ActionResult> ImportCustomerMaterial(Desc_Customer_Material_AppCreateInputDto input)
        {
            try
            {
                var fileList = Request.Form.Files;
                if (fileList == null || fileList.Count == 0)
                {
                    return(null);
                }
                var file     = fileList[0];
                var fileName = file.FileName;
                var stream   = file.OpenReadStream();

                var result = await _appService.ImportCustomerMaterial(stream, fileName, input);

                return(Ok(JsonUtils.SerializeObject(result, "failed")));
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("异常消息:{0} {1}", ex.Message, ex.InnerException?.Message);
                return(BadRequest(JsonUtils.SerializeObject(false, "failed", ex.Message)));
            }
        }
        /// <summary>
        /// 数据验证
        /// </summary>
        /// <param name="input"></param>
        /// <param name="dataTable"></param>
        /// <param name="errorTable"></param>
        /// <param name="successData"></param>
        /// <param name="materialInfoList"></param>
        /// <param name="errMsgList"></param>
        /// <returns></returns>
        private async Task <string> ImportValidateAsync(Desc_Customer_Material_AppCreateInputDto input, DataTable dataTable, DataTable errorTable, DataTable successData, List <MaterialInfo> materialInfoList, List <string> errMsgList)
        {
            try
            {
                if (dataTable.Rows.Count > 0)
                {
                    DataTable filterSuccess = dataTable.Clone();
                    //校验excel数据是否重复
                    await ImportExcelValidateAsync(dataTable, errorTable, filterSuccess);

                    if (errorTable.Rows.Count > 0)
                    {
                        return(null);
                    }

                    //校验物资信息是否存在
                    foreach (DataRow row in filterSuccess.Rows)
                    {
                        string materialname = ConvertUtils.ToStrDef(row["materialname"]).Trim();
                        string skuid        = ConvertUtils.ToStrDef(row["skuid"]).Trim();

                        MaterialInfo material = materialInfoList.Find(d => d.Name == materialname && d.Skuid == skuid);
                        if (material == null)
                        {
                            row["ErrorMse"] = string.Format(@"客户没有维护物资:【{0}】,SKUID:【{1}】信息,请维护", materialname, skuid);
                            errorTable.ImportRow(row);
                        }
                        else
                        {
                            //判断客户物资关系是否存在
                            var count = await _repository.CountAsync(d => d.Warehouseid == input.Warehouseid && d.TenantId == input.TenantId && d.Customerid == input.Customerid && d.Materialid == material.Id);

                            if (count > 0)
                            {
                                //存在
                                row["ErrorMse"] = string.Format(@"已存在客户物资关系:【{0}】,SKUID:【{1}】,无法重复维护", materialname, skuid);
                                errorTable.ImportRow(row);
                            }
                            else
                            {
                                row["Materialid"]     = material.Id;
                                row["Customerid"]     = input.Customerid;
                                row["Warehouseid"]    = input.Warehouseid;
                                row["TenantId"]       = input.TenantId;
                                row["OperaterUserId"] = input.OperaterUserId;
                                successData.ImportRow(row);
                            }
                        }
                    }
                }
                else
                {
                    return(null);
                }

                return(string.Join(',', errMsgList));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }