Преглед на файлове

领料流程添加临时表,施工项目经理审核变更节点,确认填写需求信息后盛鼎

yue преди 5 години
родител
ревизия
c9b656aefd
променени са 20 файла, в които са добавени 882 реда и са изтрити 16 реда
  1. 21 0
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 32 3
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 8 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyActiviUtils.java
  4. 2 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/ProjectMapper.java
  5. 23 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml
  6. 4 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java
  7. 11 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/PickIngMapper.java
  8. 20 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/ShowListMapper.java
  9. 53 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/PickIngMapper.xml
  10. 44 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml
  11. 19 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/service/PickIngService.java
  12. 28 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/service/ShowListService.java
  13. 116 1
      src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java
  14. 337 0
      src/main/webapp/webpage/modules/sg/picking/activiti/managerExam.js
  15. 80 0
      src/main/webapp/webpage/modules/sg/picking/activiti/managerExam.jsp
  16. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.jsp
  17. 68 0
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamineTemUpload.jsp
  18. 0 4
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamineUpload.jsp
  19. 13 7
      src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.js
  20. 2 0
      src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.jsp

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

@@ -2556,6 +2556,27 @@ public class ActTaskService extends BaseService {
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
+
+	/**
+	 * 保存审核意见
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void managerExam(Act act) {
+		// 设置意见
+		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		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());
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
+
 	/**
 	 * 保存审核意见
 	 * @param act

+ 32 - 3
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -1336,23 +1336,52 @@ public class ActTaskController extends BaseController {
     public AjaxJson pickIng(Act act, String selectNumber) {
         AjaxJson j = new AjaxJson();
         try {
+            //将模块信息保存到项目信息中
             pickIngService.updateSelectNumber(selectNumber, act.getProcInsId());
+            //每次存入之前清空临时表
+            pickIngService.truncateTemporary();
+            //解析数据,将项目信息存入临时表
             List<ShowList> showLists = MyActiviUtils.finaList(selectNumber);
             for (ShowList a : showLists) {
                 a.preInsert();
                 a.setProcInsId(act.getProcInsId());
             }
-            pickIngService.processList(showLists);
+            //降解析好的数据插入表
+            pickIngService.processTemList(showLists);
+//            pickIngService.processList(showLists);
+/*            String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            act.setComment(comment);
+            actTaskService.pickIng(act)*/
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        j.setMsg("审批成功");
+        return j;
+    }
+
+
+    @ResponseBody
+    @RequestMapping(value = "managerExam")
+    public AjaxJson managerExam(Act act) {
+        AjaxJson j = new AjaxJson();
+        try {
+            //降临时表中数据存入领料清单表数据
+            List<ShowList> allTem = pickIngService.findAllTem(act.getProcInsId());
+            pickIngService.processList(allTem);
+
+//            pickIngService.processList(showLists);
+
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
-            actTaskService.pickIng(act);
-        } catch (UnsupportedEncodingException e) {
+            actTaskService.managerExam(act);
+        } catch (Exception e) {
             e.printStackTrace();
         }
         j.setMsg("审批成功");
         return j;
     }
 
+
     /**
      * 审批
      *

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

@@ -250,6 +250,14 @@ public class MyActiviUtils {
     }
 
     /**
+     * 根据流程实例id称查询物资流程项目人员
+     * */
+    public static Project findWZUser(String procInsId){
+        Project user = projectService.findWZUser(procInsId);
+        return user;
+    }
+
+    /**
      * 根据项目id称查询人员
      * */
     public static Project findUserById(String projectId){

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

@@ -34,6 +34,8 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     Project findUser(String procInsId);
 
+    Project findWZUser(String procInsId);
+
     Project sgFindUser(String procInsId);
 
     Project findUserById(String projectId);

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

@@ -592,6 +592,29 @@
 		WHERE require_name = (select project_name from xm_construction_clarificaiton where proc_ins_id=#{procInsId});
 	</select>
 
+	<select id="findWZUser"  resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+		select
+			demand_unit
+			,project_manage_role
+			,distribution_engineering
+			,distribution_materials
+			,distribution_system
+			,distribution_policy
+			,management_leader
+			,run_unit
+			,run_unit_role
+			,through_research_role
+			,construction_unit
+			,construction_unit_role
+			,construction_unit_manage
+			,construction_unit_leader
+			,design_unit
+			,design_unit_manage
+			,design_unit_leader
+		FROM xm_project_details
+		WHERE id = (select project_id from md_acquisition_process where proc_ins_id=#{procInsId});
+	</select>
+
 	<select id="sgFindUser"  resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
 		select
 			demand_unit

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

@@ -298,6 +298,10 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		return projectMapper.findUser(procInsId);
 	}
 
+	public Project findWZUser(String procInsId) {
+		return projectMapper.findWZUser(procInsId);
+	}
+
 	public Project sgFindUser(String procInsId) {
 		return projectMapper.sgFindUser(procInsId);
 	}

+ 11 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/PickIngMapper.java

@@ -49,4 +49,15 @@ public interface PickIngMapper extends BaseMapper<PickIng> {
     void updateErpAfter(List<Acquisition> list);
 
     List<ExportBlock> findExportBlock(String procInsId);
+
+    //清空临时表数据
+    void truncateTemporary();
+
+    /**
+     * 插入临时领料清单
+     * */
+    void processTemList(@Param("showList")List<ShowList> showList);
+
+    //根据流程实例id查询所有符合的临时表数据
+    List<ShowList> findAllTem(String procInsId);
 }

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

@@ -44,6 +44,11 @@ public interface ShowListMapper extends BaseMapper<ShowList> {
     List<ShowList> findNewList(ShowList showList);
 
     /**
+     * 根据流程定义号获得临时领料清单
+     * */
+    List<ShowList> findNewTemList(ShowList showList);
+
+    /**
      * 根据流程定义号获得领料清单
      * */
     List<ShowList> inventoryComparisonData(List<String> searchList);
@@ -54,6 +59,11 @@ public interface ShowListMapper extends BaseMapper<ShowList> {
     ShowList findOneList(ShowList showList);
 
     /**
+     * 根据id查询临时表中的需要修改的那条信息
+     * */
+    ShowList findOneTemList(ShowList showList);
+
+    /**
      * 通过流程定义号查询,这个流程选择了的模块
      * */
     String itemQuery(String procInsId);
@@ -64,11 +74,21 @@ public interface ShowListMapper extends BaseMapper<ShowList> {
     void updateAmount(ShowList showList);
 
     /**
+     * 更新临时领料清单
+     * */
+    void updateTemAmount(ShowList showList);
+
+    /**
      * 根据id删除领料清单
      * */
     void deleteData(String id);
 
     /**
+     * 根据id删除临时领料清单
+     * */
+    void deleteTemData(String id);
+
+    /**
      * 查询流程中物料的可用库存数量
      * */
     List<MaterialInventory> inventoryQuery(List<ShowList> showLists);

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

@@ -225,4 +225,57 @@
 		where procInsId = #{procInsId}
 		order by materialCode,materialDescription;
 	</select>
+
+	<delete id="truncateTemporary">
+		truncate table md_temporary_list
+	</delete>
+
+	<insert id="processTemList">
+		insert into md_temporary_list (
+		id,
+		create_by,
+		create_date,
+		update_by,
+		update_date,
+		del_flag,
+		remarks,
+		procInsId,
+		materialCode,
+		extensionDescription,
+		materialDescription,
+		mdUnits,
+		mdTotalAmount,
+		mdTotalAmountAfter,
+		mdSingleWeight,
+		mdTotalWeight,
+		mdTheParty,
+		mdText
+		)values
+		<foreach collection="showList" item="item" index="index" separator="," >
+			(
+			#{item.id},
+			#{item.createBy.id},
+			#{item.createDate},
+			#{item.updateBy.id},
+			#{item.updateDate},
+			#{item.delFlag},
+			#{item.remarks},
+			#{item.procInsId},
+			#{item.materialCode},
+			#{item.extensionDescription},
+			#{item.materialDescription},
+			#{item.mdUnits},
+			#{item.mdTotalAmount},
+			#{item.mdTotalAmountAfter},
+			#{item.mdSingleWeight},
+			#{item.mdTotalWeight},
+			#{item.mdTheParty},
+			#{item.mdText}
+			)
+		</foreach>
+	</insert>
+
+	<select id="findAllTem" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+		select * from md_temporary_list where procInsId = #{procInsId};
+	</select>
 </mapper>

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

@@ -167,6 +167,23 @@
 	from md_process_list where procInsId = #{procInsId}
 	</select>
 
+	<select id="findNewTemList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+	SELECT
+		id,
+		procInsId,
+		materialCode,
+		extensionDescription,
+		materialDescription,
+		mdUnits,
+		mdTotalAmount,
+		mdTotalAmountAfter,
+		mdSingleWeight,
+		mdTotalWeight,
+		mdTheParty,
+		mdText
+	from md_temporary_list where procInsId = #{procInsId}
+	</select>
+
 	<select id="inventoryComparisonData" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
 	SELECT
 		id,
@@ -205,6 +222,22 @@
 	</select>
 
 
+	<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>
+
 	<select id="itemQuery" resultType="string">
 		select select_number from md_acquisition_process where proc_ins_id = #{procInsId}
 	</select>
@@ -216,10 +249,21 @@
 		where id = #{id};
 	</update>
 
+	<update id="updateTemAmount">
+		update md_temporary_list
+		set mdTotalAmount = #{mdTotalAmount},
+			mdTotalWeight=#{mdTotalWeight}
+		where id = #{id};
+	</update>
+
 	<delete id="deleteData">
 		delete from md_process_list where id=#{id};
 	</delete>
 
+	<delete id="deleteTemData">
+		delete from md_temporary_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

+ 19 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/service/PickIngService.java

@@ -45,6 +45,12 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 		return page1;
 	}
 
+	//清空临时表数据
+	@Transactional(readOnly = false)
+	public void truncateTemporary(){
+		pickIngMapper.truncateTemporary();
+	}
+
 	/**
 	 * 遍历查询结构 大类 中类 小类
 	 * 去除重复,记录大类
@@ -162,6 +168,14 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 		pickIngMapper.processList(showList);
 	}
 
+	/**
+	 * 插入临时领料清单
+	 * */
+	@Transactional(readOnly = false)
+	public void processTemList(@Param("showList")List<ShowList> showList){
+		pickIngMapper.processTemList(showList);
+	}
+
 	public List<Acquisition> findErpType(List<String> list) {
 		return pickIngMapper.findErpType(list);
 	}
@@ -256,4 +270,9 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 	public List<ExportBlock> findExportBlock(String procInsId) {
 		return pickIngMapper.findExportBlock(procInsId);
 	}
+
+	//根据流程实例id查询所有符合的临时表数据
+	public List<ShowList> findAllTem(String procInsId){
+		return pickIngMapper.findAllTem(procInsId);
+	}
 }

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

@@ -41,6 +41,14 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 		return page;
 	}
 
+	public Page<ShowList> findNewTemPage(Page<ShowList> page, ShowList showList) {
+		dataRuleFilter(showList);
+		showList.setPage(page);
+		page.setList(mapper.findNewTemList(showList));
+		return page;
+	}
+
+
 	public Page<Acquisition> acquisitionList(Page<Acquisition> page, Acquisition acquisition) {
 		dataRuleFilter(acquisition);
 		acquisition.setPage(page);
@@ -62,6 +70,13 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 		return showListMapper.findOneList(showList);
 	}
 
+	/**
+	 * 根据id查询临时表中的需要修改的那条信息
+	 * */
+	public ShowList findOneTemList(ShowList showList){
+		return showListMapper.findOneTemList(showList);
+	}
+
 
 /*	public Page<ShowList> findNewPage(Page<ShowList> page, ShowList entity) {
 		dataRuleFilter(entity);
@@ -95,6 +110,14 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 	}
 
 	/**
+	 * 修改临时表总量
+	 */
+	@Transactional(readOnly = false)
+	public void updateTemAmount(ShowList showList) {
+		showListMapper.updateTemAmount(showList);
+	}
+
+	/**
 	 * 修改项目信息状态
 	 */
 	@Transactional(readOnly = false)
@@ -119,6 +142,11 @@ public class ShowListService extends CrudService<ShowListMapper, ShowList> {
 		showListMapper.deleteData(id);
 	}
 
+	@Transactional(readOnly = false)
+	public void deleteTemData(String id) {
+		showListMapper.deleteTemData(id);
+	}
+
 	/**
 	 * 查询流程中物料的可用库存数量
 	 */

+ 116 - 1
src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java

@@ -8,6 +8,7 @@ import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.sg.audit.information.entity.Information;
@@ -105,7 +106,7 @@ public class PickIngController extends BaseController {
      */
     @RequestMapping(value = "netExamine")
     public String netExamine(ShowList showList, Model model) {
-        model.addAttribute("showLi  st", showList);
+        model.addAttribute("showList", showList);
         ProjectNumber projectNumber = pickIngService.projectNumber(showList.getProcInsId());
         model.addAttribute("projectNumber",projectNumber);
         return "modules/sg/picking/activiti/netExamine";
@@ -142,6 +143,16 @@ public class PickIngController extends BaseController {
         return "modules/sg/picking/activiti/netExamineUpload";
     }
 
+    /**
+     * 临时表新增物料
+     */
+    @RequestMapping(value = "netExamineTemUpload")
+    public String netExamineTemUpload(ShowList showList, Model model) {
+        model.addAttribute("showList", showList);
+        return "modules/sg/picking/activiti/netExamineTemUpload";
+    }
+
+
 //    materialModuleForm.jsp
 
     /**
@@ -275,6 +286,13 @@ public class PickIngController extends BaseController {
     }
 
     @ResponseBody
+    @RequestMapping(value = "constructionTemData")
+    public Map<String, Object> constructionTemData(ShowList showList, String procInsId, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<ShowList> page = showListService.findNewTemPage(new Page<ShowList>(request, response), showList);
+        return getBootstrapData(page);
+    }
+
+    @ResponseBody
     @RequestMapping(value = "inventoryComparisonData")
     public Map<String, Object> inventoryComparisonData(ShowList showList, HttpServletRequest request, HttpServletResponse response, Model model) {
 
@@ -445,6 +463,41 @@ public class PickIngController extends BaseController {
     }
 
     /**
+     * 修改临时领料清单总量,自动计算总重
+     */
+    @ResponseBody
+    @RequestMapping(value = "mdTotalTemAmount")
+    public AjaxJson mdTotalTemAmount(ShowList showList, String mdTotalAmount,Model model) throws Exception {
+        AjaxJson j = new AjaxJson();
+        //获取新的数量
+        Double aDouble = Double.valueOf(mdTotalAmount);
+        showList.setMdTotalAmount(aDouble);
+        //根据id查询领料清单中的需要修改的那条信息
+        ShowList oneList = showListService.findOneTemList(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.updateTemAmount(showList);
+        j.setMsg("成功");
+        return j;
+    }
+
+    /**
+     * 施工项目经理审定领料清单
+     */
+    @RequestMapping(value = "managerExam")
+    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("act", act);
+        return "modules/sg/picking/activiti/managerExam";
+    }
+
+    /**
      * 批量删除
      */
     @ResponseBody
@@ -460,6 +513,21 @@ public class PickIngController extends BaseController {
     }
 
     /**
+     * 批量删除
+     */
+    @ResponseBody
+    @RequestMapping(value = "deleteAllTem")
+    public AjaxJson deleteAllTem(String ids) {
+        AjaxJson j = new AjaxJson();
+        String idArray[] =ids.split(",");
+        for(String id : idArray){
+            showListService.deleteTemData(id);
+        }
+        j.setMsg("删除成功!");
+        return j;
+    }
+
+    /**
      * 添加甲供物资信息到流程中
      */
     @ResponseBody
@@ -507,6 +575,53 @@ public class PickIngController extends BaseController {
     }
 
     /**
+     * 添加甲供物资信息到流程中
+     */
+    @ResponseBody
+    @RequestMapping(value = "netTemSave")
+    public AjaxJson netTemSave(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.processTemList(insertList);
+            j.setMsg("添加成功!");
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("添加失败");
+            e.printStackTrace();
+        }
+        return j;
+    }
+
+    /**
      * 成本
      * */
     @ResponseBody

+ 337 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/managerExam.js

@@ -0,0 +1,337 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	window.operateEvents = {
+		'change input': function (e, value, row, index) {
+			//input的id是那一行bootstrap的id,将id
+			var ss = $('#'+row.id).val();
+			jp.confirm('确认要修改?', function () {
+				jp.get("${ctx}/picking/activiti/mdTotalTemAmount?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);
+		//bootstrapTable加载数据
+		$('#informationTable').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/activiti/constructionTemData?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: [
+				{
+					checkbox: true
+				},
+				{
+					field: 'materialCode',
+					title: '物料编码',
+				}, {
+					field: 'materialDescription',
+					title: '物料名称',
+				}, {
+					field: 'extensionDescription',
+					title: '扩展描述',
+					width:'200px'
+				}, {
+					field: 'mdUnits',
+					title: '单位',
+				},
+				{
+					field: 'mdTotalAmount',
+					title: '总量',
+					events: operateEvents,
+					formatter: getTime
+				}, {
+					field: 'mdSingleWeight',
+					title: '单重/kg',
+				}, {
+					field: 'mdTotalWeight',
+					title: '总重/吨',
+				}, {
+					field: 'mdTheParty',
+					title: '甲乙供',
+				}, {
+					field: 'mdText',
+					title: '备注',
+				}
+			]
+		});
+
+	$('#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 deal'  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');
+	});
+
+	// 绑定查询重置按扭
+	$("#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/managerExam",
+			{
+			"taskId":"${act.taskId}",
+			"taskName":"${act.taskName}",
+			"taskDefKey":"${act.taskDefKey}",
+			"procInsId":"${act.procInsId}",
+			"procDefId":"${act.procDefId}",
+			"flag":"yes",
+			"comment":window.encodeURI(message)
+		},
+		function (data) {
+			if(data.success){
+				jp.success(data.msg);
+				jp.go("${ctx}/act/task/todo")
+			}
+		})
+		})
+	})
+
+
+	//领料清单
+	$("#exportBlock").click(function () {
+		var procInsId = encodeURI(encodeURI($("#procInsId").val()));
+		jp.downloadFile('${ctx}/picking/activiti/exportBlock?procInsId='+procInsId);
+	});
+
+	//模块清单
+	$("#exportListing").click(function () {
+		var procInsId = encodeURI(encodeURI($("#procInsId").val()));
+		jp.downloadFile('${ctx}/picking/activiti/exportListing?procInsId='+procInsId);
+	});
+});
+
+	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
+		}));
+	}
+
+	function deleteAll(){
+		jp.confirm('确认要删除该图片管理记录吗?', function(){
+			jp.loading();
+			jp.get("${ctx}/picking/activiti/deleteAllTem?ids=" + getIdSelections(), function(data){
+					refresh();
+					jp.success(data.msg);
+			})
+		})
+	}
+
+	function add(){
+		var procInsId = $("#procInsId").val();
+		jp.openSaveDialog('新增物料', "${ctx}/picking/activiti/netExamineTemUpload?procInsId="+procInsId,'800px', '500px');
+	}
+
+</script>

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

