Bläddra i källkod

镇江本部历年项目建设进度

yue 5 år sedan
förälder
incheckning
ba87e2b1e6

+ 89 - 0
src/main/java/com/jeeplus/modules/sg/progress/entity/PlanningStatistics.java

@@ -0,0 +1,89 @@
+package com.jeeplus.modules.sg.progress.entity;
+
+import com.jeeplus.core.persistence.DataEntity;
+
+import java.util.List;
+
+public class PlanningStatistics extends DataEntity<PlanningStatistics> {
+    //年份
+    private String projectYear;
+    //施工单位
+    private String constructionUnit;
+    //项目已投运
+    private String projectOperationStatusT;
+    //项目未投运
+    private String projectOperationStatusF;
+    //施工单位已送审
+    private String whetherIsApprovalT;
+    //施工单位未送审
+    private String whetherIsApprovalF;
+    //结算已审定
+    private String approvedNotT;
+    //结算未审定
+    private String approvedNotF;
+
+
+    public String getProjectYear() {
+        return projectYear;
+    }
+
+    public void setProjectYear(String projectYear) {
+        this.projectYear = projectYear;
+    }
+
+    public String getConstructionUnit() {
+        return constructionUnit;
+    }
+
+    public void setConstructionUnit(String constructionUnit) {
+        this.constructionUnit = constructionUnit;
+    }
+
+    public String getProjectOperationStatusT() {
+        return projectOperationStatusT;
+    }
+
+    public void setProjectOperationStatusT(String projectOperationStatusT) {
+        this.projectOperationStatusT = projectOperationStatusT;
+    }
+
+    public String getProjectOperationStatusF() {
+        return projectOperationStatusF;
+    }
+
+    public void setProjectOperationStatusF(String projectOperationStatusF) {
+        this.projectOperationStatusF = projectOperationStatusF;
+    }
+
+    public String getWhetherIsApprovalT() {
+        return whetherIsApprovalT;
+    }
+
+    public void setWhetherIsApprovalT(String whetherIsApprovalT) {
+        this.whetherIsApprovalT = whetherIsApprovalT;
+    }
+
+    public String getWhetherIsApprovalF() {
+        return whetherIsApprovalF;
+    }
+
+    public void setWhetherIsApprovalF(String whetherIsApprovalF) {
+        this.whetherIsApprovalF = whetherIsApprovalF;
+    }
+
+    public String getApprovedNotT() {
+        return approvedNotT;
+    }
+
+    public void setApprovedNotT(String approvedNotT) {
+        this.approvedNotT = approvedNotT;
+    }
+
+    public String getApprovedNotF() {
+        return approvedNotF;
+    }
+
+    public void setApprovedNotF(String approvedNotF) {
+        this.approvedNotF = approvedNotF;
+    }
+}

+ 33 - 0
src/main/java/com/jeeplus/modules/sg/progress/entity/ShowStatistics.java

@@ -0,0 +1,33 @@
+package com.jeeplus.modules.sg.progress.entity;
+
+import java.util.List;
+
+public class ShowStatistics {
+    private String projectYear;
+    private List<PlanningStatistics> planningStatistics;
+    private PlanningStatistics planningStatisticsYear;
+
+    public String getProjectYear() {
+        return projectYear;
+    }
+
+    public void setProjectYear(String projectYear) {
+        this.projectYear = projectYear;
+    }
+
+    public List<PlanningStatistics> getPlanningStatistics() {
+        return planningStatistics;
+    }
+
+    public void setPlanningStatistics(List<PlanningStatistics> planningStatistics) {
+        this.planningStatistics = planningStatistics;
+    }
+
+    public PlanningStatistics getPlanningStatisticsYear() {
+        return planningStatisticsYear;
+    }
+
+    public void setPlanningStatisticsYear(PlanningStatistics planningStatisticsYear) {
+        this.planningStatisticsYear = planningStatisticsYear;
+    }
+}

+ 36 - 14
src/main/java/com/jeeplus/modules/sg/progress/entity/YearProgress.java

@@ -42,6 +42,10 @@ public class YearProgress extends DataEntity<YearProgress> {
 	private String subcontractor;
 	//设计人员
 	private String designer;
+	//收到图纸
+	private String drawingReceived;
+	//交付图纸
+	private String deliveryOfDrawings;
 	//建设中存在的问题
 	private String problemsInConstruction;
 	//项目投运状态
@@ -58,7 +62,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 	private String whetherIsApproval;
 	//是否审定
 	private String approvedNot;
-	//是否审定
+	//是否开票
 	private String approvedNotNot;
 	//甲供材是否平
 	private String whetherFlat;
@@ -185,7 +189,25 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.designer = designer;
 	}
 
