/// <summary> /// 插入清单项 /// </summary> /// <param name="BoqNo"></param> /// <param name="Boi"></param> /// <param name="OperationBy">操作人</param> /// <returns>No信息</returns> private WBSline InsertWBSline(String WbsNo, WBSline Boi, String OperationBy, SqlTransaction Tran = null) { List <CmdParameter> cmds = new List <CmdParameter>(); cmds.Add(new CmdParameter("@ProjectNo", Boi.ProjectNo)); cmds.Add(new CmdParameter("@BidNo", Boi.BidNo)); cmds.Add(new CmdParameter("@WbsNo", WbsNo)); cmds.Add(new CmdParameter("@WbsLineCode", Boi.WbsLineCode)); cmds.Add(new CmdParameter("@WbsLineName", Boi.WbsLineName)); cmds.Add(new CmdParameter("@WbsSysCode", Boi.WbsSysCode)); cmds.Add(new CmdParameter("@ParentCode", Boi.ParentCode)); cmds.Add(new CmdParameter("@Amount", Boi.Amount)); cmds.Add(new CmdParameter("@AmountEx", Boi.AmountEx)); cmds.Add(new CmdParameter("@Currency", Boi.Currency)); cmds.Add(new CmdParameter("@CurrencyCode", Boi.CurrencyCode)); cmds.Add(new CmdParameter("@ExchangeRate", Boi.ExchangeRate)); cmds.Add(new CmdParameter("@DrawNo", Boi.DrawNo)); cmds.Add(new CmdParameter("@StartStakesNo", Boi.StartStakesNo)); cmds.Add(new CmdParameter("@EndStakesNo", Boi.EndStakesNo)); cmds.Add(new CmdParameter("@OperationBy", OperationBy)); cmds.Add(new CmdParameter("@Id", 0, System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@WbsLineNo", "", System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Infor", "", System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Ok", 0, System.Data.ParameterDirection.Output)); ParameterResult pResult = new ParameterResult() { Parameters = cmds.ToArray() }; HdDbCmdManager.GetInstance().Execute("ERP_BoQ.dbo.Gl_Cntrct_Wbsline_Add", CommandType.StoredProcedure, pResult.Parameters, Tran); if (!Convert.ToBoolean(pResult["@Ok"])) { throw new FaultException <ApplicationServiceError>(new ApplicationServiceError() { ErrorMessage = pResult["@Infor"].ToString() }); } Boi.WbsNo = WbsNo; Boi.WbsLineNo = pResult["@WbsLineNo"].ToString(); return(Boi); }
private static void DGLines(List <WBSline> Lines, WbsInfo ParentInfo) { int i = 1; if (ParentInfo != null && ParentInfo.WbsInfos.Count > 0) { ParentInfo.WbsInfos.ForEach(m => { WBSline line = new WBSline(); line.WbsSysCode = ParentInfo.WbsCode + String.Format("{0:D3}", i); line.WbsLineName = m.WbsName; line.StartStakesNo = m.StartNo; line.EndStakesNo = m.EndNo; line.DrawNo = m.DrawNo; line.ParentCode = ParentInfo.WbsCode; m.WbsCode = line.WbsSysCode; Lines.Add(line); DGLines(Lines, m); i++; }); } }
private static List <WBSline> ImportTotalSheetContent(ISheet sheet) { //工资项标题行序号 int rowIndex = -1; //部门名称开始列序号 int colIndex = -1; List <int> removeColumns = new List <int>(); IRow titleRow = null; for (int j = 0; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数 { IRow row = sheet.GetRow(j); //读取当前行数据 if (row != null) { ICell cell = row.GetCell(0); //当前表格 if (cell != null) { String strCell = cell.ToString(); //获取表格中的数据并转换为字符串类型 if (strCell.Equals("单位工程")) { titleRow = row; colIndex = cell.ColumnIndex; break; } } } } if (titleRow != null) { rowIndex = titleRow.RowNum;//获取占位符所在行 int currentRowIndex = rowIndex + 1; int rangeIndex = 0; LevelObject currentObject = null; wbsRootInfos.Clear(); AllObjects.Clear(); List <WbsInfo> RootInfo = new List <WbsInfo>(); WbsInfo parentInfo = null; for (int i = currentRowIndex; i <= sheet.LastRowNum; i++) { for (int j = 0; j < 6; j++) { if (j == 0) { parentInfo = null; } LevelObject tmp = Match(sheet, parentInfo, i, j); if (tmp != null) { currentObject = tmp; parentInfo = tmp.WbsInfo; } } } } int codeIndex = 1; List <WBSline> lines = new List <WBSline>(); wbsRootInfos.ForEach(m => { WBSline line = new WBSline(); line.WbsSysCode = String.Format("{0:D2}", codeIndex); line.WbsLineName = m.WbsName; m.WbsCode = line.WbsSysCode; lines.Add(line); DGLines(lines, m); codeIndex++; }); return(lines); }
public WBSBoq Save(string ProjectNo, string BidNo, String WbsName, decimal TotalAmount , List <WBSline> AddList, List <WBSline> UpdateList, List <string> DeleteItemNoList , List <WBSline_boi> AddRelation, List <WBSline_boi> UpdateRelation, List <WBSline_boi> DeleteRelation) { WBSBoq result = new WBSBoq(); String strWbsNo = null; HdDbCmdManager.GetInstance().ExecuteTran(Tran => { strWbsNo = GetWbsNo(ProjectNo, Tran); if (String.IsNullOrEmpty(strWbsNo)) { strWbsNo = InsertBoq(ProjectNo, BidNo, WbsName, TotalAmount, ServiceContext.LoginName, Tran); } else { UpdateBoq(BidNo, strWbsNo, WbsName, TotalAmount, ServiceContext.LoginName, Tran); } //删除关联关系 if (DeleteRelation != null) { DeleteRelation.ForEach(m => { DeleteWBSlineBoi(m.ItemNo, m.WBSLineNo, ServiceContext.LoginName, Tran); }); } //删除明细 if (DeleteItemNoList != null) { DeleteItemNoList.ForEach(m => { DeleteWBSline(m, ServiceContext.LoginName, Tran); }); } //修改关联关系 if (UpdateRelation != null) { UpdateRelation.ForEach(m => { if (DeleteRelation.Find(n => n.WBSLineNo == m.WBSLineNo && n.ItemNo == m.ItemNo) == null) { UpdateWBSlineBoi(m, ServiceContext.LoginName, Tran); } }); } //修改 if (UpdateList != null) { UpdateList.ForEach(m => { UpdateWBSline(m, ServiceContext.LoginName, Tran); }); } //新增WBS清单项 if (AddList != null) { AddList.ForEach(m => { result.WBSlineList.Add(InsertWBSline(strWbsNo, m, ServiceContext.LoginName, Tran)); }); } //新增关联关系 if (AddRelation != null) { AddRelation.ForEach(m => { m.WbsNo = strWbsNo; if (String.IsNullOrEmpty(m.WBSLineNo)) { WBSline line = result.WBSlineList.Find(n => n.WbsSysCode == m.WbsSysCode); m.WBSLineNo = line != null ? line.WbsLineNo : null; } result.AllRelationList.Add(AddWBSlineBoi(strWbsNo, m, ServiceContext.LoginName, Tran)); }); } }); return(result); }