Browse Source

Merge remote-tracking branch 'origin/master'

xs 5 years atrás
parent
commit
250fa91574
33 changed files with 1599 additions and 124 deletions
  1. 177 7
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 38 6
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 7 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/ConstructionMapper.java
  4. 9 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/ConstructionMapper.xml
  5. 13 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/ConstructionService.java
  6. 12 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/UploadController.java
  7. 10 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialProvided/web/MaterialProvidedController.java
  8. 4 1
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/PickIngMapper.java
  9. 29 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/ShowListMapper.java
  10. 2 2
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/PickIngMapper.xml
  11. 81 11
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml
  12. 24 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/service/ShowListService.java
  13. 98 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java
  14. 76 1
      src/main/java/com/jeeplus/modules/sg/picking/activiti/web/ShowListController.java
  15. 20 11
      src/main/webapp/webpage/modules/bpm/task/todo/taskTodoList.js
  16. 14 3
      src/main/webapp/webpage/modules/bpm/task/todo/taskTodoList.jsp
  17. 115 0
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/conAfterChange.jsp
  18. 11 1
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/economicsDesignChange.jsp
  19. 1 1
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/managerUploadList.jsp
  20. 13 3
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/operatorDesignChange.jsp
  21. 1 1
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/operatorUploadList.jsp
  22. 11 11
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/uploadListForm.jsp
  23. 118 0
      src/main/webapp/webpage/modules/sg/picking/activiti/constructionLeader.js
  24. 12 1
      src/main/webapp/webpage/modules/sg/picking/activiti/constructionLeader.jsp
  25. 116 0
      src/main/webapp/webpage/modules/sg/picking/activiti/fullExamine.js
  26. 12 1
      src/main/webapp/webpage/modules/sg/picking/activiti/fullExamine.jsp
  27. 116 0
      src/main/webapp/webpage/modules/sg/picking/activiti/leaderExamine.js
  28. 13 2
      src/main/webapp/webpage/modules/sg/picking/activiti/leaderExamine.jsp
  29. 116 0
      src/main/webapp/webpage/modules/sg/picking/activiti/managerAudit.js
  30. 12 1
      src/main/webapp/webpage/modules/sg/picking/activiti/managerAudit.jsp
  31. 228 58
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.js
  32. 21 1
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.jsp
  33. 69 0
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamineUpload.jsp