-	@ExcelField(title="建设中存在的问题", align=2, sort=13)
+	@ExcelField(title="收到图纸", align=2, sort=13)
+	public String getDrawingReceived() {
+		return drawingReceived;
+	}
+
+	public void setDrawingReceived(String drawingReceived) {
+		this.drawingReceived = drawingReceived;
+	}
+
+	@ExcelField(title="交付图纸", align=2, sort=14)
+	public String getDeliveryOfDrawings() {
+		return deliveryOfDrawings;
+	}
+
+	public void setDeliveryOfDrawings(String deliveryOfDrawings) {
+		this.deliveryOfDrawings = deliveryOfDrawings;
+	}
+
+	@ExcelField(title="建设中存在的问题", align=2, sort=15)
 	public String getProblemsInConstruction() {
 		return problemsInConstruction;
 	}
@@ -194,7 +216,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.problemsInConstruction = problemsInConstruction;
 	}
 
-	@ExcelField(title="项目投运状态", align=2, sort=14)
+	@ExcelField(title="项目投运状态", align=2, sort=16)
 	public String getProjectOperationStatus() {
 		return projectOperationStatus;
 	}
@@ -203,7 +225,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.projectOperationStatus = projectOperationStatus;
 	}
 
-	@ExcelField(title="项目投运时间", align=2, sort=15)
+	@ExcelField(title="项目投运时间", align=2, sort=17)
 	public String getProjectOperationTime() {
 		return projectOperationTime;
 	}
@@ -212,7 +234,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.projectOperationTime = projectOperationTime;
 	}
 
-	@ExcelField(title="设计费是否发生", align=2, sort=16)
+	@ExcelField(title="设计费是否发生", align=2, sort=18)
 	public String getIsTheDesign() {
 		return isTheDesign;
 	}
@@ -221,7 +243,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.isTheDesign = isTheDesign;
 	}
 
-	@ExcelField(title="监理费是否发生", align=2, sort=17)
+	@ExcelField(title="监理费是否发生", align=2, sort=19)
 	public String getIsTheSupervision() {
 		return isTheSupervision;
 	}
@@ -230,7 +252,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.isTheSupervision = isTheSupervision;
 	}
 
-	@ExcelField(title="施工费是否发生", align=2, sort=18)
+	@ExcelField(title="施工费是否发生", align=2, sort=20)
 	public String getWhetherIsIncurred() {
 		return whetherIsIncurred;
 	}
@@ -239,7 +261,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.whetherIsIncurred = whetherIsIncurred;
 	}
 
-	@ExcelField(title="施工单位是否送审", align=2, sort=19)
+	@ExcelField(title="施工单位是否送审", align=2, sort=21)
 	public String getWhetherIsApproval() {
 		return whetherIsApproval;
 	}
@@ -248,7 +270,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.whetherIsApproval = whetherIsApproval;
 	}
 
-	@ExcelField(title="是否审定", align=2, sort=20)
+	@ExcelField(title="是否审定", align=2, sort=22)
 	public String getApprovedNot() {
 		return approvedNot;
 	}
@@ -257,7 +279,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.approvedNot = approvedNot;
 	}
 
-	@ExcelField(title="是否审定", align=2, sort=21)
+	@ExcelField(title="是否审定", align=2, sort=23)
 	public String getApprovedNotNot() {
 		return approvedNotNot;
 	}
@@ -266,7 +288,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.approvedNotNot = approvedNotNot;
 	}
 
-	@ExcelField(title="甲供材是否平", align=2, sort=22)
+	@ExcelField(title="甲供材是否平", align=2, sort=24)
 	public String getWhetherFlat() {
 		return whetherFlat;
 	}
@@ -275,7 +297,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.whetherFlat = whetherFlat;
 	}
 
-	@ExcelField(title="财务决算批次", align=2, sort=23)
+	@ExcelField(title="财务决算批次", align=2, sort=25)
 	public String getSettlementBatch() {
 		return settlementBatch;
 	}
@@ -284,7 +306,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.settlementBatch = settlementBatch;
 	}
 
-	@ExcelField(title="项目关闭日期", align=2, sort=24)
+	@ExcelField(title="项目关闭日期", align=2, sort=26)
 	public String getProjectCloseDate() {
 		return projectCloseDate;
 	}
@@ -293,7 +315,7 @@ public class YearProgress extends DataEntity<YearProgress> {
 		this.projectCloseDate = projectCloseDate;
 	}
 
-	@ExcelField(title="资产卡片号", align=2, sort=25)
+	@ExcelField(title="资产卡片号", align=2, sort=27)
 	public String getAssetCardNo() {
 		return assetCardNo;
 	}

+ 12 - 0
src/main/java/com/jeeplus/modules/sg/progress/mapper/YearProgressMapper.java

@@ -5,6 +5,8 @@ package com.jeeplus.modules.sg.progress.mapper;
 
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.sg.progress.entity.PlanningStatistics;
+import com.jeeplus.modules.sg.progress.entity.ShowStatistics;
 import com.jeeplus.modules.sg.progress.entity.YearProgress;
 
 import java.util.List;
