Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

xs 5 лет назад
Родитель
Сommit
43f4de2723
38 измененных файлов с 2709 добавлено и 81 удалено
  1. 195 0
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 179 0
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 3 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/UploadImagesMapper.java
  4. 4 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/UploadImagesMapper.xml
  5. 9 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/UploadImagesService.java
  6. 19 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyActiviUtils.java
  7. 21 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/UploadController.java
  8. 4 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/ProjectMapper.java
  9. 55 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml
  10. 9 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java
  11. 2 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java
  12. 3 3
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java
  13. 3 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java
  14. 37 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml
  15. 2 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java
  16. 81 54
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java
  17. 10 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/ShowList.java
  18. 3 1
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/PickIngMapper.xml
  19. 1 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml
  20. 181 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js
  21. 65 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp
  22. 179 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.js
  23. 71 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.jsp
  24. 216 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.js
  25. 66 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.jsp
  26. 195 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/managerWhether.js
  27. 60 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/managerWhether.jsp
  28. 33 15
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js
  29. 2 1
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp
  30. 180 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.js
  31. 70 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp
  32. 158 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerMiddle.js
  33. 61 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerMiddle.jsp
  34. 200 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.js
  35. 65 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.jsp
  36. 195 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.js
  37. 66 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.jsp
  38. 6 2
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.js

+ 195 - 0
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -2739,4 +2739,199 @@ public class ActTaskService extends BaseService {
 //		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
+
+	/**
+	 * 施工单位项目经理非涉电开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void nonPowerStartTask(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", user.getConstructionUnitManage());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理非涉电开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void nonPowerMiddleTask(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", user.getConstructionUnitManage());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理非涉电开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void nonPowerEndTask(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", user.getProjectManageRole());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 配网项目经理判断是否完成非涉电工作
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void nonPowerWhetherTask(Act act) {
+		String flag = act.getFlag();
+		// 设置意见
+		act.setComment(("yes".equals(flag)?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", user.getConstructionUnitManage());
+			vars.put("yes", true);
+			vars.put("no", false);
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", user.getConstructionUnitManage());
+			vars.put("yes", false);
+			vars.put("no", true);
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理判断是否包含涉电工作
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void managerWhetherTask(Act act) {
+		String flag = act.getFlag();
+		// 设置意见
+		act.setComment(("yes".equals(flag)?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", user.getConstructionUnitManage());
+			vars.put("yes", true);
+			vars.put("no", false);
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("yes", false);
+			vars.put("no", true);
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理 涉电开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void PowerStartTask(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", user.getConstructionUnitManage());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理 涉电开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void PowerEndTask(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", user.getProjectManageRole());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 配网项目经理判断涉电工作
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void PowerWhetherTask(Act act) {
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		String flag = act.getFlag();
+		if ("finish".equals(flag)) {
+			act.setComment("[无二次涉电]"+act.getComment());
+			vars.put("finish", true);
+			vars.put("second", false);
+			vars.put("no", false);
+		} else if ("second".equals(flag)) {
+			act.setComment("[纯在二次涉电]"+act.getComment());
+			vars.put("finish", false);
+			vars.put("second", true);
+			vars.put("no", false);
+			vars.put("manager", user.getConstructionUnitManage());
+		} else {
+			act.setComment("[审核不通过]"+act.getComment());
+			vars.put("finish", false);
+			vars.put("second", false);
+			vars.put("no", true);
+			vars.put("manager", user.getConstructionUnitManage());
+		}
+		// 设置意见
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
 }

+ 179 - 0
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -1429,4 +1429,183 @@ public class ActTaskController extends BaseController {
 		j.setMsg("审批成功");
 		return j;
 	}
+
+	/**
+	 * 施工单位项目经理非涉电开工流程提交文件
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "nonPowerStartTask")
+	public AjaxJson nonPowerStartTask(Act act,String pic, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName("上传非涉电开工流程");
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.nonPowerStartTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 施工单位项目经理非涉电施工中流程提交文件
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "nonPowerMiddleTask")
+	public AjaxJson nonPowerMiddleTask(Act act,String pic, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName("上传非涉电施工中流程");
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.nonPowerMiddleTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 施工单位项目经理非涉电竣工流程提交文件
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "nonPowerEndTask")
+	public AjaxJson nonPowerEndTask(Act act,String pic, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName("上传非涉电竣工流程");
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.nonPowerEndTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 配网项目经理判断是否完成非涉电工作
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "nonPowerWhetherTask")
+	public AjaxJson nonPowerWhetherTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.nonPowerWhetherTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 施工单位项目经理判断是否包含涉电工作
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "managerWhetherTask")
+	public AjaxJson managerWhetherTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.managerWhetherTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 施工单位项目经理上传涉电项目开工流程工作
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "PowerStartTask")
+	public AjaxJson PowerStartTask(Act act,String pic, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName("上传涉电开工流程");
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.PowerStartTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 施工单位项目经理上传涉电项目竣工流程工作
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "PowerEndTask")
+	public AjaxJson PowerEndTask(Act act,String pic, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName("上传涉电竣工流程");
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.PowerEndTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 配网项目经理判断涉电工作
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "PowerWhetherTask")
+	public AjaxJson PowerWhetherTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.PowerWhetherTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
 }

+ 3 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/UploadImagesMapper.java

@@ -7,6 +7,8 @@ import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages;
 
+import java.util.List;
+
 /**
  * 施工交底MAPPER接口
  * @author
@@ -15,5 +17,5 @@ import com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages;
 
 @MyBatisMapper
 public interface UploadImagesMapper extends BaseMapper<UploadImages> {
-    
+    List<UploadImages> findMaterialImg(UploadImages entity);
 }

+ 4 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/UploadImagesMapper.xml

@@ -47,6 +47,10 @@
 			</otherwise>
 		</choose>
 	</select>
+
+	<select id="findMaterialImg" resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages">
+		select imgName,path,proc_ins_id,uId from xm_upolad_images where proc_ins_id = #{procInsId}
+	</select>
 	
 	<select id="findAllList" resultType="UploadImages" >
 		SELECT *

+ 9 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/UploadImagesService.java

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.modules.sg.managementcenter.activiti.service;
 
+import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.PersonnelManagement;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages;
@@ -57,4 +58,12 @@ public class UploadImagesService extends CrudService<UploadImagesMapper, UploadI
 		entity.preInsert();
 		uploadImagesMapper.insert(entity);
 	}
+
+	public Page<UploadImages> findMaterialImg(Page<UploadImages> page, UploadImages entity) {
+		dataRuleFilter(entity);
+		entity.setPage(page);
+		page.setList(mapper.findMaterialImg(entity));
+		return page;
+	}
+
 }

+ 19 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyActiviUtils.java

@@ -243,6 +243,22 @@ public class MyActiviUtils {
     }
 
     /**
+     * 施工流程根据项目名称查询人员
+     * */
+    public static Project sgFindUser(String procInsId){
+        Project user = projectService.sgFindUser(procInsId);
+        return user;
+    }
+
+    /**
+     * 根据项目id称查询人员
+     * */
+    public static Project findUserById(String projectId){
+        Project user = projectService.findUserById(projectId);
+        return user;
+    }
+
+    /**
      * 查询项目现在配置模块版本号
      * */
     public static DictValue findDic(){
@@ -296,6 +312,7 @@ public class MyActiviUtils {
                         newShowList.setMdTheParty(showList1.getMdTheParty());
                         newShowList.setMdText(showList1.getMdText());
                         newShowList.setMdTotalAmount(v);
+                        newShowList.setMdTotalAmountAfter(v);
                         newShowList.setMdSingleWeight(showList1.getMdSingleWeight());
                         BigDecimal b = new BigDecimal(i);
                         BigDecimal a = new BigDecimal(1000);
@@ -322,6 +339,7 @@ public class MyActiviUtils {
                         BigDecimal a2 = new BigDecimal(Double.toString(mdTotalWeight1));
                         double  b=  a1.add(a2).doubleValue();
                         list1.setMdTotalAmount(v);
+                        list1.setMdTotalAmountAfter(v);
                         list1.setMdTotalWeight(b);
                         flag = false;
                         break;
@@ -336,6 +354,7 @@ public class MyActiviUtils {
                     showList.setMdTheParty(turn.getMdTheParty());
                     showList.setMdText(turn.getMdText());
                     showList.setMdTotalAmount(turn.getMdTotalAmount());
+                    showList.setMdTotalAmountAfter(turn.getMdTotalAmountAfter());
                     showList.setMdSingleWeight(turn.getMdSingleWeight());
                     showList.setMdTotalWeight(turn.getMdTotalWeight());
                     showList.setBlockId(turn.getBlockId());

+ 21 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/UploadController.java

@@ -210,6 +210,27 @@ public class UploadController extends BaseController {
 	}
 
 	/**
+	 * 文件管理列表数据
+	 */
+	@ResponseBody
+	@RequestMapping(value = "materialUploadData")
+	public Map<String, Object> materialUploadData(UploadImages uploadImages, HttpServletRequest request, HttpServletResponse response, Model model,String procInsId) {
+		if (procInsId!=null&&procInsId!="") {
+			uploadImages.setProcInsId(procInsId);
+		}
+		Page<UploadImages> page = uploadImagesService.findMaterialImg(new Page<UploadImages>(request, response), uploadImages);
+		//当判定系统为linux的时候
+		if (Global.SYS_TYPE.equals("2")) {
+			List<UploadImages> list = page.getList();
+			for (UploadImages upload:
+					list) {
+				upload.setPath("http://" + request.getServerName()  +upload.getPath());
+			}
+		}
+		return getBootstrapData(page);
+	}
+
+	/**
 	 * 保存图片管理
 	 */
 	@ResponseBody

+ 4 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/ProjectMapper.java

@@ -34,6 +34,10 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     Project findUser(String procInsId);
 
+    Project sgFindUser(String procInsId);
+
+    Project findUserById(String projectId);
+
     Integer updatePreConstruction(Project project);
 
     //查找项目信息

+ 55 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml

@@ -98,15 +98,20 @@
 			<if test="id != null and  id != ''">
 				AND a.id = #{id}
 			</if>
-
+			<if test="acquisitionStatus != null and  acquisitionStatus != ''">
+				AND a.acquisition_status = #{acquisitionStatus}
+			</if>
 			<if test="constructionUnitRole != null and  constructionUnitRole != ''">
 				AND a.construction_unit_role = #{constructionUnitRole}
 			</if>
+			<if test="constructionStatus != null and  constructionStatus != ''">
+				AND a.construction_status  = #{constructionStatus}
+			</if>
 			<if test="earlyMaterial != null">
 				or a.earlyMaterial = #{earlyMaterial}
 			</if>
 			<if test="preConstruction != null">
-				and a.preConstruction = #{preConstruction}
+				OR a.preConstruction = #{preConstruction}
 			</if>
 			<if test="projectId != null and  projectId != ''">
 				and a.project_id = #{projectId}
@@ -587,6 +592,54 @@
 		WHERE require_name = (select project_name from xm_construction_clarificaiton where proc_ins_id=#{procInsId});
 	</select>
 
+	<select id="sgFindUser"  resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+		select
+			demand_unit
+			,project_manage_role
+			,distribution_engineering
+			,distribution_materials
+			,distribution_system
+			,distribution_policy
+			,management_leader
+			,run_unit
+			,run_unit_role
+			,through_research_role
+			,construction_unit
+			,construction_unit_role
+			,construction_unit_manage
+			,construction_unit_leader
+			,design_unit
+			,design_unit_manage
+			,design_unit_leader
+		FROM xm_project_details
+		WHERE require_name = (select project_name from sg_construction_process where proc_ins_id=#{procInsId});
+	</select>
+
+	<select id="findUserById"  resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+		select
+			project_name
+			,demand_unit
+			,project_manage_role
+			,distribution_engineering
+			,distribution_materials
+			,distribution_system
+			,distribution_policy
+			,management_leader
+			,run_unit
+			,run_unit_role
+			,through_research_role
+			,construction_unit
+			,construction_unit_role
+			,construction_unit_manage
+			,construction_unit_leader
+			,design_unit
+			,design_unit_manage
+			,design_unit_leader
+		FROM xm_project_details
+		WHERE id = #{projectId}
+	</select>
+
+
 	<select id="findListProjectRequisitions" parameterType="java.util.List" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
 		select
 		<include refid="projectColumns"/>

+ 9 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java

@@ -298,6 +298,15 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		return projectMapper.findUser(procInsId);
 	}
 
+	public Project sgFindUser(String procInsId) {
+		return projectMapper.sgFindUser(procInsId);
+	}
+
+	//根据项目id称查询人员
+	public Project findUserById(String projectId) {
+		return projectMapper.findUserById(projectId);
+	}
+
 	//修改提前施工状态0-未提前施工 2-提前施工
 	public void updatePreConstruction(Project project){
 		projectMapper.updatePreConstruction(project);

+ 2 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java

@@ -156,6 +156,8 @@ public class ProjectController extends BaseController {
 		project.setAcquisitionStatus("2");
 		//运行提前施工
 		project.setPreConstruction(1);
+		//未进行施工流程
+		project.setConstructionStatus("0");
 		Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
 		return getBootstrapData(page);
 	}

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

@@ -15,7 +15,7 @@ public class MaterialModule extends ActEntity<MaterialModule> {
     // 项目名称
     private String projectName;
     // 手动填写的项目类型,包含非涉电项目才会有项目类型
-    private Date projectType;
+    private String projectType;
 
     @Override
     public String getProcInsId() {
@@ -51,11 +51,11 @@ public class MaterialModule extends ActEntity<MaterialModule> {
         this.projectName = projectName;
     }
 
-    public Date getProjectType() {
+    public String getProjectType() {
         return projectType;
     }
 
-    public void setProjectType(Date projectType) {
+    public void setProjectType(String projectType) {
         this.projectType = projectType;
     }
 }

+ 3 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java

@@ -16,4 +16,7 @@ import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 @MyBatisMapper
 public interface MaterialModuleMapper extends BaseMapper<MaterialModule> {
 
+    //根据项目id修改项目施工状态
+    void updateConstructionStatus(MaterialModule materialModule);
+
 }

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

@@ -21,7 +21,7 @@
 		SELECT 
 			<include refid="materialColumns"/>
 		FROM sg_construction_process a
-		WHERE a.id = #{id}
+		WHERE a.proc_ins_id = #{procInsId}
 	</select>
 	
 	<select id="findList" resultType="MaterialModule" >
@@ -43,5 +43,41 @@
 		update xm_project_details set preConstruction = #{preConstruction} where id = #{id};
 	</update>-->
 
+	<insert id="insert">
+		insert into sg_construction_process (
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			del_flag,
+			remarks,
+			proc_ins_id,
+			user_name,
+			project_id,
+			project_name,
+			project_type
+		)values
+			(
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{delFlag},
+			#{remarks},
+			#{procInsId},
+			#{userName},
+			#{projectId},
+			#{projectName},
+			#{projectType}
+			)
+	</insert>
+
+	<update id="updateConstructionStatus">
+		update xm_project_details set construction_status = '1' where id=#{projectId}
+	</update>
+
+
 
 </mapper>

+ 2 - 1
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java

@@ -31,9 +31,10 @@ public class MaterialModuleService extends CrudService<MaterialModuleMapper, Mat
 		return materialModule;
 	}
 
+	@Transactional(readOnly = false)
 	@Override
 	public void save(MaterialModule entity) {
-		String projectId = entity.getProjectId();
+		materialModuleMapper.updateConstructionStatus(entity);
 		super.save(entity);
 	}
 }

+ 81 - 54
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java

@@ -58,75 +58,101 @@ public class MaterialModuleController extends BaseController {
         return "modules/sg/materialmodule/activiti/materialModuleForm";
     }
 
-
-
-/*
-    @ResponseBody
-    @RequestMapping(value = "data")
-    public Map<String, Object> data(PickIng pickIng, HttpServletRequest request, HttpServletResponse response, Model model) {
-        Page<PickIng> page = pickIngService.findPage(new Page<PickIng>(request, response), pickIng);
-        return getBootstrapData(page);
+    /**
+     * 非涉电开工流程
+     */
+    @RequestMapping(value = "nonPowerStart")
+    public String nonPowerStart(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/nonPowerStart";
     }
 
+    /**
+     * 非涉电施工中流程
+     */
+    @RequestMapping(value = "nonPowerMiddle")
+    public String nonPowerMiddle(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/nonPowerMiddle";
+    }
 
-    */
-/**
-     * 项目经理审核
-     * 政策处理专职发起项目,交与项目经理审核页面
-     *//*
-
-    @RequestMapping(value = "applicationAudit")
-    public String applicationAudit(PickApplication pickApplication, Model model) {
-        String id = pickApplication.getId();
-        String projectId = showListService.selectProjectId(id);
-        Project project = projectService.get(projectId);
-        model.addAttribute("pickApplication", pickApplication);
-        model.addAttribute("project", project);
-        return "modules/sg/picking/activiti/applicationAudit";
+    /**
+     * 非涉电竣工流程
+     */
+    @RequestMapping(value = "nonPowerEnd")
+    public String nonPowerEnd(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/nonPowerEnd";
     }
 
-    */
-/**
-     * 库存对比
-     *//*
+    /**
+     * 是否完成非涉电工作
+     */
+    @RequestMapping(value = "nonPowerWhether")
+    public String nonPowerWhether(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";
+    }
 
-    @RequestMapping(value = "inventoryComparison")
-    @RequiresPermissions("picking:activiti:inventoryComparison")
-    public String inventoryComparison(ShowList showList, Model model) {
-        model.addAttribute("showList", showList);
-        return "modules/sg/picking/activiti/inventoryComparison";
+    /**
+     * 涉电开工流程
+     */
+    @RequestMapping(value = "PowerStart")
+    public String PowerStart(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/PowerStart";
     }
 
-    */
-/**
-     * 导出erp领料单
-     *//*
+    /**
+     * 涉电竣工流程
+     */
+    @RequestMapping(value = "PowerEnd")
+    public String PowerEnd(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/PowerEnd";
+    }
 
-    @RequiresPermissions("picking:activiti:exportErp")
-    @RequestMapping(value = "exportErp")
-    public String exportErp(Acquisition acquisition, Model model) {
-        model.addAttribute("acquisition", acquisition);
-        return "modules/sg/picking/activiti/exportErp";
+    /**
+     * 是否完成所有涉电工作
+     */
+    @RequestMapping(value = "PowerWhether")
+    public String PowerWhether(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/PowerWhether";
     }
 
-    @ResponseBody
-    @RequestMapping(value = "exportData")
-    public Map<String, Object> exportData(Acquisition acquisition, HttpServletRequest request, HttpServletResponse response, Model model) {
-        Page<Acquisition> page = showListService.acquisitionList(new Page<Acquisition>(request, response), acquisition);
-        List<Acquisition> list = page.getList();
-        for (Acquisition a :list) {
-            a.setTheNumber("第"+a.getTheNumber()+"次领料单");
-        }
-        return getBootstrapData(page);
+    /**
+     * 施工单位项目经理判断项目是否包含涉电工作
+     */
+    @RequestMapping(value = "managerWhether")
+    public String managerWhether(MaterialModule materialModule, Model model) {
+        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
+        model.addAttribute("materialShow", materialShow);
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/managerWhether";
     }
-*/
+
 
     /**
      * 施工流程发起
      */
     @ResponseBody
     @RequestMapping(value = "containSave")
-    public AjaxJson save(MaterialModule materialModule, Model model) throws Exception {
+    public AjaxJson save(MaterialModule materialModule, Model model,String procDefId,String flag) throws Exception {
         AjaxJson j = new AjaxJson();
         /**
          * 后台hibernate-validation插件校验
@@ -149,11 +175,12 @@ public class MaterialModuleController extends BaseController {
         if (StringUtils.isBlank(materialModule.getId())) {
             //保存
             //修改项目的施工模块状态
+            materialModule.setUserName(UserUtils.getUser().getLoginName());
             materialModuleService.save(materialModule);
             // 启动流程
             Map<String, Object> vars = Maps.newHashMap();
-            vars.put("manager", UserUtils.getUser().getLoginName());
-            String flag = materialModule.getAct().getFlag();
+            Project userById = MyActiviUtils.findUserById(projectId);
+            vars.put("manager", userById.getConstructionUnitManage());
             if ("contain".equals(flag)) {
                 vars.put("contain", true);
                 vars.put("notContain", false);
@@ -167,7 +194,7 @@ public class MaterialModuleController extends BaseController {
                 vars.put("notContain", false);
                 vars.put("no", true);
             }
-            ProcessDefinition p = actProcessService.getProcessDefinition(materialModule.getAct().getProcDefId());
+            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);
             j.setMsg("发起施工流程成功!");

+ 10 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/ShowList.java

@@ -22,6 +22,8 @@ public class ShowList extends ActEntity<ShowList> implements Comparable<ShowList
     private String mdUnits;
     //总量;
     private Double mdTotalAmount;
+    //修改后总量
+    private Double mdTotalAmountAfter;
     //数量
     private Double mdCount;
     //单重/kg;
@@ -248,6 +250,14 @@ public class ShowList extends ActEntity<ShowList> implements Comparable<ShowList
         this.nowNumber = nowNumber;
     }
 
+    public Double getMdTotalAmountAfter() {
+        return mdTotalAmountAfter;
+    }
+
+    public void setMdTotalAmountAfter(Double mdTotalAmountAfter) {
+        this.mdTotalAmountAfter = mdTotalAmountAfter;
+    }
+
     @Override
     public int compareTo(ShowList o) {
         String materialCode = this.getMaterialCode();

+ 3 - 1
src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/PickIngMapper.xml

@@ -112,7 +112,7 @@
 	</select>
 
 	<select id="projectNumber" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ProjectNumber">
-		select require_name,the_number from md_acquisition_process as a,xm_project_details as b where a.project_id=b.id and proc_ins_id=#{pprocInsId}
+		select require_name,the_number from md_acquisition_process as a,xm_project_details as b where a.project_id=b.id and proc_ins_id=#{procInsId}
 	</select>
 
 	<update id="updateSelectVersion">
@@ -134,6 +134,7 @@
 			materialDescription,
 			mdUnits,
 			mdTotalAmount,
+			mdTotalAmountAfter,
 			mdSingleWeight,
 			mdTotalWeight,
 			mdTheParty,
@@ -154,6 +155,7 @@
 			#{item.materialDescription},
 			#{item.mdUnits},
 			#{item.mdTotalAmount},
+			#{item.mdTotalAmountAfter},
 			#{item.mdSingleWeight},
 			#{item.mdTotalWeight},
 			#{item.mdTheParty},

+ 1 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml

@@ -159,6 +159,7 @@
 		materialDescription,
 		mdUnits,
 		mdTotalAmount,
+		mdTotalAmountAfter,
 		mdSingleWeight,
 		mdTotalWeight,
 		mdTheParty,

+ 181 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js

@@ -0,0 +1,181 @@
+<%@ 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/PowerEndTask",
+					{
+						"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>

+ 65 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp

@@ -0,0 +1,65 @@
+<%@ 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="PowerEnd.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>
+					</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>

+ 179 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.js

@@ -0,0 +1,179 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	$('#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/PowerStartTask",
+					{
+						"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>

+ 71 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.jsp

@@ -0,0 +1,71 @@
+<%@ 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="PowerStart.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>
+						<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>
+					</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>

+ 216 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.js

@@ -0,0 +1,216 @@
+<%@ 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');
+		});
+
+	$("#finish").click(function () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/PowerWhetherTask",
+				{
+					"taskId":"${materialModule.act.taskId}",
+					"taskName":"${materialModule.act.taskName}",
+					"taskDefKey":"${materialModule.act.taskDefKey}",
+					"procInsId":"${materialModule.act.procInsId}",
+					"procDefId":"${materialModule.act.procDefId}",
+					"flag":"finish",
+					"comment":window.encodeURI(message)
+				},
+				function (data) {
+					if(data.success){
+						jp.success(data.msg);
+						jp.go("${ctx}/act/task/todo")
+					}
+				})
+		});
+	});
+
+	$("#second").click(function () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/PowerWhetherTask",
+				{
+					"taskId":"${materialModule.act.taskId}",
+					"taskName":"${materialModule.act.taskName}",
+					"taskDefKey":"${materialModule.act.taskDefKey}",
+					"procInsId":"${materialModule.act.procInsId}",
+					"procDefId":"${materialModule.act.procDefId}",
+					"flag":"second",
+					"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/PowerWhetherTask",
+				{
+					"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>

+ 66 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.jsp

@@ -0,0 +1,66 @@
+<%@ 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="PowerWhether.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>
+						<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="finish" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="无二次涉电" />&nbsp;
+						<input id="second" 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>

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

@@ -0,0 +1,195 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	var procInsId = $("#procInsId").val();
+	$('#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/managerWhetherTask",
+				{
+					"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/managerWhetherTask",
+				{
+					"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/managerWhether.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="managerWhether.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>

+ 33 - 15
src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js

@@ -17,52 +17,70 @@
 		//包含非涉电项目,需填写项目类型
 		$("#contain").click(function () {
 			var projectType = $("#projectType").val();
+			var procDefId = $("#procDefId").val();
+			var projectId = $("#projectId").val();
+			var projectName = $("#projectName").val();
+			console.log(procDefId);
 			if (projectType == "") {
-				alert("请正确填写项目类型");
+				jp.error("请正确填写项目类型");
 			} else {
-				jp.prompt("包含非涉电工作", function (message) {
-					jp.post("${ctx}/act/task/constructionLeader",
+				jp.post("${ctx}/materialmodule/activiti/containSave",
 					{
 						"projectType": projectType,
-						"flag":"contain",
-						"comment":window.encodeURI(message)
+						"projectId": projectId,
+						"projectName":projectName,
+						"procDefId":procDefId,
+						"flag": "contain",
 					},
 					function (data) {
-						if(data.success){
+						if (data.success) {
 							jp.success(data.msg);
-							jp.go("${ctx}/act/task/todo")
+							jp.go("${ctx}/act/task/todo");
+						} else {
+							jp.error(data.msg);
 						}
 					})
-				});
 			}
-		})
+		});
 
 		$("#notContain").click(function () {
-			jp.post("${ctx}///",
+			var projectId = $("#projectId").val();
+			var projectName = $("#projectName").val();
+			var procDefId = $("#procDefId").val();
+			jp.post("${ctx}/materialmodule/activiti/containSave",
 			{
-				"projectType": projectType,
+				"projectId": projectId,
+				"projectName":projectName,
+				"procDefId":procDefId,
 				"flag":"notContain",
-				"comment":window.encodeURI(message)
 			},
 			function (data) {
 				if(data.success){
 					jp.success(data.msg);
 					jp.go("${ctx}/act/task/todo")
+				} else {
+					jp.error(data.msg);
 				}
 			})
 		})
 
 		$("#no").click(function () {
-			jp.post("${ctx}///",
+			var projectId = $("#projectId").val();
+			var projectName = $("#projectName").val();
+			var procDefId = $("#procDefId").val();
+			jp.post("${ctx}/materialmodule/activiti/containSave",
 			{
-				"projectType": projectType,
+				"projectId": projectId,
+				"projectName":projectName,
+				"procDefId":procDefId,
 				"flag":"no",
-				"comment":window.encodeURI(message)
 			},
 			function (data) {
 				if(data.success){
 					jp.success(data.msg);
 					jp.go("${ctx}/act/task/todo")
+				} else {
+					jp.error(data.msg);
 				}
 			})
 		})

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

@@ -22,6 +22,7 @@
 				<div class="panel-body">
 
 					<form:form id="inputForm" modelAttribute="materialModule" action="${ctx}/picking/activiti/save" method="post" class="form-horizontal">
+						<input type="hidden" id="procDefId" value="${materialModule.act.procDefId}">
 						<div class="form-group text-center">
 							<h3> 领料申请</h3>
 						</div>
@@ -35,7 +36,7 @@
 								</td>
 							</tr>
 							<tr>
-								<td class="width-15 active">填写项目类型</td>
+								<td class="width-15 active"><label class="pull-right">填写项目类型:</label></td>
 								<td class="width-35"><input class="form-control" type="text" id="projectType"/></td>
 							</tr>
 							</tbody>

+ 180 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.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>

+ 70 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp

@@ -0,0 +1,70 @@
+<%@ 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="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>
+	</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>
+					</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/nonPowerMiddle.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/nonPowerMiddle.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="nonPowerMiddle.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>

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

@@ -0,0 +1,200 @@
+<%@ 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();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/nonPowerStartTask",
+					{
+						"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>

+ 65 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.jsp

@@ -0,0 +1,65 @@
+<%@ 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="nonPowerStart.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>
+					</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>

+ 195 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.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/nonPowerWhetherTask",
+					{
+						"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/nonPowerWhetherTask",
+				{
+					"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>

+ 66 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.jsp

@@ -0,0 +1,66 @@
+<%@ 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="nonPowerWhether.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>
+							<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>

+ 6 - 2
src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.js

@@ -93,9 +93,13 @@ $(document).ready(function() {
 				}, {
 					field: 'mdUnits',
 					title: '单位',
-				}, {
-					field: 'mdTotalAmount',
+				},{
+					field: 'mdTotalAmountAfter',
 					title: '总量',
+				},
+				{
+					field: 'mdTotalAmount',
+					title: '修改后总量',
 					events: operateEvents,
 					formatter: getTime
 				}, {