Ejemplo n.º 1
0
        public bool AddHandle(FeedbackExHandle handle, SqlTransaction transaction)
        {
            string strsql = @"insert into ZL_FeedbackExHandle(HandleMan,HandleSuggestion,HandleTime,OrderNo,HandleNote,QualityClass)
 values(@HandleMan,@HandleSuggestion,@HandleTime,@OrderNo,@HandleNote,@QualityClass)";

            if (_sqlconnection.Execute(strsql, handle, transaction) > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public Object Post([FromBody] PostData postdata)
        {
            FeedbackExHandle handler = new FeedbackExHandle();

            handler.HandleMan        = postdata.HandleMan;
            handler.HandleSuggestion = postdata.HandleSuggestion;
            handler.OrderNo          = postdata.OrderNo;
            handler.HandleNote       = postdata.HandleNote;
            handler.QualityClass     = postdata.QualityClass;
            handler.HandleTime       = DateTime.Now;
            RequestResult result = new RequestResult();

            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                SqlTransaction tran = con.BeginTransaction();
                try
                {
                    FeedbackExHandleService bllHandler = new FeedbackExHandleService(con);
                    if (bllHandler.AddHandle(handler, tran))
                    {
                        FeedbackExProblemService bllPro  = new FeedbackExProblemService(con);
                        List <PostData_Problem>  ProList = postdata.Post_Problem;
                        if (ProList != null && ProList.Count > 0)
                        {
                            for (int i = 0; i < ProList.Count; i++)
                            {
                                long   ProblemID  = ProList[i].ProblemID;
                                string Suggestion = ProList[i].Suggestion;
                                if (!bllPro.UpdateSuggestion(Suggestion, ProblemID, tran))
                                {
                                    Exception ex = new Exception("±£´æʧ°Ü");
                                    throw ex;
                                }
                            }
                        }
                        tran.Commit();
                        result.Result    = true;
                        result.ResultMsg = "±£´æ³É¹¦";
                    }
                    else
                    {
                        result.Result    = false;
                        result.ResultMsg = "±£´æʧ°Ü";
                    }
                    return(result);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    result.Result    = false;
                    result.ResultMsg = ex.Message;
                    return(result);
                }
                finally
                {
                    con.Close();
                }
            }
        }
        public Object AddFeedback([FromBody] FeedbackData PostData)
        {
            ResultData result = new ResultData();

            using (SqlConnection sqlconnection = new SqlConnection(conString))
            {
                bool flag = true;
                FeedbackBaseService service  = new FeedbackBaseService(sqlconnection);
                List <FeedbackBase> BaseList = service.GetOrderInfoByWhere(" where OrderNo='" + PostData.OrderNo + "'");
                if (sqlconnection.State == ConnectionState.Closed)
                {
                    sqlconnection.Open();
                }
                SqlTransaction transaction = sqlconnection.BeginTransaction();
                try
                {
                    FeedbackBase feedbackbase = new FeedbackBase();
                    feedbackbase.OrderNo     = PostData.OrderNo;
                    feedbackbase.Model       = PostData.Model;
                    feedbackbase.FeedbackMan = PostData.FeedbackMan;
                    //feedbackbase.FeedbackTime = DateTime.Now;
                    feedbackbase.Qty           = PostData.Qty;
                    feedbackbase.WorkProcedure = PostData.WorkProcedure;
                    feedbackbase.BatchNo       = PostData.BatchNo;
                    feedbackbase.EquipmentName = PostData.EquipmentName;
                    feedbackbase.EquipmentNo   = PostData.EquipmentNo;
                    feedbackbase.ProductClass  = PostData.ProductClass;
                    if (PostData.FeedbackTime == "")
                    {
                        feedbackbase.FeedbackTime = DateTime.Now;
                    }
                    else
                    {
                        feedbackbase.FeedbackTime = Convert.ToDateTime(PostData.FeedbackTime);
                    }

                    feedbackbase.Status       = PostData.Status;
                    feedbackbase.ProblemLevel = PostData.ProblemLevel;
                    //FeedbackBaseService service = new FeedbackBaseService(sqlconnection);
                    //List<FeedbackBase> BaseList= service.GetOrderInfoByWhere(" where OrderNo='" + PostData.OrderNo + "'",transaction);
                    if (BaseList != null && BaseList.Count > 0)
                    {
                        flag = service.Delete(PostData.OrderNo, transaction);
                    }
                    if (!Directory.Exists(SavePath))
                    {
                        Directory.CreateDirectory(SavePath);
                    }
                    if (service.AddFeedbackBase(feedbackbase, transaction))
                    {
                        FeedbackExProblemService PService = new FeedbackExProblemService(sqlconnection);
                        FeedbackExReasonService  RService = new FeedbackExReasonService(sqlconnection);
                        BllProductCard           BllCard  = new BllProductCard(sqlconnection);
                        FeedbackExProblem        Problem  = new FeedbackExProblem();
                        FeedbackExReason         Reason   = new FeedbackExReason();
                        foreach (var list in PostData.ReasonData)
                        {
                            if (list.ReasonType != "" && list.ReasonDetails != "")
                            {
                                Reason.ReasonType    = list.ReasonType;
                                Reason.ReasonDetails = list.ReasonDetails;
                                Reason.OrderNo       = PostData.OrderNo;
                                if (!RService.AddReason(Reason, transaction))
                                {
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        foreach (var list in PostData.ProblemData)
                        {
                            if (list.CodeString != "" || list.PicturePath != "" || list.ProblemDetails != "")
                            {
                                Problem.CodeString = list.CodeString;
                                Problem.OrderNo    = PostData.OrderNo;
                                string PicturePath = list.PicturePath;
                                string filePath    = "";
                                if (PicturePath != "" && PicturePath != null)
                                {
                                    var chrPath = PicturePath.Split('|');
                                    for (int iPath = 0; iPath < chrPath.Length; iPath++)
                                    {
                                        if (chrPath[iPath].Contains("base64"))
                                        {
                                            SaveImage save     = new SaveImage();
                                            string    fileName = DateTime.Now.Ticks.ToString();
                                            save.SaveInageForBase(chrPath[iPath].Split(',')[1], SavePath, fileName);
                                            filePath = filePath + "ProblemPicture/" + fileName + ".png" + ",";
                                        }
                                        else if (chrPath[iPath] != "")
                                        {
                                            string tempPath = "";
                                            for (var i = 0; i < chrPath[iPath].Split('/').Length; i++)
                                            {
                                                if (i >= 3)
                                                {
                                                    tempPath = tempPath + chrPath[iPath].Split('/')[i] + "/";
                                                }
                                            }
                                            if (tempPath != "")
                                            {
                                                tempPath = tempPath.Substring(0, tempPath.LastIndexOf("/"));
                                                filePath = filePath + tempPath + ",";
                                            }
                                        }
                                    }
                                }
                                if (filePath != "")
                                {
                                    filePath = filePath.Substring(0, filePath.LastIndexOf(","));
                                }

                                Problem.PicturePath    = filePath;
                                Problem.ProblemDetails = list.ProblemDetails;
                                if (!PService.AddProblem(Problem, transaction))
                                {
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        foreach (var list in PostData.CardList)
                        {
                            list.FKOrderNo = PostData.OrderNo;
                            if (!BllCard.InsertCard(list, transaction))
                            {
                                flag = false;
                                break;
                            }
                        }
                        if (PostData.IfQC)
                        {
                            FeedbackExHandleService BllHandler = new FeedbackExHandleService(sqlconnection);
                            FeedbackExHandle        Handler    = new FeedbackExHandle();
                            Handler.HandleMan        = PostData.HandleMan;
                            Handler.HandleNote       = PostData.HandleNote;
                            Handler.HandleSuggestion = PostData.HandleSuggestion;
                            Handler.HandleTime       = DateTime.Now;
                            Handler.QualityClass     = PostData.QualityClass;
                            Handler.OrderNo          = PostData.OrderNo;
                            if (!BllHandler.AddHandle(Handler, transaction))
                            {
                                flag = false;
                            }
                        }
                        if (flag)
                        {
                            transaction.Commit();
                            result.ErrMsg = "";
                            result.Result = true;
                            return(result);
                        }
                        else
                        {
                            transaction.Rollback();
                            result.ErrMsg = "反馈失败";
                            result.Result = false;
                            return(result);
                        }
                    }
                    else
                    {
                        transaction.Rollback();
                        result.ErrMsg = "反馈失败";
                        result.Result = false;
                        return(result);
                    }
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    result.Result = false;
                    if (ex.Message.Contains("重复键"))
                    {
                        result.ErrMsg = "已存在相同的单号,编码不能重复添加";
                    }
                    else
                    {
                        result.ErrMsg = ex.Message;
                    }
                    return(result);
                }
            }
        }
 public bool AddHandle(FeedbackExHandle handle, SqlTransaction transaction)
 {
     return(_repository.AddHandle(handle, transaction));
 }
        public Object Get(string OrderNo, string WorkProcedure, string BatchNo, string Model, string EquipmentNo,
                          string FeedbackMan, string StartTime, string EndTime, string HPrint, string Status)
        {
            OrderNo       = IsNull(OrderNo);
            WorkProcedure = IsNull(WorkProcedure);
            BatchNo       = IsNull(BatchNo);
            Model         = IsNull(Model);
            EquipmentNo   = IsNull(EquipmentNo);
            FeedbackMan   = IsNull(FeedbackMan);
            StartTime     = IsNull(StartTime);
            EndTime       = IsNull(EndTime);
            HPrint        = IsNull(HPrint);
            Status        = IsNull(Status);
            string strWhere = @" where OrderNo like '%{0}%' and WorkProcedure like
 '%{1}%' and BatchNo like '%{2}%' and Model like '%{3}%' and EquipmentNo like '%{4}%' and FeedbackMan like '%{5}%'  ";

            strWhere = string.Format(strWhere, OrderNo, WorkProcedure, BatchNo, Model, EquipmentNo, FeedbackMan);
            if (StartTime != "" && StartTime != null & EndTime != "" && EndTime != null)
            {
                strWhere += " and FeedbackTime between '" + StartTime + "' and '" + EndTime + " 23:59:59'";
            }
            if (HPrint == "0")
            {
                strWhere += " and (HPrint=0 or HPrint is null)";
            }
            else if (HPrint == "1")
            {
                strWhere += " and HPrint=1 ";
            }
            if (Status == "T1")
            {
                //待处理
                strWhere += " and Status!='P' ";
            }
            else if (Status == "P")
            {
                //已完成
                strWhere += " and Status='P' ";
            }
            else if (Status == "2")
            {
                //待审批
                strWhere += " and Status!='P'";
            }
            strWhere += " order by FeedbackTime desc";
            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                try
                {
                    BllApprovalStream        Bll         = new BllApprovalStream(con);
                    FeedbackBaseService      BllBase     = new FeedbackBaseService(con);
                    FeedbackExReasonService  BllReason   = new FeedbackExReasonService(con);
                    FeedbackExProblemService BllPro      = new FeedbackExProblemService(con);
                    FeedbackExHandleService  BllHandle   = new FeedbackExHandleService(con);
                    List <FeedbackBase>      BaseList    = BllBase.GetOrderInfoByWhere(strWhere);
                    List <Completed_Request> RequestList = new List <Completed_Request>();
                    if (BaseList != null && BaseList.Count > 0)
                    {
                        foreach (var node in BaseList)
                        {
                            Completed_Request Request = new Completed_Request();
                            //①基础信息
                            string Request_OrderNo = node.OrderNo;
                            Request.OrderNo       = Request_OrderNo;
                            Request.BatchNo       = node.BatchNo;
                            Request.WorkProcedure = node.WorkProcedure;
                            Request.Model         = node.Model;
                            Request.FeedbackMan   = node.FeedbackMan;
                            Request.FeedbackTime  = node.FeedbackTime.ToString("yyyy-MM-dd HH:mm");
                            Request.EquipmentName = node.EquipmentName;
                            Request.EquipmentNo   = node.EquipmentNo;
                            Request.Qty           = node.Qty;
                            Request.Status        = node.Status;

                            //②原因信息
                            Request.ReasonList = BllReason.GetReasonByWhere(" where OrderNo='" + Request_OrderNo + "'");
                            //③问题
                            List <FeedbackExProblem> ProList = BllPro.GetProblemByWhere("  where OrderNo = '" + Request_OrderNo + "'");
                            Request.ProblemList = GetProblemList(ProList, con);
                            //④处理
                            FeedbackExHandle feedbackExHandle = BllHandle.GetHandler(" where OrderNo='" + Request_OrderNo + "'").FirstOrDefault();
                            ExHandle         ExHandle         = new ExHandle();
                            if (feedbackExHandle != null)
                            {
                                ExHandle.HandleMan        = feedbackExHandle.HandleMan;
                                ExHandle.HandleTime       = feedbackExHandle.HandleTime.ToString("yyyy-MM-dd HH:mm");
                                ExHandle.HandleSuggestion = feedbackExHandle.HandleSuggestion;
                                ExHandle.QualityClass     = feedbackExHandle.QualityClass;
                                ExHandle.HandleNote       = feedbackExHandle.HandleNote;
                            }
                            Request.Handler  = ExHandle;
                            Request.ApStream = Bll.GetStream(" where OrderNo='" + node.OrderNo + "'");


                            //⑤关联
                            //循环找出最顶层的批号
                            string Loop = node.BatchNo;
                            bool   flag = true;
                            while (flag)
                            {
                                string strsql = "select ParentNo from ZL_ParentTable where ChildNo='" + Loop + "' ";
                                Parent parent = con.Query <Parent>(strsql).FirstOrDefault();
                                if (parent != null)
                                {
                                    Loop = parent.ParentNo;
                                }
                                else
                                {
                                    flag = false;
                                }
                            }
                            //根据最顶层批号进行递归算法,查找相关的批号
                            string strJson = "{\"ParentNo\":\"" + Loop + "\",\"ChildNo\":[" + GetJson(Loop, con) + "]}";
                            Request.Relate = strJson;
                            RequestList.Add(Request);
                        }
                    }
                    return(RequestList);
                }
                catch (Exception ex)
                {
                    string ErrMsg = ex.Message;
                    return("");
                }
                finally
                {
                    if (con.State != ConnectionState.Closed)
                    {
                        con.Close();
                    }
                }
            }
        }