@@ -19,4 +21,14 @@ public interface YearProgressMapper extends BaseMapper<YearProgress> {
     void replaceAll(List<YearProgress> yearProgressList);
 
     List<String> findAllYear();
+
+    List<PlanningStatistics> findStatisticPage(PlanningStatistics planningStatistics);
+
+    List<PlanningStatistics> findYearStatistic();
+
+    List<ShowStatistics> showAllYear();
+
+    int update(YearProgress entity);
+
+    YearProgress getByName(String name);
 }

+ 48 - 0
src/main/java/com/jeeplus/modules/sg/progress/mapper/xml/YearProgressMapper.xml

@@ -15,6 +15,8 @@
 		a.constructionProjectManager,
 		a.subcontractor,
 		a.designer,
+        a.drawingReceived,
+        a.deliveryOfDrawings,
 		a.problemsInConstruction,
 		a.projectOperationStatus,
 		a.projectOperationTime,
@@ -34,6 +36,13 @@
         SELECT
         <include refid="progressColumns"/>
         FROM xm_year_progress a
+        WHERE a.id = #{id}
+    </select>
+
+    <select id="getByName" resultType="com.jeeplus.modules.sg.progress.entity.YearProgress">
+        SELECT
+        <include refid="progressColumns"/>
+        FROM xm_year_progress a
         WHERE a.projectName = #{projectName}
     </select>
 
@@ -71,10 +80,39 @@
 
     </select>
 
+    <select id="findStatisticPage" resultType="com.jeeplus.modules.sg.progress.entity.PlanningStatistics">
+        select
+            projectYear,
+            constructionUnit,
+            SUM(CASE WHEN projectOperationStatus='已竣工' THEN 1 ELSE 0 END) as projectOperationStatusT,
+            SUM(CASE WHEN projectOperationStatus='未竣工' THEN 1 ELSE 0 END) as projectOperationStatusF,
+            SUM(CASE WHEN whetherIsApproval='是' THEN 1 ELSE 0 END) as whetherIsApprovalT,
+            SUM(CASE WHEN whetherIsApproval='否' THEN 1 ELSE 0 END) as whetherIsApprovalF,
+            SUM(CASE WHEN approvedNot='是' THEN 1 ELSE 0 END) as approvedNotT,
+            SUM(CASE WHEN approvedNot='否' THEN 1 ELSE 0 END) as approvedNotF
+        from xm_year_progress GROUP BY projectYear,constructionUnit order by projectYear
+    </select>
+
+    <select id="findYearStatistic" resultType="com.jeeplus.modules.sg.progress.entity.PlanningStatistics">
+        select
+            projectYear,
+            SUM(CASE WHEN projectOperationStatus='已竣工' THEN 1 ELSE 0 END) as projectOperationStatusT,
+            SUM(CASE WHEN projectOperationStatus='未竣工' THEN 1 ELSE 0 END) as projectOperationStatusF,
+            SUM(CASE WHEN whetherIsApproval='是' THEN 1 ELSE 0 END) as whetherIsApprovalT,
+            SUM(CASE WHEN whetherIsApproval='否' THEN 1 ELSE 0 END) as whetherIsApprovalF,
+            SUM(CASE WHEN approvedNot='是' THEN 1 ELSE 0 END) as approvedNotT,
+            SUM(CASE WHEN approvedNot='否' THEN 1 ELSE 0 END) as approvedNotF
+        from xm_year_progress GROUP BY projectYear order by projectYear
+    </select>
+
     <select id="findAllYear" resultType="string">
         select distinct  projectYear from xm_year_progress ORDER BY projectYear;
     </select>
 
+    <select id="showAllYear" resultType="com.jeeplus.modules.sg.progress.entity.ShowStatistics">
+        select distinct  projectYear from xm_year_progress ORDER BY projectYear;
+    </select>
+
     <select id="findAllList" resultType="YearProgress">
         SELECT
         <include refid="progressColumns"/>
@@ -113,6 +151,8 @@
          constructionProjectManager,
          subcontractor,
          designer,
+         drawingReceived,
+         deliveryOfDrawings,
          problemsInConstruction,
          projectOperationStatus,
          projectOperationTime,
@@ -146,6 +186,8 @@
                 #{constructionProjectManager},
                 #{subcontractor},
                 #{designer},
+                #{drawingReceived},
+                #{deliveryOfDrawings},
                 #{problemsInConstruction},
                 #{projectOperationStatus},
                 #{projectOperationTime},
@@ -182,6 +224,8 @@
          constructionProjectManager,
          subcontractor,
          designer,
+         drawingReceived,
+         deliveryOfDrawings,
          problemsInConstruction,
          projectOperationStatus,
          projectOperationTime,
@@ -216,6 +260,8 @@
          #{item.constructionProjectManager},
          #{item.subcontractor},
          #{item.designer},
+         #{item.drawingReceived},
+         #{item.deliveryOfDrawings},
          #{item.problemsInConstruction},
          #{item.projectOperationStatus},
          #{item.projectOperationTime},
@@ -246,6 +292,8 @@
             constructionProjectManager = #{constructionProjectManager},
             subcontractor = #{subcontractor},
             designer = #{designer},
+            drawingReceived = #{drawingReceived},
+            deliveryOfDrawings = #{deliveryOfDrawings},
             problemsInConstruction = #{problemsInConstruction},
             projectOperationStatus = #{projectOperationStatus},
             projectOperationTime = #{projectOperationTime},

+ 30 - 1
src/main/java/com/jeeplus/modules/sg/progress/service/YearProgressService.java

@@ -5,6 +5,8 @@ package com.jeeplus.modules.sg.progress.service;
 
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.sg.progress.entity.PlanningStatistics;
+import com.jeeplus.modules.sg.progress.entity.ShowStatistics;
 import com.jeeplus.modules.sg.progress.entity.YearProgress;
 import com.jeeplus.modules.sg.progress.mapper.YearProgressMapper;
 import com.jeeplus.modules.test.treetable.dialog.entity.Car1;
@@ -39,5 +41,32 @@ public class YearProgressService extends CrudService<YearProgressMapper, YearPro
     public List<String> findAllYear() {
         return yearProgressMapper.findAllYear();
     }
-	
+
+    public Page<PlanningStatistics> findStatisticPage(Page<PlanningStatistics> page, PlanningStatistics planningStatistics) {
+        dataRuleFilter(planningStatistics);
+        planningStatistics.setPage(page);
+        page.setList(yearProgressMapper.findStatisticPage(planningStatistics));
+        return page;
+    }
+
+    public List<PlanningStatistics> findYearStatistic() {
+        return yearProgressMapper.findYearStatistic();
+    }
+
+    public List<ShowStatistics> showAllYear() {
+        return yearProgressMapper.showAllYear();
+    }
+
+    public  List<PlanningStatistics> findStatisticPage(PlanningStatistics planningStatistics) {
+        return yearProgressMapper.findStatisticPage(planningStatistics);
+    }
+
+    @Transactional(readOnly = false)
+    public int update(YearProgress entity) {
+        return yearProgressMapper.update(entity);
+    }
+
+    public YearProgress getByName(String name) {
+        return yearProgressMapper.getByName(name);
+    }
 }

+ 112 - 10
src/main/java/com/jeeplus/modules/sg/progress/web/YearProgressController.java

@@ -8,10 +8,14 @@ import com.google.common.collect.Maps;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.collection.CollectionUtil;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.sg.managementcenter.project.entity.ImportErp;
+import com.jeeplus.modules.sg.progress.entity.PlanningStatistics;
+import com.jeeplus.modules.sg.progress.entity.ShowStatistics;
 import com.jeeplus.modules.sg.progress.entity.YearProgress;
 import com.jeeplus.modules.sg.progress.service.YearProgressService;
 import com.jeeplus.modules.test.treetable.dialog.entity.CarKind1;
@@ -31,9 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.ConstraintViolationException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 车辆Controller
@@ -60,9 +62,7 @@ public class YearProgressController extends BaseController {
         return entity;
     }
 
-    /**
-     * 车辆列表页面
-     */
+
     @RequiresPermissions("test:progress:list")
     @RequestMapping(value = "list")
     public String list(YearProgress yearProgress, Model model) {
@@ -70,6 +70,77 @@ public class YearProgressController extends BaseController {
         return "modules/sg/progress/yearProgressList";
     }
 
+
+    @RequiresPermissions("test:progress:list")
+    @RequestMapping(value = "statisticsList")
+    public String statisticsList(YearProgress yearProgress, Model model, HttpServletRequest request, HttpServletResponse response, PlanningStatistics planningStatistics) {
+        model.addAttribute("yearProgress", yearProgress);
+        List<PlanningStatistics> yearStatistic = yearProgressService.findYearStatistic();
+        List<ShowStatistics> showStatistics = yearProgressService.showAllYear();
+        for (ShowStatistics s : showStatistics) {
+            String projectYear = s.getProjectYear();
+            for (PlanningStatistics p : yearStatistic) {
+                String projectYear1 = p.getProjectYear();
+                if (projectYear.equals(projectYear1)) {
+                    s.setPlanningStatisticsYear(p);
+                }
+            }
+        }
+        List<PlanningStatistics> statisticPage = yearProgressService.findStatisticPage(planningStatistics);
+        for (ShowStatistics s : showStatistics) {
+            String projectYear = s.getProjectYear();
+            List<PlanningStatistics> showList = new ArrayList<>();
+            for (PlanningStatistics p : statisticPage) {
+                String projectYear1 = p.getProjectYear();
+                if (projectYear.equals(projectYear1)) {
+                    showList.add(p);
+                }
+            }
+            s.setPlanningStatistics(showList);
+        }
+
+
+
+        model.addAttribute("PageList", showStatistics);
+        return "modules/sg/progress/statisticsList";
+    }
+
+    @ResponseBody
+    @RequiresPermissions("test:progress:list")
+    @RequestMapping(value = "statisticsData")
+    public Map<String, Object> statisticsData(PlanningStatistics planningStatistics, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<PlanningStatistics> page = yearProgressService.findStatisticPage(new Page<PlanningStatistics>(request, response), planningStatistics);
+/*
+        List<PlanningStatistics> list = page.getList();
+        HashMap<String, List<PlanningStatistics>> map = new HashMap<>();
+        for (PlanningStatistics y : list) {
+            if (map.containsKey(y.getProjectYear())) {
+                map.get(y.getProjectYear()).add(y);
+            } else {
+                List<PlanningStatistics> mapList = new ArrayList<>();
+                mapList.add(y);
+                map.put(y.getProjectYear(), mapList);
+            }
+        }
+        List<PlanningStatistics> yearStatistic = yearProgressService.findYearStatistic();
+        for (PlanningStatistics p : yearStatistic) {
+            p.setConstructionUnit("合计");
+            if (map.containsKey(p.getProjectYear())) {
+                map.get(p.getProjectYear()).add(p);
+            }
+        }
+        Iterator<Map.Entry<String, List<PlanningStatistics>>> iterator = map.entrySet().iterator();
+        List<PlanningStatistics> showList = new ArrayList<>();
+        while (iterator.hasNext()) {
+            Map.Entry<String, List<PlanningStatistics>> next = iterator.next();
+            List<PlanningStatistics> value = next.getValue();
+            showList.addAll(value);
+        }
+        page.setList(showList);*/
+        model.addAttribute("PageList", page.getList());
+        return getBootstrapData(page);
+    }
+
     /**
      * 车辆列表数据
      */
@@ -96,9 +167,14 @@ public class YearProgressController extends BaseController {
         return "modules/sg/progress/yearProgressForm";
     }
 
-    /**
-     * 保存车辆
-     */
+    @RequiresPermissions(value = {"test:progress:view", "test:progress:add", "test:progress:edit"}, logical = Logical.OR)
+    @RequestMapping(value = "edit")
+    public String edit(YearProgress yearProgress, Model model) {
+        model.addAttribute("yearProgress", yearProgress);
+        return "modules/sg/progress/yearProgressEdit";
+    }
+
+
     @ResponseBody
     @RequiresPermissions(value = {"test:progress:add", "test:progress:edit"}, logical = Logical.OR)
     @RequestMapping(value = "save")
@@ -114,7 +190,7 @@ public class YearProgressController extends BaseController {
             return j;
         }
         //新增或编辑表单保存
-        YearProgress yearProgress1 = yearProgressService.get(yearProgress);
+        YearProgress yearProgress1 = yearProgressService.getByName(yearProgress.getProjectName());
         if (yearProgress1 != null) {
             j.setSuccess(false);
             j.setMsg("项目已存在");
@@ -126,6 +202,32 @@ public class YearProgressController extends BaseController {
         return j;
     }
 
+    @ResponseBody
+    @RequiresPermissions(value = {"test:progress:add", "test:progress:edit"}, logical = Logical.OR)
+    @RequestMapping(value = "editSave")
+    public AjaxJson editSave(YearProgress yearProgress, Model model) throws Exception {
+        AjaxJson j = new AjaxJson();
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(yearProgress);
+        if (StringUtils.isNotBlank(errMsg)) {
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+        int update = yearProgressService.update(yearProgress);//保存
+        if (update > 0) {
+            j.setSuccess(true);
+            j.setMsg("项目信息修改成功");
+        } else {
+            j.setSuccess(true);
+            j.setMsg("项目信息修改失败");
+        }
+
+        return j;
+    }
+
     /**
      * 删除车辆
      */

+ 219 - 0
src/main/webapp/webpage/modules/sg/progress/statisticsList.js

@@ -0,0 +1,219 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#car1Table').bootstrapTable({
+		 
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	       		showSearch: false,
+               //显示刷新按钮
+               showRefresh: false,
+               //显示切换手机试图按钮
+               showToggle: false,
+               //显示 内容列下拉框
+    	       showColumns: false,
+    	       //显示到处按钮
+    	       showExport: false,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: false,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: false,
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 100,
+               //可供选择的每页的行数(*)    
+               pageList: [100, 200],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/sg/progress/statisticsData",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',   
+               ////查询参数,每次调用是会带上这个参数,可自定义                         
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        checkbox: true
+		       
+		    }
+			,{
+		        field: 'projectYear',
+		        title: '年度',
+					   width:100,
+
+				   }
+			,{
+		        field: 'constructionUnit',
+		        title: '施工单位',
+					   width:150,
+
+				   }
+			,{
+		        field: 'projectOperationStatusT',
+		        title: '项目已投运',
+					   width:150,
+
+				   }
+			   ,{
+				   field: 'projectOperationStatusF',
+				   title: '项目未投运',
+				   width:150,
+			   }
+			   ,{
+				   field: 'whetherIsApprovalT',
+				   title: '施工单位已送审',
+					   width:150,
+
+				   }
+			   ,{
+				   field: 'whetherIsApprovalF',
+				   title: '施工单位未送审',
+					   width:150,
+
+				   }
+			   ,{
+				   field: 'approvedNotT',
+				   title: '结算已审定',
+					   width:150,
+
+				   }
+			   ,{
+				   field: 'approvedNotF',
+				   title: '结算未审定',
+					   width:150,
+				   }
+		     ]
+		
+		});
+		
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#car1Table').bootstrapTable("toggleView");
+		}
+	  
+	  $('#car1Table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#car1Table').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#car1Table').bootstrapTable('getSelections').length!=1);
+        });
+		  
+		$("#btnImport").click(function(){
+			jp.open({
+			    type: 2,
+                area: [500, 150],
+                auto: true,
+			    title:"导入数据",
+			    content: "${ctx}/tag/importExcel" ,
+			    btn: ['下载模板','确定', '关闭'],
+				    btn1: function(index, layero){
+					  jp.downloadFile('${ctx}/sg/progress/template');
+				  },
+			    btn2: function(index, layero){
+				        var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+						iframeWin.contentWindow.importExcel('${ctx}/sg/progress/import', function (data) {
+							if(data.success){
+								jp.success(data.msg);
+								refresh();
+								$('#carKind1jsTree').jstree("refresh");
+							}else{
+								jp.error(data.msg);
+							}
+                            jp.close(index);
+                        });//调用保存事件
+                    return false;
+				  },
+				 
+				  btn3: function(index){ 
+					  jp.close(index);
+	    	       }
+			}); 
+		});
+		
+		
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/sg/progress/export');
+	  });
+
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#car1Table').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#car1Table').bootstrapTable('refresh');
+		});
+		
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#car1Table").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+  
+  function deleteAll(){
+
+		jp.confirm('确认要删除该建设进度吗?', function(){
+			jp.loading();  	
+			jp.get("${ctx}/sg/progress/deleteAll?ids=" + getIdSelections(), function(data){
+         	  		if(data.success){
+         	  			$('#car1Table').bootstrapTable('refresh');
+						$('#carKind1jsTree').jstree("refresh");
+         	  			jp.success(data.msg);
+         	  		}else{
+         	  			jp.error(data.msg);
+         	  		}
+         	  	})
+          	   
+		})
+  }
+    //刷新列表
+  function refresh(){
+  	$('#car1Table').bootstrapTable('refresh');
+  }
+  
+   function add(){
+	  jp.openSaveDialog('新增项目假设进度', "${ctx}/sg/progress/form",'800px', '500px');
+  }
+
+   function edit(id) {//没有权限时,不显示确定按钮
+	   if (id == undefined) {
+		   id = getIdSelections();
+	   }
+	   jp.openSaveDialog('编辑项目假设进度', "${ctx}/sg/progress/form?id=" + id, '800px', '500px');
+   }
+
+
+</script>

