username@email.com
2025-11-05 f210a0e0fc0552bfacb2489de099bd512b8e74e7
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/TenderOrderService.cs
@@ -31,6 +31,7 @@
using MimeKit;
using static FZCZTB.TSCL.Application.ChangeTenderOrderOut;
using FZCZTB.NET.MD.CutomerMd.Extend;
using FZCZTB.NET.MD.CutomerMd;
namespace FZCZTB.TSCL.Application;
/// <summary>
@@ -46,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;
@@ -61,6 +64,7 @@
        _sysRegionRep = sysRegionRep;
        _ChangeOrderRep = changeOrderRep;
        _TenderOrderBiddingRep = TenderOrderBiddingRep;
        _CaigourenGuanliRep = CaigourenGuanliRep;
    }
@@ -241,8 +245,18 @@
        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);
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布招标!");
        }
        var query = _TenderOrderRep.AsQueryable()
            .Where(x => x.CreateUserId == userId)
            .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)
@@ -330,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)
@@ -354,7 +368,17 @@
                {
                    tenderOrderBiddingOutput.IsTransferName = "否";
                }
                var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.CustomerId == tenderOrderBiddingOutput.CreateUserId && x.TransactionCode == "GYS" && x.steps == CusExtendStep.Pass).FirstAsync();
                if (tenderOrderBiddingOutput.IsDailiTransfer.HasValue && tenderOrderBiddingOutput.IsDailiTransfer.Value)
                {
                    tenderOrderBiddingOutput.IsDailiTransferName = "是";
                }
                else
                {
                    tenderOrderBiddingOutput.IsDailiTransferName = "否";
                }
                var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.Id == tenderOrderBiddingOutput.CusExtendId).FirstAsync();
                if (cusExtend != null)
                {
                    tenderOrderBiddingOutput.ChangshangName = cusExtend.EnterpriseName;
@@ -368,6 +392,75 @@
        return tenderOrderOutput;
    }
    /// <summary>
    /// 采购代理人增加非政府订单处理获取联系方式
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("采购代理人增加非政府订单获取联系方式")]
    [ApiDescriptionSettings(Name = "Addgetcontact"), HttpPost]
    public async Task<TenderOrderOutput> Addgetcontact()
    {
        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;
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能获取联系方式!");
        }
        var tenderOrderOutput = new TenderOrderOutput();
        var fBS_CusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>()
         .Where(x => x.Id == customerExId).FirstAsync();
        if (fBS_CusExtend != null)
        {
            if (CustomerLogoinType == "DLJG" )
            {
                tenderOrderOutput.Dailijigoumingcheng = fBS_CusExtend.EnterpriseName;
                tenderOrderOutput.DailiLianxiren = fBS_CusExtend.OperatorName;
                tenderOrderOutput.DailiLianxidianhua = fBS_CusExtend.OperatorPhone;
                tenderOrderOutput.DailiDianziyoujian = fBS_CusExtend.EnterpriseEmail;
                tenderOrderOutput.DailiTongxindizhi = fBS_CusExtend.Residence;
                tenderOrderOutput.DailiXiangmujingli = "";
                tenderOrderOutput.DailijingliLianxidianhua = "";
            }
            else if (CustomerLogoinType == "CGR")
            {
                tenderOrderOutput.Caigourenmingcheng = fBS_CusExtend.EnterpriseName;
                tenderOrderOutput.Xingzhengquyu = "";
                tenderOrderOutput.XingzhengquyuName = "";
                tenderOrderOutput.Jigoudaima = fBS_CusExtend.UnifiedSocialCreditCode;
                tenderOrderOutput.Daimaleixing = "";
                tenderOrderOutput.DaimaleixingName = "";
                tenderOrderOutput.Lianxiren = fBS_CusExtend.OperatorName;
                tenderOrderOutput.Lianxidianhua = fBS_CusExtend.OperatorPhone;
                tenderOrderOutput.Tongxindizhi = fBS_CusExtend.Residence;
                tenderOrderOutput.Dianziyoujian = fBS_CusExtend.EnterpriseEmail;
                tenderOrderOutput.Xiangmujingbanren = "";
                tenderOrderOutput.Zhiwu = "";
                tenderOrderOutput.Jingbanrendianhua = "";
            }
        }
        return tenderOrderOutput;
    }
    /// <summary>
    /// 采购代理人增加非政府订单处理 ➕
