username@email.com
2025-11-05 f210a0e0fc0552bfacb2489de099bd512b8e74e7
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/TenderOrderService.cs
@@ -47,13 +47,15 @@
    private readonly SqlSugarRepository<SysRegion> _sysRegionRep;
    private readonly SqlSugarRepository<ChangeOrder> _ChangeOrderRep;
    private readonly SqlSugarRepository<TenderOrderBidding> _TenderOrderBiddingRep;
    private readonly SqlSugarRepository<CaigourenGuanli> _CaigourenGuanliRep;
    public TenderOrderService(SqlSugarRepository<TenderOrder> TenderOrderRep, ISqlSugarClient sqlSugarClient,
        SqlSugarRepository<SysDictData> sysDictDataRep,
        SysCacheService sysCacheService,
        SqlSugarRepository<SysRegion> sysRegionRep,
        SqlSugarRepository<ChangeOrder> changeOrderRep
        , SqlSugarRepository<TenderOrderBidding> TenderOrderBiddingRep)
        ,SqlSugarRepository<TenderOrderBidding> TenderOrderBiddingRep
        ,SqlSugarRepository<CaigourenGuanli> CaigourenGuanliRep)
    {
        _TenderOrderRep = TenderOrderRep;
        _sqlSugarClient = sqlSugarClient;
@@ -62,6 +64,7 @@
        _sysRegionRep = sysRegionRep;
        _ChangeOrderRep = changeOrderRep;
        _TenderOrderBiddingRep = TenderOrderBiddingRep;
        _CaigourenGuanliRep = CaigourenGuanliRep;
    }
@@ -245,9 +248,15 @@
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布招标!");
        }
        var query = _TenderOrderRep.AsQueryable()
            .Where(x => x.CusExtendId == customerExId)
            .Where(x => x.CusExtendId == customerExId && x.CustomerLogoinType == CustomerLogoinType)
            .WhereIF(!string.IsNullOrWhiteSpace(input.Xingzhengquyu), u => u.Xingzhengquyu.Contains(input.Xingzhengquyu.Trim()))
              .WhereIF(!string.IsNullOrWhiteSpace(input.Hangyepinmu), u => u.Hangyepinmu == input.Hangyepinmu.Trim())
               .WhereIF( input.OrderStatus.HasValue, u => u.OrderStatus == input.OrderStatus)
@@ -335,7 +344,7 @@
        var tenderOrderBiddings = await _sqlSugarClient.Queryable<TenderOrderBidding>()
            .Where(x => x.TenderId == input.Id)
            .Where(x=>x.IsTransfer == true)
            //.Where(x=>x.IsTransfer == true)
            .Select<TenderOrderBiddingOutput>().ToListAsync();
        if (tenderOrderBiddings != null)
@@ -493,9 +502,121 @@
        entity.OrderStatus = 1;
        entity.Tousu = false;
        entity.Zhiyi = false;
        entity.CustomerLogoinType = CustomerLogoinType;
        return await _TenderOrderRep.InsertAsync(entity);
    }
    /// <summary>
    /// 采购代理人增加非政府订单处理 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("招标代理机构增加采购人")]
    [ApiDescriptionSettings(Name = "AddOrUpdateCaigouren"), HttpPost]
    public async Task<bool> AddOrUpdateCaigouren(AddCaigourenGuanliInput input)
    {
        var entity = input.Adapt<CaigourenGuanli>();
        long userId = 0;
        long? usertrueId = null;
        if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId))
        {
            usertrueId = userId;
        }
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" )
        {
            throw Oops.Oh("只有登录角色招标代理机构 才能新增招标!");
        }
        var ssss = false;
        if (input.Id.HasValue)
        {
            var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
            entity.UpdateTime = DateTime.Now;
            entity.UpdateUserId = usertrueId;
            entity.UpdateUserName = RealName;
            entity.CusExtendId = customerExId;
            ssss = await _CaigourenGuanliRep.UpdateAsync(entity);
        }
        else
        {
            entity.Id = Guid.NewGuid();
            var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
            entity.CreateTime = DateTime.Now;
            entity.UpdateTime = DateTime.Now;
            entity.CreateUserId = usertrueId;
            entity.CreateUserName = RealName;
            entity.UpdateUserId = usertrueId;
            entity.UpdateUserName = RealName;
            entity.CusExtendId = customerExId;
            ssss = await _CaigourenGuanliRep.InsertAsync(entity);
        }
        return ssss;
    }
    /// <summary>
    /// 采购代理人删除采购人 ❌
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("采购代理人删除采购人")]
    [ApiDescriptionSettings(Name = "DeleteCaigouren"), HttpPost]
    public async Task DeleteCaigouren(DeleteTenderOrderInput input)
    {
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" )
        {
            throw Oops.Oh("只有登录角色招标代理机构才能删除采购人!");
        }
        var entity = await _sqlSugarClient.Queryable<CaigourenGuanli>().Where(x => x.Id == input.Id).FirstAsync() ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        await _CaigourenGuanliRep.DeleteAsync(entity);   //真删除
    }
    /// <summary>
    /// 招标代理分页查询采购人 🔖
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("招标代理分页查询采购人")]
    [ApiDescriptionSettings(Name = "PageCaigouren"), HttpPost]
    public async Task<SqlSugarPagedList<CaigourenGuanli>> PageCaigouren(PageCaigiourenInput input)
    {
        long userId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId);
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var query = _CaigourenGuanliRep.AsQueryable()
            .Where(x => x.CusExtendId == customerExId)
            .WhereIF(!string.IsNullOrWhiteSpace(input.Xingzhengquyu), u => u.Xingzhengquyu.Contains(input.Xingzhengquyu.Trim()))
                      .WhereIF(!string.IsNullOrWhiteSpace(input.Caigourenmingcheng), u => u.Caigourenmingcheng.Contains(input.Caigourenmingcheng.Trim()))
            .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, u => u.CreateTime >= input.CreateDateRange[0] && u.CreateTime <= input.CreateDateRange[1])
            .Select<CaigourenGuanli>();
        return await query.OrderBuilder(input, "", "CreateTime", true).ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// 采购代理人更新非政府订单处理 ✏️