+ 177 - 7
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -111,12 +111,11 @@ public class ActTaskService extends BaseService {
 	 * 获取待办任务列表
 	 * @return
 	 */
-	public Page<HashMap<String,String>>  todoList(Page<HashMap<String,String>> page, Act act){
+	public Page<HashMap<String,String>>  newTodoList(Page<HashMap<String,String>> page, Act act,String xmName){
 		List<HashMap<String,String>> result = new ArrayList<HashMap<String,String>>();
 		String userId = UserUtils.getUser().getLoginName();//ObjectUtils.toString(UserUtils.getUser().getId());
 
 
-
 		// =============== 已经签收的任务  ===============
 		TaskQuery todoTaskQuery = taskService.createTaskQuery().taskAssignee(userId).active()
 				.includeProcessVariables().orderByTaskCreateTime().desc();
@@ -131,6 +130,13 @@ public class ActTaskService extends BaseService {
 		if (act.getEndDate() != null){
 			todoTaskQuery.taskCreatedBefore(act.getEndDate());
 		}
+		if (!"".equals(xmName)&&xmName!=null) {
+			List<String> strings = constructionService.insIdByName(xmName);
+			if (strings!=null&&strings.size()>0) {
+				todoTaskQuery.processInstanceIdIn(strings);
+			}
+		}
+
 
 
 		// =============== 等待签收的任务  ===============
@@ -186,6 +192,13 @@ public class ActTaskService extends BaseService {
 			map.put("task.executionId",task.getExecutionId());
 			map.put("task.processDefinitionId", task.getProcessDefinitionId());
 			map.put("task.processInstanceId", task.getProcessInstanceId());
+			String s = constructionService.idProjectName(task.getProcessInstanceId());
+			if ("".equals(s) || s == null) {
+				String s1 = constructionService.idProjectName2(task.getProcessInstanceId());
+				map.put("task.projectName", s1);
+			} else {
+				map.put("task.projectName", s);
+			}
 			map.put("task.taskDefinitionKey", task.getTaskDefinitionKey());
 			map.put("vars",task.getProcessVariables());
 			map.put("procDef.name", ProcessDefCache.get(task.getProcessDefinitionId()).getName());
@@ -217,7 +230,118 @@ public class ActTaskService extends BaseService {
 		return page;
 
 	}
-	
+
+	/**
+	 * 获取待办任务列表(旧)
+	 * @return
+	 */
+	public Page<HashMap<String,String>>  todoList(Page<HashMap<String,String>> page, Act act){
+		List<HashMap<String,String>> result = new ArrayList<HashMap<String,String>>();
+		String userId = UserUtils.getUser().getLoginName();//ObjectUtils.toString(UserUtils.getUser().getId());
+
+
+		// =============== 已经签收的任务  ===============
+		TaskQuery todoTaskQuery = taskService.createTaskQuery().taskAssignee(userId).active()
+				.includeProcessVariables().orderByTaskCreateTime().desc();
+
+		// 设置查询条件
+		if (StringUtils.isNotBlank(act.getProcDefKey())){
+			todoTaskQuery.processDefinitionKey(act.getProcDefKey());
+		}
+		if (act.getBeginDate() != null){
+			todoTaskQuery.taskCreatedAfter(act.getBeginDate());
+		}
+		if (act.getEndDate() != null){
+			todoTaskQuery.taskCreatedBefore(act.getEndDate());
+		}
+
+
+
+		// =============== 等待签收的任务  ===============
+		TaskQuery toClaimQuery = taskService.createTaskQuery().taskCandidateUser(userId)
+				.includeProcessVariables().active().orderByTaskCreateTime().desc();
+
+		// 设置查询条件
+		if (StringUtils.isNotBlank(act.getProcDefKey())){
+			toClaimQuery.processDefinitionKey(act.getProcDefKey());
+		}
+		if (act.getBeginDate() != null){
+			toClaimQuery.taskCreatedAfter(act.getBeginDate());
+		}
+		if (act.getEndDate() != null){
+			toClaimQuery.taskCreatedBefore(act.getEndDate());
+		}
+
+		long taskCount = todoTaskQuery.count();
+		long claimCount = toClaimQuery.count();
+		long total = taskCount + claimCount;
+		page.setCount(total);
+
+
+		int start = page.getFirstResult();
+		int end = page.getFirstResult() + page.getMaxResults();
+		// 查询列表
+		List<Task> todoList = Lists.newArrayList();
+		// 查询列表
+		List<Task> toClaimList = Lists.newArrayList();
+		if(end == -1){//不分页
+			todoList = todoTaskQuery.list();
+			toClaimList = toClaimQuery.list();
+		}else{
+
+			if(end <= taskCount){
+				todoList = todoTaskQuery.listPage(start, page.getMaxResults());
+			}else if(start <taskCount){
+				todoList = todoTaskQuery.listPage(start, (int)taskCount - start);
+				toClaimList = toClaimQuery.listPage(0, end -(int)taskCount);
+			}else{
+				toClaimList= toClaimQuery.listPage(start-(int)taskCount, page.getMaxResults());
+			}
+		}
+
+
+
+		for (Task task : todoList) {
+			HashMap map = new HashMap();
+			map.put("task.assignee",task.getAssignee());
+			map.put("task.id", task.getId());
+			map.put("task.createTime", task.getCreateTime());
+			map.put("task.name", task.getName());
+			map.put("task.executionId",task.getExecutionId());
+			map.put("task.processDefinitionId", task.getProcessDefinitionId());
+			map.put("task.processInstanceId", task.getProcessInstanceId());
+			map.put("task.taskDefinitionKey", task.getTaskDefinitionKey());
+			map.put("vars",task.getProcessVariables());
+			map.put("procDef.name", ProcessDefCache.get(task.getProcessDefinitionId()).getName());
+			map.put("procDef.version", ProcessDefCache.get(task.getProcessDefinitionId()).getVersion());
+			map.put("status","todo");
+			map.put("title",task.getProcessVariables().get("title"));
+			page.getList().add(map);
+		}
+
+
+		for (Task task : toClaimList) {
+			HashMap map = new HashMap();
+			map.put("task.assignee",task.getAssignee());
+			map.put("task.id", task.getId());
+			map.put("task.name", task.getName());
+			map.put("task.createTime", task.getCreateTime());
+			map.put("task.executionId",task.getExecutionId());
+			map.put("task.processInstanceId", task.getProcessInstanceId());
+			map.put("task.processDefinitionId", task.getProcessDefinitionId());
+			map.put("task.taskDefinitionKey", task.getTaskDefinitionKey());
+			map.put("vars",task.getProcessVariables());
+			map.put("procDef.name", ProcessDefCache.get(task.getProcessDefinitionId()).getName());
+			map.put("procDef.version", ProcessDefCache.get(task.getProcessDefinitionId()).getVersion());
+			map.put("status", "claim");
+			map.put("title",task.getProcessVariables().get("title"));
+			page.getList().add(map);
+		}
+
+		return page;
+
+	}
+
 	/**
 	 * 获取已办任务列表
 	 * @param page
@@ -1453,8 +1577,9 @@ public class ActTaskService extends BaseService {
 		Map<String, Object> vars = Maps.newHashMap();
 		String flag = act.getFlag();
 		Project user = MyActiviUtils.findUser(act.getProcInsId());
-		//完成施工交底
+		//发给施工单位人员审核
 		if ("yes".equals(flag)) {
+			vars.put("design", user.getConstructionUnitRole());
 		} else {
 			//驳回
 			vars.put("design", user.getRunUnitRole());
@@ -1469,6 +1594,31 @@ public class ActTaskService extends BaseService {
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
+	/**
+	 * 施工单位判断变更后材料
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void conAfterChange(Act act) {
+		Map<String, Object> vars = Maps.newHashMap();
+		String flag = act.getFlag();
+		Project user = MyActiviUtils.findUser(act.getProcInsId());
+		//完成施工交底
+		if ("yes".equals(flag)) {
+		} else {
+			//驳回
+			vars.put("design", user.getProjectManageRole());
+		}
+		//根据登陆查询所属的角色
+		vars.put("pass", "yes".equals(flag)? true : false);
+		// 设置意见
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
 
 	/**
 	 * 经理保存审核意见
@@ -2337,6 +2487,26 @@ public class ActTaskService extends BaseService {
 	}
 
 	/**
+	 * 施工单位物资专职审核
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void fullExamine(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();
+		vars.put("pass", "yes".equals(flag)? true : false);
+		vars.put("manager", "yes".equals(flag)? "项目经理A" : "施工单位领导A");
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+	/**
 	 * 项目中心领导审核领料单
 	 * @param act
 	 */
@@ -2352,7 +2522,7 @@ public class ActTaskService extends BaseService {
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		vars.put("pass", "yes".equals(flag)? true : false);
-		vars.put("manager", "yes".equals(flag)? "施工物资专职" : "施工项目经理A");
+		vars.put("manager", "yes".equals(flag)? "" : "沈忱");
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
@@ -2372,7 +2542,7 @@ public class ActTaskService extends BaseService {
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		vars.put("pass", "yes".equals(flag)? true : false);
-		vars.put("manager", "yes".equals(flag)? "施工物资专职" : "施工项目经理A");
+		vars.put("manager", "yes".equals(flag)? "沈忱" : "项目经理A");
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
@@ -2392,7 +2562,7 @@ public class ActTaskService extends BaseService {
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		vars.put("pass", "yes".equals(flag)? true : false);
-		vars.put("manager", "yes".equals(flag)? "施工物资专职" : "施工项目经理A");
+		vars.put("manager", "yes".equals(flag)? "夏卫进" : "项目经理A");
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 

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

@@ -124,17 +124,16 @@ public class ActTaskController extends BaseController {
 	 */
 	@RequestMapping(value = {"todo", ""})
 	public String todoList(Act act, HttpServletRequest request,HttpServletResponse response, Model model) throws Exception {
-		Page<org.activiti.engine.repository.Model> page2 = actModelService.modelList(
-				new Page<org.activiti.engine.repository.Model>(request, response), "");
-		List<org.activiti.engine.repository.Model> list2 = page2.getList();
-		model.addAttribute("act", list2);
 		return "modules/bpm/task/todo/taskTodoList";
 	}
 
 	@ResponseBody
 	@RequestMapping(value = "todo/data")
-	public  Map<String, Object> todoListData(Act act, HttpServletRequest request,HttpServletResponse response, Model model,String nameSelect) throws Exception {
-		Page<HashMap<String,String>> page = actTaskService.todoList(new  Page<HashMap<String,String>>(request, response),act);
+	public  Map<String, Object> todoListData(Act act, HttpServletRequest request,HttpServletResponse response, Model model,String xmName) throws Exception {
+/*		Page<HashMap<String,String>> page = actTaskService.todoList(new  Page<HashMap<String,String>>(request, response),act);
+		return getBootstrapData(page);*/
+		Page<HashMap<String,String>> page = actTaskService.newTodoList(new  Page<HashMap<String,String>>(request, response),act,xmName);
+		Map<String, Object> map = new HashMap<String, Object>();
 		return getBootstrapData(page);
 	}
 	
@@ -750,6 +749,26 @@ public class ActTaskController extends BaseController {
 		return j;
 	}
 
+
+	/**
+	 * 施工单位判断变更后材料
+	 * @param act
+	 */
+	@ResponseBody
+	@RequestMapping(value = "conAfterChange")
+	public AjaxJson conAfterChange(Act act) {
+		AjaxJson j = new AjaxJson();
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.conAfterChange(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		j.setMsg("审批成功");
+		return j;
+	}
+
 	/**
 	 * 施工审批
 	 * @param act
@@ -1273,6 +1292,19 @@ public class ActTaskController extends BaseController {
 	}
 
 	/**
+	 * 施工单位物资专职审核
+	 * @param act
+	 */
+	@ResponseBody
+	@RequestMapping(value = "fullExamine")
+	public AjaxJson fullExamine(Act act) {
+		AjaxJson j = new AjaxJson();
+		actTaskService.fullExamine(act);
+		j.setMsg("审批成功");
+		return j;
+	}
+
+	/**
 	 * 项目中心领导审核领料单
 	 * @param act
 	 */

+ 7 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/ConstructionMapper.java

@@ -11,6 +11,8 @@ import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.test.activiti.entity.OALeave;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 施工交底MAPPER接口
  * @author
@@ -41,4 +43,9 @@ public interface ConstructionMapper extends BaseMapper<Construction> {
 
     Project findNameByInsID(String procInsId);
 
+    String idProjectName2(@Param("procInsId") String procInsId);
+
+    List<String> insIdByName(String projectName);
+
+    List<String> insIdByName2(String projectName);
 }

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

@@ -277,4 +277,13 @@
 	<select id="findNameByInsID" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
 		select id,require_name from xm_project_details where id =  (select project_id from md_picking_application where proc_ins_id  = #{id})
 	</select>
+	<select id="idProjectName2" resultType="string">
+		select require_name from xm_project_details where id  in(SELECT project_id from md_acquisition_process where proc_ins_id = #{procInsId})
+	</select>
+	<select id="insIdByName" resultType="java.lang.String">
+		select proc_ins_id from xm_construction_clarificaiton where project_name like concat('%',#{projectName},'%')
+	</select>
+	<select id="insIdByName2" resultType="java.lang.String">
+		select proc_ins_id from md_acquisition_process where project_id  in(select id from xm_project_details where require_name like concat('%',#{projectName},'%'))
+	</select>
 </mapper>

+ 13 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/ConstructionService.java

@@ -89,6 +89,19 @@ public class ConstructionService extends CrudService<ConstructionMapper, Constru
 		return s;
 	}
 
+	//根据流程定义号查询项目需求名称
+	public String idProjectName2(String procInsId) {
+		String s = constructionMapper.idProjectName2(procInsId);
+		return s;
+	}
+
+	public List<String> insIdByName(String projectName){
+		List<String> strings = constructionMapper.insIdByName(projectName);
+		List<String> strings1 = constructionMapper.insIdByName2(projectName);
+		strings.addAll(strings1);
+		return strings;
+	}
+
 	/**
 	 * 根据流程定义号查询提前物料申请流程的项目名称
 	 * */

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

@@ -115,10 +115,21 @@ public class UploadController extends BaseController {
 	@RequestMapping(value = {"managerUploadList"})
 	public String managerUploadList(UploadImages uploadImages, Model model) {
 		model.addAttribute("uploadImages", uploadImages);
-		return "modules/sg/managementcenter/activiti/managerUploadList";
+		return "modules/sg/managementcenter/activiti/managerUploadLconAfterChangeist";
 	}
 
 	/**
+	 * 施工单位判断变更后材料
+	 */
+	@RequestMapping(value = {"conAfterChange"})
+	public String conAfterChange(UploadImages uploadImages, Model model) {
+		model.addAttribute("uploadImages", uploadImages);
+		return "modules/sg/managementcenter/activiti/conAfterChange";
+	}
+
+
+
+	/**
 	 * 上传未签字版政策处理清单
 	 */
 	@RequestMapping(value = {"notSignUpload"})

+ 10 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialProvided/web/MaterialProvidedController.java

@@ -84,6 +84,16 @@ public class MaterialProvidedController extends BaseController {
 	}
 
 	/**
+	 * 控件列表数据
+	 */
+	@ResponseBody
+	@RequestMapping(value = "searchData")
+	public Map<String, Object> searchData(MaterialProvided materialProvided, HttpServletRequest request, HttpServletResponse response, Model model) {
+		Page<MaterialProvided> page = materialProvidedService.findPage(new Page<MaterialProvided>(request, response), materialProvided);
+		return getBootstrapData(page);
+	}
+
+	/**
 	 * 查看,增加,编辑表单页面
 	 */
 	@RequiresPermissions(value={"managementcenter:materialProvided:view","managementcenter:materialProvided:add","managementcenter:materialProvided:edit"},logical=Logical.OR)

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

@@ -36,5 +36,8 @@ public interface PickIngMapper extends BaseMapper<PickIng> {
 
     void updateSelectVersion(String version);
 
-    void processList(List<ShowList> showList);
+    /**
+     * 插入领料清单
+     * */
+    void processList(@Param("showList")List<ShowList> showList);
 }

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

@@ -27,9 +27,38 @@ public interface ShowListMapper extends BaseMapper<ShowList> {
      */
     void newSave(PickApplication pickApplication);
 
+    /**
+     * 更改项目提前领料标识
+     * */
     void projectUpdate(PickApplication pickApplication);
 
+    /**
+     * 通过id获取申请的信息id
+     * */
     String selectProjectId(String id);
 
+    /**
+     * 根据流程定义号获得领料清单
+     * */
     List<ShowList> findNewList(ShowList showList);
+
+    /**
+     * 根据id查询领料清单中的需要修改的那条信息
+     * */
+    ShowList findOneList(ShowList showList);
+
+    /**
+     * 通过流程定义号查询,这个流程使用的模块版本号
+     * */
+    String itemQuery(String procInsId);
+
+    /**
+     * 更新领料清单
+     * */
+    void updateAmount(ShowList showList);
+
+    /**
+     * 根据id删除领料清单
+     * */
+    void deleteData(String id);
 }

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

@@ -139,7 +139,7 @@
 			mdTheParty,
 			mdText
 		 )values
-		<foreach collection="list" item="item" index="showList" separator="," >
+		<foreach collection="showList" item="item" index="index" separator="," >
 		 (
 			#{item.id},
 			#{item.createBy.id},
@@ -156,7 +156,7 @@
 			#{item.mdTotalAmount},
 			#{item.mdSingleWeight},
 			#{item.mdTotalWeight},
-			#{item.meTheParty},
+			#{item.mdTheParty},
 			#{item.mdText}
 		 )
 		</foreach>

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

@@ -20,12 +20,11 @@
 	</sql>
 
 
-
     <select id="get" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
         SELECT
         <include refid="classColumns"/>,
-		FROM md_module_listing a
-		WHERE a.id = #{id}
+        FROM md_module_listing a
+        WHERE a.id = #{id}
     </select>
 
     <select id="findList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
@@ -41,9 +40,9 @@
             <trim prefixOverrides="AND |OR ">
                 <if test="findList!=null and findList.size>0">
                     AND block_id in
-                <foreach collection="findList" index="index" item="item" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+                    <foreach collection="findList" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
                 </if>
             </trim>
         </where>
@@ -112,11 +111,11 @@
 		WHERE id = #{id}
 	</update>
 
-	<select id="findNumber" resultType="string">
+    <select id="findNumber" resultType="string">
 		select the_number from md_acquisition_process where project_id = #{projectId} order by the_number DESC LIMIT 1;
 	</select>
 
-	<insert id="newSave">
+    <insert id="newSave">
 		INSERT INTO md_picking_application(
 			id,
 			proc_ins_id,
@@ -140,16 +139,16 @@
 		)
 	</insert>
 
-	<update id="projectUpdate">
+    <update id="projectUpdate">
 		update xm_project_details set earlyMaterial=1
 		where id=#{projectId};
 	</update>
 
-	<select id="selectProjectId" resultType="string">
+    <select id="selectProjectId" resultType="string">
 		select project_id from md_picking_application where id =#{id}
 	</select>
 
-	<select id="findNewList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+    <select id="findNewList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
 	SELECT
 		id,
 		procInsId,
@@ -164,4 +163,75 @@
 		mdText
 	from md_process_list where procInsId = #{procInsId}
 	</select>
+
+	<select id="findOneList" 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 id = #{id}
+	</select>
+
+
+	<select id="itemQuery" resultType="string">
+		select select_number from md_acquisition_process where proc_ins_id = #{procInsId}
+	</select>
+
+    <update id="updateAmount">
+		update md_process_list
+		set mdTotalAmount = #{mdTotalAmount},
+			mdTotalWeight=#{mdTotalWeight}
+		where id = #{id};
+	</update>
+
+	<delete id="deleteData">
+		delete from md_process_list where id=#{id};
+	</delete>
+	<insert id="insertProcess">
+		INSERT INTO md_process_list(
+			ID,
+			CREATE_BY,
+			CREATE_DATE,
+			UPDATE_BY,
+			UPDATE_DATE,
+			DEL_FLAG,
+			REMARKS,
+			PROCINSID,
+			MATERIALCODE,
+			EXTENSIONDESCRIPTION,
+			MATERIALDESCRIPTION,
+			MDUNITS,
+			MDTOTALAMOUNT,
+			MDSINGLEWEIGHT,
+			MDTOTALWEIGHT,
+			MDTHEPARTY,
+			MDTEXT
+		)VALUES(
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{procinsid},
+			#{materialcode},
+			#{extensiondescription},
+			#{materialdescription},
+			#{mdunits},
+			#{mdtotalamount},
+			#{mdsingleweight},
+			#{mdtotalweight},
+			#{mdtheparty},
+			#{mdtex}T
+		);
+	</insert>
 </mapper>

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

@@ -39,6 +39,13 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 		return page;
 	}
 
+	/**
+	 * 根据id查询领料清单中的需要修改的那条信息
+	 * */
+	public ShowList findOneList(ShowList showList){
+		return showListMapper.findOneList(showList);
+	}
+
 
 /*	public Page<ShowList> findNewPage(Page<ShowList> page, ShowList entity) {
 		dataRuleFilter(entity);
@@ -62,6 +69,14 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 	};
 
 	/**
+	 *修改总量
+	 * */
+	@Transactional(readOnly = false)
+	public void updateAmount(ShowList showList){
+		showListMapper.updateAmount(showList);
+	}
+
+	/**
 	 *修改项目信息状态
 	 * */
 	@Transactional(readOnly = false)
@@ -72,4 +87,13 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 	public String selectProjectId(String id){
 		return showListMapper.selectProjectId(id);
 	};
+
+	public String itemQuery(String procInsId) {
+		return showListMapper.itemQuery(procInsId);
+	}
+
+	@Transactional(readOnly = false)
+	public void deleteData(String id){
+		showListMapper.deleteData(id);
+	}
 }

+ 98 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java

@@ -10,6 +10,8 @@ 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.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.picking.activiti.entity.*;
@@ -18,6 +20,7 @@ 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;
@@ -26,6 +29,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -45,6 +49,8 @@ public class PickIngController extends BaseController {
     private ConstructionService constructionService;
     @Autowired
     private ProjectService projectService;
+    @Autowired
+    private MaterialProvidedService materialProvidedService;
 
     /**
      * 填写项目表
@@ -107,6 +113,15 @@ public class PickIngController extends BaseController {
         return "modules/sg/picking/activiti/leaderExamine";
     }
 
+    /**
+     * 新增物料
+     */
+    @RequestMapping(value = "netExamineUpload")
+    public String netExamineUpload(ShowList showList, Model model) {
+        model.addAttribute("showList", showList);
+        return "modules/sg/picking/activiti/netExamineUpload";
+    }
+
 //    constructionLeaderForm.jsp
 
     /**
@@ -265,6 +280,89 @@ public class PickIngController extends BaseController {
         return j;
     }
 
+    /**
+     * 修改领料清单总量,自动计算总重
+     */
+    @ResponseBody
+    @RequestMapping(value = "mdTotalAmount")
+    public AjaxJson mdTotalAmount(ShowList showList, String mdTotalAmount,Model model) throws Exception {
+        AjaxJson j = new AjaxJson();
+        //获取新的数量
+        Double aDouble = Double.valueOf(mdTotalAmount);
+        showList.setMdTotalAmount(aDouble);
+        //根据id查询领料清单中的需要修改的那条信息
+        ShowList oneList = showListService.findOneList(showList);
+        //获取单重
+        Double mdSingleWeight = oneList.getMdSingleWeight();
+        BigDecimal b1 = new BigDecimal(aDouble);
+        BigDecimal b2 = new BigDecimal(mdSingleWeight);
+        double v =  b1.multiply(b2).doubleValue();
+        showList.setMdTotalWeight(v);
+        showListService.updateAmount(showList);
+        j.setMsg("成功");
+        return j;
+    }
 
+    /**
+     * 批量删除
+     */
+    @ResponseBody
+    @RequestMapping(value = "deleteAll")
+    public AjaxJson deleteAll(String ids) {
+        AjaxJson j = new AjaxJson();
+        String idArray[] =ids.split(",");
+        for(String id : idArray){
+            showListService.deleteData(id);
+        }
+        j.setMsg("删除成功!");
+        return j;
+    }
+
+    /**
+     * 添加甲供物资信息到流程中
+     */
+    @ResponseBody
+    @RequestMapping(value = "netSave")
+    public AjaxJson netSave(String project,Double mdTotalAmount,String procInsId) {
+        AjaxJson j = new AjaxJson();
+        try {
+            ShowList showList = new ShowList();
+            //根据id查询甲供物资的信息
+            MaterialProvided materialProvided = materialProvidedService.get(project);
+            //设置id
+            showList.preInsert();
+            //物料编码
+            showList.setMaterialCode(materialProvided.getMaterialCode());
+            //流程实例编号
+            showList.setProcInsId(procInsId);
+            //物料描述
+            showList.setMaterialDescription(materialProvided.getMaterialDescription());
+            //扩展描述
+            showList.setExtensionDescription(materialProvided.getExtendedDescription());
+            //单位
+            showList.setMdUnits(materialProvided.getMeasuringUnit());
+            //总量
+            showList.setMdTotalAmount(mdTotalAmount);
+            //单重
+            showList.setMdSingleWeight(0.0);
+            //总重
+            showList.setMdTotalWeight(0.0);
+            //甲乙供
+            showList.setMdTheParty("");
+            //备注
+            showList.setMdText("");
+
+            List<ShowList> insertList = new ArrayList<>();
+            insertList.add(showList);
+            //将信息和数量存入对应表
+            pickIngService.processList(insertList);
+            j.setMsg("添加成功!");
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("添加失败");
+            e.printStackTrace();
+        }
+        return j;
+    }
 }
 

+ 76 - 1
src/main/java/com/jeeplus/modules/sg/picking/activiti/web/ShowListController.java

@@ -209,4 +209,79 @@ public class ShowListController extends BaseController {
             return getBootstrapData(page);
         }
     }
-}
+
+    @ResponseBody
+    @RequestMapping(value ="afterData")
+    public Map<String, Object> afterData(ShowList showList, HttpServletRequest request, HttpServletResponse response, Model model) {
+        ArrayList<String> objects = new ArrayList<>();
+        ArrayList<String> findList = new ArrayList<>();
+        String procInsId = showList.getProcInsId();
+        String item = showListService.itemQuery(procInsId);
+        //返回给页面的list
+        List<ShowList> myList = new ArrayList<>();
+        if (item != null&&!"".equals(item)) {
+            String[] split = item.split(";");
+            //回显list
+            List<ShowList> returnList = new ArrayList<>();
+            for (int i = 0; i < split.length; i++) {
+                objects.add(split[i]);
+            }
+            for (String s : objects) {
+                String[] split1 = s.split(":");
+                ShowList myShow = new ShowList();
+                myShow.setId(split1[0]);
+                String s1 = split1[1];
+                myShow.setNumber(Double.parseDouble(s1));
+                findList.add(split1[0]);
+                myList.add(myShow);
+            }
+            showList.setFindList(findList);
+            Page<ShowList> page = showListService.findPage(new Page<ShowList>(request, response), showList);
+            //查询出来所有的模块清单数据
+            List<ShowList> list = page.getList();
+            //前端传来选择的模块与数量
+            for (ShowList my : myList) {
+                //循环遍历
+                for (ShowList showList1 : list) {
+                    //选择的模块与查出来的一致
+                    if (my.getId().equals(showList1.getBlockId())) {
+                        Double mdSingleWeight = showList1.getMdSingleWeight();
+                        Double number = my.getNumber();
+                        Double mdCount = showList1.getMdCount();
+                        Double i = mdSingleWeight * number;
+                        BigDecimal b1 = new BigDecimal(Double.toString(number));
+                        BigDecimal b2 = new BigDecimal(Double.toString(mdCount));
+                        double v =  b1.multiply(b2).doubleValue();
+                        ShowList newShowList = new ShowList();
+                        newShowList.setMdBigClass(showList1.getMdBigClass());
+                        newShowList.setMdTheClass(showList1.getMdTheClass());
+                        newShowList.setMdName(showList1.getMdName());
+                        newShowList.setMaterialCode(showList1.getMaterialCode());
+                        newShowList.setMaterialDescription(showList1.getMaterialDescription());
+                        newShowList.setExtensionDescription(showList1.getExtensionDescription());
+                        newShowList.setMdUnits(showList1.getMdUnits());
+                        newShowList.setMdTheParty(showList1.getMdTheParty());
+                        newShowList.setMdText(showList1.getMdText());
+                        newShowList.setMdTotalAmount(v);
+                        newShowList.setMdSingleWeight(showList1.getMdSingleWeight());
+                        BigDecimal b = new BigDecimal(i);
+                        BigDecimal a = new BigDecimal(1000);
+                        BigDecimal divide = b.divide(a, 4, BigDecimal.ROUND_HALF_UP);
+                        newShowList.setMdTotalWeight(Double.valueOf(divide.toString()));
+                        newShowList.setBlockId(showList1.getBlockId());
+                        returnList.add(newShowList);
+                    }
+                }
+            }
+            Collections.sort(returnList);
+            page.setList(returnList);
+            return getBootstrapData(page);
+        } else {
+            findList.add("没有数据");
+            showList.setFindList(findList);
+            Page<ShowList> page = showListService.findPage(new Page<ShowList>(request, response), showList);
+            return getBootstrapData(page);
+        }
+
+    }
+    }

+ 20 - 11
src/main/webapp/webpage/modules/bpm/task/todo/taskTodoList.js

@@ -1,7 +1,6 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <script>
 $(document).ready(function() {
-	var nameSelect = "";
 	$('#actTable').bootstrapTable({
 
 		  //请求方法
@@ -38,7 +37,7 @@ $(document).ready(function() {
                //可供选择的每页的行数(*)
                pageList: [10, 25, 50, 100],
                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
-               url: "${ctx}/act/task/todo/data?nameSelect="+nameSelect,
+               url: "${ctx}/act/task/todo/data",
                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
                //queryParamsType:'',
                ////查询参数,每次调用是会带上这个参数,可自定义
@@ -77,7 +76,12 @@ $(document).ready(function() {
 		        field: 'vars.title',
 		        title: '实例标题'
 
-		    },{
+		    },
+			   {
+				   field: 'task.projectName',
+				   title: '项目名称'
+			   },
+			   {
 			   field: 'procDef.name',
 			   title: '流程名称'
 		   }
@@ -139,15 +143,20 @@ $(document).ready(function() {
 
 
 	  $("#search").click("click", function() {// 绑定查询按扭
-		  nameSelect = $("#nameSelect").val();
-		  console.log(nameSelect);
-		  $('#actTable').bootstrapTable('refresh');
+		  var val = $("#xmName").val();
+		  console.log(val);
+		  $('#actTable').bootstrapTable('refresh',{
+			  query:
+				  {
+					  xmName: val
+				  }
+		  });
 		});
 
 	 $("#reset").click("click", function() {// 绑定查询按扭
 		  $("#searchForm  input").val("");
 		  // $("#searchForm  select").val("");
-		 $("#nameSelect").val("");
+		 	$("#xmName").val("");
 		  $("#searchForm  .select-item").html("");
 		  $('#actTable').bootstrapTable('refresh');
 		});
@@ -160,17 +169,17 @@ $(document).ready(function() {
 		});
 
 	});
-		
+
   function getIdSelections() {
         return $.map($("#actTable").bootstrapTable('getSelections'), function (row) {
             return row.id
         });
     }
-  
+
   function deleteAll(){
 
 		jp.confirm('确认要删除该发起任务记录吗?', function(){
-			jp.loading();  	
+			jp.loading();
 			jp.get("${ctx}/task/todo/act/deleteAll?ids=" + getIdSelections(), function(data){
          	  		if(data.success){
          	  			$('#actTable').bootstrapTable('refresh');
@@ -179,7 +188,7 @@ $(document).ready(function() {
          	  			jp.error(data.msg);
          	  		}
          	  	})
-          	   
+
 		})
   }
 function claim(taskId) {

+ 14 - 3
src/main/webapp/webpage/modules/bpm/task/todo/taskTodoList.jsp

@@ -21,7 +21,7 @@
 	<div id="search-collapse" class="collapse">
 		<div class="accordion-inner">
 			<form:form id="searchForm" modelAttribute="act" class="form form-horizontal well clearfix">
-			 <div class="col-xs-12 col-sm-6 col-md-4">
+<%--			 <div class="col-xs-12 col-sm-6 col-md-4">
 				<label class="label-item single-overflow pull-left" title="流程名称:">流程名称:</label>
 				 <select name="nameSelect" id="nameSelect" class="form-control">
 					 <option value="" selected="selected">全部选项</option>
@@ -29,8 +29,19 @@
 						<option value="${act.name}">${act.name}</option>
 					 </c:forEach>
 				 </select>
-<%--				<form:select path="empty"  items="${act}"  class="form-control m-b">--%>
-<%--				</form:select>--%>
+&lt;%&ndash;				<form:select path="empty"  items="${act}"  class="form-control m-b">&ndash;%&gt;
+&lt;%&ndash;				</form:select>&ndash;%&gt;
+			</div>--%>
+			<div class="col-xs-12 col-sm-6 col-md-4">
+				<label class="label-item single-overflow pull-left" title="流程类型:">流程类型:</label>
+				<form:select path="procDefKey"  class="form-control m-b">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getDictList('act_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			</div>
+			<div class="col-xs-12 col-sm-6 col-md-4">
+				<label class="label-item single-overflow pull-left" title="项目名称">项目名称:</label>
+				<input Class="form-control" id="xmName"/>
 			</div>
 			 <div class="col-xs-12 col-sm-6 col-md-4">
 				 <div class="form-group">

+ 115 - 0
src/main/webapp/webpage/modules/sg/managementcenter/activiti/conAfterChange.jsp

@@ -0,0 +1,115 @@
+<%@ 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="economicsDesignChange.js" %>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			$("#agree").click(function () {
+				jp.prompt("审核意见", function (message) {
+					jp.post("${ctx}/act/task/conAfterChange",
+					{
+						"taskId":"${uploadImages.act.taskId}",
+						"taskName":"${uploadImages.act.taskName}",
+						"taskDefKey":"${uploadImages.act.taskDefKey}",
+						"procInsId":"${uploadImages.act.procInsId}",
+						"procDefId":"${uploadImages.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/conAfterChange",
+						{
+							"taskId":"${uploadImages.act.taskId}",
+							"taskName":"${uploadImages.act.taskName}",
+							"taskDefKey":"${uploadImages.act.taskDefKey}",
+							"procInsId":"${uploadImages.act.procInsId}",
+							"procDefId":"${uploadImages.act.procDefId}",
+							"flag":"no",
+							"comment":window.encodeURI(message)
+						},
+						function (data) {
+							if(data.success){
+								jp.success(data.msg);
+								jp.go("${ctx}/act/task/todo")
+							}
+						})
+					});
+				});
+		});
+	</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">
+	
+	<!-- 搜索 -->
+	<div id="search-collapse" class="collapse">
+		<div class="accordion-inner">
+	<form:form id="searchForm" modelAttribute="uploadImages" class="form form-horizontal well clearfix">
+		<input type="hidden" id="procInsId" name="procInsId" value="${uploadImages.act.procInsId}"/>
+	</form:form>
+	</div>
+	</div>
+	<!-- 工具栏 -->
+	<div id="toolbar">
+
+		    </div>
+	<!-- 表格 -->
+	<table id="testPicTable"   data-toolbar="#toolbar"></table>
+		<div class="panel-body">
+			<form:form id="inputForm" modelAttribute="uploadImages" 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"/>
+				<div class="form-group">
+					<div class="col-lg-3"></div>
+					<div class="col-lg-6">
+						<div class="form-group text-center">
+						</div>
+					</div>
+				</div>
+			</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 uploadImages.id}">
+				<act:flowChart procInsId="${uploadImages.act.procInsId}"/>
+				<act:histoicFlow procInsId="${uploadImages.act.procInsId}" />
+			</c:if>
+		</div>
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 11 - 1
src/main/webapp/webpage/modules/sg/managementcenter/activiti/economicsDesignChange.jsp

@@ -11,7 +11,8 @@
 		$(document).ready(function () {
 			$("#agree").click(function () {
 				var currentFileValues = $("input[name='pic']").val();
-				if (currentFileValues == "") {
+				var selected = $("#selected").val();
+				if (currentFileValues == "" && selected == "0") {
 					jp.error("请选择上传的文件");
 				} else {
 					jp.prompt("审核", function (message) {
@@ -94,6 +95,15 @@
 								<td class="width-35">
 									<fmt:formatDate value="${construction.acceptDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
 								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">是否需要变更:</label></td>
+								<td class="width-35">
+									<select id="selected" class="form-control">
+										<option value="0">是</option>
+										<option value="1">否</option>
+									</select>
+								</td>
 								<td id="demandUnit1" class="width-15 active"><label class="pull-right">上传新方案图纸:</label></td>
 								<td id="demandUnit2" class="width-35">
 									<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/list"></sys:fileUpload>

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

@@ -7,7 +7,7 @@
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
-	<%@include file="operatorUploadList.js" %>
+	<%@include file="economicsDesignChange.js" %>
 	<script type="text/javascript">
 		$(document).ready(function() {
 			$("#agree").click(function () {

+ 13 - 3
src/main/webapp/webpage/modules/sg/managementcenter/activiti/operatorDesignChange.jsp

@@ -17,9 +17,10 @@
 			}
 			$("#agree").click(function () {
 				var currentFileValues = $("input[name='pic']").val();
-				if (flag==false&&currentFileValues=="") {
-					jp.error("请选择上传文件")
-				}else {
+				var selected = $("#selected").val();
+				if (flag==false&&currentFileValues == "" && selected == "0") {
+					jp.error("请选择上传的文件");
+				} else {
 					jp.prompt("审核意见", function (message) {
 						jp.post("${ctx}/act/task/operator",
 								{
@@ -103,6 +104,15 @@
 								<td class="width-35">
 									<fmt:formatDate value="${construction.acceptDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
 								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">是否需要变更:</label></td>
+								<td class="width-35">
+									<select id="selected" class="form-control">
+										<option value="0">是</option>
+										<option value="1">否</option>
+									</select>
+								</td>
 								<td id="demandUnit1" class="width-15 active"><label class="pull-right">上传新方案图纸:</label></td>
 								<td id="demandUnit2" class="width-35">
 									<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/list"></sys:fileUpload>

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

@@ -7,7 +7,7 @@
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
-	<%@include file="operatorUploadList.js" %>
+	<%@include file="economicsDesignChange.js" %>
 	<script type="text/javascript">
 
 		$(document).ready(function() {

+ 11 - 11
src/main/webapp/webpage/modules/sg/managementcenter/activiti/uploadListForm.jsp

@@ -45,16 +45,16 @@
 		<form:hidden path="id"/>
 			<input id="procInsId" type="hidden" value="${uploadImages.procInsId}">
 			<input id="xmImgId" type="hidden" value="${uploadImages.id}">
-		<table class="table table-bordered">
-		   <tbody>
-				<tr>
-					<td class="width-15 active"><label class="pull-right"><font color="red">*</font>图片路径:</label></td>
-					<td class="width-35">
-						<sys:fileUpload  path="pic"  value="${uploadImages.path}" type="file" uploadPath="/list"/>
-					</td>
-				</tr>
-		 	</tbody>
-		</table>
-	</form:form>
+			<table class="table table-bordered">
+			   <tbody>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>图片路径:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic"  value="${uploadImages.path}" type="file" uploadPath="/list"/>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+		</form:form>
 </body>
 </html>

+ 118 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/constructionLeader.js

@@ -95,10 +95,126 @@ $(document).ready(function() {
 			]
 		});
 
+	$('#informationTable2').bootstrapTable({
+		//请求方法
+		method: 'post',
+		//类型json
+		dataType: "json",
+		contentType: "application/x-www-form-urlencoded",
+		//显示检索按钮
+		showSearch: false,
+		//显示刷新按钮
+		showRefresh: false,
+		//显示切换手机试图按钮
+		showToggle: false,
+		//显示 内容列下拉框
+		showColumns: false,
+		//显示到处按钮
+		showExport: false,
+		//显示切换分页按钮
+		showPaginationSwitch: false,
+		//最低显示2行
+		minimumCountColumns: 2,
+		//是否显示行间隔色
+		striped: true,
+		//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+		cache: false,
+		//是否显示分页(*)
+		pagination: false,
+		//排序方式
+		sortOrder: "asc",
+		//初始化加载第一页,默认第一页
+		pageNumber:1,
+		//每页的记录行数(*)
+		pageSize: 10,
+		//可供选择的每页的行数(*)
+		pageList: [10, 25, 50, 100],
+		//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+		url: "${ctx}/picking/showlist/afterData?procInsId="+procInsId,
+		//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+		////查询参数,每次调用是会带上这个参数,可自定义
+		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();
+		},
+		formatNoMatches:function(){
+			return "你的自定义文字说明";
+		},
+		columns: [
+			{
+				field: 'mdBigClass',
+				title: '模块大类',
+			},
+			{
+				field: 'mdTheClass',
+				title: '模块中类',
+			},
+			{
+				field: 'mdName',
+				title: '模块名称',
+			},
+			{
+				field: 'materialCode',
+				title: '物料编码',
+			},{
+				field: 'materialDescription',
+				title: '物料名称',
+			},{
+				field: 'extensionDescription',
+				title: '扩展描述',
+			},{
+				field: 'mdUnits',
+				title: '单位',
+			},{
+				field: 'mdTotalAmount',
+				title: '总量',
+			},{
+				field: 'mdSingleWeight',
+				title: '单重/kg',
+			},{
+				field: 'mdTotalWeight',
+				title: '总重/吨',
+			},{
+				field: 'mdTheParty',
+				title: '甲乙供',
+			},{
+				field: 'mdText',
+				title: '备注',
+			}
+		]
+	});
+
 	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
 		  $('#informationTable').bootstrapTable("toggleView");
 		}
 
+	$("#click2").click("click",function () {
+		$("#click3").attr("style","");
+		$("#click2").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:block;");
+		$("#div3").attr("style", "display:none;");
+	});
+
+	$("#click3").click("click",function () {
+		$("#click2").attr("style","");
+		$("#click3").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:none;");
+		$("#div3").attr("style", "display:block;");
+	});
+
 	// 绑定查询按扭
 	$("#search").click("click", function() {
 		  $('#informationTable').bootstrapTable('refresh');
@@ -156,6 +272,8 @@ $(document).ready(function() {
 		})
 	});
 
+
+
   function getIdSelections() {
         return $.map($("#informationTable").bootstrapTable('getSelections'), function (row) {
             return row.id

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

@@ -18,7 +18,18 @@
 			<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
 		</form:form>
 		<div class="panel-body">
-				<table id="informationTable" data-toolbar="#toolbar" class="table"></table>
+			<div>
+				<ul class="nav nav-tabs">
+					<li role="presentation" id="click2" style="border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)"><a id="qd" href="javascript:void(0)">查看领料清单</a></li>
+					<li role="presentation" id="click3" ><a id="mkqd" href="javascript:void(0)">查看模块清单</a></li>
+				</ul>
+			</div>
+			<div id="div2" style="display: block">
+				<table id="informationTable"   data-toolbar="#toolbar" class="table"></table>
+			</div>
+			<div id="div3" style="display: none">
+				<table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
+			</div>
 			<div class="row">
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">

+ 116 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/fullExamine.js

@@ -95,10 +95,126 @@ $(document).ready(function() {
 			]
 		});
 
+	$('#informationTable2').bootstrapTable({
+		//请求方法
+		method: 'post',
+		//类型json
+		dataType: "json",
+		contentType: "application/x-www-form-urlencoded",
+		//显示检索按钮
+		showSearch: false,
+		//显示刷新按钮
+		showRefresh: false,
+		//显示切换手机试图按钮
+		showToggle: false,
+		//显示 内容列下拉框
+		showColumns: false,
+		//显示到处按钮
+		showExport: false,
+		//显示切换分页按钮
+		showPaginationSwitch: false,
+		//最低显示2行
+		minimumCountColumns: 2,
+		//是否显示行间隔色
+		striped: true,
+		//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+		cache: false,
+		//是否显示分页(*)
+		pagination: false,
+		//排序方式
+		sortOrder: "asc",
+		//初始化加载第一页,默认第一页
+		pageNumber:1,
+		//每页的记录行数(*)
+		pageSize: 10,
+		//可供选择的每页的行数(*)
+		pageList: [10, 25, 50, 100],
+		//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+		url: "${ctx}/picking/showlist/afterData?procInsId="+procInsId,
+		//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+		////查询参数,每次调用是会带上这个参数,可自定义
+		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();
+		},
+		formatNoMatches:function(){
+			return "你的自定义文字说明";
+		},
+		columns: [
+			{
+				field: 'mdBigClass',
+				title: '模块大类',
+			},
+			{
+				field: 'mdTheClass',
+				title: '模块中类',
+			},
+			{
+				field: 'mdName',
+				title: '模块名称',
+			},
+			{
+				field: 'materialCode',
+				title: '物料编码',
+			},{
+				field: 'materialDescription',
+				title: '物料名称',
+			},{
+				field: 'extensionDescription',
+				title: '扩展描述',
+			},{
+				field: 'mdUnits',
+				title: '单位',
+			},{
+				field: 'mdTotalAmount',
+				title: '总量',
+			},{
+				field: 'mdSingleWeight',
+				title: '单重/kg',
+			},{
+				field: 'mdTotalWeight',
+				title: '总重/吨',
+			},{
+				field: 'mdTheParty',
+				title: '甲乙供',
+			},{
+				field: 'mdText',
+				title: '备注',
+			}
+		]
+	});
+
 	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
 		  $('#informationTable').bootstrapTable("toggleView");
 		}
 
+	$("#click2").click("click",function () {
+		$("#click3").attr("style","");
+		$("#click2").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:block;");
+		$("#div3").attr("style", "display:none;");
+	});
+
+	$("#click3").click("click",function () {
+		$("#click2").attr("style","");
+		$("#click3").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:none;");
+		$("#div3").attr("style", "display:block;");
+	});
+
 	// 绑定查询按扭
 	$("#search").click("click", function() {
 		  $('#informationTable').bootstrapTable('refresh');

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

@@ -18,7 +18,18 @@
             <input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
         </form:form>
         <div class="panel-body">
-            <table id="informationTable" data-toolbar="#toolbar" class="table"></table>
+            <div>
+                <ul class="nav nav-tabs">
+                    <li role="presentation" id="click2" style="border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)"><a id="qd" href="javascript:void(0)">查看领料清单</a></li>
+                    <li role="presentation" id="click3" ><a id="mkqd" href="javascript:void(0)">查看模块清单</a></li>
+                </ul>
+            </div>
+            <div id="div2" style="display: block">
+                <table id="informationTable"   data-toolbar="#toolbar" class="table"></table>
+            </div>
+            <div id="div3" style="display: none">
+                <table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
+            </div>
             <div class="row">
                 <div class="col-sm-3"></div>
                 <div class="col-sm-6">

+ 116 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/leaderExamine.js

@@ -95,10 +95,126 @@ $(document).ready(function() {
 			]
 		});
 
+	$('#informationTable2').bootstrapTable({
+		//请求方法
+		method: 'post',
+		//类型json
+		dataType: "json",
+		contentType: "application/x-www-form-urlencoded",
+		//显示检索按钮
+		showSearch: false,
+		//显示刷新按钮
+		showRefresh: false,
+		//显示切换手机试图按钮
+		showToggle: false,
+		//显示 内容列下拉框
+		showColumns: false,
+		//显示到处按钮
+		showExport: false,
+		//显示切换分页按钮
+		showPaginationSwitch: false,
+		//最低显示2行
+		minimumCountColumns: 2,
+		//是否显示行间隔色
+		striped: true,
+		//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+		cache: false,
+		//是否显示分页(*)
+		pagination: false,
+		//排序方式
+		sortOrder: "asc",
+		//初始化加载第一页,默认第一页
+		pageNumber:1,
+		//每页的记录行数(*)
+		pageSize: 10,
+		//可供选择的每页的行数(*)
+		pageList: [10, 25, 50, 100],
+		//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+		url: "${ctx}/picking/showlist/afterData?procInsId="+procInsId,
+		//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+		////查询参数,每次调用是会带上这个参数,可自定义
+		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();
+		},
+		formatNoMatches:function(){
+			return "你的自定义文字说明";
+		},
+		columns: [
+			{
+				field: 'mdBigClass',
+				title: '模块大类',
+			},
+			{
+				field: 'mdTheClass',
+				title: '模块中类',
+			},
+			{
+				field: 'mdName',
+				title: '模块名称',
+			},
+			{
+				field: 'materialCode',
+				title: '物料编码',
+			},{
+				field: 'materialDescription',
+				title: '物料名称',
+			},{
+				field: 'extensionDescription',
+				title: '扩展描述',
+			},{
+				field: 'mdUnits',
+				title: '单位',
+			},{
+				field: 'mdTotalAmount',
+				title: '总量',
+			},{
+				field: 'mdSingleWeight',
+				title: '单重/kg',
+			},{
+				field: 'mdTotalWeight',
+				title: '总重/吨',
+			},{
+				field: 'mdTheParty',
+				title: '甲乙供',
+			},{
+				field: 'mdText',
+				title: '备注',
+			}
+		]
+	});
+
 	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
 		  $('#informationTable').bootstrapTable("toggleView");
 		}
 
+	$("#click2").click("click",function () {
+		$("#click3").attr("style","");
+		$("#click2").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:block;");
+		$("#div3").attr("style", "display:none;");
+	});
+
+	$("#click3").click("click",function () {
+		$("#click2").attr("style","");
+		$("#click3").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:none;");
+		$("#div3").attr("style", "display:block;");
+	});
+
 	// 绑定查询按扭
 	$("#search").click("click", function() {
 		  $('#informationTable').bootstrapTable('refresh');

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

@@ -18,12 +18,23 @@
 			<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
 		</form:form>
 		<div class="panel-body">
-				<table id="informationTable" data-toolbar="#toolbar" class="table"></table>
+			<div>
+				<ul class="nav nav-tabs">
+					<li role="presentation" id="click2" style="border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)"><a id="qd" href="javascript:void(0)">查看领料清单</a></li>
+					<li role="presentation" id="click3" ><a id="mkqd" href="javascript:void(0)">查看模块清单</a></li>
+				</ul>
+			</div>
+			<div id="div2" style="display: block">
+				<table id="informationTable"   data-toolbar="#toolbar" class="table"></table>
+			</div>
+			<div id="div3" style="display: none">
+				<table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
+			</div>
 			<div class="row">
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">
 					<div class="form-group text-center" style="text-align: center;margin-top: 20px;">
-						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" 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>

+ 116 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/managerAudit.js

@@ -95,10 +95,126 @@ $(document).ready(function() {
 			]
 		});
 
+	$('#informationTable2').bootstrapTable({
+		//请求方法
+		method: 'post',
+		//类型json
+		dataType: "json",
+		contentType: "application/x-www-form-urlencoded",
+		//显示检索按钮
+		showSearch: false,
+		//显示刷新按钮
+		showRefresh: false,
+		//显示切换手机试图按钮
+		showToggle: false,
+		//显示 内容列下拉框
+		showColumns: false,
+		//显示到处按钮
+		showExport: false,
+		//显示切换分页按钮
+		showPaginationSwitch: false,
+		//最低显示2行
+		minimumCountColumns: 2,
+		//是否显示行间隔色
+		striped: true,
+		//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+		cache: false,
+		//是否显示分页(*)
+		pagination: false,
+		//排序方式
+		sortOrder: "asc",
+		//初始化加载第一页,默认第一页
+		pageNumber:1,
+		//每页的记录行数(*)
+		pageSize: 10,
+		//可供选择的每页的行数(*)
+		pageList: [10, 25, 50, 100],
+		//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+		url: "${ctx}/picking/showlist/afterData?procInsId="+procInsId,
+		//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+		////查询参数,每次调用是会带上这个参数,可自定义
+		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();
+		},
+		formatNoMatches:function(){
+			return "你的自定义文字说明";
+		},
+		columns: [
+			{
+				field: 'mdBigClass',
+				title: '模块大类',
+			},
+			{
+				field: 'mdTheClass',
+				title: '模块中类',
+			},
+			{
+				field: 'mdName',
+				title: '模块名称',
+			},
+			{
+				field: 'materialCode',
+				title: '物料编码',
+			},{
+				field: 'materialDescription',
+				title: '物料名称',
+			},{
+				field: 'extensionDescription',
+				title: '扩展描述',
+			},{
+				field: 'mdUnits',
+				title: '单位',
+			},{
+				field: 'mdTotalAmount',
+				title: '总量',
+			},{
+				field: 'mdSingleWeight',
+				title: '单重/kg',
+			},{
+				field: 'mdTotalWeight',
+				title: '总重/吨',
+			},{
+				field: 'mdTheParty',
+				title: '甲乙供',
+			},{
+				field: 'mdText',
+				title: '备注',
+			}
+		]
+	});
+
 	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
 		  $('#informationTable').bootstrapTable("toggleView");
 		}
 
+	$("#click2").click("click",function () {
+		$("#click3").attr("style","");
+		$("#click2").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:block;");
+		$("#div3").attr("style", "display:none;");
+	});
+
+	$("#click3").click("click",function () {
+		$("#click2").attr("style","");
+		$("#click3").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:none;");
+		$("#div3").attr("style", "display:block;");
+	});
+
 	// 绑定查询按扭
 	$("#search").click("click", function() {
 		  $('#informationTable').bootstrapTable('refresh');

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

@@ -18,7 +18,18 @@
 			<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
 		</form:form>
 		<div class="panel-body">
-				<table id="informationTable" data-toolbar="#toolbar" class="table"></table>
+			<div>
+				<ul class="nav nav-tabs">
+					<li role="presentation" id="click2" style="border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)"><a id="qd" href="javascript:void(0)">查看领料清单</a></li>
+					<li role="presentation" id="click3" ><a id="mkqd" href="javascript:void(0)">查看模块清单</a></li>
+				</ul>
+			</div>
+			<div id="div2" style="display: block">
+				<table id="informationTable"   data-toolbar="#toolbar" class="table"></table>
+			</div>
+			<div id="div3" style="display: none">
+				<table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
+			</div>
 			<div class="row">
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">

+ 228 - 58
src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.js

@@ -1,6 +1,19 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <script>
 $(document).ready(function() {
+	window.operateEvents = {
+		'blur input': function (e, value, row, index) {
+			var ss = $('#'+row.id).val();
+			jp.confirm('确认要修改?', function () {
+				jp.get("${ctx}/picking/activiti/mdTotalAmount?id="+row.id+"&mdTotalAmount="+ss, function (data) {
+					jp.success(data.msg);
+					refresh();
+				})
+			},function () {
+				$('#informationTable').bootstrapTable('refresh');
+			})
+		}
+	};
 	var item = "";
 	var procInsId = $("#procInsId").val();
 		console.log(procInsId);
@@ -65,6 +78,9 @@ $(document).ready(function() {
 			},
 			columns: [
 				{
+					checkbox: true
+				},
+				{
 					field: 'materialCode',
 					title: '物料编码',
 				}, {
@@ -79,6 +95,8 @@ $(document).ready(function() {
 				}, {
 					field: 'mdTotalAmount',
 					title: '总量',
+					events: operateEvents,
+					formatter: getTime
 				}, {
 					field: 'mdSingleWeight',
 					title: '单重/kg',
@@ -95,80 +113,232 @@ $(document).ready(function() {
 			]
 		});
 
+	$('#informationTable2').bootstrapTable({
+		//请求方法
+		method: 'post',
+		//类型json
+		dataType: "json",
+		contentType: "application/x-www-form-urlencoded",
+		//显示检索按钮
+		showSearch: false,
+		//显示刷新按钮
+		showRefresh: false,
+		//显示切换手机试图按钮
+		showToggle: false,
+		//显示 内容列下拉框
+		showColumns: false,
+		//显示到处按钮
+		showExport: false,
+		//显示切换分页按钮
+		showPaginationSwitch: false,
+		//最低显示2行
+		minimumCountColumns: 2,
+		//是否显示行间隔色
+		striped: true,
+		//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+		cache: false,
+		//是否显示分页(*)
+		pagination: false,
+		//排序方式
+		sortOrder: "asc",
+		//初始化加载第一页,默认第一页
+		pageNumber:1,
+		//每页的记录行数(*)
+		pageSize: 10,
+		//可供选择的每页的行数(*)
+		pageList: [10, 25, 50, 100],
+		//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+		url: "${ctx}/picking/showlist/afterData?procInsId="+procInsId,
+		//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+		////查询参数,每次调用是会带上这个参数,可自定义
+		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();
+		},
+		formatNoMatches:function(){
+			return "你的自定义文字说明";
+		},
+		columns: [
+			{
+				field: 'mdBigClass',
+				title: '模块大类',
+			},
+			{
+				field: 'mdTheClass',
+				title: '模块中类',
+			},
+			{
+				field: 'mdName',
+				title: '模块名称',
+			},
+			{
+				field: 'materialCode',
+				title: '物料编码',
+			},{
+				field: 'materialDescription',
+				title: '物料名称',
+			},{
+				field: 'extensionDescription',
+				title: '扩展描述',
+			},{
+				field: 'mdUnits',
+				title: '单位',
+			},{
+				field: 'mdTotalAmount',
+				title: '总量',
+			},{
+				field: 'mdSingleWeight',
+				title: '单重/kg',
+			},{
+				field: 'mdTotalWeight',
+				title: '总重/吨',
+			},{
+				field: 'mdTheParty',
+				title: '甲乙供',
+			},{
+				field: 'mdText',
+				title: '备注',
+			}
+		]
+	});
+
+	function myChange(row) {
+		alert(row.id);
+	}
+
+	function getTime(value, row, index) {
+		return [
+			"<input  id="+row.id+" type='number' name='changeAmount' class='form-control required'  value="+row.mdTotalAmount+">",
+		].join('');
+	}
+
+
+
 	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
 		  $('#informationTable').bootstrapTable("toggleView");
 		}
 
+	$('#informationTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+		'check-all.bs.table uncheck-all.bs.table', function () {
+		$('#remove').prop('disabled', ! $('#informationTable').bootstrapTable('getSelections').length);
+		$('#view,#edit').prop('disabled', $('#informationTable').bootstrapTable('getSelections').length!=1);
+	});
+
+	$("#click2").click("click",function () {
+		$("#click3").attr("style","");
+		$("#click2").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:block;");
+		$("#div3").attr("style", "display:none;");
+	});
+
+	$("#click3").click("click",function () {
+		$("#click2").attr("style","");
+		$("#click3").attr("style","border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+		$("#div2").attr("style", "display:none;");
+		$("#div3").attr("style", "display:block;");
+	});
+
+
 	// 绑定查询按扭
 	$("#search").click("click", function() {
-		  $('#informationTable').bootstrapTable('refresh');
-		});
+		$('#informationTable').bootstrapTable('refresh');
+	});
 
 	// 绑定查询重置按扭
-	 $("#reset").click("click", function() {
-		  $("#searchForm  input").val("");
-		  $("#searchForm  select").val("");
-		  $('#informationTable').bootstrapTable('refresh');
-		});
+	$("#reset").click("click", function() {
+		$("#searchForm  input").val("");
+		$("#searchForm  select").val("");
+		$('#informationTable').bootstrapTable('refresh');
+	});
 
-	 	//通过
-		$("#agree").click(function () {
-			jp.prompt("同意, 审批意见", function (message) {
-				jp.post("${ctx}/act/task/netExamine",
-					{
-						"taskId":"${showList.act.taskId}",
-						"taskName":"${showList.act.taskName}",
-						"taskDefKey":"${showList.act.taskDefKey}",
-						"procInsId":"${showList.act.procInsId}",
-						"procDefId":"${showList.act.procDefId}",
-						"flag":"yes",
-						"comment":window.encodeURI(message)
-					},
-					function (data) {
-						if(data.success){
-							jp.success(data.msg);
-							jp.go("${ctx}/act/task/todo")
-						}
-					})
-			})
+	//通过
+	$("#agree").click(function () {
+		jp.prompt("同意, 审批意见", function (message) {
+			jp.post("${ctx}/act/task/netExamine",
+			{
+			"taskId":"${showList.act.taskId}",
+			"taskName":"${showList.act.taskName}",
+			"taskDefKey":"${showList.act.taskDefKey}",
+			"procInsId":"${showList.act.procInsId}",
+			"procDefId":"${showList.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/netExamine",
-					{
-						"taskId":"${showList.act.taskId}",
-						"taskName":"${showList.act.taskName}",
-						"taskDefKey":"${showList.act.taskDefKey}",
-						"procInsId":"${showList.act.procInsId}",
-						"procDefId":"${showList.act.procDefId}",
-						"flag":"no",
-						"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/netExamine",
+			{
+			"taskId":"${showList.act.taskId}",
+			"taskName":"${showList.act.taskName}",
+			"taskDefKey":"${showList.act.taskDefKey}",
+			"procInsId":"${showList.act.procInsId}",
+			"procDefId":"${showList.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($("#informationTable").bootstrapTable('getSelections'), function (row) {
-            return row.id
-        });
-    }
-    //刷新列表
-  function refresh() {
-      $('#informationTable').bootstrapTable('refresh');
-  }
+	function getIdSelections() {
+		return $.map($("#informationTable").bootstrapTable('getSelections'), function (row) {
+			return row.id
+		});
+	}
+	//刷新列表
+	function refresh() {
+		$('#informationTable').bootstrapTable('refresh');
+	}
 
 	function addRow(list, idx, tpl, row){
 		$(list).append(Mustache.render(tpl, {
-			idx: idx, delBtn: true, row: row
+		idx: idx, delBtn: true, row: row
 		}));
 	}
+
+	function deleteAll(){
+		jp.confirm('确认要删除该图片管理记录吗?', function(){
+			jp.loading();
+			jp.get("${ctx}/picking/activiti/deleteAll?ids=" + getIdSelections(), function(data){
+					refresh();
+					jp.success(data.msg);
+			})
+		})
+	}
+
+	function add(){
+		var procInsId = $("#procInsId").val();
+		jp.openSaveDialog('新增物料', "${ctx}/picking/activiti/netExamineUpload?procInsId="+procInsId,'800px', '500px');
+	}
+
 </script>

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

@@ -18,7 +18,27 @@
 			<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
 		</form:form>
 		<div class="panel-body">
-				<table id="informationTable" data-toolbar="#toolbar" class="table"></table>
+			<div>
+				<ul class="nav nav-tabs">
+					<li role="presentation" id="click2" style="border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)"><a id="qd" href="javascript:void(0)">查看领料清单</a></li>
+					<li role="presentation" id="click3" ><a id="mkqd" href="javascript:void(0)">查看模块清单</a></li>
+				</ul>
+			</div>
+			<div id="div2" style="display: block">
+				<!-- 工具栏 -->
+				<div style="margin-top: 10px;">
+					<button id="add" class="btn btn-primary" onclick="add()">
+						<i class="glyphicon glyphicon-plus"></i> 新建
+					</button>
+					<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">
+						<i class="glyphicon glyphicon-remove"></i> 删除
+					</button>
+				</div>
+				<table id="informationTable"   data-toolbar="#toolbar" class="table"></table>
+			</div>
+			<div id="div3" style="display: none">
+				<table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
+			</div>
 			<div class="row">
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">

+ 69 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/netExamineUpload.jsp

@@ -0,0 +1,69 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>配网物资专职审核领料单</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="netExamine.js" %>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			$('#beginDate').datetimepicker({
+				format: "YYYY-MM-DD HH:mm:ss"
+			});
+			$('#endDate').datetimepicker({
+				format: "YYYY-MM-DD HH:mm:ss"
+			});
+		});
+		function save() {
+			var project = $("#projectId").val();
+			var mdTotalAmount = $("#mdTotalAmount").val();
+			var procInsId = $("#procInsId").val();
+			if (null==project||""==project){
+				jp.error("请选择需要添加的项目!");
+			}else if(null==mdTotalAmount||""==mdTotalAmount||mdTotalAmount<=0) {
+				jp.error("请填入正确的数值");
+			}else {
+/*				console.log(project);
+				console.log(mdTotalAmount);
+				console.log(procInsId);*/
+				jp.loading();
+				jp.post("${ctx}/picking/activiti/netSave",{"project":project,"mdTotalAmount":mdTotalAmount,"procInsId":procInsId},function (data) {
+					if (data.success) {
+						jp.getParent().refresh();
+						var dialogIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
+						parent.layer.close(dialogIndex);
+						jp.success(data.msg);
+					} else {
+						jp.error(data.msg);
+					}
+				})
+			}
+		}
+	</script>
+</head>
+<body class="bg-white">
+	<form:form id="inputForm" modelAttribute="showList" class="form-horizontal">
+		<form:hidden path="id"/>
+		<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
+		<table class="table table-bordered">
+			<tbody>
+			<tr>
+				<td class="width-15 active"><label class="pull-right" style="float: left">项目信息:</label></td>
+				<td class="width-35">
+					<sys:itemselect url="${ctx}/sg/managementcenter/marterialProvided/searchData" id="project" name="projectId" value="${materialProvided.id}" labelName="materialProvided.materialDescription" labelValue="${materialProvided.materialDescription}"
+									title="选择项目号" cssClass="form-control " fieldLabels="${fns:urlEncode('物料编码|物料描述|扩展编码|扩展编码描述|计量单位|参考概算价格|版本号')}" fieldKeys="materialCode|materialDescription|extendedCode|extendedDescription|measuringUnit|referencePrice|version" searchLabels="${fns:urlEncode('物料编码')}" searchKeys="materialCode"  isMultiSelected="false"></sys:itemselect>
+				</td>
+			</tr>
+			<tr>
+				<td class="width-15 active"><label class="pull-right" style="float: left">添加数量:</label></td>
+				<td class="width-35">
+					<input type="number" id="mdTotalAmount" class="form-control">
+				</td>
+			</tr>
+			</tbody>
+		</table>
+	</form:form>
+</body>
+</html>