@@ -386,6 +479,18 @@
        {
            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" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布招标!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        entity.CreateTime = DateTime.Now;
        entity.UpdateTime = DateTime.Now;
@@ -393,12 +498,125 @@
        entity.CreateUserName = RealName;
        entity.UpdateUserId = usertrueId;
        entity.UpdateUserName = RealName;
        entity.CusExtendId = customerExId;
        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>
    /// 采购代理人更新非政府订单处理 ✏️
@@ -416,6 +634,14 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能更新招标!");
        }
        var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First();
        if(tenderOrder == null)
        {
@@ -451,6 +677,14 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能更新非政府订单质疑!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First();
@@ -483,6 +717,14 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能更新非政府订单投诉!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First();
@@ -508,6 +750,13 @@
    [ApiDescriptionSettings(Name = "Delete"), HttpPost]
    public async Task Delete(DeleteTenderOrderInput input)
    {
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能删除招标!");
        }
        //var entity = await _TenderOrderRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        var entity = await _sqlSugarClient.Queryable<TenderOrder>().Where(x=>x.Id== input.Id).FirstAsync() ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _TenderOrderRep.FakeDeleteAsync(entity);   //假删除
@@ -523,6 +772,14 @@
    [ApiDescriptionSettings(Name = "BatchDelete"), HttpPost]
    public async Task<bool > BatchDelete([Required(ErrorMessage = "主键列表不能为空")]List<DeleteTenderOrderInput> input)
    {
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能批量删除招标!");
        }
        var exp = Expressionable.Create<TenderOrder>();
        foreach (var row in input) exp = exp.Or(it => it.Id == row.Id);
        var list = await _TenderOrderRep.AsQueryable().Where(exp.ToExpression()).ToListAsync();
@@ -621,6 +878,14 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布招标!");
        }
        var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First();
        if (tenderOrder == null)
        {
@@ -659,6 +924,14 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能更新非政府订单标题!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First();
@@ -691,6 +964,14 @@
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布变更公告!");
        }
        var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderId).First();
        if (tenderOrder == null)
        {
@@ -783,6 +1064,13 @@
    [ApiDescriptionSettings(Name = "CHangeDelete"), HttpPost]
    public async Task CHangeDelete(DeleteTenderOrderInput input)
    {
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能删除变更公告!");
        }
        //var entity = await _TenderOrderRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        var entity = await _sqlSugarClient.Queryable<ChangeOrder>().Where(x => x.Id == input.Id).FirstAsync() ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _TenderOrderRep.FakeDeleteAsync(entity);   //假删除
@@ -791,14 +1079,15 @@
    /// <summary>
    /// 代理商发布中标文件 ➕
    /// 采购代理人确认供应商报名 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("代理商发布中标文件")]
    [ApiDescriptionSettings(Name = "AddZhongbiao"), HttpPost]
    public async Task<bool> AddZhongbiao(OrderZhongbiaoInput input)
    [DisplayName("采购代理人确认供应商报名")]
    [ApiDescriptionSettings(Name = "QuerenBaomingfei"), HttpPost]
    public async Task<bool> QuerenBaomingfei(QuerenSuplierBaomingfeiInput input)
    {
@@ -808,6 +1097,73 @@
        {
            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.IsTransfer.HasValue && tenderOrderBidding.IsTransfer.Value))
        {
            throw Oops.Oh("已经确认报名!");
        }
        var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == tenderOrderBidding.TenderId).FirstAsync();
        if (tenderOrder == null)
        {
            throw Oops.Oh("不存在的招标!");
        }
        tenderOrderBidding.IsTransfer = true;
        tenderOrderBidding.Zhifujine = null;
        tenderOrderBidding.TransferTime = DateTime.Now;
        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;
        return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
    }
    /// <summary>
    /// 代理商发布中标公告 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("代理商发布中标公告")]
    [ApiDescriptionSettings(Name = "AddZhongbiaoGonggao"), HttpPost]
    public async Task<bool> AddZhongbiaoGonggao(OrderZhongbiaoInput input)
    {
        long userId = 0;
        long? usertrueId = null;
        if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId))
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布中标文件!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
       
@@ -822,67 +1178,72 @@
            throw Oops.Oh("已经中标的项目不能再次中标!");
        }
        var ssss = input.SupplierUserIds.Split(',');
        if (string.IsNullOrEmpty(input.SupplierUserIds))
        var ssss = input.TenderOrderBiddingIds.Split(',');
        if (string.IsNullOrEmpty(input.TenderOrderBiddingIds))
        {
            throw Oops.Oh("没有选中中标供应商!");
        }
         foreach ( var sss in ssss)
        foreach ( var sss in ssss)
        {
            var SupplierUserId = long.Parse(sss);
            var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == SupplierUserId).FirstAsync();
            var tenderOrderBiddingId = Guid.Parse(sss);
            var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.Id == tenderOrderBiddingId).FirstAsync();
            if (tenderOrderBidding == null)
            {
                throw Oops.Oh("不存在的投标!");
            }
            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("没有投标文件。不能中标!");
            //}
        }
        tenderOrder.ZhongbiaoId = null;
        //tenderOrder.ZhongbiaoName = input.SupplierUserName;
        tenderOrder.ZhongbiaoId = usertrueId;
        tenderOrder.ZhongbiaoName = "";
        foreach (var sss in ssss)
        {
            var SupplierUserId = long.Parse(sss);
            var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.CustomerId == SupplierUserId && x.TransactionCode == "GYS" && x.steps == CusExtendStep.Pass).FirstAsync();
            if (cusExtend != null)
            {
                tenderOrder.ZhongbiaoName += cusExtend.EnterpriseName+",";
            }
        }
        tenderOrder.Zhongbiaowenjian = input.Zhongbiaowenjian;
        tenderOrder.ZhongbiaowenjianName = input.ZhongbiaowenjianName;
        tenderOrder.Zhongbiaogonggao = input.Zhongbiaogonggao;
        tenderOrder.ZhongbiaogonggaoName = input.ZhongbiaogonggaoName;
        tenderOrder.ZhongbiaoDate = DateTime.Now;
        tenderOrder.UpdateTime = DateTime.Now;
        tenderOrder.UpdateUserId = usertrueId;
        tenderOrder.UpdateUserName = RealName;
        tenderOrder.OrderStatus = 3;
        tenderOrder.ZhongbiaoTittle = input.ZhongbiaoTittle;
        await _TenderOrderRep.UpdateAsync(tenderOrder);
        foreach (var sss in ssss)
        {
            var SupplierUserId = long.Parse(sss);
            var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == SupplierUserId).FirstAsync();
            var tenderOrderBiddingId = Guid.Parse(sss);
            var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.Id == tenderOrderBiddingId).FirstAsync();
            tenderOrderBidding.IsSelected = true;
            tenderOrderBidding.SelectedTime = tenderOrder.ZhongbiaoDate;
            tenderOrderBidding.UpdateTime = DateTime.Now;
            tenderOrderBidding.UpdateUserId = usertrueId;
            tenderOrderBidding.UpdateUserName = RealName;
            await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
            var SupplierUserId = tenderOrderBidding.CusExtendId??0;
            var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.Id == SupplierUserId).FirstAsync();
            if (cusExtend != null)
            {
                tenderOrder.ZhongbiaoName += cusExtend.EnterpriseName + ",";
            }
        }
        tenderOrder.ZhongbiaoName = tenderOrder.ZhongbiaoName.Trim(',');
        await _TenderOrderRep.UpdateAsync(tenderOrder);
        return true;
@@ -895,4 +1256,133 @@
    }
    /// <summary>
    /// 代理商发布中标文件 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("代理商发布中标文件")]
    [ApiDescriptionSettings(Name = "AddZhongbiaoWenjian"), HttpPost]
    public async Task<bool> AddZhongbiaoWenjian(OrderZhongbiaoWenjianInput input)
    {
        long userId = 0;
        long? usertrueId = null;
        if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId))
        {
            usertrueId = userId;
        }
        string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        if (CustomerLogoinType != "DLJG" && CustomerLogoinType != "CGR")
        {
            throw Oops.Oh("只有登录角色招标代理机构或者采购人才能发布中标文件!");
        }
        var RealName = App.User?.FindFirstValue(ClaimConst.RealName);
        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("没有发布中标公告!");
        }
        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);
    //}
}