| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 | using OASystem.Domain.Common;using OASystem.Domain.Dtos.Business;using OASystem.Domain.Entities.Business;using OASystem.Domain.ViewModels.Business;using OASystem.Domain.ViewModels.Resource;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OASystem.Infrastructure.Repositories.Business{    public class CommonBusRepository : BaseRepository<EntityBase, ViewBase>    {        public CommonBusRepository(SqlSugarClient sqlSugar) : base(sqlSugar)        {        }        #region 可选物料集合        /// <summary>        /// 获取可选物料集合        /// </summary>        /// <returns></returns>        public async Task<List<OptionalBusRangeView>> GetViewList_OptionalItem()        {            List<OptionalBusRangeView> result = new List<OptionalBusRangeView>();            //获取业务范围            string sqlRange = string.Format(@" Select * From Sys_SetData With(Nolock) Where STid = {0} And IsDel=0 ", SetDataTypeDefaultParam.Media);            List<Sys_SetData> entitySetDataList = _sqlSugar.SqlQueryable<Sys_SetData>(sqlRange).ToList();            //获取物料信息            List<Res_ItemInfoView> itemSource = new List<Res_ItemInfoView>();            string sqlItemList = string.Format(@" Select d.ItemName,d.Id as ItemId,s.Id as ItemTypeSetDataId,d.VendorId,v.FullName as VendorFullName, v.ShortName as VendorShortName,t.Id as ItemTypeId,t.TypeName as ItemTypeName, d.MinRate,d.MaxRate,d.CurrRate,d.RemarkFrom Res_ItemDetail as d With(Nolock) Inner Join Res_ItemType as t With(Nolock) On d.ItemTypeId = t.IdInner Join Res_ItemVendor as v With(Nolock) On d.VendorId=v.IdInner Join Sys_SetData as s With(Nolock) On t.SdId=s.Id ");            itemSource = _sqlSugar.SqlQueryable<Res_ItemInfoView>(sqlItemList).ToList();            if (itemSource.Count > 0)            {                foreach (var item in entitySetDataList)                {                    List<Res_ItemInfoView> tempList = itemSource.Where(s => s.ItemTypeSetDataId == item.Id).ToList();                    if (tempList.Count > 0)                    {                        OptionalBusRangeView _tempView = new OptionalBusRangeView()                        {                            SdId = item.Id,                            SdName = item.Name                        };                        List<OptionalItemTypeView> optionalItemTypeViewList = new List<OptionalItemTypeView>();                        var itemGroups = tempList.GroupBy(p => p.ItemTypeId);                        foreach (var group in itemGroups)                        {                            OptionalItemTypeView tempOptional = new OptionalItemTypeView();                            tempOptional.ItemTypeId = group.Key;                            tempOptional.ItemTypeName = group.First().ItemTypeName;                            tempOptional.ItemList = new List<Res_ItemInfoView>(group.ToList());                            optionalItemTypeViewList.Add(tempOptional);                        }                        _tempView.ItemTypeList = new List<OptionalItemTypeView>(optionalItemTypeViewList);                        result.Add(_tempView);                    }                }            }            return result;        }        #endregion        #region 会务物料采购清单        /// <summary>        /// 新增会务物料采购清单和具体采购物料信息        /// </summary>        /// <param name="_dto"></param>        /// <returns></returns>        public async Task<int> Insert_ConfItemList(Edit_OptionalItemListDto _dto)        {            Bus_ConfItemListInfo _check1 = await Query<Bus_ConfItemListInfo>(s => s.Diid == _dto.DiId).FirstAsync();            if (_check1 != null)            {                return -2;//已存在数据,无法新增,请检查BusController中非空验证            }            Bus_ConfItemListInfo _insert = new Bus_ConfItemListInfo();            _insert.Diid = _dto.DiId;            _insert.TotalCost = _dto.ConfItemList.Sum(s => (s.CurrCost * s.Count));            BeginTran();            try            {                int result = await _sqlSugar.Insertable(_insert).ExecuteReturnIdentityAsync();                if (result > 0)                {                    List<Bus_ConfItemInfo> insertList = new List<Bus_ConfItemInfo>();                    foreach (var item in _dto.ConfItemList)                    {                        Bus_ConfItemInfo temp = new Bus_ConfItemInfo();                        temp.ConfListId = result;                        temp.Count = item.Count;                        temp.CurrCost = item.CurrCost;                        temp.ItemId = item.ItemId;                        temp.OpRemark = item.OpRemark;                        insertList.Add(temp);                    }                    _sqlSugar.Insertable(insertList).UseParameter().ExecuteCommand();                    return 0;                }                else                {                    return -3;//保存清单主体数据失败                }            }            catch (Exception ex)            {                RollbackTran();                return -4;            }            //return -1;        }        /// <summary>        /// 修改会务物料采购清单和具体采购物料信息(未存在删除、暂时)        /// </summary>        /// <param name="_dto"></param>        /// <returns></returns>        public async Task<int> Edit_ConfItemList(Edit_OptionalItemListDto _dto)        {            Bus_ConfItemListInfo _eidt = await Query<Bus_ConfItemListInfo>(s => s.Id == _dto.ConfItemListId).FirstAsync();            if (_eidt == null)            {                return -2;//不存在数据,无法修改,请检查BusController中非空验证            }            _eidt.TotalCost = _dto.ConfItemList.Sum(s => (s.CurrCost * s.Count));            BeginTran();            try            {                int result = await _sqlSugar.Updateable<Bus_ConfItemListInfo>()                            .SetColumns(it => it.TotalCost == _eidt.TotalCost)                            .Where(s => s.Id == _dto.ConfItemListId)                            .ExecuteCommandAsync();                _sqlSugar.Deleteable<Bus_ConfItemInfo>().Where(it => it.ConfListId == _dto.ConfItemListId).ExecuteCommand();                if (result > 0)                {                    List<Bus_ConfItemInfo> insertList = new List<Bus_ConfItemInfo>();                    foreach (var item in _dto.ConfItemList)                    {                        Bus_ConfItemInfo temp = new Bus_ConfItemInfo();                        temp.ConfListId = result;                        temp.Count = item.Count;                        temp.CurrCost = item.CurrCost;                        temp.ItemId = item.ItemId;                        temp.OpRemark = item.OpRemark;                        insertList.Add(temp);                    }                    _sqlSugar.Insertable(insertList).UseParameter().ExecuteCommand();                    return 0;                }                else                {                    return -3;//保存清单主体数据失败                }            }            catch (Exception ex)            {                RollbackTran();                return -4;            }            //return -1;        }        #endregion    }}
 |