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 @@
+