代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/WIDESEA_ICheckService.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
项目资料/设备协议/~$堆垛机和提升机通信协议.xlsx | 补丁 | 查看 | 原始文档 | blame | 历史 | |
项目资料/设备协议/~$阻焊仓堆垛机通信协议.xlsx | 补丁 | 查看 | 原始文档 | blame | 历史 |
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs
@@ -10,6 +10,7 @@ using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_External.Model; using WIDESEA_IApprovalRepository; using WIDESEA_ICheckRepository; using WIDESEA_ICheckService; @@ -166,6 +167,121 @@ } return content; } public WebResponseContent CommitCheckResult(ERPCheckModel checkModel) { WebResponseContent content = new WebResponseContent(); try { Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderNo == checkModel.Code); //è·åè´¨æ£å对åºçæ¶è´§å if (checkOrder == null) { return content.Error($"æªæ¾å°è¯¥è´¨æ£å"); } Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); if (receiveOrder.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()) { return content.Error($"{receiveOrder.ReceiveOrderNo}æ¶è´§åæªå®ææ æ³è´¨æ£"); } if (checkOrder.CheckOrderStatus == CheckOrderStatusEnum.Checked.ObjToInt()) { return content.Error($"è¯¥åæ®å·²ç»æ£éªå®æ"); } Dt_CheckOrderResult? checkOrderResult = null; Dt_PurchaseOrder? purchaseOrder = null; Dt_PurchaseOrderDetail? purchaseOrderDetail = null; if (checkModel.Details.Count>0) { ERPCheckResult eRPCheckResult = checkModel.Details.FirstOrDefault(); if (eRPCheckResult.Result == CheckResultEnum.Return.ToString())//éè´§ { checkOrder.DefectedNote = eRPCheckResult.Result; checkOrder.ReturnQuantity += (float)Convert.ToDecimal(eRPCheckResult.Quantity); } else { return content.Error($"æªæ¾å°ç¼ºé·ç±»å"); } checkOrderResult = new Dt_CheckOrderResult() { Quantity = (float)Convert.ToDecimal(eRPCheckResult.Quantity), CheckOrderId = checkOrder.CheckOrderId, DefectCode = eRPCheckResult.DefectCode, Result = eRPCheckResult.Result, Note = eRPCheckResult.Note, SampleCount = 0, }; //è·å对åºéè´å Dt_ReceiveOrderDetail receiveOrderDetail = receiveOrder.Details.First(x => x.RowNo == checkOrder.ReceiveDetailRowNo); purchaseOrder = _purchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == receiveOrderDetail.PurchaseOrderNo).Includes(x => x.Details).Where(x => x.Details.Any(v => v.RowNo == receiveOrderDetail.PurchaseOrderDetailRowNo)).First(); if (purchaseOrder == null) { return content.Error("æªæ¾å°å¯¹åºæ¶è´§éè´å"); } purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(); if (purchaseOrderDetail == null) { return content.Error("æªæ¾å°é货对åºçéè´åæç»"); } purchaseOrderDetail.PurchaseDetailReceiveQty -= (float)Convert.ToDecimal(eRPCheckResult.Quantity); } if (checkModel.Result == CheckAcceptEnum.Accept.ToString()) { checkOrder.Result = CheckAcceptEnum.Accept.ToString(); } else if (checkModel.Result == CheckAcceptEnum.UnAccept.ToString()) { checkOrder.Result = CheckAcceptEnum.UnAccept.ToString(); } else { return content.Error("æªæ¾å°æ£éªç±»å"); } checkOrder.CheckOrderStatus = CheckOrderStatusEnum.Checked.ObjToInt(); if (checkOrderResult != null) { checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity - checkOrderResult.Quantity; } else { checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity; } checkOrder.CheckUserName = App.User.UserName; _unitOfWorkManage.BeginTran(); if (checkOrderResult != null && purchaseOrder != null && purchaseOrderDetail != null) { BaseDal.AddData(checkOrderResult); if (purchaseOrder.PurchaseOrderStatus >= PurchaseOrderStatusEnum.Received.ObjToInt()) { purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Receiving.ObjToInt(); _purchaseOrderRepository.UpdateData(purchaseOrder); } if (purchaseOrderDetail.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Received.ObjToInt()) { purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt(); } _purchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); } //ERP䏿¥ WebResponseContent responseContent = _checkOrderService.FeedbackCheckResult(checkOrder, checkOrderResult != null ? new List<Dt_CheckOrderResult> { checkOrderResult } : new List<Dt_CheckOrderResult>()); if (!responseContent.Status) { throw new Exception(responseContent.Message); } checkOrder.UploadStatus = CheckUploadEnum.UploadOk.ObjToInt(); _checkOrderRepository.UpdateData(checkOrder); _unitOfWorkManage.CommitTran(); content.OK(); } catch (Exception ex) { _unitOfWorkManage.RollbackTran(); return content.Error($"{ex.Message}"); } return content; } /// <summary> /// æäº¤éæ£ç¡®è®¤ç»æ /// </summary> ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs
@@ -5,6 +5,7 @@ using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_External.Model; using WIDESEA_Model.Models; namespace WIDESEA_ICheckService @@ -20,6 +21,7 @@ /// <returns></returns> WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult, int IsAccept = 0); WebResponseContent CommitInspectResult(int checkOrderId, Dt_CheckOrderResult checkResult, int IsAccept = 0); WebResponseContent CommitCheckResult(ERPCheckModel checkModel); /// <summary> /// è·åæ£éªä¿¡æ¯ /// </summary> ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/WIDESEA_ICheckService.csproj
@@ -8,6 +8,7 @@ <ItemGroup> <ProjectReference Include="..\WIDESEA_CheckRepository\WIDESEA_CheckRepository.csproj" /> <ProjectReference Include="..\WIDESEA_External\WIDESEA_External.csproj" /> </ItemGroup> </Project> ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs
@@ -172,17 +172,18 @@ newTask.TaskId = taskId; Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand(); //ä¸ä¼ ERP //WebResponseContent responseContent = _inboundOrderService.FeedbackProIn(mesProInOrder); WebResponseContent responseContent = _inboundOrderService.FeedbackProIn(mesProInOrder); _proInStatisticsService.SaveStatic(bagInfoModel); //if (!responseContent.Status) //{ // mesProInOrder.UpErpStatus = WhetherEnum.False.ObjToInt(); // mesProInOrder.Remark = responseContent.Message; //} //else //{ if (!responseContent.Status) { //mesProInOrder.UpErpStatus = WhetherEnum.False.ObjToInt(); //mesProInOrder.Remark = responseContent.Message; throw new Exception(responseContent.Message); } else { mesProInOrder.UpErpStatus = WhetherEnum.True.ObjToInt(); //} } Db.InsertNav(mesProInOrder).Include(x => x.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); //æ¨éä»»å¡ @@ -281,18 +282,19 @@ }; _unitOfWorkManage.BeginTran(); Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand(); ////ä¸ä¼ ERP //WebResponseContent responseContent = _inboundOrderService.FeedbackProIn(mesProInOrder); //if (!responseContent.Status) //{ // mesProInOrder.UpErpStatus = WhetherEnum.False.ObjToInt(); // mesProInOrder.Remark = responseContent.Message; //} //else //{ //ä¸ä¼ ERP WebResponseContent responseContent = _inboundOrderService.FeedbackProIn(mesProInOrder); if (!responseContent.Status) { //mesProInOrder.UpErpStatus = WhetherEnum.False.ObjToInt(); //mesProInOrder.Remark = responseContent.Message; return WebResponseContent.Instance.Error($"{responseContent.Message}"); } else { mesProInOrder.UpErpStatus = WhetherEnum.True.ObjToInt(); //} } Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand(); Db.InsertNav(mesProInOrder).Include(x => x.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK("æ¥æ¶æå"); ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs
@@ -16,6 +16,7 @@ using WIDESEA_DTO.Stock; using WIDESEA_External.Model; using WIDESEA_External.ERPService; using WIDESEA_ICheckService; namespace WIDESEA_WMSServer.Controllers.MES { @@ -29,11 +30,13 @@ private readonly IOutboundService _outboundService; private readonly ITaskService _taskService; private readonly IInvokeERPService _invokeERPService; public MesController(IOutboundService outboundService, ITaskService taskService,IInvokeERPService invokeERPService) private readonly ICheckOrderResultService _checkOrderResultService; public MesController(IOutboundService outboundService, ITaskService taskService,IInvokeERPService invokeERPService, ICheckOrderResultService checkOrderResultService) { _outboundService = outboundService; _taskService = taskService; _invokeERPService = invokeERPService; _checkOrderResultService=checkOrderResultService; } /// <summary> @@ -284,6 +287,11 @@ [HttpPost, Route("CheckResultReturn"), AllowAnonymous, MethodParamsValidate] public MesResponseContent CheckResultReturn([FromBody] Root<ERPCheckModel> model) { WebResponseContent responseContent = _checkOrderResultService.CommitCheckResult(model.Content); if (!responseContent.Status) { return MesResponseContent.Instance.Error(responseContent.Message); } string content = _invokeERPService.InvokeCheckOrderApi(model.Content); ErpRequestContent requestContent = content.DeserializeObject<ErpRequestContent>(); if (requestContent.res != 1) ÏîÄ¿×ÊÁÏ/É豸ÐÒé/~$¶Ñ¶â»úºÍÌáÉý»úͨÐÅÐÒé.xlsxBinary files differ
ÏîÄ¿×ÊÁÏ/É豸ÐÒé/~$×躸²Ö¶Ñ¶â»úͨÐÅÐÒé.xlsxBinary files differ