public ActionResult Create(TND_PROJECT prj, HttpPostedFileBase file) { logger.Info("create project process! project =" + prj.ToString()); TnderProjectService service = new TnderProjectService(); SYS_USER u = (SYS_USER)Session["user"]; string message = ""; //1.更新或新增專案基本資料 if (prj.PROJECT_ID == "" || prj.PROJECT_ID == null) { //新增專案 prj.CREATE_USER_ID = u.USER_ID; prj.OWNER_USER_ID = u.USER_ID; prj.CREATE_DATE = DateTime.Now; service.newProject(prj); message = "建立專案:" + service.project.PROJECT_ID + "<br/>"; } else { //修改專案基本資料 prj.MODIFY_USER_ID = u.USER_ID; prj.MODIFY_DATE = DateTime.Now; service.updateProject(prj); message = "專案基本資料修改:" + prj.PROJECT_ID + "<br/>"; } //若使用者有上傳標單資料,則增加標單資料 if (null != file && file.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + file.FileName); //2.1 設定Excel 檔案名稱 prj.EXCEL_FILE_NAME = file.FileName; //2.2 將上傳檔案存檔 var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + prj.PROJECT_ID, fileName); logger.Info("save excel file:" + path); file.SaveAs(path); try { //2.2 解析Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); poiservice.ConvertDataForTenderProject(prj.PROJECT_ID, (int)prj.START_ROW_NO); //2.3 記錄錯誤訊息 message = message + "標單品項:共" + poiservice.lstProjectItem.Count + "筆資料,"; message = message + "<a target=\"_blank\" href=\"/Tender/ManageProjectItem?id=" + prj.PROJECT_ID + "\"> 標單明細檢視畫面單</a><br/>" + poiservice.errorMessage; // < button type = "button" class="btn btn-primary" onclick="location.href='@Url.Action("ManageProjectItem","Tender", new { id = @Model.tndProject.PROJECT_ID})'; ">標單明細</button> //2.4 logger.Info("Delete TND_PROJECT_ITEM By Project ID"); service.delAllItemByProject(); //2.5 logger.Info("Add All TND_PROJECT_ITEM to DB"); service.refreshProjectItem(poiservice.lstProjectItem); } catch (Exception ex) { logger.Error("Error Message:" + ex.Message + "." + ex.StackTrace); message = ex.Message; } } ViewBag.projectId = service.project.PROJECT_ID; ViewBag.result = message; return(View(service.project)); }
public ActionResult uploadPlanItem(TND_PROJECT prj, HttpPostedFileBase file) { //1.取得專案編號 string projectid = Request["projectid"]; logger.Info("Upload plan items for projectid=" + projectid); TnderProjectService service = new TnderProjectService(); SYS_USER u = (SYS_USER)Session["user"]; string message = ""; //修改專案狀態 prj.PROJECT_ID = projectid; prj.STATUS = "專案執行"; prj.PROJECT_NAME = Request["projectname"]; prj.ENG_NAME = Request["engname"]; prj.CONTRUCTION_NAME = Request["contructionname"]; prj.LOCATION = Request["location"]; prj.OWNER_NAME = Request["ownername"]; prj.CONTACT_NAME = Request["contactname"]; prj.CONTACT_TEL = Request["contecttel"]; prj.CONTACT_FAX = Request["contactfax"]; prj.CONTACT_EMAIL = Request["contactemail"]; prj.DUE_DATE = Convert.ToDateTime(Request["duedate"]); prj.SCHDL_OFFER_DATE = Convert.ToDateTime(Request["schdlofferdate"]); if (Request["starrowno"] != null || " " != Request["starrowno"]) { prj.START_ROW_NO = int.Parse(Request["starrowno"]); } //prj.WAGE_MULTIPLIER = decimal.Parse(Request["wage"]); prj.EXCEL_FILE_NAME = Request["excelfilename"]; prj.OWNER_USER_ID = Request["owneruserid"]; prj.CREATE_USER_ID = Request["createdid"]; prj.CREATE_DATE = Convert.ToDateTime(Request["createddate"]); prj.MODIFY_USER_ID = u.USER_ID; prj.MODIFY_DATE = DateTime.Now; service.updateProject(prj); message = "專案進入執行階段:" + prj.PROJECT_ID + "<br/>"; if (null != file && file.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + file.FileName); //2.1 將上傳檔案存檔 var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); file.SaveAs(path); //2.2 解析Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); poiservice.ConvertDataForPlan(projectid); //2.3 記錄錯誤訊息 message = message + "得標標單品項:共" + poiservice.lstPlanItem.Count + "筆資料,"; message = message + "<a target=\"_blank\" href=\"/Plan/ManagePlanItem?id=" + projectid + "\"> 標單明細檢視畫面單</a><br/>" + poiservice.errorMessage; // < button type = "button" class="btn btn-primary" onclick="location.href='@Url.Action("ManagePlanItem","Plan", new { id = @Model.tndProject.PROJECT_ID})'; ">標單明細</button> //2.4 logger.Info("Delete PLAN_ITEM By Project ID"); service.delAllItemByPlan(); //2.5 logger.Info("Add All PLAN_ITEM to DB"); service.refreshPlanItem(poiservice.lstPlanItem); } TempData["result"] = message;//Plan/ManagePlanItem/P00023 //return RedirectToAction() return(RedirectToAction("ManagePlanItem/" + projectid, "Plan")); }
public ActionResult uploadMapInfo(HttpPostedFileBase fileDevice, HttpPostedFileBase fileFP, HttpPostedFileBase fileFW, HttpPostedFileBase fileLCP, HttpPostedFileBase filePEP, HttpPostedFileBase filePLU) { string projectid = Request["projectid"]; TnderProjectService service = new TnderProjectService(); string message = ""; logger.Info("Upload Map Info for projectid=" + projectid); try { //檔案變數名稱需要與前端畫面對應 #region 設備清單 //圖算:設備檔案清單 if (null != fileDevice && fileDevice.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + fileDevice.FileName); //2.1 設定Excel 檔案名稱 var fileName = Path.GetFileName(fileDevice.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); fileDevice.SaveAs(path); //2.2 解析Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); //解析設備圖算數量檔案 List <TND_MAP_DEVICE> lstMapDEVICE = poiservice.ConvertDataForMapDEVICE(projectid); //2.3 記錄錯誤訊息 message = message + poiservice.errorMessage; //2.4 logger.Info("Delete TND_MAP_DEVICE By Project ID"); service.delMapDEVICEByProject(projectid); //2.5 logger.Info("Add All TND_MAP_DEVICE to DB"); service.refreshMapDEVICE(lstMapDEVICE); } #endregion #region 消防電 //圖算:消防電(TND_MAP_FP) if (null != fileFP && fileFP.ContentLength != 0) { //2.解析Excel logger.Info("Parser FP Excel data:" + fileFP.FileName); //2.1 設定Excel 檔案名稱 var fileName = Path.GetFileName(fileFP.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); fileFP.SaveAs(path); //2.2 解析Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); //解析消防電圖算數量檔案 List <TND_MAP_FP> lstMapFP = poiservice.ConvertDataForMapFP(projectid); //2.3 記錄錯誤訊息 message = message + poiservice.errorMessage; //2.4 logger.Info("Delete TND_MAP_FP By Project ID"); service.delMapFPByProject(projectid); //2.5 logger.Info("Add All TND_MAP_FP to DB"); service.refreshMapFP(lstMapFP); } #endregion #region 消防水 //圖算:消防水(TND_MAP_FW) if (null != fileFW && fileFW.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + fileFW.FileName); //2.1 設定Excel 檔案名稱 var fileName = Path.GetFileName(fileFW.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); fileFW.SaveAs(path); //2.2 開啟Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); //解析消防水塗算數量 List <TND_MAP_FW> lstMapFW = poiservice.ConvertDataForMapFW(projectid); //2.3 記錄錯誤訊息 message = poiservice.errorMessage; //2.4 logger.Info("Delete TND_MAP_FW By Project ID"); service.delMapFWByProject(projectid); message = message + "<br/>舊有資料刪除成功 !!"; //2.5 logger.Info("Add All TND_MAP_FP to DB"); service.refreshMapFW(lstMapFW); message = message + "<br/>資料匯入完成 !!"; } #endregion #region 給排水 //圖算:給排水(TND_MAP_PLU) if (null != filePLU && filePLU.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + filePLU.FileName); //2.1 設定Excel 檔案名稱 var fileName = Path.GetFileName(filePLU.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); filePLU.SaveAs(path); //2.2 開啟Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); //解析給排水圖算數量 List <TND_MAP_PLU> lstMapPLU = poiservice.ConvertDataForMapPLU(projectid); //2.3 記錄錯誤訊息 message = poiservice.errorMessage; //2.4 logger.Info("Delete TND_MAP_PLU By Project ID"); service.delMapPLUByProject(projectid); message = message + "<br/>舊有資料刪除成功 !!"; //2.5 logger.Info("Add All TND_MAP_PLU to DB"); service.refreshMapPLU(lstMapPLU); message = message + "<br/>資料匯入完成 !!"; } #endregion #region 弱電管線 //圖算:弱電管線(TND_MAP_LCP) if (null != fileLCP && fileLCP.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + fileLCP.FileName); //2.1 設定Excel 檔案名稱 var fileName = Path.GetFileName(fileLCP.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); fileLCP.SaveAs(path); //2.2 開啟Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); //解析弱電管線圖算數量 List <TND_MAP_LCP> lstMapLCP = poiservice.ConvertDataForMapLCP(projectid); //2.3 記錄錯誤訊息 message = poiservice.errorMessage; //2.4 logger.Info("Delete TND_MAP_LCP By Project ID"); service.delMapLCPByProject(projectid); message = message + "<br/>舊有資料刪除成功 !!"; //2.5 logger.Info("Add All TND_MAP_LCP to DB"); service.refreshMapLCP(lstMapLCP); message = message + "<br/>資料匯入完成 !!"; } #endregion #region 電氣管線 //圖算:電氣管線(TND_MAP_PEP) if (null != filePEP && filePEP.ContentLength != 0) { //2.解析Excel logger.Info("Parser Excel data:" + filePEP.FileName); //2.1 設定Excel 檔案名稱 var fileName = Path.GetFileName(filePEP.FileName); var path = Path.Combine(ContextService.strUploadPath + "/" + projectid, fileName); logger.Info("save excel file:" + path); filePEP.SaveAs(path); //2.2 開啟Excel 檔案 ProjectItemFromExcel poiservice = new ProjectItemFromExcel(); poiservice.InitializeWorkbook(path); //解析電氣管線圖算數量 List <TND_MAP_PEP> lstMapPEP = poiservice.ConvertDataForMapPEP(projectid); //2.3 記錄錯誤訊息 message = poiservice.errorMessage; //2.4 logger.Info("Delete TND_MAP_PEP By Project ID"); service.delMapPEPByProject(projectid); message = message + "<br/>舊有資料刪除成功 !!"; //2.5 logger.Info("Add All TND_MAP_PEP to DB"); service.refreshMapPEP(lstMapPEP); message = message + "<br/>資料匯入完成 !!"; } #endregion } catch (Exception ex) { logger.Error(ex.StackTrace); message = ex.Message; } ViewBag.result = message; TempData["result"] = message; return(RedirectToAction("MapInfoMainPage/" + projectid)); }