public TableData Query(OrderDetiail entity) { var result = new TableData(); var data = _app.Find(EntityToExpression <OrderDetiail> .GetExpressions(entity)); GetData(data, result); result.count = data.Count(); return(result); }
public string Upd(OrderDetiail Table_entity) { try { _app.Upd(Table_entity); } catch (Exception ex) { Result.Status = false; Result.Message = ex.Message; } return(JsonHelper.Instance.Serialize(Result)); }
public string GetTemplate() { var result = new TableData(); List <OrderDetiail> listOrderDetiail = new List <OrderDetiail>(); OrderDetiail entity = _app.FindSingle(u => u.Id > 0); if (entity != null) { listOrderDetiail.Add(entity); } else { listOrderDetiail.Add(new OrderDetiail()); } result.data = listOrderDetiail; result.count = listOrderDetiail.Count; return(JsonHelper.Instance.Serialize(result)); }
public Response ImportIn(IFormFile excelfile) { Response result = new Infrastructure.Response(); List <OrderDetiail> exp = imp.ConvertToModel <OrderDetiail>(excelfile); string sErrorMsg = ""; for (int i = 0; i < exp.Count; i++) { try { OrderDetiail e = exp[i]; e.Id = null; _app.Add(e); } catch (Exception ex) { sErrorMsg += "第" + (i + 2) + "行:" + ex.Message + "<br>"; result.Message = sErrorMsg; break; } } if (sErrorMsg.Equals(string.Empty)) { if (exp.Count == 0) { sErrorMsg += "没有发现有效数据, 请确定模板是否正确, 或是否有填充数据!"; result.Message = sErrorMsg; } else { result.Message = "导入完成"; } } else { result.Status = false; result.Message = result.Message; } return(result); }
public Response EquipmentWorkNodeApp(EquipmentWorkNodeModel equipmentWorkNode) { using (var tran = _context.Database.BeginTransaction()) { Response <ReviseModel> Response = new Response <ReviseModel>(); string sErrorMsg = ""; //if (!CheckLogin()) //{ // Response.Code = 500; // Response.Status = false; // Response.Message = "请先登录!"; // return Response; //} try { Equipment equipment = _unitWork.FindSingle <Equipment>(u => u.Code.Equals(equipmentWorkNode.EquipmentCode)); if (equipment == null) { sErrorMsg += "设备号为:" + equipmentWorkNode.EquipmentCode + "系统中不存在,请确认<br>"; Response.Message = sErrorMsg; } else { EquipmentStatus equipmentStatus = _unitWork.FindSingle <EquipmentStatus>(u => u.EquipmentId.Equals(equipment.Id)); if (equipmentWorkNode.EquipmentCode == EquipmentStart.桁车1 || equipmentWorkNode.EquipmentCode == EquipmentStart.桁车2 || equipmentWorkNode.EquipmentCode == EquipmentStart.桁车3) { StepTrace stCar = _unitWork.Find <StepTrace>(u => u.SerialNumber == equipmentWorkNode.SerialNumber).FirstOrDefault(); if (equipmentWorkNode.Status == "1") { stCar.StationId = equipment.StationId; stCar.StationOutTime = DateTime.Now; equipmentStatus.Status = equipmentWorkNode.Status; } else { stCar.StationId = 0; stCar.StationInTime = DateTime.Now; equipmentStatus.Status = "0"; } _unitWork.UpdateByTracking(stCar); equipmentStatus.UpdateBy = "ECSApi"; equipmentStatus.UpdateTime = DateTime.Now; _unitWork.Update(equipmentStatus); } else { //工位工序对应关系 StepStation stepStation = _unitWork.Find <StepStation>(u => u.StationId == equipment.StationId).FirstOrDefault(); Step step = _unitWork.Find <Step>(u => u.ProductCode == equipmentWorkNode.ProductCode && u.StepType == stepStation.StepType).FirstOrDefault(); //更新设备状态 if (equipmentWorkNode.Status == "0") { equipmentStatus.Status = equipmentWorkNode.Status; equipmentStatus.UpdateBy = "ECSApi"; equipmentStatus.UpdateTime = DateTime.Now; _unitWork.Update(equipmentStatus); } else if (equipmentWorkNode.Status == "1")//开始工作 { if (equipmentWorkNode.EquipmentCode == EquipmentStart.组对1 || equipmentWorkNode.EquipmentCode == EquipmentStart.组对2 || equipmentWorkNode.EquipmentCode == EquipmentStart.组对3 || equipmentWorkNode.EquipmentCode == EquipmentStart.组对4 || equipmentWorkNode.EquipmentCode == EquipmentStart.组对5 || equipmentWorkNode.EquipmentCode == EquipmentStart.组对6) {//开始生产,写入在制品 StepTrace steptrace = _unitWork.FindSingle <StepTrace>(u => u.WONumber.Equals(equipmentWorkNode.OrderCode)); if (steptrace == null) { steptrace = new StepTrace(); steptrace.WONumber = equipmentWorkNode.OrderCode; steptrace.ProductCode = equipmentWorkNode.ProductCode; steptrace.SerialNumber = equipmentWorkNode.SerialNumber; steptrace.LineId = equipment.LineId; steptrace.StepId = step.Id; steptrace.StationId = equipment.StationId; steptrace.NextStepId = _unitWork.FindSingle <Step>(u => u.Sequence == step.Sequence + 1).Id; steptrace.IsNG = false; steptrace.IsInvalid = false; steptrace.LineInTime = DateTime.Now; steptrace.StationInTime = DateTime.Now; steptrace.CreateBy = "ECSApi"; steptrace.CreateTime = DateTime.Now; _unitWork.Add(steptrace); } } else { StepTrace st = _unitWork.Find <StepTrace>(u => u.SerialNumber == equipmentWorkNode.SerialNumber).FirstOrDefault(); st.StepId = step.Id; st.StationId = equipment.StationId; if (step.Sequence == 4) { st.NextStepId = 0; } else { st.NextStepId = _unitWork.FindSingle <Step>(u => u.Sequence == step.Sequence + 1).Id; } st.StationInTime = DateTime.Now; _unitWork.UpdateByTracking(st); } equipmentStatus.Status = equipmentWorkNode.Status; equipmentStatus.UpdateBy = "ECSApi"; equipmentStatus.UpdateTime = DateTime.Now; _unitWork.Update(equipmentStatus); } else if (equipmentWorkNode.Status == "2")//完成 { equipmentStatus.Status = "0"; equipmentStatus.UpdateBy = "ECSApi"; equipmentStatus.UpdateTime = DateTime.Now; _unitWork.Update(equipmentStatus); //执行其它逻辑块(如更新steptrace在制品信息,呼叫桁车已转至下一个工序,给三一MES工序报工等) if (_unitWork.IsExist <StepTrace>(u => u.SerialNumber == equipmentWorkNode.SerialNumber)) { //在制品追踪表 StepTrace stepTrace = _unitWork.Find <StepTrace>(u => u.SerialNumber == equipmentWorkNode.SerialNumber).FirstOrDefault(); stepTrace.StationOutTime = DateTime.Now; //取下道工序 int?StationIdSequence = _unitWork.FindSingle <Step>(u => u.Id.Equals(stepTrace.StepId)).Sequence; //如果下道工序为最后一道机加工序则为空否则取下道工序 if (step.Sequence == 4) { stepTrace.LineOutTime = DateTime.Now; stepTrace.NextStepId = 0; _unitWork.UpdateByTracking(stepTrace); OrderHeader oh; if (equipmentWorkNode.OrderCode != null) { oh = _unitWork.Find <OrderHeader>(u => u.Code == equipmentWorkNode.OrderCode).FirstOrDefault(); } else { var headerid = _unitWork.FindSingle <OrderDetiail>(u => u.SerialNumber == equipmentWorkNode.SerialNumber).OrderHeaderId; oh = _unitWork.Find <OrderHeader>(u => u.Id == headerid).FirstOrDefault(); } //更新明细状态为完成 OrderDetiail orderdt = _unitWork.Find <OrderDetiail>(u => u.OrderCode.Equals(equipmentWorkNode.OrderCode) && u.SerialNumber == equipmentWorkNode.SerialNumber).FirstOrDefault(); orderdt.ExecuteStatus = "done"; orderdt.EndTime = DateTime.Now; orderdt.UpdateBy = "ECSApi"; orderdt.UpdateTime = DateTime.Now; _unitWork.Update(orderdt); if (oh.CompleteQty == null) { oh.CompleteQty = 0; } oh.CompleteQty = oh.CompleteQty + 1; List <OrderDetiail> orderDetiails = _unitWork.Find <OrderDetiail>(u => u.OrderCode.Equals(equipmentWorkNode.OrderCode) && u.ExecuteStatus != "done").ToList(); if (orderDetiails.Count == 0) { //更新工单状态为已完成 oh.Status = OrderStatus.完成; oh.ActualEndTime = DateTime.Now; oh.UpdateBy = "ECSApi"; oh.UpdateTime = DateTime.Now; _unitWork.Update(oh); } if (oh.Status == OrderStatus.完成) { //在制品写入历史表 StepTraceHistory stepTraceHistory = _unitWork.FindSingle <StepTraceHistory>(u => u.WONumber.Equals(stepTrace.WONumber)); if (stepTraceHistory == null) { stepTraceHistory = new StepTraceHistory(); stepTrace.CopyTo(stepTraceHistory); stepTraceHistory.Id = null; _unitWork.Add(stepTraceHistory); //删除已完成的在制品数据 _unitWork.DeleteByTracking(stepTrace); } OrderHeaderHistory orderHeaderHistory = _unitWork.FindSingle <OrderHeaderHistory>(u => u.Code.Equals(oh.Code)); if (orderHeaderHistory == null) { orderHeaderHistory = new OrderHeaderHistory(); //工单主表写入工单历史表 oh.CopyTo(orderHeaderHistory); orderHeaderHistory.Id = null; _unitWork.Add(orderHeaderHistory); //写入工单明细历史表 List <OrderDetiail> detiails = _unitWork.Find <OrderDetiail>(u => u.OrderHeaderId.Equals(oh.Id)).ToList(); foreach (OrderDetiail oddt in detiails) { OrderDetiailHistory orderDetiailHistory = new OrderDetiailHistory(); oddt.CopyTo(orderDetiailHistory); orderDetiailHistory.Id = null; orderDetiailHistory.OrderHeaderId = orderHeaderHistory.Id; _unitWork.Add(orderDetiailHistory); } } } } else { //stepTrace.NextStepId = _unitWork.FindSingle<Step>(u => u.Sequence == StationIdSequence + 1).Id; stepTrace.UpdateBy = "ECSApi"; stepTrace.UpdateTime = DateTime.Now; _unitWork.Update(stepTrace); } //写入过站记录表 StepTraceLog stepTraceLog = _unitWork.FindSingle <StepTraceLog>(u => u.WONumber.Equals(stepTrace.WONumber) && u.SerialNumber == stepTrace.SerialNumber && u.StationId == stepTrace.StationId); if (stepTraceLog == null) { stepTraceLog = new StepTraceLog(); stepTraceLog.WONumber = stepTrace.WONumber; stepTraceLog.ProductCode = stepTrace.ProductCode; stepTraceLog.SerialNumber = stepTrace.SerialNumber; stepTraceLog.LineId = stepTrace.LineId; stepTraceLog.StationId = stepTrace.StationId; stepTraceLog.PassOrFail = "pass"; stepTraceLog.IsNG = stepTrace.IsNG; stepTraceLog.NGcode = stepTrace.NGcode; stepTraceLog.LineInTime = stepTrace.LineInTime; stepTraceLog.StationInTime = stepTrace.StationInTime; stepTraceLog.StationOutTime = DateTime.Now; stepTraceLog.CreateBy = "ECSApi"; stepTraceLog.CreateTime = DateTime.Now; //如果工序为最后一道机加则更新出线时间 if (step.Sequence == 4) { stepTraceLog.LineOutTime = DateTime.Now; } _unitWork.Add(stepTraceLog); } } else { sErrorMsg += "在制品:" + equipmentWorkNode.SerialNumber + "不存在或已完工,请至在制品历史页面确认!<br>"; Response.Message = sErrorMsg; } } else { sErrorMsg += "状态为:" + equipmentWorkNode.Status + "不识别的设备状态<br>"; Response.Message = sErrorMsg; } } } tran.Commit(); } catch (Exception ex) { tran.Rollback(); Response.Code = 500; Response.Status = false; Response.Message = (Response.Message == "操作成功" ? "" : Response.Message) + "\r\n" + "EquipmentCode:" + equipmentWorkNode.EquipmentCode + "反馈失败!" + ex.Message; } return(Response); } }
public string Load(PageReq pageRequest, OrderDetiail entity) { return(JsonHelper.Instance.Serialize(_app.Load(pageRequest, entity))); }
public string Export(OrderDetiail entity) { return(JsonHelper.Instance.Serialize(_app.ExportData(entity))); }
public void Upd(OrderDetiail entity) { _app.Update(entity); }
public void Ins(OrderDetiail entity) { _app.Add(entity); }
public TableData Load(PageReq pageRequest, OrderDetiail entity) { return(_app.Load(pageRequest, entity)); }
public TableData ExportData(OrderDetiail entity) { return(_app.ExportData(entity)); }
public Response InsertOrder(InterfaceOrderModel interfaceorder) { Response Response = new Response(); if (!CheckLogin()) { Response.Code = 500; Response.Status = false; Response.Message = "请先登录!"; return(Response); } try { #region 保存订单接口主表 InterfaceOrderHeader headdata = _unitWork.FindSingle <InterfaceOrderHeader>(u => u.Code.Equals(interfaceorder.interfaceOrderHeader.Code)); interfaceorder.interfaceOrderHeader.Id = headdata?.Id; if (interfaceorder.interfaceOrderHeader.PartMaterialCode == null) { interfaceorder.interfaceOrderHeader.PartMaterialCode = interfaceorder.interfaceOrderHeader.ProductCode; } if (interfaceorder.interfaceOrderHeader.Id == null) { if (interfaceorder.interfaceOrderHeader.CreateBy == null) { interfaceorder.interfaceOrderHeader.CreateBy = "system"; interfaceorder.interfaceOrderHeader.CreateTime = DateTime.Now; } _unitWork.Add(interfaceorder.interfaceOrderHeader); } else { if (interfaceorder.interfaceOrderHeader.UpdateBy == null) { interfaceorder.interfaceOrderHeader.UpdateBy = "system"; interfaceorder.interfaceOrderHeader.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(interfaceorder.interfaceOrderHeader); } #endregion #region 保存订单主表 OrderHeader orderHeader = _unitWork.FindSingle <OrderHeader>(u => u.Code.Equals(interfaceorder.interfaceOrderHeader.Code)); if (orderHeader == null) { orderHeader = new OrderHeader(); } orderHeader.Code = interfaceorder.interfaceOrderHeader.Code; orderHeader.MachineType = interfaceorder.interfaceOrderHeader.MachineType; orderHeader.ProductCode = interfaceorder.interfaceOrderHeader.ProductCode; if (orderHeader.PartMaterialCode == null) { orderHeader.PartMaterialCode = interfaceorder.interfaceOrderHeader.ProductCode; } else { orderHeader.PartMaterialCode = interfaceorder.interfaceOrderHeader.PartMaterialCode; } orderHeader.PlanQty = (interfaceorder.interfaceOrderHeader.PlanQty == null ? 0 : interfaceorder.interfaceOrderHeader.PlanQty); orderHeader.CompleteQty = (interfaceorder.interfaceOrderHeader.CompleteQty == null ? 0 : interfaceorder.interfaceOrderHeader.CompleteQty); orderHeader.NGQty = (interfaceorder.interfaceOrderHeader.NGQty == null ? 0 : interfaceorder.interfaceOrderHeader.NGQty); if (interfaceorder.interfaceOrderHeader.Status == null) { orderHeader.Status = OrderStatus.已准备; } else { orderHeader.Status = interfaceorder.interfaceOrderHeader.Status; } if (interfaceorder.interfaceOrderHeader.Type == null) { orderHeader.Type = OrderType.正常工单; } else { orderHeader.Type = interfaceorder.interfaceOrderHeader.Type; } if (interfaceorder.interfaceOrderHeader.LineId == null) { var workship = _unitWork.FindSingle <ProductHeader>(u => u.Code == interfaceorder.interfaceOrderHeader.ProductCode).WorkShop; orderHeader.LineId = _unitWork.FindSingle <Line>(u => u.WorkshopCode.Equals(workship)).Id; } else { orderHeader.LineId = interfaceorder.interfaceOrderHeader.LineId; } if (interfaceorder.interfaceOrderHeader.Priority == null) { orderHeader.Priority = 5; } else { orderHeader.Priority = interfaceorder.interfaceOrderHeader.Priority; } orderHeader.LotNo = interfaceorder.interfaceOrderHeader.LotNo; if (interfaceorder.interfaceOrderHeader.LineId == null) { orderHeader.WorkFactory = _unitWork.Find <Factory>(null).Select(u => u.FactoryCode).FirstOrDefault(); } else { orderHeader.WorkFactory = interfaceorder.interfaceOrderHeader.WorkFactory; } orderHeader.PlanStartTime = interfaceorder.interfaceOrderHeader.PlanStartTime; orderHeader.PlanEndTime = interfaceorder.interfaceOrderHeader.PlanEndTime; orderHeader.ActualStartTime = interfaceorder.interfaceOrderHeader.ActualStartTime; orderHeader.ActualEndTime = interfaceorder.interfaceOrderHeader.ActualEndTime; orderHeader.ReserveNo = interfaceorder.interfaceOrderHeader.ReserveNo; orderHeader.ReserveRowNo = interfaceorder.interfaceOrderHeader.ReserveRowNo; orderHeader.CreateTime = interfaceorder.interfaceOrderHeader.CreateTime; orderHeader.CreateBy = interfaceorder.interfaceOrderHeader.CreateBy; orderHeader.UpdateTime = interfaceorder.interfaceOrderHeader.UpdateTime; orderHeader.UpdateBy = interfaceorder.interfaceOrderHeader.UpdateBy; if (orderHeader.Id == null) { if (orderHeader.CreateBy == null) { orderHeader.CreateBy = "system"; orderHeader.CreateTime = DateTime.Now; } _unitWork.Add(orderHeader); } else { if (orderHeader.UpdateBy == null) { orderHeader.UpdateBy = "system"; orderHeader.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(orderHeader); } #endregion foreach (var item in interfaceorder.interfaceOrderDetails) { try { #region 保存订单接口子表 InterfaceOrderDetiail data = _context.Set <InterfaceOrderDetiail>().AsQueryable().Where(u => u.OrderCode.Equals(item.OrderCode) && u.DrawingNumber.Equals(item.DrawingNumber)).SingleOrDefault(); item.Id = data?.Id; if (item.Id == null) { if (item.CreateBy == null) { item.CreateBy = "system"; item.CreateTime = DateTime.Now; } _unitWork.Add(item); } else { if (item.UpdateBy == null) { item.UpdateBy = "system"; item.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(item); } #endregion #region 保存订单子表 OrderDetiail orderDetail = _context.Set <OrderDetiail>().AsQueryable().Where(u => u.OrderCode.Equals(item.OrderCode) && u.DrawingNumber.Equals(item.DrawingNumber)).SingleOrDefault(); if (orderDetail == null) { orderDetail = new OrderDetiail(); } orderDetail.OrderCode = item.OrderCode; orderDetail.OrderHeaderId = orderHeader.Id; orderDetail.DrawingNumber = item.DrawingNumber; orderDetail.SerialNumber = item.SerialNumber; orderDetail.ExecuteStatus = "ready"; orderDetail.QualityStatus = "good"; orderDetail.StationTraceId = item.StationTraceId; orderDetail.StartTime = item.StartTime; orderDetail.EndTime = item.EndTime; orderDetail.PrintCount = 0; orderDetail.CreateTime = item.CreateTime; orderDetail.CreateBy = item.CreateBy; orderDetail.UpdateTime = item.UpdateTime; orderDetail.UpdateBy = item.UpdateBy; if (orderDetail.Id == null) { if (orderDetail.CreateBy == null) { orderDetail.CreateBy = "system"; orderDetail.CreateTime = DateTime.Now; } _unitWork.Add(orderDetail); } else { if (orderDetail.UpdateBy == null) { orderDetail.UpdateBy = "system"; orderDetail.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(orderDetail); } #endregion } catch (Exception ex) { #region 记录订单接口子表错误信息 InterfaceOrderDetiail data = _context.Set <InterfaceOrderDetiail>().AsQueryable().Where(u => u.OrderCode.Equals(item.OrderCode) && u.DrawingNumber.Equals(item.DrawingNumber)).SingleOrDefault(); if (data != null) { data.ErrorMessage = ex.Message; if (data.UpdateBy == null) { data.UpdateBy = "system"; data.UpdateTime = DateTime.Now; } _unitWork.Update(data); } #endregion Response.Code = 500; Response.Status = false; Response.Message = (Response.Message == "操作成功" ? "" : Response.Message) + "\r\n" + "订单号:" + item.OrderCode + ",产品图号:" + item.DrawingNumber + "同步失败:" + ex.Message; } } } catch (Exception ex) { #region 记录订单接口主表错误信息 try { InterfaceOrderHeader data = _context.Set <InterfaceOrderHeader>().AsQueryable().Where(u => u.Code.Equals(interfaceorder.interfaceOrderHeader.Code)).SingleOrDefault(); if (data != null) { data.ErrorMessage = ex.Message; if (data.UpdateBy == null) { data.UpdateBy = "system"; data.UpdateTime = DateTime.Now; } _unitWork.Update(data); } } catch (Exception) { } #endregion Response.Code = 500; Response.Status = false; Response.Message = (Response.Message == "操作成功" ? "" : Response.Message) + "\r\n" + "同步失败:" + ex.Message; } return(Response); }
public TableData CreateSNApp(List <OrderHeader> ohlist) { using (var tran = _context.Database.BeginTransaction()) { TableData tab = new TableData { code = 200 }; int hcount = 0; int listcount = 0; string sErrorMsg = ""; try { listcount = ohlist.Count; foreach (OrderHeader orderhearder in ohlist) { if (orderhearder.Status == OrderStatus.已准备) { if (_unitWork.IsExist <SerialNumber>(u => u.OrderCode.Equals(orderhearder.Code))) { sErrorMsg += "工单号为:" + orderhearder.Code + "已生成过SN,不可再生成!<br>"; tab.msg = sErrorMsg; } else { List <OrderDetiail> orderDetiails = _unitWork.Find <OrderDetiail>(u => u.OrderHeaderId.Equals(orderhearder.Id)).ToList(); for (int i = 0; i < orderhearder.PlanQty; i++) { SerialNumber serialNumber = new SerialNumber(); serialNumber.OrderCode = orderhearder.Code; serialNumber.ProductCode = orderhearder.ProductCode; serialNumber.SerialNumberMember = _app.GetTaskNo(orderhearder.ProductCode); if (_unitWork.IsExist <ProductBarcodeRule>(u => u.ProductCode == orderhearder.ProductCode)) { serialNumber.SerialRule = _unitWork.FindSingle <ProductBarcodeRule>(u => u.ProductCode == orderhearder.ProductCode).Code; } else { serialNumber.SerialRule = ""; } serialNumber.PrintCount = 0; _apps.Add(serialNumber); if (orderDetiails.Count > 0) { OrderDetiail orderDetiail = _unitWork.Find <OrderDetiail>(u => u.OrderCode.Equals(serialNumber.OrderCode)).Skip(i).Take(1).OrderBy(a => a.Id).FirstOrDefault(); //更新工单明细表的SN orderDetiail.SerialNumber = serialNumber.SerialNumberMember; _appdt.Update(orderDetiail); } else { //写入工单明细表 OrderDetiail odin = new OrderDetiail(); odin.OrderCode = serialNumber.OrderCode; odin.OrderHeaderId = orderhearder.Id; ProductHeader dno = _unitWork.FindSingle <ProductHeader>(u => u.Code.Equals(orderhearder.ProductCode)); odin.DrawingNumber = dno.DrawingNumber; //if (_unitWork.IsExist<ProductHeader>(u => u.Code.Equals(orderhearder.ProductCode))) //{ // odin.DrawingNumber = _unitWork.FindSingle<ProductHeader>(u => u.Code.Equals(orderhearder.ProductCode)).DrawingNumber; //} odin.SerialNumber = serialNumber.SerialNumberMember; odin.ExecuteStatus = "ready"; odin.QualityStatus = "good"; _appdt.Add(odin); } } hcount = hcount + 1; } } else { sErrorMsg += "工单号为:" + orderhearder.Code + "状态错误,为非准备状态!<br>"; tab.msg = sErrorMsg; } } if (listcount <= hcount) { tab.code = 200; tab.msg = "工单已全部成功生成SN!"; } else { tab.code = 200; tab.msg = "工单全部完成!部分未成功生成SN的信息如下:<br>" + tab.msg; } tran.Commit(); } catch (Exception ex) { tran.Rollback(); tab.code = 300; tab.msg += ex.Message; } return(tab); } }