Jelajahi Sumber

土建导出开工文档,导出竣工文档

lem 5 tahun lalu
induk
melakukan
5ce7127aa7
41 mengubah file dengan 2128 tambahan dan 569 penghapusan
  1. 70 39
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 34 9
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 4 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/ConstructionMapper.java
  4. 5 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/ConstructionMapper.xml
  5. 7 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/ConstructionService.java
  6. 34 21
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/EndTaskListen.java
  7. 7 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyActiviUtils.java
  8. 365 201
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/web/MaterialProjectController.java
  9. 14 4
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/ProjectMapper.java
  10. 41 21
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml
  11. 30 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java
  12. 6 9
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/util/ProjectImportUtil.java
  13. 41 26
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java
  14. 10 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/NonPower.java
  15. 6 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/NonPowerMapper.java
  16. 60 2
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/NonPowerMapper.xml
  17. 27 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/NonPowerService.java
  18. 232 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/NonPowerController.java
  19. 6 6
      src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/ProjectNumber.java
  20. 10 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/ShowList.java
  21. 4 2
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/PickIngMapper.xml
  22. 5 1
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml
  23. 304 0
      src/main/resources/freemarker/civilEnd.ftl
  24. 306 0
      src/main/resources/freemarker/civilStart.ftl
  25. 11 4
      src/main/webapp/webpage/modules/sg/managementcenter/privilege/privilegeProcdef.js
  26. 1 7
      src/main/webapp/webpage/modules/sg/managementcenter/privilege/privilegeProcdef.jsp
  27. 2 2
      src/main/webapp/webpage/modules/sg/managementcenter/project/projectDisclosurePlan.js
  28. 1 1
      src/main/webapp/webpage/modules/sg/managementcenter/project/projectDisclosurePlan.jsp
  29. 52 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/acceptance.js
  30. 131 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/acceptance.jsp
  31. 38 1
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.js
  32. 4 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp
  33. 20 161
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js
  34. 129 45
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp
  35. 34 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/superNonPower.js
  36. 72 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/superNonPower.jsp
  37. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/constructionLeader.jsp
  38. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/fullExamine.jsp
  39. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/managerAudit.jsp
  40. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/managerExam.jsp
  41. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/pickIng.jsp

+ 70 - 39
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -25,6 +25,7 @@ import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project1;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
+import com.jeeplus.modules.sg.materialmodule.activiti.service.NonPowerService;
 import com.jeeplus.modules.sg.picking.activiti.entity.MaterialReport;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickApplication;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
