username@email.com
2025-11-05 f210a0e0fc0552bfacb2489de099bd512b8e74e7
提交
5个文件已修改
1个文件已添加
865 ■■■■ 已修改文件
Admin.NET/FZCZTB.NET.MD/CaigourenGuanli.cs 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZCZTB.NET.MD/TenderOrder.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs 212 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/Dto/TenderOrderInput.cs 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/Dto/TenderOrderOutput.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/TenderOrderService.cs 287 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZCZTB.NET.MD/CaigourenGuanli.cs
New file
@@ -0,0 +1,103 @@
using Admin.NET.Core;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FZCZTB.NET.MD
{
    /// <summary>
    /// 投诉质疑结果
    /// </summary>
    [SugarTable("FB_CaigourenGuanli")]
    [IncreTable]
    public partial class CaigourenGuanli : basemodelNoId
    {
        /// <summary>
        /// 采购人ID,主键
        /// </summary>
        [SugarColumn(IsPrimaryKey = true)]
        public Guid Id { get; set; }
        /// <summary>
        /// 采购人名称
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "采购人名称")]
        public string Caigourenmingcheng { get; set; }
        /// <summary>
        /// 行政区域
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "行政区域")]
        public string Xingzhengquyu { get; set; }
        /// <summary>
        /// 行政区域名称
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "行政区域名称")]
        public string XingzhengquyuName { get; set; }
        /// <summary>
        /// 机构代码
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "机构代码")]
        public string Jigoudaima { get; set; }
        /// <summary>
        /// 代码类型
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代码类型")]
        public string Daimaleixing { get; set; }
        /// <summary>
        /// 联系人
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "联系人")]
        public string Lianxiren { get; set; }
        /// <summary>
        /// 联系电话
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "联系电话")]
        public string Lianxidianhua { get; set; }
        /// <summary>
        /// 通信地址
        /// </summary>
        [SugarColumn(Length = 250, IsNullable = true, ColumnDescription = "通信地址")]
        public string Tongxindizhi { get; set; }
        /// <summary>
        /// 电子邮件
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "电子邮件")]
        public string Dianziyoujian { get; set; }
        /// <summary>
        /// 项目经办人
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "项目经办人")]
        public string Xiangmujingbanren { get; set; }
        /// <summary>
        /// 职务
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "职务")]
        public string Zhiwu { get; set; }
        /// <summary>
        /// 经办人电话
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "经办人电话")]
        public string Jingbanrendianhua { get; set; }
        /// <summary>
        /// 创建者CusExtendId
        /// </summary>
        public long? CusExtendId { get; set; }
    }
}
Admin.NET/FZCZTB.NET.MD/TenderOrder.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -48,9 +49,9 @@
        public string Caigoufangshi { get; set; }
        /// <summary>
        /// 采购遇算
        /// 采购预算
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "采购遇算")]
        [SugarColumn(IsNullable = true, ColumnDescription = "采购预算", Length = 18, DecimalDigits = 4)]
        public decimal? Caigouyusuan { get; set; }
        /// <summary>
@@ -62,14 +63,26 @@
        /// <summary>
        /// 报名费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "报名费")]
        [SugarColumn(IsNullable = true, ColumnDescription = "报名费", Length = 18, DecimalDigits = 4)]
        public decimal? Baomingfei { get; set; }
        /// <summary>
        /// 投标保证金
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "投标保证金")]
        [SugarColumn(IsNullable = true, ColumnDescription = "投标保证金", Length = 18, DecimalDigits = 4)]
        public decimal? Toubiaobaozhengjin { get; set; }
        /// <summary>
        /// 履约保证金
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "投标保证金",Length = 18, DecimalDigits = 4)]
        public decimal? LVyuebaozhengjin { get; set; }
        /// <summary>
        /// 招标代理费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "投标保证金", Length = 18, DecimalDigits = 4)]
        public decimal? Zhaobiaodailifei { get; set; }
        /// <summary>
@@ -212,6 +225,11 @@
        public string DailijingliLianxidianhua { get; set; }
        /// <summary>
        /// 是否接受保函
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "是否接受保函")]
        public bool? Isbaohan { get; set; }
        /// <summary>
        /// 质疑有无
