| | |
| | | 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.鎵嬪姩鍐荤粨) |
| | | .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(); |
| | | |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.Status == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | |
| | | if (1 == reCheckOrders.Count()) |
| | | { |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.ValidDate == Convert.ToDateTime(x.ValidDate).AddDays(Convert.ToDouble(datevaliDate.OneExtensionDays))) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | } |
| | | else if (2 == reCheckOrders.Count()) |
| | | { |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.ValidDate == Convert.ToDateTime(x.ValidDate).AddDays(Convert.ToDouble(datevaliDate.TwoExtensionDays))) |
| | | .Where(x => stockDetailIds.Contains(x.Id)) |
| | | .ExecuteCommand(); |
| | | } |
| | | else if (3 == reCheckOrders.Count()) |
| | | { |
| | | BaseDal.Db.Updateable<Dt_StockInfoDetail>() |
| | | .SetColumns(x => x.ValidDate == Convert.ToDateTime(x.ValidDate).AddDays(Convert.ToDouble(datevaliDate.ThreeExtensionDays))) |
| | | .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 = "", |