1
wangxinhui
2025-01-18 a7ceaaa38a4394b82501ca60230e97d25a6871e3
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs
@@ -10,6 +10,8 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IApprovalRepository;
using WIDESEA_ICheckRepository;
using WIDESEA_ICheckService;
@@ -26,8 +28,9 @@
        private readonly IApprovalTaskRepository _approvalTaskRepository;
        private readonly ISys_UserRepository _userRepository;
        private readonly WebSocketServer _webSocketServer;
        private readonly IInvokeERPService _invokeERPService;
        public CheckOrderService(ICheckOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IApprovalFlowRepository approvalFlowRepository, IApprovalNodeRepository approvalNodeRepository, IApprovalTaskRepository approvalTaskRepository, ISys_UserRepository userRepository, WebSocketServer webSocketServer) : base(BaseDal)
        public CheckOrderService(ICheckOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IApprovalFlowRepository approvalFlowRepository, IApprovalNodeRepository approvalNodeRepository, IApprovalTaskRepository approvalTaskRepository, ISys_UserRepository userRepository, WebSocketServer webSocketServer, IInvokeERPService invokeERPService) : base(BaseDal)
        {
            _unitOfWorkManage = unitOfWorkManage;
            _approvalFlowRepository = approvalFlowRepository;
@@ -35,6 +38,7 @@
            _approvalTaskRepository = approvalTaskRepository;
            _userRepository = userRepository;
            _webSocketServer = webSocketServer;
            _invokeERPService = invokeERPService;
        }
        public WebResponseContent CommitAudit(int checkOrderId)
@@ -46,7 +50,7 @@
                {
                    return WebResponseContent.Instance.Error($"未找到该质检单");
                }
                if(checkOrder.CheckOrderStatus != CheckOrderStatusEnum.Checked.ObjToInt())
                if (checkOrder.CheckOrderStatus != CheckOrderStatusEnum.Checked.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"该质检单还未检验完成");
                }
@@ -121,5 +125,70 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// è´¨æ£€å®Œä¸ŠæŠ¥è‡³ERP
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public WebResponseContent FeedbackCheckResult(int id)
        {
            try
            {
                //增加个上传状态 è´¨æ£€å•结果
                Dt_CheckOrder checkOrder = Db.Queryable<Dt_CheckOrder>().Where(x => x.CheckOrderId == id).Includes(x => x.Details).First();
                if (checkOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到质检单据");
                }
                if(checkOrder.AuditStatus != AuditStatusEnum.Agree.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"审批未通过");
                }
                List<ERPCheckResult> checkResults = new List<ERPCheckResult>();
                foreach (var item in checkOrder.Details)
                {
                    ERPCheckResult checkResult = new ERPCheckResult()
                    {
                        DefectCode = item.DefectCode,
                        Note = item.Note,
                        Quantity = item.Quantity.ToString(),
                        Result = item.Result
                    };
                    checkResults.Add(checkResult);
                }
                ERPCheckModel model = new ERPCheckModel()
                {
                    Code = checkOrder.CheckOrderNo,
                    CompanyId = "HATC",
                    Result = checkOrder.Result,
                    CreatorCode = "TC20082",//测试
                    DefectedNote = checkOrder.DefectedNote,
                    MaterialsCode = checkOrder.MaterielCode,
                    PlantsId = "HA02",
                    QtyDefected = checkOrder.DefectedQuantity.GetValueOrDefault().ToString(),
                    QtyInspected = checkOrder.ReceivedQuantity.ToString(),
                    QtyQualified = checkOrder.QualifiedQuantity.GetValueOrDefault().ToString(),
                    QtyReturn = checkOrder.ReturnQuantity.GetValueOrDefault().ToString(),
                    QtyScrapped = checkOrder.ScrappedQuantity.GetValueOrDefault().ToString(),
                    ReceiptCode = checkOrder.ReceiveOrderNo,
                    ReceiveDate = checkOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    SerNo = checkOrder.ReceiveDetailRowNo.ToString(),
                    TestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    UniqueTag = checkOrder.CheckOrderId.ToString(),
                    Way = 1,
                    Details = checkResults
                };
                string response = _invokeERPService.InvokeCheckOrderApi(model);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}