@@ -363,5 +381,12 @@
        [SugarColumn(ColumnDescription = "创建者CusExtendId", IsOnlyIgnoreUpdate = true)]
        public  long? CusExtendId { get; set; }
        /// <summary>
        /// 发布角色
        /// </summary>
        [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "发布角色")]
        public string CustomerLogoinType { get; set; }
    }
}
Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs
@@ -202,91 +202,71 @@
    ///// <summary>
    ///// 供应商支付报名费 ➕
    ///// </summary>
    ///// <param name="input"></param>
    ///// <returns></returns>
    //[DisplayName("供应商支付报名费")]
    //[ApiDescriptionSettings(Name = "AddBaomingfei"), HttpPost]
    //public async Task<bool> AddBaomingfei(SuplierBaomingfeiInput input)
    /// <summary>
    /// 供应商报名 ➕
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [DisplayName("供应商报名")]
    [ApiDescriptionSettings(Name = "AddBaoming"), HttpPost]
    public async Task<bool> AddBaoming(SuplierBaomingfeiInput 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 != "GYS")
        {
            throw Oops.Oh("只有登录角色供应商才能支付报名费!");
        }
        long customerExId = 0;
        long.TryParse(App.User?.FindFirst(ClaimConst.CustomerExId)?.Value, out customerExId);
        var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
        if (tenderOrder == null)
        {
            throw Oops.Oh("不存在的招标!");
        }
        //if (tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0)
    //{
        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CusExtendId == customerExId).FirstAsync();
        if (tenderOrderBidding != null )
        {
            throw Oops.Oh("已经报名!");
        }
    //    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);
        tenderOrderBidding = new TenderOrderBidding();
        tenderOrderBidding.Id = Guid.NewGuid();
        tenderOrderBidding.TenderId = input.TenderOrderId;
        tenderOrderBidding.IsTransfer = false;
        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); // 订单号
    //    string? CustomerLogoinType = App.User?.FindFirst(ClaimConst.CustomerLogoinType)?.Value;
        tenderOrderBidding.CreateTime = DateTime.Now;
        tenderOrderBidding.CreateUserId = usertrueId;
        tenderOrderBidding.CreateUserName = RealName;
        tenderOrderBidding.UpdateTime = DateTime.Now;
        tenderOrderBidding.UpdateUserId = usertrueId;
        tenderOrderBidding.UpdateUserName = RealName;
        tenderOrderBidding.CusExtendId = customerExId;
        return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
    //    if (CustomerLogoinType != "GYS" )
    //    {
    //        throw Oops.Oh("只有登录角色供应商才能支付报名费!");
    //    }
    //    var tenderOrder = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderOrderId).FirstAsync();
    //    if (tenderOrder == null)
    //    {
    //        throw Oops.Oh("不存在的招标!");
    //    }
    //    //if (tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0)
    //    //{
    //        var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync();
    //        if(tenderOrderBidding!=null && (tenderOrderBidding.IsTransfer.HasValue && tenderOrderBidding.IsTransfer.Value))
    //        {
    //            throw Oops.Oh("已经付款!");
    //        }
    //        if (tenderOrderBidding == null)
    //        {
    //            tenderOrderBidding = new TenderOrderBidding();
    //            tenderOrderBidding.Id = Guid.NewGuid();
    //            tenderOrderBidding.TenderId = input.TenderOrderId;
    //            tenderOrderBidding.IsTransfer = true;
    //            tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
    //            tenderOrderBidding.TransferTime = DateTime.Now;
    //            tenderOrderBidding.TransferNo = "BMF"+tenderOrderBidding.Id.ToString("N");
    //            tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
    //           tenderOrderBidding.CreateTime = DateTime.Now;
    //            tenderOrderBidding.CreateUserId = usertrueId;
    //            tenderOrderBidding.CreateUserName = RealName;
    //            tenderOrderBidding.UpdateTime = DateTime.Now;
    //            tenderOrderBidding.UpdateUserId = usertrueId;
    //            tenderOrderBidding.UpdateUserName = RealName;
    //            return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
    //        }
    //        else
    //        {
    //            tenderOrderBidding.IsTransfer = true;
    //            tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei;
    //            tenderOrderBidding.TransferTime = DateTime.Now;
    //            tenderOrderBidding.TransferNo = "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);
    //        }
    //    //}
    //    //else
    //    //{
    //    //    throw Oops.Oh("无需支付报名费!");
    //    //}
    //}
    }
