/// <summary> /// 删除一条或多条数据 /// </summary> /// <returns></returns> public async Task <ApiResult <string> > DeleteAsync(string parm) { var res = new ApiResult <string>() { data = "1", statusCode = 200 }; try { var list = Utils.StrToListString(parm); var dbres = ErpReturnOrderDb.Update(m => new ErpReturnOrder() { IsDel = true }, m => list.Contains(m.Guid)); if (!dbres) { res.statusCode = (int)ApiEnum.Error; res.message = "删除数据失败~"; } } catch (Exception ex) { res.statusCode = (int)ApiEnum.Error; res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(await Task.Run(() => res)); }
/// <summary> /// 查询今日待办事项,销售统计 /// </summary> /// <returns></returns> public Task <ApiResult <BackLogReport> > GetBackLogReport() { var res = new ApiResult <BackLogReport>() { statusCode = (int)ApiEnum.Error }; try { DateTime dayTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToShortDateString() + " 00:00:00"); string startWeek = Utils.GetMondayDate().ToShortDateString(); string endWeek = Utils.GetSundayDate().AddDays(1).ToShortDateString(); //昨天销售额 var yesterDayTime = Convert.ToDateTime(DateTime.Now.ToShortDateString() + " 00:00:00"); var yesterDay = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, yesterDayTime)).Sum(m => m.RealMoney); //上周销售额 var yesterWeekTimeStart = Utils.GetMondayDate().AddDays(-7).ToShortDateString(); var yesterWeekTimeEnd = Utils.GetMondayDate().AddDays(-1).ToShortDateString(); var yesterWeek = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.Between(m.AddDate, yesterWeekTimeStart, yesterWeekTimeEnd)).Sum(m => m.RealMoney); //上个月销售额 var yesterMonthTime = DateTime.Now.AddMonths(-1); var yesterMonth = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, yesterMonthTime, DateType.Month)).Sum(m => m.RealMoney); var model = new BackLogReport { //今日返货数量 ReturnCount = ErpReturnOrderDb.Count(m => SqlFunc.DateIsSame(m.AddDate, dayTime)), //今日退货数量 BackCount = ErpBackGoodsDb.Count(m => SqlFunc.DateIsSame(m.AddDate, dayTime)), //库存报警 StockPoliceCount = ErpGoodsSkuDb.Count(m => m.StockSum < 10), //今日加入会员 JoinUserCount = ErpShopUserDb.Count(m => SqlFunc.DateIsSame(m.RegDate, dayTime)), //今日销售金额 DaySaleMoney = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, dayTime)).Sum(m => m.RealMoney), //本周销售金额 WeekSaleMoney = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.Between(m.AddDate, Utils.GetMondayDate(), Utils.GetMondayDate().AddDays(7))).Sum(m => m.RealMoney), //本月销售金额 MonthSaleMoney = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, dayTime, DateType.Month)).Sum(m => m.RealMoney) }; //日同比 同比增长率=(本年的指标值-去年同期的值)÷去年同期的值*100% model.DayOnYear = yesterDay == 0?0:Convert.ToDouble((model.DaySaleMoney - yesterDay) / yesterDay * 100); //周同比 model.WeekOnYear = yesterWeek == 0 ? 0 : Convert.ToDouble((model.WeekSaleMoney - yesterWeek) / yesterWeek * 100); //月同比 model.MonthOnYear = yesterMonth == 0 ? 0 : Convert.ToDouble((model.MonthSaleMoney - yesterMonth) / yesterMonth * 100); res.data = model; res.statusCode = (int)ApiEnum.Status; } catch (Exception ex) { res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(Task.Run(() => res)); }
/// <summary> /// 添加一条数据 /// </summary> /// <returns></returns> public async Task <ApiResult <string> > AddAsync(ErpReturnOrder parm, string goodsJson) { var res = new ApiResult <string>() { data = "1", statusCode = (int)ApiEnum.Error }; try { parm.Guid = Guid.NewGuid().ToString(); //判断返货订单字符串是否为空 if (string.IsNullOrEmpty(goodsJson)) { res.message = "返货订单里面的商品不能为空~"; return(await Task.Run(() => res)); } var isStockSuccess = true; //解析字符串转换成List对象 var roGoodsList = JsonConvert.DeserializeObject <List <ErpReturnGoods> >(goodsJson); var guidArray = roGoodsList.Select(m => m.GoodsGuid).ToList(); //根据返货的商品,查询平台的条形码 var goodsSkuList = ErpGoodsSkuDb.GetList(m => guidArray.Contains(m.Guid)); //根据返货的商品,查询加盟商的条形码 var shopsSkuList = ErpShopSkuDb.GetList(m => guidArray.Contains(m.SkuGuid) && m.ShopGuid == parm.ShopGuid); //验证返货商品的数量是否大于库存数量 foreach (var item in roGoodsList.GroupBy(m => m.GoodsGuid).Select(m => new ErpReturnGoods { GoodsGuid = m.Key, ReturnCount = m.Sum(g => g.ReturnCount) }).ToList()) { var shopStockSum = shopsSkuList.Find(m => m.SkuGuid == item.GoodsGuid); if (shopStockSum.Stock < item.ReturnCount) { isStockSuccess = false; } //加盟商条形码表,减少返货的库存 shopsSkuList.Find(m => m.SkuGuid == item.GoodsGuid).Stock = shopStockSum.Stock - item.ReturnCount; //平台条形码表,增加返货的库存 var goodsStock = goodsSkuList.Find(m => m.Guid == item.GoodsGuid); goodsSkuList.Find(m => m.Guid == item.GoodsGuid).StockSum = goodsStock.StockSum + item.ReturnCount; } if (!isStockSuccess) { res.message = "返货的商品数量大于库存数量"; return(await Task.Run(() => res)); } foreach (var item in roGoodsList) { item.OrderGuid = parm.Guid; item.Guid = Guid.NewGuid().ToString(); item.ShopGuid = parm.ShopGuid; } parm.GoodsSum = roGoodsList.Sum(m => m.ReturnCount); //查询今天返货数量 DateTime dayTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToShortDateString() + " 00:00:00"); var dayCount = ErpReturnOrderDb.Count(m => SqlFunc.DateIsSame(m.AddDate, dayTime)); parm.Number = "RO-" + DateTime.Now.ToString("yyyyMMdd") + "-" + (1001 + dayCount); var result = Db.Ado.UseTran(() => { //添加订单 Db.Insertable(parm).ExecuteCommand(); //添加订单商品 Db.Insertable(roGoodsList).ExecuteCommand(); //修改平台库存 Db.Updateable(goodsSkuList).ExecuteCommand(); //修改加盟商库存 Db.Updateable(shopsSkuList).ExecuteCommand(); }); res.statusCode = (int)ApiEnum.Status; if (!result.IsSuccess) { res.statusCode = (int)ApiEnum.Error; res.message = result.ErrorMessage; } } catch (Exception ex) { res.statusCode = (int)ApiEnum.Error; res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(await Task.Run(() => res)); }
/// <summary> /// 修改一条数据 /// </summary> /// <returns></returns> public async Task <ApiResult <string> > ModifyStatusAsync(ErpReturnGoods parm) { var res = new ApiResult <string>() { data = "1", statusCode = (int)ApiEnum.Error }; try { var model = ErpReturnGoodsDb.GetSingle(m => m.Guid == parm.Guid); if (model != null) { //查询加盟商库存中,该条商品的信息 var shopGoods = ErpShopSkuDb.GetSingle(m => m.ShopGuid == model.ShopGuid && m.SkuGuid == model.GoodsGuid); //查询平台 该条商品的信息 var platformGoods = ErpGoodsSkuDb.GetSingle(m => m.Guid == model.GoodsGuid); //查询返货订单信息 var returnOrderModel = ErpReturnOrderDb.GetSingle(m => m.Guid == model.OrderGuid); if (model.Status == 1) { //如果状态修改为非正常 需要增加加盟商库存 减少平台库存 model.Status = 2; //加盟商增加 shopGoods.Stock += model.ReturnCount; //需要判断平台库存是否足够 if (platformGoods.StockSum < model.ReturnCount) { res.message = "平台库存不足!"; return(await Task.Run(() => res)); } //平台库存减少 platformGoods.StockSum -= model.ReturnCount; //减少返货订单总数 returnOrderModel.GoodsSum -= model.ReturnCount; } else { //如果状态修改为非正常 需要减少加盟商库存 增加平台库存 model.Status = 1; //需要判断加盟商库存是否足够 if (shopGoods.Stock < model.ReturnCount) { res.message = "加盟商库存不足!"; return(await Task.Run(() => res)); } //加盟商减少 shopGoods.Stock -= model.ReturnCount; //平台库存增加 platformGoods.StockSum += model.ReturnCount; //增加返货订单总数 returnOrderModel.GoodsSum += model.ReturnCount; } var result = Db.Ado.UseTran(() => { //修改加盟商信息 Db.Updateable(shopGoods).ExecuteCommand(); //修改平台库存 Db.Updateable(platformGoods).ExecuteCommand(); //修改返货订单信息 Db.Updateable(returnOrderModel).ExecuteCommand(); //修改返货商品 Db.Updateable(model).ExecuteCommand(); }); if (!result.IsSuccess) { res.message = result.ErrorMessage; } res.statusCode = (int)ApiEnum.Status; } else { res.message = "没有查询到该条数据~"; } } catch (Exception ex) { res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(await Task.Run(() => res)); }