| | |
| | | "Description": "非政府采购交易平台", |
| | | "Version": "1.0.0", |
| | | "Order": 10000 |
| | | }, |
| | | { |
| | | "Group": "FZFCGDD", |
| | | "Title": "非政府采购订单", |
| | | "Description": "非政府采购订单", |
| | | "Version": "1.0.0", |
| | | "Order": 10001 |
| | | } |
| | | ], |
| | | "DefaultGroupName": "Default", // 默认分组名 |
| | |
| | | /// API分组名称 |
| | | /// </summary> |
| | | public const string GroupName = "FZCCGPT"; |
| | | |
| | | /// <summary> |
| | | /// API分组名称 |
| | | /// </summary> |
| | | public const string GroupNameDD = "FZFCGDD"; |
| | | } |
| | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\Admin.NET.Web.Core\Admin.NET.Web.Core.csproj" /> |
| | | <ProjectReference Include="..\FZCZTB.TSCL.Application\FZCZTB.TSCL.Application.csproj" /> |
| | | <ProjectReference Include="..\FZFCGDD.ORDER.Application\FZFCGDD.ORDER.Application.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
New file |
| | |
| | | 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_ChangeOrder")] |
| | | [IncreTable] |
| | | public partial class ChangeOrder : basemodelNoId |
| | | { |
| | | /// <summary> |
| | | /// 变更ID,主键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标ID,外键 |
| | | /// </summary> |
| | | public Guid TenderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | [SugarColumn(Length = 200, IsNullable = false, ColumnDescription = "项目名称")] |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 变更文件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "变更文件")] |
| | | public string Biangengwenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投标报名开始时间")] |
| | | public DateTime? ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投标报名结束时间")] |
| | | public DateTime? ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "开标时间")] |
| | | public DateTime? KaibiaoDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | [SugarColumn(Length = 250, IsNullable = true, ColumnDescription = "开标地点")] |
| | | public string Kaibiaodidian { get; set; } |
| | | } |
| | | } |
New file |
| | |
| | | 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_Collection")] |
| | | [IncreTable] |
| | | public partial class Collection : basemodelNoId |
| | | { |
| | | /// <summary> |
| | | /// ID,主键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标ID,外键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid TenderId { get; set; } |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | 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_Neirongfabu")] |
| | | [IncreTable] |
| | | public partial class Neirongfabu : basemodelNoId |
| | | { |
| | | /// <summary> |
| | | /// ID,主键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid Id { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 内容类型 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "内容类型")] |
| | | public int? Leirongneixing { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否发布 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "是否发布")] |
| | | public bool? IsFabu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "是否首页显示")] |
| | | public bool? IsShouyexianshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容标题 |
| | | /// </summary> |
| | | [SugarColumn(Length = 200, IsNullable = false, ColumnDescription = "内容标题")] |
| | | public string NeirongTittle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 封面图片 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "封面图片")] |
| | | public string Fengmiantupian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 排序 越小越靠前 |
| | | /// </summary> |
| | | [SugarColumn( IsNullable = true, ColumnDescription = "排序 越小越靠前")] |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 发布时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "发布时间")] |
| | | public DateTime? FabuDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 内容摘要 |
| | | /// </summary> |
| | | [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "内容摘要")] |
| | | public string NeirongZhaiyao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容描述 |
| | | /// </summary> |
| | | [SugarColumn(ColumnDescription = "内容描述", ColumnDataType = StaticConfig.CodeFirst_BigString)] |
| | | public string NeirongMiaoshu { get; set; } |
| | | } |
| | | } |
New file |
| | |
| | | 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_TenderOrder")] |
| | | [IncreTable] |
| | | public partial class TenderOrder : basemodelNoId |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 招标ID,主键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | [SugarColumn(Length = 200, IsNullable = false, ColumnDescription = "项目名称")] |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = false, ColumnDescription = "项目编号")] |
| | | public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "行业品目")] |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购方式 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "采购方式")] |
| | | public string Caigoufangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购遇算 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "采购遇算")] |
| | | public decimal? Caigouyusuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "定标规则")] |
| | | public string Dingbiaoguize { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 报名费 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "报名费")] |
| | | public decimal? Baomingfei { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标保证金 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投标保证金")] |
| | | public decimal? Toubiaobaozhengjin { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 联合体投标 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "联合体投标")] |
| | | public string Lianhetitoubiao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标方式 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "开标方式")] |
| | | public string Kaibiaofangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否分包 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "是否分包")] |
| | | public string Shifoufenbao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否推送宣传 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "是否推送宣传")] |
| | | public string Shifoutuisongxuanchuan { 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> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代理机构名称")] |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系人 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代理机构联系人")] |
| | | public string DailiLianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系电话 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代理机构联系电话")] |
| | | public string DailiLianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构电子邮件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代理机构电子邮件")] |
| | | public string DailiDianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构通信地址 |
| | | /// </summary> |
| | | [SugarColumn(Length = 250, IsNullable = true, ColumnDescription = "代理机构通信地址")] |
| | | public string DailiTongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代理机构项目经理")] |
| | | public string DailiXiangmujingli { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理联系电话 |
| | | /// </summary> |
| | | [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "代理机构项目经理联系电话")] |
| | | public string DailijingliLianxidianhua { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 质疑有无 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "质疑有无")] |
| | | public bool? Zhiyi { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投诉有无 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投诉有无")] |
| | | public bool? Tousu { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 订单状态 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "订单状态")] |
| | | public int? OrderStatus { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投标报名开始时间")] |
| | | public DateTime? ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投标报名结束时间")] |
| | | public DateTime? ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "开标时间")] |
| | | public DateTime? KaibiaoDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 发布时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "发布时间")] |
| | | public DateTime? FabuDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "招标文件")] |
| | | public string Zhaobiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "附件")] |
| | | public string Fujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | [SugarColumn(Length = 250, IsNullable = true, ColumnDescription = "开标地点")] |
| | | public string Kaibiaodidian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标供应商Id |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标供应商Id")] |
| | | public long? ZhongbiaoId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标供应商姓名 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标供应商姓名", Length = 100)] |
| | | public string ZhongbiaoName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家Id |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "专家Id", Length = 500)] |
| | | public string ZhuanjiaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家姓名 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "专家姓名", Length = 500)] |
| | | public string ZhuanjiaName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标文件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "中标文件")] |
| | | public string Zhongbiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标时间")] |
| | | public DateTime? ZhongbiaoDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标tittle |
| | | /// </summary> |
| | | [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "中标tittle")] |
| | | public string ZhongbiaoTittle { get; set; } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | 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_TenderOrderBidding")] |
| | | [IncreTable] |
| | | public partial class TenderOrderBidding : basemodelNoId |
| | | { |
| | | /// <summary> |
| | | /// 投标ID,主键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标ID |
| | | /// </summary> |
| | | [SugarColumn(ColumnDescription = "招标ID")] |
| | | public Guid TenderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标文件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "投标文件")] |
| | | public string Touboaowenjian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "是否中标")] |
| | | public bool? IsSelected { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标时间")] |
| | | public DateTime? SelectedTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否支付 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "是否支付")] |
| | | public bool? IsTransfer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 支付时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "支付时间")] |
| | | public DateTime? TransferTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 支付编号 |
| | | /// </summary> |
| | | [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "支付编号")] |
| | | public string TransferNo { get; set; } |
| | | |
| | | /// <summary> |
| | | ///支付金额 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "支付金额")] |
| | | public decimal? Zhifujine { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 支付返回标号 |
| | | /// </summary> |
| | | [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "支付返回标号")] |
| | | public string TradeNo { get; set; } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net8.0</TargetFramework> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | <GenerateDocumentationFile>True</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\Admin.NET.Application\Admin.NET.Application.csproj" /> |
| | | <ProjectReference Include="..\Admin.NET.Core\Admin.NET.Core.csproj" /> |
| | | <ProjectReference Include="..\FZCZTB.NET.MD\FZCZTB.NET.MD.csproj" /> |
| | | <ProjectReference Include="..\Plugins\Admin.NET.Plugin.ApprovalFlow\Admin.NET.Plugin.ApprovalFlow.csproj" /> |
| | | <ProjectReference Include="..\Plugins\Admin.NET.Plugin.DingTalk\Admin.NET.Plugin.DingTalk.csproj" /> |
| | | <ProjectReference Include="..\Plugins\Admin.NET.Plugin.GoView\Admin.NET.Plugin.GoView.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using Magicodes.ExporterAndImporter.Excel; |
| | | using FZCZTB.NET.MD; |
| | | using SqlSugar; |
| | | |
| | | namespace FZFCGDD.ORDER.Application.Service.Neirongfabu.Dto; |
| | | /// <summary> |
| | | /// 内容发布基础输入参数 |
| | | /// </summary> |
| | | public class NeirongfabuInput |
| | | { |
| | | /// <summary> |
| | | /// ID,主键 |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true)] |
| | | public Guid Id { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 内容类型 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "内容类型不能为空")] |
| | | public int Leirongneixing { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否发布 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "是否发布不能为空")] |
| | | public bool IsFabu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "是否首页显示不能为空")] |
| | | public bool IsShouyexianshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容标题 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "内容标题不能为空")] |
| | | public string NeirongTittle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 封面图片 |
| | | /// </summary> |
| | | public string Fengmiantupian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 排序 越小越靠前 |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 发布时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "发布时间不能为空")] |
| | | public DateTime FabuDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 内容摘要 |
| | | /// </summary> |
| | | public string NeirongZhaiyao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容描述 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "内容描述不能为空")] |
| | | public string NeirongMiaoshu { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 内容发布分页查询输入参数 |
| | | /// </summary> |
| | | public class PageNeirongfabuInput : BasePageInput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 发布日期范围 |
| | | /// </summary> |
| | | public DateTime?[] CreateDateRange { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容类型 |
| | | /// </summary> |
| | | public int? Leirongneixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容标题 |
| | | /// </summary> |
| | | public string NeirongTittle { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using Magicodes.ExporterAndImporter.Excel; |
| | | using FZCZTB.NET.MD; |
| | | using SqlSugar; |
| | | |
| | | namespace FZFCGDD.ORDER.Application.Service.Neirongfabu.Dto; |
| | | /// <summary> |
| | | /// 内容发布基础输出参数 |
| | | /// </summary> |
| | | public class NeirongfabuOutput |
| | | { |
| | | /// <summary> |
| | | /// ID,主键 |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容类型 |
| | | /// </summary> |
| | | public int? Leirongneixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容类型名称 |
| | | /// </summary> |
| | | public string LeirongneixingName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否发布 |
| | | /// </summary> |
| | | public bool? IsFabu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示名称 |
| | | /// </summary> |
| | | public string IsFabuName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示 |
| | | /// </summary> |
| | | public bool? IsShouyexianshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示名称 |
| | | /// </summary> |
| | | public string IsShouyexianshiName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容标题 |
| | | /// </summary> |
| | | public string NeirongTittle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 封面图片 |
| | | /// </summary> |
| | | public string Fengmiantupian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 排序 越小越靠前 |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 发布时间 |
| | | /// </summary> |
| | | public DateTime? FabuDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 内容摘要 |
| | | /// </summary> |
| | | public string NeirongZhaiyao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 内容描述 |
| | | /// </summary> |
| | | public string NeirongMiaoshu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public DateTime? CreateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 更新时间 |
| | | /// </summary> |
| | | public DateTime? UpdateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者Id |
| | | /// </summary> |
| | | public long? CreateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者姓名 |
| | | /// </summary> |
| | | public string? CreateUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者Id |
| | | /// </summary> |
| | | public long? UpdateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者姓名 |
| | | /// </summary> |
| | | public string? UpdateUserName { get; set; } |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core.Service; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using SqlSugar; |
| | | using System.ComponentModel; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Admin.NET.Application; |
| | | using Admin.NET.Core; |
| | | using FZCZTB.NET.MD; |
| | | using Furion.DynamicApiController; |
| | | using Furion.DependencyInjection; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using NewLife.Xml; |
| | | using AngleSharp.Dom; |
| | | using DocumentFormat.OpenXml.Office2010.ExcelAc; |
| | | using Furion; |
| | | using System.Security.Claims; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using RazorEngine.Compilation.ImpromptuInterface; |
| | | using MimeKit; |
| | | using static FZCZTB.TSCL.Application.ChangeTenderOrderOut; |
| | | using FZFCGDD.ORDER.Application.Service.Neirongfabu.Dto; |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 内容发布接口 🧩 |
| | | /// </summary> |
| | | [ApiDescriptionSettings(ApplicationConst.GroupNameDD, Order = 100)] |
| | | public class NeirongfabuService : IDynamicApiController, ITransient |
| | | { |
| | | private readonly SqlSugarRepository<SysDictData> _sysDictDataRep; |
| | | private readonly SqlSugarRepository<Neirongfabu> _neirongfabu; |
| | | private readonly ISqlSugarClient _sqlSugarClient; |
| | | |
| | | public NeirongfabuService(SqlSugarRepository<SysDictData> sysDictDataRep |
| | | , SqlSugarRepository<Neirongfabu> neirongfabu |
| | | , ISqlSugarClient sqlSugarClient) |
| | | { |
| | | |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _neirongfabu = neirongfabu; |
| | | _sqlSugarClient = sqlSugarClient; |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取内容类型集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取内容类型集合")] |
| | | [ApiDescriptionSettings(Name = "GetLeirongneixingList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetLeirongneixingList() |
| | | { |
| | | return await GetDataListByCode("Leirongneixing"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取字典值集合 🔖 |
| | | /// </summary> |
| | | /// <param name="typeId"></param> |
| | | /// <param name="code"></param> |
| | | /// <returns></returns> |
| | | [NonAction] |
| | | public async Task<List<SysDictData>> GetDataListByCode(string code) |
| | | { |
| | | if (string.IsNullOrWhiteSpace(code)) |
| | | throw Oops.Oh(ErrorCodeEnum.D3011); |
| | | |
| | | var dictType = await _sysDictDataRep.Change<SysDictType>().AsQueryable() |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(code), u => u.Code == code) |
| | | .FirstAsync(); |
| | | if (dictType == null) return null; |
| | | |
| | | |
| | | |
| | | var dictDataList = await _sysDictDataRep.AsQueryable() |
| | | .Where(u => u.DictTypeId == dictType.Id) |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .OrderBy(u => new { u.OrderNo, u.Value, u.Code }) |
| | | .ToListAsync(); |
| | | return dictDataList; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 分页查询内容发布 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("分页查询内容发布")] |
| | | [ApiDescriptionSettings(Name = "Page"), HttpPost] |
| | | public async Task<SqlSugarPagedList<NeirongfabuOutput>> Page(PageNeirongfabuInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _neirongfabu.AsQueryable() |
| | | .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, u => u.FabuDate >= input.CreateDateRange[0] && u.FabuDate <= input.CreateDateRange[1]) |
| | | .WhereIF(input.Leirongneixing.HasValue, u => u.Leirongneixing == input.Leirongneixing) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.NeirongTittle), u => u.NeirongTittle.Contains(input.NeirongTittle.Trim())) |
| | | |
| | | |
| | | .Select(x => new NeirongfabuOutput |
| | | { |
| | | Id = x.Id, |
| | | Leirongneixing = x.Leirongneixing, |
| | | IsFabu = x.IsFabu, |
| | | IsShouyexianshi = x.IsShouyexianshi, |
| | | NeirongTittle = x.NeirongTittle, |
| | | Fengmiantupian = x.Fengmiantupian, |
| | | Sort = x.Sort, |
| | | FabuDate = x.FabuDate, |
| | | NeirongZhaiyao = x.NeirongZhaiyao, |
| | | // NeirongMiaoshu = x.NeirongMiaoshu, |
| | | CreateTime = x.CreateTime, |
| | | UpdateTime = x.UpdateTime, |
| | | CreateUserId = x.CreateUserId, |
| | | CreateUserName = x.CreateUserName, |
| | | UpdateUserId = x.UpdateUserId, |
| | | UpdateUserName = x.UpdateUserName, |
| | | }); |
| | | |
| | | var pagedList = await query.OrderBuilder(input, "", "Sort", false).ToPagedListAsync(input.Page, input.PageSize); |
| | | |
| | | var sysDictDatas = await GetDataListByCode("Leirongneixing"); |
| | | |
| | | foreach (var neirongfabuOutput in pagedList.Items) |
| | | { |
| | | var sysDictData = sysDictDatas.Where(x => x.Value == neirongfabuOutput.Leirongneixing.Value.ToString()).FirstOrDefault(); |
| | | if (sysDictData != null) |
| | | { |
| | | neirongfabuOutput.LeirongneixingName = sysDictData.Label; |
| | | } |
| | | |
| | | if(neirongfabuOutput.IsFabu.HasValue && neirongfabuOutput.IsFabu.Value) |
| | | { |
| | | neirongfabuOutput.IsFabuName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsFabuName = "否"; |
| | | } |
| | | |
| | | if (neirongfabuOutput.IsShouyexianshi.HasValue && neirongfabuOutput.IsShouyexianshi.Value) |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "否"; |
| | | } |
| | | } |
| | | |
| | | return pagedList; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取内容发布详情 ℹ️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("获取内容发布详情")] |
| | | [ApiDescriptionSettings(Name = "Detail"), HttpGet] |
| | | public async Task<NeirongfabuOutput> Detail([FromQuery] QueryByIdTenderOrderInput input) |
| | | { |
| | | var Leirongneixing = await GetDataListByCode("Leirongneixing"); |
| | | |
| | | var neirongfabuOutput = await _neirongfabu.AsQueryable().Where(x => x.Id == input.Id).Select<NeirongfabuOutput>().FirstAsync(); |
| | | if (neirongfabuOutput != null) |
| | | { |
| | | |
| | | if (neirongfabuOutput.Leirongneixing.HasValue) |
| | | { |
| | | neirongfabuOutput.LeirongneixingName = Leirongneixing.Where(x => x.Value == neirongfabuOutput.Leirongneixing.Value.ToString()).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (neirongfabuOutput.IsFabu.HasValue && neirongfabuOutput.IsFabu.Value) |
| | | { |
| | | neirongfabuOutput.IsFabuName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsFabuName = "否"; |
| | | } |
| | | |
| | | if (neirongfabuOutput.IsShouyexianshi.HasValue && neirongfabuOutput.IsShouyexianshi.Value) |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "否"; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | return neirongfabuOutput; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 新增内容发布 ➕ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("新增内容发布")] |
| | | [ApiDescriptionSettings(Name = "Add"), HttpPost] |
| | | public async Task<bool> Add(NeirongfabuInput input) |
| | | { |
| | | var entity = input.Adapt<Neirongfabu>(); |
| | | entity.Id = Guid.NewGuid(); |
| | | 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); |
| | | entity.CreateTime = DateTime.Now; |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.CreateUserId = usertrueId; |
| | | entity.CreateUserName = RealName; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | |
| | | return await _neirongfabu.InsertAsync(entity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 修改内容发布 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("修改内容发布")] |
| | | [ApiDescriptionSettings(Name = "Update"), HttpPost] |
| | | public async Task Update(NeirongfabuInput input) |
| | | { |
| | | var entity = input.Adapt<Neirongfabu>(); |
| | | 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); |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | await _neirongfabu.UpdateAsync(entity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除内容发布 ❌ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("删除内容发布")] |
| | | [ApiDescriptionSettings(Name = "Delete"), HttpPost] |
| | | public async Task Delete(DeleteTenderOrderInput input) |
| | | { |
| | | //var entity = await _TenderOrderRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002); |
| | | var entity = await _sqlSugarClient.Queryable<Neirongfabu>().Where(x => x.Id == input.Id).FirstAsync() ?? throw Oops.Oh(ErrorCodeEnum.D1002); |
| | | //await _TenderOrderRep.FakeDeleteAsync(entity); //假删除 |
| | | await _neirongfabu.DeleteAsync(entity); //真删除 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 批量删除内容发布 ❌ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("批量删除内容发布")] |
| | | [ApiDescriptionSettings(Name = "BatchDelete"), HttpPost] |
| | | public async Task<bool> BatchDelete([Required(ErrorMessage = "主键列表不能为空")] List<DeleteTenderOrderInput> input) |
| | | { |
| | | var exp = Expressionable.Create<Neirongfabu>(); |
| | | foreach (var row in input) exp = exp.Or(it => it.Id == row.Id); |
| | | var list = await _neirongfabu.AsQueryable().Where(exp.ToExpression()).ToListAsync(); |
| | | |
| | | // return await _TenderOrderRep.FakeDeleteAsync(list); //假删除 |
| | | return await _neirongfabu.DeleteAsync(list); //真删除 |
| | | } |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core.Service; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using SqlSugar; |
| | | using System.ComponentModel; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Admin.NET.Application; |
| | | using Admin.NET.Core; |
| | | using FZCZTB.NET.MD; |
| | | using Furion.DynamicApiController; |
| | | using Furion.DependencyInjection; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using NewLife.Xml; |
| | | using AngleSharp.Dom; |
| | | using DocumentFormat.OpenXml.Office2010.ExcelAc; |
| | | using Furion; |
| | | using System.Security.Claims; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using RazorEngine.Compilation.ImpromptuInterface; |
| | | using MimeKit; |
| | | using FZFCGDD.ORDER.Application.Service.Neirongfabu.Dto; |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 首页接口 🧩 |
| | | /// </summary> |
| | | [ApiDescriptionSettings(ApplicationConst.GroupNameDD, Order = 100)] |
| | | public class ShouyeGonggaoService : IDynamicApiController, ITransient |
| | | { |
| | | private readonly SqlSugarRepository<TenderOrder> _TenderOrderRep; |
| | | private readonly ISqlSugarClient _sqlSugarClient; |
| | | private readonly SqlSugarRepository<Collection> _CollectionRep; |
| | | private readonly SqlSugarRepository<SysDictData> _sysDictDataRep; |
| | | private readonly SqlSugarRepository<ChangeOrder> _ChangeOrderRep; |
| | | private readonly SqlSugarRepository<Neirongfabu> _neirongfabuRep; |
| | | |
| | | public ShouyeGonggaoService(SqlSugarRepository<TenderOrder> TenderOrderRep, ISqlSugarClient sqlSugarClient, |
| | | SqlSugarRepository<Collection> collectionRep, SqlSugarRepository<SysDictData> sysDictDataRep |
| | | , SqlSugarRepository<ChangeOrder> changeOrderRep |
| | | , SqlSugarRepository<Neirongfabu> neirongfabuRep) |
| | | { |
| | | _TenderOrderRep = TenderOrderRep; |
| | | _sqlSugarClient = sqlSugarClient; |
| | | _CollectionRep = collectionRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _ChangeOrderRep = changeOrderRep; |
| | | _neirongfabuRep = neirongfabuRep; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页查询非政府订单处理 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页查询非政府订单处理")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "ShouyeOrder"), HttpPost] |
| | | public async Task<List<TenderOrderOutput>> ShouyeOrder()//SHouyeTenderOrderInput input |
| | | { |
| | | |
| | | var query = _TenderOrderRep.AsQueryable().Where(x => (x.OrderStatus == 2 || x.OrderStatus == 3)) |
| | | // .WhereIF(!string.IsNullOrWhiteSpace(input.Hangyepinmu), u => u.Hangyepinmu == input.Hangyepinmu.Trim()) |
| | | .OrderByDescending(x => x.FabuDate) |
| | | .Take(7) |
| | | .Select<TenderOrderOutput>(); |
| | | |
| | | return await query.ToListAsync(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页变更公告 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页变更公告")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "ShouyeChangeOrder"), HttpPost] |
| | | public async Task<List<ChangeTenderOrderOut>> ShouyeChangeOrder()//SHouyeTenderOrderInput input |
| | | { |
| | | |
| | | var query = _ChangeOrderRep.AsQueryable() |
| | | .OrderByDescending(x => x.CreateTime) |
| | | .Select(x => new ChangeTenderOrderOut { Id = x.Id, TenderId = x.TenderId, ProjectName = x.ProjectName, ToubiaoStartDate = x.ToubiaoStartDate.Value, ToubiaoEndDate = x.ToubiaoEndDate.Value, KaibiaoDate = x.KaibiaoDate.Value, Biangengwenjian = x.Biangengwenjian, Kaibiaodidian = x.Kaibiaodidian, CreateTime = x.CreateTime }) |
| | | |
| | | .Take(7); |
| | | |
| | | return await query.ToListAsync(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页中标公告 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页中标公告")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "ShouyeZhongbiaoOrder"), HttpPost] |
| | | public async Task<List<TenderOrderOutput>> ShouyeZhongbiaoOrder()//SHouyeTenderOrderInput input |
| | | { |
| | | |
| | | var query = _TenderOrderRep.AsQueryable().Where(x => x.OrderStatus == 3 ) |
| | | // .WhereIF(!string.IsNullOrWhiteSpace(input.Hangyepinmu), u => u.Hangyepinmu == input.Hangyepinmu.Trim()) |
| | | .OrderByDescending(x => x.ZhongbiaoDate) |
| | | .Take(7) |
| | | .Select<TenderOrderOutput>(); |
| | | |
| | | return await query.ToListAsync(); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页公告信息-招采公告 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页公告信息-招采公告")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "PageGonggao"), HttpPost] |
| | | public async Task<SqlSugarPagedList<TenderOrderOutput>> PageGonggao(PageShouyeTendOrderInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _sqlSugarClient.Queryable< TenderOrder>() |
| | | //.Where((a, b) => a.CreateUserId == userId) |
| | | .Where(x => (x.OrderStatus == 2 || x.OrderStatus == 3)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), b=> b.ProjectName.Contains(input.ProjectName.Trim())) |
| | | .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, u => u.FabuDate >= input.CreateDateRange[0] && u.FabuDate <= input.CreateDateRange[1]) |
| | | |
| | | |
| | | |
| | | .Select(b => new TenderOrderOutput |
| | | { |
| | | Id = b.Id, |
| | | ProjectCode = b.ProjectCode, |
| | | ProjectName = b.ProjectName, |
| | | ToubiaoEndDate = b.ToubiaoEndDate.HasValue ? b.ToubiaoEndDate.Value : DateTime.Now, |
| | | KaibiaoDate = b.KaibiaoDate.HasValue ? b.KaibiaoDate.Value : DateTime.Now, |
| | | Xingzhengquyu = b.Xingzhengquyu, |
| | | XingzhengquyuName = b.XingzhengquyuName, |
| | | Dailijigoumingcheng = b.Dailijigoumingcheng, |
| | | ToubiaoStartDate = b.ToubiaoStartDate.HasValue ? b.ToubiaoStartDate.Value : DateTime.Now, |
| | | FabuDate = b.FabuDate.HasValue ? b.FabuDate.Value : DateTime.Now, |
| | | Caigoufangshi = b.Caigoufangshi, |
| | | }); |
| | | |
| | | var pagedList = await query.OrderBuilder(input, "", "KaibiaoDate", true).ToPagedListAsync(input.Page, input.PageSize); |
| | | |
| | | var sysDictDatas = await GetDataListByCode("Caigoufangshi"); |
| | | |
| | | foreach (var tenderOrderOutput in pagedList.Items) |
| | | { |
| | | var sysDictData = sysDictDatas.Where(x => x.Value == tenderOrderOutput.Caigoufangshi).FirstOrDefault(); |
| | | if (sysDictData != null) |
| | | { |
| | | tenderOrderOutput.CaigoufangshiName = sysDictData.Label; |
| | | } |
| | | } |
| | | return pagedList; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页公告信息-更正公告 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页公告信息-更正公告")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "PageGengzgeng"), HttpPost] |
| | | public async Task<SqlSugarPagedList<TenderOrderOutput>> PageGengzgeng(PageShouyeTendOrderInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _sqlSugarClient.Queryable<ChangeOrder, TenderOrder>((a, b) => a.TenderId == b.Id) |
| | | //.Where((a, b) => a.CreateUserId == userId) |
| | | |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), (a, b) => a.ProjectName.Contains(input.ProjectName.Trim())) |
| | | .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, (a, b) => a.CreateTime >= input.CreateDateRange[0] && a.CreateTime <= input.CreateDateRange[1]) |
| | | |
| | | |
| | | .Select((a, b) => new TenderOrderOutput |
| | | { |
| | | Id = b.Id, |
| | | ProjectCode = b.ProjectCode, |
| | | ProjectName = a.ProjectName, |
| | | ToubiaoEndDate = b.ToubiaoEndDate.HasValue ? b.ToubiaoEndDate.Value : DateTime.Now, |
| | | KaibiaoDate = b.KaibiaoDate.HasValue ? b.KaibiaoDate.Value : DateTime.Now, |
| | | Xingzhengquyu = b.Xingzhengquyu, |
| | | XingzhengquyuName = b.XingzhengquyuName, |
| | | Dailijigoumingcheng = b.Dailijigoumingcheng, |
| | | ToubiaoStartDate = b.ToubiaoStartDate.HasValue ? b.ToubiaoStartDate.Value : DateTime.Now, |
| | | CreateTime = a.CreateTime, |
| | | Caigoufangshi = b.Caigoufangshi, |
| | | }); |
| | | |
| | | var pagedList = await query.OrderBuilder(input, "", "a.CreateTime", true).ToPagedListAsync(input.Page, input.PageSize); |
| | | |
| | | var sysDictDatas = await GetDataListByCode("Caigoufangshi"); |
| | | |
| | | foreach (var tenderOrderOutput in pagedList.Items) |
| | | { |
| | | var sysDictData = sysDictDatas.Where(x => x.Value == tenderOrderOutput.Caigoufangshi).FirstOrDefault(); |
| | | if (sysDictData != null) |
| | | { |
| | | tenderOrderOutput.CaigoufangshiName = sysDictData.Label; |
| | | } |
| | | } |
| | | return pagedList; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取字典值集合 🔖 |
| | | /// </summary> |
| | | /// <param name="typeId"></param> |
| | | /// <param name="code"></param> |
| | | /// <returns></returns> |
| | | [NonAction] |
| | | public async Task<List<SysDictData>> GetDataListByCode(string code) |
| | | { |
| | | if (string.IsNullOrWhiteSpace(code)) |
| | | throw Oops.Oh(ErrorCodeEnum.D3011); |
| | | |
| | | var dictType = await _sysDictDataRep.Change<SysDictType>().AsQueryable() |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(code), u => u.Code == code) |
| | | .FirstAsync(); |
| | | if (dictType == null) return null; |
| | | |
| | | |
| | | |
| | | var dictDataList = await _sysDictDataRep.AsQueryable() |
| | | .Where(u => u.DictTypeId == dictType.Id) |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .OrderBy(u => new { u.OrderNo, u.Value, u.Code }) |
| | | .ToListAsync(); |
| | | |
| | | |
| | | return dictDataList; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页公告信息-中标公告 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页公告信息-中标公告")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "PageZhongbiaoGonggao"), HttpPost] |
| | | public async Task<SqlSugarPagedList<TenderOrderOutput>> PageZhongbiaoGonggao(PageShouyeTendOrderInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _sqlSugarClient.Queryable<TenderOrder>() |
| | | //.Where((a, b) => a.CreateUserId == userId) |
| | | .Where(x => x.OrderStatus == 3) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), b => b.ZhongbiaoTittle.Contains(input.ProjectName.Trim())) |
| | | .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, u => u.ZhongbiaoDate >= input.CreateDateRange[0] && u.ZhongbiaoDate <= input.CreateDateRange[1]) |
| | | |
| | | |
| | | |
| | | .Select(b => new TenderOrderOutput |
| | | { |
| | | Id = b.Id, |
| | | ProjectCode = b.ProjectCode, |
| | | ProjectName = b.ZhongbiaoTittle, |
| | | ToubiaoEndDate = b.ToubiaoEndDate.HasValue ? b.ToubiaoEndDate.Value : DateTime.Now, |
| | | KaibiaoDate = b.KaibiaoDate.HasValue ? b.KaibiaoDate.Value : DateTime.Now, |
| | | Xingzhengquyu = b.Xingzhengquyu, |
| | | XingzhengquyuName = b.XingzhengquyuName, |
| | | Dailijigoumingcheng = b.Dailijigoumingcheng, |
| | | ToubiaoStartDate = b.ToubiaoStartDate.HasValue ? b.ToubiaoStartDate.Value : DateTime.Now, |
| | | FabuDate = b.FabuDate.HasValue ? b.FabuDate.Value : DateTime.Now, |
| | | Caigoufangshi = b.Caigoufangshi, |
| | | ZhongbiaoDate = b.ZhongbiaoDate, |
| | | ZhongbiaoTittle = b.ZhongbiaoTittle |
| | | }); |
| | | |
| | | var pagedList = await query.OrderBuilder(input, "", "ZhongbiaoDate", true).ToPagedListAsync(input.Page, input.PageSize); |
| | | |
| | | var sysDictDatas = await GetDataListByCode("Caigoufangshi"); |
| | | |
| | | foreach (var tenderOrderOutput in pagedList.Items) |
| | | { |
| | | var sysDictData = sysDictDatas.Where(x => x.Value == tenderOrderOutput.Caigoufangshi).FirstOrDefault(); |
| | | if (sysDictData != null) |
| | | { |
| | | tenderOrderOutput.CaigoufangshiName = sysDictData.Label; |
| | | } |
| | | } |
| | | return pagedList; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页内容发布 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页内容发布")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "ShouyeNeirongfabu"), HttpPost] |
| | | public async Task<List<NeirongfabuOutput>> ShouyeNeirongfabu(SHouyeNeirongfabuInput input) |
| | | { |
| | | |
| | | var query = _neirongfabuRep.AsQueryable() |
| | | .Where(x=>x.IsFabu == true) |
| | | .WhereIF(input.Leirongneixing.HasValue, u => u.Leirongneixing == input.Leirongneixing.Value) |
| | | .WhereIF(input.IsShouyexianshi.HasValue, u => u.IsShouyexianshi == input.IsShouyexianshi.Value) |
| | | // .OrderBy(x => x.Sort) |
| | | .OrderByDescending(x=>x.FabuDate) |
| | | .Take(7) |
| | | .Select(x => new NeirongfabuOutput |
| | | { |
| | | Id = x.Id, |
| | | Leirongneixing = x.Leirongneixing, |
| | | IsFabu = x.IsFabu, |
| | | IsShouyexianshi = x.IsShouyexianshi, |
| | | NeirongTittle = x.NeirongTittle, |
| | | Fengmiantupian = x.Fengmiantupian, |
| | | Sort = x.Sort, |
| | | FabuDate = x.FabuDate, |
| | | NeirongZhaiyao = x.NeirongZhaiyao, |
| | | // NeirongMiaoshu = x.NeirongMiaoshu, |
| | | CreateTime = x.CreateTime, |
| | | UpdateTime = x.UpdateTime, |
| | | CreateUserId = x.CreateUserId, |
| | | CreateUserName = x.CreateUserName, |
| | | UpdateUserId = x.UpdateUserId, |
| | | UpdateUserName = x.UpdateUserName, |
| | | }); |
| | | |
| | | return await query.ToListAsync(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页咨询中心-内容发布 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("首页咨询中心-内容发布")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "PageNeirongfabu"), HttpPost] |
| | | public async Task<SqlSugarPagedList<NeirongfabuOutput>> PageNeirongfabu(PageShouyeNeirongfabuInput input) |
| | | { |
| | | |
| | | |
| | | var query = _neirongfabuRep.AsQueryable() |
| | | .Where(x => x.IsFabu == true) |
| | | .WhereIF(input.Leirongneixing.HasValue, u => u.Leirongneixing == input.Leirongneixing.Value) |
| | | .WhereIF(input.IsShouyexianshi.HasValue, u => u.IsShouyexianshi == input.IsShouyexianshi.Value) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.NeirongTittle), b => b.NeirongTittle.Contains(input.NeirongTittle.Trim())) |
| | | .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, u => u.FabuDate >= input.CreateDateRange[0] && u.FabuDate <= input.CreateDateRange[1]) |
| | | |
| | | |
| | | .Select(x => new NeirongfabuOutput |
| | | { |
| | | Id = x.Id, |
| | | Leirongneixing = x.Leirongneixing, |
| | | IsFabu = x.IsFabu, |
| | | IsShouyexianshi = x.IsShouyexianshi, |
| | | NeirongTittle = x.NeirongTittle, |
| | | Fengmiantupian = x.Fengmiantupian, |
| | | Sort = x.Sort, |
| | | FabuDate = x.FabuDate, |
| | | NeirongZhaiyao = x.NeirongZhaiyao, |
| | | // NeirongMiaoshu = x.NeirongMiaoshu, |
| | | CreateTime = x.CreateTime, |
| | | UpdateTime = x.UpdateTime, |
| | | CreateUserId = x.CreateUserId, |
| | | CreateUserName = x.CreateUserName, |
| | | UpdateUserId = x.UpdateUserId, |
| | | UpdateUserName = x.UpdateUserName, |
| | | }); |
| | | |
| | | var pagedList = await query.OrderBuilder(input, "", "FabuDate", true).ToPagedListAsync(input.Page, input.PageSize); |
| | | |
| | | var sysDictDatas = await GetDataListByCode("Leirongneixing"); |
| | | |
| | | foreach (var neirongfabuOutput in pagedList.Items) |
| | | { |
| | | var sysDictData = sysDictDatas.Where(x => x.Value == neirongfabuOutput.Leirongneixing.Value.ToString()).FirstOrDefault(); |
| | | if (sysDictData != null) |
| | | { |
| | | neirongfabuOutput.LeirongneixingName = sysDictData.Label; |
| | | } |
| | | |
| | | if (neirongfabuOutput.IsFabu.HasValue && neirongfabuOutput.IsFabu.Value) |
| | | { |
| | | neirongfabuOutput.IsFabuName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsFabuName = "否"; |
| | | } |
| | | |
| | | if (neirongfabuOutput.IsShouyexianshi.HasValue && neirongfabuOutput.IsShouyexianshi.Value) |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "否"; |
| | | } |
| | | } |
| | | return pagedList; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取内容发布详情 ℹ️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("获取内容发布详情")] |
| | | [AllowAnonymous] |
| | | [ApiDescriptionSettings(Name = "NeirongfabuDetail"), HttpGet] |
| | | public async Task<NeirongfabuOutput> NeirongfabuDetail([FromQuery] QueryByIdTenderOrderInput input) |
| | | { |
| | | var Leirongneixing = await GetDataListByCode("Leirongneixing"); |
| | | |
| | | var neirongfabuOutput = await _neirongfabuRep.AsQueryable().Where(x => x.Id == input.Id).Select<NeirongfabuOutput>().FirstAsync(); |
| | | if (neirongfabuOutput != null) |
| | | { |
| | | |
| | | if (neirongfabuOutput.Leirongneixing.HasValue) |
| | | { |
| | | neirongfabuOutput.LeirongneixingName = Leirongneixing.Where(x => x.Value == neirongfabuOutput.Leirongneixing.Value.ToString()).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (neirongfabuOutput.IsFabu.HasValue && neirongfabuOutput.IsFabu.Value) |
| | | { |
| | | neirongfabuOutput.IsFabuName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsFabuName = "否"; |
| | | } |
| | | |
| | | if (neirongfabuOutput.IsShouyexianshi.HasValue && neirongfabuOutput.IsShouyexianshi.Value) |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "是"; |
| | | } |
| | | else |
| | | { |
| | | neirongfabuOutput.IsShouyexianshiName = "否"; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | return neirongfabuOutput; |
| | | } |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core.Service; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using SqlSugar; |
| | | using System.ComponentModel; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Admin.NET.Application; |
| | | using Admin.NET.Core; |
| | | using FZCZTB.NET.MD; |
| | | using Furion.DynamicApiController; |
| | | using Furion.DependencyInjection; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using NewLife.Xml; |
| | | using AngleSharp.Dom; |
| | | using DocumentFormat.OpenXml.Office2010.ExcelAc; |
| | | using Furion; |
| | | using System.Security.Claims; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using RazorEngine.Compilation.ImpromptuInterface; |
| | | using MimeKit; |
| | | using static SKIT.FlurlHttpClient.Wechat.Api.Events.TransferCustomerServiceReply.Types; |
| | | using Aop.Api.Domain; |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 供应商接口 🧩 |
| | | /// </summary> |
| | | [ApiDescriptionSettings(ApplicationConst.GroupNameDD, Order = 100)] |
| | | public class SuplierTendOrderService : IDynamicApiController, ITransient |
| | | { |
| | | private readonly SqlSugarRepository<TenderOrder> _TenderOrderRep; |
| | | private readonly ISqlSugarClient _sqlSugarClient; |
| | | private readonly SqlSugarRepository<Collection> _CollectionRep; |
| | | private readonly SqlSugarRepository<SysDictData> _sysDictDataRep; |
| | | private readonly SqlSugarRepository<TenderOrderBidding> _TenderOrderBiddingRep; |
| | | |
| | | |
| | | public SuplierTendOrderService(SqlSugarRepository<TenderOrder> TenderOrderRep, ISqlSugarClient sqlSugarClient, |
| | | SqlSugarRepository<Collection> collectionRep |
| | | , SqlSugarRepository<SysDictData> sysDictDataRep |
| | | , SqlSugarRepository<TenderOrderBidding> TenderOrderBiddingRep) |
| | | { |
| | | _TenderOrderRep = TenderOrderRep; |
| | | _sqlSugarClient = sqlSugarClient; |
| | | _CollectionRep = collectionRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _TenderOrderBiddingRep = TenderOrderBiddingRep; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 供应商收藏或者取消收藏 ➕ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("供应商收藏或者取消收藏")] |
| | | [ApiDescriptionSettings(Name = "AddCollection"), HttpPost] |
| | | public async Task<bool> AddCollection(SuplierTendOrderInput input) |
| | | { |
| | | var entity = new Collection(); ; |
| | | |
| | | 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); |
| | | |
| | | var collection = await _CollectionRep.AsQueryable().Where(x =>x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync(); |
| | | if (input.isColection && collection != null) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | if (!input.isColection && collection != null) |
| | | { |
| | | return await _CollectionRep.DeleteAsync(collection); |
| | | } |
| | | |
| | | |
| | | if (!input.isColection && collection == null) |
| | | { |
| | | throw Oops.Oh("不存在的收藏!"); |
| | | } |
| | | |
| | | if (input.isColection && collection == null) |
| | | { |
| | | entity.Id = Guid.NewGuid(); |
| | | entity.CreateTime = DateTime.Now; |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.CreateUserId = usertrueId; |
| | | entity.CreateUserName = RealName; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | entity.TenderId = input.TenderOrderId; |
| | | } |
| | | return await _CollectionRep.InsertAsync(entity); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 供应商查询收藏 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("供应商查询收藏")] |
| | | [ApiDescriptionSettings(Name = "PageCollection"), HttpPost] |
| | | public async Task<SqlSugarPagedList<TenderOrderOutput>> PageCollection(PageSuplierTendOrderInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _sqlSugarClient.Queryable<Collection,TenderOrder>((a, b) => a.TenderId == b.Id) |
| | | .Where((a, b) => a.CreateUserId == userId) |
| | | |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), (a, b) => b.ProjectName.Contains(input.ProjectName.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Dailijigoumingcheng), (a, b) => b.Dailijigoumingcheng.Contains(input.Dailijigoumingcheng.Trim())) |
| | | |
| | | |
| | | .Select((a, b) => new TenderOrderOutput |
| | | { |
| | | Id = b.Id, |
| | | ProjectCode = b.ProjectCode, |
| | | ProjectName = b.ProjectName, |
| | | ToubiaoEndDate = b.ToubiaoEndDate.HasValue? b.ToubiaoEndDate.Value:DateTime.Now, |
| | | KaibiaoDate = b.KaibiaoDate.HasValue ? b.KaibiaoDate.Value : DateTime.Now, |
| | | Xingzhengquyu = b.Xingzhengquyu, |
| | | XingzhengquyuName = b.XingzhengquyuName, |
| | | Dailijigoumingcheng = b.Dailijigoumingcheng, |
| | | ToubiaoStartDate = b.ToubiaoStartDate.HasValue ? b.ToubiaoStartDate.Value : DateTime.Now, |
| | | FabuDate = b.FabuDate.HasValue ? b.FabuDate.Value : DateTime.Now, |
| | | }); |
| | | return await query.OrderBuilder(input, "", "KaibiaoDate", true).ToPagedListAsync(input.Page, input.PageSize); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取支付方式集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取支付方式集合")] |
| | | [ApiDescriptionSettings(Name = "GetFukuanfangshiList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetFukuanfangshiList() |
| | | { |
| | | return await GetDataListByCode("Fukuanfangshi"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取字典值集合 🔖 |
| | | /// </summary> |
| | | /// <param name="typeId"></param> |
| | | /// <param name="code"></param> |
| | | /// <returns></returns> |
| | | [NonAction] |
| | | public async Task<List<SysDictData>> GetDataListByCode(string code) |
| | | { |
| | | if (string.IsNullOrWhiteSpace(code)) |
| | | throw Oops.Oh(ErrorCodeEnum.D3011); |
| | | |
| | | var dictType = await _sysDictDataRep.Change<SysDictType>().AsQueryable() |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(code), u => u.Code == code) |
| | | .FirstAsync(); |
| | | if (dictType == null) return null; |
| | | |
| | | |
| | | |
| | | var dictDataList = await _sysDictDataRep.AsQueryable() |
| | | .Where(u => u.DictTypeId == dictType.Id) |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .OrderBy(u => new { u.OrderNo, u.Value, u.Code }) |
| | | .ToListAsync(); |
| | | return dictDataList; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 供应商支付报名费 ➕ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("供应商支付报名费")] |
| | | [ApiDescriptionSettings(Name = "AddBaomingfei"), HttpPost] |
| | | public async Task<bool> AddBaomingfei(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); |
| | | |
| | | |
| | | 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.Value; |
| | | tenderOrderBidding.TransferTime = DateTime.Now; |
| | | tenderOrderBidding.TransferNo = "BMF"+tenderOrderBidding.Id.ToString("N"); |
| | | |
| | | |
| | | 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.Zhifujine = tenderOrder.Baomingfei.Value; |
| | | tenderOrderBidding.TransferTime = DateTime.Now; |
| | | tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N"); |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | | tenderOrderBidding.UpdateUserId = usertrueId; |
| | | tenderOrderBidding.UpdateUserName = RealName; |
| | | return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Oh("无需支付报名费!"); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 供应商上传招标文件 ➕ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("供应商上传招标文件")] |
| | | [ApiDescriptionSettings(Name = "AddToubiao"), HttpPost] |
| | | public async Task<bool> AddToubiao(SuplierToubiaoInput 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); |
| | | |
| | | var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == userId).FirstAsync(); |
| | | |
| | | 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) |
| | | { |
| | | if (tenderOrderBidding == null || (!tenderOrderBidding.IsTransfer.HasValue || tenderOrderBidding.IsTransfer.Value == false)) |
| | | { |
| | | throw Oops.Oh("必须先支付才能投标!"); |
| | | } |
| | | } |
| | | |
| | | if(tenderOrderBidding == null) |
| | | { |
| | | tenderOrderBidding = new TenderOrderBidding(); |
| | | tenderOrderBidding.Id = Guid.NewGuid(); |
| | | tenderOrderBidding.TenderId = input.TenderOrderId; |
| | | tenderOrderBidding.Touboaowenjian = input.Touboaowenjian; |
| | | 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; |
| | | return await _TenderOrderBiddingRep.InsertAsync(tenderOrderBidding); |
| | | } |
| | | |
| | | tenderOrderBidding.Touboaowenjian = input.Touboaowenjian; |
| | | 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 = "PageSupplierOrderList"), HttpPost] |
| | | public async Task<SqlSugarPagedList<TenderOrderOutput>> PageSupplierOrderList(PageSupplierOrderInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _sqlSugarClient.Queryable<TenderOrderBidding, TenderOrder>((a, b) => a.TenderId == b.Id) |
| | | .Where((a, b) => a.CreateUserId == userId) |
| | | |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), (a, b) => b.ProjectName.Contains(input.ProjectName.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Dailijigoumingcheng), (a, b) => b.Dailijigoumingcheng.Contains(input.Dailijigoumingcheng.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Caigourenmingcheng), (a, b) => b.Caigourenmingcheng.Contains(input.Caigourenmingcheng.Trim())) |
| | | .WhereIF(input.ZhiyiTousu.HasValue && input.ZhiyiTousu.Value, (a, b) => (b.Zhiyi == true || b.Tousu == true) ) |
| | | .WhereIF(input.ZhiyiTousu.HasValue && input.ZhiyiTousu.Value == false, (a, b) => (b.Zhiyi == false || b.Zhiyi == null) && (b.Tousu == false || b.Tousu == null)) |
| | | .WhereIF(input.IsSelected.HasValue && input.IsSelected.Value, (a, b) => a.IsSelected == true ) |
| | | .WhereIF(input.IsSelected.HasValue && input.IsSelected.Value == false, (a, b) => (a.IsSelected == false || a.IsSelected == null) ) |
| | | |
| | | |
| | | .Select((a, b) => new TenderOrderOutput |
| | | { |
| | | Id = b.Id, |
| | | ToubiaoStartDate = b.ToubiaoStartDate.HasValue ? b.ToubiaoStartDate.Value : DateTime.Now, |
| | | Xingzhengquyu = b.Xingzhengquyu, |
| | | XingzhengquyuName = b.XingzhengquyuName, |
| | | ProjectCode = b.ProjectCode, |
| | | ProjectName = b.ProjectName, |
| | | Dailijigoumingcheng = b.Dailijigoumingcheng, |
| | | ToubiaoEndDate = b.ToubiaoEndDate.HasValue ? b.ToubiaoEndDate.Value : DateTime.Now, |
| | | KaibiaoDate = b.KaibiaoDate.HasValue ? b.KaibiaoDate.Value : DateTime.Now, |
| | | OrderStatus = b.OrderStatus, |
| | | IsSelected = a.IsSelected, |
| | | IsSelectedName = a.IsSelected.HasValue&& a.IsSelected.Value?"是":"否", |
| | | FabuDate = b.FabuDate.HasValue ? b.FabuDate.Value : DateTime.Now, |
| | | }); |
| | | |
| | | var pagedList = await query.OrderBuilder(input, "", "KaibiaoDate", true).ToPagedListAsync(input.Page, input.PageSize); |
| | | var sysDictDatas = await GetDataListByCode("OrderStatus"); |
| | | |
| | | foreach (var tenderOrderOutput in pagedList.Items) |
| | | { |
| | | var sysDictData = sysDictDatas.Where(x => x.Value == tenderOrderOutput.OrderStatus.Value.ToString()).FirstOrDefault(); |
| | | if (sysDictData != null) |
| | | { |
| | | tenderOrderOutput.OrderStatusName = sysDictData.Label; |
| | | } |
| | | } |
| | | return pagedList; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using SqlSugar; |
| | | |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 政府采购投诉数据处理输出参数 |
| | | /// </summary> |
| | | public class TenderOrderDto |
| | | { |
| | | /// <summary> |
| | | /// 投诉ID,主键 |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购方式 |
| | | /// </summary> |
| | | public string Caigoufangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购遇算 |
| | | /// </summary> |
| | | public decimal? Caigouyusuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则 |
| | | /// </summary> |
| | | public string Dingbiaoguize { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 报名费 |
| | | /// </summary> |
| | | public decimal? Baomingfei { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标保证金 |
| | | /// </summary> |
| | | public decimal? Toubiaobaozhengjin { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 联合体投标 |
| | | /// </summary> |
| | | public string Lianhetitoubiao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标方式 |
| | | /// </summary> |
| | | public string Kaibiaofangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否分包 |
| | | /// </summary> |
| | | public string Shifoufenbao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否推送宣传 |
| | | /// </summary> |
| | | public string Shifoutuisongxuanchuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购人名称 |
| | | /// </summary> |
| | | public string Caigourenmingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域 |
| | | /// </summary> |
| | | public string Xingzhengquyu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域名称 |
| | | /// </summary> |
| | | public string XingzhengquyuName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 机构代码 |
| | | /// </summary> |
| | | public string Jigoudaima { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代码类型 |
| | | /// </summary> |
| | | public string Daimaleixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系人 |
| | | /// </summary> |
| | | public string Lianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系电话 |
| | | public string Lianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 通信地址 |
| | | /// </summary> |
| | | public string Tongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 电子邮件 |
| | | /// </summary> |
| | | public string Dianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目经办人 |
| | | /// </summary> |
| | | public string Xiangmujingbanren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 职务 |
| | | /// </summary> |
| | | public string Zhiwu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 经办人电话 |
| | | /// </summary> |
| | | public string Jingbanrendianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系人 |
| | | /// </summary> |
| | | public string DailiLianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系电话 |
| | | /// </summary> |
| | | public string DailiLianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构电子邮件 |
| | | /// </summary> |
| | | public string DailiDianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构通信地址 |
| | | /// </summary> |
| | | public string DailiTongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理 |
| | | /// </summary> |
| | | public string DailiXiangmujingli { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理联系电话 |
| | | /// </summary> |
| | | public string DailijingliLianxidianhua { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 质疑有无 |
| | | /// </summary> |
| | | public bool? Zhiyi { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投诉有无 |
| | | /// </summary> |
| | | public bool? Tousu { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 订单状态 |
| | | /// </summary> |
| | | public int? OrderStatus { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | public DateTime ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | public DateTime ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | public DateTime KaibiaoDate { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | public string Kaibiaodidian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标供应商Id |
| | | /// </summary> |
| | | public long? ZhongbiaoId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标供应商姓名 |
| | | /// </summary> |
| | | public string ZhongbiaoName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家Id |
| | | /// </summary> |
| | | public string ZhuanjiaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家姓名 |
| | | /// </summary> |
| | | public string ZhuanjiaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public DateTime? CreateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 更新时间 |
| | | /// </summary> |
| | | public DateTime? UpdateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者Id |
| | | /// </summary> |
| | | public long? CreateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者姓名 |
| | | /// </summary> |
| | | public string? CreateUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者Id |
| | | /// </summary> |
| | | public long? UpdateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者姓名 |
| | | /// </summary> |
| | | public string? UpdateUserName { get; set; } |
| | | |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using Magicodes.ExporterAndImporter.Excel; |
| | | using FZCZTB.NET.MD; |
| | | using SqlSugar; |
| | | |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 非政府订单基础输入参数 |
| | | /// </summary> |
| | | public class TenderOrderBaseInput |
| | | { |
| | | /// <summary> |
| | | /// 主键Id |
| | | /// </summary> |
| | | public virtual Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "项目名称不能为空")] |
| | | public virtual string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "项目编号不能为空")] |
| | | public virtual string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | public virtual string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购方式 |
| | | /// </summary> |
| | | public virtual string Caigoufangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购遇算 |
| | | /// </summary> |
| | | public virtual decimal? Caigouyusuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则 |
| | | /// </summary> |
| | | public virtual string Dingbiaoguize { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 报名费 |
| | | /// </summary> |
| | | public virtual decimal? Baomingfei { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标保证金 |
| | | /// </summary> |
| | | public virtual decimal? Toubiaobaozhengjin { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 联合体投标 |
| | | /// </summary> |
| | | public virtual string Lianhetitoubiao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标方式 |
| | | /// </summary> |
| | | public virtual string Kaibiaofangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否分包 |
| | | /// </summary> |
| | | public virtual string Shifoufenbao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否推送宣传 |
| | | /// </summary> |
| | | public virtual string Shifoutuisongxuanchuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购人名称 |
| | | /// </summary> |
| | | public virtual string Caigourenmingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域 |
| | | /// </summary> |
| | | public virtual string Xingzhengquyu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域名称 |
| | | /// </summary> |
| | | public virtual string XingzhengquyuName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 机构代码 |
| | | /// </summary> |
| | | public virtual string Jigoudaima { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代码类型 |
| | | /// </summary> |
| | | public virtual string Daimaleixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系人 |
| | | /// </summary> |
| | | public virtual string Lianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系电话 |
| | | public virtual string Lianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 通信地址 |
| | | /// </summary> |
| | | public virtual string Tongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 电子邮件 |
| | | /// </summary> |
| | | public virtual string Dianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目经办人 |
| | | /// </summary> |
| | | public virtual string Xiangmujingbanren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 职务 |
| | | /// </summary> |
| | | public virtual string Zhiwu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 经办人电话 |
| | | /// </summary> |
| | | public virtual string Jingbanrendianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | public virtual string Dailijigoumingcheng { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系人 |
| | | /// </summary> |
| | | public virtual string DailiLianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系电话 |
| | | /// </summary> |
| | | public virtual string DailiLianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构电子邮件 |
| | | /// </summary> |
| | | public virtual string DailiDianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构通信地址 |
| | | /// </summary> |
| | | public virtual string DailiTongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理 |
| | | /// </summary> |
| | | public virtual string DailiXiangmujingli { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理联系电话 |
| | | /// </summary> |
| | | public virtual string DailijingliLianxidianhua { get; set; } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单分页查询输入参数 |
| | | /// </summary> |
| | | public class PageTenderOrderInput : BasePageInput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 新增日期范围 |
| | | /// </summary> |
| | | public DateTime?[] CreateDateRange { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域 |
| | | /// </summary> |
| | | public string Xingzhengquyu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 订单状态 |
| | | /// </summary> |
| | | public int? OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 质疑有无 |
| | | /// </summary> |
| | | public bool? Zhiyi { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投诉有无 |
| | | /// </summary> |
| | | public bool? Tousu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标供应商姓名 |
| | | /// </summary> |
| | | public string ZhongbiaoName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家姓名 |
| | | /// </summary> |
| | | public string ZhuanjiaName { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单增加输入参数 |
| | | /// </summary> |
| | | public class AddTenderOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "项目编号不能为空")] |
| | | [MaxLength(100, ErrorMessage = "项目编号字符长度不能超过50")] |
| | | public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "项目名称不能为空")] |
| | | [MaxLength(200, ErrorMessage = "项目名称字符长度不能超过200")] |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "行业品目字符长度不能超过100")] |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购方式 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "采购方式字符长度不能超过100")] |
| | | public string Caigoufangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购遇算 |
| | | /// </summary> |
| | | |
| | | public decimal? Caigouyusuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "定标规则字符长度不能超过100")] |
| | | public string Dingbiaoguize { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 报名费 |
| | | /// </summary> |
| | | public decimal? Baomingfei { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标保证金 |
| | | /// </summary> |
| | | public decimal? Toubiaobaozhengjin { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联合体投标 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "联合体投标字符长度不能超过100")] |
| | | public string Lianhetitoubiao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标方式 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "开标方式字符长度不能超过100")] |
| | | public string Kaibiaofangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否分包 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = " 是否分包字符长度不能超过100")] |
| | | public string Shifoufenbao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否推送宣传 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "是否推送宣传字符长度不能超过100")] |
| | | public string Shifoutuisongxuanchuan { 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> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构名称字符长度不能超过100")] |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系人 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构联系人字符长度不能超过100")] |
| | | public string DailiLianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系电话 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构联系电话字符长度不能超过100")] |
| | | public string DailiLianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构电子邮件 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构电子邮件字符长度不能超过100")] |
| | | public string DailiDianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构通信地址 |
| | | /// </summary> |
| | | [MaxLength(205, ErrorMessage = "代理机构通信地址字符长度不能超过250")] |
| | | public string DailiTongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构项目经理字符长度不能超过100")] |
| | | public string DailiXiangmujingli { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理联系电话 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构项目经理联系电话字符长度不能超过100")] |
| | | public string DailijingliLianxidianhua { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单删除输入参数 |
| | | /// </summary> |
| | | public class DeleteTenderOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 主键Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "主键Id不能为空")] |
| | | public Guid Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单首页查询 |
| | | /// </summary> |
| | | public class SHouyeTenderOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单更新输入参数 |
| | | /// </summary> |
| | | public class UpdateTenderOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 主键Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "主键Id不能为空")] |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "项目编号不能为空")] |
| | | [MaxLength(100, ErrorMessage = "项目编号字符长度不能超过50")] |
| | | public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "项目名称不能为空")] |
| | | [MaxLength(200, ErrorMessage = "项目名称字符长度不能超过200")] |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "行业品目字符长度不能超过100")] |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购方式 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "采购方式字符长度不能超过100")] |
| | | public string Caigoufangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购遇算 |
| | | /// </summary> |
| | | |
| | | public decimal? Caigouyusuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "定标规则字符长度不能超过100")] |
| | | public string Dingbiaoguize { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 报名费 |
| | | /// </summary> |
| | | public decimal? Baomingfei { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标保证金 |
| | | /// </summary> |
| | | public decimal? Toubiaobaozhengjin { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联合体投标 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "联合体投标字符长度不能超过100")] |
| | | public string Lianhetitoubiao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标方式 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "开标方式字符长度不能超过100")] |
| | | public string Kaibiaofangshi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否分包 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = " 是否分包字符长度不能超过100")] |
| | | public string Shifoufenbao { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否推送宣传 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "是否推送宣传字符长度不能超过100")] |
| | | public string Shifoutuisongxuanchuan { 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> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构名称字符长度不能超过100")] |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系人 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构联系人字符长度不能超过100")] |
| | | public string DailiLianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系电话 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构联系电话字符长度不能超过100")] |
| | | public string DailiLianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构电子邮件 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构电子邮件字符长度不能超过100")] |
| | | public string DailiDianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构通信地址 |
| | | /// </summary> |
| | | [MaxLength(205, ErrorMessage = "代理机构通信地址字符长度不能超过250")] |
| | | public string DailiTongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构项目经理字符长度不能超过100")] |
| | | public string DailiXiangmujingli { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理联系电话 |
| | | /// </summary> |
| | | [MaxLength(100, ErrorMessage = "代理机构项目经理联系电话字符长度不能超过100")] |
| | | public string DailijingliLianxidianhua { get; set; } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单主键查询输入参数 |
| | | /// </summary> |
| | | public class QueryByIdTenderOrderInput : DeleteTenderOrderInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单修改质疑 |
| | | /// </summary> |
| | | public class UpdateZhiyiByIdTenderOrderInput : DeleteTenderOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 是否质疑 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "是否质疑不能为空")] |
| | | public bool Zhiyi { get; set; } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单修改标题 |
| | | /// </summary> |
| | | public class UpdateTittleByIdTenderOrderInput : DeleteTenderOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 标题 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "标题不能为空")] |
| | | public string ProjectName { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 非政府订单数据导入实体 |
| | | /// </summary> |
| | | [ExcelImporter(SheetIndex = 1, IsOnlyErrorRows = true)] |
| | | public class ImportTenderOrderInput : BaseImportInput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "*项目编号")] |
| | | [ExporterHeader("*项目编号", Format = "", Width = 25, IsBold = true)] |
| | | public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "*项目名称")] |
| | | [ExporterHeader("*项目名称", Format = "", Width = 25, IsBold = true)] |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 决定日期 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "*决定日期")] |
| | | [ExporterHeader("*决定日期", Format = "", Width = 25, IsBold = true)] |
| | | public DateTime DecisionDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购人 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "*采购人")] |
| | | [ExporterHeader("*采购人", Format = "", Width = 25, IsBold = true)] |
| | | public string Purchaser { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购代理机构 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "*采购代理机构")] |
| | | [ExporterHeader("*采购代理机构", Format = "", Width = 25, IsBold = true)] |
| | | public string ProcurementAgency { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投诉人 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "投诉人")] |
| | | [ExporterHeader("投诉人", Format = "", Width = 25, IsBold = true)] |
| | | public string? Complainant { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购监督部门 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "采购监督部门")] |
| | | [ExporterHeader("采购监督部门", Format = "", Width = 25, IsBold = true)] |
| | | public string? ProcurementSupervisionDepartment { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 线上地址 |
| | | /// </summary> |
| | | [ImporterHeader(Name = "线上地址")] |
| | | [ExporterHeader("线上地址", Format = "", Width = 25, IsBold = true)] |
| | | public string? Url { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单增加输入参数 |
| | | /// </summary> |
| | | public class FabuTenderOrderInput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 主键Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "主键Id不能为空")] |
| | | public Guid Id { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "投标报名开始时间不能为空")] |
| | | public DateTime ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "投标报名结束时间不能为空")] |
| | | public DateTime ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "开标时间不能为空")] |
| | | public DateTime KaibiaoDate { get; set; } |
| | | |
| | | ///// <summary> |
| | | ///// 发布时间 |
| | | ///// </summary> |
| | | //[SugarColumn(IsNullable = true, ColumnDescription = "发布时间")] |
| | | //public DateTime? FabuDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件 |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "招标文件字符长度不能超过512")] |
| | | [Required(ErrorMessage = "招标文件不能为空")] |
| | | public string Zhaobiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "附件字符长度不能超过512")] |
| | | public string Fujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | [MaxLength(250, ErrorMessage = "开标地点字符长度不能超过250")] |
| | | [Required(ErrorMessage = "开标地点不能为空")] |
| | | public string Kaibiaodidian { get; set; } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单变更公告 |
| | | /// </summary> |
| | | public class ChangeTenderOrderInput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 招标主键Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "招标主键Id不能为空")] |
| | | public Guid TenderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 变更名称 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "变更名称Id不能为空")] |
| | | public string ProjectName { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "投标报名开始时间不能为空")] |
| | | public DateTime ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "投标报名结束时间不能为空")] |
| | | public DateTime ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "开标时间不能为空")] |
| | | public DateTime KaibiaoDate { get; set; } |
| | | |
| | | ///// <summary> |
| | | ///// 发布时间 |
| | | ///// </summary> |
| | | //[SugarColumn(IsNullable = true, ColumnDescription = "发布时间")] |
| | | //public DateTime? FabuDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件 |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "招标文件字符长度不能超过512")] |
| | | [Required(ErrorMessage = "招标文件不能为空")] |
| | | public string Biangengwenjian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | [MaxLength(250, ErrorMessage = "开标地点字符长度不能超过250")] |
| | | [Required(ErrorMessage = "开标地点不能为空")] |
| | | public string Kaibiaodidian { get; set; } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 工银上收藏输入 |
| | | /// </summary> |
| | | public class SuplierTendOrderInput |
| | | { |
| | | /// <summary> |
| | | /// 招标Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "招标Id不能为空")] |
| | | public Guid TenderOrderId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否收藏 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "是否收藏不能为空")] |
| | | public bool isColection { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 供应商上传招标文件 |
| | | /// </summary> |
| | | public class SuplierToubiaoInput |
| | | { |
| | | /// <summary> |
| | | /// 招标Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "招标Id不能为空")] |
| | | public Guid TenderOrderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标文件 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "投标文件不能为空")] |
| | | public string Touboaowenjian { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 代理商发布中标文件 |
| | | /// </summary> |
| | | public class OrderZhongbiaoInput |
| | | { |
| | | /// <summary> |
| | | /// 招标Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "招标Id不能为空")] |
| | | public Guid TenderOrderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标文件 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "中标文件不能为空")] |
| | | public string Zhongbiaowenjian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标供应商id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "中标供应商id不能为空")] |
| | | public long SupplierUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标供应商Name |
| | | /// </summary> |
| | | [Required(ErrorMessage = "中标供应商Name不能为空")] |
| | | public string SupplierUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标tittle |
| | | /// </summary> |
| | | [Required(ErrorMessage = "中标tittle不能为空")] |
| | | public string ZhongbiaoTittle { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 供应商支付报名费 |
| | | /// </summary> |
| | | public class SuplierBaomingfeiInput |
| | | { |
| | | /// <summary> |
| | | /// 招标Id |
| | | /// </summary> |
| | | [Required(ErrorMessage = "招标Id不能为空")] |
| | | public Guid TenderOrderId { get; set; } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单分页查询输入参数 |
| | | /// </summary> |
| | | public class PageSuplierTendOrderInput : BasePageInput |
| | | { |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | // <summary> |
| | | /// 供应商参与的项目查询 |
| | | /// </summary> |
| | | public class PageSupplierOrderInput : BasePageInput |
| | | { |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购人名称 |
| | | /// </summary> |
| | | public string Caigourenmingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否质疑投诉 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "是否质疑投诉")] |
| | | public bool? ZhiyiTousu { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "是否中标")] |
| | | public bool? IsSelected { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 首页公告信息 |
| | | /// </summary> |
| | | public class PageShouyeTendOrderInput : BasePageInput |
| | | { |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 新增日期范围 |
| | | /// </summary> |
| | | public DateTime?[] CreateDateRange { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单首页查询 |
| | | /// </summary> |
| | | public class SHouyeNeirongfabuInput |
| | | { |
| | | /// <summary> |
| | | /// 内容类型 |
| | | /// </summary> |
| | | public int? Leirongneixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示 |
| | | /// </summary> |
| | | public bool? IsShouyexianshi { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单首页翻页查询查询 |
| | | /// </summary> |
| | | public class PageShouyeNeirongfabuInput : BasePageInput |
| | | { |
| | | /// <summary> |
| | | /// 内容类型 |
| | | /// </summary> |
| | | public int? Leirongneixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否首页显示 |
| | | /// </summary> |
| | | public bool? IsShouyexianshi { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 内容标题 |
| | | /// </summary> |
| | | public string NeirongTittle { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新增日期范围 |
| | | /// </summary> |
| | | public DateTime?[] CreateDateRange { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | using Admin.NET.Core; |
| | | using FZCZTB.NET.MD; |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using SqlSugar; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using static FZCZTB.TSCL.Application.ChangeTenderOrderOut; |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 政府采购投诉数据处理输出参数 |
| | | /// </summary> |
| | | public class TenderOrderOutput |
| | | { |
| | | /// <summary> |
| | | /// 投诉ID,主键 |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目编号 |
| | | /// </summary> |
| | | public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目 |
| | | /// </summary> |
| | | public string Hangyepinmu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行业品目名称 |
| | | /// </summary> |
| | | public string HangyepinmuName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购方式 |
| | | /// </summary> |
| | | public string Caigoufangshi { get; set; } |
| | | /// <summary> |
| | | /// 采购方式名称 |
| | | /// </summary> |
| | | public string CaigoufangshiName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购遇算 |
| | | /// </summary> |
| | | public decimal? Caigouyusuan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则 |
| | | /// </summary> |
| | | public string Dingbiaoguize { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 定标规则名称 |
| | | /// </summary> |
| | | public string DingbiaoguizeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 报名费 |
| | | /// </summary> |
| | | public decimal? Baomingfei { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标保证金 |
| | | /// </summary> |
| | | public decimal? Toubiaobaozhengjin { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 联合体投标 |
| | | /// </summary> |
| | | public string Lianhetitoubiao { get; set; } |
| | | /// <summary> |
| | | /// 联合体投标名称 |
| | | /// </summary> |
| | | public string LianhetitoubiaoName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标方式 |
| | | /// </summary> |
| | | public string Kaibiaofangshi { get; set; } |
| | | /// <summary> |
| | | /// 开标方式名称 |
| | | /// </summary> |
| | | public string KaibiaofangshiName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否分包 |
| | | /// </summary> |
| | | public string Shifoufenbao { get; set; } |
| | | /// <summary> |
| | | /// 是否分包名称 |
| | | /// </summary> |
| | | public string ShifoufenbaoName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否推送宣传 |
| | | /// </summary> |
| | | public string Shifoutuisongxuanchuan { get; set; } |
| | | /// <summary> |
| | | /// 是否推送宣传名称 |
| | | /// </summary> |
| | | public string ShifoutuisongxuanchuanName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 采购人名称 |
| | | /// </summary> |
| | | public string Caigourenmingcheng { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域 |
| | | /// </summary> |
| | | public string Xingzhengquyu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 行政区域名称 |
| | | /// </summary> |
| | | public string XingzhengquyuName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 机构代码 |
| | | /// </summary> |
| | | public string Jigoudaima { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代码类型 |
| | | /// </summary> |
| | | public string Daimaleixing { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代码类型名称 |
| | | /// </summary> |
| | | public string DaimaleixingName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系人 |
| | | /// </summary> |
| | | public string Lianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系电话 |
| | | public string Lianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 通信地址 |
| | | /// </summary> |
| | | public string Tongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 电子邮件 |
| | | /// </summary> |
| | | public string Dianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项目经办人 |
| | | /// </summary> |
| | | public string Xiangmujingbanren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 职务 |
| | | /// </summary> |
| | | public string Zhiwu { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 经办人电话 |
| | | /// </summary> |
| | | public string Jingbanrendianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构名称 |
| | | /// </summary> |
| | | public string Dailijigoumingcheng { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系人 |
| | | /// </summary> |
| | | public string DailiLianxiren { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构联系电话 |
| | | /// </summary> |
| | | public string DailiLianxidianhua { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构电子邮件 |
| | | /// </summary> |
| | | public string DailiDianziyoujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构通信地址 |
| | | /// </summary> |
| | | public string DailiTongxindizhi { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理 |
| | | /// </summary> |
| | | public string DailiXiangmujingli { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 代理机构项目经理联系电话 |
| | | /// </summary> |
| | | public string DailijingliLianxidianhua { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 质疑有无 |
| | | /// </summary> |
| | | public bool? Zhiyi { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投诉有无 |
| | | /// </summary> |
| | | public bool? Tousu { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | | /// </summary> |
| | | public bool? IsSelected { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | | /// </summary> |
| | | public string IsSelectedName { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 订单状态 |
| | | /// </summary> |
| | | public int? OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 订单状态 |
| | | /// </summary> |
| | | public string OrderStatusName { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | public DateTime ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | public DateTime ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | public DateTime KaibiaoDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 发布时间 |
| | | /// </summary> |
| | | public DateTime? FabuDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件 |
| | | /// </summary> |
| | | public string Zhaobiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | public string Fujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | public string Kaibiaodidian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标供应商Id |
| | | /// </summary> |
| | | public long? ZhongbiaoId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标供应商姓名 |
| | | /// </summary> |
| | | public string ZhongbiaoName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家Id |
| | | /// </summary> |
| | | public string ZhuanjiaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 专家姓名 |
| | | /// </summary> |
| | | public string ZhuanjiaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public DateTime? CreateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 更新时间 |
| | | /// </summary> |
| | | public DateTime? UpdateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者Id |
| | | /// </summary> |
| | | public long? CreateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者姓名 |
| | | /// </summary> |
| | | public string? CreateUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者Id |
| | | /// </summary> |
| | | public long? UpdateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者姓名 |
| | | /// </summary> |
| | | public string? UpdateUserName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标文件 |
| | | /// </summary> |
| | | public string Zhongbiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标时间 |
| | | /// </summary> |
| | | public DateTime? ZhongbiaoDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标tittle |
| | | /// </summary> |
| | | public string ZhongbiaoTittle { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 变更公告 |
| | | /// </summary> |
| | | public ChangeOrder? changeOrder { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标情况 |
| | | /// </summary> |
| | | public List<TenderOrderBiddingOutput>? tenderOrderBiddings { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public class RegionOutput |
| | | { |
| | | /// <summary> |
| | | /// Id |
| | | /// </summary> |
| | | public long Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 父节点Id |
| | | /// </summary> |
| | | public long Pid { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 名称 |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 编码 |
| | | /// </summary> |
| | | public string Code { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 等级 |
| | | /// </summary> |
| | | public int Level { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 编码 |
| | | /// </summary> |
| | | public List<RegionOutput> Regions { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 政府采购投诉数据处理数据导入模板实体 |
| | | /// </summary> |
| | | public class ExportTenderOrderOutput : ImportTenderOrderInput |
| | | { |
| | | [ImporterHeader(IsIgnore = true)] |
| | | [ExporterHeader(IsIgnore = true)] |
| | | public override string Error { get; set; } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 非政府订单变更公告 |
| | | /// </summary> |
| | | public class ChangeTenderOrderOut |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 变更主键Id |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标主键Id |
| | | /// </summary> |
| | | public Guid TenderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 变更名称 |
| | | /// </summary> |
| | | public string ProjectName { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | public DateTime ToubiaoStartDate { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标报名结束时间 |
| | | /// </summary> |
| | | public DateTime ToubiaoEndDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标时间 |
| | | /// </summary> |
| | | public DateTime KaibiaoDate { get; set; } |
| | | |
| | | ///// <summary> |
| | | ///// 发布时间 |
| | | ///// </summary> |
| | | //[SugarColumn(IsNullable = true, ColumnDescription = "发布时间")] |
| | | //public DateTime? FabuDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 变更文件 |
| | | /// </summary> |
| | | public string Biangengwenjian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | | /// </summary> |
| | | public string Kaibiaodidian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public DateTime? CreateTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 政府采购投诉数据处理输出参数 |
| | | /// </summary> |
| | | public class TenderOrderBiddingOutput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 投标ID,主键 |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标ID |
| | | /// </summary> |
| | | public Guid TenderId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标文件 |
| | | public string Touboaowenjian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | | /// </summary> |
| | | public bool? IsSelected { get; set; } |
| | | /// <summary> |
| | | /// 是否中标name |
| | | /// </summary> |
| | | public string IsSelectedName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标时间 |
| | | /// </summary> |
| | | public DateTime? SelectedTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否支付 |
| | | /// </summary> |
| | | public bool? IsTransfer { get; set; } |
| | | /// <summary> |
| | | /// 是否支付name |
| | | /// </summary> |
| | | public string IsTransferName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 支付时间 |
| | | /// </summary> |
| | | public DateTime? TransferTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 支付编号 |
| | | /// </summary> |
| | | public string TransferNo { get; set; } |
| | | |
| | | /// <summary> |
| | | ///支付金额 |
| | | /// </summary> |
| | | public decimal? Zhifujine { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 支付返回标号 |
| | | /// </summary> |
| | | public string TradeNo { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public DateTime? CreateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 更新时间 |
| | | /// </summary> |
| | | public DateTime? UpdateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者Id |
| | | /// </summary> |
| | | public long? CreateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者姓名 |
| | | /// </summary> |
| | | public string? CreateUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 厂商名字 |
| | | /// </summary> |
| | | public string? ChangshangName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者Id |
| | | /// </summary> |
| | | public long? UpdateUserId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 修改者姓名 |
| | | /// </summary> |
| | | public string? UpdateUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core.Service; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using SqlSugar; |
| | | using System.ComponentModel; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Admin.NET.Application; |
| | | using Admin.NET.Core; |
| | | using FZCZTB.NET.MD; |
| | | using Furion.DynamicApiController; |
| | | using Furion.DependencyInjection; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using NewLife.Xml; |
| | | using AngleSharp.Dom; |
| | | using DocumentFormat.OpenXml.Office2010.ExcelAc; |
| | | using Furion; |
| | | using System.Security.Claims; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using RazorEngine.Compilation.ImpromptuInterface; |
| | | using MimeKit; |
| | | using static FZCZTB.TSCL.Application.ChangeTenderOrderOut; |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | | /// 非政府招标代理订单处理服务 🧩 |
| | | /// </summary> |
| | | [ApiDescriptionSettings(ApplicationConst.GroupNameDD, Order = 100)] |
| | | public class TenderOrderService : IDynamicApiController, ITransient |
| | | { |
| | | private readonly SqlSugarRepository<TenderOrder> _TenderOrderRep; |
| | | private readonly ISqlSugarClient _sqlSugarClient; |
| | | private readonly SqlSugarRepository<SysDictData> _sysDictDataRep; |
| | | private readonly SysCacheService _sysCacheService; |
| | | private readonly SqlSugarRepository<SysRegion> _sysRegionRep; |
| | | private readonly SqlSugarRepository<ChangeOrder> _ChangeOrderRep; |
| | | private readonly SqlSugarRepository<TenderOrderBidding> _TenderOrderBiddingRep; |
| | | |
| | | public TenderOrderService(SqlSugarRepository<TenderOrder> TenderOrderRep, ISqlSugarClient sqlSugarClient, |
| | | SqlSugarRepository<SysDictData> sysDictDataRep, |
| | | SysCacheService sysCacheService, |
| | | SqlSugarRepository<SysRegion> sysRegionRep, |
| | | SqlSugarRepository<ChangeOrder> changeOrderRep |
| | | , SqlSugarRepository<TenderOrderBidding> TenderOrderBiddingRep) |
| | | { |
| | | _TenderOrderRep = TenderOrderRep; |
| | | _sqlSugarClient = sqlSugarClient; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysCacheService = sysCacheService; |
| | | _sysRegionRep = sysRegionRep; |
| | | _ChangeOrderRep = changeOrderRep; |
| | | _TenderOrderBiddingRep = TenderOrderBiddingRep; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取行政区域列表 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取行政区域列表")] |
| | | [ApiDescriptionSettings(Name = "GetRegionList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<RegionOutput>> GetRegionList() |
| | | { |
| | | var sysRegions = await _sysRegionRep.AsQueryable().WhereIF(!string.IsNullOrWhiteSpace(""), u => u.Level != 4).Select<RegionOutput>().ToListAsync(); |
| | | var regions = sysRegions.Where(x => x.Level == 1).ToList(); |
| | | var regionOutputs = sysRegions.Where(x => x.Level == 2).ToList(); |
| | | var regionOutputs1 = sysRegions.Where(x => x.Level == 3).ToList(); |
| | | |
| | | foreach (var region in regions) |
| | | { |
| | | var regionOutputs2 = regionOutputs.Where(x => x.Pid == region.Id).ToList(); |
| | | foreach (var regionOutput in regionOutputs2) |
| | | { |
| | | var regionOutputs3 = regionOutputs1.Where(x => x.Pid == regionOutput.Id ).ToList(); |
| | | regionOutput.Regions = regionOutputs3; |
| | | } |
| | | region.Regions = regionOutputs2; |
| | | } |
| | | |
| | | return regions; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取开标方式集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取开标方式集合")] |
| | | [ApiDescriptionSettings(Name = "GetKaibiaofangshiList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetKaibiaofangshiList() |
| | | { |
| | | return await GetDataListByCode("Kaibiaofangshi"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取是否枚举集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取是否枚举集合")] |
| | | [ApiDescriptionSettings(Name = "GetYesNoEnumList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetYesNoEnumList() |
| | | { |
| | | return await GetDataListByCode("YesNoEnum"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取复合体投标集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取复合体投标集合")] |
| | | [ApiDescriptionSettings(Name = "GetFuhetitoubiaoList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetFuhetitoubiaoList() |
| | | { |
| | | return await GetDataListByCode("Fuhetitoubiao"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取定标规则集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取定标规则集合")] |
| | | [ApiDescriptionSettings(Name = "GetDingbiaoguizeList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetDingbiaoguizeList() |
| | | { |
| | | return await GetDataListByCode("Dingbiaoguize"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取代码类型集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取代码类型集合")] |
| | | [ApiDescriptionSettings(Name = "GetDaimaleixingList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetDaimaleixingList() |
| | | { |
| | | return await GetDataListByCode("Daimaleixing"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取采购方式集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取采购方式集合")] |
| | | [ApiDescriptionSettings(Name = "GetCaigoufangshiList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetCaigoufangshiList() |
| | | { |
| | | return await GetDataListByCode("Caigoufangshi"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取行业品目集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取行业品目集合")] |
| | | [ApiDescriptionSettings(Name = "GetHangyepingmuList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetHangyepingmuList() |
| | | { |
| | | return await GetDataListByCode("Hangyepingmu"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取项目进度集合 🔖 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("获取项目进度集合")] |
| | | [ApiDescriptionSettings(Name = "GetOrderStatusList"), HttpGet] |
| | | [AllowAnonymous] |
| | | public async Task<List<SysDictData>> GetOrderStatusList() |
| | | { |
| | | return await GetDataListByCode("OrderStatus"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取字典值集合 🔖 |
| | | /// </summary> |
| | | /// <param name="typeId"></param> |
| | | /// <param name="code"></param> |
| | | /// <returns></returns> |
| | | [NonAction] |
| | | public async Task<List<SysDictData>> GetDataListByCode(string code) |
| | | { |
| | | if (string.IsNullOrWhiteSpace(code)) |
| | | throw Oops.Oh(ErrorCodeEnum.D3011); |
| | | |
| | | var dictType = await _sysDictDataRep.Change<SysDictType>().AsQueryable() |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(code), u => u.Code == code) |
| | | .FirstAsync(); |
| | | if (dictType == null) return null; |
| | | |
| | | |
| | | |
| | | var dictDataList = await _sysDictDataRep.AsQueryable() |
| | | .Where(u => u.DictTypeId == dictType.Id) |
| | | .Where(u => u.Status == StatusEnum.Enable) |
| | | .OrderBy(u => new { u.OrderNo, u.Value, u.Code }) |
| | | .ToListAsync(); |
| | | return dictDataList; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 招标代理分页查询非政府订单处理 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("招标代理分页查询非政府订单处理")] |
| | | [ApiDescriptionSettings(Name = "Page"), HttpPost] |
| | | public async Task<SqlSugarPagedList<TenderOrderOutput>> Page(PageTenderOrderInput input) |
| | | { |
| | | long userId = 0; |
| | | long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId); |
| | | |
| | | var query = _TenderOrderRep.AsQueryable() |
| | | .Where(x => x.CreateUserId == userId) |
| | | .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) |
| | | .WhereIF(input.Zhiyi.HasValue, u => u.Zhiyi == input.Zhiyi) |
| | | .WhereIF(input.Tousu.HasValue, u => u.Tousu == input.Tousu) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), u => u.ProjectName.Contains(input.ProjectName.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Dailijigoumingcheng), u => u.Dailijigoumingcheng.Contains(input.Dailijigoumingcheng.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ZhongbiaoName), u => u.ZhongbiaoName.Contains(input.ZhongbiaoName.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ZhuanjiaName), u => u.ZhuanjiaName.Contains(input.ZhuanjiaName.Trim())) |
| | | .WhereIF(input.CreateDateRange != null && input.CreateDateRange.Length == 2, u => u.CreateTime >= input.CreateDateRange[0] && u.CreateTime <= input.CreateDateRange[1]) |
| | | .Select<TenderOrderOutput>(); |
| | | return await query.OrderBuilder(input,"", "CreateTime",true).ToPagedListAsync(input.Page, input.PageSize); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取非政府订单处理详情 ℹ️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("获取非政府订单处理详情")] |
| | | [ApiDescriptionSettings(Name = "Detail"), HttpGet] |
| | | public async Task<TenderOrderOutput> Detail([FromQuery] QueryByIdTenderOrderInput input) |
| | | { |
| | | var Kaibiaofangshi = await GetDataListByCode("Kaibiaofangshi"); |
| | | var Caigoufangshi = await GetDataListByCode("Caigoufangshi"); |
| | | var Hangyepinmu = await GetDataListByCode("Hangyepingmu"); |
| | | var Fuhetitoubiao = await GetDataListByCode("Fuhetitoubiao"); |
| | | var Dingbiaoguize = await GetDataListByCode("Dingbiaoguize"); |
| | | var Daimaleixing = await GetDataListByCode("Daimaleixing"); |
| | | |
| | | var YesNoEnum = await GetDataListByCode("YesNoEnum"); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | var OrderStatus = await GetDataListByCode("OrderStatus"); |
| | | var tenderOrderOutput = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).Select<TenderOrderOutput>().FirstAsync(); |
| | | if (tenderOrderOutput != null) |
| | | { |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Kaibiaofangshi)) |
| | | { |
| | | tenderOrderOutput.KaibiaofangshiName = Kaibiaofangshi.Where(x => x.Value == tenderOrderOutput.Kaibiaofangshi).Select(x=>x.Label).FirstOrDefault()??""; |
| | | } |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Caigoufangshi)) |
| | | { |
| | | tenderOrderOutput.CaigoufangshiName = Caigoufangshi.Where(x => x.Value == tenderOrderOutput.Caigoufangshi).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Hangyepinmu)) |
| | | { |
| | | tenderOrderOutput.HangyepinmuName = Hangyepinmu.Where(x => x.Value == tenderOrderOutput.Hangyepinmu).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Lianhetitoubiao)) |
| | | { |
| | | tenderOrderOutput.LianhetitoubiaoName = Fuhetitoubiao.Where(x => x.Value == tenderOrderOutput.Lianhetitoubiao).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Dingbiaoguize)) |
| | | { |
| | | tenderOrderOutput.DingbiaoguizeName = Dingbiaoguize.Where(x => x.Value == tenderOrderOutput.Dingbiaoguize).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Daimaleixing)) |
| | | { |
| | | tenderOrderOutput.DaimaleixingName = Daimaleixing.Where(x => x.Value == tenderOrderOutput.Daimaleixing).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Shifoufenbao)) |
| | | { |
| | | tenderOrderOutput.ShifoufenbaoName = YesNoEnum.Where(x => x.Value == tenderOrderOutput.Shifoufenbao).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (!string.IsNullOrEmpty(tenderOrderOutput.Shifoutuisongxuanchuan)) |
| | | { |
| | | tenderOrderOutput.ShifoutuisongxuanchuanName = YesNoEnum.Where(x => x.Value == tenderOrderOutput.Shifoutuisongxuanchuan).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | if (tenderOrderOutput.OrderStatus.HasValue) |
| | | { |
| | | tenderOrderOutput.OrderStatusName = OrderStatus.Where(x => x.Value == tenderOrderOutput.OrderStatus.Value.ToString()).Select(x => x.Label).FirstOrDefault() ?? ""; |
| | | } |
| | | |
| | | } |
| | | |
| | | var changeOrder = await _ChangeOrderRep.AsQueryable().Where(x => x.TenderId == input.Id).FirstAsync(); |
| | | tenderOrderOutput.changeOrder = changeOrder; |
| | | |
| | | |
| | | var tenderOrderBiddings = await _sqlSugarClient.Queryable<TenderOrderBidding>() |
| | | .Where(x => x.TenderId == input.Id) |
| | | .Where(x=>x.IsTransfer == true) |
| | | .Select<TenderOrderBiddingOutput>().ToListAsync(); |
| | | |
| | | if (tenderOrderBiddings != null) |
| | | { |
| | | foreach (var tenderOrderBiddingOutput in tenderOrderBiddings) |
| | | { |
| | | if (tenderOrderBiddingOutput.IsSelected.HasValue && tenderOrderBiddingOutput.IsSelected.Value) |
| | | { |
| | | tenderOrderBiddingOutput.IsSelectedName = "是"; |
| | | } |
| | | else |
| | | { |
| | | tenderOrderBiddingOutput.IsSelectedName = "否"; |
| | | } |
| | | |
| | | if (tenderOrderBiddingOutput.IsTransfer.HasValue && tenderOrderBiddingOutput.IsTransfer.Value) |
| | | { |
| | | tenderOrderBiddingOutput.IsTransferName = "是"; |
| | | } |
| | | else |
| | | { |
| | | tenderOrderBiddingOutput.IsTransferName = "否"; |
| | | } |
| | | } |
| | | } |
| | | tenderOrderOutput.tenderOrderBiddings = tenderOrderBiddings; |
| | | |
| | | |
| | | |
| | | return tenderOrderOutput; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 采购代理人增加非政府订单处理 ➕ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人增加非政府订单处理")] |
| | | [ApiDescriptionSettings(Name = "Add"), HttpPost] |
| | | public async Task<bool> Add(AddTenderOrderInput input) |
| | | { |
| | | var entity = input.Adapt<TenderOrder>(); |
| | | entity.Id = Guid.NewGuid(); |
| | | 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); |
| | | entity.CreateTime = DateTime.Now; |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.CreateUserId = usertrueId; |
| | | entity.CreateUserName = RealName; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | entity.OrderStatus = 1; |
| | | entity.Tousu = false; |
| | | entity.Zhiyi = false; |
| | | |
| | | return await _TenderOrderRep.InsertAsync(entity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 采购代理人更新非政府订单处理 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人更新非政府订单处理")] |
| | | [ApiDescriptionSettings(Name = "Update"), HttpPost] |
| | | public async Task Update(UpdateTenderOrderInput input) |
| | | { |
| | | var entity = input.Adapt<TenderOrder>(); |
| | | long userId = 0; |
| | | long? usertrueId = null; |
| | | if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId)) |
| | | { |
| | | usertrueId = userId; |
| | | } |
| | | var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First(); |
| | | if(tenderOrder == null) |
| | | { |
| | | throw Oops.Oh("订单不存在!"); |
| | | } |
| | | if(tenderOrder.OrderStatus != 1) |
| | | { |
| | | throw Oops.Oh("只有处于保存状态的订单才能修改!"); |
| | | } |
| | | var RealName = App.User?.FindFirstValue(ClaimConst.RealName); |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | await _sqlSugarClient.Updateable(entity).UpdateColumns(x=> new { x.ProjectName, x.ProjectCode, x.Hangyepinmu, x.Caigoufangshi, x.Caigouyusuan, x.Dingbiaoguize, x.Baomingfei, x.Toubiaobaozhengjin, x.Lianhetitoubiao, x.Kaibiaofangshi, x.Shifoufenbao, x.Shifoutuisongxuanchuan, x.Caigourenmingcheng, x.Xingzhengquyu, x.XingzhengquyuName, x.Jigoudaima, x.Daimaleixing, x.Lianxiren, x.Lianxidianhua, x.Tongxindizhi, x.Dianziyoujian, x.Xiangmujingbanren, x.Zhiwu, x.Jingbanrendianhua, x.Dailijigoumingcheng, x.DailiLianxiren, x.DailiLianxidianhua, x.DailiDianziyoujian, x.DailiTongxindizhi, x.DailiXiangmujingli, x.DailijingliLianxidianhua, x.UpdateTime, x.UpdateUserId, x.UpdateUserName }).ExecuteCommandAsync(); |
| | | //await _TenderOrderRep.UpdateAsync(entity); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人更新非政府订单质疑 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人更新非政府订单质疑")] |
| | | [ApiDescriptionSettings(Name = "UpdateZhiyi"), HttpPost] |
| | | public async Task UpdateZhiyi(UpdateZhiyiByIdTenderOrderInput 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); |
| | | |
| | | var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First(); |
| | | if (tenderOrder == null) |
| | | { |
| | | throw Oops.Oh("订单不存在!"); |
| | | } |
| | | tenderOrder.Zhiyi = input.Zhiyi; |
| | | tenderOrder.UpdateTime = DateTime.Now; |
| | | tenderOrder.UpdateUserId = usertrueId; |
| | | tenderOrder.UpdateUserName = RealName; |
| | | await _TenderOrderRep.UpdateAsync(tenderOrder); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人更新非政府订单投诉 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人更新非政府订单投诉")] |
| | | [ApiDescriptionSettings(Name = "UpdateTousu"), HttpPost] |
| | | public async Task UpdateTousu(UpdateZhiyiByIdTenderOrderInput 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); |
| | | |
| | | var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First(); |
| | | if (tenderOrder == null) |
| | | { |
| | | throw Oops.Oh("订单不存在!"); |
| | | } |
| | | tenderOrder.Tousu = input.Zhiyi; |
| | | tenderOrder.UpdateTime = DateTime.Now; |
| | | tenderOrder.UpdateUserId = usertrueId; |
| | | tenderOrder.UpdateUserName = RealName; |
| | | await _TenderOrderRep.UpdateAsync(tenderOrder); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人删除非政府订单处理 ❌ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人删除非政府订单处理")] |
| | | [ApiDescriptionSettings(Name = "Delete"), HttpPost] |
| | | public async Task Delete(DeleteTenderOrderInput input) |
| | | { |
| | | //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); //假删除 |
| | | await _TenderOrderRep.DeleteAsync(entity); //真删除 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 采购代理人批量删除非政府订单处理 ❌ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人批量删除非政府订单处理")] |
| | | [ApiDescriptionSettings(Name = "BatchDelete"), HttpPost] |
| | | public async Task<bool > BatchDelete([Required(ErrorMessage = "主键列表不能为空")]List<DeleteTenderOrderInput> input) |
| | | { |
| | | 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(); |
| | | |
| | | // return await _TenderOrderRep.FakeDeleteAsync(list); //假删除 |
| | | return await _TenderOrderRep.DeleteAsync(list) ; //真删除 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导出非政府订单处理记录 🔖 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("导出非政府订单处理记录")] |
| | | [ApiDescriptionSettings(Name = "Export"), HttpPost, NonUnify] |
| | | public async Task<IActionResult> Export(PageTenderOrderInput input) |
| | | { |
| | | var list = (await Page(input)).Items?.Adapt<List<ExportTenderOrderOutput>>() ?? new(); |
| | | //if (input.SelectKeyList?.Count > 0) list = list.Where(x => input.SelectKeyList.Contains(x.Id)).ToList(); |
| | | return ExcelHelper.ExportTemplate(list, "非政府订单处理导出记录"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下载非政府订单处理数据导入模板 ⬇️ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [DisplayName("下载非政府订单处理数据导入模板")] |
| | | [ApiDescriptionSettings(Name = "Import"), HttpGet, NonUnify] |
| | | public IActionResult DownloadTemplate() |
| | | { |
| | | return ExcelHelper.ExportTemplate(new List<ExportTenderOrderOutput>(), "非政府订单处理导入模板"); |
| | | } |
| | | |
| | | private static readonly object _TenderOrderImportLock = new object(); |
| | | /// <summary> |
| | | /// 导入非政府订单处理记录 💾 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | //[DisplayName("导入非政府订单处理记录")] |
| | | //[ApiDescriptionSettings(Name = "Import"), HttpPost, NonUnify, UnitOfWork] |
| | | //public IActionResult ImportData([Required] IFormFile file) |
| | | //{ |
| | | // lock (_TenderOrderImportLock) |
| | | // { |
| | | // var stream = ExcelHelper.ImportData<ImportTenderOrderInput, TenderOrder>(file, (list, markerErrorAction) => |
| | | // { |
| | | // _sqlSugarClient.Utilities.PageEach(list, 2048, pageItems => |
| | | // { |
| | | |
| | | // // 校验并过滤必填基本类型为null的字段 |
| | | // var rows = pageItems.Where(x => { |
| | | // return true; |
| | | // }).Adapt<List<TenderOrder>>(); |
| | | |
| | | // var storageable = _TenderOrderRep.Context.Storageable(rows) |
| | | // .SplitError(it => string.IsNullOrWhiteSpace(it.Item.ProjectCode), "项目编号不能为空") |
| | | // .SplitError(it => it.Item.ProjectCode?.Length > 50, "项目编号长度不能超过50个字符") |
| | | // .SplitError(it => string.IsNullOrWhiteSpace(it.Item.ProjectName), "项目名称不能为空") |
| | | // .SplitError(it => it.Item.ProjectName?.Length > 200, "项目名称长度不能超过200个字符") |
| | | // .SplitError(it => string.IsNullOrWhiteSpace(it.Item.Purchaser), "采购人不能为空") |
| | | // .SplitError(it => it.Item.Purchaser?.Length > 100, "采购人长度不能超过100个字符") |
| | | // .SplitError(it => string.IsNullOrWhiteSpace(it.Item.ProcurementAgency), "采购代理机构不能为空") |
| | | // .SplitError(it => it.Item.ProcurementAgency?.Length > 100, "采购代理机构长度不能超过100个字符") |
| | | // .SplitError(it => it.Item.Complainant?.Length > 100, "投诉人长度不能超过100个字符") |
| | | // .SplitError(it => it.Item.ProcurementSupervisionDepartment?.Length > 100, "采购监督部门长度不能超过100个字符") |
| | | // .SplitError(it => it.Item.Url?.Length > 255, "线上地址长度不能超过255个字符") |
| | | // .SplitInsert(_ => true) |
| | | // .ToStorage(); |
| | | |
| | | // storageable.AsInsertable.ExecuteCommand();// 不存在插入 |
| | | // storageable.AsUpdateable.ExecuteCommand();// 存在更新 |
| | | |
| | | // // 标记错误信息 |
| | | // markerErrorAction.Invoke(storageable, pageItems, rows); |
| | | // }); |
| | | // }); |
| | | |
| | | // return stream; |
| | | // } |
| | | //} |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人发布招标 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人发布招标")] |
| | | [ApiDescriptionSettings(Name = "Fabuzhaobiao"), HttpPost] |
| | | public async Task Fabuzhaobiao(FabuTenderOrderInput input) |
| | | { |
| | | var entity = input.Adapt<TenderOrder>(); |
| | | long userId = 0; |
| | | long? usertrueId = null; |
| | | if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId)) |
| | | { |
| | | usertrueId = userId; |
| | | } |
| | | var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First(); |
| | | if (tenderOrder == null) |
| | | { |
| | | throw Oops.Oh("订单不存在!"); |
| | | } |
| | | if (tenderOrder.OrderStatus != 1) |
| | | { |
| | | throw Oops.Oh("只有处于保存状态的订单才能发布!"); |
| | | } |
| | | var RealName = App.User?.FindFirstValue(ClaimConst.RealName); |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | entity.FabuDate = entity.UpdateTime; |
| | | entity.OrderStatus = 2; |
| | | await _sqlSugarClient.Updateable(entity).UpdateColumns(x => new { x.ToubiaoStartDate, x.ToubiaoEndDate, x.KaibiaoDate, x.FabuDate, x.Zhaobiaowenjian, x.Fujian, x.Kaibiaodidian, x.UpdateTime, x.UpdateUserId, x.UpdateUserName,x.OrderStatus }).ExecuteCommandAsync(); |
| | | //await _TenderOrderRep.UpdateAsync(entity); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人更新非政府订单标题 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人更新非政府订单标题")] |
| | | [ApiDescriptionSettings(Name = "UpdateTittle"), HttpPost] |
| | | public async Task UpdateTittle(UpdateTittleByIdTenderOrderInput 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); |
| | | |
| | | var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).First(); |
| | | if (tenderOrder == null) |
| | | { |
| | | throw Oops.Oh("订单不存在!"); |
| | | } |
| | | tenderOrder.ProjectName = input.ProjectName.Trim(); |
| | | tenderOrder.UpdateTime = DateTime.Now; |
| | | tenderOrder.UpdateUserId = usertrueId; |
| | | tenderOrder.UpdateUserName = RealName; |
| | | await _TenderOrderRep.UpdateAsync(tenderOrder); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人发布变更公告 ✏️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人发布变更公告")] |
| | | [ApiDescriptionSettings(Name = "Changezhaobiao"), HttpPost] |
| | | public async Task Changezhaobiao(ChangeTenderOrderInput input) |
| | | { |
| | | var entity = input.Adapt<TenderOrder>(); |
| | | long userId = 0; |
| | | long? usertrueId = null; |
| | | if (long.TryParse(App.User?.FindFirst(ClaimConst.UserId)?.Value, out userId)) |
| | | { |
| | | usertrueId = userId; |
| | | } |
| | | var tenderOrder = _TenderOrderRep.AsQueryable().Where(x => x.Id == input.TenderId).First(); |
| | | if (tenderOrder == null) |
| | | { |
| | | throw Oops.Oh("订单不存在!"); |
| | | } |
| | | if (tenderOrder.OrderStatus != 2) |
| | | { |
| | | throw Oops.Oh("只有处于发布状态的订单才能变更公告!"); |
| | | } |
| | | var changeOrder = await _ChangeOrderRep.AsQueryable().Where(x => x.TenderId == input.TenderId).FirstAsync(); |
| | | if(changeOrder != null) |
| | | { |
| | | throw Oops.Oh("已经上传过变更公告!"); |
| | | } |
| | | |
| | | changeOrder = new ChangeOrder(); |
| | | |
| | | var RealName = App.User?.FindFirstValue(ClaimConst.RealName); |
| | | changeOrder.Id = Guid.NewGuid(); |
| | | changeOrder.TenderId = input.TenderId; |
| | | changeOrder.ProjectName = input.ProjectName; |
| | | changeOrder.Biangengwenjian = input.Biangengwenjian; |
| | | changeOrder.CreateTime = DateTime.Now; |
| | | changeOrder.CreateUserId = usertrueId; |
| | | changeOrder.CreateUserName = RealName; |
| | | changeOrder.UpdateTime = DateTime.Now; |
| | | changeOrder.UpdateUserId = usertrueId; |
| | | changeOrder.UpdateUserName = RealName; |
| | | changeOrder.ToubiaoStartDate = input.ToubiaoStartDate; |
| | | changeOrder.ToubiaoEndDate = input.ToubiaoEndDate; |
| | | changeOrder.KaibiaoDate = input.KaibiaoDate; |
| | | changeOrder.Kaibiaodidian = input.Kaibiaodidian; |
| | | await _ChangeOrderRep.InsertAsync(changeOrder); |
| | | |
| | | entity.Id = input.TenderId; |
| | | entity.ToubiaoStartDate = input.ToubiaoStartDate; |
| | | entity.ToubiaoEndDate = input.ToubiaoEndDate; |
| | | entity.KaibiaoDate = input.KaibiaoDate; |
| | | entity.Kaibiaodidian = input.Kaibiaodidian; |
| | | entity.UpdateTime = DateTime.Now; |
| | | entity.UpdateUserId = usertrueId; |
| | | entity.UpdateUserName = RealName; |
| | | await _sqlSugarClient.Updateable(entity).UpdateColumns(x => new { x.ToubiaoStartDate, x.ToubiaoEndDate, x.KaibiaoDate , x.Kaibiaodidian, x.UpdateTime, x.UpdateUserId, x.UpdateUserName }).ExecuteCommandAsync(); |
| | | //await _TenderOrderRep.UpdateAsync(entity); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取变更公告详情 ℹ️ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("获取变更公告详情")] |
| | | [ApiDescriptionSettings(Name = "ChangeDetail"), HttpGet] |
| | | public async Task<ChangeTenderOrderOut> ChangeDetail([FromQuery] QueryByIdTenderOrderInput input) |
| | | { |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //var tenderOrderOutput = await _TenderOrderRep.AsQueryable().Where(x => x.Id == input.Id).Select<TenderOrderOutput>().FirstAsync(); |
| | | |
| | | |
| | | var changeOrder = await _ChangeOrderRep.AsQueryable().Where(x => x.TenderId == input.Id).Select<ChangeTenderOrderOut>().FirstAsync(); |
| | | //changeOrder.ToubiaoStartDate = tenderOrderOutput.ToubiaoStartDate; |
| | | //changeOrder.ToubiaoEndDate = tenderOrderOutput.ToubiaoEndDate; |
| | | //changeOrder.KaibiaoDate = tenderOrderOutput.KaibiaoDate; |
| | | //changeOrder.Kaibiaodidian = tenderOrderOutput.Kaibiaodidian; |
| | | |
| | | |
| | | |
| | | return changeOrder; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购代理人删除变更公告 ❌ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("采购代理人删除变更公告")] |
| | | [ApiDescriptionSettings(Name = "CHangeDelete"), HttpPost] |
| | | public async Task CHangeDelete(DeleteTenderOrderInput input) |
| | | { |
| | | //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); //假删除 |
| | | await _ChangeOrderRep.DeleteAsync(entity); //真删除 |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 代理商发布中标文件 ➕ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [DisplayName("代理商发布中标文件")] |
| | | [ApiDescriptionSettings(Name = "AddZhongbiao"), HttpPost] |
| | | public async Task<bool> AddZhongbiao(OrderZhongbiaoInput 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); |
| | | |
| | | |
| | | |
| | | 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("已经中标的项目不能再次中标!"); |
| | | } |
| | | |
| | | |
| | | var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == input.SupplierUserId).FirstAsync(); |
| | | if (tenderOrderBidding == null) |
| | | { |
| | | throw Oops.Oh("不存在的投标!"); |
| | | } |
| | | if (tenderOrderBidding.IsTransfer != true ) |
| | | { |
| | | throw Oops.Oh("没有支付报名费。不能中标!"); |
| | | } |
| | | if (string.IsNullOrEmpty(tenderOrderBidding.Touboaowenjian) ) |
| | | { |
| | | throw Oops.Oh("没有投标文件。不能中标!"); |
| | | } |
| | | |
| | | tenderOrder.ZhongbiaoId = input.SupplierUserId; |
| | | tenderOrder.ZhongbiaoName = input.SupplierUserName; |
| | | tenderOrder.Zhongbiaowenjian = input.Zhongbiaowenjian; |
| | | 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); |
| | | |
| | | |
| | | tenderOrderBidding.IsSelected = true; |
| | | tenderOrderBidding.SelectedTime = tenderOrder.ZhongbiaoDate; |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | | tenderOrderBidding.UpdateUserId = usertrueId; |
| | | tenderOrderBidding.UpdateUserName = RealName; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding); |
| | | } |
| | | |
| | | |
| | | } |