+ 86 - 0
src/main/webapp/webpage/modules/sg/progress/statisticsList.jsp

@@ -0,0 +1,86 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp" %>
+<html>
+<head>
+    <title>镇江本部历年项目建设进度统计表</title>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+    <meta name="decorator" content="ani"/>
+    <%@ include file="/webpage/include/bootstraptable.jsp" %>
+    <%@include file="/webpage/include/treeview.jsp" %>
+    <%@include file="statisticsList.js" %>
+    <style type="text/css">
+        td {
+            text-align: center;
+        }
+
+        table tr:nth-child(2n) {
+            background: #f0f0f0;
+        }
+
+        /*设置偶数行颜色*/
+        table tr:nth-child(2n+1) {
+            background: #ffffff;
+        }
+    </style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+    <div class="panel panel-primary">
+        <div class="panel-heading">
+            <h3 class="panel-title">镇江本部历年项目建设进度汇总表</h3>
+        </div>
+        <div class="panel-body">
+            <div class="row">
+                <%--                <div class="col-sm-8 col-md-9">
+                                    <!-- 表格 -->
+                                    <table id="car1Table" data-toolbar="#toolbar"
+                                           style="table-layout: fixed;word-break:break-all;"></table>
+                                </div>--%>
+                <div class="col-sm-8 col-md-9">
+                    <table width="100%" border="1">
+                        <tr>
+                            <td rowspan="2">年份</td>
+                            <td rowspan="2">施工单位</td>
+                            <td colspan="2">项目投运状态</td>
+                            <td colspan="2">施工单位送审状态</td>
+                            <td colspan="2">结算审定状态</td>
+                        </tr>
+                        <tr>
+                            <td>项目已投运</td>
+                            <td>项目未投运</td>
+                            <td>已送审</td>
+                            <td>未送审</td>
+                            <td>已审定</td>
+                            <td>未审定</td>
+                        </tr>
+                        <c:forEach items="${PageList}" var="items" varStatus="id">
+                            <c:forEach items="${items.planningStatistics}" var="itemss" varStatus="id">
+                                <tr>
+                                    <td>${itemss.projectYear}</td>
+                                    <td>${itemss.constructionUnit}</td>
+                                    <td>${itemss.projectOperationStatusT}</td>
+                                    <td>${itemss.projectOperationStatusF}</td>
+                                    <td>${itemss.whetherIsApprovalT}</td>
+                                    <td>${itemss.whetherIsApprovalF}</td>
+                                    <td>${itemss.approvedNotT}</td>
+                                    <td>${itemss.approvedNotF}</td>
+                                </tr>
+                            </c:forEach>
+                            <tr>
+                                <td colspan="2">合计</td>
+                                <td>${items.planningStatisticsYear.projectOperationStatusT}</td>
+                                <td>${items.planningStatisticsYear.projectOperationStatusF}</td>
+                                <td>${items.planningStatisticsYear.whetherIsApprovalT}</td>
+                                <td>${items.planningStatisticsYear.whetherIsApprovalF}</td>
+                                <td>${items.planningStatisticsYear.approvedNotT}</td>
+                                <td>${items.planningStatisticsYear.approvedNotF}</td>
+                            </tr>
+                        </c:forEach>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 162 - 0
src/main/webapp/webpage/modules/sg/progress/yearProgressEdit.jsp

@@ -0,0 +1,162 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp" %>
+<html>
+<head>
+    <title>年度项目建设进度统计管理</title>
+    <meta name="decorator" content="ani"/>
+    <script type="text/javascript">
+        $(document).ready(function () {
+
+        });
+
+        function save() {
+            var isValidate = jp.validateForm('#inputForm');//校验表单
+            if (!isValidate) {
+                return false;
+            } else {
+                jp.loading();
+                jp.post("${ctx}/sg/progress/editSave", $('#inputForm').serialize(), function (data) {
+                    if (data.success) {
+                        jp.getParent().refresh();
+                        var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+                        parent.layer.close(dialogIndex);
+                        jp.success(data.msg)
+                    } else {
+                        jp.error(data.msg);
+                    }
+                })
+            }
+
+        }
+    </script>
+</head>
+<body class="bg-white">
+<form:form id="inputForm" modelAttribute="yearProgress" class="form-horizontal">
+    <form:hidden path="id"/>
+    <table class="table table-bordered">
+        <tbody>
+        <tr>
+            <td class="width-15 active"><label class="">年度:</label></td>
+            <td class="width-35">
+                <form:input path="projectYear" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">项目定义号:</label></td>
+            <td class="width-35">
+                <form:input path="projectId" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">项目编号:</label></td>
+            <td class="width-35">
+                <form:input path="projectNO" htmlEscape="false" class="form-control"/>
+            </td>
+            <td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
+            <td class="width-35">
+                <form:input path="projectName" readonly="true" htmlEscape="false" class="form-control required"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">合同单位:</label></td>
+            <td class="width-35">
+                <form:input path="assignedUnit" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">费率:</label></td>
+            <td class="width-35">
+                <form:input path="rate" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">施工单位:</label></td>
+            <td class="width-35">
+                <form:input path="constructionUnit" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">业主项目经理:</label></td>
+            <td class="width-35">
+                <form:input path="ownerProjectManager" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">施工项目经理:</label></td>
+            <td class="width-35">
+                <form:input path="constructionProjectManager" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">分包单位:</label></td>
+            <td class="width-35">
+                <form:input path="subcontractor" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">设计人员:</label></td>
+            <td class="width-35">
+                <form:input path="designer" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">建设中存在的问题:</label></td>
+            <td class="width-35">
+                <form:input path="problemsInConstruction" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">项目投运状态:</label></td>
+            <td class="width-35">
+                <form:input path="projectOperationStatus" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">项目投运时间:</label></td>
+            <td class="width-35">
+                <form:input path="projectOperationTime" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">设计费是否发生:</label></td>
+            <td class="width-35">
+                <form:input path="isTheDesign" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">监理费是否发生:</label></td>
+            <td class="width-35">
+                <form:input path="isTheSupervision" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">施工费是否发生:</label></td>
+            <td class="width-35">
+                <form:input path="whetherIsIncurred" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">施工单位是否送审:</label></td>
+            <td class="width-35">
+                <form:input path="whetherIsApproval" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">是否审定:</label></td>
+            <td class="width-35">
+                <form:input path="approvedNot" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">是否审定:</label></td>
+            <td class="width-35">
+                <form:input path="approvedNotNot" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">甲供材是否平:</label></td>
+            <td class="width-35">
+                <form:input path="whetherFlat" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">财务决算批次:</label></td>
+            <td class="width-35">
+                <form:input path="settlementBatch" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        <tr>
+            <td class="width-15 active"><label class="">项目关闭日期:</label></td>
+            <td class="width-35">
+                <form:input path="projectCloseDate" htmlEscape="false" class="form-control "/>
+            </td>
+            <td class="width-15 active"><label class="">资产卡片号:</label></td>
+            <td class="width-35">
+                <form:input path="assetCardNo" htmlEscape="false" class="form-control"/>
+            </td>
+        </tr>
+        </tbody>
+    </table>
+</form:form>
+</body>
+</html>

+ 1 - 9
src/main/webapp/webpage/modules/sg/progress/yearProgressForm.jsp

@@ -52,15 +52,7 @@
             </td>
             <td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
             <td class="width-35">
-                <c:choose>
-                    <c:when test="${not empty yearProgress.projectName}">
-                        <form:input path="projectName" readonly="true" htmlEscape="false"
-                                    class="form-control required"/>
-                    </c:when>
-                    <c:otherwise>
-                        <form:input path="projectName" htmlEscape="false" class="form-control required"/>
-                    </c:otherwise>
-                </c:choose>
+                <form:input path="projectName" htmlEscape="false" class="form-control required"/>
             </td>
         </tr>
         <tr>

+ 19 - 4
src/main/webapp/webpage/modules/sg/progress/yearProgressList.js

@@ -33,9 +33,10 @@ $(document).ready(function() {
                //初始化加载第一页,默认第一页
                pageNumber:1,   
                //每页的记录行数(*)   
-               pageSize: 10,  
+               pageSize: 100,
+				height:$(window).height()-100,
                //可供选择的每页的行数(*)    
-               pageList: [10, 25, 50, 100],
+               pageList: [100, 200],
                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
                url: "${ctx}/sg/progress/data",
                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
@@ -127,6 +128,18 @@ $(document).ready(function() {
 					   width:150,
 
 				   }
+				   ,{
+					   field: 'drawingReceived',
+					   title: '收到图纸',
+					   width:150,
+
+				   }
+				   ,{
+					   field: 'deliveryOfDrawings',
+					   title: '交付图纸',
+					   width:150,
+
+				   }
 			   ,{
 				   field: 'problemsInConstruction',
 				   title: '建设中存在的问题',
@@ -177,7 +190,7 @@ $(document).ready(function() {
 				   }
 			   ,{
 				   field: 'approvedNotNot',
-				   title: '是否审定',
+				   title: '是否开票',
 					   width:150,
 
 				   }
@@ -239,6 +252,7 @@ $(document).ready(function() {
 							if(data.success){
 								jp.success(data.msg);
 								refresh();
+								$('#carKind1jsTree').jstree("refresh");
 							}else{
 								jp.error(data.msg);
 							}
@@ -286,6 +300,7 @@ $(document).ready(function() {
 			jp.get("${ctx}/sg/progress/deleteAll?ids=" + getIdSelections(), function(data){
          	  		if(data.success){
          	  			$('#car1Table').bootstrapTable('refresh');
+						$('#carKind1jsTree').jstree("refresh");
          	  			jp.success(data.msg);
          	  		}else{
          	  			jp.error(data.msg);
@@ -307,7 +322,7 @@ $(document).ready(function() {
 	   if (id == undefined) {
 		   id = getIdSelections();
 	   }
-	   jp.openSaveDialog('编辑项目假设进度', "${ctx}/sg/progress/form?id=" + id, '800px', '500px');
+	   jp.openSaveDialog('编辑项目假设进度', "${ctx}/sg/progress/edit?id=" + id, '800px', '500px');
    }
 
 

+ 4 - 5
src/main/webapp/webpage/modules/sg/progress/yearProgressList.jsp

@@ -28,25 +28,25 @@
                         <div class="accordion-inner">
                             <form:form id="searchForm" modelAttribute="yearProgress"
                                        class="form form-horizontal well clearfix">
-                                <div class="col-xs-12 col-sm-6 col-md-4">
+                                <div class="col-xs-12 col-sm-6 col-md-2">
                                     <div class="form-group">
                                         <label class="label-item  " title="项目定义号:">项目定义号:</label>
                                         <form:input path="projectId" htmlEscape="false" class=" form-control"/>
                                     </div>
                                 </div>
-                                <div class="col-xs-12 col-sm-6 col-md-4">
+                                <div class="col-xs-12 col-sm-6 col-md-2 " style="margin-left: 5px">
                                     <div class="form-group">
                                         <label class="label-item  " title="项目编号:">项目编号:</label>
                                         <form:input path="projectNO" htmlEscape="false" class=" form-control"/>
                                     </div>
                                 </div>
-                                <div class="col-xs-12 col-sm-6 col-md-4">
+                                <div class="col-xs-12 col-sm-6 col-md-2" style="margin-left: 5px">
                                     <div class="form-group">
                                         <label class="label-item  " title="项目名称:">项目名称:</label>
                                         <form:input path="projectName" htmlEscape="false" class=" form-control"/>
                                     </div>
                                 </div>
-                                <div class="col-xs-12 col-sm-6 col-md-4">
+                                <div class="col-xs-12 col-sm-6 col-md-2">
                                     <div style="margin-top:26px">
                                         <a id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i
                                                 class="fa fa-search"></i> 查询</a>
@@ -87,7 +87,6 @@
 
                     <!-- 表格 -->
                     <table id="car1Table" data-toolbar="#toolbar"  style="table-layout: fixed;word-break:break-all;"></table>
-
                 </div>
             </div>
         </div>