@@ -323,7 +303,7 @@
            throw Oops.Oh("不存在的招标!");
        }
        var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.CustomerId == tenderOrder.CusExtendId ).FirstAsync();
        var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.Id == tenderOrder.CusExtendId ).FirstAsync();
        var cusExtend1 = new FBS_CusExtend();
        if (cusExtend != null)
        {
@@ -386,29 +366,37 @@
       if(tenderOrderBidding == null)
        {
            tenderOrderBidding = new TenderOrderBidding();
            tenderOrderBidding.Id = Guid.NewGuid();
            tenderOrderBidding.TenderId = input.TenderOrderId;
            tenderOrderBidding.Touboaowenjian = input.Touboaowenjian;
            tenderOrderBidding.TouboaowenjianName = input.TouboaowenjianName;
            tenderOrderBidding.IsTransfer = true;
            tenderOrderBidding.Zhifujine = 0;
            tenderOrderBidding.CreateTime = DateTime.Now;
            tenderOrderBidding.CreateUserId = usertrueId;
            tenderOrderBidding.CreateUserName = RealName;
            tenderOrderBidding.UpdateTime = DateTime.Now;
            tenderOrderBidding.UpdateUserId = usertrueId;
            tenderOrderBidding.UpdateUserName = RealName;
            tenderOrderBidding.CusExtendId = customerExId;
            if( !tenderOrder.Baomingfei.HasValue || tenderOrder.Baomingfei.Value<=0)
            {
                tenderOrderBidding.IsTransfer = true;
                tenderOrderBidding.Zhifujine = 0;
                tenderOrderBidding.TransferTime = DateTime.Now;
                tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
                tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
            throw Oops.Oh("必须先报名!");
            //tenderOrderBidding = new TenderOrderBidding();
            //tenderOrderBidding.Id = Guid.NewGuid();
            //tenderOrderBidding.TenderId = input.TenderOrderId;
            //tenderOrderBidding.Touboaowenjian = input.Touboaowenjian;
            //tenderOrderBidding.TouboaowenjianName = input.TouboaowenjianName;
            //tenderOrderBidding.IsTransfer = true;
            //tenderOrderBidding.Zhifujine = 0;
            //tenderOrderBidding.CreateTime = DateTime.Now;
            //tenderOrderBidding.CreateUserId = usertrueId;
            //tenderOrderBidding.CreateUserName = RealName;
            //tenderOrderBidding.UpdateTime = DateTime.Now;
            //tenderOrderBidding.UpdateUserId = usertrueId;
            //tenderOrderBidding.UpdateUserName = RealName;
            //tenderOrderBidding.CusExtendId = customerExId;
            //if( !tenderOrder.Baomingfei.HasValue || tenderOrder.Baomingfei.Value<=0)
            //{
            //    tenderOrderBidding.IsTransfer = true;
            //    tenderOrderBidding.Zhifujine = 0;
            //    tenderOrderBidding.TransferTime = DateTime.Now;
            //    tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
            //    tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
            //}
            //return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
            }
            return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding);
        else
        {
            if (!tenderOrderBidding.IsTransfer.HasValue || !tenderOrderBidding.IsTransfer.Value)
            {
                throw Oops.Oh("采购方没有确认报名!");
            }
        }
        tenderOrderBidding.Touboaowenjian = input.Touboaowenjian;
@@ -416,14 +404,14 @@
        tenderOrderBidding.UpdateTime = DateTime.Now;
        tenderOrderBidding.UpdateUserId = usertrueId;
        tenderOrderBidding.UpdateUserName = RealName;
        if (!tenderOrder.Baomingfei.HasValue || tenderOrder.Baomingfei.Value <= 0)
        {
            tenderOrderBidding.IsTransfer = true;
            tenderOrderBidding.Zhifujine = 0;
            tenderOrderBidding.TransferTime = DateTime.Now;
            tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
            tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
        }
        //if (!tenderOrder.Baomingfei.HasValue || tenderOrder.Baomingfei.Value <= 0)
        //{
        //    tenderOrderBidding.IsTransfer = true;
        //    tenderOrderBidding.Zhifujine = 0;
        //    tenderOrderBidding.TransferTime = DateTime.Now;
        //    tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N");
        //    tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号
        //}
        return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding);
    }
@@ -471,6 +459,8 @@
                IsSelected = a.IsSelected,
                IsSelectedName = a.IsSelected.HasValue&& a.IsSelected.Value?"是":"否",
                FabuDate = b.FabuDate.HasValue ? b.FabuDate.Value : DateTime.Now,
                CreateTime = a.CreateTime,
                Baomingfei = b.Baomingfei,
            });
        var pagedList = await query.OrderBuilder(input, "", "KaibiaoDate", true).ToPagedListAsync(input.Page, input.PageSize);
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/Dto/TenderOrderInput.cs
@@ -65,6 +65,22 @@
    /// </summary>
    public virtual decimal? Toubiaobaozhengjin { get; set; }
    /// <summary>
    /// 履约保证金
    /// </summary>
    public decimal? LVyuebaozhengjin { get; set; }
    /// <summary>
    /// 招标代理费
    /// </summary>
    public decimal? Zhaobiaodailifei { get; set; }
    /// <summary>
    /// 是否接受保函
    /// </summary>
    public bool? Isbaohan { get; set; }
    /// <summary>
    /// 联合体投标
@@ -247,6 +263,36 @@
}
/// <summary>
/// 采购人分页查询输入参数
/// </summary>
public class PageCaigiourenInput : BasePageInput
{
    /// <summary>
    /// 新增日期范围
    /// </summary>
    public DateTime?[] CreateDateRange { get; set; }
    /// <summary>
    /// 采购人名称
    /// </summary>
    public string Caigourenmingcheng { get; set; }
    /// <summary>
    /// 行政区域
    /// </summary>
    public string Xingzhengquyu { get; set; }
}
/// <summary>
/// 非政府订单增加输入参数
/// </summary>
@@ -299,6 +345,21 @@
    /// 投标保证金
    /// </summary>
    public decimal? Toubiaobaozhengjin { get; set; }
    /// <summary>
    /// 履约保证金
    /// </summary>
    public decimal? LVyuebaozhengjin { get; set; }
    /// <summary>
    /// 是否接受保函
    /// </summary>
    public bool? Isbaohan { get; set; }
    /// <summary>
    /// 招标代理费
    /// </summary>
    public decimal? Zhaobiaodailifei { get; set; }
    /// <summary>
    /// 联合体投标
