StandardInterface/MES.Service/Dto/webApi/ErpCAA.cs
@@ -73,6 +73,7 @@ public string? XS_CN { get; set; } //å°æ¶äº§è½ public string? SJ_xs { get; set; } //å®é ç©´æ° public string? NEXT_Gx { get; set; } //ä¸éå·¥åº public string? RKS { get; set; } //å ¥åºæ° ////å§å¤å段 //public string? F_ZJXF_DATETIME_YHRQ { get; set; } //public string? F_ZJXF_BASE_KH { get; set; } StandardInterface/MES.Service/Dto/webApi/ErpKc.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ namespace MES.Service.Dto.webApi; 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? FOwnerId { get; set; } // æ°å¢è´§ä¸»ç¼ç åæ®µ public string? FStockOrgId { get; set; } // æ°å¢åºåç»ç»å段 } StandardInterface/MES.Service/Dto/webApi/Inventory.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ namespace MES.Service.Dto.webApi; public class Inventory { public string? ItemNo { get; set; } // æå· public string? DepotCode { get; set; } // ä»åº public string? StockOrgNumber { get; set; } // ç¨äºåºåç»ç»è¿æ»¤ //public string? OwnerNumber { get; set; } // æ°å¢è´§ä¸»ç¼ç } StandardInterface/MES.Service/Modes/ErpMesKc.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ using SqlSugar; namespace MES.Service.Modes; [SugarTable("ERP_MES_KC")] public class ErpMesKc { [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_ERP_KC", IsPrimaryKey = true)] public decimal 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 = "FSTOCKNUMBER")] public string? FStockNumber { 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 = "FOWNERID")] public string? FOwnerId { get; set; } [SugarColumn(ColumnName = "FSTOCKORGID")] public string? FStockOrgId { get; set; } } StandardInterface/MES.Service/Modes/Womcaa.cs
@@ -485,6 +485,11 @@ /// ä¸éå·¥åº ///</summary> [SugarColumn(ColumnName = "NEXT_GX")] public string Nextgx { get; set; } public string Nextgx { get; set; } /// <summary> /// ä¸éå·¥åº ///</summary> [SugarColumn(ColumnName = "RKS")] public string Rks { get; set; } } } StandardInterface/MES.Service/service/Kingdee/ErpKcManager.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,145 @@  using Kingdee.CDP.WebApi.SDK; using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using SqlSugar; using System.Text; 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 = "FCode,FFileId,FRelevantObject"; //string FilterString = "FID='-2146304'"; string fieldKeys = "FMaterialId.FNumber,FMtoNo,FStockId.FNumber,FLot.FNumber,FStockUnitId.FNumber,FBaseUnitId.FNumber,FStockStatusId.FName,FBASEQTY,FMaterialid.FSTOREURNOM,FMaterialid.FSTOREURNUM,FStockOrgId.FNumber"; string FilterString = string.Format(@"FMaterialId.FNumber like '%{0}%' and FStockId.FNumber like '%{1}%' and FBaseQty>0 and FStockOrgId.FNumber like'%{2}%'", inventory.ItemNo,inventory.DepotCode, inventory.StockOrgNumber); 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(), // FOwnerId = s[10]?.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), FQty = SafeParseDecimal(dto.FBASEQTY), FBaseUnit=dto.FBaseUnitId, FStockUnit=dto.FStockUnitId, FStockNumber=dto.FStockId, CreateDate=DateTime.Now, FBatchno=dto.FLot, FMtono=dto.FMtoNo, FStockStatus=dto.FStockStatusId, FStoreUrnom= Convert.ToDecimal(dto.FSTOREURNOM), FStoreUrnum= Convert.ToDecimal(dto.FSTOREURNUM), //FOwnerId=dto.FOwnerId, FStockOrgId = dto.FStockOrgId, }; ErpMesKcList.Add(kc); } return ErpMesKcList; } private decimal SafeParseDecimal(string? input) { if (string.IsNullOrWhiteSpace(input)) return 0; if (decimal.TryParse( input, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out var result)) return result; return 0; // è·³è¿éè¯¯åæ®µï¼ç»é»è®¤å¼ } // æå ¥ææ´æ°æ°æ®çæ¹æ³ private bool SaveData(SqlSugarScope db, List<ErpMesKc> kcc) { var save = base.InsertRange(kcc); if (save) return true; throw new NotImplementedException("æå ¥å¤±è´¥"); } } StandardInterface/MES.Service/service/SRM/MesDeliveryNoteBarcodeManager.cs
@@ -64,7 +64,9 @@ // å 餿°æ®çæ¹æ³ private bool DeleteDataByShd(SqlSugarScope db, ErpDelivery delivery) { var del = db.Deleteable<MesDeliveryNoteBarcode>().Where(s => s.DeliveryNo == delivery.DeliveryNo).ExecuteCommand() > 0; var del = db.Deleteable<MesDeliveryNoteBarcode>(). Where(s => s.DeliveryNo == delivery.DeliveryNo) .ExecuteCommand() > 0; if (del) { StandardInterface/MES.Service/service/WomcaaManager.cs
@@ -210,7 +210,8 @@ Jt=dto.JT, Xscn=dto.XS_CN, Sjxs=dto.SJ_xs, Nextgx=dto.NEXT_Gx Nextgx=dto.NEXT_Gx, Rks=dto.RKS, //æ²å°æ°å¢ // WR_F_SCDD_SCTZD = dto.F_SCDD_SCTZD //WR_F_SCDD_XH = dto.F_SCDD_XH StandardInterface/MESApplication/Controllers/BasicData/ProductionOrderController.cs
@@ -36,6 +36,7 @@ entity.Data = JsonConvert.SerializeObject(rohIn); entity.Status = 1; entity.CreateBy = "PL017"; entity.Route= rohIn.OrderDto.FBillNo; try { dynamic resultInfos = new ExpandoObject(); StandardInterface/MESApplication/Controllers/Kingdee/ErpKcController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ using MES.Service.Dto.service; using MES.Service.Dto.webApi; using MES.Service.Modes; using MES.Service.service; using MES.Service.service.Kingdee; using MES.Service.util; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System.Dynamic; namespace MESApplication.Controllers.Kingdee; [ApiController] [Route("api/[controller]")] public class ErpKcController : ControllerBase { private readonly MessageCenterManager _manager = new(); 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); } } } StandardInterface/MESApplication/appsettings.json
@@ -10,6 +10,6 @@ "AppSettings": { "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo", "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal", "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = hm_prd; Password=hmprd" "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = test_dev; Password=hmprd" } }