Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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));
        }