@@ -2675,19 +2676,17 @@ public class ActTaskService extends BaseService {
         showList.setAct(act);
         List<ShowList> newTemList = showListService.findNewTemList(showList);
         pickIngService.processList(newTemList);
-//        Project wzUser = MyActiviUtils.findWZUser(act.getProcInsId());
+        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         vars.put("pass", "yes".equals(act.getFlag()) ? true : false);
-//        vars.put("manager", UserUtils.getByUserName(wzUser.getConstructionUnitLeader()).getLoginName());
+        vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionLeader()).getLoginName());
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
 
     /**
-     * 保存审核意见
-     *
-     * @param act
+     * 施工单位领导审核-物资领料
      */
     @Transactional(readOnly = false)
     public void constructionLeader(Act act) {
@@ -2701,22 +2700,19 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         vars.put("pass", "yes".equals(flag) ? true : false);
-//        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
-//        String loginName = UserUtils.getByUserName(user.getConstructionUnitRole()).getLoginName();
-//        String loginName1 = UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName();
-//        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
+        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
+        String loginName = UserUtils.getByUserName(user.getAssignment().getConstructionFullTime()).getLoginName();
+        String loginName1 = UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName();
+        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
     /**
      * 施工单位物资专职审核
-     *
-     * @param act
      */
     @Transactional(readOnly = false)
     public void fullExamine(Act act) {
         String flag = act.getFlag();
-
         // 设置意见
         act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
         act.preUpdate();
@@ -2725,10 +2721,10 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         vars.put("pass", "yes".equals(flag) ? true : false);
-//        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
-//        String loginName = UserUtils.getByUserName(user.getProjectManageRole()).getLoginName();
-//        String loginName1 = UserUtils.getByUserName(user.getConstructionUnitLeader()).getLoginName();
-//        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
+        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
+        String loginName = UserUtils.getByUserName(user.getAssignment().getOwnerManager()).getLoginName();
+        String loginName1 = UserUtils.getByUserName(user.getAssignment().getConstructionLeader()).getLoginName();
+        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -2752,17 +2748,15 @@ public class ActTaskService extends BaseService {
             showListService.updateManagerTime(act.getProcInsId());
         }
         vars.put("pass", "yes".equals(flag) ? true : false);
-//        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
-//        String loginName = UserUtils.getByUserName(user.getDistributionMaterials()).getLoginName();
-//        vars.put("manager", "yes".equals(flag) ? "" : loginName);
+        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
+        String loginName = UserUtils.getByUserName(user.getAssignment().getOwnerManager()).getLoginName();
+        vars.put("manager", "yes".equals(flag) ? "" : loginName);
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
         //自动发起验收流程
     }
 
-    /**
+    /**managerAudit
      * 配网项目经理审核领料单
-     *
-     * @param act
      */
     @Transactional(readOnly = false)
     public void managerAudit(Act act) {
@@ -2776,10 +2770,10 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         vars.put("pass", "yes".equals(flag) ? true : false);
-//        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
-//        String loginName = UserUtils.getByUserName(user.getDistributionMaterials()).getLoginName();
-//        String loginName1 = UserUtils.getByUserName(user.getProjectManageRole()).getLoginName();
-//        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
+        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
+        String loginName = UserUtils.getByUserName(user.getAssignment().getDistributionFullTime()).getLoginName();
+        String loginName1 = UserUtils.getByUserName(user.getAssignment().getConstructionFullTime()).getLoginName();
+        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -2800,10 +2794,12 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         vars.put("pass", "yes".equals(flag) ? true : false);
-//        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
-//        String loginName = UserUtils.getByUserName(user.getManagementLeader()).getLoginName();
-//        String loginName1 = UserUtils.getByUserName(user.getProjectManageRole()).getLoginName();
-//        vars.put("manager", "yes".equals(flag) ? loginName : loginName1);
+        Project user = MyActiviUtils.findWZUser(act.getProcInsId());
+        if ("yes".equals(flag)) {
+            showListService.updateManagerTime(act.getProcInsId());
+        }
+        String loginName1 = UserUtils.getByUserName(user.getAssignment().getOwnerManager()).getLoginName();
+        vars.put("manager", "yes".equals(flag) ? "" : loginName1);
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -3095,14 +3091,12 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findTJUser(act.getProcInsId());
         vars.put("pass", "yes".equals(flag) ? true : false);
         if ("yes".equals(flag)) {
-            //根据项目设置的流转人员,流转对应人员
-//            vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
         } else {
             //根据项目设置的流转人员,流转对应人员
-//            vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
         }
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
@@ -3193,11 +3187,9 @@ public class ActTaskService extends BaseService {
 
     /**
      * 土建竣工流程
-     *
-     * @param act
      */
     @Transactional(readOnly = false)
-    public void nonPowerEndTask(Act act) {
+    public void nonPowerEndTask(Act act, String engineeringAcceptance) {
         // 设置意见
         act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
         act.preUpdate();
@@ -3205,14 +3197,53 @@ public class ActTaskService extends BaseService {
         String taskDefKey = act.getTaskDefKey();
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
+        vars.put("acc",false);
+        vars.put("return",false);
+        vars.put("re",false);
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findTJUser(act.getProcInsId());
         //根据项目设置的流转人员,流转对应人员
-//        vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
+        if ("yes".equals(act.getFlag())) {
+            if ("是".equals(engineeringAcceptance)) {
+                vars.put("acc", true);
+                vars.put("manager", UserUtils.getByUserName(user.getAssignment().getDistribution()).getLoginName());
+            } else {
+                vars.put("re", true);
+                vars.put("manager", UserUtils.getByUserName(user.getAssignment().getOwnerManager()).getLoginName());
+            }
+        } else {
+            vars.put("return",true);
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
+        }
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
     /**
+     * 土建在线审核流程
+     * */
+    @Transactional(readOnly = false)
+    public void acceptanceTask(Act act) {
+        // 设置意见
+        act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
+        act.preUpdate();
+        // 对不同环节的业务逻辑进行操作
+        String taskDefKey = act.getTaskDefKey();
+        // 提交流程任务
+        Map<String, Object> vars = Maps.newHashMap();
+        //根据流程实例id查询项目的相关信息
+        Project user = MyActiviUtils.findTJUser(act.getProcInsId());
+        vars.put("pass", "yes".equals(act.getFlag()) ? true : false);
+        if ("yes".equals(act.getFlag())) {
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getOwnerManager()).getLoginName());
+        } else {
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
+        }
+        //根据项目设置的流转人员,流转对应人员
+        complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+    }
+
+
+    /**
      * 配网项目经理判断是否完成土建工作
      *
      * @param act

+ 34 - 9
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -1538,9 +1538,7 @@ public class ActTaskController extends BaseController {
     }
 
     /**
-     * 审批
-     *
-     * @param act
+     * 施工单位领导审核-物资领料
      */
     @ResponseBody
     @RequestMapping(value = "constructionLeader")
@@ -1570,7 +1568,6 @@ public class ActTaskController extends BaseController {
     @RequestMapping(value = "managerExam")
     public AjaxJson managerExam(Act act) {
         AjaxJson j = new AjaxJson();
-
         actTaskService.managerExam(act);
         j.setMsg("审批成功");
         return j;
@@ -1752,9 +1749,9 @@ public class ActTaskController extends BaseController {
         AjaxJson j = new AjaxJson();
         try {
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
-            act.setComment(comment);
             //修改土建开工报告信息
             act = nonPower.getAct();
+            act.setComment(comment);
             nonPowerService.updateStart(nonPower);
             actTaskService.nonPowerStartTask(act);
         } catch (UnsupportedEncodingException e) {
@@ -1873,9 +1870,8 @@ public class ActTaskController extends BaseController {
     @RequestMapping(value = "nonRePowerEndTask")
     public AjaxJson nonRePowerEndTask(Act act) {
         AjaxJson j = new AjaxJson();
-        String comment = null;
         try {
-            comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
             actTaskService.nonRePowerEndTask(act);
         } catch (UnsupportedEncodingException e) {
@@ -1979,8 +1975,37 @@ public class ActTaskController extends BaseController {
         try {
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
-            nonPowerService.updateEnd(nonPower);
-            actTaskService.nonPowerEndTask(act);
+            String engineering = "";
+            if ("yes".equals(act.getFlag())) {
+                nonPowerService.updateEnd(nonPower);
+                NonPower nonPower1 = nonPowerService.get(nonPower.getId());
+                if (nonPower1.getEngineeringAcceptance() == null || "".equals(nonPower1.getEngineeringAcceptance())) {
+                    j.setSuccess(false);
+                    j.setMsg("请先填写工程量信息");
+                    return j;
+                }
+                engineering = nonPower1.getEngineeringAcceptance();
+            }
+            actTaskService.nonPowerEndTask(act,engineering);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        j.setMsg("审批成功");
+        return j;
+    }
+
+
+    /**
+     * 土建在线审核流程
+     * */
+    @ResponseBody
+    @RequestMapping(value = "acceptanceTask")
+    public AjaxJson acceptanceTask(Act act) {
+        AjaxJson j = new AjaxJson();
+        try {
+            String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            act.setComment(comment);
+            actTaskService.acceptanceTask(act);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }

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

@@ -40,6 +40,10 @@ public interface ConstructionMapper extends BaseMapper<Construction> {
     //根据储备项目暂定名称修改项目状态
     void updateStatus(String reserveProjectName);
 
+    //根据储备项目暂定名称修改项目状态-结束状态
+    void updateEndStatus(String reserveProjectName);
+    //updateEndStatus
+
     /**
      * 根据项目定义号修改项目的土建流程状态
      * */

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

@@ -618,6 +618,11 @@
         set advanceStatus = '1'
         where projectId = #{projectId};
     </update>
+    <update id="updateEndStatus">
+        update xm_material_project
+        set status = '2'
+        where reserveProjectName = #{reserveProjectName}
+    </update>
     <insert id="quantityInsert">
         replace into xm_project_quantity
         (

+ 7 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/ConstructionService.java

@@ -140,12 +140,18 @@ public class ConstructionService extends CrudService<ConstructionMapper, Constru
 		constructionMapper.newSave(construction);
 	}
 
-	//根据储备项目暂定名称修改项目状态
+	//根据储备项目暂定名称修改项目状态-开始状态
 	@Transactional(readOnly = false)
 	public void updateStatus(String reserveProjectName) {
 		constructionMapper.updateStatus(reserveProjectName);
 	}
 
+	//根据储备项目暂定名称修改项目状态-结束状态
+	@Transactional(readOnly = false)
+	public void updateEndStatus(String reserveProjectName) {
+		constructionMapper.updateEndStatus(reserveProjectName);
+	}
+
 	/**
 	 * 根据项目定义号修改项目的土建流程状态
 	 * */

+ 34 - 21
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/EndTaskListen.java

@@ -5,8 +5,11 @@ import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.SpringContextHolder;
 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.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
+import com.jeeplus.modules.sg.materialmodule.activiti.service.NonPowerService;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
 import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
 import com.jeeplus.modules.sys.entity.DictValue;
@@ -31,9 +34,11 @@ public class EndTaskListen implements Serializable, ExecutionListener {
     public void notify(DelegateExecution delegateExecution) throws Exception {
         try {
             ShowListService showListService = SpringContextHolder.getBean(ShowListService.class);
+            NonPowerService nonPowerService = SpringContextHolder.getBean(NonPowerService.class);
             ProjectService projectService = SpringContextHolder.getBean(ProjectService.class);
             ActProcessService actProcessService = SpringContextHolder.getBean(ActProcessService.class);
             ActTaskService actTaskService = SpringContextHolder.getBean(ActTaskService.class);
+            ConstructionService constructionService = SpringContextHolder.getBean(ConstructionService.class);
             ShowList showList = new ShowList();
             //获取流程定义号
             String processInstanceId = delegateExecution.getProcessInstanceId();
@@ -41,8 +46,10 @@ public class EndTaskListen implements Serializable, ExecutionListener {
             Project projectProc = projectService.findByProcInsId(processInstanceId);
             String projectId = projectProc.getProjectId();
             String projectName = projectProc.getProjectName();
+            String reserveProjectName = projectProc.getReserveProjectName();
+            constructionService.updateEndStatus(reserveProjectName);
             //判断是否有项目定义号和项目名称(没有不予发送领料流程)
-            if ("".equals(projectId) || "".equals(projectName)) {
+            if ("".equals(projectId) || "".equals(projectName) || null == projectId || null == projectName) {
 
             } else {
                 if (!"0".equals(projectProc.getAcquisitionStatus())) {
@@ -55,11 +62,15 @@ public class EndTaskListen implements Serializable, ExecutionListener {
                     String value = dic.getValue();
                     showList.setsVersion(value);
                     showList.setProjectId(projectId);
+                    showList.setProjectName(projectName);
+                    showList.setReserveProjectName(reserveProjectName);
                 } else {
                     showList.setTheNumber("1");
+                    showList.setProjectName(projectName);
+                    showList.setReserveProjectName(reserveProjectName);
                     showList.setProjectId(projectId);
                 }
-                showListService.updateAcqStatus(projectProc.getReserveProjectName());
+                showListService.updateAcqStatus(reserveProjectName);
                 //保存数据
                 showListService.save(showList);
                 // 启动物资领料流程
@@ -69,26 +80,28 @@ public class EndTaskListen implements Serializable, ExecutionListener {
                 ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
                 String title = showList.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
                 actTaskService.startProcess(p.getKey(), "md_acquisition_process", showList.getId(), title, vars);
+                //判断是否需要发起土建领料流程(是否有土建工程量)
+                boolean isEngineering = nonPowerService.findIsEngineering(reserveProjectName);
+                if (isEngineering) {
+                    if ("0".equals(projectProc.getAdvanceStatus())) {
+                        NonPower nonPower = new NonPower();
+                        nonPower.setProjectId(projectId);
+                        nonPower.setProjectName(projectName);
+                        nonPower.setReserveProjectName(reserveProjectName);
+                        //保存土建基本数据
+                        nonPowerService.insert(nonPower);
+                        //修改项目基础信息土建流程状态
+                        projectService.updateAdvanceStart(reserveProjectName, "1");
+                        //启动土建流程
+                        Map<String, Object> vars2 = Maps.newHashMap();
+                        vars2.put("design", UserUtils.getByUserName(projectProc.getAssignment().getConstructionManage()).getLoginName());
+                        String procDefId2 = projectService.findDefId("tjys");
+                        ProcessDefinition p2 = actProcessService.getProcessDefinition(procDefId2);
+                        String title2 = nonPower.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p2.getName();
+                        actTaskService.startProcess(p2.getKey(), "xm_nonpower_process", nonPower.getId(), title2, vars2);
+                    }
+                }
             }
-//            String id = idConProc.getId();
-//            String constructionUnitManage = idConProc.getConstructionUnitManage();
-            //获取项目第几次发起领料
-//            String number = showListService.findNumber(id);
-//            showList.setProjectId(id);
-//            if (number == null || "".equals(number)) {
-//                showList.setTheNumber("1");
-//            } else {
-//                int i = Integer.parseInt(number);
-//                int a = i + 1;
-//                showList.setTheNumber(String.valueOf(a));
-//                DictValue dic = MyActiviUtils.findDic();
-//                String value = dic.getValue();
-//                showList.setsVersion(value);
-//            }
-
-            //根据流程定义号修改项目的施工交底状态
-//            projectService.updateStatusBy("2", processInstanceId);
-
         } catch (Exception e) {
             e.printStackTrace();
         }

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

@@ -278,6 +278,13 @@ public class MyActiviUtils {
     }
 
     /**
+     * 通过流程定义id查询项目流转人员信息-物资流程
+     * */
+    public static Project findWZUser(String procInsId) {
+        return projectService.findWZUser(procInsId);
+    }
+
+    /**
      * 通过流程定义号查询需求单位
      */
     public static String demandByProcInsId(String procInsId) {

+ 365 - 201
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/web/MaterialProjectController.java

@@ -4,6 +4,7 @@
 package com.jeeplus.modules.sg.managementcenter.materialproject.web;
 
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
@@ -11,12 +12,24 @@ 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.service.ActProcessService;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.service.MaterialInfoService;
 import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
 import com.jeeplus.modules.sg.managementcenter.materialproject.service.MaterialProjectService;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.MaterialProUtil;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
+import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
+import com.jeeplus.modules.sg.materialmodule.activiti.service.NonPowerService;
+import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
+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.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -44,214 +57,365 @@ import java.util.Map;
 @RequestMapping(value = "${adminPath}/managementcenter/materialproject")
 public class MaterialProjectController extends BaseController {
 
-	@Autowired
-	private MaterialProjectService materialProjectService;
-	@Autowired
-	private MaterialInfoService materialInfoService;
-	
-	@ModelAttribute
-	public MaterialProject get(@RequestParam(required=false) String id) {
-		MaterialProject entity = null;
-		if (StringUtils.isNotBlank(id)){
-			entity = materialProjectService.get(id);
-		}
-		if (entity == null){
-			entity = new MaterialProject();
-		}
-		return entity;
-	}
-	
-	/**
-	 * 项目列表页面
-	 */
-	@RequiresPermissions("managementcenter:materialproject:list")
-	@RequestMapping(value = {"list", ""})
-	public String list(MaterialProject materialProject, Model model) {
-		model.addAttribute("materialProject", materialProject);
-		return "modules/sg/managementcenter/materialproject/materialProjectList";
-	}
-	
-		/**
-	 * 列表数据
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialproject:list")
-	@RequestMapping(value = "data")
-	public Map<String, Object> data(MaterialProject materialProject, HttpServletRequest request, HttpServletResponse response, Model model) {
-		materialProject.setProjectStatus("");
-		MaterialProject materialProject1 = new MaterialProject();
-		materialProjectService.getSearch(materialProject,materialProject1);
-		HttpSession session = request.getSession();
-		session.setAttribute("materialPro",materialProject1);
-		Page<MaterialProject> page = materialProjectService.findPage(new Page<MaterialProject>(request, response), materialProject);
-		return getBootstrapData(page);
-	}
+    @Autowired
+    private MaterialProjectService materialProjectService;
+    @Autowired
+    private MaterialInfoService materialInfoService;
+    @Autowired
+    private ProjectService projectService;
+    @Autowired
+    private ShowListService showListService;
+    @Autowired
+    private ActProcessService actProcessService;
+    @Autowired
+    private ActTaskService actTaskService;
+    @Autowired
+    private NonPowerService nonPowerService;
 
-	/**
-	 * 查看,增加,编辑表单页面
-	 */
-	@RequiresPermissions(value={"managementcenter:materialproject:view","managementcenter:materialproject:add","managementcenter:materialproject:edit"},logical=Logical.OR)
-	@RequestMapping(value = "form")
-	public String form(MaterialProject materialProject, Model model) {
-		List<MaterialProject> list = materialProjectService.findBatch();
-		model.addAttribute("batch",list);
-		model.addAttribute("materialProject", materialProject);
-		return "modules/sg/managementcenter/materialproject/materialProjectForm";
-	}
+    @ModelAttribute
+    public MaterialProject get(@RequestParam(required = false) String id) {
+        MaterialProject entity = null;
+        if (StringUtils.isNotBlank(id)) {
+            entity = materialProjectService.get(id);
+        }
+        if (entity == null) {
+            entity = new MaterialProject();
+        }
+        return entity;
+    }
+
+    /**
+     * 项目列表页面
+     */
+    @RequiresPermissions("managementcenter:materialproject:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(MaterialProject materialProject, Model model) {
+        model.addAttribute("materialProject", materialProject);
+        return "modules/sg/managementcenter/materialproject/materialProjectList";
+    }
+
+    /**
+     * 列表数据
+     */
+    @ResponseBody
+    @RequiresPermissions("managementcenter:materialproject:list")
+    @RequestMapping(value = "data")
+    public Map<String, Object> data(MaterialProject materialProject, HttpServletRequest request, HttpServletResponse response, Model model) {
+        materialProject.setProjectStatus("");
+        MaterialProject materialProject1 = new MaterialProject();
+        materialProjectService.getSearch(materialProject, materialProject1);
+        HttpSession session = request.getSession();
+        session.setAttribute("materialPro", materialProject1);
+        Page<MaterialProject> page = materialProjectService.findPage(new Page<MaterialProject>(request, response), materialProject);
+        return getBootstrapData(page);
+    }
+
+    /**
+     * 查看,增加,编辑表单页面
+     */
+    @RequiresPermissions(value = {"managementcenter:materialproject:view", "managementcenter:materialproject:add", "managementcenter:materialproject:edit"}, logical = Logical.OR)
+    @RequestMapping(value = "form")
+    public String form(MaterialProject materialProject, Model model) {
+        List<MaterialProject> list = materialProjectService.findBatch();
+        model.addAttribute("batch", list);
+        model.addAttribute("materialProject", materialProject);
+        return "modules/sg/managementcenter/materialproject/materialProjectForm";
+    }
+
+    /**
+     * 保存
+     */
+    @ResponseBody
+    @RequiresPermissions(value = {"managementcenter:materialproject:add", "managementcenter:materialproject:edit"}, logical = Logical.OR)
+    @RequestMapping(value = "save")
+    public AjaxJson save(MaterialProject materialProject, Model model) throws Exception {
+        AjaxJson j = new AjaxJson();
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(materialProject);
+        if (StringUtils.isNotBlank(errMsg)) {
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+        //新增或编辑表单保存
+        materialProjectService.save(materialProject);//保存
+        ShowList showList = new ShowList();
+        String projectId = materialProject.getProjectId();
+        String projectName = materialProject.getProjectName();
+        String reserveProjectName = materialProject.getReserveProjectName();
+        Project byName = projectService.findByName(materialProject.getReserveProjectName());
+        if ("2".equals(byName.getStatus())) {
+            String acquisitionStatus = byName.getAcquisitionStatus();
+            if ("0".equals(acquisitionStatus) || "1".equals(acquisitionStatus)) {
+                if ("0".equals(acquisitionStatus)) {
+                    //获取项目第几次发起领料
+                    String number = showListService.findNumber(projectId);
+                    int i = Integer.parseInt(number);
+                    int a = i + 1;
+                    showList.setTheNumber(String.valueOf(a));
+                    DictValue dic = MyActiviUtils.findDic();
+                    String value = dic.getValue();
+                    showList.setsVersion(value);
+                    showList.setProjectId(projectId);
+                    showList.setProjectName(projectName);
+                    showList.setReserveProjectName(reserveProjectName);
+                } else {
+                    showList.setTheNumber("1");
+                    showList.setProjectName(projectName);
+                    showList.setReserveProjectName(reserveProjectName);
+                    showList.setProjectId(projectId);
+                }
+                showListService.updateAcqStatus(reserveProjectName);
+                //保存数据
+                showListService.save(showList);
+                // 启动物资领料流程
+                Map<String, Object> vars = Maps.newHashMap();
+                vars.put("manager", UserUtils.getByUserName(byName.getAssignment().getOwnerManager()).getLoginName());
+                String procDefId = projectService.findDefId("wzll");
+                ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                String title = showList.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                actTaskService.startProcess(p.getKey(), "md_acquisition_process", showList.getId(), title, vars);
+            }
+            //判断是否需要发起土建领料流程(是否有土建工程量)
+            boolean isEngineering = nonPowerService.findIsEngineering(reserveProjectName);
+            if (isEngineering) {
+                if ("0".equals(byName.getAdvanceStatus())) {
+                    NonPower nonPower = new NonPower();
+                    nonPower.setProjectId(projectId);
+                    nonPower.setProjectName(projectName);
+                    nonPower.setReserveProjectName(reserveProjectName);
+                    //保存土建基本数据
+                    nonPowerService.insert(nonPower);
+                    //修改项目基础信息土建流程状态
+                    projectService.updateAdvanceStart(reserveProjectName, "1");
+                    //启动土建流程
+                    Map<String, Object> vars2 = Maps.newHashMap();
+                    vars2.put("manager", UserUtils.getByUserName(byName.getAssignment().getConstructionManage()).getLoginName());
+                    String procDefId2 = projectService.findDefId("tjys");
+                    ProcessDefinition p2 = actProcessService.getProcessDefinition(procDefId2);
+                    String title2 = nonPower.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p2.getName();
+                    actTaskService.startProcess(p2.getKey(), "xm_nonpower_process", nonPower.getId(), title2, vars2);
+                }
+            }
+        }
+        j.setSuccess(true);
+        j.setMsg("保存项目成功");
+        return j;
+    }
 
-	/**
-	 * 保存
-	 */
-	@ResponseBody
-	@RequiresPermissions(value={"managementcenter:materialproject:add","managementcenter:materialproject:edit"},logical=Logical.OR)
-	@RequestMapping(value = "save")
-	public AjaxJson save(MaterialProject materialProject, Model model) throws Exception{
-		AjaxJson j = new AjaxJson();
-		/**
-		 * 后台hibernate-validation插件校验
-		 */
-		String errMsg = beanValidator(materialProject);
-		if (StringUtils.isNotBlank(errMsg)){
-			j.setSuccess(false);
-			j.setMsg(errMsg);
-			return j;
-		}
-		//新增或编辑表单保存
-		materialProjectService.save(materialProject);//保存
-		j.setSuccess(true);
-		j.setMsg("保存项目成功");
-		return j;
-	}
-	
-	/**
-	 * 删除项目
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialproject:del")
-	@RequestMapping(value = "delete")
-	public AjaxJson delete(MaterialProject materialProject) {
-		AjaxJson j = new AjaxJson();
-		materialProjectService.delete(materialProject);
-		j.setMsg("删除项目成功");
-		return j;
-	}
-	
-	/**
-	 * 批量删除
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialproject:del")
-	@RequestMapping(value = "deleteAll")
-	public AjaxJson deleteAll(String ids) {
-		AjaxJson j = new AjaxJson();
-		String idArray[] =ids.split(",");
-		for(String id : idArray){
-			materialProjectService.delete(materialProjectService.get(id));
-		}
-		j.setMsg("删除项目成功");
-		return j;
-	}
-	
-	/**
-	 * 物料列表导出
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialproject:export")
+    /**
+     * 删除项目
+     */
+    @ResponseBody
+    @RequiresPermissions("managementcenter:materialproject:del")
+    @RequestMapping(value = "delete")
+    public AjaxJson delete(MaterialProject materialProject) {
+        AjaxJson j = new AjaxJson();
+        materialProjectService.delete(materialProject);
+        j.setMsg("删除项目成功");
+        return j;
+    }
+
+    /**
+     * 批量删除
+     */
+    @ResponseBody
+    @RequiresPermissions("managementcenter:materialproject:del")
+    @RequestMapping(value = "deleteAll")
+    public AjaxJson deleteAll(String ids) {
+        AjaxJson j = new AjaxJson();
+        String idArray[] = ids.split(",");
+        for (String id : idArray) {
+            materialProjectService.delete(materialProjectService.get(id));
+        }
+        j.setMsg("删除项目成功");
+        return j;
+    }
+
+    /**
+     * 物料列表导出
+     */
+    @ResponseBody
+    @RequiresPermissions("managementcenter:materialproject:export")
     @RequestMapping(value = "export")
-    public AjaxJson exportFile(MaterialProject materialProject, HttpServletRequest request, HttpServletResponse response){
-		AjaxJson j = new AjaxJson();
-		HttpSession session = request.getSession();
-		MaterialProject materialProject1 = (MaterialProject)session.getAttribute("materialPro");
-		try {
-            String fileName = "物料"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
-			List<MaterialProject> list = new ArrayList<MaterialProject>();
-			if (!materialProject1.getReserveProjectName().equals("")||!materialProject1.getProjectName().equals("")
-					||!materialProject1.getReserveCode().equals("")||null!=materialProject1.getReserveCodes()||null!=materialProject1.getProjectCodes()){
-				list = materialProjectService.findList(materialProject1);
-			}else {
-				list = materialProjectService.findList(materialProject);
-			}
+    public AjaxJson exportFile(MaterialProject materialProject, HttpServletRequest request, HttpServletResponse response) {
+        AjaxJson j = new AjaxJson();
+        HttpSession session = request.getSession();
+        MaterialProject materialProject1 = (MaterialProject) session.getAttribute("materialPro");
+        try {
+            String fileName = "物料" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            List<MaterialProject> list = new ArrayList<MaterialProject>();
+            if (!materialProject1.getReserveProjectName().equals("") || !materialProject1.getProjectName().equals("")
+                    || !materialProject1.getReserveCode().equals("") || null != materialProject1.getReserveCodes() || null != materialProject1.getProjectCodes()) {
+                list = materialProjectService.findList(materialProject1);
+            } else {
+                list = materialProjectService.findList(materialProject);
+            }
             List<MaterialInfo> materialInfos = materialInfoService.findByBatch(list);
-    		new ExportExcel(null, MaterialInfo.class).setDataList(materialInfos).write(response, fileName).dispose();
-    		j.setSuccess(true);
-    		j.setMsg("导出成功!");
-    		return j;
-		} catch (Exception e) {
-			j.setSuccess(false);
-			j.setMsg("导出失败!失败信息:"+e.getMessage());
-		}
-			return j;
+            new ExportExcel(null, MaterialInfo.class).setDataList(materialInfos).write(response, fileName).dispose();
+            j.setSuccess(true);
+            j.setMsg("导出成功!");
+            return j;
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("导出失败!失败信息:" + e.getMessage());
+        }
+        return j;
     }
 
-	/**
-	 * 项目列表导出
-	 * @param materialProject
-	 * @param request
-	 * @param response
-	 * @return
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialproject:export")
-	@RequestMapping(value = "exportpro")
-	public AjaxJson exportPro(MaterialProject materialProject, HttpServletRequest request, HttpServletResponse response) {
-		AjaxJson j = new AjaxJson();
-		try {
-			HttpSession session = request.getSession();
-			MaterialProject materialProject1 = (MaterialProject)session.getAttribute("materialPro");
-			String fileName = "项目表"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+    /**
+     * 项目列表导出
+     *
+     * @param materialProject
+     * @param request
+     * @param response
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("managementcenter:materialproject:export")
+    @RequestMapping(value = "exportpro")
+    public AjaxJson exportPro(MaterialProject materialProject, HttpServletRequest request, HttpServletResponse response) {
+        AjaxJson j = new AjaxJson();
+        try {
+            HttpSession session = request.getSession();
+            MaterialProject materialProject1 = (MaterialProject) session.getAttribute("materialPro");
+            String fileName = "项目表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
 //			Page<MaterialProject> page = materialProjectService.findPage(new Page<MaterialProject>(request, response, -1), materialProject);
-			List<MaterialProject> list = null;
-			if (!materialProject1.getReserveProjectName().equals("")||!materialProject1.getProjectName().equals("")
-					||!materialProject1.getReserveCode().equals("")||null!=materialProject1.getReserveCodes()||null!=materialProject1.getProjectCodes()){
-				list = materialProjectService.findList(materialProject1);
-			}else {
-				list = materialProjectService.findList(materialProject);
-			}
-			new ExportExcel(null, MaterialProject.class).setDataList(list).write(response, fileName).dispose();
-			j.setSuccess(true);
-			j.setMsg("导出成功!");
-			return j;
-		} catch (Exception e) {
-			j.setSuccess(false);
-			j.setMsg("导出失败!失败信息:"+e.getMessage());
-		}
-		return j;
-	}
-
-	/**
-	 * 导入Excel数据
+            List<MaterialProject> list = null;
+            if (!materialProject1.getReserveProjectName().equals("") || !materialProject1.getProjectName().equals("")
+                    || !materialProject1.getReserveCode().equals("") || null != materialProject1.getReserveCodes() || null != materialProject1.getProjectCodes()) {
+                list = materialProjectService.findList(materialProject1);
+            } else {
+                list = materialProjectService.findList(materialProject);
+            }
+            new ExportExcel(null, MaterialProject.class).setDataList(list).write(response, fileName).dispose();
+            j.setSuccess(true);
+            j.setMsg("导出成功!");
+            return j;
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("导出失败!失败信息:" + e.getMessage());
+        }
+        return j;
+    }
 
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialproject:import")
-	@RequestMapping(value = "import")
-	public AjaxJson importFile(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request){
-		AjaxJson j = new AjaxJson();
-		try {
-			ImportUtil importUtil = new ImportUtil(file, 0, 0);
+    /**
+     * 导入Excel数据
+     */
+    @ResponseBody
+    @RequiresPermissions("managementcenter:materialproject:import")
+    @RequestMapping(value = "import")
+    public AjaxJson importFile(@RequestParam("file") MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
+        AjaxJson j = new AjaxJson();
+        try {
+            ImportUtil importUtil = new ImportUtil(file, 0, 0);
 //			Boolean materialProjectFlag = MaterialProUtil.getMaterialProjectFlag(importUtil);
-			List<MaterialProject> materialProjects = MaterialProUtil.getProjectUtil(importUtil);
-			List<MaterialProject> updateList = new ArrayList<>();
-			List<String> allReserveName = materialProjectService.findAllReserveName();
-			if (allReserveName.size()<=0) {
-				j.setSuccess(true);
-				return j;
-			}
-			for (MaterialProject m:materialProjects) {
-				for (String s: allReserveName) {
-					if (s.trim().equals(m.getReserveProjectName().trim())) {
-						updateList.add(m);
-					}
-				}
-			}
-			if (updateList.size() > 0) {
-				materialProjectService.updateList(updateList);
-			}
-			j.setMsg( "已成功导入 "+updateList.size()+" 条项目表单记录");
-		} catch (Exception e) {
-			j.setSuccess(false);
-			j.setMsg("导入项目表单失败!失败信息:"+e.getMessage());
-		}
-		return j;
-	}
+            //获取导入表格所有数据
+            List<MaterialProject> materialProjects = MaterialProUtil.getProjectUtil(importUtil);
+            List<MaterialProject> updateList = new ArrayList<>();
+            //获取所以已经存在储备项目暂定名称的项目
+            List<String> allReserveName = materialProjectService.findAllReserveName();
+            //判断没有项目结束导入
+            if (allReserveName.size() <= 0) {
+                j.setSuccess(true);
+                return j;
+            }
+            //循环得出所有可以导入的项目信息list
+            for (MaterialProject m : materialProjects) {
+                for (String s : allReserveName) {
+                    if (s.trim().equals(m.getReserveProjectName().trim())) {
+                        updateList.add(m);
+                    }
+                }
+            }
+            //判断项目是否发送流程,发送流程的项目,无法修改
+            List<MaterialProject> needList = new ArrayList<>();
+            for (MaterialProject m : updateList
+            ) {
+                String projectId = m.getProjectId();
+                String projectName = m.getProjectName();
+                if (null != projectId && !"".equals(projectId) && null != projectName && !"".equals(projectName)) {
+                    needList.add(m);
+                }
+            }
+            //等到可以发送施工交底流程,土建流程项目信息
+            for (MaterialProject pro : needList
+            ) {
+                ShowList showList = new ShowList();
+                String projectId = pro.getProjectId();
+                String projectName = pro.getProjectName();
+                String reserveProjectName = pro.getReserveProjectName();
+                Project byName = projectService.findByName(pro.getReserveProjectName());
+                if ("2".equals(byName.getStatus())) {
+                    String acquisitionStatus = byName.getAcquisitionStatus();
+                    if ("0".equals(acquisitionStatus) || "1".equals(acquisitionStatus)) {
+                        if ("1".equals(acquisitionStatus)) {
+                            //获取项目第几次发起领料
+                            String number = showListService.findNumber(projectId);
+                            int a = 0;
+                            if (number != null && !"".equals(number)) {
+                                int i = Integer.parseInt(number);
+                                 a = i + 1;
+                            } else {
+                                a = 1;
+                            }
+                            showList.setTheNumber(String.valueOf(a));
+                            showList.setsVersion(MyActiviUtils.findDic().getValue());
+                            showList.setProjectId(projectId);
+                            showList.setProjectName(projectName);
+                            showList.setReserveProjectName(reserveProjectName);
+                        } else {
+                            showList.setsVersion(MyActiviUtils.findDic().getValue());
+                            showList.setTheNumber("1");
+                            showList.setProjectName(projectName);
+                            showList.setReserveProjectName(reserveProjectName);
+                            showList.setProjectId(projectId);
+                        }
+                        showListService.updateAcqStatus(reserveProjectName);
+                        //保存数据
+                        showListService.save(showList);
+                        // 启动物资领料流程
+                        Map<String, Object> vars = Maps.newHashMap();
+                        vars.put("manager", UserUtils.getByUserName(byName.getAssignment().getOwnerManager()).getLoginName());
+                        String procDefId = projectService.findDefId("wzll");
+                        ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                        String title = showList.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                        actTaskService.startProcess(p.getKey(), "md_acquisition_process", showList.getId(), title, vars);
+                    }
+                    //判断是否需要发起土建领料流程(是否有土建工程量)
+                    boolean isEngineering = nonPowerService.findIsEngineering(reserveProjectName);
+                    if (isEngineering) {
+                        if ("0".equals(byName.getAdvanceStatus())) {
+                            NonPower nonPower = new NonPower();
+                            nonPower.setProjectId(projectId);
+                            nonPower.setProjectName(projectName);
+                            nonPower.setReserveProjectName(reserveProjectName);
+                            //保存土建基本数据
+                            nonPowerService.insert(nonPower);
+                            //修改项目基础信息土建流程状态
+                            projectService.updateAdvanceStart(reserveProjectName, "1");
+                            //启动土建流程
+                            Map<String, Object> vars2 = Maps.newHashMap();
+                            vars2.put("design", UserUtils.getByUserName(byName.getAssignment().getConstructionManage()).getLoginName());
+                            String procDefId2 = projectService.findDefId("tjys");
+                            ProcessDefinition p2 = actProcessService.getProcessDefinition(procDefId2);
+                            String title2 = nonPower.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p2.getName();
+                            actTaskService.startProcess(p2.getKey(), "xm_nonpower_process", nonPower.getId(), title2, vars2);
+                        }
+                    }
+                }
+            }
+            if (updateList.size() > 0) {
+                materialProjectService.updateList(updateList);
+            }
+
+            j.setMsg("已成功导入 " + updateList.size() + " 条项目表单记录");
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("导入项目表单失败!失败信息:" + e.getMessage());
+        }
+        return j;
+    }
 }

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

@@ -5,12 +5,9 @@ package com.jeeplus.modules.sg.managementcenter.project.mapper;
 
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
-import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
-import com.jeeplus.modules.sg.managementcenter.activiti.entity.OtherAmount;
 import com.jeeplus.modules.sg.managementcenter.project.entity.PickingRequisition;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project1;
-import com.sun.tools.corba.se.idl.StringGen;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -162,9 +159,12 @@ public interface ProjectMapper extends BaseMapper<Project> {
      */
     String reserveProjectNameById(String id);
 
-
+    //通过流程定义号查询项目基础信息
     Project findByProcInsId(String procInsId);
 
+    //通过储备项目名称查询项目信息
+    Project findByName(String reserveProjectName);
+
     /**
      * 获取项目基础信息根据id
      */
@@ -180,6 +180,11 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     void  updateStatusByClose(@Param("close") String close,@Param("procInsId") String procInsid);
 
+    /**
+     * 根据项目储备名称修改项目土建超权限状态
+     */
+    void updateAdvCon(@Param("reserveProjectName") String reserveProjectName,@Param("status") String status);
+
     void updateAcquisitionStatus(@Param("acquisitionStatus")String acquisitionStatus,@Param("id") String id);
 
     /**
@@ -221,4 +226,9 @@ public interface ProjectMapper extends BaseMapper<Project> {
     Project1 findIdConProc(String procInsId);
 
     Project findProjectList(Project project);
+
+    /**
+     * 通过项目需求名称修改土建流程状态
+     */
+    void updateAdvanceStart(@Param("reserveProjectName")String reserveProjectName, @Param("numerical")String numerical);
 }

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

@@ -171,6 +171,15 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="reserveProjectName!=null and reserveProjectName !=''">
+                and a.reserveProjectName = #{reserveProjectName}
+            </if>
+            <if test="projectId != null and projectId !=''">
+                and a.projectId = #{projectId}
+            </if>
+            <if test="projectName !=null and projectName !=''">
+                and a.projectName  = #{projectName}
+            </if>
             <if test="status!=null and status !=''">
                 and a.status = #{status}
             </if>
@@ -662,6 +671,7 @@
 
     <select id="findPlanByName" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
         select
+        a.status,
         <include refid="planColumns"/>,
         <include refid="assignmentColumns"/>
         from xm_material_project a
@@ -1154,6 +1164,16 @@
         set preConstruction = #{preConstruction}
         where id = #{id};
     </update>
+    <update id="updateAdvanceStart">
+        update xm_material_project
+        set advanceStatus = #{numerical}
+        where reserveProjectName = #{reserveProjectName};
+    </update>
+    <update id="updateAdvCon">
+        update xm_material_project
+        set advanceConstruction = #{status}
+        where reserveProjectName = #{reserveProjectName}
+    </update>
 
 
     <select id="findListById" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
@@ -1204,26 +1224,10 @@
     </select>
 
     <select id="findWZUser" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
-        select id
-             , 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
+        <include refid="assignmentColumns"/>
+        FROM xm_project_assignment c
+        WHERE reserveProjectName = (select reserveProjectName from md_acquisition_process where proc_ins_id = #{procInsId});
     </select>
 
     <select id="findJSUser" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
@@ -1364,13 +1368,29 @@
         a.projectId,
         a.projectName,
         a.acquisitionStatus,
+        a.advanceStatus,
+        <include refid="assignmentColumns"/>
+        from xm_material_project a
+        LEFT JOIN xm_construction_clarificaiton b
+        on a.reserveProjectName = b.reserveProjectName
+        left join xm_project_assignment c
+        on a.reserveProjectName = c.reserveProjectName
+        where b.proc_ins_id = #{procInsId};
+    </select>
+    <select id="findByName" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+        select a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        a.status,
+        a.acquisitionStatus,
+        a.advanceStatus,
         <include refid="assignmentColumns"/>
         from xm_material_project a
         LEFT JOIN xm_construction_clarificaiton b
         on a.reserveProjectName = b.reserveProjectName
         left join xm_project_assignment c
         on a.reserveProjectName = c.reserveProjectName
-        where b.proc_ins_id = #{procInsId}
+        where a.reserveProjectName = #{reserveProjectName};
     </select>
     <select id="findMaterialProject"
             resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">

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

@@ -256,6 +256,20 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		return projectMapper.findTJUser(procInsId);
 	}
 
+	/**
+	 * 通过流程定义id查询项目流转人员信息-物资流程
+	 * */
+	public Project findWZUser(String procInsId) {
+		return projectMapper.findWZUser(procInsId);
+	}
+
+	/**
+	 * 根据储备项目名称查询项目的
+	 */
+	@Transactional(readOnly = false)
+	public void updateAdvCon(String reserveProjectName, String status) {
+		projectMapper.updateAdvCon(reserveProjectName, status);
+	}
 /*	public Project get(String id) {
 		Project project1 = super.get(id);
 		return project1;
@@ -412,9 +426,25 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 	}
 
 	/**
+	 * 通过储备项目名称查询项目信息
+	 */
+	public Project findByName(String reserveProjectName) {
+		return projectMapper.findByName(reserveProjectName);
+	}
+
+
+	/**
 	 * 获取项目基础信息根据id
 	 */
 	public Project findMaterialProject(String id) {
 		return projectMapper.findMaterialProject(id);
 	}
+
+	/**
+	 * 通过项目需求名称修改土建状态
+	 */
+	@Transactional(readOnly = false)
+	public void updateAdvanceStart(String reserveProjectName, String numerical) {
+		projectMapper.updateAdvanceStart(reserveProjectName, numerical);
+	}
 }

+ 6 - 9
src/main/java/com/jeeplus/modules/sg/managementcenter/project/util/ProjectImportUtil.java

@@ -273,9 +273,9 @@ public class ProjectImportUtil {
         //得到比对后list,进行数据验证,成功存入list返回,失败,返回
         for (Project p : compareList) {
             str = "";
-            String disclosureType = project.getAssignment().getDisclosureType();
-            String assignedUnit = project.getAssignment().getAssignedUnit();
-            String constructionUnit = project.getAssignment().getConstructionUnit();
+            String disclosureType = p.getAssignment().getDisclosureType();
+            String assignedUnit = p.getAssignment().getAssignedUnit();
+            String constructionUnit = p.getAssignment().getConstructionUnit();
             flag = ProjectImportUtil.checkFlag(disclosureType, ProjectImportUtil.DIS_TYPE);
             if (flag) {
                 str += "交底类型填写有误\t";
@@ -392,20 +392,17 @@ public class ProjectImportUtil {
                     project.getDisclosurePlan().setDisclosurePlanDate((String) ei.getCellValue(row, 12));
                     Project proByName = projectMapper.findPlanByName(reserveProjectName);
                     if (proByName != null) {
-                        Boolean aBoolean = checkProcess(reserveProjectName);
-                        if (!aBoolean) {
-                            flagStr += reserveProjectName + "项目流程运行中,不能更改信息\n";
-                            continue;
-                        }
                         noCompareList.add(project);
+                        project.setStatus(proByName.getStatus());
                     } else {
+                        project.setStatus("0");
                         compareList.add(project);
                     }
                 }
             }
         }
         hashMap.put("errorMsg", flagStr);
-        hashMap.put("afterValidation", compareList);
+        hashMap.put("compareList", compareList);
         hashMap.put("noCompareList", noCompareList);
         return hashMap;
     }

+ 41 - 26
src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java

@@ -49,7 +49,6 @@ import com.jeeplus.common.utils.excel.ExportExcel;
 
 /**
  * 项目基础信息controller
- *
  */
 @Controller
 @RequestMapping(value = "${adminPath}/sg/managementcenter/project")
@@ -231,12 +230,12 @@ public class ProjectController extends BaseController {
 
     /**
      * 施工交底流程,项目选取框
-     * */
+     */
     @ResponseBody
     @RequiresPermissions("sg:managementcenter:project:list")
     @RequestMapping(value = "dataSys")
     public Map<String, Object> dataSys(Project project, HttpServletRequest request, HttpServletResponse response, Model model) {
-		project.setStatus("0");
+        project.setStatus("0");
         project.setWhetherCloseStatus("0");
         Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
         return getBootstrapData(page);
@@ -266,15 +265,25 @@ public class ProjectController extends BaseController {
 		project1.setPreConstruction(1);
 		//未进行施工流程
 		project1.setConstructionStatus("0");*/
-        project.setStatus("2");
-        project.setWhetherCloseStatus("0");
-        project.setAdvanceStatus("0");
         project.setAdvanceConstruction("1");
         Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
         return getBootstrapData(page);
     }
 
     /**
+     * 施工模块项目选择框
+     */
+    @ResponseBody
+    @RequestMapping(value = "materialSuperNon")
+    public Map<String, Object> materialSuperNon(Project project, HttpServletRequest request, HttpServletResponse response, Model model) {
+        project.setAdvanceStatus("0");
+        project.setAdvanceConstruction("0");
+        project.setWhetherCloseStatus("0");
+        Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
+        return getBootstrapData(page);
+    }
+
+    /**
      * 提前施工项目选择
      */
     @ResponseBody
@@ -675,6 +684,8 @@ public class ProjectController extends BaseController {
             }
             int i = afterValidation.size() + noCompareList.size();
             j.setMsg("已成功导入" + i + "条项目表单记录" + errorMsg);
+
+            //
         } catch (Exception e) {
             j.setSuccess(false);
             j.setMsg("导入需求基本信息表单失败!失败信息:" + e.getMessage());
@@ -731,32 +742,36 @@ public class ProjectController extends BaseController {
             //获取错误信息
             String errorMsg = (String) stringObjectMap.get("errorMsg");
             //获取需要导入的list
-            List<Project> afterValidation = (List<Project>) stringObjectMap.get("afterValidation");
+            List<Project> compareList = (List<Project>) stringObjectMap.get("compareList");
             List<Project> noCompareList = (List<Project>) stringObjectMap.get("noCompareList");
-            if (afterValidation.size() > 0) {
-                projectService.insertPlanList(afterValidation);
+            List<Project> processList = new ArrayList<>();
+            if (compareList.size() > 0) {
+                projectService.insertPlanList(compareList);
+                processList.addAll(compareList);
+
             }
-/*            if (noCompareList.size() > 0) {
+            if (noCompareList.size() > 0) {
                 projectService.updatePlanList(noCompareList);
-            }*/
-            int i = afterValidation.size() + noCompareList.size();
-            List<Project> processList = new ArrayList<>();
-            if (afterValidation.size() > 0) {
-                processList.addAll(afterValidation);
+                processList.addAll(noCompareList);
             }
+            int i = compareList.size() + noCompareList.size();
             String procDefId = projectService.findDefId("sgjd");
             for (Project project : processList) {
-                Construction construction = new Construction();
-                construction.setReserveProjectName(project.getReserveProjectName());
-                constructionService.newSave(construction);
-                constructionService.updateStatus(project.getReserveProjectName());
-                Map<String, Object> vars = Maps.newHashMap();
-                vars.put("design", UserUtils.getByUserName(project.getAssignment().getConstructionManage()).getLoginName());
-                //发送流程,更改项目状态
-                ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
-                String title = project.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
-                String planByName = projectService.findPlanIdByName(construction.getReserveProjectName());
-                actTaskService.startProcess(p.getKey(), "xm_construction_clarificaiton", planByName, title, vars);
+                if ("0".equals(project.getStatus())) {
+                    Construction construction = new Construction();
+                    construction.setReserveProjectName(project.getReserveProjectName());
+                    constructionService.newSave(construction);
+                    constructionService.updateStatus(project.getReserveProjectName());
+                    Map<String, Object> vars = Maps.newHashMap();
+                    vars.put("design", UserUtils.getByUserName(project.getAssignment().getConstructionManage()).getLoginName());
+                    //发送流程,更改项目状态
+                    ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                    String title = project.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                    String planByName = projectService.findPlanIdByName(construction.getReserveProjectName());
+                    actTaskService.startProcess(p.getKey(), "xm_construction_clarificaiton", planByName, title, vars);
+                } else {
+                    errorMsg += project.getReserveProjectName() + "不能重复发送流程\n";
+                }
             }
             //将不可修改的值重新获取
             j.setMsg("已成功导入" + i + "条记录\n" + errorMsg);

+ 10 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/NonPower.java

@@ -39,6 +39,8 @@ public class NonPower extends ActEntity<NonPower> {
     private String civilStartReport;
     //土建竣工工程量
     private String civilEndReport;
+    //是否包含土建
+    private String engineeringAcceptance;
 
 
 
@@ -169,4 +171,12 @@ public class NonPower extends ActEntity<NonPower> {
     public void setCivilEndReport(String civilEndReport) {
         this.civilEndReport = civilEndReport;
     }
+
+    public String getEngineeringAcceptance() {
+        return engineeringAcceptance;
+    }
+
+    public void setEngineeringAcceptance(String engineeringAcceptance) {
+        this.engineeringAcceptance = engineeringAcceptance;
+    }
 }

+ 6 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/NonPowerMapper.java

@@ -32,4 +32,10 @@ public interface NonPowerMapper extends BaseMapper<NonPower> {
      * */
     void updateEnd(NonPower nonPower);
 
+    /**
+     * 根据项目需求名称查询项目信息
+     */
+    NonPower findIsNonPower(String reserveProjectName);
+
+    NonPower getByProcInsId(String procInsId);
 }

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

@@ -57,7 +57,9 @@
         a.personInCharge,
         a.workPlace,
         a.civilStartReport,
-        a.civilEndReport
+        a.civilEndReport,
+	    xpq.engineeringAcceptance,
+	    a.create_date
 		from xm_nonpower_process a
 		LEFT JOIN xm_material_project p
 		on a.projectId = p.projectId
@@ -65,6 +67,8 @@
 		on p.reserveProjectName = b.reserveProjectName
 		left join xm_project_assignment xpa
         on a.reserveProjectName = xpa.reserveProjectName
+		left join xm_project_quantity xpq
+		on a.reserveProjectName = xpq.reserveProjectName
 		where a.id = #{id}
     </select>
 
@@ -132,7 +136,7 @@
 			proc_ins_id,
 			projectId,
             projectName,
-             reserveProjectName
+		 	reserveProjectName
 		)values
 			(
 			#{id},
@@ -148,4 +152,58 @@
 			#{reserveProjectName}
 			)
 	</insert>
+
+	<select id="findIsNonPower" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower">
+		select id,
+			   create_by,
+			   create_date,
+			   update_by,
+			   update_date,
+			   del_flag,
+			   remarks,
+			   proc_ins_id,
+			   projectId,
+			   plannedStart,
+			   plannedEnd,
+			   projectManager,
+			   personInCharge,
+			   workPlace,
+			   constructionCivilWorks,
+			   civilStartReport,
+			   civilEndReport,
+			   projectName,
+			   reserveProjectName
+		from xm_nonpower_process
+		where reserveProjectName = #{reserveProjectName};
+	</select>
+	<select id="getByProcInsId" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower">
+		select
+			a.id,
+			a.projectId,
+			a.projectName,
+			a.reserveProjectName,
+			b.municipalCompany as buildingUnit,
+			b.erpNo as projectNumber,
+			xpa.constructionUnit as constructionUnit,
+			a.plannedStart,
+			a.plannedEnd,
+			a.projectManager,
+			b.lineName,
+			a.personInCharge,
+			a.workPlace,
+			a.civilStartReport,
+			a.civilEndReport,
+			xpq.engineeringAcceptance,
+			a.create_date
+		from xm_nonpower_process a
+		 LEFT JOIN xm_material_project p
+				   on a.projectId = p.projectId
+		 LEFT JOIN xm_project_basicinformation b
+				   on p.reserveProjectName = b.reserveProjectName
+		 left join xm_project_assignment xpa
+				   on a.reserveProjectName = xpa.reserveProjectName
+		 left join xm_project_quantity xpq
+				   on a.reserveProjectName = xpq.reserveProjectName
+		where a.proc_ins_id = #{procInsId}
+	</select>
 </mapper>

+ 27 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/NonPowerService.java

@@ -34,6 +34,12 @@ public class NonPowerService extends CrudService<NonPowerMapper, NonPower> {
         return super.get(id);
     }
 
+    @Transactional(readOnly = false)
+    public void insert(NonPower nonPower) {
+        nonPower.preInsert();
+        nonPowerMapper.insert(nonPower);
+    }
+
     /**
      * 通过项目需求名称查询所有的施工交底土建信息
      * */
@@ -56,4 +62,25 @@ public class NonPowerService extends CrudService<NonPowerMapper, NonPower> {
     public void updateEnd(NonPower nonPower) {
         nonPowerMapper.updateEnd(nonPower);
     }
+
+    @Override
+    public NonPower get(NonPower entity) {
+        return super.get(entity);
+    }
+
+    /**
+     * 根据储备名称查询是否包含土建工程量
+     * */
+    public boolean findIsEngineering(String reserveProjectName){
+        boolean flag = true;
+        List<EngineeringAmount> civilWorks = nonPowerMapper.findCivilWorks(reserveProjectName);
+        if (null == civilWorks || civilWorks.size() <= 0) {
+            flag = false;
+        }
+        return flag;
+    }
+
+    public NonPower getByProcInsId(String procInsId) {
+        return nonPowerMapper.getByProcInsId(procInsId);
+    }
 }

+ 232 - 1
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/NonPowerController.java

@@ -7,9 +7,13 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.sg.audit.information.entity.Information;
+import com.jeeplus.modules.sg.audit.information.utils.FreemarkerUtil;
+import com.jeeplus.modules.sg.audit.information.utils.ResponseUtil;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
+import com.jeeplus.modules.sg.managementcenter.project.entity.BasicInformation;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
@@ -18,7 +22,10 @@ import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleServ
 import com.jeeplus.modules.sg.materialmodule.activiti.service.NonPowerService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
 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;
@@ -27,6 +34,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -69,6 +84,15 @@ public class NonPowerController extends BaseController {
     }
 
     /**
+     * 土建超权限流程发起页面
+     */
+    @RequestMapping(value = "superNonPower")
+    public String superNonPower(NonPower nonPower, Model model) {
+        model.addAttribute("nonPower", nonPower);
+        return "modules/sg/materialmodule/activiti/superNonPower";
+    }
+
+    /**
      * 土建开工流程
      */
     @RequestMapping(value = "nonPowerStart")
@@ -109,6 +133,15 @@ public class NonPowerController extends BaseController {
      */
     @RequestMapping(value = "acceptance")
     public String acceptance(NonPower nonPower, Model model) {
+        //通过项目需求名称查询所有的施工交底土建信息
+        List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(nonPower.getReserveProjectName());
+        if (civilWorks != null) {
+            String constructionCivilWorks = "";
+            for (EngineeringAmount e : civilWorks) {
+                constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
+            }
+            nonPower.setConstructionCivilWorks(constructionCivilWorks);
+        }
         model.addAttribute("nonPower", nonPower);
         return "modules/sg/materialmodule/activiti/acceptance";
     }
@@ -118,6 +151,15 @@ public class NonPowerController extends BaseController {
      */
     @RequestMapping(value = "nonRePowerEnd")
     public String nonRePowerEnd(NonPower nonPower, Model model) {
+        //通过项目需求名称查询所有的施工交底土建信息
+        List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(nonPower.getReserveProjectName());
+        if (civilWorks != null) {
+            String constructionCivilWorks = "";
+            for (EngineeringAmount e : civilWorks) {
+                constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
+            }
+            nonPower.setConstructionCivilWorks(constructionCivilWorks);
+        }
         model.addAttribute("nonPower", nonPower);
         return "modules/sg/materialmodule/activiti/nonRePowerEnd";
     }
@@ -155,10 +197,12 @@ public class NonPowerController extends BaseController {
             Map<String, Object> vars = Maps.newHashMap();
             //获取项目定义号
             vars.put("design", UserUtils.getByUserName(materialProject.getAssignment().getConstructionManage()).getLoginName());
-            //保存基础信息到流程表中
+            //保存基础信息到流程表中"
             nonPower.setProjectId(materialProject.getProjectId());
             nonPower.setProjectName(materialProject.getProjectName());
             nonPower.setReserveProjectName(materialProject.getReserveProjectName());
+            //更改项目超权限状态
+            projectService.updateAdvCon(nonPower.getReserveProjectName(),"2");
             nonPowerService.save(nonPower);
             //根据项目定义号修改项目的土建流程状态
             constructionService.updateAdvStatus(nonPower.getProjectId());
@@ -172,6 +216,193 @@ public class NonPowerController extends BaseController {
         }
         return j;
     }
+
+    /**
+     * 发起超权限土建流程
+     */
+    @ResponseBody
+    @RequestMapping(value = "superSave")
+    public AjaxJson superSave(NonPower nonPower, Model model) throws Exception {
+        AjaxJson j = new AjaxJson();
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(nonPower);
+        if (StringUtils.isNotBlank(errMsg)) {
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+        /**
+         * 流程审批
+         */
+        if (StringUtils.isBlank(nonPower.getId())) {
+            if ("".equals(nonPower.getProjectId())) {
+                j.setSuccess(false);
+                j.setMsg("请选择项目");
+                return j;
+            }
+            projectService.updateAdvCon(nonPower.getProjectName(), "1");
+            // 启动流程
+            //定义vars用于指派流程走向
+            Map<String, Object> vars = Maps.newHashMap();
+            ProcessDefinition p = actProcessService.getProcessDefinition(nonPower.getAct().getProcDefId());
+            String title = nonPower.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+            nonPower.setId("必要数值id");
+            actTaskService.startProcessNew(p.getKey(), "xm_nonpower_process", nonPower.getId(), title, vars);
+            //新增或编辑表单保存
+            j.setMsg("授权成功,可手动发起土建流程!");
+            j.getBody().put("targetUrl", "/act/task/process/");
+        }
+        return j;
+    }
+
+    /**
+     * 导出土建开工报告
+     * */
+    @ResponseBody
+    @RequestMapping(value = "civilStart")
+    public AjaxJson exportCivilStart(NonPower nonPower, HttpServletRequest request, HttpServletResponse response){
+        AjaxJson j = new AjaxJson();
+        StringBuilder stringBuilder = new StringBuilder();
+        Template template = null;
+        File path = new File(this.getClass().getResource("/").getPath() + "/freemarker");
+        Configuration cfg = new Configuration();
+        try {
+            cfg.setDefaultEncoding("UTF-8");
+            //配置cfg对象
+            cfg.setDirectoryForTemplateLoading(path);
+//            根据模板名称获取Template对象
+            template = cfg.getTemplate("civilStart.ftl");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        Map<String, Object> data = new HashMap<>();
+
+        NonPower nonPower1 = nonPowerService.getByProcInsId(nonPower.getProcInsId());
+        String projectId = nonPower1.getProjectId();
+        String projectName = nonPower1.getProjectName();
+        String reserveProjectName = nonPower1.getReserveProjectName();
+        String buildingUnit = nonPower1.getBuildingUnit();
+        String projectNumber = nonPower1.getProjectNumber();
+        String constructionUnit = nonPower1.getConstructionUnit();
+        String plannedStart = nonPower1.getPlannedStart();
+        String plannedEnd = nonPower1.getPlannedEnd();
+        String projectManager = nonPower1.getProjectManager();
+        String lineName = nonPower1.getLineName();
+        String personInCharge = nonPower1.getPersonInCharge();
+        String workPlace = nonPower1.getWorkPlace();
+
+        String civilStartReport = nonPower1.getCivilStartReport();
+        Date createDate = nonPower1.getCreateDate();
+        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
+        String dateYear = df.format(createDate);
+        String constructionCivilWorks = "";
+
+        if (reserveProjectName != null && !"".equals(reserveProjectName)) {
+            //获取项目的施工技术交底中土建工程量
+            List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(reserveProjectName);
+            if (civilWorks != null) {
+                for (EngineeringAmount e : civilWorks) {
+                    constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
+                }
+            }
+        }
+
+        data.put("projectName", projectName);
+        data.put("projectNumber",projectNumber );
+        data.put("buildingUnit", buildingUnit);
+        data.put("constructionUnit", constructionUnit);
+        data.put("plannedStart",plannedStart );
+        data.put("projectManager", projectManager);
+        data.put("personInCharge", personInCharge);
+        data.put("plannedEnd", plannedEnd);
+        data.put("lineName",lineName );
+        data.put("workPlace", workPlace);
+        data.put("constructionCivilWorks", constructionCivilWorks);
+        data.put("civilStartReport",civilStartReport );
+        data.put("dateYear", dateYear);
+
+        File docFile = new File(path + "\\土建开工报告.xls");
+        FreemarkerUtil.generateFile(data, template, docFile);
+        ResponseUtil.docResponse("土建开工报告.xls", docFile, response);
+
+        return j;
+    }
+
+    /**
+     * 导出土建竣工报告
+     * */
+    @ResponseBody
+    @RequestMapping(value = "civilEnd")
+    public AjaxJson exportCivilEnd(NonPower nonPower, HttpServletRequest request, HttpServletResponse response){
+        AjaxJson j = new AjaxJson();
+        StringBuilder stringBuilder = new StringBuilder();
+        Template template = null;
+        File path = new File(this.getClass().getResource("/").getPath() + "/freemarker");
+        Configuration cfg = new Configuration();
+        try {
+            cfg.setDefaultEncoding("UTF-8");
+            //配置cfg对象
+            cfg.setDirectoryForTemplateLoading(path);
+//            根据模板名称获取Template对象
+            template = cfg.getTemplate("civilStart.ftl");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        Map<String, Object> data = new HashMap<>();
+        NonPower nonPower1 = nonPowerService.getByProcInsId(nonPower.getProcInsId());
+        String projectId = nonPower1.getProjectId();
+        String projectName = nonPower1.getProjectName();
+        String reserveProjectName = nonPower1.getReserveProjectName();
+        BasicInformation basicInformation = nonPower1.getBasicInformation();
+        String buildingUnit = nonPower1.getBuildingUnit();
+        String projectNumber = nonPower1.getProjectNumber();
+        String constructionUnit = nonPower1.getConstructionUnit();
+        String plannedStart = nonPower1.getPlannedStart();
+        String plannedEnd = nonPower1.getPlannedEnd();
+        String projectManager = nonPower1.getProjectManager();
+        String lineName = nonPower1.getLineName();
+        String personInCharge = nonPower1.getPersonInCharge();
+        String workPlace = nonPower1.getWorkPlace();
+        String civilStartReport = nonPower1.getCivilStartReport();
+        String civilEndReport = nonPower1.getCivilEndReport();
+        Date createDate = nonPower1.getCreateDate();
+        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
+        String dateYear = df.format(createDate);
+
+        String constructionCivilWorks = "";
+        if (reserveProjectName != null && !"".equals(reserveProjectName)) {
+            //获取项目的施工技术交底中土建工程量
+            List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(reserveProjectName);
+            if (civilWorks != null) {
+                for (EngineeringAmount e : civilWorks) {
+                    constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
+                }
+            }
+        }
+
+        data.put("projectName", projectName);
+        data.put("projectNumber",projectNumber );
+        data.put("buildingUnit", buildingUnit);
+        data.put("constructionUnit", constructionUnit);
+        data.put("plannedStart",plannedStart );
+        data.put("projectManager", projectManager);
+        data.put("personInCharge", personInCharge);
+        data.put("plannedEnd", plannedEnd);
+        data.put("lineName",lineName );
+        data.put("workPlace", workPlace);
+        data.put("constructionCivilWorks", constructionCivilWorks);
+        data.put("civilStartReport",civilStartReport);
+        data.put("civilEndReport",civilEndReport);
+        data.put("dateYear", dateYear);
+
+        File docFile = new File(path + "\\土建竣工报告.xls");
+        FreemarkerUtil.generateFile(data, template, docFile);
+        ResponseUtil.docResponse("土建竣工报告.xls", docFile, response);
+
+        return j;
+    }
     /***************************************土建流程*************************************************/
 }
 

+ 6 - 6
src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/ProjectNumber.java

@@ -1,17 +1,17 @@
 package com.jeeplus.modules.sg.picking.activiti.entity;
 
 public class ProjectNumber {
-    //项目需求名称
-    private String requireName;
+    //项目名称
+    private String projectName;
     //选择版本号
     private String theNumber;
 
-    public String getRequireName() {
-        return requireName;
+    public String getProjectName() {
+        return projectName;
     }
 
-    public void setRequireName(String requireName) {
-        this.requireName = requireName;
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
     }
 
     public String getTheNumber() {

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

@@ -50,6 +50,8 @@ public class ShowList extends ActEntity<ShowList> implements Comparable<ShowList
     private String projectName;
     //选择的项目定义号
     private String projectId;
+    //储备项目名称
+    private String reserveProjectName;
     //选择的项目及数量
     private String selectNumber;
     //可用库存数量
@@ -197,6 +199,14 @@ public class ShowList extends ActEntity<ShowList> implements Comparable<ShowList
         this.projectId = projectId;
     }
 
+    public String getReserveProjectName() {
+        return reserveProjectName;
+    }
+
+    public void setReserveProjectName(String reserveProjectName) {
+        this.reserveProjectName = reserveProjectName;
+    }
+
     public String getTheNumber() {
         return theNumber;
     }

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

@@ -108,11 +108,13 @@
 	</select>
 
 	<select id="selectVersion" resultType="string">
-		select version from md_acquisition_process where proc_ins_id = #{pprocInsId};
+		select version from md_acquisition_process where proc_ins_id = #{procInsId};
 	</select>
 
 	<select id="projectNumber" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ProjectNumber">
-		select require_name,the_number from md_acquisition_process as a,xm_project_details as b where a.project_id=b.id and proc_ins_id=#{procInsId}
+		select project_Name, the_number
+		from md_acquisition_process
+		where proc_ins_id = #{procInsId};
 	</select>
 
 	<update id="updateSelectVersion">

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

@@ -73,6 +73,8 @@
 			id,
 			proc_ins_id,
 			project_id,
+		    project_Name,
+		    reserveProjectName,
 			the_number,
 			version,
 			select_number,
@@ -87,6 +89,8 @@
 			#{id},
 			#{procInsId},
 			#{projectId},
+			#{projectName},
+			#{reserveProjectName},
 			#{theNumber},
 			#{sVersion},
 			#{selectNumber},
@@ -364,7 +368,7 @@
 	</select>
 
     <update id="updateAcqStatus">
-		update xm_material_project set acquisitionStatus = '1',status = '2' where reserveProjectName = #{reserveProjectName};
+		update xm_material_project set acquisitionStatus = '1' where reserveProjectName = #{reserveProjectName};
 	</update>
 
     <select id="findAcqStatus" resultType="java.lang.String">

+ 304 - 0
src/main/resources/freemarker/civilEnd.ftl

@@ -0,0 +1,304 @@
+<?xml version="1.0"?>
+<?mso-application progid="Excel.Sheet"?>
+<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:o="urn:schemas-microsoft-com:office:office"
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
+ xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:html="http://www.w3.org/TR/REC-html40">
+ <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
+  <Author>tree lem</Author>
+  <LastAuthor>tree lem</LastAuthor>
+  <Created>2020-06-22T01:15:42Z</Created>
+  <LastSaved>2020-06-22T02:23:11Z</LastSaved>
+  <Version>16.00</Version>
+ </DocumentProperties>
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+  <AllowPNG/>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+  <WindowHeight>15840</WindowHeight>
+  <WindowWidth>29040</WindowWidth>
+  <WindowTopX>32767</WindowTopX>
+  <WindowTopY>32767</WindowTopY>
+  <ProtectStructure>False</ProtectStructure>
+  <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <Styles>
+  <Style ss:ID="Default" ss:Name="Normal">
+   <Alignment ss:Vertical="Bottom"/>
+   <Borders/>
+   <Font ss:FontName="等线" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
+   <Interior/>
+   <NumberFormat/>
+   <Protection/>
+  </Style>
+  <Style ss:ID="m3071678473432">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678473452">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678473472">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475072">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475092">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475112">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Top"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475132">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
+   <Borders>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475152">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475172">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475192">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="m3071678475212">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="s17">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="s34">
+   <Alignment ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="s57">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="黑体" x:CharSet="134" x:Family="Modern" ss:Size="20"
+    ss:Color="#000000"/>
+   <Interior/>
+  </Style>
+  <Style ss:ID="s58">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior/>
+  </Style>
+ </Styles>
+ <Worksheet ss:Name="竣工报告-土建">
+  <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="13" x:FullColumns="1"
+   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
+   <Column ss:Width="90"/>
+   <Column ss:Width="146.25"/>
+   <Column ss:Width="75.75"/>
+   <Column ss:Width="146.25"/>
+   <Column ss:Width="75.75"/>
+   <Column ss:Width="104.25"/>
+   <Row ss:Height="25.5">
+    <Cell ss:MergeAcross="5" ss:StyleID="s57"><Data ss:Type="String">配电网工程竣工报告</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">项目名称</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${projectName!""}</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">工程编号</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="s58"><Data ss:Type="String">${projectNumber!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">建设单位</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${buildingUnit!""}</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">施工单位</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m3071678473432"><Data ss:Type="String">${constructionUnit!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">实际开工时间</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${plannedStart!""}</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">项目负责人</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${projectManager!""}</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">施工负责人</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${personInCharge!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">实际竣工时间</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${plannedEnd!""}</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">线路名称</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${lineName!""}</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">工作地点</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${workPlace!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678473452"><Data ss:Type="String">计划工作量:</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678473472"><Data ss:Type="String">1.实际工程量</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="47.25">
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678475132"><Data ss:Type="String">施工技术交底中土建工程量:${constructionCivilWorks!""} &#10;开工报告中土建工程量:${civilStartReport!""} &#10;土建竣工工程量:${civilEndReport!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678475152"><Data ss:Type="String">验收意见</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678475172"><Data ss:Type="String">填列人:${projectManager!""}     日期:${dateYear!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="2" ss:StyleID="m3071678475192"><Data ss:Type="String">申请单位意见</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m3071678475212"><Data ss:Type="String">建设或建立单位意见:</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s34"><Data ss:Type="String">负责人:</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m3071678475072"><Data ss:Type="String">xx年xx月xx日</Data></Cell>
+    <Cell ss:StyleID="s34"><Data ss:Type="String">批准人:(无需填写)</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m3071678475092"><Data ss:Type="String">xx年xx月xx日</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678475112"><Data ss:Type="String">备注:</Data></Cell>
+   </Row>
+  </Table>
+  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
+   <PageSetup>
+    <Header x:Margin="0.3"/>
+    <Footer x:Margin="0.3"/>
+    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
+   </PageSetup>
+   <Print>
+    <ValidPrinterInfo/>
+    <PaperSizeIndex>9</PaperSizeIndex>
+    <HorizontalResolution>600</HorizontalResolution>
+    <VerticalResolution>600</VerticalResolution>
+   </Print>
+   <Selected/>
+   <Panes>
+    <Pane>
+     <Number>3</Number>
+     <ActiveRow>19</ActiveRow>
+     <ActiveCol>4</ActiveCol>
+    </Pane>
+   </Panes>
+   <ProtectObjects>False</ProtectObjects>
+   <ProtectScenarios>False</ProtectScenarios>
+  </WorksheetOptions>
+ </Worksheet>
+</Workbook>

+ 306 - 0
src/main/resources/freemarker/civilStart.ftl

@@ -0,0 +1,306 @@
+<?xml version="1.0"?>
+<?mso-application progid="Excel.Sheet"?>
+<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
+          xmlns:o="urn:schemas-microsoft-com:office:office"
+          xmlns:x="urn:schemas-microsoft-com:office:excel"
+          xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
+          xmlns:html="http://www.w3.org/TR/REC-html40">
+ <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
+  <Author>tree lem</Author>
+  <LastAuthor>tree lem</LastAuthor>
+  <LastPrinted>2020-06-22T01:25:35Z</LastPrinted>
+  <Created>2020-06-22T01:14:30Z</Created>
+  <LastSaved>2020-06-22T01:37:21Z</LastSaved>
+  <Version>16.00</Version>
+ </DocumentProperties>
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+  <AllowPNG/>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+  <WindowHeight>12165</WindowHeight>
+  <WindowWidth>28800</WindowWidth>
+  <WindowTopX>32767</WindowTopX>
+  <WindowTopY>32767</WindowTopY>
+  <ProtectStructure>False</ProtectStructure>
+  <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <Styles>
+  <Style ss:ID="Default" ss:Name="Normal">
+   <Alignment ss:Vertical="Bottom"/>
+                                   <Borders/>
+                                            <Font ss:FontName="等线" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
+                                                                                                                   <Interior/>
+                                                                                                                             <NumberFormat/>
+                                                                                                                                           <Protection/>
+  </Style>
+  <Style ss:ID="m3071813701696">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Top"/>
+                                                     <Borders>
+                                                     <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                          <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                             <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                 <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                   </Borders>
+                                                                                                                                                                                                                                                                                                                                     <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813701716">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1"/>
+                                                                          <Borders>
+                                                                          <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                             <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                 <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                   </Borders>
+                                                                                                                                                                                                                                                                                     <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813708788">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+                                                        <Borders>
+                                                        <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                             <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                      </Borders>
+                                                                                                                                                                                                                                                                                                                                        <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813708808">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Bottom"/>
+                                                         <Borders>
+                                                         <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                              <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                 <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                     <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                       </Borders>
+                                                                                                                                                                                                                                                                                                                                         <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813708828">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+                                                        <Borders>
+                                                        <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                             <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                      </Borders>
+                                                                                                                                                                                                                                                                                                                                        <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813708848">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+                                                        <Borders>
+                                                        <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                             <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                      </Borders>
+                                                                                                                                                                                                                                                                                                                                        <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813708868">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+                                                         <Borders>
+                                                         <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                              <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                 <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                     <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                       </Borders>
+                                                                                                                                                                                                                                                                                                                                         <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813708888">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+                                                         <Borders>
+                                                         <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                              <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                 <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                     <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                       </Borders>
+                                                                                                                                                                                                                                                                                                                                         <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813705688">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+                                                          <Borders>
+                                                          <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                               <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                  <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                      <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                        </Borders>
+                                                                                                                                                                                                                                                                                                                                          <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813705708">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+                                                        <Borders>
+                                                        <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                             <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                      </Borders>
+                                                                                                                                                                                                                                                                                                                                        <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="m3071813705728">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+                                                        <Borders>
+                                                        <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                             <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                      </Borders>
+                                                                                                                                                                                                                                                                                                                                        <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="s134">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
+                                                                          <Borders>
+                                                                          <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                               </Borders>
+                                                                                                                                                 <Font ss:FontName="黑体" x:CharSet="134" x:Family="Modern" ss:Size="20"
+   ss:Color="#000000"/>
+                      <Interior/>
+  </Style>
+  <Style ss:ID="s135">
+   <Borders>
+   <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                        <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                           <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                               <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                 </Borders>
+                                                                                                                                                                                                                                                                                   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="s136">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+                                                          <Borders>
+                                                          <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                               <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                  <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                      <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                                        </Borders>
+                                                                                                                                                                                                                                                                                                                                          <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+  <Style ss:ID="s155">
+   <Alignment ss:Vertical="Center"/>
+                                   <Borders>
+                                   <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                        <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                           <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                               <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+                                                                                                                                                                                                                                                                                                                 </Borders>
+                                                                                                                                                                                                                                                                                                                   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+   ss:Color="#000000" ss:Bold="1"/>
+                                  <Interior/>
+  </Style>
+ </Styles>
+ <Worksheet ss:Name="开工报告-土建">
+  <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="13" x:FullColumns="1"
+         x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
+   <Column ss:Width="90"/>
+   <Column ss:Width="61.5"/>
+   <Column ss:Width="75.75"/>
+   <Column ss:Width="146.25"/>
+   <Column ss:Width="75.75"/>
+   <Column ss:Width="61.5"/>
+   <Row ss:AutoFitHeight="0" ss:Height="25.125">
+    <Cell ss:MergeAcross="5" ss:StyleID="s134"><Data ss:Type="String">配电网工程开工报告</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">项目名称</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${projectName!""}</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">工程编号</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="s136"><Data ss:Type="String">${projectNumber!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">建设单位</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${buildingUnit!""}</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">施工单位</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m3071813705688"><Data ss:Type="String">${constructionUnit!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">计划开工时间</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${plannedStart!""}</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">项目负责人</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${projectManager!""}</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">施工负责人</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${personInCharge!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">计划竣工时间</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${plannedEnd!""}</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">线路名称</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${lineName!""}</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">工作地点</Data></Cell>
+    <Cell ss:StyleID="s135"><Data ss:Type="String">${workPlace!""}</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="18.75">
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813705708"><Data ss:Type="String">计划工作量:</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="18.75">
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813705728"><Data ss:Type="String">1.土建工程量</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="40.5">
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813701716"><Data ss:Type="String">施工技术交底中土建工程量:${constructionCivilWorks!""}&#10;开工报告中土建工程量:${civilStartReport!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813708788"><Data ss:Type="String">验收意见</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813708808"><Data ss:Type="String">填列人:${projectManager!""}     日期:${dateYear!""}</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="33.375">
+    <Cell ss:MergeAcross="2" ss:StyleID="m3071813708828"><Data ss:Type="String">申请单位意见</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m3071813708848"><Data ss:Type="String">建设或建立单位意见:</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="39">
+    <Cell ss:StyleID="s155"><Data ss:Type="String">负责人:</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m3071813708868"><Data ss:Type="String">  年  月  日</Data></Cell>
+    <Cell ss:StyleID="s155"><Data ss:Type="String">批准人:(无需填写)</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m3071813708888"><Data ss:Type="String">  年  月  日</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="45.375">
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813701696"><Data ss:Type="String">备注:</Data></Cell>
+   </Row>
+  </Table>
+  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
+   <PageSetup>
+    <Layout x:Orientation="Landscape"/>
+    <Header x:Margin="0.3"/>
+    <Footer x:Margin="0.3"/>
+    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
+   </PageSetup>
+   <Print>
+    <ValidPrinterInfo/>
+    <PaperSizeIndex>9</PaperSizeIndex>
+    <HorizontalResolution>600</HorizontalResolution>
+    <VerticalResolution>600</VerticalResolution>
+   </Print>
+   <Selected/>
+   <Panes>
+    <Pane>
+     <Number>3</Number>
+     <ActiveRow>11</ActiveRow>
+     <ActiveCol>8</ActiveCol>
+    </Pane>
+   </Panes>
+   <ProtectObjects>False</ProtectObjects>
+   <ProtectScenarios>False</ProtectScenarios>
+  </WorksheetOptions>
+ </Worksheet>
+</Workbook>

+ 11 - 4
src/main/webapp/webpage/modules/sg/managementcenter/privilege/privilegeProcdef.js

@@ -29,15 +29,15 @@
             //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
             cache: false,
             //显示检索按钮
-            showSearch: true,
+            showSearch: false,
             //显示刷新按钮
             showRefresh: true,
             //显示切换手机试图按钮
-            showToggle: true,
+            showToggle: false,
             //显示 内容列下拉框
-            showColumns: true,
+            showColumns: false,
             //显示切换分页按钮
-            showPaginationSwitch: true,
+            showPaginationSwitch: false,
             //是否显示分页(*)
             pagination: true,
             //排序方式
@@ -120,6 +120,8 @@
             format: "YYYY-MM-DD HH:mm:ss"
         });
 
+
+
     });
 
 function getIdSelections() {
@@ -128,6 +130,11 @@ function getIdSelections() {
     });
 }
 
+function save() {
+    var dialogIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
+    parent.layer.close(dialogIndex);
+}
+
 
 function edit(id) {
     if (!id) {

+ 1 - 7
src/main/webapp/webpage/modules/sg/managementcenter/privilege/privilegeProcdef.jsp

@@ -54,13 +54,7 @@
 	    <!-- 表格 -->
 	    <table id="table" data-toolbar="#toolbar">
 	    </table>
-	
-	    <!-- context menu -->
-	    <ul id="context-menu" class="dropdown-menu">
-	        <li data-item="edit"><a>编辑</a></li>
-	        <li data-item="delete"><a>删除</a></li>
-	        <li data-item="cancel"><a>取消</a></li>
-	    </ul>
+
 	</div>
 	</div>
 	</div>

+ 2 - 2
src/main/webapp/webpage/modules/sg/managementcenter/project/projectDisclosurePlan.js

@@ -197,7 +197,7 @@ $(document).ready(function () {
             }
         });
     });
-    $("#btnImportPicking").click(function () {
+    /*$("#btnImportPicking").click(function () {
         jp.open({
             type: 2,
             area: [500, 200],
@@ -222,7 +222,7 @@ $(document).ready(function () {
                 //  jp.close(index);
             }
         });
-    });
+    });*/
 
     $("#export").click(function () {//导出Excel文件
         jp.downloadFile('${ctx}/sg/managementcenter/project/export');

+ 1 - 1
src/main/webapp/webpage/modules/sg/managementcenter/project/projectDisclosurePlan.jsp

@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">项目前期基本信息</h3>
+		<h3 class="panel-title">交底计划安排信息</h3>
 	</div>
 	<div class="panel-body">
 		<!-- 搜索 -->

+ 52 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/acceptance.js

@@ -0,0 +1,52 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$("#agree").click(function () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/acceptanceTask",
+		{
+				"id":"${nonPower.id}",
+				"taskId":"${nonPower.act.taskId}",
+				"taskName":"${nonPower.act.taskName}",
+				"taskDefKey":"${nonPower.act.taskDefKey}",
+				"procInsId":"${nonPower.act.procInsId}",
+				"procDefId":"${nonPower.act.procDefId}",
+				"flag":"no",
+				"comment":window.encodeURI(message)
+			},
+			function (data) {
+				if (data.success) {
+					jp.success(data.msg);
+					jp.go("${ctx}/act/task/todo");
+				} else {
+					jp.error(data.msg());
+				}
+			})
+		});
+	});
+
+	$("#no").click(function () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/acceptanceTask",
+				{
+					"id":"${nonPower.id}",
+					"taskId":"${nonPower.act.taskId}",
+					"taskName":"${nonPower.act.taskName}",
+					"taskDefKey":"${nonPower.act.taskDefKey}",
+					"procInsId":"${nonPower.act.procInsId}",
+					"procDefId":"${nonPower.act.procDefId}",
+					"flag":"yes",
+					"comment":window.encodeURI(message)
+				},
+				function (data) {
+					if(data.success){
+						jp.success(data.msg);
+						jp.go("${ctx}/act/task/todo")
+					} else {
+						jp.error(data.msg());
+					}
+				})
+		});
+	});
+})
+</script>

+ 131 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/acceptance.jsp

@@ -0,0 +1,131 @@
+<%@ 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="acceptance.js" %>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+    <div class="panel panel-primary">
+        <div class="panel-heading">
+            <h3 class="panel-title">在线审核流程</h3>
+        </div>
+        <div class="panel-body">
+            <!-- 表格 -->
+            <div class="panel-body">
+                <form:form id="inputForm" modelAttribute="nonPower" 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"/>
+                    <table class="table table-bordered">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">项目名称:</label></td>
+                            <td class="width-35">
+                                <form:input id="projectName" path="projectName" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">工程编号:</label></td>
+                            <td class="width-35">
+                                <form:input id="projectNumber" path="projectNumber" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">建设单位:</label></td>
+                            <td class="width-35">
+                                <form:input id="buildingUnit" path="buildingUnit" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">施工单位:</label></td>
+                            <td class="width-35">
+                                <form:input id="constructionUnit" path="constructionUnit" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">计划开工时间:</label></td>
+                            <td class="width-35">
+                                <form:input id="plannedStart" path="plannedStart" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">项目负责人:</label></td>
+                            <td class="width-35">
+                                <form:input id="projectManager" path="projectManager" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">施工负责人:</label></td>
+                            <td class="width-35">
+                                <form:input id="personInCharge" path="personInCharge" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">计划竣工时间:</label></td>
+                            <td class="width-35">
+                                <form:input id="plannedEnd" path="plannedEnd" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">线路名称:</label></td>
+                            <td class="width-35">
+                                <form:input id="lineName" path="lineName"
+                                            cssClass="form-control" readonly="true"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">工作地点:</label></td>
+                            <td class="width-35">
+                                <form:input id="workPlace" path="workPlace" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">施工土建工程量:</label></td>
+                            <td class="width-35">
+                                <form:textarea id="constructionCivilWorks" path="constructionCivilWorks"
+                                               cssClass="form-control" readonly="true"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">土建开工工程量:</label></td>
+                            <td class="width-35">
+                                <form:textarea id="civilStartReport" path="civilStartReport" readonly="true"
+                                               cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">土建竣工工程量:</label></td>
+                            <td class="width-35">
+                                <form:textarea id="civilEndReport" path="civilEndReport" readonly="true"
+                                               cssClass="form-control" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </form:form>
+                <div class="row">
+                    <div class="col-sm-3"></div>
+                    <div class="col-sm-6">
+                        <div class="form-group text-center">
+                            <input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="审核通过"/>&nbsp;
+                            <input id="no" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="驳回审核"/>&nbsp;
+                        </div>
+                    </div>
+                </div>
+                <c:if test="${not empty nonPower.id}">
+                    <act:flowChart procInsId="${nonPower.act.procInsId}"/>
+                    <act:histoicFlow procInsId="${nonPower.act.procInsId}"/>
+                </c:if>
+            </div>
+            <!-- context menu -->
+            <ul id="context-menu" class="dropdown-menu">
+            </ul>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 38 - 1
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.js

@@ -2,26 +2,63 @@
 <script>
 $(document).ready(function() {
 	$("#agree").click(function () {
+		var civilEndReport = $("#civilEndReport").val();
+		if (civilEndReport == "") {
+			jp.error("请正确填写内容");
+			return false;
+		}
 		jp.prompt("审核意见", function (message) {
 			jp.post("${ctx}/act/task/nonPowerEndTask",
 		{
+				"id":"${nonPower.id}",
 				"taskId":"${nonPower.act.taskId}",
 				"taskName":"${nonPower.act.taskName}",
 				"taskDefKey":"${nonPower.act.taskDefKey}",
 				"procInsId":"${nonPower.act.procInsId}",
 				"procDefId":"${nonPower.act.procDefId}",
 				"flag":"yes",
-				"pic":currentFileValues,
+				"civilEndReport":civilEndReport,
 				"comment":window.encodeURI(message)
 			},
 			function (data) {
 				if(data.success){
 					jp.success(data.msg);
 					jp.go("${ctx}/act/task/todo")
+				} else {
+					jp.error(data.msg());
 				}
 			})
 		});
 	});
+
+	$("#no").click(function () {
+		jp.prompt("审核意见", function (message) {
+			jp.post("${ctx}/act/task/nonPowerEndTask",
+				{
+					"id":"${nonPower.id}",
+					"taskId":"${nonPower.act.taskId}",
+					"taskName":"${nonPower.act.taskName}",
+					"taskDefKey":"${nonPower.act.taskDefKey}",
+					"procInsId":"${nonPower.act.procInsId}",
+					"procDefId":"${nonPower.act.procDefId}",
+					"flag":"no",
+					"comment":window.encodeURI(message)
+				},
+				function (data) {
+					if(data.success){
+						jp.success(data.msg);
+						jp.go("${ctx}/act/task/todo")
+					} else {
+						jp.error(data.msg());
+					}
+				})
+		});
+	});
+
+	$("#export").click(function(){
+		var procId = "${nonPower.act.procInsId}";
+		jp.downloadFile('${ctx}/nonPower/civilStart?procInsId='+ procId);
+	});
 })
 		
   function getIdSelections() {

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

@@ -16,6 +16,9 @@
 	<div class="panel-body">
 	<!-- 表格 -->
 		<div class="panel-body">
+			<button id="export" class="btn btn-warning">
+				<i class="fa fa-file-excel-o"></i> 导出土建开工报告
+			</button>
 			<form:form id="inputForm" modelAttribute="nonPower" class="form-horizontal">
 				<form:hidden path="id"/>
 				<form:hidden path="act.taskId"/>
@@ -115,6 +118,7 @@
 				<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-parsley" type="submit" value="驳回" />&nbsp;
 					</div>
 				</div>
 			</div>

+ 20 - 161
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js

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

+ 129 - 45
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp

@@ -1,53 +1,137 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ include file="/webpage/include/taglib.jsp" %>
 <html>
 <head>
-	<title>审核土建竣工</title>
-	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
-	<meta name="decorator" content="ani"/>
-	<%@ include file="/webpage/include/bootstraptable.jsp"%>
-	<%@include file="/webpage/include/treeview.jsp" %>
-	<%@include file="nonRePowerEnd.js"%>
+    <title>审核土建竣工</title>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+    <meta name="decorator" content="ani"/>
+    <%@ include file="/webpage/include/bootstraptable.jsp" %>
+    <%@include file="/webpage/include/treeview.jsp" %>
+    <%@include file="nonRePowerEnd.js" %>
 
 </head>
 <body>
-	<div class="wrapper wrapper-content">
-	<div class="panel panel-primary">
-	<div class="panel-heading">
-		<h3 class="panel-title">审核土建竣工</h3>
-	</div>
-	<div class="panel-body">
-	<!-- 表格 -->
-	<table id="testPicTable"   data-toolbar="#toolbar"></table>
-		<div class="panel-body">
-			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
-				<form:hidden path="id"/>
-				<form:hidden path="act.taskId"/>
-				<form:hidden path="act.taskName"/>
-				<form:hidden path="act.taskDefKey"/>
-				<form:hidden path="act.procInsId"/>
-				<form:hidden path="act.procDefId"/>
-				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
-			</form:form>
-			<div class="row">
-				<div class="col-sm-3"></div>
-				<div class="col-sm-6">
-					<div class="form-group text-center">
-						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题" />&nbsp;
-						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="纯在问题" />&nbsp;
-					</div>
-				</div>
-			</div>
-			<c:if test="${not empty materialModule.id}">
-				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
-				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
-			</c:if>
-		</div>
-    <!-- context menu -->
-    <ul id="context-menu" class="dropdown-menu">
-    </ul>  
-	</div>
-	</div>
-	</div>
+<div class="wrapper wrapper-content">
+    <div class="panel panel-primary">
+        <div class="panel-heading">
+            <h3 class="panel-title">审核土建竣工</h3>
+        </div>
+        <div class="panel-body">
+            <button id="export" class="btn btn-warning">
+                <i class="fa fa-file-excel-o"></i> 导出土建竣工报告
+            </button>
+            <!-- 表格 -->
+            <div class="panel-body">
+                <form:form id="inputForm" modelAttribute="nonPower" 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"/>
+                    <table class="table table-bordered">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">项目名称:</label></td>
+                            <td class="width-35">
+                                <form:input id="projectName" path="projectName" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">工程编号:</label></td>
+                            <td class="width-35">
+                                <form:input id="projectNumber" path="projectNumber" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">建设单位:</label></td>
+                            <td class="width-35">
+                                <form:input id="buildingUnit" path="buildingUnit" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">施工单位:</label></td>
+                            <td class="width-35">
+                                <form:input id="constructionUnit" path="constructionUnit" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">计划开工时间:</label></td>
+                            <td class="width-35">
+                                <form:input id="plannedStart" path="plannedStart" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">项目负责人:</label></td>
+                            <td class="width-35">
+                                <form:input id="projectManager" path="projectManager" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">施工负责人:</label></td>
+                            <td class="width-35">
+                                <form:input id="personInCharge" path="personInCharge" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">计划竣工时间:</label></td>
+                            <td class="width-35">
+                                <form:input id="plannedEnd" path="plannedEnd" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">线路名称:</label></td>
+                            <td class="width-35">
+                                <form:input id="lineName" path="lineName"
+                                            cssClass="form-control" readonly="true"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">工作地点:</label></td>
+                            <td class="width-35">
+                                <form:input id="workPlace" path="workPlace" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">施工土建工程量:</label></td>
+                            <td class="width-35">
+                                <form:textarea id="constructionCivilWorks" path="constructionCivilWorks"
+                                               cssClass="form-control" readonly="true"/>
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">土建开工工程量:</label></td>
+                            <td class="width-35">
+                                <form:textarea id="civilStartReport" path="civilStartReport" readonly="true"
+                                               cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">土建竣工工程量:</label></td>
+                            <td class="width-35">
+                                <form:textarea id="civilEndReport" path="civilEndReport" readonly="true"
+                                               cssClass="form-control" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </form:form>
+                <div class="row">
+                    <div class="col-sm-3"></div>
+                    <div class="col-sm-6">
+                        <div class="form-group text-center">
+                            <input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="完成土建"/>&nbsp;
+                            <input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="驳回"/>&nbsp;
+                        </div>
+                    </div>
+                </div>
+                <c:if test="${not empty nonPower.id}">
+                    <act:flowChart procInsId="${nonPower.act.procInsId}"/>
+                    <act:histoicFlow procInsId="${nonPower.act.procInsId}"/>
+                </c:if>
+            </div>
+            <!-- context menu -->
+            <ul id="context-menu" class="dropdown-menu">
+            </ul>
+        </div>
+    </div>
+</div>
 </body>
 </html>

+ 34 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/superNonPower.js

@@ -0,0 +1,34 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+	$(document).ready(function() {
+		jp.ajaxForm("#inputForm",function(data){
+			if(data.success){
+				jp.alert(data.msg);
+				jp.go("${ctx}"+ data.body.targetUrl);
+			}else{
+				jp.alert(data.msg);
+				$("#inputForm").find("button:submit").button("reset");
+			}
+		});
+
+
+		$('#acceptDate').datetimepicker({
+			format: "YYYY-MM-DD HH:mm:ss"
+		});
+
+		$('#examineDate').datetimepicker({
+			format: "YYYY-MM-DD HH:mm:ss"
+		});
+		//富文本初始化
+		$('#reason').summernote({
+			height: 300,
+			lang: 'zh-CN',
+			callbacks: {
+				onChange: function(contents, $editable) {
+					$("input[name='reason']").val($('#reason').summernote('code'));//取富文本的值
+				}
+			}
+		});
+
+	})
+</script>

+ 72 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/superNonPower.jsp

@@ -0,0 +1,72 @@
+<%@ page pageEncoding="UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp" %>
+<html>
+<head>
+    <title>土建模块项目发起流程</title>
+    <meta name="decorator" content="ani"/>
+    <!-- SUMMERNOTE -->
+    <%@include file="/webpage/include/summernote.jsp" %>
+    <%@include file="superNonPower.js" %>
+</head>
+<body>
+
+<div class="wrapper wrapper-content">
+    <div class="row">
+        <div class="col-md-12">
+            <div class="panel panel-primary">
+                <div class="panel-heading">
+                    <h3 class="panel-title">
+                        <a class="panelButton" href="#" onclick="history.go(-1)"><i class="ti-angle-left"></i> 返回</a>
+                    </h3>
+                </div>
+                <div class="panel-body">
+                    <form:form id="inputForm" modelAttribute="nonPower" action="${ctx}/nonPower/superSave" method="post"
+                               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"/>
+                        <form:hidden id="flag" path="act.flag" />
+                        <div class="form-group text-center">
+                            <h3> 土建超权限发起流程</h3>
+                        </div>
+                        <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:itemselect url="${ctx}/sg/managementcenter/project/materialSuperNon"
+                                                    id="projectId" name="projectId"
+                                                    value="${reserveProjectName}"
+                                                    labelName="project.reserveProjectName"
+                                                    labelValue="${project.reserveProjectName}"
+                                                    title="选择项目号" cssClass="form-control "
+                                                    fieldLabels="${fns:urlEncode('项目需求名称|项目定义号|项目名称')}"
+                                                    fieldKeys="reserveProjectName|projectId|projectName"
+                                                    searchLabels="${fns:urlEncode('储备项目名称')}|${fns:urlEncode('项目定义号')}|${fns:urlEncode('项目名称')}"
+                                                    searchKeys="reserveProjectName|projectId|projectName"
+                                                    isMultiSelected="false"/>
+                                </td>
+                            </tr>
+                            </tbody>
+                        </table>
+                        <div class="row">
+                            <div class="col-sm-3"></div>
+                            <div class="col-sm-6">
+                                <div class="form-group text-center">
+                                    <input id="contain" class="btn  btn-primary btn-lg btn-parsley" type="submit"
+                                           value="提交"/>&nbsp;
+                                </div>
+                            </div>
+                        </div>
+                    </form:form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

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

@@ -14,7 +14,7 @@
 	<div class="panel-heading">
 		<h3 class="panel-title">施工单位领导审核</h3>
 	</div>
-		<h3>项目:${projectNumber.requireName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
+		<h3>项目:${projectNumber.projectName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
 		<form:form id="inputForm" modelAttribute="showList" class="form-horizontal">
 			<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
 		</form:form>

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

@@ -14,7 +14,7 @@
         <div class="panel-heading">
             <h3 class="panel-title">施工单位物资专职审核</h3>
         </div>
-        <h3>项目:${projectNumber.requireName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
+        <h3>项目:${projectNumber.projectName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
         <form:form id="inputForm" modelAttribute="showList" class="form-horizontal">
             <input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
         </form:form>

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

@@ -14,7 +14,7 @@
 	<div class="panel-heading">
 		<h3 class="panel-title">配网项目经理审核领料单</h3>
 	</div>
-		<h3>项目:${projectNumber.requireName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
+		<h3>项目:${projectNumber.projectName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
 		<form:form id="inputForm" modelAttribute="showList" class="form-horizontal">
 			<input type="hidden" id="procInsId" name="procInsId" value="${showList.act.procInsId}"/>
 		</form:form>

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

@@ -39,7 +39,7 @@
 			</button>
 		</div>
 		<div class="panel-body">
-			<h3>项目:${projectNumber.requireName}&nbsp;发起第${projectNumber.theNumber}次开具领料清单</h3>
+			<h3>项目:${projectNumber.projectName}&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>

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

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