From 67348f250a1b7970059698002949a5e0a5f3c52f Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期四, 14 八月 2025 08:51:04 +0800 Subject: [PATCH] 上传最新代码 --- 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs | 366 ---------------------------------------------------- 1 files changed, 0 insertions(+), 366 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" index 68dbbb7..7e96894 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" @@ -36,371 +36,5 @@ public partial class TaskService { static object lock_out = new object(); - - /// <summary> - /// 娴嬭瘯鏋跺嚭浠� - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent TestToolOut(TestToolOutModel model) - { - lock (lock_out) - { - MesResponseContent responseContent = new MesResponseContent(); - try - { - Dt_Task exsit = Repository.QueryFirst(x => x.TargetAddress == model.TargetAddressCode); - if (exsit != null) - { - return responseContent.Error($"鐩爣鍦板潃閲嶅"); - } - - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString()); - //鑾峰彇搴撳瓨璁板綍 - List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => - x.WarehouseId == warehouse.WarehouseId && - x.StockStatus == (int)StockStatusEmun.鍏ュ簱瀹屾垚).Includes(x => x.Details).ToList(); - Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == model.ToolCode)); - if (stockInfo == null) - { - return responseContent.Error($"娴嬭瘯鏋�:{model.ToolCode}鏃犲彲鐢ㄥ簱瀛�"); - } - Dt_Task exsit2 = Repository.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); - if (exsit2 != null) - { - return responseContent.Error($"娴嬭瘯鏋舵壒娆″彿閲嶅"); - } - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode && - x.WarehouseId == stockInfo.WarehouseId && - x.LocationStatus == (int)LocationStatusEnum.InStock && - (x.EnableStatus == (int)EnableStatusEnum.Normal || x.EnableStatus == (int)EnableStatusEnum.OnlyOut)); - if (locationInfo == null) - { - return responseContent.Error($"娴嬭瘯鏋惰揣浣嶃�傘�傘�傘�傘�傘�傘�傘�傘��:{stockInfo.LocationCode}鍑哄簱鏉′欢涓嶆弧瓒�"); - } - //鐢熸垚娴嬭瘯鏋跺嚭搴撲换鍔� 閿佸畾搴撳瓨 鏇存敼璐т綅鐘舵�� - Dt_Task taskOut = new() - { - CurrentAddress = stockInfo.LocationCode, - Grade = 0, - PalletCode = stockInfo.PalletCode, - NextAddress = "", - Roadway = locationInfo.RoadwayNo, - SourceAddress = stockInfo.LocationCode, - TargetAddress = model.TargetAddressCode, - TaskStatus = (int)TaskStatusEnum.New, - TaskType = (int)TaskTypeEnum.Outbound, - TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), - PalletType = stockInfo.PalletType, - WarehouseId = stockInfo.WarehouseId, - }; - stockInfo.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾; - LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus; - locationInfo.LocationStatus = (int)LocationStatusEnum.Lock; - //鍒ゆ柇鏄惁鏈夊嚭搴撳崟淇℃伅 - _unitOfWorkManage.BeginTran(); - //鏇存柊搴撳瓨鐘舵�� - _stockRepository.StockInfoRepository.UpdateData(stockInfo); - //鏇存柊璐т綅鐘舵�� - _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId); - //鏂板缓浠诲姟 - BaseDal.AddData(taskOut); - //鍔犲叆璐т綅鍙樺姩璁板綍 - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, locationStatus, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", taskOut.TaskNum); - _unitOfWorkManage.CommitTran(); - //灏嗕换鍔℃帹閫佸埌WCS - PushTasksToWCS(new List<Dt_Task>() { taskOut }, "AGV_CSJ"); - responseContent.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - responseContent.Error(ex.Message); - } - return responseContent; - } - } - /// <summary> - /// 娴嬭瘯鏋堕��搴� - /// </summary> - /// <returns></returns> - public MesResponseContent TestToolBack(TestToolBackModel backModel) - { - MesResponseContent responseContent = new MesResponseContent(); - try - { - //鑾峰彇娴嬭瘯鏋跺師搴撳瓨淇℃伅 - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString()); - //鑾峰彇搴撳瓨璁板綍 - List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => - x.WarehouseId == warehouse.WarehouseId && - x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚).Includes(x => x.Details).ToList(); - Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == backModel.TestToolCode)); - if (stockInfo == null) - { - return responseContent.Error($"{backModel.TestToolCode}搴撳瓨淇℃伅涓嶅瓨鍦�"); - } - //鐢熸垚閫�搴撲换鍔� - Dt_Task taskIn = new() - { - CurrentAddress = backModel.SourceAddressCode, - Grade = 0, - PalletCode = stockInfo.PalletCode, - NextAddress = "", - Roadway = "", - SourceAddress = backModel.SourceAddressCode, - TargetAddress = "", - TaskStatus = (int)TaskStatusEnum.New, - TaskType = (int)TaskTypeEnum.ProductionReturn, - TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), - PalletType = stockInfo.PalletType, - WarehouseId = stockInfo.WarehouseId, - }; - //鏇存敼搴撳瓨鐘舵�� - stockInfo.StockStatus = StockStatusEmun.閫�搴�.ObjToInt(); - BaseDal.AddData(taskIn); - _stockRepository.StockInfoRepository.UpdateData(stockInfo); - //灏嗕换鍔℃帹閫佸埌WCS - PushTasksToWCS(new List<Dt_Task>() { taskIn }, "AGV_CSJ"); ; - responseContent.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - responseContent.Error(ex.Message); - } - return responseContent; - } - /// <summary> - /// 娴嬭瘯鏋舵姤搴� - /// </summary> - /// <returns></returns> - public MesResponseContent TestScrap(TestToolScrap toolScraps) - { - MesResponseContent responseContent = new MesResponseContent(); - try - { - //鑾峰彇娴嬭瘯鏋舵壒娆″彿搴撳瓨 - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString()); - //鑾峰彇搴撳瓨璁板綍 - List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => - x.WarehouseId == warehouse.WarehouseId && - x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚).Includes(x => x.Details).ToList(); - List<Dt_StockInfo> stockInfoUpdates = new List<Dt_StockInfo>(); - List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>(); - foreach (var item in toolScraps.ToolCodes) - { - Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == item)); - if (stockInfo == null) - { - return responseContent.Error($"{item}搴撳瓨淇℃伅涓嶅瓨鍦�"); - } - stockInfoUpdates.Add(stockInfo); - stockInfoDetails.Add(stockInfo.Details.FirstOrDefault()); - } - //娓呴櫎搴撳瓨淇℃伅 - _unitOfWorkManage.BeginTran(); - _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfoUpdates, OperateTypeEnum.鑷姩鍒犻櫎); - _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfoDetails, OperateTypeEnum.鑷姩鍒犻櫎); - _unitOfWorkManage.CommitTran(); - responseContent.OK($"鎶ュ簾鎴愬姛"); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - responseContent.Error(ex.Message); - } - return responseContent; - } - /// <summary> - /// 鍚屾娴嬭瘯鏋跺鍛� - /// </summary> - /// <param name="toolSynInfo"></param> - /// <returns></returns> - public WebResponseContent TestSynStock(TestToolSynInfo toolSynInfo) - { - WebResponseContent content = new WebResponseContent(); - try - { - Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMS_MES_TestToolSync.ToString()); - MESRoot<TestToolSynInfo> root = new MESRoot<TestToolSynInfo>() - { - From = "WMS", - DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - Content = toolSynInfo - }; - JsonSerializerSettings settings = new JsonSerializerSettings - { - ContractResolver = new CamelCasePropertyNamesContractResolver() - }; - string request = JsonConvert.SerializeObject(root, settings); - string response = HttpMesHelper.Post(apiInfo.ApiAddress, request); - MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>(); - //璋冪敤鎺ュ彛 - if (mesResponseContent.BSucc == true) - { - content.OK(mesResponseContent.StrMsg); - } - else - { - content.Error(mesResponseContent.StrMsg); - } - } - catch (Exception ex) - { - content.Error(ex.Message); - } - return content; - } - - /// <summary> - /// 鐗╂枡鍑哄簱锛學MS鍚屾鍑哄簱鐗╂枡鎵规鑷矼ES - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public WebResponseContent UploadMesMaterialLotaAcept(MesMaterialLotaAceptModel model) - { - WebResponseContent content = new WebResponseContent(); - try - { - Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMS_MES_MaterialLotaAcept.ToString()); - MESRoot<MesMaterialLotaAceptModel> root = new MESRoot<MesMaterialLotaAceptModel>() - { - From = "WMS", - DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - Content = model - }; - JsonSerializerSettings settings = new JsonSerializerSettings - { - ContractResolver = new CamelCasePropertyNamesContractResolver() - }; - string request = JsonConvert.SerializeObject(root, settings); - string response = HttpMesHelper.Post(apiInfo.ApiAddress, request); - MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>(); - //璋冪敤鎺ュ彛 - if (mesResponseContent.BSucc == true) - { - content.OK(mesResponseContent.StrMsg); - } - else - { - content.Error(mesResponseContent.StrMsg); - } - } - catch (Exception ex) - { - content.Error(ex.Message); - } - return content; - } - /// <summary> - /// - /// </summary> - /// <param name="stockInfo"></param> - /// <param name="stockInfoDetail"></param> - /// <param name="taskNo"></param> - /// <param name="warehouseCode"></param> - /// <param name="quantity"></param> - /// <param name="cutedType"></param> - /// <param name="ppWidth"></param> - /// <returns></returns> - public MesMaterialLotaAceptModel GetMesMaterialLotaAceptModel(Dt_StockInfo stockInfo, Dt_StockInfoDetail stockInfoDetail, string taskNo, string warehouseCode, float quantity, string cutedType = "", float ppWidth = 0) - { - MesMaterialLotaAceptModel model = new MesMaterialLotaAceptModel() - { - CarrierCode = stockInfo.PalletCode, - CutedType = cutedType, - ExpirationDate = stockInfoDetail.EffectiveDate, - MaterialBarCode = stockInfoDetail.SerialNumber, - MaterialCode = stockInfoDetail.MaterielCode, - MaterialLot = stockInfoDetail.MaterielCode + "," + stockInfoDetail.BatchNo, - MaterialName = stockInfoDetail.MaterielName, - PPWidth = ppWidth, - ProductionDate = stockInfoDetail.ProductionDate, - Quantity = quantity, - Supplier = "", - TaskNo = taskNo, - Type = 1, - WarehouseArea = warehouseCode, - WarehouseLocation = warehouseCode - }; - - return model; - } - - /// <summary> - /// 鍩烘澘浣欐枡閫�搴� - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent SubstrateBack(SubstrateBackModel model) - { - try - { - Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => model.CarrierCode.Contains(x.CodeStartStr)); - if (palletTypeInfo == null) - { - return MesResponseContent.Instance.Error($"鏈瘑鍒鎵樼洏绫诲瀷锛岃纭鎵樼洏鍙�"); - } - - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == palletTypeInfo.WarehouseId); - - - Dt_StockInfo_Hty stockInfo_Hty = _stockRepository.StockInfo_HtyRepository.QueryData(x => x.PalletCode == model.CarrierCode).OrderByDescending(x => x.SourceId).First(); - Dt_StockInfoDetail_Hty stockInfoDetail_Hty = _stockRepository.StockInfoDetail_HtyRepository.QueryFirst(x => x.StockId == stockInfo_Hty.SourceId); - - Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail() - { - MaterielSpec = stockInfoDetail_Hty.MaterielSpec, - BatchNo = stockInfoDetail_Hty?.BatchNo ?? "", - EffectiveDate = model.ExpirationDate, - MaterielCode = model.MaterialCode, - InboundOrderRowNo = stockInfoDetail_Hty?.InboundOrderRowNo ?? 0, - MaterielName = stockInfoDetail_Hty.MaterielName, - ProductionDate = model.ProductionDate, - OrderNo = stockInfoDetail_Hty?.OrderNo ?? "", - OutboundQuantity = 0, - SerialNumber = stockInfoDetail_Hty?.SerialNumber ?? "0", - StockQuantity = model.Quantity, - Status = model.Quantity <= 0.0 ? StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt() : StockStatusEmun.MES閫�搴�.ObjToInt(), - Unit = model.Unit - }; - Dt_StockInfo stockInfo = new Dt_StockInfo() - { - PalletCode = model.CarrierCode, - PalletType = palletTypeInfo.PalletType, - WarehouseId = warehouse.WarehouseId, - StockStatus = stockInfoDetail.StockQuantity <= 0.0 ? StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt() : StockStatusEmun.MES閫�搴�.ObjToInt(), - Details = new List<Dt_StockInfoDetail> { stockInfoDetail }, - Remark = stockInfoDetail.StockQuantity <= 0.0 ? StockStatusEmun.MES绌烘墭閫�搴�.ToString() : StockStatusEmun.MES閫�搴�.ToString() - }; - //Dt_Task task = new Dt_Task() - //{ - // PalletCode = stockInfo.PalletCode, - // CurrentAddress = "", - // NextAddress = "", - // PalletType = stockInfo.PalletType, - // Roadway = "RGV01_BC", - // SourceAddress = "RGV01_BC", - // TargetAddress = "", - // TaskStatus = TaskStatusEnum.New.ObjToInt(), - // TaskType = TaskTypeEnum.MesMatReturn.ObjToInt(), - // WarehouseId = warehouse.WarehouseId - //}; - - _unitOfWorkManage.BeginTran(); - Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand(); - //BaseDal.AddData(task); - _unitOfWorkManage.CommitTran(); - - return MesResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return MesResponseContent.Instance.Error(ex.Message); - } - } } } -- Gitblit v1.9.3