From 2d8739b04f86ab5e73ec7b0d3152e702a90a450b Mon Sep 17 00:00:00 2001 From: 移动系统liao <liaoxujun@qq.com> Date: 星期一, 14 七月 2025 16:34:49 +0800 Subject: [PATCH] 修改用户扩展资料 --- Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 392 insertions(+), 0 deletions(-) diff --git a/Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs b/Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs new file mode 100644 index 0000000..b4be808 --- /dev/null +++ b/Admin.NET/FZFCGDD.ORDER.Application/Service/SuplierTendOrder/SuplierTendOrderService.cs @@ -0,0 +1,392 @@ +锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆� +// +// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆� +// +// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛� + +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; + } + +} -- Gitblit v1.9.1