| ¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | using Kingdee.CDP.WebApi.SDK; |
| | | using MES.Service.Models; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.AspNetCore.Mvc.Filters; |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto; |
| | | using NewPdaSqlServer.entity; |
| | | using NewPdaSqlServer.util; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using System.Text; |
| | | |
| | | namespace MES.Service.service.Kingdee; |
| | | |
| | | public class ErpBOMManager : Repository<ErpBOM> |
| | | { |
| | | |
| | | #region è·åBOM |
| | | public bool QueryErpBOM() |
| | | { |
| | | List<ErpBom> bom = GetErpBOM(); |
| | | |
| | | // æ£æ¥è¿åç»ææ¯å¦ä¸ºç©º |
| | | if (bom == null || bom.Count == 0) |
| | | { |
| | | throw new NotImplementedException("è¿åç»æä¸ºç©º"); |
| | | } |
| | | else |
| | | { |
| | | var baseObjects = MapErpBOMtoMes(bom); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | | return SaveBOMData(db, baseObjects) ? 1 : 0; |
| | | }) > 0; |
| | | } |
| | | } |
| | | |
| | | private bool SaveBOMData(SqlSugarScope db, List<ErpBOM> kcc) |
| | | { |
| | | Db.Deleteable<ErpBOM>() |
| | | .ExecuteCommand(); |
| | | |
| | | var save = base.InsertRange(kcc); |
| | | if (save) return true; |
| | | throw new NotImplementedException("æå
¥å¤±è´¥"); |
| | | } |
| | | |
| | | public List<ErpBom> GetErpBOM() |
| | | { |
| | | //注æ 1ï¼æ¤å¤ä¸å使ç¨åæ°å½¢å¼ä¼ å
¥ç¨æ·ååå¯ç çææä¿¡æ¯ï¼æ¹ä¸ºå¨ç»å½é
ç½®æä»¶ä¸è®¾ç½®ã |
| | | //注æ 2ï¼å¿
é¡»å
é
ç½®ç¬¬ä¸æ¹ç³»ç»ç»å½ææä¿¡æ¯åï¼åè¿è¡ä¸å¡æä½ï¼è¯¦æ
åèåè¯è¨çæ¬SDKä»ç»ä¸çç»å½é
ç½®æä»¶è¯´æã |
| | | //读åé
ç½®ï¼åå§åSDK |
| | | K3CloudApi client = new K3CloudApi(); |
| | | //ç¨äºè®°å½ç»æ |
| | | StringBuilder Info = new StringBuilder(); |
| | | //ä¸å¡å¯¹è±¡æ è¯ |
| | | string formId = "ENG_BOM"; |
| | | DateTime dt = DateTime.Now; |
| | | //æ¥è¯¢å段éåï¼å³è¿ååªäºæ°æ®ï¼ä¸è½ä¸ºç©ºï¼æ ¹æ®ä¸åä¸å¡åæ®å¡«åä¸åçåæ®µåï¼ä»¥ä¸ä»
ä¸ºç¤ºä¾ |
| | | //string fieldKeys = "FCod,FFileId,FRelevantObject"; |
| | | //string FilterString = "FID='-2146304'"; |
| | | string fieldKeys = "FITEMPPROPERTY ,FMATERIALID ,FITEMNAME ,FTreeEntity_FENTRYID ,FCHILDITEMNAME ,FNUMERATOR , FDENOMINATOR"; |
| | | var filterString = new[] |
| | | { |
| | | new |
| | | { |
| | | FieldName = "FITEMPPROPERTY", |
| | | Compare = "29", |
| | | Value = "3", |
| | | Left = "(", |
| | | Right = ")", |
| | | Logic = 0 |
| | | } |
| | | }; |
| | | var param = new QueryParams() |
| | | { |
| | | FormId = formId, |
| | | FieldKeys = fieldKeys, |
| | | FilterString = filterString |
| | | }; |
| | | //è°ç¨æ¥å£ |
| | | var result = client.ExecuteBillQuery(param.ToJson()); |
| | | |
| | | return result.Select(s => |
| | | { |
| | | var entity = new ErpBom |
| | | { |
| | | FITEMPPROPERTY = s[0]?.ToString(), |
| | | FMATERIALID = s[1]?.ToString(), |
| | | FITEMNAME = s[2]?.ToString(), |
| | | FENTRYID = s[3]?.ToString(), |
| | | FCHILDITEMNAME = s[4]?.ToString(), |
| | | FNUMERATOR = s[5]?.ToString(), |
| | | FDENOMINATOR = s[6]?.ToString() |
| | | }; |
| | | return entity; |
| | | }).ToList(); |
| | | } |
| | | |
| | | private class QueryParams :BaseEntify |
| | | { |
| | | public string FormId { get; set; } |
| | | |
| | | public string FieldKeys { get; set; } |
| | | |
| | | public object[] FilterString { get; set; } |
| | | } |
| | | |
| | | private List<ErpBOM> MapErpBOMtoMes(List<ErpBom> dtoList) |
| | | { |
| | | var ErpMesBomList = new List<ErpBOM>(); |
| | | |
| | | foreach (var dto in dtoList) |
| | | { |
| | | var kc = new ErpBOM |
| | | { |
| | | ID = Guid.NewGuid(), |
| | | ItemProperty = dto.FITEMPPROPERTY, |
| | | ItemId = Convert.ToInt32(dto.FMATERIALID), |
| | | ItemName = dto.FITEMNAME, |
| | | ChildItemId = Convert.ToInt32(dto.FENTRYID), |
| | | ChildItemName = dto.FCHILDITEMNAME, |
| | | Numerator = Convert.ToDecimal(dto.FNUMERATOR), |
| | | Denominator = Convert.ToDecimal(dto.FDENOMINATOR) |
| | | |
| | | }; |
| | | |
| | | ErpMesBomList.Add(kc); |
| | | } |
| | | |
| | | return ErpMesBomList; |
| | | } |
| | | #endregion |
| | | |
| | | } |