| | |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using StackExchange.Profiling.Internal; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | using WIDESEA_ICheckService; |
| | | using WIDESEA_IOutboundService; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_Model.Models.Basic; |
| | | using WIDESEA_Model.Models.Check; |
| | | |
| | | namespace WIDESEA_CheckService |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | List<Dt_ReCheckOrder> reCheckOrders = BaseDal.Db.Queryable<Dt_ReCheckOrder>().Where(x => x.MaterielCode == model.MaterielCode && x.BatchNo == model.BatchNo).ToList(); |
| | | if (reCheckOrders.Count() == 3) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¯¥ç©æåæ¹æ¬¡å·²ç»éæ£äºä¸æ¬¡ï¼ä¸å
许åè¿è¡éæ£"); |
| | | } |
| | | if (BaseDal.QueryFirst(x => x.OrderNo == model.OrderNo) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"{model.OrderNo}åå·éå¤"); |
| | |
| | | model.Creater = "MES"; |
| | | model.CreateDate = DateTime.Now; |
| | | model.MaterielName = materielInfo?.MaterielName ?? ""; |
| | | var stockDetailIds = BaseDal.Db.Queryable<Dt_StockInfoDetail>() |
| | | .Where(x => x.MaterielCode == model.MaterielCode && x.BatchNo == model.BatchNo && x.ValidDate !=null) |
| | | .Select(x => x.Id) |
| | | .ToList(); |
| | | |
| | | if (stockDetailIds.Count > 0) |
| | | { |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.Status == StockStatusEmun.æå¨å»ç».ObjToInt()) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | } |
| | | BaseDal.AddData(model); |
| | | var outboundOrders = ConvertToOutboundOrders(model); |
| | | |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | List<Dt_ReCheckOrder> reCheckOrders = BaseDal.Db.Queryable<Dt_ReCheckOrder>().Where(x=>x.MaterielCode == model.MaterielCode && x.BatchNo == model.BatchNo).ToList(); |
| | | |
| | | var recheckOrder = Db.Queryable<Dt_ReCheckOrder>().Where(x => x.OrderNo == model.OrderNo).First(); |
| | | if (recheckOrder == null) |
| | | { |
| | |
| | | if (recheckOrder.SignSeq == model.SignSeq) |
| | | { |
| | | isupdate = true; |
| | | } |
| | | if (model.Result == 1 && recheckOrder.SignSeq != model.SignSeq) |
| | | { |
| | | var stockDetailIds = BaseDal.Db.Queryable<Dt_StockInfoDetail>() |
| | | .Where(x => x.MaterielCode == model.MaterielCode && x.BatchNo == model.BatchNo && x.ValidDate != null && (x.Status == (int)StockStatusEmun.æå¨å»ç» ||x.Status == (int)StockStatusEmun.鿣ä¸)) |
| | | .Select(x => x.Id) |
| | | .ToList(); |
| | | |
| | | if (stockDetailIds.Count > 0) |
| | | { |
| | | var datevaliDate = BaseDal.Db.Queryable<Dt_MaterialExpirationDate>().Where(x => x.MaterialCode.Contains(model.MaterielCode.Substring(0, 6))).First(); |
| | | if(datevaliDate == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¯¥ç©ææªæ¾å°MESæ¨éçææææ°æ®ï¼è¯·å
æ¨éè¯¥ç©æçææææ°æ®"); |
| | | } |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.Status == StockStatusEmun.å
¥åºå®æ.ObjToInt()) |
| | | .Where(x => stockDetailIds.Contains(x.Id) && x.Status == (int)StockStatusEmun.æå¨å»ç») |
| | | .ExecuteCommand(); |
| | | |
| | | //计ç®å½å夿£åæ®ç»ææ¶é´ |
| | | DateTime newDate; |
| | | |
| | | if (1 == reCheckOrders.Count()) |
| | | { |
| | | //åæ®ç»ææ¨éæ¶é´+ç©æå¤æ£å»¶é¿æ¶é´ä¸æææå对æ¯ï¼è°å¤§åè° |
| | | newDate = Convert.ToDateTime(DateTime.Now).AddDays(Convert.ToDouble(datevaliDate.OneExtensionDays)); |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.ValidDate == SqlFunc.IIF(x.ValidDate > newDate, x.ValidDate, newDate)) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | } |
| | | else if (2 == reCheckOrders.Count()) |
| | | { |
| | | newDate = Convert.ToDateTime(DateTime.Now).AddDays(Convert.ToDouble(datevaliDate.TwoExtensionDays)); |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.ValidDate == SqlFunc.IIF(x.ValidDate > newDate, x.ValidDate, newDate)) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | } |
| | | else if (3 == reCheckOrders.Count()) |
| | | { |
| | | newDate = Convert.ToDateTime(DateTime.Now).AddDays(Convert.ToDouble(datevaliDate.ThreeExtensionDays)); |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.ValidDate == SqlFunc.IIF(x.ValidDate > newDate, x.ValidDate, newDate)) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | } |
| | | } |
| | | } |
| | | recheckOrder.OrderNo = model.OrderNo; |
| | | recheckOrder.MaterielCode = model.MaterielCode; |
| | |
| | | recheckOrder.ModifyDate = DateTime.Now; |
| | | var materielInfo = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().First(x => model.MaterielCode.Equals(x.MaterielCode)); |
| | | recheckOrder.MaterielName= materielInfo?.MaterielName??""; |
| | | |
| | | BaseDal.UpdateData(recheckOrder); |
| | | |
| | | if (isupdate) |
| | |
| | | OrderType = InOrderTypeEnum.ReCheck.ObjToInt(), |
| | | OrderStatus = 0, |
| | | CreateType = 0, |
| | | BusinessType = "", |
| | | BusinessType = "30", |
| | | IsBatch = 0, |
| | | FactoryArea = reCheckOrder.FactoryArea, |
| | | Remark = "", |
| | | DepartmentCode = "", |
| | | DepartmentName = "", |
| | | ReturnToMESStatus = 5, |
| | | Details = new List<Dt_OutboundOrderDetail>() |
| | | }; |
| | | outboundOrder.Details.Add( |