@@ -0,0 +1,80 @@
+<%@ 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="managerExam.js" %>
+	<style type="text/css">
+		/* 下边两行是去掉input 输入框右边的上下箭头按钮*/
+		.deal::-webkit-inner-spin-button {
+			-webkit-appearance: none !important;
+		}
+		.deal::-webkit-outer-spin-button {
+			-webkit-appearance: none !important;
+		}
+		input[type="number"]{
+			-moz-appearance:textfield;
+		}
+	</style>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">配网物资专职审核领料单</h3>
+	</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}"/>
+		</form:form>
+		<div id="">
+			<button id="exportBlock" class="btn btn-info">
+				<i class="fa fa-folder-open-o"></i> 导出领料清单
+			</button>
+			<button id="exportListing" class="btn btn-info">
+				<i class="fa fa-folder-open-o"></i> 导出模块清单
+			</button>
+		</div>
+		<div class="panel-body">
+			<h3>项目:${projectNumber.requireName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
+			<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">
+					<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;
+					</div>
+				</div>
+			</div>
+			<c:if test="${not empty showList.id}">
+				<act:flowChart procInsId="${showList.act.procInsId}"/>
+				<act:histoicFlow procInsId="${showList.act.procInsId}" />
+			</c:if>
+		</div>
+	</div>
+	</div>
+</body>
+</html>

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

@@ -15,7 +15,7 @@
 		.deal::-webkit-outer-spin-button {
 			-webkit-appearance: none !important;
 		}
-		input{ // 火狐
+		input[type="number"]{
 			-moz-appearance:textfield;
 		}
 	</style>

+ 68 - 0
src/main/webapp/webpage/modules/sg/picking/activiti/netExamineTemUpload.jsp

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

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

@@ -6,7 +6,6 @@
 	<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({
@@ -25,9 +24,6 @@
 			}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) {

+ 13 - 7
src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.js

@@ -201,7 +201,11 @@ $(document).ready(function() {
 		}
 
 
-
+	function getTime(value, row, index) {
+		return [
+			"<input  id="+row.id+" type='number' name='changeAmount' class='form-control required deal'  value="+row.mdTotalAmount+">",
+		].join('');
+	}
 
 	// 绑定查询按扭
 	$("#search").click("click", function() {
@@ -235,7 +239,6 @@ $(document).ready(function() {
 			var item = "";
 			$('input[name="need"]').each(function(){
 				var val = $(this).val();
-				console.log("val"+val);
 				if (val!=null&&val!=""&&val>0) {
 					item += $(this).attr("id")+":"+val+";"
 					console.log("item"+item);
@@ -255,10 +258,9 @@ $(document).ready(function() {
 		var item = "";
 		$('input[name="need"]').each(function(){
 			var val = $(this).val();
-			console.log("val"+val);
 			if (val!=null&&val!=""&&val>0) {
 				item += $(this).attr("id")+":"+val+";"
-				console.log("item"+item);
+				console.log(item+"\t");
 			}
 		})
 		$('#informationTable2').bootstrapTable('refresh', {
@@ -272,10 +274,9 @@ $(document).ready(function() {
 		var item = "";
 		$('input[name="need"]').each(function(){
 			var val = $(this).val();
-			console.log("val"+val);
 			if (val!=null&&val!=""&&val>0) {
 				item += $(this).attr("id")+":"+val+";"
-				console.log("item"+item);
+				console.log(item+"\t");
 			}
 		})
 		if (item == null || item == "") {
@@ -296,7 +297,12 @@ $(document).ready(function() {
                     function (data) {
                         if(data.success){
                             jp.success(data.msg);
-                            jp.go("${ctx}/act/task/todo")
+                            jp.go("${ctx}/picking/activiti/managerExam?taskId="+"${showList.act.taskId}"+
+								"&taskName="+"${showList.act.taskName}"+
+								"&taskDefKey="+"${showList.act.taskDefKey}"+
+								"&procInsId="+"${showList.act.procInsId}"+
+								"&procDefId="+"${showList.act.procDefId}"
+							)
                         }
                     })
 			});

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

@@ -104,9 +104,11 @@
 					</div>
 				</div>
 			</div>
+<%--			//领料--%>
 			<div id="div2" style="display: none">
 				<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>