@@ -960,11 +1081,11 @@
    /// <summary>
    /// 采购代理人确认供应商已支付报名费 ➕
    /// 采购代理人确认供应商报名 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("采购代理人确认供应商已支付报名费")]
    [DisplayName("采购代理人确认供应商报名")]
    [ApiDescriptionSettings(Name = "QuerenBaomingfei"), HttpPost]
    public async Task<bool> QuerenBaomingfei(QuerenSuplierBaomingfeiInput input)
    {
@@ -982,7 +1103,7 @@
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能确认供应商已支付报名费!");
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能确认供应商报名!");
        }
@@ -995,7 +1116,7 @@
        if (tenderOrderBidding != null && (tenderOrderBidding.IsTransfer.HasValue && tenderOrderBidding.IsTransfer.Value))
        {
            throw Oops.Oh("已经付款!");
            throw Oops.Oh("已经确认报名!");
        }
@@ -1006,10 +1127,10 @@
        }
        tenderOrderBidding.IsTransfer = true;
        tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
        tenderOrderBidding.Zhifujine = null;
        tenderOrderBidding.TransferTime = DateTime.Now;
        tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
        tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
        tenderOrderBidding.TransferNo = usertrueId.Value.ToString();// "BMF" + tenderOrderBidding.Id.ToString("N");
        tenderOrderBidding.TradeNo = "";// DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
        tenderOrderBidding.UpdateTime = DateTime.Now;
        tenderOrderBidding.UpdateUserId = usertrueId;
        tenderOrderBidding.UpdateUserName = RealName;
@@ -1019,13 +1140,13 @@
    /// <summary>
    /// 代理商发布中标文件 ➕
    /// 代理商发布中标公告 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("代理商发布中标文件")]
    [ApiDescriptionSettings(Name = "AddZhongbiao"), HttpPost]
    public async Task<bool> AddZhongbiao(OrderZhongbiaoInput input)
    [DisplayName("代理商发布中标公告")]
    [ApiDescriptionSettings(Name = "AddZhongbiaoGonggao"), HttpPost]
    public async Task<bool> AddZhongbiaoGonggao(OrderZhongbiaoInput input)
    {
@@ -1075,12 +1196,12 @@
            }
            if (tenderOrderBidding.IsTransfer != true)
            {
                throw Oops.Oh("没有支付报名费。不能中标!");
                throw Oops.Oh("没有报名确认。不能中标!");
            }
            if (string.IsNullOrEmpty(tenderOrderBidding.Touboaowenjian))
            {
                throw Oops.Oh("没有投标文件。不能中标!");
            }
            //if (string.IsNullOrEmpty(tenderOrderBidding.Touboaowenjian))
            //{
            //    throw Oops.Oh("没有投标文件。不能中标!");
            //}
          
        }
@@ -1090,10 +1211,8 @@
        tenderOrder.ZhongbiaoId = null;
        tenderOrder.ZhongbiaoId = usertrueId;
        tenderOrder.ZhongbiaoName = "";
        tenderOrder.Zhongbiaowenjian = input.Zhongbiaowenjian;
        tenderOrder.ZhongbiaowenjianName = input.ZhongbiaowenjianName;
        tenderOrder.Zhongbiaogonggao = input.Zhongbiaogonggao;
        tenderOrder.ZhongbiaogonggaoName = input.ZhongbiaogonggaoName;
        tenderOrder.ZhongbiaoDate = DateTime.Now;
