| | |
| | | using WIDESEAWCS_QuartzJob.StackerCrane.Enum; |
| | | using WIDESEAWCS_TaskInfoService; |
| | | using WIDESEAWCS_Tasks.OHT; |
| | | using static System.Collections.Specialized.BitVector32; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | { |
| | | throw new Exception($"è§æ´æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | Dt_Task task = new Dt_Task(); |
| | | var storagemode = _storagemodeRepository.QueryFirst(v=>v.Id==1); |
| | | if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGVä¸ææ¨¡å¼ï¼ä¸ä¸è·¨æ¶åæä¸æä¿¡å· |
| | | var Inisout = _outStockRepository.QueryFirst(v => v.Id == 1); |
| | | if (Inisout.InOut==1) |
| | | { |
| | | var station=_dt_stationInfoRepository.QueryFirst(v=>v.msg== "ä¸è·¨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | Dt_Task task = new Dt_Task(); |
| | | var storagemode = _storagemodeRepository.QueryFirst(v => v.Id == 1); |
| | | if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGVä¸ææ¨¡å¼ï¼ä¸ä¸è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | |
| | | task.Grade = 1; |
| | | task.Remark = (int)MateTypeEnum.ZiChan; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGVä¸ææ¨¡å¼ï¼ä¸è¥¿è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | string address = DKstation.Row + "-" + DKstation.Column + "-1"; |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address); |
| | | if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew) |
| | | { |
| | | task.Grade = 2; |
| | | } |
| | | else |
| | | { |
| | | task.Grade = 1; |
| | | } |
| | | task.Remark = (int)MateTypeEnum.ZiChan; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//人工åè½¦ä¸ææ¨¡å¼ï¼ä¸è¥¿è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | task.Grade = 1; |
| | | task.Remark = (int)MateTypeEnum.WaiGou; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//人工åè½¦ä¸ææ¨¡å¼ï¼ä¸ä¸è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | string address = XKstation.Row + "-" + XKstation.Column + "-1"; |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address); |
| | | if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew) |
| | | { |
| | | task.Grade = 2; |
| | | } |
| | | else |
| | | { |
| | | task.Grade = 1; |
| | | } |
| | | task.Remark = (int)MateTypeEnum.WaiGou; |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"è§æ´æºå½åä¿¡å·ä¸æ»¡è¶³å
¥åºä»»å¡çææ¡ä»¶"); |
| | | } |
| | | //æ¥æ¾ç¸é»çåºä½ |
| | | Dt_LocationInfo Towlocation = new Dt_LocationInfo(); |
| | | var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress); |
| | | if (Onelocation.Depth == 1) |
| | | { |
| | | Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2); |
| | | } |
| | | else |
| | | { |
| | | Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1); |
| | | } |
| | | task.NextAddress = Towlocation.LocationCode; |
| | | task.Roadway = "TC01"; |
| | | task.TaskType = (int)TaskInboundTypeEnum.Inbound; |
| | | task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | task.PalletCode = "text"; |
| | | task.CurrentAddress = "text"; |
| | | task.WMSId = 3; |
| | | var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress); |
| | | if (oldhtytask == null) |
| | | { |
| | | _dt_taskRepositiry.AddData(task); |
| | | } |
| | | } |
| | | else if(Inisout.InOut == 2) |
| | | { |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | Dt_Task outtask = new Dt_Task(); |
| | | if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready ) |
| | | { |
| | | var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1"; |
| | | |
| | | } |
| | | else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready) |
| | | { |
| | | var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1"; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready) |
| | | { |
| | | var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1"; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready) |
| | | { |
| | | var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1"; |
| | | } |
| | | |
| | | task.Grade = 1; |
| | | task.Remark = (int)MateTypeEnum.ZiChan; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGVä¸ææ¨¡å¼ï¼ä¸è¥¿è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | string address= DKstation.Row + "-" + DKstation.Column + "-1"; |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v=>v.SourceAddress== address); |
| | | if (oldtask!=null && oldtask.TaskState== (int)TaskInStatusEnum.InNew) |
| | | var Endstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "æ´å½¢æºæ¾æä½"); |
| | | outtask.TargetAddress = Endstation.Row + "-" + Endstation.Column + "-1"; |
| | | outtask.Grade = 1; |
| | | outtask.NextAddress = Endstation.Row + "-" + Endstation.Column + "-1"; |
| | | outtask.Roadway = "TC01"; |
| | | outtask.TaskType = (int)TaskOutboundTypeEnum.OutInventory; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.WMSId = 3; |
| | | outtask.PalletCode = "text"; |
| | | outtask.CurrentAddress = "text"; |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == outtask.SourceAddress &&v.TargetAddress== outtask.SourceAddress); |
| | | if (oldtask == null) |
| | | { |
| | | task.Grade = 2; |
| | | _dt_taskRepositiry.AddData(outtask); |
| | | } |
| | | else |
| | | { |
| | | task.Grade = 1; |
| | | } |
| | | task.Remark = (int)MateTypeEnum.ZiChan; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//人工åè½¦ä¸ææ¨¡å¼ï¼ä¸è¥¿è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | task.Grade = 1; |
| | | task.Remark = (int)MateTypeEnum.WaiGou; |
| | | } |
| | | else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//人工åè½¦ä¸ææ¨¡å¼ï¼ä¸ä¸è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "ä¸è·¨æ¶å"); |
| | | task.SourceAddress = station.Row + "-" + station.Column + "-1"; |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | string address= XKstation.Row + "-" + XKstation.Column + "-1"; |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address); |
| | | if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew) |
| | | { |
| | | task.Grade = 2; |
| | | } |
| | | else |
| | | { |
| | | task.Grade = 1; |
| | | } |
| | | task.Remark = (int)MateTypeEnum.WaiGou; |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"è§æ´æºå½åä¿¡å·ä¸æ»¡è¶³å
¥åºä»»å¡çææ¡ä»¶"); |
| | | } |
| | | //æ¥æ¾ç¸é»çåºä½ |
| | | Dt_LocationInfo Towlocation = new Dt_LocationInfo(); |
| | | var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress); |
| | | if (Onelocation.Depth == 1) |
| | | { |
| | | Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2); |
| | | } |
| | | else |
| | | { |
| | | Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1); |
| | | } |
| | | task.NextAddress = Towlocation.LocationCode; |
| | | task.Roadway = "TC01"; |
| | | task.TaskType = (int)TaskInboundTypeEnum.Inbound; |
| | | task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | task.PalletCode = "text"; |
| | | task.CurrentAddress = "text"; |
| | | _dt_taskRepositiry.AddData(task); |
| | | |
| | | |
| | | #endregion |
| | | } |
| | |
| | | throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | var isout = _outStockRepository.QueryFirst(v => v.Id == 1); |
| | | if (isout.isout != 1) |
| | | if (isout.isout == 1) |
| | | { |
| | | throw new Exception($"å½åç³»ç»è®¾ç½®ä¸ºä¸åºåºæ¨¡å¼"); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | //æ¥è¯¢å½å任塿± 䏿¯å¦åå¨åºåºä»»å¡ï¼åºåºä»»å¡åªè½åå¨ä¸æ¡ |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); |
| | | if (oldtask != null) |
| | | { |
| | | throw new Exception($"å½å任塿± ä¸å·²åå¨ä¸æ¡åºåºä»»å¡"); |
| | | } |
| | | //æ¥è¯¢å½åéè¦åºåºçæ¹æ¬¡å·ï¼ä»¥ååºåºç©æç±»å |
| | | var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); |
| | | //æ¥è¯¢åºåç©æåºåä¿¡æ¯ |
| | | var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus==0) |
| | | .OrderBy(v => v.CreateDate).ToList(); |
| | | if (stocks.Count <= 0) |
| | | { |
| | | throw new Exception($"å½ååºå䏿²¡æã{batch.materType}ãï¼0èªäº§ 1å¤è´ï¼ä¸æ¹æ¬¡ä¸ºã{batch.OutBatch}ãçç©æ"); |
| | | } |
| | | //æ¥è¯¢è´§ä½ |
| | | var locaOne=_LocationInfoRepository.QueryFirst(v=>v.LocationCode== stocks[0].LocationCode); |
| | | //æ¥è¯¢ç¸é»çè´§ä½ |
| | | Dt_LocationInfo locaTow = new Dt_LocationInfo(); |
| | | if (locaOne.Depth==1) |
| | | { |
| | | locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row &&v.Column== locaOne.Column && v.Depth==2); |
| | | } |
| | | else |
| | | { |
| | | locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row && v.Column == locaOne.Column && v.Depth == 1); |
| | | } |
| | | locaOne.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | locaTow.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | //æ¥è¯¢ç¸é»çåºå |
| | | var BBstock = _StockInfoRepository.QueryFirst(v=>v.LocationCode== locaTow.LocationCode); |
| | | BBstock.StockStatus = 1; |
| | | stocks[0].StockStatus = 1; |
| | | //æ¥è¯¢ç»ç¹ç«å°ä¿¡æ¯ |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "æ´å½¢æºæ¾æä½"); |
| | | //å¼å§åå»ºä»»å¡ |
| | | Dt_Task outtask = new Dt_Task(); |
| | | outtask.Roadway = "TC01"; |
| | | outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.SourceAddress = stocks[0].LocationCode; |
| | | outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; |
| | | outtask.NextAddress = locaTow.LocationCode; |
| | | outtask.Grade = 1; |
| | | outtask.WMSId = 3; |
| | | outtask.Remark = batch.materType; |
| | | outtask.PalletCode = "text"; |
| | | outtask.CurrentAddress = "text"; |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | //æ¥è¯¢å½å任塿± 䏿¯å¦åå¨åºåºä»»å¡ï¼åºåºä»»å¡åªè½åå¨ä¸æ¡ |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); |
| | | if (oldtask != null) |
| | | { |
| | | throw new Exception($"å½å任塿± ä¸å·²åå¨ä¸æ¡åºåºä»»å¡"); |
| | | } |
| | | //æ¥è¯¢å½åéè¦åºåºçæ¹æ¬¡å·ï¼ä»¥ååºåºç©æç±»å |
| | | var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); |
| | | //æ¥è¯¢åºåç©æåºåä¿¡æ¯ |
| | | var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus == 0) |
| | | .OrderBy(v => v.CreateDate).ToList(); |
| | | if (stocks.Count <= 0) |
| | | { |
| | | throw new Exception($"å½ååºå䏿²¡æã{batch.materType}ãï¼0èªäº§ 1å¤è´ï¼ä¸æ¹æ¬¡ä¸ºã{batch.OutBatch}ãçç©æ"); |
| | | } |
| | | //æ¥è¯¢è´§ä½ |
| | | var locaOne = _LocationInfoRepository.QueryFirst(v => v.LocationCode == stocks[0].LocationCode); |
| | | //æ¥è¯¢ç¸é»çè´§ä½ |
| | | Dt_LocationInfo locaTow = new Dt_LocationInfo(); |
| | | if (locaOne.Depth == 1) |
| | | { |
| | | locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row && v.Column == locaOne.Column && v.Depth == 2); |
| | | } |
| | | else |
| | | { |
| | | locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row && v.Column == locaOne.Column && v.Depth == 1); |
| | | } |
| | | locaOne.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | locaTow.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | //æ¥è¯¢ç¸é»çåºå |
| | | var BBstock = _StockInfoRepository.QueryFirst(v => v.LocationCode == locaTow.LocationCode); |
| | | BBstock.StockStatus = 1; |
| | | stocks[0].StockStatus = 1; |
| | | //æ¥è¯¢ç»ç¹ç«å°ä¿¡æ¯ |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "æ´å½¢æºæ¾æä½"); |
| | | //å¼å§åå»ºä»»å¡ |
| | | Dt_Task outtask = new Dt_Task(); |
| | | outtask.Roadway = "TC01"; |
| | | outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.SourceAddress = stocks[0].LocationCode; |
| | | outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; |
| | | outtask.NextAddress = locaTow.LocationCode; |
| | | outtask.Grade = 1; |
| | | outtask.WMSId = 3; |
| | | outtask.Remark = batch.materType; |
| | | outtask.PalletCode = "text"; |
| | | outtask.CurrentAddress = "text"; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _LocationInfoRepository.UpdateData(locaOne); |
| | | _LocationInfoRepository.UpdateData(locaTow); |
| | | _StockInfoRepository.UpdateData(BBstock); |
| | | _dt_taskRepositiry.AddData(outtask); |
| | | _StockInfoRepository.UpdateData(stocks[0]); |
| | | _unitOfWorkManage.CommitTran(); |
| | | _unitOfWorkManage.BeginTran(); |
| | | _LocationInfoRepository.UpdateData(locaOne); |
| | | _LocationInfoRepository.UpdateData(locaTow); |
| | | _StockInfoRepository.UpdateData(BBstock); |
| | | _dt_taskRepositiry.AddData(outtask); |
| | | _StockInfoRepository.UpdateData(stocks[0]); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |