| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.Globalization; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Reflection.Metadata; |
| | |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåæç»ä¿¡æ¯"); |
| | | } |
| | | List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums); |
| | | //éªè¯å¤ææ¶é´æ ¼å¼ |
| | | WebResponseContent IsValidContent = IsValidMCDates(models); |
| | | if (!IsValidContent.Status) |
| | | { |
| | | return content.Error(IsValidContent.Message); |
| | | } |
| | | //é¤éè´å
¥åºå以å¤å
¶ä»å
¥åºåç»çæ°æ®å¤ç |
| | | if (inboundOrder.OrderType != InOrderTypeEnum.Purchase.ObjToInt()) |
| | | { |
| | |
| | | } |
| | | |
| | | List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList(); |
| | | |
| | | if (models.Select(x => x.MaterielCode).Distinct().Count() > 1) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ç©æä¸å¯æ··æ¾"); |
| | |
| | | { |
| | | return content.Error($"ç©æä¸å¯æ··æ¾"); |
| | | } |
| | | |
| | | //éªè¯å¤ææ¶é´æ ¼å¼ |
| | | WebResponseContent IsValidContent = IsValidMCDates(models); |
| | | if (!IsValidContent.Status) |
| | | { |
| | | return content.Error(IsValidContent.Message); |
| | | } |
| | | string materielCode = models.FirstOrDefault()?.MaterielCode ?? ""; |
| | | Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode); |
| | | if (materielInfo == null) |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"ç©æä¸å¯æ··æ¾"); |
| | | } |
| | | |
| | | //éªè¯å¤ææ¶é´æ ¼å¼ |
| | | WebResponseContent IsValidContent = IsValidMCDates(models); |
| | | if (!IsValidContent.Status) |
| | | { |
| | | return content.Error(IsValidContent.Message); |
| | | } |
| | | string materielCode = models.FirstOrDefault()?.MaterielCode ?? ""; |
| | | Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode); |
| | | if (materielInfo == null) |
| | |
| | | } |
| | | return -1; |
| | | } |
| | | /// <summary> |
| | | /// 夿æ£ç¡®æ¶é´æ ¼å¼ |
| | | /// </summary> |
| | | public WebResponseContent IsValidMCDates(List<MatSerNumAnalysisModel> analysisModels) |
| | | { |
| | | string[] effDates = analysisModels.Select(x => x.EffectiveDate).Distinct().ToArray(); |
| | | string[] ProDates = analysisModels.Select(x => x.ProductionDate).Distinct().ToArray(); |
| | | foreach (string effDate in effDates) |
| | | { |
| | | string format = "yyyy-MM-dd"; // ç®æ æ ¼å¼ |
| | | DateTime parsedDate; |
| | | // è§£æå¹¶éªè¯æ ¼å¼ |
| | | bool isValid = DateTime.TryParseExact( |
| | | effDate, |
| | | format, |
| | | CultureInfo.InvariantCulture, |
| | | DateTimeStyles.None, |
| | | out parsedDate |
| | | ); |
| | | |
| | | if (!isValid) |
| | | { |
| | | return WebResponseContent.Instance.Error("æ ¼å¼æ æææ¥æä¸åæ³"); |
| | | } |
| | | } |
| | | foreach (string ProDate in ProDates) |
| | | { |
| | | string format = "yyyy-MM-dd"; // ç®æ æ ¼å¼ |
| | | DateTime parsedDate; |
| | | // è§£æå¹¶éªè¯æ ¼å¼ |
| | | bool isValid = DateTime.TryParseExact( |
| | | ProDate, |
| | | format, |
| | | CultureInfo.InvariantCulture, |
| | | DateTimeStyles.None, |
| | | out parsedDate |
| | | ); |
| | | |
| | | if (!isValid) |
| | | { |
| | | return WebResponseContent.Instance.Error("æ ¼å¼æ æææ¥æä¸åæ³"); |
| | | } |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | } |
| | | } |