@@ -1140,13 +1259,13 @@
    /// <summary>
    /// 采购代理人确认供应商已支付代理费 ➕
    /// 代理商发布中标文件 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("采购代理人确认供应商已支付代理费")]
    [ApiDescriptionSettings(Name = "QuerenDailifei"), HttpPost]
    public async Task<bool> QuerenDailifei(QuerenSuplierBaomingfeiInput input)
    [DisplayName("代理商发布中标文件")]
    [ApiDescriptionSettings(Name = "AddZhongbiaoWenjian"), HttpPost]
    public async Task<bool> AddZhongbiaoWenjian(OrderZhongbiaoWenjianInput input)
    {
@@ -1156,46 +1275,114 @@
        {
            usertrueId = userId;
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能确认供应商已支付代理费!");
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布中标文件!");
        }
        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.Id == input.TenderOrderBiddingId).FirstAsync();
        if (tenderOrderBidding == null)
        {
            throw Oops.Oh("没找到投标信息!");
        }
        if (tenderOrderBidding != null && (tenderOrderBidding.IsDailiTransfer.HasValue && tenderOrderBidding.IsDailiTransfer.Value))
        {
            throw Oops.Oh("已经付款!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == tenderOrderBidding.TenderId).FirstAsync();
        var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
        if (tenderOrder == null)
        {
            throw Oops.Oh("不存在的招标!");
        }
        if (tenderOrder.OrderStatus != 3)
        {
            throw Oops.Oh("没有发布中标公告!");
        }
        tenderOrderBidding.IsDailiTransfer = true;
        tenderOrderBidding.DailiZhifujine = 0;
        tenderOrderBidding.DailiTransferTime = DateTime.Now;
        tenderOrderBidding.DailiTransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
        tenderOrderBidding.DailiTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
        tenderOrderBidding.UpdateTime = DateTime.Now;
        tenderOrderBidding.UpdateUserId = usertrueId;
        tenderOrderBidding.UpdateUserName = RealName;
        return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
        tenderOrder.Zhongbiaowenjian = input.Zhongbiaowenjian;
        tenderOrder.ZhongbiaowenjianName = input.ZhongbiaowenjianName;
        tenderOrder.UpdateTime = DateTime.Now;
        tenderOrder.UpdateUserId = usertrueId;
        tenderOrder.UpdateUserName = RealName;
        await _TenderOrderRep.UpdateAsync(tenderOrder);
        return true;
    }
    ///// <summary>
    ///// 采购代理人确认供应商已支付代理费 ➕
    ///// </summary>
    ///// <param name="input"></param>
    ///// <returns></returns>
    //[DisplayName("采购代理人确认供应商已支付代理费")]
    //[ApiDescriptionSettings(Name = "QuerenDailifei"), HttpPost]
    //public async Task<bool> QuerenDailifei(QuerenSuplierBaomingfeiInput input)
    //{
    //    long userId = 0;
    //    long? usertrueId = null;
    //    if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId))
    //    {
    //        usertrueId = userId;
    //    }
    //    var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
    //    string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
    //    if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
    //    {
    //        throw Oops.Oh("只有登录角色招标代理机构或者采购人才能确认供应商已支付代理费!");
    //    }
    //    var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.Id == input.TenderOrderBiddingId).FirstAsync();
    //    if (tenderOrderBidding == null)
    //    {
    //        throw Oops.Oh("没找到投标信息!");
    //    }
    //    if (tenderOrderBidding != null && (tenderOrderBidding.IsDailiTransfer.HasValue && tenderOrderBidding.IsDailiTransfer.Value))
    //    {
    //        throw Oops.Oh("已经付款!");
    //    }
    //    var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == tenderOrderBidding.TenderId).FirstAsync();
    //    if (tenderOrder == null)
    //    {
    //        throw Oops.Oh("不存在的招标!");
    //    }
    //    tenderOrderBidding.IsDailiTransfer = true;
    //    tenderOrderBidding.DailiZhifujine = 0;
    //    tenderOrderBidding.DailiTransferTime = DateTime.Now;
    //    tenderOrderBidding.DailiTransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
    //    tenderOrderBidding.DailiTradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
    //    tenderOrderBidding.UpdateTime = DateTime.Now;
    //    tenderOrderBidding.UpdateUserId = usertrueId;
    //    tenderOrderBidding.UpdateUserName = RealName;
    //    return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
    //}
}