From 8bf19a9745b0e7650518bae6551f18fc246f37a2 Mon Sep 17 00:00:00 2001 From: bairubing Date: Fri, 22 Nov 2024 14:49:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E=E6=96=B0=E5=A2=9E=E7=A0=94?= =?UTF-8?q?=E5=8F=91=E9=87=87=E8=B4=AD=E7=94=B3=E8=AF=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchasingRequisitionService.cs | 189 ++++++++++++++++++ .../Vistar.Application.csproj | 1 + 2 files changed, 190 insertions(+) create mode 100644 admin.net.pro/Admin.NET/Vistar.Application/Service/PurchasingRequisition/PurchasingRequisitionService.cs diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Service/PurchasingRequisition/PurchasingRequisitionService.cs b/admin.net.pro/Admin.NET/Vistar.Application/Service/PurchasingRequisition/PurchasingRequisitionService.cs new file mode 100644 index 0000000..3fb466a --- /dev/null +++ b/admin.net.pro/Admin.NET/Vistar.Application/Service/PurchasingRequisition/PurchasingRequisitionService.cs @@ -0,0 +1,189 @@ +// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 +// +// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 +// +// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + +using Admin.NET.Core; +using Admin.NET.Core.Service; +using Furion.DependencyInjection; +using Furion.DynamicApiController; +using Microsoft.AspNetCore.Mvc; +using NewLife.Xml; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Vistar.Application.Common; +using Vistar.Application.Const; +using Vistar.Application.Entity; +using Vistar.Application.SapService.Dto; +using Vistar.Application.Util; +using static Org.BouncyCastle.Math.Primes; + +namespace Vistar.Application.Service.PurchasingRequisition; + +/// +/// 研发采购申请服务 +/// +[ApiDescriptionSettings(ApplicationConst.GroupName, Name = "PurchasingRequisition", Order = 100)] +public class PurchasingRequisitionService : IDynamicApiController, ITransient +{ + private readonly SqlSugarRepository _obj119Rep; + private readonly SqlSugarRepository _obj109Rep; + private readonly SqlSugarRepository _configurationsRep; + private readonly SysConfigService _sysConfigService; + private readonly SqlSugarRepository _configurationDataRep; + public SapService.SapService _sapService; + public SqlSugarRepository _obj118Rep; + public Common.DataValidationService _dataValidationService; + public SqlSugarRepository _obj122Rep; + public SqlSugarRepository _obj121Rep; + public SqlSugarRepository _obj81Rep; + + public PurchasingRequisitionService( + SqlSugarRepository obj119Rep, + SqlSugarRepository configurationsRep, + SysConfigService sysConfigService, + SqlSugarRepository configurationDataRep, + SapService.SapService sapService, + SqlSugarRepository obj118Rep, + DataValidationService dataValidationService, + SqlSugarRepository obj122Rep, + SqlSugarRepository obj121Rep, + SqlSugarRepository obj109Rep, + SqlSugarRepository obj81Rep + + ) + { + _obj119Rep = obj119Rep; + _configurationsRep = configurationsRep; + _sysConfigService = sysConfigService; + _configurationDataRep = configurationDataRep; + _sapService = sapService; + _obj118Rep = obj118Rep; + _dataValidationService = dataValidationService; + _obj122Rep = obj122Rep; + _obj121Rep = obj121Rep; + _obj109Rep = obj109Rep; + _obj81Rep = obj81Rep; + } + /// + /// 创建研发采购申请 + /// + /// + public async Task> TimingSyncToSAPPurchasingRequisition() + { + var sapOutputList = new List(); + //获取Sap用户名 + var sapUserName = await _sysConfigService.GetConfigValueByCode(ConfigConst.SapUserName); + + // 配置ID 数据库Configurations表 + var configid = 10; + + // 获取符合条件的采购申请单 + var PurchasingRequisitionList = await _obj119Rep.AsQueryable().Where(x => x.fld006416 == "A" && x.deleted == false && x.CheckedStatus == false && x._System_CurrentStage == "结束").ToListAsync(); + + foreach (var item in PurchasingRequisitionList) + { + var itemList = new List(); + var SapPurchasingRequisition = new SapPurchasingRequisitionInput + { + Reqkeyid = "", + Businessid = "", + Messageid = "", + Sndprn = "PLM", + Rcvprn = "SAP", + Requser = sapUserName, + Note1 = "", + Note2 = "", + Note3 = "", + Zwbid = item._System_objNBS, + Banfn = item.fld006138, + Bsart = "Z002", + Zoperate = item.fld006139, + Zttby1 = item.fld006311, + Zttby2 = item.fld006312, + Zttby3 = item.fld006313, + Item = itemList + }; + + //查询BOM + var bomData = await _configurationDataRep.AsQueryable().Where(x => x.ConfigId == configid && x.ParentGuid == item.RecordGuid && x.isDeleted == false && x.ParentVersion == item.VersionIndex).ToListAsync(); + var project = await _obj109Rep.AsQueryable().Where(x => x.RecordGuid == item.fld004639_Rec && x.deleted == false).OrderByDescending(x => x.VersionIndex).FirstAsync(); + foreach (var bomItem in bomData) + { + var unit = await _dataValidationService.GetUnit(bomItem.ChildObjID, bomItem.ChildGuid); + var Item = new SapPurchasingRequisitionItem + { + Bnfpo = bomItem.Marker, + Zzjjbs = bomItem.fld006140, + Knttp = bomItem.fld006142, + Pstyp = bomItem.fld006143, + Matnr = bomItem.PartNumber, + Txz01 = "", + Menge = bomItem.Quantity.ToString(), + Meins = unit, + Lfdat = bomItem.fld006144.ToString("yyyy-MM-dd"), + Matkl = "", + Werks = bomItem.fld006145, + Lgort = bomItem.fld006146, + Ekgrp = "", + Ekorg = bomItem.fld006147, + Zzpspnr = project._System_objNBS, + Afnam = item.fld006125, + Loekz = bomItem.fld006141 + }; + itemList.Add(Item); + } + var sapOutput = await _sapService.SapPurchasingRequisitionApi(SapPurchasingRequisition); + + string codeVal = sapOutput.code == "S" ? "成功" : "失败"; + string msg = sapOutput.msg; + + if (sapOutput.msg == "") + { + msg = "同步成功"; + } + if (item.fld006139 == "I") + { + await _obj119Rep.AsUpdateable() + .SetColumns(it => new Obj119 + { + fld005934 = DateTime.Now,//同步日期 + fld005933 = codeVal,//同步状态 + fld006416 = "N",//同步标识 + fld005935 = msg,//同步信息 + fld006138 = sapOutput.banfn//采购申请编号 + }) + .Where(it => it.idRecord == item.idRecord) + .ExecuteCommandAsync(); + } + if (item.fld006139 == "U") + { + await _obj119Rep.AsUpdateable() + .SetColumns(it => new Obj119 + { + fld005934 = DateTime.Now,//同步日期 + fld005933 = codeVal,//同步状态 + fld006416 = "N",//同步标识 + fld005935 = msg//同步信息 + }) + .Where(it => it.idRecord == item.idRecord) + .ExecuteCommandAsync(); + } + var output = new SapOutput() + { + parameter = sapOutput.parameter, + materialCode = item._System_objNBS, + code = codeVal, + msg = msg, + result = sapOutput.result + }; + sapOutputList.Add(output); + } + + return sapOutputList; + } +} diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Vistar.Application.csproj b/admin.net.pro/Admin.NET/Vistar.Application/Vistar.Application.csproj index e5a5b5e..93ec243 100644 --- a/admin.net.pro/Admin.NET/Vistar.Application/Vistar.Application.csproj +++ b/admin.net.pro/Admin.NET/Vistar.Application/Vistar.Application.csproj @@ -38,6 +38,7 @@ +