| | |
| | | private readonly IRepository<Dt_StockInfos> _IStockInfosRepository; |
| | | private readonly IRepository<Dt_FillingOrder> _FillingOrderRepository; |
| | | private readonly IRepository<Dt_OutboundOrder> _OutboundOrderRepository; |
| | | //WCS满桶åºåºä¿¡å· |
| | | private static bool kk = false; |
| | | private readonly IRepository<Dt_OutboundOrder_Hty> _OutboundOrderHtyRepository; |
| | | |
| | | public TaskService(IRepository<Dt_Task> BaseDal, IRepository<Dt_OutboundOrder> OutboundOrderRepository, IRepository<Dt_FillingOrder> FillingOrderRepository, IRepository<Dt_StockInfos> IStockInfosRepository, ILocationInfoService ILocationInfoService, IRepository<Dt_StockInfoDetail> IStockInfoDetailRepository, IRepository<Dt_StockInfo_hty> IStockInfohtyRepository, IRepository<Dt_StockInfoDetail_Hty> IStockInfoDetailHtyRepository, IRepository<Dt_Outstockinfo> IOutstockinfoService, IStockService IStockService, IRepository<Dt_Warehouse> WarehouseService, IRepository<Dt_Outstockinfo> OutstockinfoRepository, ILocationInfoService LocationInfoService, IRepository<Dt_StockInfo> StockInfoRepository, IRepository<Dt_LocationInfo> LocationInfoRepository, IRepository<Dt_Task_Hty> Task_HtyRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) |
| | | public TaskService(IRepository<Dt_Task> BaseDal, IRepository<Dt_OutboundOrder_Hty> OutboundOrderHtyRepository, IRepository<Dt_OutboundOrder> OutboundOrderRepository, IRepository<Dt_FillingOrder> FillingOrderRepository, IRepository<Dt_StockInfos> IStockInfosRepository, ILocationInfoService ILocationInfoService, IRepository<Dt_StockInfoDetail> IStockInfoDetailRepository, IRepository<Dt_StockInfo_hty> IStockInfohtyRepository, IRepository<Dt_StockInfoDetail_Hty> IStockInfoDetailHtyRepository, IRepository<Dt_Outstockinfo> IOutstockinfoService, IStockService IStockService, IRepository<Dt_Warehouse> WarehouseService, IRepository<Dt_Outstockinfo> OutstockinfoRepository, ILocationInfoService LocationInfoService, IRepository<Dt_StockInfo> StockInfoRepository, IRepository<Dt_LocationInfo> LocationInfoRepository, IRepository<Dt_Task_Hty> Task_HtyRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) |
| | | { |
| | | _LocationInfoService = LocationInfoService; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _IStockInfosRepository = IStockInfosRepository; |
| | | _FillingOrderRepository = FillingOrderRepository; |
| | | _OutboundOrderRepository = OutboundOrderRepository; |
| | | _OutboundOrderHtyRepository = OutboundOrderHtyRepository; |
| | | } |
| | | |
| | | public IRepository<Dt_Task> Repository => BaseDal; |
| | |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | Dt_Task task = new Dt_Task(); |
| | | //æ¥è¯¢å½åå
¥åºç©ºæ¡¶ç±»å |
| | | Dt_Outstockinfo Warehouse = _OutstockinfoRepository.QueryFirst(x => x.Id == 1); |
| | | //å
¥åºåé
è´§ä½ |
| | | Dt_LocationInfo locations = _LocationInfoService.AllotLocationInfo(1); |
| | | locations.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | locations.Remark = Warehouse.EmptyOutSet; |
| | | |
| | | task.SourceAddress = location; |
| | | task.TargetAddress = locations.LocationCode; |
| | |
| | | task.Grade = 1; |
| | | task.TaskType = (int)TaskTypeEnum.InEmpty; |
| | | task.TaskState = (int)TaskStatusEnum.InNew; |
| | | task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt(); |
| | | task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()); |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | |
| | | |
| | | //å
¥åºåé
è´§ä½ |
| | | Dt_LocationInfo locations = _LocationInfoService.AllotLocationInfo(k); |
| | | locations.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | |
| | | //åå»ºç©æç»ç |
| | | Dt_StockInfo stockInfo = new Dt_StockInfo(); |
| | | stockInfo.LocationCode = locations.LocationCode; |
| | | stockInfo.StockStatus = (int)StockStatusEmun.ç»çæå; |
| | | stockInfo.MaterielCode1 = stock.MaterialCode1; |
| | | stockInfo.MaterielCode2 = stock.MaterialCode2; |
| | | stockInfo.MaterielCode3 = stock.MaterialCode3; |
| | |
| | | //æ£å¸¸å
¥åº |
| | | if (outstockinfo.OutMode == 1) |
| | | { |
| | | locations.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | stockInfo.StockStatus = (int)StockStatusEmun.ç»çæå; |
| | | |
| | | task.SourceAddress = stock.location; |
| | | task.TargetAddress = locations.LocationCode; |
| | | task.Roadway = "SC01"; |
| | | task.Grade = 1; |
| | | task.TaskType = (int)TaskTypeEnum.Infull; |
| | | task.TaskState = (int)TaskStatusEnum.InNew; |
| | | task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt(); |
| | | task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()); |
| | | } |
| | | //ç´æ¥åºåº |
| | | else |
| | | { |
| | | stockInfo.StockStatus = (int)StockStatusEmun.ç´æ¥åºåº; |
| | | |
| | | task.SourceAddress = "1-52-1"; |
| | | task.TargetAddress = locations.LocationCode; |
| | | task.Roadway = "SC01"; |
| | | task.Grade = 1; |
| | | task.TaskType = (int)TaskTypeEnum.OutDirect; |
| | | task.TaskState = (int)TaskStatusEnum.InNew; |
| | | task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt(); |
| | | task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()); |
| | | } |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | |
| | | return content; |
| | | } |
| | | |
| | | //WCSå
¥åºä»»å¡å®æ |
| | | //WCSä»»å¡å®æ |
| | | public Stock WCSAccomplishIn(int TaskNum) |
| | | { |
| | | Stock content = new Stock(); |
| | |
| | | //ä¿®æ¹è´§ä½ç¶æ |
| | | Dt_LocationInfo locationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | locationInfo.LocationStatus = (int)LocationStatusEnum.Free; |
| | | locationInfo.Remark = ""; |
| | | |
| | | //çæåå²ä»»å¡ |
| | | Dt_Task_Hty taskhty = new Dt_Task_Hty(); |
| | |
| | | { |
| | | //å é¤åºåä¿¡æ¯ |
| | | Dt_StockInfo stockInfo = _StockInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | List<Dt_StockInfoDetail> stockInfoDetail = _IStockInfoDetailRepository.QueryData(x => x.MaterielDetailedid == stockInfo.MaterielDetailedid); |
| | | //çæåå²åºåä¿¡æ¯ |
| | | Dt_StockInfo_hty stockInfo_Hty = new Dt_StockInfo_hty(); |
| | | stockInfo_Hty.PalletCode = stockInfo.PalletCode; |
| | |
| | | stockInfo_Hty.MaterielCode4 = stockInfo.MaterielCode4; |
| | | stockInfo_Hty.StockType = stockInfo.StockType; |
| | | stockInfo_Hty.MaterielDetailedid = stockInfo.MaterielDetailedid; |
| | | List<Dt_StockInfoDetail_Hty> stockInfoDetail_Hty = new List<Dt_StockInfoDetail_Hty>(); |
| | | int k = stockInfoDetail.Count() - 1; |
| | | for (int i = 0; i <= k; i++) |
| | | { |
| | | stockInfoDetail_Hty[i].MaterielCode = stockInfoDetail[i].MaterielCode; |
| | | stockInfoDetail_Hty[i].MaterielDetailedid = stockInfoDetail[i].MaterielDetailedid; |
| | | } |
| | | |
| | | //ä¿®æ¹è´§ä½ç¶æ |
| | | Dt_LocationInfo locationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | | _StockInfoRepository.DeleteData(stockInfo); |
| | | _IStockInfoDetailRepository.DeleteData(stockInfoDetail); |
| | | _IStockInfohtyRepository.AddData(stockInfo_Hty); |
| | | _IStockInfoDetailHtyRepository.AddData(stockInfoDetail_Hty); |
| | | _LocationInfoRepository.UpdateData(locationInfo); |
| | | _Task_HtyRepository.AddData(taskhty); |
| | | BaseDal.DeleteData(task); |
| | | //å¤æè®¢å任塿¯å¦å®æ |
| | | OrderTask(task, stockInfo); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | |
| | | { |
| | | //å é¤åºåä¿¡æ¯ |
| | | Dt_StockInfo stockInfo = _StockInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | List<Dt_StockInfoDetail> stockInfoDetail = _IStockInfoDetailRepository.QueryData(x => x.MaterielDetailedid == stockInfo.MaterielDetailedid); |
| | | //çæåå²åºåä¿¡æ¯ |
| | | Dt_StockInfo_hty stockInfo_Hty = new Dt_StockInfo_hty(); |
| | | stockInfo_Hty.PalletCode = stockInfo.PalletCode; |
| | |
| | | stockInfo_Hty.MaterielCode4 = stockInfo.MaterielCode4; |
| | | stockInfo_Hty.StockType = stockInfo.StockType; |
| | | stockInfo_Hty.MaterielDetailedid = stockInfo.MaterielDetailedid; |
| | | List<Dt_StockInfoDetail_Hty> stockInfoDetail_Hty = new List<Dt_StockInfoDetail_Hty>(); |
| | | int k = stockInfoDetail.Count() - 1; |
| | | for (int i = 0; i <= k; i++) |
| | | { |
| | | stockInfoDetail_Hty[i].MaterielCode = stockInfoDetail[i].MaterielCode; |
| | | stockInfoDetail_Hty[i].MaterielDetailedid = stockInfoDetail[i].MaterielDetailedid; |
| | | stockInfoDetail_Hty[i].BarcodeType = stockInfoDetail[i].BarcodeType; |
| | | stockInfoDetail_Hty[i].AuxQty = stockInfoDetail[i].AuxQty; |
| | | stockInfoDetail_Hty[i].Quantity = stockInfoDetail[i].Quantity; |
| | | stockInfoDetail_Hty[i].MaxQty = stockInfoDetail[i].MaxQty; |
| | | stockInfoDetail_Hty[i].BarWeight = stockInfoDetail[i].BarWeight; |
| | | stockInfoDetail_Hty[i].PackageQty = stockInfoDetail[i].PackageQty; |
| | | stockInfoDetail_Hty[i].QuantityIn = stockInfoDetail[i].QuantityIn; |
| | | stockInfoDetail_Hty[i].QuantityOut = stockInfoDetail[i].QuantityOut; |
| | | stockInfoDetail_Hty[i].Status = stockInfoDetail[i].Status; |
| | | stockInfoDetail_Hty[i].Materialld = stockInfoDetail[i].Materialld; |
| | | stockInfoDetail_Hty[i].BatchNum = stockInfoDetail[i].BatchNum; |
| | | stockInfoDetail_Hty[i].CreateEmpld = stockInfoDetail[i].CreateEmpld; |
| | | stockInfoDetail_Hty[i].Taskld = stockInfoDetail[i].Taskld; |
| | | stockInfoDetail_Hty[i].TaskSubld = stockInfoDetail[i].TaskSubld; |
| | | } |
| | | |
| | | //çæåå²ä»»å¡ |
| | | Dt_Task_Hty taskhty = new Dt_Task_Hty(); |
| | |
| | | content.MaterialCode3 = stockInfo.MaterielCode3; |
| | | content.MaterialCode4 = stockInfo.MaterielCode4; |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | | _StockInfoRepository.DeleteData(stockInfo); |
| | | _IStockInfoDetailRepository.DeleteData(stockInfoDetail); |
| | | _IStockInfohtyRepository.AddData(stockInfo_Hty); |
| | | _IStockInfoDetailHtyRepository.AddData(stockInfoDetail_Hty); |
| | | _Task_HtyRepository.AddData(taskhty); |
| | | BaseDal.DeleteData(task); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | //æ¥è¯¢å½åæ§è¡ç订å |
| | | Dt_OutboundOrder OutboundOrder = _OutboundOrderRepository.QueryFirst(x => x.BoundOrderStatue == (int)OutboundOrderEnum.Execute); |
| | | Dt_OutboundOrder_Hty OutboundOrder_Hty = new Dt_OutboundOrder_Hty(); |
| | | int num = OutboundOrder.BoundTaskNum + 1; |
| | | OutboundOrder.BoundTaskNum = num; |
| | | //å¤æè®¢åæ¯å¦æ§è¡å®æ |
| | | if (num == OutboundOrder.num) |
| | | { |
| | | //çæåå²è®¢å |
| | | OutboundOrder_Hty.MaterielName = OutboundOrder.MaterielName; |
| | | OutboundOrder_Hty.num = OutboundOrder.num; |
| | | OutboundOrder_Hty.BoundOrderType = OutboundOrder.BoundOrderType; |
| | | OutboundOrder_Hty.BoundOrderCode = OutboundOrder.BoundOrderCode; |
| | | OutboundOrder_Hty.BoundOrderStatue = (int)OutboundOrderEnum.Accomplish; |
| | | |
| | | //ä¿®æ¹å
¥åºæ¨¡å¼ |
| | | Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1); |
| | | outstockinfo.OutMode = 0; |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | | _StockInfoRepository.DeleteData(stockInfo); |
| | | _IStockInfohtyRepository.AddData(stockInfo_Hty); |
| | | _Task_HtyRepository.AddData(taskhty); |
| | | BaseDal.DeleteData(task); |
| | | _OutboundOrderRepository.DeleteData(OutboundOrder); |
| | | _OutboundOrderHtyRepository.AddData(OutboundOrder_Hty); |
| | | _IOutstockinfoService.UpdateData(outstockinfo); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | else |
| | | { |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | | _StockInfoRepository.DeleteData(stockInfo); |
| | | _IStockInfohtyRepository.AddData(stockInfo_Hty); |
| | | _Task_HtyRepository.AddData(taskhty); |
| | | BaseDal.DeleteData(task); |
| | | _OutboundOrderRepository.UpdateData(OutboundOrder); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | } |
| | | |
| | | return content; |
| | | } |
| | | |
| | | //å¤æè®¢å任塿¯å¦å®æ |
| | | public void OrderTask(Dt_Task task, Dt_StockInfo stock) |
| | | { |
| | | //夿æ¯å¦ä¸ºè®¢åä»»å¡ |
| | | if (task.Remark != null && task.Remark.Equals("")) |
| | | { |
| | | //夿å½å订å任塿¯å¦è¿ææªæ§è¡å®æç |
| | | Dt_Task tasks = BaseDal.QueryFirst(x => x.Remark == task.Remark); |
| | | if (tasks == null) |
| | | { |
| | | Dt_OutboundOrder OutboundOrder = _OutboundOrderRepository.QueryFirst(x=>x.MaterielName == stock.MaterielName && x.BoundOrderCode == task.Remark); |
| | | //çæåå²è®¢å |
| | | Dt_OutboundOrder_Hty OutboundOrder_Hty = new Dt_OutboundOrder_Hty(); |
| | | OutboundOrder_Hty.MaterielName = OutboundOrder.MaterielName; |
| | | OutboundOrder_Hty.num = OutboundOrder.num; |
| | | OutboundOrder_Hty.BoundOrderType = OutboundOrder.BoundOrderType; |
| | | OutboundOrder_Hty.BoundOrderCode = OutboundOrder.BoundOrderCode; |
| | | OutboundOrder_Hty.BoundOrderStatue = (int)OutboundOrderEnum.Accomplish; |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | | _OutboundOrderHtyRepository.AddData(OutboundOrder_Hty); |
| | | _OutboundOrderRepository.UpdateData(OutboundOrder); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //æ ¹æ®ä»»å¡å·æ¥è¯¢ä»»å¡ |
| | |
| | | task.Grade = 1; |
| | | task.TaskType = (int)TaskTypeEnum.OutEmpty; |
| | | task.TaskState = (int)TaskStatusEnum.OutNew; |
| | | task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt(); |
| | | task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()); |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | |
| | | } |
| | | |
| | | //æ ¹æ®æ°éåç§ç±»ä¸å满桶åºåºä»»å¡ |
| | | public WebResponseContent ArtificialTask(int Num, string Types) |
| | | public WebResponseContent ArtificialTask(int Num, string Types, string? remark) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | List<Dt_Task> tasks = new List<Dt_Task>(); |
| | | List<Dt_LocationInfo> LocationInfo = new List<Dt_LocationInfo>(); |
| | | List<Dt_StockInfo> StockInfo = new List<Dt_StockInfo>(); |
| | | |
| | | if (Num > 0 && !Types.Equals("") && Types != null && kk == true) |
| | | if (Num > 0 && !Types.Equals("") && Types != null) |
| | | { |
| | | Dt_Outstockinfo outstockinfo = _OutstockinfoRepository.QueryFirst(x => x.Id == 1); |
| | | //满 |
| | | if (outstockinfo.BigOrLittle == 1) |
| | | Dt_Warehouse Warehouse = _WarehouseRepository.QueryFirst(x=>x.MateriaCode == Types); |
| | | //满桶åºåº |
| | | if (Warehouse == null) |
| | | { |
| | | //è·åå¹¶éå®ç©æ |
| | | StockInfo = _IStockService.PriorityBig(Num, Types); |
| | | if (StockInfo == null || StockInfo.Count <= 0) |
| | | Dt_Outstockinfo outstockinfo = _OutstockinfoRepository.QueryFirst(x => x.Id == 1); |
| | | //满 |
| | | if (outstockinfo.BigOrLittle == 1) |
| | | { |
| | | StockInfo = _IStockService.PriorityLittle(Num, Types); |
| | | } |
| | | } |
| | | //æ® |
| | | else |
| | | { |
| | | //è·åå¹¶éå®ç©æ |
| | | StockInfo = _IStockService.PriorityLittle(Num, Types); |
| | | if (StockInfo == null || StockInfo.Count <= 0) |
| | | { |
| | | //è·åå¹¶éå®ç©æ |
| | | StockInfo = _IStockService.PriorityBig(Num, Types); |
| | | if (StockInfo == null || StockInfo.Count <= 0) |
| | | { |
| | | StockInfo = _IStockService.PriorityLittle(Num, Types); |
| | | } |
| | | } |
| | | //æ® |
| | | else |
| | | { |
| | | //è·åå¹¶éå®ç©æ |
| | | StockInfo = _IStockService.PriorityLittle(Num, Types); |
| | | if (StockInfo == null || StockInfo.Count <= 0) |
| | | { |
| | | StockInfo = _IStockService.PriorityBig(Num, Types); |
| | | } |
| | | } |
| | | |
| | | //åå»ºä»»å¡ |
| | | if (StockInfo != null && StockInfo.Count > 0) |
| | | { |
| | | //è·åå¹¶éå®è´§ä½ |
| | | LocationInfo = _ILocationInfoService.StockLockLocation(StockInfo); |
| | | //åå»ºä»»å¡ |
| | | tasks = StocksAddTasks(StockInfo, remark); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç©æä¸è¶³"); |
| | | } |
| | | } |
| | | |
| | | //åå»ºä»»å¡ |
| | | if (StockInfo != null && StockInfo.Count > 0) |
| | | //空桶åºåº |
| | | else |
| | | { |
| | | //è·åå¹¶éå®è´§ä½ |
| | | LocationInfo = _ILocationInfoService.StockLockLocation(StockInfo); |
| | | //åå»ºä»»å¡ |
| | | tasks = StocksAddTasks(StockInfo); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç©æä¸è¶³"); |
| | | LocationInfo = _LocationInfoRepository.QueryData(x => x.Remark == Types && x.LocationStatus == (int)LocationStatusEnum.EmptyBarrel).Take(Num).ToList(); |
| | | if (LocationInfo.Count() == Num) |
| | | { |
| | | string StationName = "满桶åº"; |
| | | string StationNames = SelectStationManger(StationName); |
| | | foreach (var item in LocationInfo) |
| | | { |
| | | item.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | |
| | | //åå»ºä»»å¡ |
| | | Dt_Task task = new Dt_Task(); |
| | | task.SourceAddress = item.LocationCode; |
| | | task.TargetAddress = StationNames; |
| | | task.Roadway = "SC01"; |
| | | task.Grade = 1; |
| | | task.TaskType = (int)TaskTypeEnum.OutEmpty; |
| | | task.TaskState = (int)TaskStatusEnum.OutNew; |
| | | task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()); |
| | | tasks.Add(task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç©æä¸è¶³"); |
| | | } |
| | | } |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | |
| | | } |
| | | else |
| | | { |
| | | LogLock.OutLogAOP("æ¥å£æ¥å¿", new string[] { "ä¸åæ°éãç§ç±»æä¿¡å·å¼å¸¸" }); |
| | | return content.Error("ä¸åæ°éãç§ç±»æä¿¡å·å¼å¸¸"); |
| | | LogLock.OutLogAOP("æ¥å£æ¥å¿", new string[] { "ä¸åæ°éæç§ç±»å¼å¸¸" }); |
| | | return content.Error("ä¸åæ°éæç§ç±»å¼å¸¸"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | //æ ¹æ®å¤æ¡ç©æåå»ºå¤æ¡åºåºä»»å¡ |
| | | public List<Dt_Task> StocksAddTasks(List<Dt_StockInfo> StockInfo) |
| | | public List<Dt_Task> StocksAddTasks(List<Dt_StockInfo> StockInfo ,string? remark) |
| | | { |
| | | List<Dt_Task> tasks = new List<Dt_Task>(); |
| | | int k = StockInfo.Count() - 1; |
| | |
| | | task.Grade = 1; |
| | | task.TaskType = (int)TaskTypeEnum.Outfull; |
| | | task.TaskState = (int)TaskStatusEnum.OutNew; |
| | | task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt() + i; |
| | | task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt() + i); |
| | | task.Remark = remark; |
| | | tasks.Add(task); |
| | | } |
| | | |
| | |
| | | { |
| | | Dt_LocationInfo locationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | locationInfo.LocationStatus = (int)LocationStatusEnum.Free; |
| | | locationInfo.Remark = ""; |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | |
| | | BaseDal.DeleteData(task); |
| | | WCSTaskDelete(task.TaskNum); |
| | | _Task_HtyRepository.AddData(taskhty); |
| | | //å¤æè®¢å任塿¯å¦å®æ |
| | | OrderTask(task, stockInfo); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | |
| | | return task; |
| | | } |
| | | |
| | | //WCS满桶åºåºä¿¡å· |
| | | public WebResponseContent WCSSignal(int k) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | //å¯ä»¥åº |
| | | if (k == 1) |
| | | { |
| | | kk = true; |
| | | } |
| | | //ä¸å¯ä»¥åº |
| | | else |
| | | { |
| | | kk = false; |
| | | } |
| | | |
| | | return content; |
| | | } |
| | | |
| | | //æ§è¡è®¢å |
| | | public string ExecuteOrder(int k) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | Dt_OutboundOrder OutboundOrder = _OutboundOrderRepository.QueryFirst(x => x.Id == k); |
| | | //ä¸åä»»å¡ |
| | | content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName); |
| | | if (content.Message == null || content.Message.Equals("")) |
| | | //ç´æ¥åºåºè®¢å |
| | | if (OutboundOrder.BoundOrderType == 4) |
| | | { |
| | | OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute; |
| | | _OutboundOrderRepository.UpdateData(OutboundOrder); |
| | | //鲿¢å¤æ¡è®¢åæ§è¡ |
| | | Dt_OutboundOrder OutboundOrders = _OutboundOrderRepository.QueryFirst(x => x.BoundOrderStatue == (int)OutboundOrderEnum.Execute); |
| | | if (OutboundOrders == null) |
| | | { |
| | | //ä¿®æ¹å
¥åºæ¨¡å¼ |
| | | Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1); |
| | | outstockinfo.OutMode = 1; |
| | | OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute; |
| | | |
| | | //å¼å§æ°æ®åºäºå¡ |
| | | _unitOfWorkManage.BeginTran(); |
| | | _IOutstockinfoService.UpdateData(outstockinfo); |
| | | _OutboundOrderRepository.UpdateData(OutboundOrder); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | else |
| | | { |
| | | content.Message="请çå¾
å
¶ä»è®¢åæ§è¡å®æ"; |
| | | } |
| | | } |
| | | //å
¶ä»æ£å¸¸åºåº |
| | | else |
| | | { |
| | | content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName, OutboundOrder.BoundOrderCode); |
| | | if (content.Message == null || content.Message.Equals("")) |
| | | { |
| | | OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute; |
| | | _OutboundOrderRepository.UpdateData(OutboundOrder); |
| | | } |
| | | } |
| | | return content.Message; |
| | | } |
| | | |
| | | //鲿¢ä»»å¡å·éå¤ |
| | | public int TaskNum(int num) |
| | | { |
| | | int k = num; |
| | | while (true) |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == k); |
| | | if (task == null) |
| | | { |
| | | return k; |
| | | } |
| | | else |
| | | { |
| | | k = DateTime.Now.ToString("mmss").ObjToInt(); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |