| | |
| | | _locationStatusChangeRecordService = locationStatusChangeRecordService; |
| | | _mapper = mapper; |
| | | } |
| | | List<string> GradeCodes = new List<string> |
| | | { |
| | | "001" |
| | | }; |
| | | /// <summary> |
| | | /// æ¥æ¶MESé¢æè®¡å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceiveOutBound(OutMESOrderDTO outMESOrderDTO) |
| | | public WebResponseContent ReceiveOutBound(List<OutMESOrderDTO> outMESOrderDTOs) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (outMESOrderDTO==null) |
| | | if (outMESOrderDTOs==null || outMESOrderDTOs.Count <= 0) |
| | | { |
| | | return content.Error("é¢æè®¡åä¼ å
¥ä¿¡æ¯ä¸ºç©º"); |
| | | } |
| | | if (outMESOrderDTO.OutDetailId <= 0) |
| | | outMESOrderDTOs.Select(x => x.OutDetailId); |
| | | List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); |
| | | OutMESOrderDTO? CheckWarehouseCode = outMESOrderDTOs.FirstOrDefault(x => !warehouses.Select(x => x.WarehouseCode).Contains(x.WarehouseCode)); |
| | | if (CheckWarehouseCode!=null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.OutDetailId)}:{outMESOrderDTO.OutDetailId}éè¦å¤§äº0"); |
| | | return content.Error($"é¢æè®¡ååºåº{nameof(OutMESOrderDTO.WarehouseCode)}:{CheckWarehouseCode.WarehouseCode}ä¸åå¨"); |
| | | } |
| | | if (outMESOrderDTO.ReqQuantity <= 0) |
| | | OutMESOrderDTO? CheckGradeCode = outMESOrderDTOs.FirstOrDefault(x => !GradeCodes.Contains(x.GradeCode)); |
| | | if (CheckGradeCode != null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.ReqQuantity)}:{outMESOrderDTO.ReqQuantity}éè¦å¤§äº0"); |
| | | return content.Error($"é¢æè®¡ååºåº{nameof(OutMESOrderDTO.GradeCode)}:{CheckGradeCode.GradeCode}ä¸åå¨"); |
| | | } |
| | | OutMESOrderDTO? CheckOutDetailId = outMESOrderDTOs.FirstOrDefault(x => x.OutDetailId <= 0); |
| | | if (CheckOutDetailId != null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.OutDetailId)}:{CheckOutDetailId.ProductOrderNo}éè¦å¤§äº0"); |
| | | } |
| | | OutMESOrderDTO? CheckReqQuantity = outMESOrderDTOs.FirstOrDefault(x => x.ReqQuantity <= 0); |
| | | if (CheckReqQuantity != null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.ReqQuantity)}:{CheckReqQuantity.ProductOrderNo}éè¦å¤§äº0"); |
| | | } |
| | | //è·åææç©æä¿¡æ¯ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x=>x.MaterielInvOrgId==MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | | //è·åææä¸´æè®¡å |
| | | //è·åææé¢æè®¡å |
| | | List<Dt_OutMESOrder> outMESOrders = BaseDal.QueryData(); |
| | | Dt_MaterielInfo? ExistmaterielInfo = materielInfos.FirstOrDefault(x=>x.MaterielCode== outMESOrderDTO.MaterialCode); |
| | | if (ExistmaterielInfo == null) |
| | | OutMESOrderDTO? CheckMaterialCode = outMESOrderDTOs.FirstOrDefault(x=> !materielInfos.Select(x=>x.MaterielCode).Contains(x.MaterialCode)); |
| | | if (CheckMaterialCode != null) |
| | | { |
| | | return content.Error($"ç©æç¼ç {nameof(OutMESOrderDTO.MaterialCode)}:{outMESOrderDTO.MaterialCode}ä¿¡æ¯ä¸åå¨"); |
| | | return content.Error($"ç©æç¼ç {nameof(OutMESOrderDTO.MaterialCode)}:{CheckMaterialCode.MaterialCode}ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | Dt_OutMESOrder? OldoutMESOrder = outMESOrders.FirstOrDefault(x=>x.OutDetailId==outMESOrderDTO.OutDetailId); |
| | | Dt_OutMESOrder? OldoutMESOrder = outMESOrders.FirstOrDefault(x=> outMESOrderDTOs.Select(x=>x.OutDetailId).Contains(x.OutDetailId)); |
| | | if (OldoutMESOrder!=null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.OutDetailId)}:{outMESOrderDTO.OutDetailId}ä¿¡æ¯å·²åå¨"); |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.OutDetailId)}:{OldoutMESOrder.OutDetailId}ä¿¡æ¯å·²åå¨"); |
| | | } |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.ProductOrderNo)}:{outMESOrderDTO.ProductOrderNo},ç©æ{outMESOrderDTO.MaterialCode}æ å¯åé
åºå"); |
| | | |
| | | Dt_OutMESOrder outMESOrder = _mapper.Map<Dt_OutMESOrder>(outMESOrderDTO); |
| | | List<Dt_OutMESOrder> outMESOrder = outMESOrderDTOs.Select(x=> _mapper.Map<Dt_OutMESOrder>(x)).ToList(); |
| | | BaseDal.AddData(outMESOrder); |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |