yue 5 년 전
부모
커밋
13916206fd
31개의 변경된 파일2205개의 추가작업 그리고 139개의 파일을 삭제
  1. 23 3
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 31 6
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 32 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java
  4. 8 2
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml
  5. 144 42
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java
  6. 180 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.js
  7. 69 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.jsp
  8. 158 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalMiddle.js
  9. 61 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalMiddle.jsp
  10. 202 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.js
  11. 69 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.jsp
  12. 0 1
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/managerWhether.jsp
  13. 14 49
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js
  14. 4 9
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp
  15. 2 8
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp
  16. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerMiddle.jsp
  17. 2 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.js
  18. 6 3
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.jsp
  19. 180 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js
  20. 69 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp
  21. 158 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerMiddle.js
  22. 61 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerMiddle.jsp
  23. 180 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.js
  24. 69 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.jsp
  25. 158 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalMiddle.js
  26. 61 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalMiddle.jsp
  27. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.js
  28. 3 9
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.jsp
  29. 195 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reviewNonPower.js
  30. 60 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reviewNonPower.jsp
  31. 2 2
      src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.jsp

+ 23 - 3
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -2784,7 +2784,7 @@ public class ActTaskService extends BaseService {
 	}
 
 	/**
-	 * 施工单位项目经理非涉电开工流程提交文件
+	 * 施工单位项目经理土建开工流程提交文件
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
@@ -2799,7 +2799,27 @@ public class ActTaskService extends BaseService {
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		//根据项目设置的流转人员,流转对应人员
-		vars.put("manager", user.getConstructionUnitManage());
+		vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理电气开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void electricalStartTask(Act act) {
+		// 设置意见
+		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		//根据项目设置的流转人员,流转对应人员
+		vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
@@ -2848,7 +2868,7 @@ public class ActTaskService extends BaseService {
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
-	public void nonPowerWhetherTask(Act act) {
+	public void reviewNonPower(Act act) {
 		String flag = act.getFlag();
 		// 设置意见
 		act.setComment(("yes".equals(flag)?"[同意] ":"[驳回] ")+act.getComment());

+ 31 - 6
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -1440,17 +1440,17 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
-	 * 施工单位项目经理非涉电开工流程提交文件
+	 * 施工单位项目经理土建开工流程提交文件
 	 * */
 	@ResponseBody
 	@RequestMapping(value = "nonPowerStartTask")
-	public AjaxJson nonPowerStartTask(Act act,String pic, UploadImages uploadImages) {
+	public AjaxJson nonPowerStartTask(Act act,String pic, String imgName,UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
 			if (pic!=null&&pic!="") {
 				uploadImages.setPath(pic);
 				uploadImages.setProcInsId(act.getProcInsId());
-				uploadImages.setImgName("上传非涉电开工流程");
+				uploadImages.setImgName(imgName);
 				uploadImages.setuId(UserUtils.getUser().getLoginName());
 				uploadImagesService.save(uploadImages);
 			}
@@ -1465,6 +1465,31 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
+	 * 施工单位项目经理电气开工流程提交文件
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "electricalStartTask")
+	public AjaxJson electricalStartTask(Act act,String pic, String imgName,UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName(imgName);
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.electricalStartTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
 	 * 施工单位项目经理非涉电施工中流程提交文件
 	 * */
 	@ResponseBody
@@ -1518,13 +1543,13 @@ public class ActTaskController extends BaseController {
 	 * 配网项目经理判断是否完成非涉电工作
 	 * */
 	@ResponseBody
-	@RequestMapping(value = "nonPowerWhetherTask")
-	public AjaxJson nonPowerWhetherTask(Act act) {
+	@RequestMapping(value = "reviewNonPower")
+	public AjaxJson reviewNonPower(Act act) {
 		AjaxJson j = new AjaxJson();
 		try {
 			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
 			act.setComment(comment);
-			actTaskService.nonPowerWhetherTask(act);
+			actTaskService.reviewNonPower(act);
 		} catch (UnsupportedEncodingException e) {
 			e.printStackTrace();
 		}

+ 32 - 1
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java

@@ -1,6 +1,8 @@
 package com.jeeplus.modules.sg.materialmodule.activiti.entity;
 
 import com.jeeplus.core.persistence.ActEntity;
+import io.swagger.models.auth.In;
+import sun.plugin.viewer.context.IExplorerAppletContext;
 
 import java.util.Date;
 
@@ -20,7 +22,12 @@ public class MaterialModule extends ActEntity<MaterialModule> {
     private String nowProjectName;
     //记录第几次发电
     private Integer frequency;
-
+    //记录项目是否包含土建
+    private Integer nonPower;
+    //记录项目是否包含电气
+    private Integer electrical;
+    //记录项目是否包含涉电
+    private Integer power;
 
     @Override
     public String getProcInsId() {
@@ -79,4 +86,28 @@ public class MaterialModule extends ActEntity<MaterialModule> {
     public void setFrequency(Integer frequency) {
         this.frequency = frequency;
     }
+
+    public Integer getNonPower() {
+        return nonPower;
+    }
+
+    public void setNonPower(Integer nonPower) {
+        this.nonPower = nonPower;
+    }
+
+    public Integer getElectrical() {
+        return electrical;
+    }
+
+    public void setElectrical(Integer electrical) {
+        this.electrical = electrical;
+    }
+
+    public Integer getPower() {
+        return power;
+    }
+
+    public void setPower(Integer power) {
+        this.power = power;
+    }
 }

+ 8 - 2
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml

@@ -57,7 +57,10 @@
 			project_id,
 			project_name,
 			project_type,
-			frequency
+			frequency,
+			nonPower,
+			electrical,
+			power
 		)values
 			(
 			#{id},
@@ -72,7 +75,10 @@
 			#{projectId},
 			#{projectName},
 			#{projectType},
-			#{frequency}
+			#{frequency},
+			#{nonPower},
+			#{electrical},
+			#{power}
 			)
 	</insert>
 

+ 144 - 42
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java

@@ -4,39 +4,21 @@ 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.excel.ExportExcel;
-import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
-import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
-import com.jeeplus.modules.sg.managementcenter.materialInventory.entity.MaterialInventory;
-import com.jeeplus.modules.sg.managementcenter.materialProvided.entity.MaterialProvided;
-import com.jeeplus.modules.sg.managementcenter.materialProvided.service.MaterialProvidedService;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
-import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
-import com.jeeplus.modules.sg.picking.activiti.entity.*;
-import com.jeeplus.modules.sg.picking.activiti.service.PickIngService;
-import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
-import com.jeeplus.modules.sys.entity.DictValue;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.activiti.engine.repository.ProcessDefinition;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.math.BigDecimal;
-import java.net.URLDecoder;
 import java.util.*;
 
 @Controller
@@ -59,7 +41,7 @@ public class MaterialModuleController extends BaseController {
     }
 
     /**
-     * 非涉电开工流程
+     * 土建开工流程
      */
     @RequestMapping(value = "nonPowerStart")
     public String nonPowerStart(MaterialModule materialModule, Model model) {
@@ -70,7 +52,7 @@ public class MaterialModuleController extends BaseController {
     }
 
     /**
-     * 非涉电施工中流程
+     * 土建施工中流程
      */
     @RequestMapping(value = "nonPowerMiddle")
     public String nonPowerMiddle(MaterialModule materialModule, Model model) {
@@ -81,7 +63,18 @@ public class MaterialModuleController extends BaseController {
     }
 
     /**
-     * 非涉电竣工流程
+     * 审核土建施工中流程
+     */
+    @RequestMapping(value = "nonRePowerMiddle")
+    public String nonRePowerMiddle(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/nonRePowerMiddle";
+    }
+
+    /**
+     * 土建竣工流程
      */
     @RequestMapping(value = "nonPowerEnd")
     public String nonPowerEnd(MaterialModule materialModule, Model model) {
@@ -92,14 +85,91 @@ public class MaterialModuleController extends BaseController {
     }
 
     /**
-     * 是否完成非涉电工作
+     * 审核土建竣工流程
+     */
+    @RequestMapping(value = "nonRePowerEnd")
+    public String nonRePowerEnd(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/nonRePowerEnd";
+    }
+
+    /**
+     * 经理审核土建
+     */
+    @RequestMapping(value = "reviewNonPower")
+    public String reviewNonPower(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/reviewNonPower";
+    }
+
+    /**
+     * 电气开工流程
+     */
+    @RequestMapping(value = "electricalStart")
+    public String electricalStart(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/electricalStart";
+    }
+
+    /**
+     * 电气施工流程
      */
-    @RequestMapping(value = "nonPowerWhether")
-    public String nonPowerWhether(MaterialModule materialModule, Model model) {
+    @RequestMapping(value = "electricalMiddle")
+    public String electricalMiddle(MaterialModule materialModule, Model model) {
         MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
         model.addAttribute("materialShow", materialShow);
         model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/nonPowerWhether";
+        return "modules/sg/materialmodule/activiti/electricalMiddle";
+    }
+
+    /**
+     * 审核电气施工
+     */
+    @RequestMapping(value = "reElectricalMiddle")
+    public String reElectricalMiddle(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/reElectricalMiddle";
+    }
+
+    /**
+     * 电气竣工流程
+     */
+    @RequestMapping(value = "electricalEnd")
+    public String electricalEnd(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/electricalEnd";
+    }
+
+    /**
+     * 审核电气竣工
+     */
+    @RequestMapping(value = "reElectricalEnd")
+    public String reElectricalEnd(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/reElectricalEnd";
+    }
+
+    /**
+     * 审核电气流程
+     */
+    @RequestMapping(value = "reviewElectrical")
+    public String reviewElectrical(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/reviewElectrical";
     }
 
     /**
@@ -125,6 +195,17 @@ public class MaterialModuleController extends BaseController {
     }
 
     /**
+     * 审核涉电竣工
+     */
+    @RequestMapping(value = "rePowerEnd")
+    public String rePowerEnd(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/rePowerEnd";
+    }
+
+    /**
      * 是否完成所有涉电工作
      */
     @RequestMapping(value = "PowerWhether")
@@ -169,32 +250,53 @@ public class MaterialModuleController extends BaseController {
             j.setMsg("请选择项目");
             return j;
         }
+
         /**
          * 流程审批
          */
         if (StringUtils.isBlank(materialModule.getId())) {
-            //保存
-            //修改项目的施工模块状态
-            materialModule.setUserName(UserUtils.getUser().getLoginName());
-            materialModule.setFrequency(1);
-            materialModuleService.save(materialModule);
-            // 启动流程
+            String projectType = materialModule.getProjectType();
+            String[] split = projectType.split("|");
             Map<String, Object> vars = Maps.newHashMap();
             Project userById = MyActiviUtils.findUserById(projectId);
-            vars.put("manager", userById.getConstructionUnitManage());
-            if ("contain".equals(flag)) {
+            vars.put("manager", UserUtils.getByUserName(userById.getConstructionUnitManage()).getLoginName());
+            //土建
+            vars.put("contain", false);
+            //电气
+            vars.put("electrical", false);
+            //涉电
+            vars.put("notContain", false);
+            boolean contain = false;
+            boolean electrical = false;
+            boolean notContain = false;
+            for (int i = 0; i < split.length; i++) {
+                if ("1".equals(split[i])) {
+                    materialModule.setNonPower(1);
+                    contain = true;
+                }
+                if ("2".equals(split[i])) {
+                    materialModule.setElectrical(1);
+                    electrical = true;
+                }
+                if ("3".equals(split[i])) {
+                    materialModule.setPower(1);
+                    notContain = true;
+                }
+            }
+            if (contain == true) {
                 vars.put("contain", true);
-                vars.put("notContain", false);
-                vars.put("no", false);
-            } else if ("notContain".equals(flag)) {
-                vars.put("contain", false);
+            }
+            if (electrical == true) {
+                vars.put("electrical", true);
+            }
+            if (notContain == true && contain == false && electrical == false) {
                 vars.put("notContain", true);
-                vars.put("no", false);
-            } else {
-                vars.put("contain", false);
-                vars.put("notContain", false);
-                vars.put("no", true);
             }
+            //修改项目的施工模块状态
+            materialModule.setUserName(UserUtils.getUser().getName());
+            materialModule.setFrequency(1);
+            materialModuleService.save(materialModule);
+            // 启动流程
             ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
             String title = materialModule.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
             actTaskService.startProcess(p.getKey(), "sg_construction_process", materialModule.getId(), title, vars);

+ 180 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.js

@@ -0,0 +1,180 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该图片管理记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/test/pic/testPic/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#testPicTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerEndTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

+ 69 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.jsp

@@ -0,0 +1,69 @@
+<%@ 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="electricalEnd.js"%>
+	<script type="text/javascript">
+		$(document).ready(function() {
+
+		});
+	</script>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 158 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalMiddle.js

@@ -0,0 +1,158 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerMiddleTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+</script>

+ 61 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalMiddle.jsp

@@ -0,0 +1,61 @@
+<%@ 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="electricalMiddle.js"%>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 202 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.js

@@ -0,0 +1,202 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该图片管理记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/test/pic/testPic/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#testPicTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [/*{
+				   field: 'uId',
+				   title: '标题',
+				   sortable: true,
+				   sortName: 'uId'
+				   ,formatter:function(value, row , index){
+					   value = jp.unescapeHTML(value);
+				   <c:choose>
+					   <c:when test="${fns:hasPermission('test:pic:testPic:edit')}">
+					   return "<a href='javascript:edit(\""+row.id+"\")'>"+value+"</a>";
+				   </c:when>
+					   <c:when test="${fns:hasPermission('test:pic:testPic:view')}">
+					   return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
+				   </c:when>
+					   <c:otherwise>
+					   return value;
+				   </c:otherwise>
+					   </c:choose>
+				   }
+
+			   },*/{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		var imgName = $("#imgName").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/electricalStartTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"imgName":imgName,
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

+ 69 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.jsp

@@ -0,0 +1,69 @@
+<%@ 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="electricalStart.js"%>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
+						<td class="width-35">项目类型:${materialShow.projectType}</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 0 - 1
src/main/webapp/webpage/modules/sg/materialmodule/activiti/managerWhether.jsp

@@ -31,7 +31,6 @@
 					<tbody>
 						<tr>
 							<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
-							<td class="width-35">项目类型:${materialShow.projectType}</td>
 						</tr>
 					</tbody>
 				</table>

+ 14 - 49
src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js

@@ -16,17 +16,22 @@
 
 		//包含非涉电项目,需填写项目类型
 		$("#contain").click(function () {
-			var projectType = $("#projectType").val();
+			var name= "";
+			$("input:checkbox[name='projectType']:checked").each(function () {
+				name+= $(this).val() + "|";
+			});
 			var procDefId = $("#procDefId").val();
 			var projectId = $("#projectId").val();
 			var projectName = $("#projectName").val();
-			console.log(projectType)
-			if (projectType == "") {
-				jp.error("请正确填写项目类型");
-			} else {
-				jp.post("${ctx}/materialmodule/activiti/containSave",
+			if (projectName == "") {
+				jp.error("请选择项目");
+			}else {
+				if (name == "") {
+					jp.error("请选择项目类型");
+				} else {
+					jp.post("${ctx}/materialmodule/activiti/containSave",
 					{
-						"projectType": projectType,
+						"projectType": name,
 						"projectId": projectId,
 						"projectName":projectName,
 						"procDefId":procDefId,
@@ -39,51 +44,11 @@
 						} else {
 							jp.error(data.msg);
 						}
-					})
+					});
+				}
 			}
 		});
 
-		$("#notContain").click(function () {
-			var projectId = $("#projectId").val();
-			var projectName = $("#projectName").val();
-			var procDefId = $("#procDefId").val();
-			jp.post("${ctx}/materialmodule/activiti/containSave",
-			{
-				"projectId": projectId,
-				"projectName":projectName,
-				"procDefId":procDefId,
-				"flag":"notContain",
-			},
-			function (data) {
-				if(data.success){
-					jp.success(data.msg);
-					jp.go("${ctx}/act/task/todo")
-				} else {
-					jp.error(data.msg);
-				}
-			})
-		})
-
-		$("#no").click(function () {
-			var projectId = $("#projectId").val();
-			var projectName = $("#projectName").val();
-			var procDefId = $("#procDefId").val();
-			jp.post("${ctx}/materialmodule/activiti/containSave",
-			{
-				"projectId": projectId,
-				"projectName":projectName,
-				"procDefId":procDefId,
-				"flag":"no",
-			},
-			function (data) {
-				if(data.success){
-					jp.success(data.msg);
-					jp.go("${ctx}/act/task/todo")
-				} else {
-					jp.error(data.msg);
-				}
-			})
-		})
 
 		$('#acceptDate').datetimepicker({
 			format: "YYYY-MM-DD HH:mm:ss"

+ 4 - 9
src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp

@@ -32,16 +32,13 @@
 								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
 								<td class="width-35">
 									<sys:itemselect url="${ctx}/sg/managementcenter/project/materialDataPicking" id="project" name="projectId" value="${showList.projectName}" labelName="project.requireName" labelValue="${showList.projectName}"
-													title="选择项目号" cssClass="form-control " fieldLabels="${fns:urlEncode('项目需求名称|工程编号|项目名称|项目定义号')}" fieldKeys="requireName|projecId|projectName|projectNumber" searchLabels="${fns:urlEncode('项目需求名称')}" searchKeys="requireName"  isMultiSelected="false"></sys:itemselect>
+													title="选择项目号" cssClass="form-control required" fieldLabels="${fns:urlEncode('项目需求名称|工程编号|项目名称|项目定义号')}" fieldKeys="requireName|projecId|projectName|projectNumber" searchLabels="${fns:urlEncode('项目需求名称')}" searchKeys="requireName"  isMultiSelected="false"></sys:itemselect>
 								</td>
 							</tr>
 							<tr>
-								<td class="width-15 active"><label class="pull-right">填写项目类型:</label></td>
+								<td class="width-15 active"><label class="pull-right">选择项目类型:</label></td>
 								<td>
-								<form:select path="projectType"  class="form-control m-b">
-									<form:option value="" label=""/>
-									<form:options items="${fns:getDictList('sg_electricity_involved')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-								</form:select>
+									<form:checkboxes class="i-checks form-control required" path="projectType" items="${fns:getDictList('sg_electricity_involved')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 								</td>
 <%--								<td class="width-35"><input class="form-control" type="text" id="projectType"/></td>--%>
 							</tr>
@@ -53,9 +50,7 @@
 						<div class="col-sm-3"></div>
 						<div class="col-sm-6">
 							<div class="form-group text-center">
-								<input id="contain" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="包含非涉电工作" />&nbsp;
-								<input id="notContain" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="不包含非涉电工作,包含涉电工作" />&nbsp;
-								<input id="no" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="不包含非涉电工作,不包含涉电工作" />
+								<input id="contain" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
 							</div>
 						</div>
 					</div>

+ 2 - 8
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp

@@ -2,23 +2,18 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>非涉电竣工流程</title>
+	<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="nonPowerEnd.js"%>
-	<script type="text/javascript">
-		$(document).ready(function() {
-
-		});
-	</script>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">非涉电竣工流程</h3>
+		<h3 class="panel-title">土建竣工流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->
@@ -36,7 +31,6 @@
 					<tbody>
 					<tr>
 						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
-						<td class="width-35">项目类型:${materialShow.projectType}</td>
 					</tr>
 					<tr>
 						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>

+ 2 - 2
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerMiddle.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>非涉电施工中流程</title>
+	<title>土建施工中流程</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">非涉电施工中流程</h3>
+		<h3 class="panel-title">土建施工中流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->

+ 2 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.js

@@ -159,6 +159,7 @@ $(document).ready(function() {
 
 	$("#agree").click(function () {
 		var currentFileValues = $("input[name='pic']").val();
+		var imgName = $("#imgName").val();
 		if (currentFileValues == "" || currentFileValues == null) {
 			jp.error("请上传文件");
 		} else {
@@ -170,6 +171,7 @@ $(document).ready(function() {
 						"taskDefKey":"${materialModule.act.taskDefKey}",
 						"procInsId":"${materialModule.act.procInsId}",
 						"procDefId":"${materialModule.act.procDefId}",
+						"imgName":imgName,
 						"flag":"yes",
 						"pic":currentFileValues,
 						"comment":window.encodeURI(message)

+ 6 - 3
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>非涉电开工流程</title>
+	<title>土建开工流程</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">非涉电开工流程</h3>
+		<h3 class="panel-title">土建开工流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->
@@ -31,13 +31,16 @@
 					<tbody>
 					<tr>
 						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
-						<td class="width-35">项目类型:${materialShow.projectType}</td>
 					</tr>
 					<tr>
 						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
 						<td class="width-35">
 							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
 					</tr>
 					</tbody>
 				</table>

+ 180 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js

@@ -0,0 +1,180 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该图片管理记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/test/pic/testPic/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#testPicTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerEndTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

+ 69 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp

@@ -0,0 +1,69 @@
+<%@ 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="nonRePowerEnd.js"%>
+	<script type="text/javascript">
+		$(document).ready(function() {
+
+		});
+	</script>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 158 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerMiddle.js

@@ -0,0 +1,158 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerMiddleTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+</script>

+ 61 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerMiddle.jsp

@@ -0,0 +1,61 @@
+<%@ 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="nonRePowerMiddle.js"%>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 180 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.js

@@ -0,0 +1,180 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该图片管理记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/test/pic/testPic/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#testPicTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerEndTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

+ 69 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.jsp

@@ -0,0 +1,69 @@
+<%@ 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="reElectricalEnd.js"%>
+	<script type="text/javascript">
+		$(document).ready(function() {
+
+		});
+	</script>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 158 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalMiddle.js

@@ -0,0 +1,158 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerMiddleTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+</script>

+ 61 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalMiddle.jsp

@@ -0,0 +1,61 @@
+<%@ 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="nonRePowerMiddle.js"%>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 2 - 2
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.js

@@ -139,7 +139,7 @@ $(document).ready(function() {
 
 		$("#agree").click(function () {
 			jp.prompt("审核意见", function (message) {
-				jp.post("${ctx}/act/task/nonPowerWhetherTask",
+				jp.post("${ctx}/act/task/reviewNonPower",
 					{
 						"taskId":"${materialModule.act.taskId}",
 						"taskName":"${materialModule.act.taskName}",
@@ -160,7 +160,7 @@ $(document).ready(function() {
 
 	$("#no").click(function () {
 		jp.prompt("审核意见", function (message) {
-			jp.post("${ctx}/act/task/nonPowerWhetherTask",
+			jp.post("${ctx}/act/task/reviewNonPower",
 				{
 					"taskId":"${materialModule.act.taskId}",
 					"taskName":"${materialModule.act.taskName}",

+ 3 - 9
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.jsp

@@ -2,24 +2,18 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>是否完成非涉电工作</title>
+	<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="nonPowerWhether.js"%>
-	<script type="text/javascript">
-
-		$(document).ready(function() {
-
-		});
-	</script>
+	<%@include file="reviewNonPower.js"%>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">是否完成非涉电工作</h3>
+		<h3 class="panel-title">审核电气流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->

+ 195 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reviewNonPower.js

@@ -0,0 +1,195 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	// alert(procInsId);
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,   
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               //默认值为 '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',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该图片管理记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/test/pic/testPic/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#testPicTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uId',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uId',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+		$("#agree").click(function () {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/reviewNonPower",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"flag":"yes",
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		});
+
+	$("#no").click(function () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/reviewNonPower",
+				{
+					"taskId":"${materialModule.act.taskId}",
+					"taskName":"${materialModule.act.taskName}",
+					"taskDefKey":"${materialModule.act.taskDefKey}",
+					"procInsId":"${materialModule.act.procInsId}",
+					"procDefId":"${materialModule.act.procDefId}",
+					"flag":"no",
+					"comment":window.encodeURI(message)
+				},
+				function (data) {
+					if(data.success){
+						jp.success(data.msg);
+						jp.go("${ctx}/act/task/todo")
+					}
+				})
+		});
+	});
+	});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

+ 60 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reviewNonPower.jsp

@@ -0,0 +1,60 @@
+<%@ 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="reviewNonPower.js"%>
+</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">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+						<tr>
+							<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
+							<td class="width-35">项目类型:${materialShow.projectType}</td>
+						</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="完成非涉电工作" />&nbsp;
+						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="未完成非涉电工作" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 2 - 2
src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.jsp

@@ -50,7 +50,7 @@
 				<table class="table table-view">
 					<tbody>
 					<h3>项目:${projectNumber.requireName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
-					<c:forEach items="#{pickListList}" var="items" varStatus="status">
+					<c:forEach items="${pickListList}" var="items" varStatus="status">
 						<c:if test="${status.count eq 1 || (status.count-1) % 1 eq 0}">
 						<tr>
 						</c:if>
@@ -59,7 +59,7 @@
 						</tr>
 						</c:if>
 
-						<c:forEach items="#{items.mdTheClassList}" var="items" varStatus="status">
+						<c:forEach items="${items.mdTheClassList}" var="items" varStatus="status">
 							<c:if test="${status.count eq 1 || (status.count-1) % 1 eq 0}">
 								<tr>
 							</c:if>