| | |
| | | using Task = System.Threading.Tasks.Task; |
| | | using Newtonsoft.Json; |
| | | using static AlibabaCloud.SDK.Sts20150401.Models.AssumeRoleResponseBody; |
| | | using Admin.NET.Core; |
| | | namespace EzUpFile |
| | | { |
| | | /// <summary> |
| | |
| | | { "x_oss_date", dtObj1 }, |
| | | { "x_oss_credential", $"{stsAccessKeyId}/{dtObj2}/{regionId}/oss/aliyun_v4_request" }, // 请将<cn-hangzhou>替换为您的实际Bucket所处地域,例如北京地域为:cn-beijing |
| | | { "x_oss_signature_version", "OSS4-HMAC-SHA256" }, |
| | | { "policy", stringToSign } |
| | | { "policy", stringToSign }, |
| | | {"url", App.Configuration["FileUploadOptions:AliOSSSaveBaseUrl"]}, |
| | | {"CallBack", App.Configuration["FileUploadOptions:CallBack"]}, |
| | | {"DirPath", App.Configuration["FileUploadOptions:SavePath"]}, |
| | | |
| | | |
| | | }; |
| | | |
| | | // 打印返回至客户端的签名信息 |
| | |
| | | { |
| | | "FileUploadOptions": { |
| | | |
| | | "AliOSSBucketName": "appimchat", |
| | | "SavePath": "cylsg/", |
| | | "AliOSSBucketName": "feizhengcai", |
| | | "SavePath": "ZBWJ/", |
| | | "AliOSSEndpoint": "oss-accelerate.aliyuncs.com", |
| | | "AliOSSAccessKeyID": "LTAI5tNYGwTd3swLhC8H2XYV", |
| | | "AliOSSAccessKeySecret": "TyfkpYbXRUCh1K8LLtUyxY3ZcFCy1A", |
| | | "AliOSSSaveBaseUrl": "https://appimchat.oss-cn-chengdu.aliyuncs.com/" |
| | | "AliOSSSaveBaseUrl": "https://feizhengcai.oss-cn-chengdu.aliyuncs.com/", |
| | | "CallBack": "CallBack" |
| | | |
| | | } |
| | | } |
| | |
| | | public string Biangengwenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 变更文件Name |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "变更文件Name")] |
| | | public string BiangengwenjianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标报名开始时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "投标报名开始时间")] |
| | |
| | | public string Zhaobiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件Name |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "招标文件Name")] |
| | | public string ZhaobiaowenjianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "附件")] |
| | | public string Fujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件Name |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "附件Name")] |
| | | public string FujianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | |
| | | /// <summary> |
| | | /// 中标供应商姓名 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标供应商姓名", Length = 100)] |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标供应商姓名", Length = 2000)] |
| | | public string ZhongbiaoName { get; set; } |
| | | |
| | | /// <summary> |
| | |
| | | public string Zhongbiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标文件Name |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "中标文件中标文件Name")] |
| | | public string ZhongbiaowenjianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标时间 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "中标时间")] |
| | |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "投标文件")] |
| | | public string Touboaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标文件name |
| | | /// </summary> |
| | | [SugarColumn(Length = 512, IsNullable = true, ColumnDescription = "投标文件Name")] |
| | | public string TouboaowenjianName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | |
| | | |
| | | 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 }) |
| | | .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,BiangengwenjianName = x.BiangengwenjianName, Kaibiaodidian = x.Kaibiaodidian, CreateTime = x.CreateTime }) |
| | | |
| | | .Take(7); |
| | | |
| | |
| | | |
| | | |
| | | |
| | | if (tenderOrder.Baomingfei.HasValue && tenderOrder.Baomingfei.Value > 0) |
| | | { |
| | | //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)) |
| | | { |
| | |
| | | tenderOrderBidding = new TenderOrderBidding(); |
| | | tenderOrderBidding.Id = Guid.NewGuid(); |
| | | tenderOrderBidding.TenderId = input.TenderOrderId; |
| | | //tenderOrderBidding.IsTransfer = true; |
| | | tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei.Value; |
| | | tenderOrderBidding.IsTransfer = true; |
| | | tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei; |
| | | tenderOrderBidding.TransferTime = DateTime.Now; |
| | | tenderOrderBidding.TransferNo = "BMF"+tenderOrderBidding.Id.ToString("N"); |
| | | tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号 |
| | | |
| | | |
| | | tenderOrderBidding.CreateTime = DateTime.Now; |
| | | tenderOrderBidding.CreateTime = DateTime.Now; |
| | | tenderOrderBidding.CreateUserId = usertrueId; |
| | | tenderOrderBidding.CreateUserName = RealName; |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | |
| | | } |
| | | else |
| | | { |
| | | tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei.Value; |
| | | tenderOrderBidding.IsTransfer = true; |
| | | tenderOrderBidding.Zhifujine = tenderOrder.Baomingfei; |
| | | tenderOrderBidding.TransferTime = DateTime.Now; |
| | | tenderOrderBidding.TransferNo = "BMF" + tenderOrderBidding.Id.ToString("N"); |
| | | tenderOrderBidding.TradeNo = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 订单号 |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | | tenderOrderBidding.UpdateUserId = usertrueId; |
| | | tenderOrderBidding.UpdateUserName = RealName; |
| | |
| | | |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Oh("无需支付报名费!"); |
| | | } |
| | | //} |
| | | //else |
| | | //{ |
| | | // throw Oops.Oh("无需支付报名费!"); |
| | | //} |
| | | |
| | | } |
| | | |
| | |
| | | tenderOrderBidding.Id = Guid.NewGuid(); |
| | | tenderOrderBidding.TenderId = input.TenderOrderId; |
| | | tenderOrderBidding.Touboaowenjian = input.Touboaowenjian; |
| | | tenderOrderBidding.TouboaowenjianName = input.TouboaowenjianName; |
| | | tenderOrderBidding.IsTransfer = true; |
| | | tenderOrderBidding.Zhifujine = 0; |
| | | tenderOrderBidding.CreateTime = DateTime.Now; |
| | |
| | | } |
| | | |
| | | tenderOrderBidding.Touboaowenjian = input.Touboaowenjian; |
| | | tenderOrderBidding.TouboaowenjianName = input.TouboaowenjianName; |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | | tenderOrderBidding.UpdateUserId = usertrueId; |
| | | tenderOrderBidding.UpdateUserName = RealName; |
| | |
| | | public string Zhaobiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件Name |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "招标文件Name字符长度不能超过512")] |
| | | [Required(ErrorMessage = "招标文件Name不能为空")] |
| | | public string ZhaobiaowenjianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "附件字符长度不能超过512")] |
| | | public string Fujian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件Name |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "附件字符Name长度不能超过512")] |
| | | public string FujianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | |
| | | //public DateTime? FabuDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件 |
| | | /// 变更文件 |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "招标文件字符长度不能超过512")] |
| | | [Required(ErrorMessage = "招标文件不能为空")] |
| | | [MaxLength(512, ErrorMessage = "变更文件字符长度不能超过512")] |
| | | [Required(ErrorMessage = "变更文件不能为空")] |
| | | public string Biangengwenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 变更文件Name |
| | | /// </summary> |
| | | [MaxLength(512, ErrorMessage = "变更文件Name字符长度不能超过512")] |
| | | [Required(ErrorMessage = "变更文件Name不能为空")] |
| | | public string BiangengwenjianName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | [Required(ErrorMessage = "投标文件不能为空")] |
| | | public string Touboaowenjian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 投标文件Name |
| | | /// </summary> |
| | | [Required(ErrorMessage = "投标文件Name不能为空")] |
| | | public string TouboaowenjianName { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | [Required(ErrorMessage = "中标文件不能为空")] |
| | | public string Zhongbiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标文件Name |
| | | /// </summary> |
| | | [Required(ErrorMessage = "中标文件Name不能为空")] |
| | | public string ZhongbiaowenjianName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 中标供应商id |
| | | /// 中标供应商id 逗号分隔! 12121212,232323,232323,232323 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "中标供应商id不能为空")] |
| | | public long SupplierUserId { get; set; } |
| | | public string SupplierUserIds { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | public string Zhaobiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 招标文件 |
| | | /// </summary> |
| | | public string ZhaobiaowenjianName{ get; set; } |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | public string Fujian { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 附件 |
| | | /// </summary> |
| | | public string FujianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | |
| | | /// 中标文件 |
| | | /// </summary> |
| | | public string Zhongbiaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标文件 |
| | | /// </summary> |
| | | public string ZhongbiaowenjianName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 中标时间 |
| | |
| | | /// </summary> |
| | | public string Biangengwenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 变更文件Name |
| | | /// </summary> |
| | | public string BiangengwenjianName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 开标地点 |
| | |
| | | /// 投标文件 |
| | | public string Touboaowenjian { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 投标文件 |
| | | public string TouboaowenjianName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否中标 |
| | |
| | | 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 _sqlSugarClient.Updateable(entity).UpdateColumns(x => new { x.ToubiaoStartDate, x.ToubiaoEndDate, x.KaibiaoDate, x.FabuDate, x.Zhaobiaowenjian,x.ZhaobiaowenjianName, x.Fujian,x.FujianName, x.Kaibiaodidian, x.UpdateTime, x.UpdateUserId, x.UpdateUserName,x.OrderStatus }).ExecuteCommandAsync(); |
| | | //await _TenderOrderRep.UpdateAsync(entity); |
| | | } |
| | | |
| | |
| | | changeOrder.TenderId = input.TenderId; |
| | | changeOrder.ProjectName = input.ProjectName; |
| | | changeOrder.Biangengwenjian = input.Biangengwenjian; |
| | | changeOrder.BiangengwenjianName = input.BiangengwenjianName; |
| | | changeOrder.CreateTime = DateTime.Now; |
| | | changeOrder.CreateUserId = usertrueId; |
| | | changeOrder.CreateUserName = RealName; |
| | |
| | | throw Oops.Oh("已经中标的项目不能再次中标!"); |
| | | } |
| | | |
| | | |
| | | var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == input.SupplierUserId).FirstAsync(); |
| | | if (tenderOrderBidding == null) |
| | | var ssss = input.SupplierUserIds.Split(','); |
| | | if (string.IsNullOrEmpty(input.SupplierUserIds)) |
| | | { |
| | | throw Oops.Oh("不存在的投标!"); |
| | | throw Oops.Oh("没有选中中标供应商!"); |
| | | } |
| | | if (tenderOrderBidding.IsTransfer != true ) |
| | | foreach ( var sss in ssss) |
| | | { |
| | | throw Oops.Oh("没有支付报名费。不能中标!"); |
| | | } |
| | | if (string.IsNullOrEmpty(tenderOrderBidding.Touboaowenjian) ) |
| | | { |
| | | throw Oops.Oh("没有投标文件。不能中标!"); |
| | | var SupplierUserId = long.Parse(sss); |
| | | var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == 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.ZhongbiaoId = null; |
| | | //tenderOrder.ZhongbiaoName = input.SupplierUserName; |
| | | var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.CustomerId == input.SupplierUserId && x.TransactionCode == "GYS" && x.steps == CusExtendStep.Pass ).FirstAsync(); |
| | | if (cusExtend != null) |
| | | tenderOrder.ZhongbiaoName = ""; |
| | | foreach (var sss in ssss) |
| | | { |
| | | tenderOrder.ZhongbiaoName = cusExtend.EnterpriseName; |
| | | var SupplierUserId = long.Parse(sss); |
| | | var cusExtend = await _sqlSugarClient.Queryable<FBS_CusExtend>().Where(x => x.CustomerId == SupplierUserId && x.TransactionCode == "GYS" && x.steps == CusExtendStep.Pass).FirstAsync(); |
| | | if (cusExtend != null) |
| | | { |
| | | tenderOrder.ZhongbiaoName += cusExtend.EnterpriseName+","; |
| | | } |
| | | } |
| | | |
| | | |
| | | tenderOrder.Zhongbiaowenjian = input.Zhongbiaowenjian; |
| | | tenderOrder.ZhongbiaowenjianName = input.ZhongbiaowenjianName; |
| | | tenderOrder.ZhongbiaoDate = DateTime.Now; |
| | | tenderOrder.UpdateTime = DateTime.Now; |
| | | tenderOrder.UpdateUserId = usertrueId; |
| | |
| | | await _TenderOrderRep.UpdateAsync(tenderOrder); |
| | | |
| | | |
| | | tenderOrderBidding.IsSelected = true; |
| | | tenderOrderBidding.SelectedTime = tenderOrder.ZhongbiaoDate; |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | | tenderOrderBidding.UpdateUserId = usertrueId; |
| | | tenderOrderBidding.UpdateUserName = RealName; |
| | | foreach (var sss in ssss) |
| | | { |
| | | var SupplierUserId = long.Parse(sss); |
| | | var tenderOrderBidding = await _TenderOrderBiddingRep.AsQueryable().Where(x => x.TenderId == input.TenderOrderId).Where(x => x.CreateUserId == SupplierUserId).FirstAsync(); |
| | | tenderOrderBidding.IsSelected = true; |
| | | tenderOrderBidding.SelectedTime = tenderOrder.ZhongbiaoDate; |
| | | tenderOrderBidding.UpdateTime = DateTime.Now; |
| | | tenderOrderBidding.UpdateUserId = usertrueId; |
| | | tenderOrderBidding.UpdateUserName = RealName; |
| | | await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding); |
| | | } |
| | | |
| | | return true; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return await _TenderOrderBiddingRep.UpdateAsync(tenderOrderBidding); |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | tableData: [], |
| | | tableDataCopy:[] //拷贝 |
| | | }); |
| | | const hasChildren = data => { |
| | | const hasChildren = (data: any[]) => { |
| | | data.forEach(item => { |
| | | if (item.child) { |
| | | item.hasChildren = true; |
| | |
| | | }); |
| | | |
| | | }; |
| | | const processNodesWithChildrenCheck = (nodes) => { |
| | | const processNodesWithChildrenCheck = (nodes: any[]) => { |
| | | |
| | | // 确保输入是数组 |
| | | if (!Array.isArray(nodes)) { |