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 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 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(); } } } }