| | |
| | | { |
| | | public partial class TaskService |
| | | { |
| | | public static List<string> InStationareaList = new List<string>() { "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122" }; |
| | | public static List<string> InStationareaList = new List<string>() { "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122" ,"1123"}; |
| | | //å
¥åºï¼ç©ºçååº |
| | | public ApiResponse AddInStoreDoc(MES_InTask mES_In) |
| | | { |
| | |
| | | |
| | | Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault(); |
| | | if (setask != null) return apiResponse.Error($"WMSå·²æå½åä»»å¡ï¼ä¸å¯éå¤ä¸åï¼æçç¼å·ï¼{mES_In.containerNo}"); |
| | | |
| | | // 夿ä¸åçæçç¼å·æ¯å¦åºåæçç¼å·æéå¤ |
| | | if (_stockInfoService.IsContainerNoExist(mES_In.containerNo)) return apiResponse.Error($"å½ååºä½å·²æè¯¥æçç¼å·ï¼æçç¼å·ï¼{mES_In.containerNo}"); |
| | | Dt_Warehouse dt_Warehouse = _warehouseService.QueryWarehouse(mES_In.warehouseNo); |
| | |
| | | if (string.IsNullOrWhiteSpace(mES_In.containerNo)) return apiResponse.Error("æçç ä¸è½ä¸ºç©º"); |
| | | if (string.IsNullOrWhiteSpace(mES_In.endPosition)) return apiResponse.Error("ç®æ ä½ç½®ä¸è½ä¸ºç©º"); |
| | | |
| | | |
| | | Dt_StockInfo dt_Stock=_stockInfoService.Repository.QueryData(x=>x.PalletCode== mES_In.containerNo && x.StockStatus== (int)StockStatusEmun.å·²å
¥åº).FirstOrDefault(); |
| | | // å½åä»»å¡mES_In.endPositionç®æ ä½ç½®1113 - 1122 |
| | | var restrictedPositions = new List<string> { "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123" }; |
| | | bool isRestrictedPosition = restrictedPositions.Contains(mES_In.endPosition); |
| | | if (isRestrictedPosition) |
| | | { |
| | | bool hasExistingTask = BaseDal.QueryData(x => x.TargetAddress == mES_In.endPosition).Any(); |
| | | if (hasExistingTask) |
| | | { |
| | | // ç®æ ä½ç½®å¨1113-1122èå´å
çå¤çé»è¾ |
| | | return apiResponse.Error($"å½åæå»ç®æ ä½ç½®{mES_In.endPosition}çä»»å¡ï¼è¯·éæ°æä½"); |
| | | } |
| | | } |
| | | Dt_StockInfo dt_Stock=_stockInfoService.Repository.QueryData(x=>x.PalletCode== mES_In.containerNo).FirstOrDefault(); |
| | | if (dt_Stock == null) return apiResponse.Error($"WMSæªè½æ¥æ¾é该æçæ¡ç çåºåè´§ä½ä¿¡æ¯ï¼æ¡ç ï¼{mES_In.containerNo}"); |
| | | |
| | | Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus== (int)LocationStatusEnum.InStock).FirstOrDefault(); |
| | | if (dt_LocationInfo == null) return apiResponse.Error($"WMSæªè½æ¥æ¾é该æçæ¡ç çåºåè´§ä½ä¿¡æ¯ï¼æ¡ç ï¼{mES_In.containerNo}ï¼æªæ¾å°è´§ä½å·ï¼{dt_Stock.LocationCode}"); |
| | | if(dt_Stock.StockStatus == (int)StockStatusEmun.å·²å
¥åº) |
| | | { |
| | | Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus == (int)LocationStatusEnum.InStock).FirstOrDefault(); |
| | | if (dt_LocationInfo == null) return apiResponse.Error($"WMSæªè½æ¥æ¾é该æçæ¡ç çåºåè´§ä½ä¿¡æ¯ï¼æ¡ç ï¼{mES_In.containerNo}ï¼æªæ¾å°è´§ä½å·ï¼{dt_Stock.LocationCode}"); |
| | | |
| | | Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo); |
| | | Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo); |
| | | |
| | | Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault(); |
| | | if (setask != null) return apiResponse.Error($"WMSå·²æå½åä»»å¡ï¼ä¸å¯éå¤ä¸åï¼æçç¼å·ï¼{mES_In.containerNo}"); |
| | | Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault(); |
| | | if (setask != null) return apiResponse.Error($"WMSå·²æå½åä»»å¡ï¼ä¸å¯éå¤ä¸åï¼æçç¼å·ï¼{mES_In.containerNo}"); |
| | | |
| | | Dt_Task task = new Dt_Task(); |
| | | task.TaskNum = mES_In.transNo; |
| | | task.PalletCode = dt_Stock.PalletCode; |
| | | task.PalletType = dt_Stock.PalletType; |
| | | task.Roadway = dt_LocationInfo.RoadwayNo; |
| | | task.TaskType = (int)TaskTypeEnum.Outbound; |
| | | task.TaskStatus = (int)OutTaskStatusEnum.OutNew; |
| | | task.SourceAddress = dt_LocationInfo.LocationCode; |
| | | task.TargetAddress = mES_In.endPosition; |
| | | task.CurrentAddress = dt_LocationInfo.LocationCode; |
| | | task.NextAddress = _Roadwayinfo.OutSCStationCode; |
| | | task.WarehouseId = dt_LocationInfo.WarehouseId; |
| | | task.OrderNo = mES_In.transDate.ToString(); |
| | | task.Grade = 1; |
| | | task.Creater = "MES"; |
| | | task.CreateDate = DateTime.Now; |
| | | Dt_Task task = new Dt_Task(); |
| | | task.TaskNum = mES_In.transNo; |
| | | task.PalletCode = dt_Stock.PalletCode; |
| | | task.PalletType = dt_Stock.PalletType; |
| | | task.Roadway = dt_LocationInfo.RoadwayNo; |
| | | task.TaskType = (int)TaskTypeEnum.Outbound; |
| | | task.TaskStatus = (int)OutTaskStatusEnum.OutNew; |
| | | task.SourceAddress = dt_LocationInfo.LocationCode; |
| | | task.TargetAddress = mES_In.endPosition; |
| | | task.CurrentAddress = dt_LocationInfo.LocationCode; |
| | | task.NextAddress = _Roadwayinfo.OutSCStationCode; |
| | | task.WarehouseId = dt_LocationInfo.WarehouseId; |
| | | task.OrderNo = mES_In.transDate.ToString(); |
| | | task.Grade = 1; |
| | | task.Creater = "MES"; |
| | | task.CreateDate = DateTime.Now; |
| | | |
| | | dt_Stock.StockStatus = (int)StockStatusEmun.åºåºä¸; |
| | | dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | dt_Stock.StockStatus = (int)StockStatusEmun.åºåºä¸; |
| | | dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.AddData(task); |
| | | _stockInfoService.Repository.UpdateData(dt_Stock); |
| | | _locationInfoService.Repository.UpdateData(dt_LocationInfo); |
| | | _unitOfWorkManage.CommitTran(); |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.AddData(task); |
| | | _stockInfoService.Repository.UpdateData(dt_Stock); |
| | | _locationInfoService.Repository.UpdateData(dt_LocationInfo); |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | |
| | | WriteLog.Write_Log("MES_æ¥æ¶MESåºåºä»»å¡ä¸å", $"åºåºä»»å¡æ·»å ", "æå", $"æ·»å æåï¼æçæ¡ç ï¼{dt_Stock.PalletCode}"); |
| | | return apiResponse.OK(); |
| | | WriteLog.Write_Log("MES_æ¥æ¶MESåºåºä»»å¡ä¸å", $"åºåºä»»å¡æ·»å ", "æå", $"æ·»å æåï¼æçæ¡ç ï¼{dt_Stock.PalletCode}"); |
| | | return apiResponse.OK(); |
| | | }else if(dt_Stock.StockStatus == (int)StockStatusEmun.ç§»åºéå®) |
| | | { |
| | | Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus == (int)LocationStatusEnum.Lock).FirstOrDefault(); |
| | | if (dt_LocationInfo == null) return apiResponse.Error($"WMSæªè½æ¥æ¾é该æçæ¡ç çåºåè´§ä½ä¿¡æ¯ï¼æ¡ç ï¼{mES_In.containerNo}ï¼æªæ¾å°è´§ä½å·ï¼{dt_Stock.LocationCode}"); |
| | | |
| | | Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo); |
| | | |
| | | Dt_Task task = new Dt_Task(); |
| | | task.TaskNum = mES_In.transNo; |
| | | task.PalletCode = dt_Stock.PalletCode; |
| | | task.PalletType = dt_Stock.PalletType; |
| | | task.Roadway = dt_LocationInfo.RoadwayNo; |
| | | task.TaskType = (int)TaskTypeEnum.Outbound; |
| | | task.TaskStatus = (int)OutTaskStatusEnum.OutWait; |
| | | task.SourceAddress = dt_LocationInfo.LocationCode; |
| | | task.TargetAddress = mES_In.endPosition; |
| | | task.CurrentAddress = dt_LocationInfo.LocationCode; |
| | | task.NextAddress = _Roadwayinfo.OutSCStationCode; |
| | | task.WarehouseId = dt_LocationInfo.WarehouseId; |
| | | task.OrderNo = mES_In.transDate.ToString(); |
| | | task.Grade = 1; |
| | | task.Creater = "MES"; |
| | | task.CreateDate = DateTime.Now; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.AddData(task); |
| | | _unitOfWorkManage.CommitTran(); |
| | | WriteLog.Write_Log("MES_æ¥æ¶MESåºåºä»»å¡ä¸å", $"åºåºä»»å¡æ·»å ", "æå", $"æ·»å æåï¼æçæ¡ç ï¼{dt_Stock.PalletCode}"); |
| | | return apiResponse.OK(); |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("MES_æ¥æ¶MESåºåºä»»å¡ä¸å", $"åºåºä»»å¡æ·»å ", $"失败,æçæ¡ç ï¼{dt_Stock.PalletCode}", $"åºåç¶æé误ï¼è¯·æ¥çWMSç³»ç»åºå,åºåç¶æï¼{dt_Stock.StockStatus}"); |
| | | return apiResponse.Error("åºåç¶æé误ï¼è¯·æ¥çWMSç³»ç»åºå"); |
| | | } |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | if (string.IsNullOrWhiteSpace(mES_In.transNo)) return apiResponse.Error("åæ®ç¼å·ä¸è½ä¸ºç©º"); |
| | | Dt_Task dt_Task = BaseDal.QueryData(x => x.TaskNum == mES_In.transNo).FirstOrDefault(); |
| | | if (dt_Task == null) return apiResponse.Error($"WMSæªè½æ¥æ¾é对åºåæ®ä»»å¡ï¼æ¡ç ï¼{mES_In.transNo}"); |
| | | if (dt_Task == null) { |
| | | WriteLog.Write_Log("MES_ä»»å¡åæ¶æ¥å£", $"ä»»å¡åæ¶æ¥å£", "æå", $"åæ®ç¼å·ï¼{mES_In.transNo}ï¼æ³¨æï¼ï¼WMSæªè½æ¥æ¾é对åºåæ®ä»»å¡"); |
| | | return apiResponse.OK(); |
| | | //return apiResponse.Error($"WMSæªè½æ¥æ¾é对åºåæ®ä»»å¡ï¼æ¡ç ï¼{mES_In.transNo}"); |
| | | } |
| | | if(dt_Task.TaskStatus== (int)InTaskStatusEnum.InNew) |
| | | { |
| | | BaseDal.DeleteData(dt_Task); |