@@ -444,6 +505,102 @@
}
/// <summary>
/// 非政府订单增加输入参数
/// </summary>
public class AddCaigourenGuanliInput
{
    /// <summary>
    /// 采购人ID,主键
    /// </summary>
    public Guid? Id { get; set; }
    /// <summary>
    /// 采购人名称
    /// </summary>
    [MaxLength(100, ErrorMessage = "采购人名称字符长度不能超过100")]
    public string Caigourenmingcheng { get; set; }
    /// <summary>
    /// 行政区域510000,510100,510101
    /// </summary>
    [MaxLength(100, ErrorMessage = "行政区域字符长度不能超过100")]
    public string Xingzhengquyu { get; set; }
    /// <summary>
    /// 行政区域名称 四川省 / 成都市 / 市本级
    /// </summary>
    [MaxLength(100, ErrorMessage = "行政区域名称字符长度不能超过100")]
    public string XingzhengquyuName { get; set; }
    /// <summary>
    /// 机构代码
    /// </summary>
    [MaxLength(100, ErrorMessage = "机构代码字符长度不能超过100")]
    public string Jigoudaima { get; set; }
    /// <summary>
    /// 代码类型
    /// </summary>
    [MaxLength(100, ErrorMessage = "代码类型字符长度不能超过100")]
    public string Daimaleixing { get; set; }
    /// <summary>
    /// 联系人
    /// </summary>
    [MaxLength(100, ErrorMessage = "联系人称字符长度不能超过100")]
    public string Lianxiren { get; set; }
    /// <summary>
    /// 联系电话
    /// </summary>
    [MaxLength(100, ErrorMessage = "联系电话字符长度不能超过100")]
    public string Lianxidianhua { get; set; }
    /// <summary>
    /// 通信地址
    /// </summary>
    [MaxLength(250, ErrorMessage = "通信地址字符长度不能超过250")]
    public string Tongxindizhi { get; set; }
    /// <summary>
    /// 电子邮件
    /// </summary>
    [MaxLength(100, ErrorMessage = "电子邮件字符长度不能超过100")]
    public string Dianziyoujian { get; set; }
    /// <summary>
    /// 项目经办人
    /// </summary>
    [MaxLength(100, ErrorMessage = "项目经办人字符长度不能超过100")]
    public string Xiangmujingbanren { get; set; }
    /// <summary>
    /// 职务
    /// </summary>
    [MaxLength(100, ErrorMessage = "职务字符长度不能超过100")]
    public string Zhiwu { get; set; }
    /// <summary>
    /// 经办人电话
    /// </summary>
    [MaxLength(100, ErrorMessage = "经办人电话字符长度不能超过100")]
    public string Jingbanrendianhua { get; set; }
}
/// <summary>
/// 非政府订单删除输入参数
@@ -984,17 +1141,7 @@
    public Guid TenderOrderId { get; set; }
    /// <summary>
    /// 中标文件
    /// </summary>
    [Required(ErrorMessage = "中标文件不能为空")]
    public string Zhongbiaowenjian { get; set; }
    /// <summary>
    /// 中标文件Name
    /// </summary>
    [Required(ErrorMessage = "中标文件Name不能为空")]
    public string ZhongbiaowenjianName { get; set; }
    /// <summary>
@@ -1025,6 +1172,49 @@
}
/// <summary>
/// 代理商发布中标文件
/// </summary>
public class OrderZhongbiaoWenjianInput
{
    /// <summary>
    /// 招标Id
    /// </summary>
    [Required(ErrorMessage = "招标Id不能为空")]
    public Guid TenderOrderId { get; set; }
    /// <summary>
    /// 中标文件
    /// </summary>
    [Required(ErrorMessage = "中标文件不能为空")]
    public string Zhongbiaowenjian { get; set; }
    /// <summary>
    /// 中标文件Name
    /// </summary>
    [Required(ErrorMessage = "中标文件Name不能为空")]
    public string ZhongbiaowenjianName { get; set; }
}
/// <summary>
/// 供应商支付报名费
/// </summary>
Admin.NET/FZFCGDD.ORDER.Application/Service/TenderOrder/Dto/TenderOrderOutput.cs
@@ -75,6 +75,16 @@
    /// </summary>
    public decimal? Toubiaobaozhengjin { get; set; }
    /// <summary>
    /// 履约保证金
    /// </summary>
    public decimal? LVyuebaozhengjin { get; set; }
    /// <summary>
    /// 招标代理费
    /// </summary>
    public decimal? Zhaobiaodailifei { get; set; }
    /// <summary>
    /// 联合体投标
@@ -212,6 +222,11 @@
    /// </summary>
    public string DailijingliLianxidianhua { get; set; }
    /// <summary>
    /// 是否接受保函
    /// </summary>
    public bool? Isbaohan { get; set; }
    /// <summary>
@@ -386,6 +401,11 @@
    public ChangeOrder? changeOrder { get; set; }
    /// <summary>
    /// 发布角色
    /// </summary>
    public string CustomerLogoinType { get; set; }
    /// <summary>
    /// 投标情况
    /// </summary>
    public List<TenderOrderBiddingOutput>? tenderOrderBiddings { get; set; }
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);
    //}
}