Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

Enford 5 rokov pred
rodič
commit
5a74b71e12
55 zmenil súbory, kde vykonal 3635 pridanie a 628 odobranie
  1. 270 23
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 243 17
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 6 14
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyImportUtils.java
  4. 1 3
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java
  5. 26 29
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/DivideController.java
  6. 7 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/UploadController.java
  7. 14 4
      src/main/java/com/jeeplus/modules/sg/managementcenter/moduleacquisition/web/ModuleBlockWeb.java
  8. 32 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java
  9. 7 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java
  10. 81 56
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml
  11. 86 66
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java
  12. 147 42
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java
  13. 1 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/ShowListMapper.java
  14. 126 79
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml
  15. 4 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/service/ShowListService.java
  16. 115 78
      src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java
  17. 15 1
      src/main/java/com/jeeplus/modules/test/pic/web/TestPicController.java
  18. 1 13
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideForm.jsp
  19. 129 85
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/editCon.jsp
  20. 9 13
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/humanReview.jsp
  21. 2 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js
  22. 11 3
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp
  23. 2 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.js
  24. 10 8
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.jsp
  25. 182 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.js
  26. 78 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.jsp
  27. 160 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalMiddle.js
  28. 73 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalMiddle.jsp
  29. 202 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.js
  30. 73 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.jsp
  31. 0 1
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/managerWhether.jsp
  32. 14 49
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js
  33. 4 9
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp
  34. 2 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.js
  35. 12 9
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp
  36. 2 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerMiddle.js
  37. 14 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerMiddle.jsp
  38. 2 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.js
  39. 12 4
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.jsp
  40. 195 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js
  41. 53 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp
  42. 173 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerMiddle.js
  43. 52 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerMiddle.jsp
  44. 195 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.js
  45. 53 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.jsp
  46. 173 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalMiddle.js
  47. 52 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalMiddle.jsp
  48. 196 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.js
  49. 51 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp
  50. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.js
  51. 7 13
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.jsp
  52. 195 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reviewNonPower.js
  53. 60 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reviewNonPower.jsp
  54. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/managerExam.jsp
  55. 2 2
      src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.jsp

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

@@ -16,7 +16,11 @@ import com.jeeplus.modules.sg.managementcenter.activiti.service.DiscloseService;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.ProcessPersonnelService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickApplication;
+import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
+import com.jeeplus.modules.sg.picking.activiti.service.PickIngService;
 import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
 import org.activiti.bpmn.model.BpmnModel;
 import org.activiti.engine.FormService;
@@ -104,7 +108,8 @@ public class ActTaskService extends BaseService {
 	private ConstructionService constructionService;
 	@Autowired
 	private ShowListService showListService;
-
+	@Autowired
+	private MaterialModuleService materialModuleService;
 	@Autowired
 	private AdvanceService advanceService;
 	/**
@@ -2553,9 +2558,9 @@ public class ActTaskService extends BaseService {
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		vars.put("pass", "yes".equals(act.getFlag())? true : false);
-		Project user = MyActiviUtils.findUser(act.getProcInsId());
+		Project user = MyActiviUtils.findWZUser(act.getProcInsId());
 		vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitLeader()).getLoginName());
-		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+//		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
 
@@ -2570,11 +2575,16 @@ public class ActTaskService extends BaseService {
 		act.preUpdate();
 		// 对不同环节的业务逻辑进行操作
 		String taskDefKey = act.getTaskDefKey();
+		ShowList showList = new ShowList();
+		showList.setAct(act);
+		List<ShowList> newTemList = showListService.findNewTemList(showList);
+		PickIngService pickIngService = new PickIngService();
+		pickIngService.processList(newTemList);
 		Project wzUser = MyActiviUtils.findWZUser(act.getProcInsId());
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		vars.put("pass", "yes".equals(act.getFlag())? true : false);
-		vars.put("manager",wzUser.getConstructionUnitLeader());
+		vars.put("manager",UserUtils.getByUserName(wzUser.getConstructionUnitLeader()).getLoginName());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
@@ -2784,7 +2794,7 @@ public class ActTaskService extends BaseService {
 	}
 
 	/**
-	 * 施工单位项目经理非涉电开工流程提交文件
+	 * 施工单位项目经理土建开工流程提交文件
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
@@ -2799,12 +2809,32 @@ public class ActTaskService extends BaseService {
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		//根据项目设置的流转人员,流转对应人员
-		vars.put("manager", user.getConstructionUnitManage());
+		vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
 	/**
-	 * 施工单位项目经理非涉电开工流程提交文件
+	 * 施工单位项目经理电气开工流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void electricalStartTask(Act act) {
+		// 设置意见
+		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		//根据项目设置的流转人员,流转对应人员
+		vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理土建施工中流程提交文件
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
@@ -2819,12 +2849,188 @@ public class ActTaskService extends BaseService {
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		//根据项目设置的流转人员,流转对应人员
-		vars.put("manager", user.getConstructionUnitManage());
+		vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 施工单位项目经理电气施工中流程提交文件
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void electricalMiddleTask(Act act) {
+		// 设置意见
+		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		//根据项目设置的流转人员,流转对应人员
+		vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 电气竣工流程
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void electricalEndTask(Act act) {
+		// 设置意见
+		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		//根据项目设置的流转人员,流转对应人员
+		vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 审核土建施工流程
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void nonRePowerMiddleTask(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());
+		vars.put("pass", "yes".equals(flag)? true : false);
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+
+	/**
+	 * 审核土建竣工流程
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void nonRePowerEndTask(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());
+		vars.put("pass", "yes".equals(flag)? true : false);
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		}
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
 	/**
-	 * 施工单位项目经理非涉电开工流程提交文件
+	 * 审核涉电施工流程
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void rePowerEnd(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());
+		vars.put("pass", "yes".equals(flag)? true : false);
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 审核电气竣工流程
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void reElectricalEndTask(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());
+		vars.put("pass", "yes".equals(flag)? true : false);
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 审核土建施工流程
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void reElectricalMiddleTask(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());
+		vars.put("pass", "yes".equals(flag)? true : false);
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 土建竣工流程
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
@@ -2839,36 +3045,76 @@ public class ActTaskService extends BaseService {
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		//根据项目设置的流转人员,流转对应人员
-		vars.put("manager", user.getProjectManageRole());
+		vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
 	/**
-	 * 配网项目经理判断是否完成非涉电工作
+	 * 配网项目经理判断是否完成土建工作
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
-	public void nonPowerWhetherTask(Act act) {
+	public void reviewNonPower(Act act) {
 		String flag = act.getFlag();
 		// 设置意见
 		act.setComment(("yes".equals(flag)?"[同意] ":"[驳回] ")+act.getComment());
 		act.preUpdate();
 		// 对不同环节的业务逻辑进行操作
 		String taskDefKey = act.getTaskDefKey();
+		MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
+		Integer nonPower = byProcInsId.getNonPower();
+		Integer electrical = byProcInsId.getElectrical();
+		Integer power = byProcInsId.getPower();
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
+		if (nonPower==0&&electrical==0&&power==1) {
+			vars.put("contain",true);
+		} else if (nonPower==0&&electrical==0&&power==0) {
+			vars.put("contain", false);
+		}
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		if ("yes".equals(flag)) {
 			//根据项目设置的流转人员,流转对应人员
-			vars.put("manager", user.getConstructionUnitManage());
-			vars.put("yes", true);
-			vars.put("no", false);
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
 		} else {
 			//根据项目设置的流转人员,流转对应人员
-			vars.put("manager", user.getConstructionUnitManage());
-			vars.put("yes", false);
-			vars.put("no", true);
+			vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
+		}
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
+	 * 配网项目经理判断是否完成电气工作
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void reviewElectrical(Act act) {
+		String flag = act.getFlag();
+		// 设置意见
+		act.setComment(("yes".equals(flag)?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
+		Integer nonPower = byProcInsId.getNonPower();
+		Integer electrical = byProcInsId.getElectrical();
+		Integer power = byProcInsId.getPower();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		if (nonPower==0&&electrical==0&&power==1) {
+			vars.put("contain",true);
+		} else if (nonPower==0&&electrical==0&&power==0) {
+			vars.put("contain", false);
+		}
+		//根据流程实例id查询项目的相关信息
+		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+		if ("yes".equals(flag)) {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+		} else {
+			//根据项目设置的流转人员,流转对应人员
+			vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
 		}
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
@@ -2918,12 +3164,12 @@ public class ActTaskService extends BaseService {
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		//根据项目设置的流转人员,流转对应人员
-		vars.put("manager", user.getConstructionUnitManage());
+		vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
 	/**
-	 * 施工单位项目经理 涉电开工流程提交文件
+	 * 涉电竣工流程
 	 * @param act
 	 */
 	@Transactional(readOnly = false)
@@ -2938,7 +3184,7 @@ public class ActTaskService extends BaseService {
 		//根据流程实例id查询项目的相关信息
 		Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
 		//根据项目设置的流转人员,流转对应人员
-		vars.put("manager", user.getProjectManageRole());
+		vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
@@ -2962,13 +3208,14 @@ public class ActTaskService extends BaseService {
 			vars.put("finish", false);
 			vars.put("second", true);
 			vars.put("no", false);
-			vars.put("manager", user.getConstructionUnitManage());
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+
 		} else {
 			act.setComment("[审核不通过]"+act.getComment());
 			vars.put("finish", false);
 			vars.put("second", false);
 			vars.put("no", true);
-			vars.put("manager", user.getConstructionUnitManage());
+			vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
 		}
 		// 设置意见
 		act.preUpdate();

+ 243 - 17
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -30,9 +30,11 @@ import com.jeeplus.modules.sg.managementcenter.activiti.service.DiscloseService;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.ProcessPersonnelService;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.UploadImagesService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
+import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.service.PickingRequisitionService;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickList;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
@@ -1296,6 +1298,7 @@ public class ActTaskController extends BaseController {
 				a.setProcInsId(act.getProcInsId());
 			}
 			pickIngService.processList(showLists);
+			pickIngService.processTemList(showLists);
 			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
 			act.setComment(comment);
 			actTaskService.pickIng(act);
@@ -1332,6 +1335,17 @@ public class ActTaskController extends BaseController {
 		return j;
 	}
 
+
+	@ResponseBody
+	@RequestMapping(value = "managerExam")
+	public AjaxJson managerExam(Act act) {
+		AjaxJson j = new AjaxJson();
+
+		actTaskService.managerExam(act);
+		j.setMsg("审批成功");
+		return j;
+	}
+
 	/**
 	 * 项目中心领导审核领料单
 	 * @param act
@@ -1440,17 +1454,17 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
-	 * 施工单位项目经理非涉电开工流程提交文件
+	 * 施工单位项目经理土建开工流程提交文件
 	 * */
 	@ResponseBody
 	@RequestMapping(value = "nonPowerStartTask")
-	public AjaxJson nonPowerStartTask(Act act,String pic, UploadImages uploadImages) {
+	public AjaxJson nonPowerStartTask(Act act,String pic, String imgName,UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
 			if (pic!=null&&pic!="") {
 				uploadImages.setPath(pic);
 				uploadImages.setProcInsId(act.getProcInsId());
-				uploadImages.setImgName("上传非涉电开工流程");
+				uploadImages.setImgName(imgName);
 				uploadImages.setuId(UserUtils.getUser().getLoginName());
 				uploadImagesService.save(uploadImages);
 			}
@@ -1465,17 +1479,42 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
-	 * 施工单位项目经理非涉电施工中流程提交文件
+	 * 施工单位项目经理电气开工流程提交文件
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "electricalStartTask")
+	public AjaxJson electricalStartTask(Act act,String pic, String imgName,UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName(imgName);
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.electricalStartTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 施工单位项目经理土建施工中流程提交文件
 	 * */
 	@ResponseBody
 	@RequestMapping(value = "nonPowerMiddleTask")
-	public AjaxJson nonPowerMiddleTask(Act act,String pic, UploadImages uploadImages) {
+	public AjaxJson nonPowerMiddleTask(Act act,String pic,String imgName, UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
 			if (pic!=null&&pic!="") {
 				uploadImages.setPath(pic);
 				uploadImages.setProcInsId(act.getProcInsId());
-				uploadImages.setImgName("上传非涉电施工中流程");
+				uploadImages.setImgName(imgName);
 				uploadImages.setuId(UserUtils.getUser().getLoginName());
 				uploadImagesService.save(uploadImages);
 			}
@@ -1490,17 +1529,162 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
-	 * 施工单位项目经理非涉电竣工流程提交文件
+	 * 施工单位项目经理电气施工中流程提交文件
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "electricalMiddleTask")
+	public AjaxJson electricalMiddleTask(Act act,String pic,String imgName, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName(imgName);
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.electricalMiddleTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 审核土建施工流程
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "nonRePowerMiddleTask")
+	public AjaxJson nonRePowerMiddleTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		String comment = null;
+		try {
+			comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.nonRePowerMiddleTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 审核土建竣工流程
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "nonRePowerEndTask")
+	public AjaxJson nonRePowerEndTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		String comment = null;
+		try {
+			comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.nonRePowerEndTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 审核土建竣工流程
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "rePowerEnd")
+	public AjaxJson rePowerEnd(Act act) {
+		AjaxJson j = new AjaxJson();
+		String comment = null;
+		try {
+			comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.rePowerEnd(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 电气竣工流程
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "electricalEndTask")
+	public AjaxJson electricalEndTask(Act act,String pic,String imgName, UploadImages uploadImages) {
+		AjaxJson j = new AjaxJson();
+		try {
+			if (pic!=null&&pic!="") {
+				uploadImages.setPath(pic);
+				uploadImages.setProcInsId(act.getProcInsId());
+				uploadImages.setImgName(imgName);
+				uploadImages.setuId(UserUtils.getUser().getLoginName());
+				uploadImagesService.save(uploadImages);
+			}
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.electricalEndTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 审核电气施工中流程
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "reElectricalMiddleTask")
+	public AjaxJson reElectricalMiddleTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		String comment = null;
+		try {
+			comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.reElectricalMiddleTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 审核电气竣工流程
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "reElectricalEndTask")
+	public AjaxJson reElectricalEndTask(Act act) {
+		AjaxJson j = new AjaxJson();
+		String comment = null;
+		try {
+			comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.reElectricalEndTask(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 土建竣工流程
 	 * */
 	@ResponseBody
 	@RequestMapping(value = "nonPowerEndTask")
-	public AjaxJson nonPowerEndTask(Act act,String pic, UploadImages uploadImages) {
+	public AjaxJson nonPowerEndTask(Act act,String pic,String imgName, UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
 			if (pic!=null&&pic!="") {
 				uploadImages.setPath(pic);
 				uploadImages.setProcInsId(act.getProcInsId());
-				uploadImages.setImgName("上传非涉电竣工流程");
+				uploadImages.setImgName(imgName);
 				uploadImages.setuId(UserUtils.getUser().getLoginName());
 				uploadImagesService.save(uploadImages);
 			}
@@ -1515,16 +1699,38 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
-	 * 配网项目经理判断是否完成非涉电工作
+	 * 配网项目经理判断是否完成土建
 	 * */
 	@ResponseBody
-	@RequestMapping(value = "nonPowerWhetherTask")
-	public AjaxJson nonPowerWhetherTask(Act act) {
+	@RequestMapping(value = "reviewNonPower")
+	public AjaxJson reviewNonPower(Act act) {
 		AjaxJson j = new AjaxJson();
 		try {
 			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
 			act.setComment(comment);
-			actTaskService.nonPowerWhetherTask(act);
+			//设置土建完成
+			materialModuleService.updateNonPower(act.getProcInsId());
+			actTaskService.reviewNonPower(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
+	 * 配网项目经理判断是否完成电气
+	 * */
+	@ResponseBody
+	@RequestMapping(value = "reviewElectrical")
+	public AjaxJson reviewElectrical(Act act) {
+		AjaxJson j = new AjaxJson();
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			//设置土建完成
+			materialModuleService.updateElectrical(act.getProcInsId());
+			actTaskService.reviewElectrical(act);
 		} catch (UnsupportedEncodingException e) {
 			e.printStackTrace();
 		}
@@ -1555,7 +1761,7 @@ public class ActTaskController extends BaseController {
 	 * */
 	@ResponseBody
 	@RequestMapping(value = "PowerStartTask")
-	public AjaxJson PowerStartTask(Act act,String pic, UploadImages uploadImages) {
+	public AjaxJson PowerStartTask(Act act,String pic,String imgName, UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
 			//获取当前的流程实例id
@@ -1563,7 +1769,7 @@ public class ActTaskController extends BaseController {
 			//根据项目信息查询计划开工日期
 			String projectName = materialModuleService.findProjectName(procInsId);
 			Date specificTime = materialModuleService.findSpecificTime(projectName);
-			String[] needUser = {"施工项目经理A"};
+			String[] needUser = {imgName};
 			List<String> listUserId = MyActiviUtils.getListUserId(needUser);
 			List<String> userId = materialModuleService.findUserId(listUserId);
 			String stringJoiningTogether = MyActiviUtils.getStringJoiningTogether(userId);
@@ -1619,13 +1825,13 @@ public class ActTaskController extends BaseController {
 	 * */
 	@ResponseBody
 	@RequestMapping(value = "PowerEndTask")
-	public AjaxJson PowerEndTask(Act act,String pic, UploadImages uploadImages) {
+	public AjaxJson PowerEndTask(Act act,String pic, String imgName,UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
 			if (pic!=null&&pic!="") {
 				uploadImages.setPath(pic);
 				uploadImages.setProcInsId(act.getProcInsId());
-				uploadImages.setImgName("上传涉电竣工流程");
+				uploadImages.setImgName(imgName);
 				uploadImages.setuId(UserUtils.getUser().getLoginName());
 				uploadImagesService.save(uploadImages);
 			}
@@ -1647,6 +1853,26 @@ public class ActTaskController extends BaseController {
 	public AjaxJson PowerWhetherTask(Act act) {
 		AjaxJson j = new AjaxJson();
 		try {
+			//对项目现在二次涉电的时候
+			String flag = act.getFlag();
+			if ("second".equals(flag)) {
+				//获取项目定义号,查询项目信息
+				String projectName = materialModuleService.findProjectName(act.getProcInsId());
+				ConstructionProject project = materialModuleService.findProject(projectName);
+				if (project == null) {
+					//没有,不允许发起二次涉电
+					j.setSuccess(false);
+					j.setMsg("没有该项目的计划信息,无法发起二次涉电");
+					return j;
+				} else {
+					//如果有,记录数据,保存数据在项目名称后加入二次涉电插入项目库
+					String projectName1 = project.getProjectName();
+					project.setProjectName(projectName1 + "二次涉电");
+					project.setProjectStatus("0");
+					materialModuleService.conProject(project);
+				}
+			}
+			materialModuleService.updatePower(act.getProcInsId());
 			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
 			act.setComment(comment);
 			actTaskService.PowerWhetherTask(act);

+ 6 - 14
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyImportUtils.java

@@ -71,19 +71,18 @@ public class MyImportUtils {
             //设备是否有整体改造的必要
             String overallTransformation = disclose.getOverallTransformation();
             if (precondition!=null&&!"".equals(precondition)) {
-
             }else {
                 if ("".equals(projectName) || projectName == null) {
                     flag = true;
                     tips +="项目名称不能为空";
                 }
-                if ("".equals(capacity) || capacity == null||(!"是".equals(capacity)&&!"否".equals(capacity))) {
+                if ("".equals(capacity) || capacity == null||(!"有".equals(capacity)&&!"无".equals(capacity))) {
                     flag = true;
-                    tips += "设备基础是否可以扩容填写有误";
+                    tips += "有无设备基础改造填写有误";
                 }
-                if("".equals(capacity)){
+                if("".equals(capacity)){
                     if("".equals(sceneSize) || sceneSize == null||"".equals(capacitySize) || capacitySize == null){
-                        tips += "设备基础是否可以扩容填写有误";
+                        tips += "原设备尺寸|现场是否具备扩宽的条件 填写有误";
                     }
                 }
                 if ("".equals(hiddenDanger) || hiddenDanger == null||(!"有".equals(hiddenDanger)&&!"无".equals(hiddenDanger))) {
@@ -114,16 +113,12 @@ public class MyImportUtils {
                 }
                 if ("".equals(lineName) || lineName == null||(!"一致".equals(lineName)&&!"不一致".equals(lineName))) {
                     flag = true;
-                    tips += "线路名称一致性填写有误";
+                    tips += "线路名称、设备、开关、杆号一致性填写有误";
                 }
                 if ("".equals(quantities) || quantities == null||(!"是".equals(quantities)&&!"否".equals(quantities))) {
                     flag = true;
                     tips += "工程量是否一致填写有误";
                 }
-                if ("".equals(rodNumber) || rodNumber == null||(!"一致".equals(rodNumber)&&!"不一致".equals(rodNumber))) {
-                    flag = true;
-                    tips += "设备、开关、杆号一致性填写有误";
-                }
                 if ("不一致".equals(lineName)||"否".equals(quantities)||"不一致".equals(rodNumber)) {
                     if ("".equals(inconsistentDescription) || inconsistentDescription == null) {
                         flag = true;
@@ -353,14 +348,11 @@ public class MyImportUtils {
             }
         }
         if ("".equals(disclose.getLineName()) || disclose.getLineName() == null||(!"一致".equals(disclose.getLineName())&&!"不一致".equals(disclose.getLineName()))) {
-            tips += "线路名称一致性填写有误;";
+            tips += "线路名称、设备、开关、杆号一致性填写有误;";
         }
         if ("".equals(disclose.getQuantities()) || disclose.getQuantities() == null||(!"是".equals(disclose.getQuantities())&&!"否".equals(disclose.getQuantities()))) {
             tips += "工程量是否一致填写有误;";
         }
-        if ("".equals(disclose.getRodNumber()) || disclose.getRodNumber() == null||(!"一致".equals(disclose.getRodNumber())&&!"不一致".equals(disclose.getRodNumber()))) {
-            tips += "设备、开关、杆号一致性填写有误;";
-        }
         if ("不一致".equals(disclose.getLineName())||"否".equals(disclose.getQuantities())||"不一致".equals(disclose.getRodNumber())) {
             if ("".equals(disclose.getInconsistentDescription()) || disclose.getInconsistentDescription() == null) {
                 tips += "图纸现场不一致说明不能为空;";

+ 1 - 3
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java

@@ -427,8 +427,6 @@ public class ConstructionController extends BaseController {
         String lineName = disclose.getLineName();
         //工程量是否一致
         String quantities = disclose.getQuantities();
-        //设备、开关、杆号一致性
-        String rodNumber = disclose.getRodNumber();
         //图纸现场不一致描述
         String inconsistentDescription = disclose.getInconsistentDescription();
         //政处类型
@@ -455,7 +453,7 @@ public class ConstructionController extends BaseController {
                 j.setSuccess(false);
                 flag = false;
             }
-        }else if ("不一致".equals(lineName)||"否".equals(quantities)||"不一致".equals(rodNumber)) {
+        }else if ("不一致".equals(lineName)||"否".equals(quantities)) {
             if ("".equals(inconsistentDescription) || inconsistentDescription == null) {
                 j.setMsg("图纸现场不一致描述不能为空");
                 j.setSuccess(false);

+ 26 - 29
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/DivideController.java

@@ -24,6 +24,7 @@ import com.jeeplus.modules.sg.managementcenter.activiti.service.UploadImagesServ
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyImportUtils;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
+import com.jeeplus.modules.sys.utils.UserUtils;
 import org.activiti.engine.*;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -173,7 +174,7 @@ public class DivideController extends BaseController {
             int lastDataRowNum = ei.getLastDataRowNum();
             Disclose disclose = new Disclose();
             disclose.setProcInsId(procInsId);
-            for (int i = 1; i < lastDataRowNum; i++) {
+            for (int i = 2; i < lastDataRowNum; i++) {
                 Row row = ei.getRow(i);
                 String requireName = ei.getCellValue(row, 1).toString();
                 if (projectName.equals(requireName)) {
@@ -194,17 +195,16 @@ public class DivideController extends BaseController {
                     disclose.setExplanationOfNecessity(ei.getCellValue(row, 14).toString());
                     disclose.setLineName(ei.getCellValue(row, 15).toString());
                     disclose.setQuantities(ei.getCellValue(row, 16).toString());
-                    disclose.setRodNumber(ei.getCellValue(row, 17).toString());
-                    disclose.setInconsistentDescription(ei.getCellValue(row, 18).toString());
-                    disclose.setAdministrationType(ei.getCellValue(row, 19).toString());
-                    disclose.setPolicyHandlingInstructions(ei.getCellValue(row, 20).toString());
-                    disclose.setPrecondition(ei.getCellValue(row, 21).toString());
-                    disclose.setPlacementMode(ei.getCellValue(row, 22).toString());
-                    disclose.setProductionDate(ei.getCellValue(row, 23).toString());
-                    disclose.setIntegrateModule(ei.getCellValue(row, 24).toString());
-                    disclose.setNeedReplace(ei.getCellValue(row, 25).toString());
-                    disclose.setOverallTransformation(ei.getCellValue(row, 26).toString());
-                    disclose.setOtherProblem(ei.getCellValue(row, 27).toString());
+                    disclose.setInconsistentDescription(ei.getCellValue(row, 17).toString());
+                    disclose.setAdministrationType(ei.getCellValue(row, 18).toString());
+                    disclose.setPolicyHandlingInstructions(ei.getCellValue(row, 19).toString());
+                    disclose.setPrecondition(ei.getCellValue(row, 20).toString());
+                    disclose.setPlacementMode(ei.getCellValue(row, 21).toString());
+                    disclose.setProductionDate(ei.getCellValue(row, 22).toString());
+                    disclose.setIntegrateModule(ei.getCellValue(row, 23).toString());
+                    disclose.setNeedReplace(ei.getCellValue(row, 24).toString());
+                    disclose.setOverallTransformation(ei.getCellValue(row, 25).toString());
+                    disclose.setOtherProblem(ei.getCellValue(row, 26).toString());
                 }
             }
             try {
@@ -263,7 +263,7 @@ public class DivideController extends BaseController {
             int lastDataRowNum = ei.getLastDataRowNum();
             Disclose disclose;
             //将所有项目信息存入list
-            for (int i = 1; i < lastDataRowNum; i++) {
+            for (int i = 2; i < lastDataRowNum; i++) {
                 disclose = new Disclose();
                 Row row = ei.getRow(i);
                 disclose.setRequireName(ei.getCellValue(row, 1).toString());//需求项目名称
@@ -281,19 +281,18 @@ public class DivideController extends BaseController {
                 disclose.setImplemented(ei.getCellValue(row, 12).toString());//是否已实施
                 disclose.setTransformer(ei.getCellValue(row, 13).toString());//变压器无负荷
                 disclose.setExplanationOfNecessity(ei.getCellValue(row, 14).toString());//必要性问题说明
-                disclose.setLineName(ei.getCellValue(row, 15).toString());//线路名称一致性
+                disclose.setLineName(ei.getCellValue(row, 15).toString());//线路名称、设备、开关、杆号一致性
                 disclose.setQuantities(ei.getCellValue(row, 16).toString());//工程量是否一致
-                disclose.setRodNumber(ei.getCellValue(row, 17).toString());//设备、开关、杆号一致性
-                disclose.setInconsistentDescription(ei.getCellValue(row, 18).toString()); //图纸现场不一致说明
-                disclose.setAdministrationType(ei.getCellValue(row, 19).toString());//政处类型
-                disclose.setPolicyHandlingInstructions(ei.getCellValue(row, 20).toString());//政策处理说明
-                disclose.setPrecondition(ei.getCellValue(row, 21).toString());//前置条件
-                disclose.setPlacementMode(ei.getCellValue(row, 22).toString()); //DTU安放方式核查
-                disclose.setProductionDate(ei.getCellValue(row, 23).toString());//核查环网柜生产日期
-                disclose.setIntegrateModule(ei.getCellValue(row, 24).toString()); //二次是否是集成模块
-                disclose.setNeedReplace(ei.getCellValue(row, 25).toString());//PT是否需要更换
-                disclose.setOverallTransformation(ei.getCellValue(row, 26).toString());//设备是否有整体改造的必要
-                disclose.setOtherProblem(ei.getCellValue(row, 27).toString());//其它问题描述
+                disclose.setInconsistentDescription(ei.getCellValue(row, 17).toString()); //图纸现场不一致说明
+                disclose.setAdministrationType(ei.getCellValue(row, 18).toString());//政处类型
+                disclose.setPolicyHandlingInstructions(ei.getCellValue(row, 19).toString());//政策处理说明
+                disclose.setPrecondition(ei.getCellValue(row, 20).toString());//前置条件
+                disclose.setPlacementMode(ei.getCellValue(row, 21).toString()); //DTU安放方式核查
+                disclose.setProductionDate(ei.getCellValue(row, 22).toString());//核查环网柜生产日期
+                disclose.setIntegrateModule(ei.getCellValue(row, 23).toString()); //二次是否是集成模块
+                disclose.setNeedReplace(ei.getCellValue(row, 24).toString());//PT是否需要更换
+                disclose.setOverallTransformation(ei.getCellValue(row, 25).toString());//设备是否有整体改造的必要
+                disclose.setOtherProblem(ei.getCellValue(row, 26).toString());//其它问题描述
                 discloseList.add(disclose);
             }
             //记录所有符合情况的数据
@@ -339,7 +338,7 @@ public class DivideController extends BaseController {
                     ) {
                         vars.put("problem", false);
                         vars.put("pass4", true);
-                        vars.put("processer", user.getProjectManageRole());
+                        vars.put("processer", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
                     } else {
                         //没有前置条件,判断是否为无问题
                         if (
@@ -350,16 +349,14 @@ public class DivideController extends BaseController {
                                         "有".equals(d.getTransformer()) &&
                                         "一致".equals(d.getLineName()) &&
                                         "是".equals(d.getQuantities()) &&
-                                        "一致".equals(d.getRodNumber()) &&
                                         "4.无".equals(d.getAdministrationType())
                         ) {
                             vars.put("finish", true);
                         } else {
                             vars.put("pass4", false);
                             vars.put("problem", true);
-                            vars.put("processer", user.getProjectManageRole());
+                            vars.put("processer", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
                         }
-
                     }
                     actTaskService.complete(d.getTaskId(), d.getProcInsId(), "系统判断成功,请自行查看", vars);
                 }

+ 7 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/UploadController.java

@@ -203,7 +203,13 @@ public class UploadController extends BaseController {
 			List<UploadImages> list = page.getList();
 			for (UploadImages upload:
 				 list) {
-				upload.setPath("http://" + request.getServerName()  +upload.getPath());
+				String a = "";
+				String path = upload.getPath();
+				String[] split = path.split("\\|");
+				for (int i = 0; i < split.length; i++) {
+					a += "http://" + request.getServerName() + split[i] + "|";
+				}
+				upload.setPath(a);
 			}
 		}
 		return getBootstrapData(page);

+ 14 - 4
src/main/java/com/jeeplus/modules/sg/managementcenter/moduleacquisition/web/ModuleBlockWeb.java

@@ -20,6 +20,7 @@ import com.jeeplus.modules.sg.managementcenter.moduleacquisition.service.ModuleB
 import com.jeeplus.modules.sg.managementcenter.moduleacquisition.service.ModuleBlockVersionService;
 import com.jeeplus.modules.sg.managementcenter.moduleacquisition.service.ModuleListingService;
 import com.jeeplus.modules.sg.managementcenter.moduleacquisition.util.ModuleUtil;
+import com.jeeplus.modules.sg.picking.activiti.entity.PickIng;
 import com.jeeplus.modules.sg.picking.activiti.service.PickIngService;
 import com.jeeplus.modules.sys.entity.DictValue;
 import org.apache.http.client.utils.URLEncodedUtils;
@@ -98,11 +99,20 @@ public class ModuleBlockWeb extends BaseController {
 		//当判定系统为linux的时候
 		if (Global.SYS_TYPE.equals("2")) {
 			List<ModuleBlock> list = page.getList();
-			for (ModuleBlock moduleBlock1: list) {
-				String mdImg = moduleBlock1.getMdImg();
-				if (mdImg!=null&&!"".equals(mdImg)) {
-					moduleBlock1.setMdImg("http://" + request.getServerName()  +moduleBlock1.getMdImg());
+			for (ModuleBlock upload :
+					list) {
+				String mdImg = upload.getMdImg();
+				String newMdImg = "";
+				String[] split = mdImg.split("\\|");
+//            String reg = "(?i).+?\\.(jpg|gif|bmp)";
+				for (int i = 0; i < split.length; i++) {
+/*                if (split[i].matches(reg)) {
+                    newMdImg += split[i] + "|";
+                    continue;
+                }*/
+					newMdImg += "http://" + request.getServerName() + split[i] + "|";
 				}
+				upload.setMdImg(newMdImg);
 			}
 		}
 		return getBootstrapData(page);

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

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

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

@@ -53,4 +53,11 @@ public interface MaterialModuleMapper extends BaseMapper<MaterialModule> {
     //根据流程实列id修改项目记录领料次数信息
     void updateModuleById(MaterialModule module);
 
+    void updateNonPower(String procInsId);
+
+    void updateElectrical(String procInsId);
+
+    void updatePower(String procInsId);
+
+    MaterialModule findByProcInsId(String procInsId);
 }

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

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.modules.sg.materialmodule.activiti.mapper.MaterialModuleMapper">
-    
-	<sql id="materialColumns">
+
+    <sql id="materialColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
 		a.create_date AS "createDate",
@@ -16,34 +16,34 @@
 		a.project_name AS "projectName",
 		a.project_type AS "projectType"
 	</sql>
-    
-	<select id="get" resultType="MaterialModule" >
-		SELECT 
-			<include refid="materialColumns"/>
-		FROM sg_construction_process a
-		WHERE a.proc_ins_id = #{procInsId}
-	</select>
-	
-	<select id="findList" resultType="MaterialModule" >
-		SELECT
-		<include refid="materialColumns"/>
-		FROM sg_construction_process a
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				ORDER BY a.update_date DESC
-			</otherwise>
-		</choose>
-	</select>
 
-<!--	修改提前施工状态0未提前施工,1提前施工
-	<update id="updatePreConstruction">
-		update xm_project_details set preConstruction = #{preConstruction} where id = #{id};
-	</update>-->
+    <select id="get" resultType="MaterialModule">
+        SELECT
+        <include refid="materialColumns"/>
+        FROM sg_construction_process a
+        WHERE a.proc_ins_id = #{procInsId}
+    </select>
+
+    <select id="findList" resultType="MaterialModule">
+        SELECT
+        <include refid="materialColumns"/>
+        FROM sg_construction_process a
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY a.update_date DESC
+            </otherwise>
+        </choose>
+    </select>
 
-	<insert id="insert">
+    <!--	修改提前施工状态0未提前施工,1提前施工
+        <update id="updatePreConstruction">
+            update xm_project_details set preConstruction = #{preConstruction} where id = #{id};
+        </update>-->
+
+    <insert id="insert">
 		insert into sg_construction_process (
 			id,
 			create_by,
@@ -57,7 +57,10 @@
 			project_id,
 			project_name,
 			project_type,
-			frequency
+			frequency,
+			nonPower,
+			electrical,
+			power
 		)values
 			(
 			#{id},
@@ -72,33 +75,37 @@
 			#{projectId},
 			#{projectName},
 			#{projectType},
-			#{frequency}
+			#{frequency},
+			#{nonPower},
+			#{electrical},
+			#{power}
 			)
 	</insert>
 
-	<update id="updateConstructionStatus">
+    <update id="updateConstructionStatus">
 		update xm_project_details set construction_status = '1' where id=#{projectId}
 	</update>
 
-	<select id="findProjectName" resultType="string">
+    <select id="findProjectName" resultType="string">
 		select project_name from sg_construction_process where proc_ins_id = #{procInsId};
 	</select>
 
-	<select id="findSpecificTime" resultType="java.util.Date">
+    <select id="findSpecificTime" resultType="java.util.Date">
 		select specificTime from ms_construction_project where projectName = #{projectName};
 	</select>
 
-	<select id="findUserId" parameterType="java.util.List" resultType="java.lang.String">
-		 select id from sys_user
-		 where name in
-		 (
-			<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
-				#{item}
-			</foreach>
-		 )
-	</select>
+    <select id="findUserId" parameterType="java.util.List" resultType="java.lang.String">
+        select id from sys_user
+        where name in
+        (
+        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        )
+    </select>
 
-	<select id="findProject" resultType="com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject">
+    <select id="findProject"
+            resultType="com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject">
 		select id
 		, create_by
 		, create_date
@@ -132,7 +139,7 @@
 		where projectName = #{projectName}
 	</select>
 
-	<insert id="conProject">
+    <insert id="conProject">
 		  INSERT INTO ms_construction_project(
 			id,
 			create_by,
@@ -199,28 +206,46 @@
 		)
 	</insert>
 
-	<select id="findMonthProject" resultType="com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject">
+    <select id="findMonthProject"
+            resultType="com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject">
 		select projectName,endFlag from ms_construction_project where DATE_FORMAT( arrangeTime, '%Y%m' ) = DATE_FORMAT( CURDATE() , '%Y%m' )
 	</select>
 
-	<select id="findMaterialProject" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
-		select id,proc_ins_id, user_name, project_id, project_name, project_type from sg_construction_process where project_name
-		(
-			<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
-				#{item.projectName}
-			</foreach>
-		)
-	</select>
+    <select id="findMaterialProject" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
+        select id,proc_ins_id, user_name, project_id, project_name, project_type from sg_construction_process where
+        project_name
+        (
+        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+            #{item.projectName}
+        </foreach>
+        )
+    </select>
 
-	<update id="updateEndFlag">
+    <update id="updateEndFlag">
 		update ms_construction_project set endFlag = 1 where projectName = #{projectName};
 	</update>
 
-	<select id="getModuleById" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
+    <select id="getModuleById" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
 		select project_name,proc_ins_id,now_project_name,frequency from sg_construction_process where proc_ins_id = #{procInsId};
 	</select>
 
-	<update id="updateModuleById">
+    <update id="updateModuleById">
 		update sg_construction_process set frequency = #{frequency},now_project_name=#{nowProjectName} where proc_ins_id = #{procInsId};
 	</update>
+
+    <update id="updateNonPower">
+		update sg_construction_process set nonPower = 0 where proc_ins_id  = #{procInsId}
+	</update>
+
+    <update id="updateElectrical">
+		update sg_construction_process set electrical = 0 where proc_ins_id  = #{procInsId}
+	</update>
+
+    <update id="updatePower">
+		update sg_construction_process set power = 0 where proc_ins_id  = #{procInsId}
+	</update>
+	
+	<select id="findByProcInsId" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
+		select project_name,proc_ins_id,nonPower,electrical,power from sg_construction_process where proc_ins_id  = #{procInsId};
+	</select>
 </mapper>

+ 86 - 66
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java

@@ -19,6 +19,7 @@ import java.util.List;
 
 /**
  * 请假表单Service
+ *
  * @author lgf
  * @version 2018-06-12
  */
@@ -26,70 +27,89 @@ import java.util.List;
 @Transactional(readOnly = true)
 public class MaterialModuleService extends CrudService<MaterialModuleMapper, MaterialModule> {
     @Autowired
-	private MaterialModuleMapper materialModuleMapper;
-
-	public MaterialModule get(String id) {
-		MaterialModule materialModule = super.get(id);
-		return materialModule;
-	}
-
-	//查询项目信息
-	public String findProjectName (String procInsId){
-		return materialModuleMapper.findProjectName(procInsId);
-	}
-
-	//根据项目名称查询,项目计划开工时间
-	public Date findSpecificTime(String projectName){
-		return materialModuleMapper.findSpecificTime(projectName);
-	}
-
-	//根据角色名查找用户id
-	public List<String> findUserId(List<String> list){
-		return materialModuleMapper.findUserId(list);
-	}
-
-	//根据项目名称获取项目计划数据
-	public ConstructionProject findProject(String projectName){
-		return materialModuleMapper.findProject(projectName);
-	}
-
-	//插入对应的计划信息
-	@Transactional(readOnly = false)
-	public void conProject(ConstructionProject constructionProject){
-		materialModuleMapper.conProject(constructionProject);
-	}
-
-	//查询当月所有的计划项目信息
-	public List<ConstructionProject> findMonthProject(){
-		return materialModuleMapper.findMonthProject();
-	}
-
-	//根据list<项目名>查询所有的流程项目信息
-	public List<MaterialModule> findMaterialProject(List<ConstructionProject> list){
-		return materialModuleMapper.findMaterialProject(list);
-	}
-
-	//修改计划项目的是否竣工状态
-	@Transactional(readOnly = false)
-	public void updateEndFlag(String projectName){
-		materialModuleMapper.updateEndFlag(projectName);
-	}
-
-	//根据流程是列id获取流程信息
-	public MaterialModule getModuleById(String procInsId){
-		return materialModuleMapper.getModuleById(procInsId);
-	}
-
-	//根据流程实列id修改项目记录领料次数信息
-	@Transactional(readOnly = false)
-	public void updateModuleById(MaterialModule module){
-		materialModuleMapper.updateModuleById(module);
-	}
-
-	@Transactional(readOnly = false)
-	@Override
-	public void save(MaterialModule entity) {
-		materialModuleMapper.updateConstructionStatus(entity);
-		super.save(entity);
-	}
+    private MaterialModuleMapper materialModuleMapper;
+
+    public MaterialModule get(String id) {
+        MaterialModule materialModule = super.get(id);
+        return materialModule;
+    }
+
+    //查询项目信息
+    public String findProjectName(String procInsId) {
+        return materialModuleMapper.findProjectName(procInsId);
+    }
+
+    //根据项目名称查询,项目计划开工时间
+    public Date findSpecificTime(String projectName) {
+        return materialModuleMapper.findSpecificTime(projectName);
+    }
+
+    //根据角色名查找用户id
+    public List<String> findUserId(List<String> list) {
+        return materialModuleMapper.findUserId(list);
+    }
+
+    //根据项目名称获取项目计划数据
+    public ConstructionProject findProject(String projectName) {
+        return materialModuleMapper.findProject(projectName);
+    }
+
+    //插入对应的计划信息
+    @Transactional(readOnly = false)
+    public void conProject(ConstructionProject constructionProject) {
+        materialModuleMapper.conProject(constructionProject);
+    }
+
+    //查询当月所有的计划项目信息
+    public List<ConstructionProject> findMonthProject() {
+        return materialModuleMapper.findMonthProject();
+    }
+
+    //根据list<项目名>查询所有的流程项目信息
+    public List<MaterialModule> findMaterialProject(List<ConstructionProject> list) {
+        return materialModuleMapper.findMaterialProject(list);
+    }
+
+    //修改计划项目的是否竣工状态
+    @Transactional(readOnly = false)
+    public void updateEndFlag(String projectName) {
+        materialModuleMapper.updateEndFlag(projectName);
+    }
+
+    //根据流程是列id获取流程信息
+    public MaterialModule getModuleById(String procInsId) {
+        return materialModuleMapper.getModuleById(procInsId);
+    }
+
+    //根据流程实列id修改项目记录领料次数信息
+    @Transactional(readOnly = false)
+    public void updateModuleById(MaterialModule module) {
+        materialModuleMapper.updateModuleById(module);
+    }
+
+    @Transactional(readOnly = false)
+    @Override
+    public void save(MaterialModule entity) {
+        materialModuleMapper.updateConstructionStatus(entity);
+        super.save(entity);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateNonPower(String procInsId) {
+		materialModuleMapper.updateNonPower(procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateElectrical(String procInsId) {
+		materialModuleMapper.updateElectrical(procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void updatePower(String procInsId) {
+		materialModuleMapper.updatePower(procInsId);
+    }
+
+    public MaterialModule findByProcInsId(String procInsId) {
+        return materialModuleMapper.findByProcInsId(procInsId);
+    }
 }

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

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

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

@@ -123,6 +123,7 @@ public interface ShowListMapper extends BaseMapper<ShowList> {
      * */
     String findAcqStatus(ShowList showList);
 
+
     List<ExportListing> exportListing(List<String> list);
 
     /**

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

@@ -167,7 +167,7 @@
 	from md_process_list where procInsId = #{procInsId}
 	</select>
 
-	<select id="inventoryComparisonData" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+    <select id="findNewTemList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
 	SELECT
 		id,
 		procInsId,
@@ -176,19 +176,36 @@
 		materialDescription,
 		mdUnits,
 		mdTotalAmount,
+		mdTotalAmountAfter,
 		mdSingleWeight,
 		mdTotalWeight,
 		mdTheParty,
 		mdText
-	from md_process_list where procInsId in
-	(
-	<foreach collection="list" item="item" separator=",">
-		#{item}
-	</foreach>
-	)
+	from md_temporary_list where procInsId = #{procInsId}
 	</select>
 
-	<select id="findOneList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+    <select id="inventoryComparisonData" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+        SELECT
+        id,
+        procInsId,
+        materialCode,
+        extensionDescription,
+        materialDescription,
+        mdUnits,
+        mdTotalAmount,
+        mdSingleWeight,
+        mdTotalWeight,
+        mdTheParty,
+        mdText
+        from md_process_list where procInsId in
+        (
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </select>
+
+    <select id="findOneList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
 	SELECT
 		id,
 		procInsId,
@@ -205,7 +222,7 @@
 	</select>
 
 
-	<select id="itemQuery" resultType="string">
+    <select id="itemQuery" resultType="string">
 		select select_number from md_acquisition_process where proc_ins_id = #{procInsId}
 	</select>
 
@@ -216,97 +233,127 @@
 		where id = #{id};
 	</update>
 
-	<delete id="deleteData">
+
+    <select id="findOneTemList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+	SELECT
+		id,
+		procInsId,
+		materialCode,
+		extensionDescription,
+		materialDescription,
+		mdUnits,
+		mdTotalAmount,
+		mdSingleWeight,
+		mdTotalWeight,
+		mdTheParty,
+		mdText
+	from md_temporary_list where id = #{id}
+	</select>
+
+    <update id="updateTemAmount">
+		update md_temporary_list
+		set mdTotalAmount = #{mdTotalAmount},
+			mdTotalWeight=#{mdTotalWeight}
+		where id = #{id};
+	</update>
+
+    <delete id="deleteTemData">
+		delete from md_temporary_list where id=#{id};
+	</delete>
+
+
+    <delete id="deleteData">
 		delete from md_process_list where id=#{id};
 	</delete>
 
-	<select id="inventoryQuery" resultType="com.jeeplus.modules.sg.managementcenter.materialInventory.entity.MaterialInventory">
-		select materialCode,availableStockQuantity,materialDetail from xm_material_inventory
-		where materialCode in
-		(
-		<foreach collection="list" item="item" separator=",">
-			#{item.materialCode}
-		</foreach>
-		)
-	</select>
+    <select id="inventoryQuery"
+            resultType="com.jeeplus.modules.sg.managementcenter.materialInventory.entity.MaterialInventory">
+        select materialCode,availableStockQuantity,materialDetail from xm_material_inventory
+        where materialCode in
+        (
+        <foreach collection="list" item="item" separator=",">
+            #{item.materialCode}
+        </foreach>
+        )
+    </select>
 
-	<select id="processListQuery" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
-		select materialCode,mdTotalAmount,extensionDescription,materialDescription from md_process_list
-		where procInsId in
-		(
-		<foreach collection="list" item="item" separator=",">
-			#{item}
-		</foreach>
-		)
-	</select>
+    <select id="processListQuery" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+        select materialCode,mdTotalAmount,extensionDescription,materialDescription from md_process_list
+        where procInsId in
+        (
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </select>
 
-	<select id="acquisitionList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.Acquisition">
-		select
-		a.id,
-		a.proc_ins_id,
-		b.require_name as projectId,
-		b.pro_type as proType,
-		a.version,
-		a.the_number,
-		a.select_number,
-		a.exportStatus,
-		a.exportAfter,
-		a.exportTime,
-		a.managerTime
-		from md_acquisition_process as a
-		left join xm_project_details as b
-		on a.project_id = b.id
-		where exportStatus = '1'
-		<if test="projectId != null and projectId != ''">
-			AND b.require_name LIKE concat('%',#{projectId},'%')
-		</if>
-		order by managerTime desc,exportAfter desc
-	</select>
+    <select id="acquisitionList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.Acquisition">
+        select
+        a.id,
+        a.proc_ins_id,
+        b.require_name as projectId,
+        b.pro_type as proType,
+        a.version,
+        a.the_number,
+        a.select_number,
+        a.exportStatus,
+        a.exportAfter,
+        a.exportTime,
+        a.managerTime
+        from md_acquisition_process as a
+        left join xm_project_details as b
+        on a.project_id = b.id
+        where exportStatus = '1'
+        <if test="projectId != null and projectId != ''">
+            AND b.require_name LIKE concat('%',#{projectId},'%')
+        </if>
+        order by managerTime desc,exportAfter desc
+    </select>
 
-	<update id="updateManagerTime">
+    <update id="updateManagerTime">
 		update md_acquisition_process set managerTime = NOW(),exportStatus = 1 where proc_ins_id = #{procInsId};
 	</update>
 
-	<select id="selectAllId" resultType="java.lang.String">
+    <select id="selectAllId" resultType="java.lang.String">
 		select
 		a.id
 		from md_acquisition_process as a
 		where exportStatus = '1'
 	</select>
-	
-	<update id="updateAcqStatus">
+
+    <update id="updateAcqStatus">
 		update xm_project_details set acquisition_status = 1 where id = #{projectId};
 	</update>
 
-	<select id="findAcqStatus" resultType="java.lang.String">
+    <select id="findAcqStatus" resultType="java.lang.String">
 		select acquisition_status from xm_project_details where id = #{projectId};
 	</select>
 
-	<select id="exportListing" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ExportListing">
-		select
-		a.md_big_class AS "mdBigClass",
-		a.md_the_class AS "mdTheClass",
-		a.md_name AS "mdName",
-		a.material_code AS "materialCode",
-		a.material_description AS "materialDescription",
-		a.extension_description AS "extensionDescription",
-		a.md_units AS "mdUnits",
-		a.md_count AS "mdCount",
-		a.md_single_weight AS "mdSingleWeight",
-		a.md_total_weight AS "mdTotalWeight",
-		a.md_the_party AS "mdTheParty",
-		a.md_text AS "mdText",
-		a.md_total_amount AS "mdTotalAmount",
-		a.block_id AS "blockId"
-		from md_module_listing as a
-		where block_id in
-		<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
-			#{item}
-		</foreach>
-		order by material_code
-	</select>
+    <select id="exportListing" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ExportListing">
+        select
+        a.md_big_class AS "mdBigClass",
+        a.md_the_class AS "mdTheClass",
+        a.md_name AS "mdName",
+        a.material_code AS "materialCode",
+        a.material_description AS "materialDescription",
+        a.extension_description AS "extensionDescription",
+        a.md_units AS "mdUnits",
+        a.md_count AS "mdCount",
+        a.md_single_weight AS "mdSingleWeight",
+        a.md_total_weight AS "mdTotalWeight",
+        a.md_the_party AS "mdTheParty",
+        a.md_text AS "mdText",
+        a.md_total_amount AS "mdTotalAmount",
+        a.block_id AS "blockId"
+        from md_module_listing as a
+        where block_id in
+        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        order by material_code
+    </select>
 
-	<select id="findMdImg" resultType="com.jeeplus.modules.sg.picking.activiti.entity.PickIng">
+    <select id="findMdImg" resultType="com.jeeplus.modules.sg.picking.activiti.entity.PickIng">
 		select md_img as mdImg from md_module_block where id =  #{id};
 	</select>
 </mapper>

+ 4 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/service/ShowListService.java

@@ -48,6 +48,10 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 		return page;
 	}
 
+	public List<ShowList> findNewTemList(ShowList showList) {
+		return mapper.findNewTemList(showList);
+	}
+
 
 	public Page<Acquisition> acquisitionList(Page<Acquisition> page, Acquisition acquisition) {
 		dataRuleFilter(acquisition);

+ 115 - 78
src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java

@@ -1,6 +1,7 @@
 package com.jeeplus.modules.sg.picking.activiti.web;
 
 import com.google.common.collect.Maps;
+import com.jeeplus.common.config.Global;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
@@ -16,6 +17,7 @@ import com.jeeplus.modules.sg.audit.information.entity.OutInformation;
 import com.jeeplus.modules.sg.audit.material.entity.Material;
 import com.jeeplus.modules.sg.financial.erpcredit.util.ExportUtil;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.FindTask;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.materialInventory.entity.MaterialInventory;
@@ -73,9 +75,9 @@ public class PickIngController extends BaseController {
         String s = pickIngService.selectVersion(procInsId);
         ProjectNumber projectNumber = pickIngService.projectNumber(procInsId);
         PickIng pickIng = new PickIng();
-        List<PickList> pickListList = pickIngService.newAllList(pickIng,s);
-        model.addAttribute("showList",showList);
-        model.addAttribute("projectNumber",projectNumber);
+        List<PickList> pickListList = pickIngService.newAllList(pickIng, s);
+        model.addAttribute("showList", showList);
+        model.addAttribute("projectNumber", projectNumber);
         model.addAttribute("pickListList", pickListList);
         return "modules/sg/picking/activiti/pickIng";
     }
@@ -87,7 +89,7 @@ public class PickIngController extends BaseController {
     public String constructionLeader(ShowList showList, Model model) {
         model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
-        model.addAttribute("projectNumber",projectNumber);
+        model.addAttribute("projectNumber", projectNumber);
         return "modules/sg/picking/activiti/constructionLeader";
     }
 
@@ -98,7 +100,7 @@ public class PickIngController extends BaseController {
     public String managerAudit(ShowList showList, Model model) {
         model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
-        model.addAttribute("projectNumber",projectNumber);
+        model.addAttribute("projectNumber", projectNumber);
         return "modules/sg/picking/activiti/managerAudit";
     }
 
@@ -109,7 +111,7 @@ public class PickIngController extends BaseController {
     public String netExamine(ShowList showList, Model model) {
         model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
-        model.addAttribute("projectNumber",projectNumber);
+        model.addAttribute("projectNumber", projectNumber);
         return "modules/sg/picking/activiti/netExamine";
     }
 
@@ -120,7 +122,7 @@ public class PickIngController extends BaseController {
     public String fullExamine(ShowList showList, Model model) {
         model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
-        model.addAttribute("projectNumber",projectNumber);
+        model.addAttribute("projectNumber", projectNumber);
         return "modules/sg/picking/activiti/fullExamine";
     }
 
@@ -131,7 +133,7 @@ public class PickIngController extends BaseController {
     public String leaderExamine(ShowList showList, Model model) {
         model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
-        model.addAttribute("projectNumber",projectNumber);
+        model.addAttribute("projectNumber", projectNumber);
         return "modules/sg/picking/activiti/leaderExamine";
     }
 
@@ -216,6 +218,25 @@ public class PickIngController extends BaseController {
     @RequestMapping(value = "pickPicData")
     public Map<String, Object> pickPicData(PickIng pickIng, HttpServletRequest request, HttpServletResponse response, Model model) {
         Page<PickIng> page = showListService.findNewImgPage(new Page<PickIng>(request, response), pickIng);
+        //当判定系统为linux的时候
+        if (Global.SYS_TYPE.equals("2")) {
+        List<PickIng> list = page.getList();
+        for (PickIng upload :
+                list) {
+            String mdImg = upload.getMdImg();
+            String newMdImg = "";
+            String[] split = mdImg.split("\\|");
+//            String reg = "(?i).+?\\.(jpg|gif|bmp)";
+            for (int i = 0; i < split.length; i++) {
+/*                if (split[i].matches(reg)) {
+                    newMdImg += split[i] + "|";
+                    continue;
+                }*/
+                newMdImg += "http://" + request.getServerName() + split[i] + "|";
+            }
+            upload.setMdImg(newMdImg);
+        }
+        }
         return getBootstrapData(page);
     }
 
@@ -244,8 +265,8 @@ public class PickIngController extends BaseController {
     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()+"次领料单");
+        for (Acquisition a : list) {
+            a.setTheNumber("第" + a.getTheNumber() + "次领料单");
         }
         return getBootstrapData(page);
     }
@@ -260,44 +281,44 @@ public class PickIngController extends BaseController {
         List<MaterialInventory> materialInventoryList = showListService.inventoryQuery(list);
         //查询在当前节点的所有流程实例编号
         List<String> activity = MyActiviUtils.findMdActivity("领料:配网物资专职审核领料单");
-        if (activity!=null&&activity.size()>0) {
-        //根据编号查询到所有的物料信息
-        List<ShowList> showLists = showListService.processListQuery(activity);
-        //相同的物料信息相加
-        HashMap<String, ShowList> tempMap = new HashMap<String, ShowList>();
-        for (ShowList show : showLists) {
-            String materialCode = show.getMaterialCode() + "|" + show.getExtensionDescription() + "|" + show.getExtensionDescription();
-            if (tempMap.containsKey(materialCode)) {
-                ShowList needShow = new ShowList();
-                tempMap.get(materialCode).setMdTotalAmount(tempMap.get(materialCode).getMdTotalAmount() + show.getMdTotalAmount());
-            } else {
-                tempMap.put(materialCode, show);
-            }
-        }
-        //合并后的list
-        List<ShowList> newShowList = new ArrayList<>();
-        Iterator<Map.Entry<String, ShowList>> iterator = tempMap.entrySet().iterator();
-        while (iterator.hasNext()) {
-            Map.Entry<String, ShowList> next = iterator.next();
-            ShowList newShow = next.getValue();
-            newShowList.add(newShow);
-        }
-        //返回定义物料编码的数据
-        for (ShowList show : list) {
-            //可用库存/
-            for (MaterialInventory ava : materialInventoryList) {
-                if (show.getMaterialCode().equals(ava.getMaterialCode()) && show.getMaterialDescription().equals(ava.getMaterialDetail())) {
-                    show.setAvailableStockQuantity(ava.getAvailableStockQuantity());
+        if (activity != null && activity.size() > 0) {
+            //根据编号查询到所有的物料信息
+            List<ShowList> showLists = showListService.processListQuery(activity);
+            //相同的物料信息相加
+            HashMap<String, ShowList> tempMap = new HashMap<String, ShowList>();
+            for (ShowList show : showLists) {
+                String materialCode = show.getMaterialCode() + "|" + show.getExtensionDescription() + "|" + show.getExtensionDescription();
+                if (tempMap.containsKey(materialCode)) {
+                    ShowList needShow = new ShowList();
+                    tempMap.get(materialCode).setMdTotalAmount(tempMap.get(materialCode).getMdTotalAmount() + show.getMdTotalAmount());
+                } else {
+                    tempMap.put(materialCode, show);
                 }
             }
-            //当前节点的使用库存
-            for (ShowList newShow : newShowList) {
-                if (show.getMaterialCode().equals(newShow.getMaterialCode()) && show.getExtensionDescription().equals(newShow.getExtensionDescription()) && show.getMaterialDescription().equals(newShow.getMaterialDescription())) {
-                    show.setNowNumber(newShow.getMdTotalAmount());
+            //合并后的list
+            List<ShowList> newShowList = new ArrayList<>();
+            Iterator<Map.Entry<String, ShowList>> iterator = tempMap.entrySet().iterator();
+            while (iterator.hasNext()) {
+                Map.Entry<String, ShowList> next = iterator.next();
+                ShowList newShow = next.getValue();
+                newShowList.add(newShow);
+            }
+            //返回定义物料编码的数据
+            for (ShowList show : list) {
+                //可用库存/
+                for (MaterialInventory ava : materialInventoryList) {
+                    if (show.getMaterialCode().equals(ava.getMaterialCode()) && show.getMaterialDescription().equals(ava.getMaterialDetail())) {
+                        show.setAvailableStockQuantity(ava.getAvailableStockQuantity());
+                    }
+                }
+                //当前节点的使用库存
+                for (ShowList newShow : newShowList) {
+                    if (show.getMaterialCode().equals(newShow.getMaterialCode()) && show.getExtensionDescription().equals(newShow.getExtensionDescription()) && show.getMaterialDescription().equals(newShow.getMaterialDescription())) {
+                        show.setNowNumber(newShow.getMdTotalAmount());
+                    }
                 }
             }
         }
-        }
         Collections.sort(list);
         return getBootstrapData(page);
     }
@@ -315,7 +336,7 @@ public class PickIngController extends BaseController {
 
         //先查出所有在物资专职的节点的信息
         List<String> activity = MyActiviUtils.findMdActivity("领料:配网物资专职审核领料单");
-        Page<ShowList> page = showListService.inventoryComparisonData(new Page<ShowList>(request, response),showList, activity);
+        Page<ShowList> page = showListService.inventoryComparisonData(new Page<ShowList>(request, response), showList, activity);
         List<ShowList> list = page.getList();
         //相同的物料信息相加
         HashMap<String, ShowList> tempMap = new HashMap<String, ShowList>();
@@ -367,7 +388,7 @@ public class PickIngController extends BaseController {
             return j;
         }
         String projectId = showList.getProjectId();
-        if (projectId == null||"".equals(projectId)) {
+        if (projectId == null || "".equals(projectId)) {
             j.setSuccess(false);
             j.setMsg("请选择项目");
             return j;
@@ -410,7 +431,7 @@ public class PickIngController extends BaseController {
 
     /**
      * 领料申请流程发起
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "pickSave")
     public AjaxJson pickSave(PickApplication pickApplication, Model model) throws Exception {
@@ -425,7 +446,7 @@ public class PickIngController extends BaseController {
             return j;
         }
         String projectId = pickApplication.getProjectId();
-        if (projectId == null||"".equals(projectId)) {
+        if (projectId == null || "".equals(projectId)) {
             j.setSuccess(false);
             j.setMsg("请选择项目");
             return j;
@@ -445,7 +466,7 @@ public class PickIngController extends BaseController {
             Project user = MyActiviUtils.findUser(pickApplication.getAct().getProcInsId());
             vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
             j.setMsg("发起流程审批成功!");
-        }else {
+        } else {
             showListService.projectUpdate(pickApplication);
             vars.put("noFull", true);
             j.setMsg("项目可发起领料流程!");
@@ -462,7 +483,7 @@ public class PickIngController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "mdTotalAmount")
-    public AjaxJson mdTotalAmount(ShowList showList, String mdTotalAmount,Model model) throws Exception {
+    public AjaxJson mdTotalAmount(ShowList showList, String mdTotalAmount, Model model) throws Exception {
         AjaxJson j = new AjaxJson();
         //获取新的数量
         Double aDouble = Double.valueOf(mdTotalAmount);
@@ -473,7 +494,7 @@ public class PickIngController extends BaseController {
         Double mdSingleWeight = oneList.getMdSingleWeight();
         BigDecimal b1 = new BigDecimal(aDouble);
         BigDecimal b2 = new BigDecimal(mdSingleWeight);
-        double v =  b1.multiply(b2).doubleValue();
+        double v = b1.multiply(b2).doubleValue();
         showList.setMdTotalWeight(v);
         showListService.updateAmount(showList);
         j.setMsg("成功");
@@ -485,7 +506,7 @@ public class PickIngController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "mdTotalTemAmount")
-    public AjaxJson mdTotalTemAmount(ShowList showList, String mdTotalAmount,Model model) throws Exception {
+    public AjaxJson mdTotalTemAmount(ShowList showList, String mdTotalAmount, Model model) throws Exception {
         AjaxJson j = new AjaxJson();
         //获取新的数量
         Double aDouble = Double.valueOf(mdTotalAmount);
@@ -496,7 +517,7 @@ public class PickIngController extends BaseController {
         Double mdSingleWeight = oneList.getMdSingleWeight();
         BigDecimal b1 = new BigDecimal(aDouble);
         BigDecimal b2 = new BigDecimal(mdSingleWeight);
-        double v =  b1.multiply(b2).doubleValue();
+        double v = b1.multiply(b2).doubleValue();
         showList.setMdTotalWeight(v);
         showListService.updateTemAmount(showList);
         j.setMsg("成功");
@@ -507,10 +528,10 @@ public class PickIngController extends BaseController {
      * 施工项目经理审定领料清单
      */
     @RequestMapping(value = "managerExam")
-    public String managerExam(ShowList showList, Model model,Act act) {
+    public String managerExam(ShowList showList, Model model, Act act) {
         model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
-        model.addAttribute("projectNumber",projectNumber);
+        model.addAttribute("projectNumber", projectNumber);
         model.addAttribute("act", act);
         return "modules/sg/picking/activiti/managerExam";
     }
@@ -522,8 +543,8 @@ public class PickIngController extends BaseController {
     @RequestMapping(value = "deleteAll")
     public AjaxJson deleteAll(String ids) {
         AjaxJson j = new AjaxJson();
-        String idArray[] =ids.split(",");
-        for(String id : idArray){
+        String idArray[] = ids.split(",");
+        for (String id : idArray) {
             showListService.deleteData(id);
         }
         j.setMsg("删除成功!");
@@ -537,8 +558,8 @@ public class PickIngController extends BaseController {
     @RequestMapping(value = "deleteAllTem")
     public AjaxJson deleteAllTem(String ids) {
         AjaxJson j = new AjaxJson();
-        String idArray[] =ids.split(",");
-        for(String id : idArray){
+        String idArray[] = ids.split(",");
+        for (String id : idArray) {
             showListService.deleteTemData(id);
         }
         j.setMsg("删除成功!");
@@ -550,7 +571,7 @@ public class PickIngController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "netSave")
-    public AjaxJson netSave(String project,Double mdTotalAmount,String procInsId) {
+    public AjaxJson netSave(String project, Double mdTotalAmount, String procInsId) {
         AjaxJson j = new AjaxJson();
         try {
             ShowList showList = new ShowList();
@@ -597,7 +618,7 @@ public class PickIngController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "netTemSave")
-    public AjaxJson netTemSave(String project,Double mdTotalAmount,String procInsId) {
+    public AjaxJson netTemSave(String project, Double mdTotalAmount, String procInsId) {
         AjaxJson j = new AjaxJson();
         try {
             ShowList showList = new ShowList();
@@ -626,7 +647,7 @@ public class PickIngController extends BaseController {
             //备注
             showList.setMdText("");
 
-            List<ShowList> insertList = new ArrayList<>();
+            List<ShowList> insertList =  new ArrayList<>();
             insertList.add(showList);
             //将信息和数量存入对应表
             pickIngService.processTemList(insertList);
@@ -641,13 +662,13 @@ public class PickIngController extends BaseController {
 
     /**
      * 成本
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "exportErpData")
-    public AjaxJson exportErpData(String id,String projectId, HttpServletRequest request, HttpServletResponse response) {
+    public AjaxJson exportErpData(String id, String projectId, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            projectId = URLDecoder.decode(projectId,"UTF-8");
+            projectId = URLDecoder.decode(projectId, "UTF-8");
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
@@ -665,22 +686,30 @@ public class PickIngController extends BaseController {
         //成本项目列表
         List<Acquisition> cbList = new ArrayList<>();
         //循环数据,根据类型分组
-        for (Acquisition acquisition:erpType) {
+        for (Acquisition acquisition : erpType) {
             String itemType = acquisition.getProType();
             if ("配网成本".equals(itemType)) {
                 cbList.add(acquisition);
             }
         }
-        if (cbList.size()>0) {
+        if (cbList.size() > 0) {
             try {
                 String fileName = "导出成本ERP" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
-                List<CapitalExport> capitalExports = pickIngService.cbList(cbList,projectId);
+                List<CapitalExport> capitalExports = pickIngService.cbList(cbList, projectId);
                 new ExportExcel("导出成本ERP", CapitalExport.class).setDataList(capitalExports).write(response, fileName).dispose();
                 j.setSuccess(true);
                 j.setMsg("导出成功!");
             } catch (IOException e) {
                 e.printStackTrace();
             }
+        } else {
+            try {
+                String fileName = "没有对应的项目信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+                List<CapitalExport> nullExports = new ArrayList<>();
+                new ExportExcel("没有对应的项目信息", CapitalExport.class).setDataList(nullExports).write(response,fileName ).dispose();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
         }
         //需改导出状态及导出时间
         return j;
@@ -688,13 +717,13 @@ public class PickIngController extends BaseController {
 
     /**
      * 资本
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "exportZb")
-    public AjaxJson exportZb(String id,String projectId, HttpServletRequest request, HttpServletResponse response) {
+    public AjaxJson exportZb(String id, String projectId, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            projectId = URLDecoder.decode(projectId,"UTF-8");
+            projectId = URLDecoder.decode(projectId, "UTF-8");
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
@@ -713,23 +742,31 @@ public class PickIngController extends BaseController {
         //资本项目列表
         List<Acquisition> zbList = new ArrayList<>();
         //循环数据,根据类型分组
-        for (Acquisition acquisition:erpType) {
+        for (Acquisition acquisition : erpType) {
             String itemType = acquisition.getProType();
             if ("配网资本".equals(itemType)) {
                 zbList.add(acquisition);
             }
         }
         //根据不同类型导出不同的文件
-        if (zbList.size()>0) {
+        if (zbList.size() > 0) {
             try {
                 String fileName = "导出资本ERP" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
-                List<CapitalExport> capitalExports = pickIngService.zbList(zbList,projectId);
+                List<CapitalExport> capitalExports = pickIngService.zbList(zbList, projectId);
                 new ExportExcel("导出资本ERP", CapitalExport.class).setDataList(capitalExports).write(response, fileName).dispose();
                 j.setSuccess(true);
                 j.setMsg("导出成功!");
             } catch (IOException e) {
                 e.printStackTrace();
             }
+        }else {
+            try {
+                String fileName = "没有对应的项目信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+                List<CapitalExport> nullExports = new ArrayList<>();
+                new ExportExcel("没有对应的项目信息", CapitalExport.class).setDataList(nullExports).write(response,fileName ).dispose();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
         }
         //需改导出状态及导出时间
         return j;
@@ -737,13 +774,13 @@ public class PickIngController extends BaseController {
 
     /**
      * 导出领料清单
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "exportBlock")
     public AjaxJson exportBlock(String procInsId, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            procInsId = URLDecoder.decode(procInsId,"UTF-8");
+            procInsId = URLDecoder.decode(procInsId, "UTF-8");
             String fileName = "导出领料清单" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
             List<ExportBlock> exportBlock = pickIngService.findExportBlock(procInsId);
             new ExportExcel("导出领料清单", ExportBlock.class).setDataList(exportBlock).write(response, fileName).dispose();
@@ -759,13 +796,13 @@ public class PickIngController extends BaseController {
 
     /**
      * 导出模块清单
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "exportListing")
     public AjaxJson exportListing(String procInsId, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            procInsId = URLDecoder.decode(procInsId,"UTF-8");
+            procInsId = URLDecoder.decode(procInsId, "UTF-8");
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
@@ -774,7 +811,7 @@ public class PickIngController extends BaseController {
         String item = showListService.itemQuery(procInsId);
         //返回给页面的list
         List<ShowList> myList = new ArrayList<>();
-        if (item != null&&!"".equals(item)) {
+        if (item != null && !"".equals(item)) {
             String[] split = item.split(";");
             //回显list
             List<ExportListing> returnList = new ArrayList<>();

+ 15 - 1
src/main/java/com/jeeplus/modules/test/pic/web/TestPicController.java

@@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.ConstraintViolationException;
 
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -75,7 +76,20 @@ public class TestPicController extends BaseController {
 	@RequiresPermissions("test:pic:testPic:list")
 	@RequestMapping(value = "data")
 	public Map<String, Object> data(TestPic testPic, HttpServletRequest request, HttpServletResponse response, Model model) {
-		Page<TestPic> page = testPicService.findPage(new Page<TestPic>(request, response), testPic); 
+		Page<TestPic> page = testPicService.findPage(new Page<TestPic>(request, response), testPic);
+		if (Global.SYS_TYPE.equals("2")) {
+			List<TestPic> list = page.getList();
+			for (TestPic upload:
+					list) {
+				String a = "";
+				String path = upload.getPic();
+				String[] split = path.split("\\|");
+				for (int i = 0; i < split.length; i++) {
+					a += "http://" + request.getServerName() + split[i] + "|";
+				}
+				upload.setPic(a);
+			}
+		}
 		return getBootstrapData(page);
 	}
 

+ 1 - 13
src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideForm.jsp

@@ -17,7 +17,6 @@
 				var flag81 = false;//记录选择无问题的同时,有没有选择其它问题类型
 				var nValue = $('input[name="favorite"]:checked');
 				$('input[name="favorite"]:checked').each(function(){//遍历每一个名字为interest的复选框,其中选中的执行函数
-					console.log($(this).val());
 					//判断选取的值如果时pass2,flag2为true,代表选择了项目关闭,选取的值不为pass2,flag1为true代表其它类型被选择
 					if ("pass8" == $(this).val()){
 						flag8 = true;
@@ -206,7 +205,7 @@
 								</td>
 							</tr>
 							<tr>
-								<td class="width-15 active"><label class="pull-right"> 线路名称一致性:</label></td>
+								<td class="width-15 active"><label class="pull-right"> 线路名称、设备、开关、杆号一致性:</label></td>
 								<td class="width-35">
 									<c:choose>
 										<c:when test="${not empty construction.disclose.lineName}">
@@ -232,17 +231,6 @@
 
 							</tr>
 							<tr>
-								<td class="width-15 active"><label class="pull-right"> 设备、开关、杆号一致性:</label></td>
-								<td class="width-35">
-									<c:choose>
-										<c:when test="${not empty construction.disclose.rodNumber}">
-											<input type='text' readonly="readonly" id='rodNumber'  name="rodNumber" class="form-control required"  value="${construction.disclose.rodNumber}"/>
-										</c:when>
-										<c:otherwise>
-											<input type='text' readonly="readonly" id='rodNumber'  name="rodNumber" class="form-control required"  value="一致"/>
-										</c:otherwise>
-									</c:choose>
-								</td>
 								<td class="width-15 active"><label class="pull-right"> 图纸现场不一致描述:</label></td>
 								<td class="width-35">
 									<input type='text' readonly="readonly" id='inconsistentDescription'  name="overallTransformation" class="form-control required"  value="${construction.disclose.inconsistentDescription}"/>

+ 129 - 85
src/main/webapp/webpage/modules/sg/managementcenter/activiti/editCon.jsp

@@ -6,19 +6,65 @@
     <meta name="decorator" content="ani"/>
     <!-- SUMMERNOTE -->
     <%@include file="/webpage/include/summernote.jsp" %>
-    <%@include file="divideForm.js" %>
+    <style type="text/css">
+        input::-webkit-input-placeholder {
+            color: red !important;
+        }
+
+        input::-moz-placeholder { /* Mozilla Firefox 19+ */
+            color: red !important;
+        }
+
+        input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
+            color: red !important;
+        }
+
+        input:-ms-input-placeholder { /* Internet Explorer 10-11 */
+            color: red !important;
+        }
+    </style>
     <script type="text/javascript">
-        $(document).ready(function() {
+        $(document).ready(function () {
             $('#beginDate').datetimepicker({
                 format: "YYYY-MM-DD HH:mm:ss"
             });
             $('#endDate').datetimepicker({
                 format: "YYYY-MM-DD HH:mm:ss"
             });
+            $('select').change(function () {
+                var hiddenDanger = $('#hiddenDanger').val();
+                var influenceConstruction = $('#influenceConstruction').val();
+                var projectRepetition = $('#projectRepetition').val();
+                var implemented = $('#implemented').val();
+                var transformer = $('#transformer').val();
+                if (hiddenDanger == '有' || influenceConstruction == '是' || projectRepetition == '是' || implemented == '是' || transformer == '无') {
+                    $('#explanationOfNecessity').attr('placeholder', '项目实施必要性描述不能为空');
+                } else if (hiddenDanger == '无' && influenceConstruction == '否' && projectRepetition == '否' && implemented == '否' && transformer == '有') {
+                    $('#explanationOfNecessity').removeAttr('placeholder');
+                }
+
+                var lineName = $('#lineName').val();
+                var quantities = $('#quantities').val();
+                if (lineName == '不一致' || quantities == '否') {
+                    $('#inconsistentDescription').attr('placeholder', '项目实施必要性描述不能为空');
+                } else if (lineName == '一致' && quantities == '是') {
+                    $('#inconsistentDescription').removeAttr('placeholder');
+                }
+
+                var administrationType = $('#administrationType').val();
+                if (administrationType != '1.无') {
+                    $('#policyHandlingInstructions').attr('placeholder', '项目实施必要性描述不能为空');
+                } else {
+                    $('#policyHandlingInstructions').removeAttr('placeholder');
+                }
+
+            });
+
         });
+
         function save() {
             jp.loading();
-            jp.post("${ctx}/managementcenter/activiti/editConSave",$("#inputForm").serialize(),function (data) {
+            jp.post("${ctx}/managementcenter/activiti/editConSave", $("#inputForm").serialize(), function (data) {
                 if (data.success) {
                     jp.getParent().refresh();
                     var dialogIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
@@ -59,154 +105,152 @@
                             <tr>
                                 <td class="width-15 active"><label class="pull-right">现场设备尺寸:</label></td>
                                 <td class="width-35">
-									<form:input path="disclose.sceneSize" cssClass="form-control"/>
+                                    <form:input path="disclose.sceneSize" cssClass="form-control"/>
                                 </td>
                                 <td class="width-15 active"><label class="pull-right"> 最多可扩容尺寸:</label></td>
                                 <td class="width-35">
-									<form:input path="disclose.capacitySize" cssClass="form-control"/>
+                                    <form:input path="disclose.capacitySize" cssClass="form-control"/>
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="pull-right">方案安全隐患:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.hiddenDanger" cssClass="form-control">
-										<form:option value="无"/>
-										<form:option value="有"/>
-									</form:select>
+                                    <form:select id="hiddenDanger" path="disclose.hiddenDanger" cssClass="form-control">
+                                        <form:option value="无"/>
+                                        <form:option value="有"/>
+                                    </form:select>
                                 </td>
                                 <td class="width-15 active"><label class="pull-right"> 是否存在低压或通信线等影响施工:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.influenceConstruction" cssClass="form-control">
-										<form:option value="否"/>
-										<form:option value="是"/>
-									</form:select>
+                                    <form:select id="influenceConstruction" path="disclose.influenceConstruction"
+                                                 cssClass="form-control">
+                                        <form:option value="否"/>
+                                        <form:option value="是"/>
+                                    </form:select>
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="pull-right">立项重复:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.projectRepetition" cssClass="form-control">
-										<form:option value="否"/>
-										<form:option value="是"/>
-									</form:select>
+                                    <form:select id="projectRepetition" path="disclose.projectRepetition"
+                                                 cssClass="form-control">
+                                        <form:option value="否"/>
+                                        <form:option value="是"/>
+                                    </form:select>
                                 </td>
                                 <td class="width-15 active"><label class="pull-right"> 是否已实施:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.implemented" cssClass="form-control">
-										<form:option value="否"/>
-										<form:option value="是"/>
-									</form:select>
+                                    <form:select id="implemented" path="disclose.implemented" cssClass="form-control">
+                                        <form:option value="否"/>
+                                        <form:option value="是"/>
+                                    </form:select>
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="pull-right">变压器无负荷:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.transformer" cssClass="form-control">
-										<form:option value="有"/>
-										<form:option value="无"/>
-									</form:select>
+                                    <form:select id="transformer" path="disclose.transformer" cssClass="form-control">
+                                        <form:option value="有"/>
+                                        <form:option value="无"/>
+                                    </form:select>
                                 </td>
                                 <td class="width-15 active"><label class="pull-right">项目实施必要性描述</label></td>
                                 <td class="width-35">
-									<form:input path="disclose.explanationOfNecessity" cssClass="form-control"/>
+                                    <form:input id="explanationOfNecessity" path="disclose.explanationOfNecessity"
+                                                cssClass="form-control"/>
                                 </td>
                             </tr>
                             <tr>
-                                <td class="width-15 active"><label class="pull-right"> 线路名称一致性:</label></td>
+                                <td class="width-15 active"><label class="pull-right"> 线路、设备、开关、杆号一致性:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.lineName" cssClass="form-control">
-										<form:option value="一致"/>
-										<form:option value="不一致"/>
-									</form:select>
+                                    <form:select id="lineName" path="disclose.lineName" cssClass="form-control">
+                                        <form:option value="一致"/>
+                                        <form:option value="不一致"/>
+                                    </form:select>
                                 </td>
                                 <td class="width-15 active"><label class="pull-right">工程量是否一致:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.quantities" cssClass="form-control">
-										<form:option value="是"/>
-										<form:option value="否"/>
-									</form:select>
+                                    <form:select id="quantities" path="disclose.quantities" cssClass="form-control">
+                                        <form:option value="是"/>
+                                        <form:option value="否"/>
+                                    </form:select>
                                 </td>
                             </tr>
                             <tr>
-                                <td class="width-15 active"><label class="pull-right"> 设备、开关、杆号一致性:</label></td>
+                                <td class="width-15 active"><label class="pull-right"> 图纸现场不一致描述:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.rodNumber" cssClass="form-control">
-										<form:option value="一致"/>
-										<form:option value="不一致"/>
-									</form:select>
+                                    <form:input id="inconsistentDescription" path="disclose.inconsistentDescription"
+                                                cssClass="form-control"/>
                                 </td>
-                                <td class="width-15 active"><label class="pull-right"> 图纸现场不一致描述:</label></td>
+                                <td class="width-15 active"><label class="pull-right">政处类型:</label></td>
                                 <td class="width-35">
-									<form:input path="disclose.inconsistentDescription" cssClass="form-control"/>
+                                    <form:select id="administrationType" path="disclose.administrationType"
+                                                 cssClass="form-control">
+                                        <form:option value="1.无"/>
+                                        <form:option value="2.农村政处"/>
+                                        <form:option value="3.民事政处/行政政处(公路/水利)"/>
+                                        <form:option value="4.行政政处(城区道路)"/>
+                                        <form:option value="5.农村政处;民事政处/行政政处(公路/水利)"/>
+                                        <form:option value="6.农村政处;行政政处(城区道路)"/>
+                                        <form:option value="7.民事政处/行政政处(公路/水利);行政政处(城区道路)"/>
+                                        <form:option value="8.农村政处;民事政处/行政政处(公路/水利);行政政处(城区道路)"/>
+                                    </form:select>
                                 </td>
                             </tr>
                             <tr>
-                                <td class="width-15 active"><label class="pull-right">政处类型:</label></td>
+                                <td class="width-15 active"><label class="pull-right">政策处理描述:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.administrationType" cssClass="form-control">
-										<form:option value="1.无"/>
-										<form:option value="2.农村政处"/>
-										<form:option value="3.民事政处/行政政处(公路/水利)"/>
-										<form:option value="4.行政政处(城区道路)"/>
-										<form:option value="5.农村政处;民事政处/行政政处(公路/水利)"/>
-										<form:option value="6.农村政处;行政政处(城区道路)"/>
-										<form:option value="7.民事政处/行政政处(公路/水利);行政政处(城区道路)"/>
-										<form:option value="8.农村政处;民事政处/行政政处(公路/水利);行政政处(城区道路)"/>
-									</form:select>
+                                    <form:input id="policyHandlingInstructions"
+                                                path="disclose.policyHandlingInstructions" cssClass="form-control"/>
                                 </td>
                                 <td class="width-15 active"><label class="pull-right">前置条件:</label></td>
                                 <td class="width-35">
-									<form:input path="disclose.precondition" cssClass="form-control"/>
+                                    <form:input id="precondition" path="disclose.precondition" cssClass="form-control"/>
                                 </td>
                             </tr>
                             <tr>
-                                <td class="width-15 active"><label class="pull-right">政策处理描述:</label></td>
-                                <td class="width-35">
-									<form:input path="disclose.policyHandlingInstructions" cssClass="form-control"/>
-                                </td>
                                 <td class="width-15 active"><label class="pull-right"> DTU安放方式核查:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.placementMode" cssClass="form-control">
-										<form:option value="无"/>
-										<form:option value="户内"/>
-										<form:option value="户外"/>
-									</form:select>
+                                    <form:select path="disclose.placementMode" cssClass="form-control">
+                                        <form:option value="无"/>
+                                        <form:option value="户内"/>
+                                        <form:option value="户外"/>
+                                    </form:select>
                                 </td>
-                            </tr>
-                            <tr>
                                 <td class="width-15 active"><label class="pull-right">核查环网柜生产日期:</label></td>
                                 <td class="width-35">
-									<form:input path="disclose.productionDate" cssClass="form-control"/>
+                                    <form:input path="disclose.productionDate" cssClass="form-control"/>
                                 </td>
+                            </tr>
+                            <tr>
+
                                 <td class="width-15 active"><label class="pull-right"> 二次是否是集成模块:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.integrateModule" cssClass="form-control">
-										<form:option value="否"/>
-										<form:option value="是"/>
-									</form:select>
+                                    <form:select path="disclose.integrateModule" cssClass="form-control">
+                                        <form:option value="否"/>
+                                        <form:option value="是"/>
+                                    </form:select>
                                 </td>
-
-                            </tr>
-                            <tr>
                                 <td class="width-15 active"><label class="pull-right">PT是否需要更换:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.needReplace" cssClass="form-control">
-										<form:option value="否"/>
-										<form:option value="是"/>
-									</form:select>
+                                    <form:select path="disclose.needReplace" cssClass="form-control">
+                                        <form:option value="否"/>
+                                        <form:option value="是"/>
+                                    </form:select>
                                 </td>
+                            </tr>
+                            <tr>
+
                                 <td class="width-15 active"><label class="pull-right"> 设备是否有整体改造的必要:</label></td>
                                 <td class="width-35">
-									<form:select path="disclose.overallTransformation" cssClass="form-control">
-										<form:option value="否"/>
-										<form:option value="是"/>
-									</form:select>
+                                    <form:select path="disclose.overallTransformation" cssClass="form-control">
+                                        <form:option value="否"/>
+                                        <form:option value="是"/>
+                                    </form:select>
                                 </td>
-                            </tr>
-                            <tr>
                                 <td class="width-15 active"><label class="pull-right">其它问题类型:</label></td>
                                 <td class="width-35">
-                                    <form:input path="disclose.otherProblem" cssClass="form-control"/>
+                                    <form:input id="otherProblem" path="disclose.otherProblem" cssClass="form-control"/>
                                 </td>
                             </tr>
                             </tbody>
@@ -218,4 +262,4 @@
     </div>
 </div>
 </body>
-</html>
+</html>

+ 9 - 13
src/main/webapp/webpage/modules/sg/managementcenter/activiti/humanReview.jsp

@@ -263,7 +263,7 @@
 								</td>
 							</tr>
 							<tr>
-								<td class="width-15 active"><label class="pull-right">线路名称一致性:</label></td>
+								<td class="width-15 active"><label class="pull-right">线路名称、设备、开关、杆号一致性:</label></td>
 								<td class="width-35">
 										${construction.disclose.lineName}
 								</td>
@@ -273,50 +273,46 @@
 								</td>
 							</tr>
 							<tr>
-								<td class="width-15 active"><label class="pull-right">设备、开关、杆号一致性:</label></td>
-								<td class="width-35">
-										${construction.disclose.rodNumber}
-								</td>
 								<td class="width-15 active"><label class="pull-right">图纸现场不一致描述:</label></td>
 								<td class="width-35">
 										${construction.disclose.inconsistentDescription}
 								</td>
-							</tr>
-							<tr>
 								<td class="width-15 active"><label class="pull-right">政处类型:</label></td>
 								<td class="width-35">
 										${construction.disclose.administrationType}
 								</td>
+							</tr>
+							<tr>
 								<td class="width-15 active"><label class="pull-right">前置条件:</label></td>
 								<td class="width-35">
 										${construction.disclose.precondition}
 								</td>
-							</tr>
-							<tr>
 								<td class="width-15 active"><label class="pull-right">政策处理描述:</label></td>
 								<td class="width-35">
 										${construction.disclose.policyHandlingInstructions}
 								</td>
+							</tr>
+							<tr>
 								<td class="width-15 active"><label class="pull-right">DTU安放方式核查:</label></td>
 								<td class="width-35">
 										${construction.disclose.placementMode}
 								</td>
-							</tr>
-							<tr>
 								<td class="width-15 active"><label class="pull-right">核查环网柜生产日期:</label></td>
 								<td class="width-35">
 										${construction.disclose.productionDate}
 								</td>
+							</tr>
+							<tr>
 								<td class="width-15 active"><label class="pull-right">二次是否是集成模块:</label></td>
 								<td class="width-35">
 										${construction.disclose.integrateModule}
 								</td>
-							</tr>
-							<tr>
 								<td class="width-15 active"><label class="pull-right">PT是否需要更换:</label></td>
 								<td class="width-35">
 										${construction.disclose.needReplace}
 								</td>
+							</tr>
+							<tr>
 								<td class="width-15 active"><label class="pull-right">设备是否有整体改造的必要:</label></td>
 								<td class="width-35">
 										${construction.disclose.overallTransformation}

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

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

+ 11 - 3
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>涉电竣工流程</title>
+	<title>涉电竣工流程</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
@@ -30,8 +30,10 @@
 				<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>
+						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-35">
+								${materialShow.projectName}
+						</td>
 					</tr>
 					<tr>
 						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
@@ -39,6 +41,12 @@
 							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>
 					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
 					</tbody>
 				</table>
 			</form:form>

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

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

+ 10 - 8
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.jsp

@@ -8,12 +8,6 @@
 	<%@ 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">
@@ -36,8 +30,10 @@
 				<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>
+						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-35">
+								${materialShow.projectName}
+						</td>
 					</tr>
 					<tr>
 						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
@@ -45,6 +41,12 @@
 							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>
 					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
 					</tbody>
 				</table>
 			</form:form>

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

@@ -0,0 +1,182 @@
+<%@ 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();
+		var imgName = $("#imgName").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/electricalEndTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"imgName":imgName,
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

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

@@ -0,0 +1,78 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>电气竣工流程</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="electricalEnd.js"%>
+	<script type="text/javascript">
+		$(document).ready(function() {
+
+		});
+	</script>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">电气竣工流程</h3>
+	</div>
+	<div class="panel-body">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-35">
+								${materialShow.projectName}
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

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

@@ -0,0 +1,160 @@
+<%@ 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();
+		var imgName = $("#imgName").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/electricalMiddleTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"imgName":imgName,
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+</script>

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

@@ -0,0 +1,73 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>电气施工中流程</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="electricalMiddle.js"%>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">电气施工中流程</h3>
+	</div>
+	<div class="panel-body">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-35">
+								${materialShow.projectName}
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

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

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

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

@@ -0,0 +1,73 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>电气开工流程</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="electricalStart.js"%>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">电气开工流程</h3>
+	</div>
+	<div class="panel-body">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<tr>
+						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-35">
+								${materialShow.projectName}
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

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

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

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

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

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

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

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

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

+ 12 - 9
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp

@@ -2,23 +2,18 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>非涉电竣工流程</title>
+	<title>土建竣工流程</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
 	<%@include file="nonPowerEnd.js"%>
-	<script type="text/javascript">
-		$(document).ready(function() {
-
-		});
-	</script>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">非涉电竣工流程</h3>
+		<h3 class="panel-title">土建竣工流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->
@@ -35,8 +30,10 @@
 				<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>
+						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-35">
+								${materialShow.projectName}
+						</td>
 					</tr>
 					<tr>
 						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
@@ -44,6 +41,12 @@
 							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>
 					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-35">
+							<input id="imgName" type="text" class="form-control required">
+						</td>
+					</tr>
 					</tbody>
 				</table>
 			</form:form>

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

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

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

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

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

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

+ 12 - 4
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerStart.jsp

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

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

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

@@ -0,0 +1,53 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>审核土建竣工</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="nonRePowerEnd.js"%>
+
+</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}"/>
+			</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>

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

@@ -0,0 +1,173 @@
+<%@ 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 () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/nonRePowerMiddleTask",
+				{
+					"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/nonRePowerMiddleTask",
+				{
+					"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>

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

@@ -0,0 +1,52 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>审核土建施工</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="nonRePowerMiddle.js"%>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">审核土建施工</h3>
+	</div>
+	<div class="panel-body">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+			</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>

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

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

@@ -0,0 +1,53 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>审核电气竣工</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="reElectricalEnd.js"%>
+
+</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}"/>
+			</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>

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

@@ -0,0 +1,173 @@
+<%@ 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 () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/reElectricalMiddleTask",
+				{
+					"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/reElectricalMiddleTask",
+				{
+					"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>

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

@@ -0,0 +1,52 @@
+<%@ 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="reElectricalMiddle.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}"/>
+			</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>

+ 196 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.js

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

+ 51 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp

@@ -0,0 +1,51 @@
+<%@ 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="rePowerEnd.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}"/>
+			</form:form>
+			<div class="row">
+				<div class="col-sm-3"></div>
+				<div class="col-sm-6">
+					<div class="form-group text-center">
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题" />&nbsp;
+						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="纯在问题" />&nbsp;					</div>
+				</div>
+			</div>
+			<c:if test="${not empty materialModule.id}">
+				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
+				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

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

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

+ 7 - 13
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerWhether.jsp

@@ -2,24 +2,18 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>是否完成非涉电工作</title>
+	<title>审核电气流程</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
-	<%@include file="nonPowerWhether.js"%>
-	<script type="text/javascript">
-
-		$(document).ready(function() {
-
-		});
-	</script>
+	<%@include file="reviewElectrical.js"%>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">是否完成非涉电工作</h3>
+		<h3 class="panel-title">审核电气流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->
@@ -36,8 +30,8 @@
 				<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>
+							<td class="width-35 active" style="text-align: right">项目名称:</td>
+							<td class="width-35">${materialShow.projectName}</td>
 						</tr>
 					</tbody>
 				</table>
@@ -46,8 +40,8 @@
 				<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;
+						<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>

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

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

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

@@ -0,0 +1,60 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>审核土建流程</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="reviewNonPower.js"%>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">审核土建流程</h3>
+	</div>
+	<div class="panel-body">
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
+				<form:hidden path="id"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+						<tr>
+							<td class="width-35 active" style="text-align: right">项目名称:</td>
+							<td class="width-35">${materialShow.projectName}</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>

+ 1 - 1
src/main/webapp/webpage/modules/sg/picking/activiti/managerExam.jsp

@@ -28,7 +28,7 @@
 	</div>
 		<form:form id="inputForm" modelAttribute="act" class="form-horizontal">
 			<input type="hidden" id="procInsId" name="procInsId" value="${act.procInsId}"/>
-			<input type="text" id="procInsId" name="procInsId" value="${act.taskId}"/>
+			<input type="hidden" id="taskId" name="procInsId" value="${act.taskId}"/>
 		</form:form>
 		<div id="">
 			<button id="exportBlock" class="btn btn-info">

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

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