Config/appsettings.Development.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Config/appsettings.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Controllers/Kingdee/ErpKcController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Dto/ErpKc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
NewPdaSqlServer.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
appsettings.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/ErpMesKc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/Inventory.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/ErpKcManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Config/appsettings.Development.json
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } } } Config/appsettings.json
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "AppSettings": { "TestErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest", "ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest", //"DataBaseConn": "Data Source=192.168.1.146;Initial Catalog=TEST_MES;User ID=sa;Password =qixi123;Encrypt=True;TrustServerCertificate=True;" "DataBaseConn": "Data Source=192.168.1.146;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes;Encrypt=True;TrustServerCertificate=True;" }, "Version": "1.0.0", "X-KDApi-AcctID": "683e92c7f92688", "X-KDApi-UserName": "MES", "X-KDApi-AppID": "315464_W58Nw/DtRIpUxewFR6WpRZzN5qT62BPK", "X-KDApi-AppSec": "f853011716de43589aade7b9dbbbe9e6", "X-KDApi-LCID": "2052", "X-KDApi-ServerUrl": "http://192.168.1.141/k3cloud/" } Controllers/Kingdee/ErpKcController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ using System.Dynamic; using Microsoft.AspNetCore.Mvc; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; using MES.Service.service.Kingdee; namespace NewPdaSqlServer.Controllers.Kingdee; [ApiController] [Route("api/[controller]")] public class ErpKcController : ControllerBase { private readonly ErpKcManager kc = new(); private readonly string METHOD = "POST"; private readonly string TableName = "ERPKC"; private readonly string URL = "http://localhost:10054/api/ErpKc/"; // [HttpPost("Save")] public ResponseResult Save(Inventory inventory) { try { dynamic resultInfos = new ExpandoObject(); resultInfos = kc.QueryStocks(inventory); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } } Dto/ErpKc.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ namespace NewPdaSqlServer.Dto { public class ErpKc { public string? FMaterialId { get; set; } public string? FStockId { get; set; } public string? FMtoNo { get; set; } public string? FLot { get; set; } public string? FStockUnitId { get; set; } public string? FBaseUnitId { get; set; } public string? FStockStatusId { get; set; } public string? FBASEQTY { get; set; } public string? FSTOREURNOM { get; set; } public string? FSTOREURNUM { get; set; } public string? FStockOrgId { get; set; } } } NewPdaSqlServer.csproj
@@ -10,6 +10,10 @@ <PackageReference Include="Masuit.Tools.Core" Version="2024.5.8" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.8" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.10" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.6" /> <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.6" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.6" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Portable.BouncyCastle" Version="1.9.0" /> <PackageReference Include="SqlSugarCore" Version="5.1.4.169" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.8.0" /> @@ -24,4 +28,10 @@ </Reference> </ItemGroup> <ItemGroup> <Content Update="appsettings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup> </Project> appsettings.json
@@ -11,5 +11,12 @@ "ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest", //"DataBaseConn": "Data Source=192.168.1.146;Initial Catalog=TEST_MES;User ID=sa;Password =qixi123;Encrypt=True;TrustServerCertificate=True;" "DataBaseConn": "Data Source=192.168.1.146;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes;Encrypt=True;TrustServerCertificate=True;" } }, "Version": "1.0.0", "X-KDApi-AcctID": "6244701c616bff", "X-KDApi-UserName": "demo", "X-KDApi-AppID": "225649_7ZbM6dDO0qrVXXUKX/Xs09wH2u5d4rLE", "X-KDApi-AppSec": "2bb1d972f3574a46aebee03cdc80aeae", "X-KDApi-LCID": "2052", "X-KDApi-ServerUrl": "http://172.17.55.175/k3cloud/" } entity/ErpMesKc.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,50 @@ using SqlSugar; namespace NewPdaSqlServer.entity; [SugarTable("ERP_MES_KC")] public class ErpMesKc { /// <summary> /// é»è®¤å¼: (newid()) /// </summary> [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)] public Guid ID { get; set; } [SugarColumn(ColumnName = "FNUMBER")] public string? FNumber { get; set; } [SugarColumn(ColumnName = "FQTY")] public decimal? FQty { get; set; } [SugarColumn(ColumnName = "FBASEUNIT")] public string? FBaseUnit { get; set; } [SugarColumn(ColumnName = "FSTOCKUNIT")] public string? FStockUnit { get; set; } [SugarColumn(ColumnName = "FSTOCKID")] public string? FStockId { get; set; } [SugarColumn(ColumnName = "CREATE_DATE")] public DateTime? CreateDate { get; set; } [SugarColumn(ColumnName = "FBATCHNO")] public string? FBatchno { get; set; } [SugarColumn(ColumnName = "FMTONO")] public string? FMtono { get; set; } [SugarColumn(ColumnName = "FSTOCKSTATUS")] public string? FStockStatus { get; set; } [SugarColumn(ColumnName = "FSTOREURNOM")] public decimal? FStoreUrnom { get; set; } [SugarColumn(ColumnName = "FSTOREURNUM")] public decimal? FStoreUrnum { get; set; } [SugarColumn(ColumnName = "FSTOCKORGID")] public decimal? FStockOrgId { get; set; } } entity/Inventory.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ namespace NewPdaSqlServer.entity { public class Inventory { public string? ItemNo { get; set; } // æå· public string? DepotCode { get; set; } // ä»åº } } service/ErpKcManager.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,133 @@  using Kingdee.CDP.WebApi.SDK; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; using SqlSugar; using NewPdaSqlServer.DB; using System.Text; using NewPdaSqlServer.Dto; using Microsoft.AspNetCore.Mvc; using MES.Service.Models; namespace MES.Service.service.Kingdee; public class ErpKcManager : Repository<ErpMesKc> { public bool QueryStocks(Inventory inventory) { List<ErpKc> erpKc = GetErpInventory(inventory); // æ£æ¥è¿åç»ææ¯å¦ä¸ºç©º if (erpKc == null || erpKc.Count == 0) { throw new NotImplementedException("è¿åç»æä¸ºç©º"); } else { var baseObjects = MapErpCABtoWomcab(erpKc); return UseTransaction(db => { return SaveData(db, baseObjects) ? 1 : 0; }) > 0; } } #region 1.è·å峿¶åºå public List<ErpKc> GetErpInventory(Inventory inventory) { //注æ 1ï¼æ¤å¤ä¸å使ç¨åæ°å½¢å¼ä¼ å ¥ç¨æ·ååå¯ç çææä¿¡æ¯ï¼æ¹ä¸ºå¨ç»å½é ç½®æä»¶ä¸è®¾ç½®ã //注æ 2ï¼å¿ é¡»å é ç½®ç¬¬ä¸æ¹ç³»ç»ç»å½ææä¿¡æ¯åï¼åè¿è¡ä¸å¡æä½ï¼è¯¦æ åèåè¯è¨çæ¬SDKä»ç»ä¸çç»å½é ç½®æä»¶è¯´æã //读åé ç½®ï¼åå§åSDK K3CloudApi client = new K3CloudApi(); //ç¨äºè®°å½ç»æ StringBuilder Info = new StringBuilder(); //ä¸å¡å¯¹è±¡æ è¯ string formId = "STK_Inventory"; DateTime dt = DateTime.Now; //æ¥è¯¢å段éåï¼å³è¿ååªäºæ°æ®ï¼ä¸è½ä¸ºç©ºï¼æ ¹æ®ä¸åä¸å¡åæ®å¡«åä¸åçåæ®µåï¼ä»¥ä¸ä» ä¸ºç¤ºä¾ //string fieldKeys = "FCod,FFileId,FRelevantObject"; //string FilterString = "FID='-2146304'"; string fieldKeys = "FMaterialId.FNumber,FMtoNo,FStockId,FLot.FNumber,FStockUnitId.FNumber,FBaseUnitId.FNumber,FStockStatusId.FName,FBASEQTY,FMaterialid.FSTOREURNOM,FMaterialid.FSTOREURNUM,FStockOrgId"; string FilterString = string.Format(@"FMaterialId.FNumber like '%{0}%' and FStockId.FNumber like '%{1}%' and FBaseQty>0", inventory.ItemNo,inventory.DepotCode); string OrderString = ""; int TopRowCount = 0; int StartRow = 0; int Limit = 0; var param = new QueryParam() { FormId = formId, FieldKeys = fieldKeys, FilterString = FilterString, OrderString = OrderString, TopRowCount = TopRowCount, StartRow = StartRow, Limit = Limit }; //è°ç¨æ¥å£ var result = client.ExecuteBillQuery(param.ToJson()); return result.Select(s => { var entity = new ErpKc { FMaterialId = s[0]?.ToString(), FMtoNo = s[1]?.ToString(), FStockId = s[2]?.ToString(), FLot = s[3]?.ToString(), FStockUnitId = s[4]?.ToString(), FBaseUnitId = s[5]?.ToString(), FStockStatusId = s[6]?.ToString(), FBASEQTY = s[7]?.ToString() , FSTOREURNOM = s[8]?.ToString(), FSTOREURNUM = s[9]?.ToString(), FStockOrgId = s[10]?.ToString() }; return entity; }).ToList(); } #endregion private List<ErpMesKc> MapErpCABtoWomcab(List<ErpKc> dtoList) { var ErpMesKcList = new List<ErpMesKc>(); foreach (var dto in dtoList) { var kc = new ErpMesKc { FNumber = dto.FMaterialId, FQty = Convert.ToDecimal(dto.FBASEQTY), FBaseUnit=dto.FBaseUnitId, FStockUnit=dto.FStockUnitId, FStockId=dto.FStockId, CreateDate=DateTime.Now, FBatchno=dto.FLot, FMtono=dto.FMtoNo, FStockStatus=dto.FStockStatusId, FStoreUrnom= Convert.ToDecimal(dto.FSTOREURNOM), FStoreUrnum= Convert.ToDecimal(dto.FSTOREURNUM), FStockOrgId = Convert.ToDecimal(dto.FStockOrgId) }; ErpMesKcList.Add(kc); } return ErpMesKcList; } // æå ¥ææ´æ°æ°æ®çæ¹æ³ private bool SaveData(SqlSugarScope db, List<ErpMesKc> kcc) { Db.Deleteable<ErpMesKc>() .ExecuteCommand(); var save = base.InsertRange(kcc); if (save) return true; throw new NotImplementedException("æå ¥å¤±è´¥"); } }