瀏覽代碼

交底-领料-土建-验收 流程

lem 5 年之前
父節點
當前提交
74f50ade93
共有 72 個文件被更改,包括 4138 次插入1772 次删除
  1. 59 43
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  2. 155 87
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  3. 1 0
      src/main/java/com/jeeplus/modules/sg/advence/activiti/web/AdvanceController.java
  4. 3 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/entity/Quantity.java
  5. 6 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/ConstructionMapper.java
  6. 10 5
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/ConstructionMapper.xml
  7. 11 11
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/UploadImagesMapper.xml
  8. 9 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/ConstructionService.java
  9. 0 6
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/UploadImagesService.java
  10. 36 24
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/EndTaskListen.java
  11. 7 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyActiviUtils.java
  12. 70 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/materialModuleListen.java
  13. 68 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/nonModuleListen.java
  14. 115 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/nonPowerListen.java
  15. 132 24
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java
  16. 5 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/UploadController.java
  17. 10 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/entity/MaterialProject.java
  18. 1 4
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/MaterialProjectMapper.java
  19. 3 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/xml/MaterialProjectMapper.xml
  20. 1 7
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/service/MaterialProjectService.java
  21. 56 45
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/web/MaterialProjectController.java
  22. 40 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/Project.java
  23. 55 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/ProjectMapper.java
  24. 372 64
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml
  25. 349 240
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java
  26. 27 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java
  27. 232 62
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java
  28. 11 13
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java
  29. 222 183
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml
  30. 24 25
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java
  31. 148 191
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java
  32. 3 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/NonPowerController.java
  33. 30 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/Acquisition.java
  34. 10 0
      src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/ProjectNumber.java
  35. 17 1
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/PickIngMapper.java
  36. 374 305
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/PickIngMapper.xml
  37. 13 11
      src/main/java/com/jeeplus/modules/sg/picking/activiti/mapper/xml/ShowListMapper.xml
  38. 59 33
      src/main/java/com/jeeplus/modules/sg/picking/activiti/service/PickIngService.java
  39. 298 31
      src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java
  40. 15 5
      src/main/java/com/jeeplus/modules/sg/settActivi/entity/SettActivi.java
  41. 2 0
      src/main/java/com/jeeplus/modules/sg/settActivi/mapper/SettActiviMapper.java
  42. 32 2
      src/main/java/com/jeeplus/modules/sg/settActivi/mapper/xml/SettActiviMapper.xml
  43. 5 0
      src/main/java/com/jeeplus/modules/sg/settActivi/service/SettActiviService.java
  44. 2 2
      src/main/java/com/jeeplus/modules/sg/settActivi/web/SettActiviController.java
  45. 34 0
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/advancePolicy.js
  46. 73 0
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/advancePolicy.jsp
  47. 4 4
      src/main/webapp/webpage/modules/sg/managementcenter/materialproject/materialProjectForm.jsp
  48. 33 16
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js
  49. 165 66
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp
  50. 43 19
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.js
  51. 104 6
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.jsp
  52. 3 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.js
  53. 2 15
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.jsp
  54. 4 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.js
  55. 1 12
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.jsp
  56. 40 16
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.js
  57. 101 9
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.jsp
  58. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/managerWhether.js
  59. 0 36
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js
  60. 67 58
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp
  61. 182 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/powerFile.js
  62. 67 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/powerFile.jsp
  63. 3 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.js
  64. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.jsp
  65. 3 5
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.js
  66. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp
  67. 72 59
      src/main/webapp/webpage/modules/sg/picking/activiti/constructionLeaderForm.jsp
  68. 9 3
      src/main/webapp/webpage/modules/sg/picking/activiti/exportErp.js
  69. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/exportErp.jsp
  70. 17 1
      src/main/webapp/webpage/modules/sg/picking/activiti/managerAudit.js
  71. 5 0
      src/main/webapp/webpage/modules/sg/picking/activiti/managerAudit.jsp
  72. 1 1
      src/main/webapp/webpage/modules/sg/picking/activiti/netExamine.jsp

+ 59 - 43
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -2691,7 +2691,6 @@ public class ActTaskService extends BaseService {
     @Transactional(readOnly = false)
     public void constructionLeader(Act act) {
         String flag = act.getFlag();
-
         // 设置意见
         act.setComment(("yes".equals(flag) ? "[同意] " : "[驳回] ") + act.getComment());
         act.preUpdate();
@@ -2730,8 +2729,6 @@ public class ActTaskService extends BaseService {
 
     /**
      * 项目中心领导审核领料单
-     *
-     * @param act
      */
     @Transactional(readOnly = false)
     public void leaderExamine(Act act) {
@@ -2963,9 +2960,7 @@ public class ActTaskService extends BaseService {
     }
 
     /**
-     * 施工单位项目经理电气开工流程提交文件
-     *
-     * @param act
+     * 电气开工流程提交文件
      */
     @Transactional(readOnly = false)
     public void electricalStartTask(Act act) {
@@ -2977,9 +2972,10 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
+        vars.put("pass", true);
         //根据项目设置的流转人员,流转对应人员
-//        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);
     }
 
@@ -3027,8 +3023,6 @@ public class ActTaskService extends BaseService {
 
     /**
      * 电气竣工流程
-     *
-     * @param act
      */
     @Transactional(readOnly = false)
     public void electricalEndTask(Act act) {
@@ -3040,9 +3034,28 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
         //根据项目设置的流转人员,流转对应人员
-//        vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
+        vars.put("manager", UserUtils.getByUserName(user.getAssignment().getOwnerManager()).getLoginName());
+        complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+    }
+
+    /**
+     * 上传涉电开工资料
+     * */
+    @Transactional(readOnly = false)
+    public void powerFileTask(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.findSGUser(act.getProcInsId());
+        //根据项目设置的流转人员,流转对应人员
+        vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -3117,14 +3130,14 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
         vars.put("pass", "yes".equals(flag) ? true : false);
         if ("yes".equals(flag)) {
             //根据项目设置的流转人员,流转对应人员
-//            vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getOwnerManager()).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);
     }
@@ -3145,14 +3158,20 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
-        vars.put("pass", "yes".equals(flag) ? true : false);
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
+        vars.put("noContain", false);
+        vars.put("contain", false);
+        vars.put("pass", false);
         if ("yes".equals(flag)) {
             //根据项目设置的流转人员,流转对应人员
-//            vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
-        } else {
+            vars.put("contain", true);
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
+        } else if ("noContain".equals(flag)) {
             //根据项目设置的流转人员,流转对应人员
-//            vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+            vars.put("noContain", true);
+        } else {
+            vars.put("pass", true);
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
         }
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
@@ -3189,7 +3208,7 @@ public class ActTaskService extends BaseService {
      * 土建竣工流程
      */
     @Transactional(readOnly = false)
-    public void nonPowerEndTask(Act act, String engineeringAcceptance) {
+    public void nonPowerEndTask(Act act) {
         // 设置意见
         act.setComment(("yes".equals(act.getFlag()) ? "[同意] " : "[驳回] ") + act.getComment());
         act.preUpdate();
@@ -3197,20 +3216,14 @@ 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.findTJUser(act.getProcInsId());
         //根据项目设置的流转人员,流转对应人员
         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());
@@ -3256,12 +3269,13 @@ public class ActTaskService extends BaseService {
         act.preUpdate();
         // 对不同环节的业务逻辑进行操作
         String taskDefKey = act.getTaskDefKey();
-        MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
-        Integer nonPower = byProcInsId.getNonPower();
+//        MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
+        Map<String, Object> vars = Maps.newHashMap();
+
+/*        Integer nonPower = byProcInsId.getNonPower();
         Integer electrical = byProcInsId.getElectrical();
         Integer power = byProcInsId.getPower();
         // 提交流程任务
-        Map<String, Object> vars = Maps.newHashMap();
         if (nonPower == 0 && electrical == 0 && power == 1) {
             vars.put("contain", true);
         } else if (nonPower == 0 && electrical == 0 && power == 0) {
@@ -3275,7 +3289,7 @@ public class ActTaskService extends BaseService {
         } else {
             //根据项目设置的流转人员,流转对应人员
 //            vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
-        }
+        }*/
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -3292,8 +3306,10 @@ public class ActTaskService extends BaseService {
         act.preUpdate();
         // 对不同环节的业务逻辑进行操作
         String taskDefKey = act.getTaskDefKey();
-        MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
-        Integer nonPower = byProcInsId.getNonPower();
+//        MaterialModule byProcInsId = materialModuleService.findByProcInsId(act.getProcInsId());
+        Map<String, Object> vars = Maps.newHashMap();
+
+/*        Integer nonPower = byProcInsId.getNonPower();
         Integer electrical = byProcInsId.getElectrical();
         Integer power = byProcInsId.getPower();
         // 提交流程任务
@@ -3311,7 +3327,7 @@ public class ActTaskService extends BaseService {
         } else {
             //根据项目设置的流转人员,流转对应人员
 //            vars.put("manager", UserUtils.getByUserName(user.getProjectManageRole()).getLoginName());
-        }
+        }*/
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -3360,9 +3376,10 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
+        vars.put("pass", true);
         //根据项目设置的流转人员,流转对应人员
-//        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);
     }
 
@@ -3381,9 +3398,9 @@ public class ActTaskService extends BaseService {
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
         //根据项目设置的流转人员,流转对应人员
-//        vars.put("manager", UserUtils.getByUserName(user.getRunUnitRole()).getLoginName());
+        vars.put("manager", UserUtils.getByUserName(user.getAssignment().getRepUnit()).getLoginName());
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
     }
 
@@ -3396,10 +3413,10 @@ public class ActTaskService extends BaseService {
     public void PowerWhetherTask(Act act) {
         Map<String, Object> vars = Maps.newHashMap();
         //根据流程实例id查询项目的相关信息
-//        Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
+        Project user = MyActiviUtils.findSGUser(act.getProcInsId());
         String flag = act.getFlag();
         if ("finish".equals(flag)) {
-            act.setComment("[无二次涉电]" + act.getComment());
+            act.setComment("[完成]" + act.getComment());
             vars.put("finish", true);
             vars.put("second", false);
             vars.put("no", false);
@@ -3408,14 +3425,13 @@ public class ActTaskService extends BaseService {
             vars.put("finish", false);
             vars.put("second", true);
             vars.put("no", false);
-//            vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
-
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
         } else {
             act.setComment("[审核不通过]" + act.getComment());
             vars.put("finish", false);
             vars.put("second", false);
             vars.put("no", true);
-//            vars.put("manager", UserUtils.getByUserName(user.getConstructionUnitManage()).getLoginName());
+            vars.put("manager", UserUtils.getByUserName(user.getAssignment().getConstructionManage()).getLoginName());
         }
         // 设置意见
         act.preUpdate();

+ 155 - 87
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -31,9 +31,13 @@ import com.jeeplus.modules.sg.managementcenter.activiti.service.ProcessPersonnel
 import com.jeeplus.modules.sg.managementcenter.activiti.service.UploadImagesService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
 import com.jeeplus.modules.sg.managementcenter.materialproject.service.MaterialProjectService;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Assignment;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.NonPowerService;
@@ -549,12 +553,12 @@ public class ActTaskController extends BaseController {
             }
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
-            String processingType = construction.getQuantity().getProcessingType();
+            String processingType = construction1.getQuantity().getProcessingType();
             if (processingType == null || "".equals(processingType)) {
 
             } else {
                 //有政策处理问题,暂定为1
-                materialProjectService.updatePolicyStatus(construction1.getReserveProjectName());
+                constructionService.updatePolicyStatus(construction1.getReserveProjectName(),"1");
             }
             actTaskService.engineering(act,construction1);
         } catch (UnsupportedEncodingException e) {
@@ -564,7 +568,7 @@ public class ActTaskController extends BaseController {
         return j;
     }
 
-    /**
+     /**
      * 政处是否自己进行
      */
     @ResponseBody
@@ -1773,19 +1777,22 @@ public class ActTaskController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "electricalStartTask")
-    public AjaxJson electricalStartTask(Act act, String pic, UploadImages uploadImages) {
+    public AjaxJson electricalStartTask(Act act, String pic, UploadImages uploadImages, MaterialModule materialModule) {
         AjaxJson j = new AjaxJson();
         try {
             if (pic != null && pic != "") {
                 uploadImages.setPath(pic);
-//                uploadImages.setProcInsId(act.getProcInsId());
+                uploadImages.setProcInsId(act.getProcInsId());
                 uploadImages.setImgName("14");
-//                uploadImages.setuId(UserUtils.getUser().getName());
-//                Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
-//                uploadImages.setProjectId(user.getId());
+                uploadImages.setUid(UserUtils.getUser().getName());
+                uploadImages.setReserveProjectName(materialModule.getReserveProjectName());
+                uploadImages.setProcInsId(materialModule.getAct().getProcInsId());
+                uploadImages.setId("");
                 uploadImagesService.save(uploadImages);
             }
+            materialModuleService.updateElectricalStart(materialModule);
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            act = materialModule.getAct();
             act.setComment(comment);
             actTaskService.electricalStartTask(act);
         } catch (UnsupportedEncodingException e) {
@@ -1889,7 +1896,7 @@ public class ActTaskController extends BaseController {
     }
 
     /**
-     * 审核土建竣工流程
+     * 审核涉电竣工
      */
     @ResponseBody
     @RequestMapping(value = "rePowerEnd")
@@ -1912,18 +1919,48 @@ public class ActTaskController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "electricalEndTask")
-    public AjaxJson electricalEndTask(Act act, String pic, UploadImages uploadImages) {
+    public AjaxJson electricalEndTask(Act act, String pic, UploadImages uploadImages,String id) {
         AjaxJson j = new AjaxJson();
         try {
             if (pic != null && pic != "") {
                 uploadImages.setPath(pic);
-//                uploadImages.setProcInsId(act.getProcInsId());
+                uploadImages.setProcInsId(act.getProcInsId());
                 uploadImages.setImgName("16");
-//                uploadImages.setuId(UserUtils.getUser().getName());
-//                Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
-//                uploadImages.setProjectId(user.getId());
+                uploadImages.setUid(UserUtils.getUser().getName());
+                uploadImages.setReserveProjectName(uploadImages.getReserveProjectName());
+                uploadImages.setId("");
                 uploadImagesService.save(uploadImages);
             }
+            //判断是否需要发送通知
+            Integer num = 0;
+            List<MaterialInfo> allInfo = projectService.findSgInfo(id);
+            if (null != allInfo && allInfo.size() > 0) {
+                for (MaterialInfo mi :
+                        allInfo) {
+                    String materialName = mi.getMaterialName();
+                    if (materialName.contains("环网柜") || materialName.contains("开关站") || materialName.contains("管塔通道")) {
+                        num += 1;
+                        if (num >= 5) {
+                            Project sgUser = MyActiviUtils.findSGUser(act.getProcInsId());
+                            //发送通知
+                            OaNotify oaNotify = new OaNotify();
+                            oaNotify.setType("4");
+                            oaNotify.setTitle(uploadImages.getReserveProjectName()+":电气(涉电)需要验收");
+                            oaNotify.setStatus("1");
+                            oaNotify.setContent(uploadImages.getReserveProjectName() + ":电气(涉电)需要验收");
+                            oaNotify.setOaNotifyRecordIds(UserUtils.getByUserName(sgUser.getAssignment().getRepUnit()).getId());
+                            oaNotifyService.save(oaNotify);
+                            List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
+                            for (OaNotifyRecord o : list) {
+                                //发送通知到客户端
+                                ServletContext context = SpringContextHolder.getBean(ServletContext.class);
+                                new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
             actTaskService.electricalEndTask(act);
@@ -1958,12 +1995,23 @@ public class ActTaskController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "reElectricalEndTask")
-    public AjaxJson reElectricalEndTask(Act act) {
+    public AjaxJson reElectricalEndTask(Act act, String id) {
         AjaxJson j = new AjaxJson();
         String comment = null;
         try {
             comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
+            if ("yes".equals(act.getFlag())) {
+                Construction blockAss = projectService.findSgBlockAss(id);
+                if (null == blockAss.getQuantity()) {
+                    act.setFlag("noContain");
+                } else {
+                    String blackoutLine = blockAss.getQuantity().getBlackoutLine();
+                    if (null == blackoutLine || "".equals(blackoutLine) || "不涉电".equals(blackoutLine)) {
+                        act.setFlag("noContain");
+                    }
+                }
+            }
             actTaskService.reElectricalEndTask(act);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
@@ -1973,6 +2021,33 @@ public class ActTaskController extends BaseController {
     }
 
     /**
+     * 上传涉电开工资料
+     */
+    @ResponseBody
+    @RequestMapping(value = "powerFileTask")
+    public AjaxJson powerFileTask(Act act, String pic, UploadImages uploadImages,String id) {
+        AjaxJson j = new AjaxJson();
+        try {
+            if (pic != null && pic != "") {
+                uploadImages.setPath(pic);
+                uploadImages.setProcInsId(act.getProcInsId());
+                uploadImages.setImgName("17");
+                uploadImages.setUid(UserUtils.getUser().getName());
+                uploadImages.setReserveProjectName(uploadImages.getReserveProjectName());
+                uploadImages.setId("");
+                uploadImagesService.save(uploadImages);
+            }
+            String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            act.setComment(comment);
+            actTaskService.powerFileTask(act);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        j.setMsg("审批成功");
+        return j;
+    }
+
+    /**
      * 土建竣工流程
      */
     @ResponseBody
@@ -1992,8 +2067,24 @@ public class ActTaskController extends BaseController {
                     return j;
                 }
                 engineering = nonPower1.getEngineeringAcceptance();
+                if ("是".equals(engineering)) {
+                    Project user = MyActiviUtils.findTJUser(act.getProcInsId());
+                    OaNotify oaNotify = new OaNotify();
+                    oaNotify.setType("4");
+                    oaNotify.setTitle(nonPower.getReserveProjectName()+":土建需要验收");
+                    oaNotify.setStatus("1");
+                    oaNotify.setContent(nonPower.getReserveProjectName() + ":土建需要验收");
+                    oaNotify.setOaNotifyRecordIds(UserUtils.getByUserName(user.getAssignment().getRepUnit()).getId());
+                    oaNotifyService.save(oaNotify);
+                    List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
+                    for (OaNotifyRecord o : list) {
+                        //发送通知到客户端
+                        ServletContext context = SpringContextHolder.getBean(ServletContext.class);
+                        new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
+                    }
+                }
             }
-            actTaskService.nonPowerEndTask(act,engineering);
+            actTaskService.nonPowerEndTask(act);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
@@ -2031,7 +2122,7 @@ public class ActTaskController extends BaseController {
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
             //设置土建完成
-            materialModuleService.updateNonPower(act.getProcInsId());
+//            materialModuleService.updateNonPower(act.getProcInsId());
             actTaskService.reviewNonPower(act);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
@@ -2051,7 +2142,7 @@ public class ActTaskController extends BaseController {
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
             //设置土建完成
-            materialModuleService.updateElectrical(act.getProcInsId());
+//            materialModuleService.updateElectrical(act.getProcInsId());
             actTaskService.reviewElectrical(act);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
@@ -2083,59 +2174,22 @@ public class ActTaskController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "PowerStartTask")
-    public AjaxJson PowerStartTask(Act act, String pic, String imgName, UploadImages uploadImages) {
-        AjaxJson j = new AjaxJson();
-        try {
-            //获取当前的流程实例id
-            String procInsId = act.getProcInsId();
-            //根据项目信息查询计划开工日期
-            String projectName = materialModuleService.findProjectName(procInsId);
-            Date specificTime = materialModuleService.findSpecificTime(projectName);
-//            Project project1 = MyActiviUtils.sgFindUser(procInsId);
-//            String[] needUser = {project1.getConstructionUnitManage()};
-//            List<String> listUserId = MyActiviUtils.getListUserId(needUser);
-//            List<String> userId = materialModuleService.findUserId(listUserId);
-//            String stringJoiningTogether = MyActiviUtils.getStringJoiningTogether(userId);
-            OaNotify oaNotify = new OaNotify();
-            oaNotify.setType("4");
-            oaNotify.setTitle("施工验收流程项目计划信息");
-            oaNotify.setStatus("1");
-//            oaNotify.setOaNotifyRecordIds(stringJoiningTogether);
-            if (specificTime == null) {
-                //根据流程实例id查询对应的项目信息(如果没有,发送通知,没有该项目计划信息)
-                oaNotify.setContent(projectName + ":项目没有对应的计划信息");
-                oaNotifyService.save(oaNotify);
-                List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
-                for (OaNotifyRecord o : list) {
-                    //发送通知到客户端
-                    ServletContext context = SpringContextHolder.getBean(ServletContext.class);
-                    new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
-                }
-            } else {
-                //将计划赶工日期与当前时间比对(则将不符情况以通知形式发送)
-                SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
-                boolean timeFlag = fmt.format(specificTime).equals(fmt.format(new Date()));
-                if (timeFlag == false) {
-                    oaNotify.setContent(projectName + ":计划时间与实际时间不符");
-                    oaNotifyService.save(oaNotify);
-                    List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
-                    for (OaNotifyRecord o : list) {
-                        //发送通知到客户端
-                        ServletContext context = SpringContextHolder.getBean(ServletContext.class);
-                        new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
-                    }
-                }
-            }
+    public AjaxJson PowerStartTask(Act act, String pic, UploadImages uploadImages, MaterialModule materialModule) {
+        AjaxJson j = new AjaxJson();
+        try {
             if (pic != null && pic != "") {
                 uploadImages.setPath(pic);
-//                uploadImages.setProcInsId(act.getProcInsId());
+                uploadImages.setProcInsId(act.getProcInsId());
                 uploadImages.setImgName("17");
-//                uploadImages.setuId(UserUtils.getUser().getName());
-//                Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
-//                uploadImages.setProjectId(user.getId());
+                uploadImages.setUid(UserUtils.getUser().getName());
+                uploadImages.setReserveProjectName(materialModule.getReserveProjectName());
+                uploadImages.setProcInsId(materialModule.getAct().getProcInsId());
+                uploadImages.setId("");
                 uploadImagesService.save(uploadImages);
             }
+            materialModuleService.updateElectricalStart(materialModule);
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            act = materialModule.getAct();
             act.setComment(comment);
             actTaskService.PowerStartTask(act);
         } catch (UnsupportedEncodingException e) {
@@ -2146,23 +2200,26 @@ public class ActTaskController extends BaseController {
     }
 
     /**
-     * 施工单位项目经理上传涉电项目竣工流程工作
+     * 涉电竣工报告
      */
     @ResponseBody
     @RequestMapping(value = "PowerEndTask")
-    public AjaxJson PowerEndTask(Act act, String pic, UploadImages uploadImages) {
+    public AjaxJson PowerEndTask(Act act, String pic, UploadImages uploadImages, MaterialModule materialModule) {
         AjaxJson j = new AjaxJson();
         try {
             if (pic != null && pic != "") {
                 uploadImages.setPath(pic);
-//                uploadImages.setProcInsId(act.getProcInsId());
+                uploadImages.setProcInsId(act.getProcInsId());
                 uploadImages.setImgName("18");
-//                uploadImages.setuId(UserUtils.getUser().getName());
-//                Project user = MyActiviUtils.sgFindUser(act.getProcInsId());
-//                uploadImages.setProjectId(user.getId());
+                uploadImages.setUid(UserUtils.getUser().getName());
+                uploadImages.setReserveProjectName(materialModule.getReserveProjectName());
+                uploadImages.setProcInsId(materialModule.getAct().getProcInsId());
+                uploadImages.setId("");
                 uploadImagesService.save(uploadImages);
             }
+            materialModuleService.updateElectricalEnd(materialModule);
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+            act = materialModule.getAct();
             act.setComment(comment);
             actTaskService.PowerEndTask(act);
         } catch (UnsupportedEncodingException e) {
@@ -2177,29 +2234,40 @@ public class ActTaskController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "PowerWhetherTask")
-    public AjaxJson PowerWhetherTask(Act act) {
+    public AjaxJson PowerWhetherTask(Act act,String severalTimes) {
         AjaxJson j = new AjaxJson();
         try {
             //对项目选择二次涉电的时候
             String flag = act.getFlag();
             if ("second".equals(flag)) {
                 //获取项目定义号,查询项目信息
-                String projectName = materialModuleService.findProjectName(act.getProcInsId());
-                ConstructionProject project = materialModuleService.findProject(projectName);
-                if (project == null) {
-                    //没有,不允许发起二次涉电
-                    j.setSuccess(false);
-                    j.setMsg("没有该项目的计划信息,无法发起二次涉电");
-                    return j;
-                } else {
-                    //如果有,记录数据,保存数据在项目名称后加入二次涉电插入项目库
-                    String projectName1 = project.getProjectName();
-                    project.setProjectName(projectName1 + "二次涉电");
-                    project.setProjectStatus("0");
-                    materialModuleService.conProject(project);
-                }
+                String procInsId = act.getProcInsId();
+                Project sgProject = projectService.findSgProject(procInsId);
+                sgProject.setArrageProject("0");
+                sgProject.setId("");
+                sgProject.setSecondPower("1");
+                int i = Integer.parseInt(severalTimes);
+                i = i + 1;
+                String newReserveProjectName = sgProject.getReserveProjectName() + i + "次涉电";
+                sgProject.setReserveProjectName(newReserveProjectName);
+                //修改
+                projectService.insertSgProject(sgProject);
+                //跟新项目现有的状态
+                materialModuleService.updateSeveralTimes(act.getProcInsId(),i);
+                Project project = new Project();
+                //查询所有人员信息
+                Assignment sgAss = projectService.findSgAss(procInsId);
+                sgAss.setReserveProjectName(newReserveProjectName);
+                project.setAssignment(sgAss);
+                List<Project> insertAsslist = new ArrayList<>();
+                insertAsslist.add(project);
+                projectService.insertAssList(insertAsslist);
+                //查询停电开关信息
+                Quantity sgQuantity = projectService.findSgQuantity(procInsId);
+                sgQuantity.setReserveProjectName(newReserveProjectName);
+                sgQuantity.setId("");
+                projectService.insertSgQuantity(sgQuantity);
             }
-            materialModuleService.updatePower(act.getProcInsId());
             String comment = URLDecoder.decode(act.getComment(), "UTF-8");
             act.setComment(comment);
             actTaskService.PowerWhetherTask(act);

+ 1 - 0
src/main/java/com/jeeplus/modules/sg/advence/activiti/web/AdvanceController.java

@@ -99,6 +99,7 @@ public class AdvanceController extends BaseController {
 //		model.addAttribute("project", project1);
 		return "modules/sg/advence/activiti/constructionManager";
 	}
+
 	/**
 	 * 提前施工
 	 */

+ 3 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/entity/Quantity.java

@@ -1,8 +1,10 @@
 package com.jeeplus.modules.sg.managementcenter.activiti.entity;
 
+import com.jeeplus.core.persistence.DataEntity;
+
 import java.util.List;
 
-public class Quantity {
+public class Quantity extends DataEntity<Quantity> {
     //工程量id
     private String id;
     //储备项目暂定名称

+ 6 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/ConstructionMapper.java

@@ -47,7 +47,7 @@ public interface ConstructionMapper extends BaseMapper<Construction> {
     /**
      * 根据项目定义号修改项目的土建流程状态
      * */
-    void updateAdvStatus(String projectId);
+    void updateAdvStatus(String id);
 
     /**
      * 根据流程定义修改项目关闭状态
@@ -155,4 +155,9 @@ public interface ConstructionMapper extends BaseMapper<Construction> {
      * 删除其它工程量信息
      */
     void delOtherAmount(String id);
+
+    /**
+     *根据项目名称修改项目政策处理状态
+     * */
+    void updatePolicyStatus(@Param("reserveProjectName") String reserveProjectName,@Param("policyStatus") String policyStatus);
 }

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

@@ -443,7 +443,7 @@
         </foreach>
     </insert>
     <insert id="uploadSave">
-        INSERT INTO xm_upolad_images(id,
+        INSERT INTO xm_upload_images(id,
                                      create_by,
                                      create_date,
                                      update_by,
@@ -493,7 +493,7 @@
     </select>
     <!--施工流程记录表根据流程定义号获取项目名称-->
     <select id="idProjectName3" resultType="string">
-        select project_name
+        select projectName
         from sg_construction_process
         where proc_ins_id = #{procInsId};
     </select>
@@ -525,7 +525,7 @@
     <select id="insIdByName3" resultType="java.lang.String">
         select proc_ins_id
         from sg_construction_process
-        where project_name like concat('%', #{projectName}, '%')
+        where projectName like concat('%', #{projectName}, '%');
     </select>
     <select id="insIdByName4" resultType="java.lang.String">
         select proc_ins_id
@@ -565,7 +565,7 @@
     <select id="findUploadPage"
             resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages">
         select *
-        from xm_upolad_images
+        from xm_upload_images
         <where>
             <if test="dataScope != null and dataScope != ''">
                 ${dataScope}
@@ -616,7 +616,7 @@
     <update id="updateAdvStatus">
         update xm_material_project
         set advanceStatus = '1'
-        where projectId = #{projectId};
+        where id = #{id};
     </update>
     <update id="updateEndStatus">
         update xm_material_project
@@ -825,4 +825,9 @@
         from xm_other_amount
         where id = #{id}
     </delete>
+    <update id="updatePolicyStatus">
+        update xm_material_project
+        set policyStatus = #{policyStatus}
+        where reserveProjectName = #{reserveProjectName};
+    </update>
 </mapper>

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

@@ -80,13 +80,13 @@
 
 	<select id="get" resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages" >
 		SELECT *
-		FROM xm_upolad_images a
+		FROM xm_upload_images a
 		WHERE a.id = #{id}
 	</select>
 	
 	<select id="findList" resultType="UploadImages" >
 		SELECT a.*
-		FROM xm_upolad_images a
+		FROM xm_upload_images a
 		<where>
 			<if test="dataScope != null and dataScope != ''">
 				${dataScope}
@@ -109,12 +109,12 @@
 	</select>
 
 	<select id="findMaterialImg" resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages">
-		select imgName,path,proc_ins_id,uid from xm_upolad_images where proc_ins_id = #{procInsId}
+		select imgName,path,proc_ins_id,uid from xm_upload_images where proc_ins_id = #{procInsId}
 	</select>
 	
 	<select id="findAllList" resultType="UploadImages" >
 		SELECT *
-		FROM xm_upolad_images a
+		FROM xm_upload_images a
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			${dataScope}
@@ -130,7 +130,7 @@
 	</select>
 	
 	<insert id="insert">
-		INSERT INTO xm_upolad_images(
+		INSERT INTO xm_upload_images(
 			id,
 			create_by,
 			create_date,
@@ -142,7 +142,7 @@
 			path,
 			proc_ins_id,
 			uid,
-			projectId
+			reserveProjectName
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -155,12 +155,12 @@
 			#{path},
 			#{procInsId},
 			#{uid},
-			#{projectId}
+			#{reserveProjectName}
 		)
 	</insert>
 	
 	<update id="update">
-		UPDATE xm_upolad_images SET
+		UPDATE xm_upload_images SET
 			path = #{path},
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
@@ -170,19 +170,19 @@
 
 	<!--物理删除-->
 	<update id="delete">
-		DELETE FROM xm_upolad_images
+		DELETE FROM xm_upload_images
 		WHERE id = #{id}
 	</update>
 	
 	<!--逻辑删除-->
 	<update id="deleteByLogic">
-		UPDATE xm_upolad_images SET
+		UPDATE xm_upload_images SET
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
 
 	<select id="findPathByProcInsID" resultType="java.lang.String">
-		select path from xm_upolad_images where proc_ins_id = #{procInsId};
+		select path from xm_upload_images where proc_ins_id = #{procInsId};
 	</select>
 
 	<select id="findProjectNameByProcInsId" resultType="java.lang.String">

+ 9 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/service/ConstructionService.java

@@ -156,8 +156,8 @@ public class ConstructionService extends CrudService<ConstructionMapper, Constru
 	 * 根据项目定义号修改项目的土建流程状态
 	 * */
 	@Transactional(readOnly = false)
-	public void updateAdvStatus(String projectId) {
-		constructionMapper.updateAdvStatus(projectId);
+	public void updateAdvStatus(String id) {
+		constructionMapper.updateAdvStatus(id);
 	}
 
 	/**
@@ -302,5 +302,12 @@ public class ConstructionService extends CrudService<ConstructionMapper, Constru
 		constructionMapper.delOtherAmount(id);
 	}
 
+	/**
+	 *根据项目名称修改项目政策处理状态
+	 * */
+	@Transactional(readOnly = false)
+	public void updatePolicyStatus(String reserveProjectName,String policyStatus) {
+		constructionMapper.updatePolicyStatus(reserveProjectName,policyStatus);
+	}
 
 }

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

@@ -47,12 +47,6 @@ public class UploadImagesService extends CrudService<UploadImagesMapper, UploadI
 		return super.findAllList(entity);
 	}
 
-	@Override
-	@Transactional(readOnly = false)
-	public void save(UploadImages entity) {
-		super.save(entity);
-	}
-
 	@Transactional(readOnly = false)
 	public void insert(UploadImages entity) {
 		entity.preInsert();

+ 36 - 24
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/EndTaskListen.java

@@ -22,7 +22,7 @@ import java.io.Serializable;
 import java.util.Map;
 
 /**
- * 施工交底流程结束,自动判断发送政策处理流程
+ * 施工交底流程结束,自动发起物资领料及土建验收流程
  */
 public class EndTaskListen implements Serializable, ExecutionListener {
     /**
@@ -47,39 +47,34 @@ public class EndTaskListen implements Serializable, ExecutionListener {
             String projectId = projectProc.getProjectId();
             String projectName = projectProc.getProjectName();
             String reserveProjectName = projectProc.getReserveProjectName();
+            //变更交底状态
             constructionService.updateEndStatus(reserveProjectName);
+            //变更政处处理状态
+            constructionService.updatePolicyStatus(reserveProjectName, "2");
+
             //判断是否有项目定义号和项目名称(没有不予发送领料流程)
             if ("".equals(projectId) || "".equals(projectName) || null == projectId || null == projectName) {
 
             } else {
-                if (!"0".equals(projectProc.getAcquisitionStatus())) {
-                    //获取项目第几次发起领料
-                    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 {
+                if ("0".equals(projectProc.getAcquisitionStatus())) {
                     showList.setTheNumber("1");
                     showList.setProjectName(projectName);
                     showList.setReserveProjectName(reserveProjectName);
                     showList.setProjectId(projectId);
+                    showList.setsVersion(MyActiviUtils.findDic().getValue());
+                    showListService.updateAcqStatus(reserveProjectName);
+                    //保存数据
+                    showListService.save(showList);
+                    //修改项目领料状态
+                    projectService.wzStatusByName("1", reserveProjectName);
+                    // 启动物资领料流程
+                    Map<String, Object> vars = Maps.newHashMap();
+                    vars.put("manager", UserUtils.getByUserName(projectProc.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);
                 }
-                showListService.updateAcqStatus(reserveProjectName);
-                //保存数据
-                showListService.save(showList);
-                // 启动物资领料流程
-                Map<String, Object> vars = Maps.newHashMap();
-                vars.put("manager", UserUtils.getByUserName(projectProc.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) {
@@ -94,12 +89,29 @@ public class EndTaskListen implements Serializable, ExecutionListener {
                         projectService.updateAdvanceStart(reserveProjectName, "1");
                         //启动土建流程
                         Map<String, Object> vars2 = Maps.newHashMap();
+                        vars2.put("noPass", false);
+                        vars2.put("pass", true);
                         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);
                     }
+                } else {
+                    if ("0".equals(projectProc.getAdvanceStatus())) {
+                    NonPower nonPower = new NonPower();
+                    //修改项目基础信息土建流程状态
+                    projectService.updateAdvanceStart(reserveProjectName, "1");
+                    //启动土建流程
+                    Map<String, Object> vars2 = Maps.newHashMap();
+                    vars2.put("nopass", true);
+                    vars2.put("pass", false);
+                    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", "必要参数,无法避免", title2, vars2);
+                    }
                 }
             }
         } catch (Exception e) {

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

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

+ 70 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/materialModuleListen.java

@@ -0,0 +1,70 @@
+package com.jeeplus.modules.sg.managementcenter.activiti.utils;
+
+import com.google.common.collect.Maps;
+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.service.NonPowerService;
+import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
+import com.jeeplus.modules.sg.settActivi.entity.SettActivi;
+import com.jeeplus.modules.sg.settActivi.service.SettActiviService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.ExecutionListener;
+import org.activiti.engine.repository.ProcessDefinition;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 施工验收流程结束,自动发起结算验收流程
+ */
+public class materialModuleListen implements Serializable, ExecutionListener {
+    /**
+     * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
+     */
+    private static final long serialVersionUID = 8513750196548027535L;
+
+    @Override
+    public void notify(DelegateExecution delegateExecution) throws Exception {
+        try {
+            ProjectService projectService = SpringContextHolder.getBean(ProjectService.class);
+            ActProcessService actProcessService = SpringContextHolder.getBean(ActProcessService.class);
+            ActTaskService actTaskService = SpringContextHolder.getBean(ActTaskService.class);
+            SettActiviService settActiviService = SpringContextHolder.getBean(SettActiviService.class);
+            SettActivi settActivi = new SettActivi();
+            String procInsId = delegateExecution.getProcessInstanceId();
+            //施工交底流程完成,修改项目状态
+            projectService.updateSgStatus("2", procInsId);
+            //判断土建是否完成,施工验收是否完成,完成发送
+            Project sgProcInsId = projectService.findSgProcInsId(procInsId);
+            String advanceStatus = sgProcInsId.getAdvanceStatus();
+            String constructionStatus = sgProcInsId.getConstructionStatus();
+            if ("2".equals(advanceStatus) && "2".equals(constructionStatus)) {
+                //发送结算流程
+                settActivi.setProjectId(sgProcInsId.getProjectId());
+                settActivi.setProjectName(sgProcInsId.getProjectName());
+                settActivi.setReserveProjectName(sgProcInsId.getReserveProjectName());
+                settActiviService.insertSett(settActivi);
+                //修改项目结算状态
+                projectService.updateJsStatus("1", sgProcInsId.getReserveProjectName());
+                // 启动物资领料流程
+                Map<String, Object> vars = Maps.newHashMap();
+                vars.put("manager", UserUtils.getByUserName(sgProcInsId.getAssignment().getOwnerManager()).getLoginName());
+                String procDefId = projectService.findDefId("sett");
+                ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                String title = UserUtils.getUser().getLoginName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                actTaskService.startProcess(p.getKey(), "xm_settlement_process", settActivi.getId(), title, vars);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 68 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/nonModuleListen.java

@@ -0,0 +1,68 @@
+package com.jeeplus.modules.sg.managementcenter.activiti.utils;
+
+import com.google.common.collect.Maps;
+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.service.NonPowerService;
+import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
+import com.jeeplus.modules.sg.settActivi.entity.SettActivi;
+import com.jeeplus.modules.sg.settActivi.service.SettActiviService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.ExecutionListener;
+import org.activiti.engine.repository.ProcessDefinition;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 土建流程结束,自动判断是否完成施工验收流程,发送
+ */
+public class nonModuleListen implements Serializable, ExecutionListener {
+    /**
+     * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
+     */
+    private static final long serialVersionUID = 8513750196548027535L;
+
+    @Override
+    public void notify(DelegateExecution delegateExecution) throws Exception {
+        try {
+            ProjectService projectService = SpringContextHolder.getBean(ProjectService.class);
+            ActProcessService actProcessService = SpringContextHolder.getBean(ActProcessService.class);
+            ActTaskService actTaskService = SpringContextHolder.getBean(ActTaskService.class);
+            SettActiviService settActiviService = SpringContextHolder.getBean(SettActiviService.class);
+            SettActivi settActivi = new SettActivi();
+            String procInsId = delegateExecution.getProcessInstanceId();
+            //土建流程完成,修改项目状态
+            projectService.updateTjStatus("2", procInsId);
+            //判断是否完成土建,是否完成施工验收,完成发送
+            Project sgProcInsId = projectService.findTjProcInsId(procInsId);
+            String advanceStatus = sgProcInsId.getAdvanceStatus();
+            String constructionStatus = sgProcInsId.getConstructionStatus();
+            if ("2".equals(advanceStatus) && "2".equals(constructionStatus)) {
+                //发送结算流程
+                settActivi.setProjectId(sgProcInsId.getProjectId());
+                settActivi.setProjectName(sgProcInsId.getProjectName());
+                settActivi.setReserveProjectName(sgProcInsId.getReserveProjectName());
+                settActiviService.save(settActivi);
+                //修改项目结算状态
+                projectService.updateJsStatus("1", sgProcInsId.getReserveProjectName());
+                // 启动施工验收
+                Map<String, Object> vars = Maps.newHashMap();
+                vars.put("manager", UserUtils.getByUserName(sgProcInsId.getAssignment().getOwnerManager()).getLoginName());
+                String procDefId = projectService.findDefId("sett");
+                ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                String title = UserUtils.getUser().getLoginName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                actTaskService.startProcess(p.getKey(), "xm_settlement_process", settActivi.getId(), title, vars);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 115 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/nonPowerListen.java

@@ -0,0 +1,115 @@
+package com.jeeplus.modules.sg.managementcenter.activiti.utils;
+
+import com.google.common.collect.Maps;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.SpringContextHolder;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.act.service.ActProcessService;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
+import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
+import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
+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.ShowList;
+import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.ExecutionListener;
+import org.activiti.engine.repository.ProcessDefinition;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 物资及土建具体流程
+ */
+public class nonPowerListen implements Serializable, ExecutionListener {
+    /**
+     * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
+     */
+    private static final long serialVersionUID = 8513750196548027535L;
+
+    @Override
+    public void notify(DelegateExecution delegateExecution) throws Exception {
+        try {
+            MaterialModuleService materialModuleService = SpringContextHolder.getBean(MaterialModuleService.class);
+            ProjectService projectService = SpringContextHolder.getBean(ProjectService.class);
+            ActProcessService actProcessService = SpringContextHolder.getBean(ActProcessService.class);
+            ActTaskService actTaskService = SpringContextHolder.getBean(ActTaskService.class);
+            MaterialModule materialModule = SpringContextHolder.getBean(MaterialModule.class);
+            String procInsId = delegateExecution.getProcessInstanceId();
+            //修改领料状态
+            projectService.updateWzStatus("2", procInsId);
+            //判断是否领料完成,是否进场完成,根据条件发送施工交底流程
+            Project wzProcInsId = projectService.findWzProcInsId(procInsId);
+            String canEnter = wzProcInsId.getCanEnter();
+            String acquisitionStatus = wzProcInsId.getAcquisitionStatus();
+            if ("2".equals(canEnter) && "2".equals(acquisitionStatus)) {
+                //发送电气流程
+                boolean electric = false;
+                //判单钢管杠,水泥杠,存在电气,判断是否包含
+                List<MaterialInfo> allInfo = projectService.findWzInfo(procInsId);
+                if (allInfo.size() > 0) {
+                    for (MaterialInfo mi : allInfo
+                    ) {
+                        String materialName = mi.getMaterialName();
+                        if (null != materialName && !"".equals(materialName)) {
+                            //判断项目是否包含描述为钢管杆或水泥杠的物料,存在步入电气流程
+                            if (materialName.contains("钢管杆") || materialName.contains("水泥杆")) {
+                                electric = true;
+                                break;
+                            }
+                        }
+                    }
+                }
+                //查询出项目的基础信息,停电线路(如果纯在),人员流转信息
+                Construction blockAss = projectService.findWzAss(procInsId);
+                Map<String, Object> vars = Maps.newHashMap();
+                //没用电气及涉电 运行条件
+                vars.put("no", false);
+                //没有电气,有涉电 运行条件
+                vars.put("notContain", false);
+                //包含电气/涉电-优先电气 运行条件
+                vars.put("electrical", false);
+                if (electric) {
+                    //发送开始电气流程
+                    vars.put("electrical", true);
+                } else {
+                    //没用电气进行涉电
+                    //获取项目的领料单,查询停电线路
+                    String blackoutLine = blockAss.getQuantity().getBlackoutLine();
+                    if (null != blackoutLine && !"".equals(blackoutLine) && "不涉电".equals(blackoutLine)) {
+                        //填写停电线路,不为空,-步入发起涉电流程
+                        vars.put("notContain", true);
+                    } else {
+                        vars.put("no", true);
+                    }
+                }
+
+                if (StringUtils.isBlank(materialModule.getId())) {
+                    vars.put("manager", UserUtils.getByUserName(blockAss.getAssignment().getConstructionManage()).getLoginName());
+                    materialModule.setProjectId(blockAss.getProjectId());
+                    materialModule.setProjectName(blockAss.getProjectName());
+                    materialModule.setReserveProjectName(blockAss.getReserveProjectName());
+                    //保存项目储备项目名称,项目定义号,项目名称
+                    materialModuleService.save(materialModule);
+                    String procDefId = projectService.findDefId("sgys");
+                    //修改项目状态
+                    materialModuleService.updateConstructionStatus("1", blockAss.getReserveProjectName());
+                    // 启动流程
+                    ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                    String title = materialModule.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                    actTaskService.startProcess(p.getKey(), "sg_construction_process", materialModule.getId(), title, vars);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 132 - 24
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java

@@ -36,6 +36,11 @@ 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.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.entity.User;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
@@ -83,6 +88,10 @@ public class ConstructionController extends BaseController {
     private MaterialProjectService materialProjectService;
     @Autowired
     private MaterialInfoService materialInfoService;
+    @Autowired
+    private ShowListService showListService;
+    @Autowired
+    private NonPowerService nonPowerService;
 
     @ModelAttribute
     public Construction get(@RequestParam(required = false) String id) {
@@ -102,7 +111,6 @@ public class ConstructionController extends BaseController {
      */
     @RequestMapping(value = "start")
     public String form(Construction construction, Model model) {
-
         model.addAttribute("construction", construction);
         return "modules/sg/managementcenter/activiti/constructionForm";
     }
@@ -416,7 +424,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 农村政处开始页面
-     * */
+     */
     @RequestMapping(value = "ruralOffice")
     public String ruralOffice(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -425,7 +433,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 农村专职判断
-     * */
+     */
     @RequestMapping(value = "ruralJudge")
     public String ruralJudge(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -434,7 +442,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 农村上传文件
-     * */
+     */
     @RequestMapping(value = "ruralFiles")
     public String ruralFiles(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -443,7 +451,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 农村是否借款
-     * */
+     */
     @RequestMapping(value = "ruralLoan")
     public String ruralLoan(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -452,7 +460,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 农村是否支付
-     * */
+     */
     @RequestMapping(value = "ruralPays")
     public String ruralPays(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -461,7 +469,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 行政政处开始页面
-     * */
+     */
     @RequestMapping(value = "administrativeOffice")
     public String administrativeOffice(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -470,7 +478,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 行政专职判断
-     * */
+     */
     @RequestMapping(value = "administrativeJudge")
     public String administrativeJudge(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -479,7 +487,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 行政上传文件
-     * */
+     */
     @RequestMapping(value = "administrativeFiles")
     public String administrativeFiles(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -488,7 +496,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 行政是否借款
-     * */
+     */
     @RequestMapping(value = "administrativeLoan")
     public String administrativeLoan(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -497,7 +505,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 行政是否支付
-     * */
+     */
     @RequestMapping(value = "administrativePays")
     public String administrativePays(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -506,7 +514,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 民事政处开始页面
-     * */
+     */
     @RequestMapping(value = "civilOffice")
     public String civilOffice(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -515,7 +523,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 民事专职判断
-     * */
+     */
     @RequestMapping(value = "civilJudge")
     public String civilJudge(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -524,7 +532,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 民事上传文件
-     * */
+     */
     @RequestMapping(value = "civilFiles")
     public String civilFiles(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -533,7 +541,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 民事是否借款
-     * */
+     */
     @RequestMapping(value = "civilLoan")
     public String civilLoan(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -542,7 +550,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 民事是否支付
-     * */
+     */
     @RequestMapping(value = "civilPays")
     public String civilPays(Construction construction, Model model) {
         model.addAttribute("construction", construction);
@@ -551,7 +559,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 土建工程量数据列表
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "engineeringTable")
     public Map<String, Object> engineeringTable(EngineeringAmount engineeringAmount, HttpServletRequest request, HttpServletResponse response, Model model) {
@@ -561,7 +569,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 其它工程量数据列表
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "otherTable")
     public Map<String, Object> otherTable(OtherAmount otherAmount, HttpServletRequest request, HttpServletResponse response, Model model) {
@@ -572,7 +580,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 土建工程量修改页面
-     * */
+     */
     @RequestMapping(value = "editEngAmount")
     public String editEngAmount(EngineeringAmount engineeringAmount, Model model) {
         if (!"".equals(engineeringAmount.getId()) && engineeringAmount.getId() != null) {
@@ -584,7 +592,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 其它工程量修改页面
-     * */
+     */
     @RequestMapping(value = "editOther")
     public String editOther(OtherAmount otherAmount, Model model) {
         if (!"".equals(otherAmount.getId()) && otherAmount.getId() != null) {
@@ -594,9 +602,19 @@ public class ConstructionController extends BaseController {
         return "modules/sg/managementcenter/activiti/editOther";
     }
 
+
+    /**
+     * 政策超权限处理选择页面
+     */
+    @RequestMapping(value = "advancePolicy")
+    public String advancePolicy(Construction construction, Model model) {
+        model.addAttribute("construction", construction);
+        return "modules/sg/managementcenter/activiti/advancePolicy";
+    }
+
     /**
      * 土建工程量添加,修改
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "EngAmountSave")
     public AjaxJson EngAmountSave(EngineeringAmount engineeringAmount, Model model) throws Exception {
@@ -614,7 +632,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 其它工程量添加,修改
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "addOther")
     public AjaxJson addOther(OtherAmount otherAmount, Model model) throws Exception {
@@ -632,7 +650,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 土建工程量删除
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "delEngAmount")
     public AjaxJson delEngAmount(String id) {
@@ -644,7 +662,7 @@ public class ConstructionController extends BaseController {
 
     /**
      * 其它工程量删除
-     * */
+     */
     @ResponseBody
     @RequestMapping(value = "delOtherAmount")
     public AjaxJson delOtherAmount(String id) {
@@ -1204,4 +1222,94 @@ public class ConstructionController extends BaseController {
         j.setMsg("插入成功" + allFlag);
         return j;
     }
+
+    /**
+     * 政策超权限处理
+     */
+    @ResponseBody
+    @RequestMapping(value = "policySave")
+    public AjaxJson policySave(Construction construction, Model model) throws Exception {
+        AjaxJson j = new AjaxJson();
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(construction);
+        if (StringUtils.isNotBlank(errMsg)) {
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+        /**
+         * 流程审批
+         */
+        if (StringUtils.isBlank(construction.getId())) {
+            if ("".equals(construction.getProjectId())) {
+                j.setSuccess(false);
+                j.setMsg("请选择项目");
+                return j;
+            }
+            //更改项目的政策处理状态
+            constructionService.updatePolicyStatus(construction.getProjectName(), "2");
+            //根据项目名称查询项目状态及信息
+            Project byName = projectService.findByName(construction.getProjectName());
+            ShowList showList = new ShowList();
+            String projectId = byName.getProjectId();
+            String projectName = byName.getProjectName();
+            String reserveProjectName = byName.getReserveProjectName();
+            if (!"".equals(projectId) && !"".equals(projectName)) {
+                String acquisitionStatus = byName.getAcquisitionStatus();
+                if ("0".equals(acquisitionStatus)) {
+                    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.setMsg("超权限完成,已自动发送后续流程!");
+            } else {
+                j.setMsg("超权限完成,请补齐项目定义号及项目名称后自动发送流程");
+            }
+            // 启动流程
+            //定义vars用于指派流程走向
+            Map<String, Object> vars = Maps.newHashMap();
+            ProcessDefinition p = actProcessService.getProcessDefinition(construction.getAct().getProcDefId());
+            String title = construction.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+            construction.setId("必要数值id");
+            actTaskService.startProcessNew(p.getKey(), "xm_nonpower_process", construction.getId(), title, vars);
+            //新增或编辑表单保存
+
+            j.getBody().put("targetUrl", "/act/task/process/");
+        }
+        return j;
+    }
 }

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

@@ -235,6 +235,11 @@ public class UploadController extends BaseController {
 				upload.setPath("http://" + request.getServerName()  +upload.getPath());
 			}
 		}
+		List<UploadImages> list1 = page.getList();
+		for (UploadImages images : list1) {
+			String dictLabels = DictUtils.getDictLabel(images.getImgName(), "uploadFileType","");
+			images.setImgName(dictLabels);
+		}
 		return getBootstrapData(page);
 	}
 

+ 10 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/entity/MaterialProject.java

@@ -31,6 +31,8 @@ public class MaterialProject extends DataEntity<MaterialProject>{
     private String isSecondary;
     //归属年份
     private String attributionYear;
+    //项目是否可以进场状态
+    private String canEnter;
 
     private String arrageProject;//项目计划安排
     private String arrageProject1;//项目计划安排
@@ -143,6 +145,14 @@ public class MaterialProject extends DataEntity<MaterialProject>{
         this.attributionYear = attributionYear;
     }
 
+    public String getCanEnter() {
+        return canEnter;
+    }
+
+    public void setCanEnter(String canEnter) {
+        this.canEnter = canEnter;
+    }
+
     public String getIsSecondary() {
         return isSecondary;
     }

+ 1 - 4
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/MaterialProjectMapper.java

@@ -26,8 +26,5 @@ public interface MaterialProjectMapper extends BaseMapper<MaterialProject> {
 
     List<MaterialProject> findJugdeReserve(MaterialProject materialProject);
 
-    /**
-     *根据项目名称修改项目政策处理状态
-     * */
-    void updatePolicyStatus(String reserveProjectName);
+
 }

+ 3 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/xml/MaterialProjectMapper.xml

@@ -38,6 +38,7 @@
         <where>
             a.del_flag = #{DEL_FLAG_NORMAL}
             ${dataScope}
+            and secondPower = 0
             <if test="reserveCodes != null ">
                 AND a.reserve_code in
                 <foreach collection="reserveCodes" index="index" item="item" open="(" separator="," close=")">
@@ -328,6 +329,8 @@
     </update>
 
 
+
+
     <!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
     <select id="findUniqueByProperty" resultType="TestNote" statementType="STATEMENT">
         select *

+ 1 - 7
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/service/MaterialProjectService.java

@@ -118,11 +118,5 @@ public class MaterialProjectService extends CrudService<MaterialProjectMapper, M
 		return materialProjectMapper.findJugdeReserve(materialProject);
 	}
 
-	/**
-	 *根据项目名称修改项目政策处理状态
-	 * */
-	@Transactional(readOnly = false)
-	public void updatePolicyStatus(String reserveProjectName) {
-		materialProjectMapper.updatePolicyStatus(reserveProjectName);
-	}
+
 }

+ 56 - 45
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/web/MaterialProjectController.java

@@ -151,54 +151,65 @@ public class MaterialProjectController extends BaseController {
         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)) {
+        if (!"".equals(projectId) && !"".equals(projectName)) {
+            String reserveProjectName = materialProject.getReserveProjectName();
+            Project byName = projectService.findByName(materialProject.getReserveProjectName());
+            if ("2".equals(byName.getPolicyStatus())) {
+                String acquisitionStatus = byName.getAcquisitionStatus();
                 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.setTheNumber("1");
                     showList.setProjectName(projectName);
                     showList.setReserveProjectName(reserveProjectName);
+                    showList.setProjectId(projectId);
+                    showList.setsVersion(MyActiviUtils.findDic().getValue());
                     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);
                 }
-                //保存数据
-                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);
+                //判断是否需要发起土建领料流程(是否有土建工程量)
+                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("noPass", false);
+                        vars2.put("pass", true);
+                        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);
+                    }
+                }else {
+                    if ("0".equals(byName.getAdvanceStatus())) {
+                        NonPower nonPower = new NonPower();
+                        //修改项目基础信息土建流程状态
+                        projectService.updateAdvanceStart(reserveProjectName, "1");
+                        //启动土建流程
+                        Map<String, Object> vars2 = Maps.newHashMap();
+                        vars2.put("noPass", true);
+                        vars2.put("pass", false);
+                        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);
+                    }
                 }
             }
         }
@@ -324,7 +335,7 @@ public class MaterialProjectController extends BaseController {
     }
 
     /**
-     * 导入Excel数据
+     * 导入年度物资上报Excel数据-根据条件自动发送流程
      */
     @ResponseBody
     @RequiresPermissions("managementcenter:materialproject:import")
@@ -385,7 +396,7 @@ public class MaterialProjectController extends BaseController {
                 String projectName = pro.getProjectName();
                 String reserveProjectName = pro.getReserveProjectName();
                 Project byName = projectService.findByName(pro.getReserveProjectName());
-                if ("2".equals(byName.getStatus())) {
+                if ("2".equals(byName.getPolicyStatus())) {
                     String acquisitionStatus = byName.getAcquisitionStatus();
                     if ("0".equals(acquisitionStatus)) {
                         showList.setsVersion(MyActiviUtils.findDic().getValue());

+ 40 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/Project.java

@@ -44,6 +44,14 @@ public class Project extends DataEntity<Project> {
     private String preConstruction;
     //判断项目是否可以提前土建
     private String advanceConstruction;
+    //是否可以进场
+    private String canEnter;
+    //计划安排状态
+    private String arrageProject;
+    //是否二次涉电
+    private String secondPower;
+    //项目类型
+    private String projectType;
 
     public String getReserveProjectName() {
         return reserveProjectName;
@@ -188,4 +196,36 @@ public class Project extends DataEntity<Project> {
     public void setAdvanceConstruction(String advanceConstruction) {
         this.advanceConstruction = advanceConstruction;
     }
+
+    public String getCanEnter() {
+        return canEnter;
+    }
+
+    public void setCanEnter(String canEnter) {
+        this.canEnter = canEnter;
+    }
+
+    public String getArrageProject() {
+        return arrageProject;
+    }
+
+    public void setArrageProject(String arrageProject) {
+        this.arrageProject = arrageProject;
+    }
+
+    public String getSecondPower() {
+        return secondPower;
+    }
+
+    public void setSecondPower(String secondPower) {
+        this.secondPower = secondPower;
+    }
+
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
 }

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

@@ -5,10 +5,15 @@ 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.Construction;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.Quantity;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Assignment;
 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 org.apache.ibatis.annotations.Param;
+import sun.tools.tree.PreIncExpression;
 
 import java.util.List;
 
@@ -208,9 +213,9 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     Project findWZUser(String procInsId);
 
-    Project findJSUser(String procInsId);
+    Project findSGUser(String procInsId);
 
-    Project sgFindUser(String procInsId);
+    Project findJSUser(String procInsId);
 
     Project findUserById(String projectId);
 
@@ -231,4 +236,52 @@ public interface ProjectMapper extends BaseMapper<Project> {
      * 通过项目需求名称修改土建流程状态
      */
     void updateAdvanceStart(@Param("reserveProjectName")String reserveProjectName, @Param("numerical")String numerical);
+
+    //根据储备项目名称查询出所有的领料单数据
+    List<MaterialInfo> findAllInfo(String id);
+
+    //根据储备项目名称查询出所有的领料单数据
+    List<MaterialInfo> findWzInfo(String procInsId);
+
+    //根据储备项目名称查询出所有的领料单数据-施工流程
+    List<MaterialInfo> findSgInfo(String id);
+
+    //根据id查询项目的数据,包含停电线路,流转人员信息
+    Construction findBlockAss(String id);
+
+    Construction findWzAss(String id);
+
+    //根据id查询项目的数据,包含停电线路,流转人员信息-施工流程
+    Construction findSgBlockAss(String id);
+
+    //根据流程定义号获取项目信息添加项目二次涉电项目
+    Project findSgProject(String procInsId);
+
+    void insertSgProject(Project project);
+
+    Assignment findSgAss(String procInsId);
+
+    Quantity findSgQuantity(String procInsId);
+
+    void insertSgQuantity(Quantity quantity);
+
+    void updateSgStatus(@Param("status") String status,@Param("procInsId") String procInsId);
+
+    void updateTjStatus(@Param("status") String status, @Param("procInsId") String procInsId);
+
+    void updateWzStatus(@Param("status") String status, @Param("procInsId") String procInsId);
+
+    //通过流程定义号查询项目的土建及施工领料状态
+    Project findSgProcInsId(String procInsId);
+
+    //通过流程定义号查询项目的物资领料及项目进场状态
+    Project findWzProcInsId(String procInsId);
+
+    //通过流程定义号查询项目的物资领料及项目进场状态
+    Project findTjProcInsId(String procInsId);
+
+    void updateJsStatus(@Param("status") String status, @Param("reserveProjectName") String reserveProjectName);
+
+    void wzStatusByName(@Param("status") String status, @Param("reserveProjectName") String reserveProjectName);
+
 }

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

@@ -40,7 +40,7 @@
 		b.workAreaRemarks AS `basicInformation.workAreaRemarks`
     </sql>
     <sql id="assignmentColumns">
-            c.reserveProjectName as `assignment.reserveProjectName`,
+        c.reserveProjectName as `assignment.reserveProjectName`,
             c.disclosureType as `assignment.disclosureType`,
             c.projectReleaseBatch as `assignment.projectReleaseBatch`,
             c.deliveryDate as `assignment.deliveryDate`,
@@ -165,6 +165,8 @@
         on a.reserveProjectName = b.reserveProjectName
         <where>
             1 = 1
+            and
+            a.secondPower = 0
             <if test="reserveList != null and  reserveList !='' ">
                 and a.reserveProjectName in
                 <foreach collection="reserveList" item="item" index="index" open="(" separator="," close=")">
@@ -178,7 +180,7 @@
                 and a.projectId = #{projectId}
             </if>
             <if test="projectName !=null and projectName !=''">
-                and a.projectName  = #{projectName}
+                and a.projectName = #{projectName}
             </if>
             <if test="status!=null and status !=''">
                 and a.status = #{status}
@@ -207,6 +209,12 @@
             <if test="advanceConstruction!=null and advanceConstruction!=''">
                 and a.advanceConstruction = #{advanceConstruction}
             </if>
+            <if test="policyStatus!=null and policyStatus !=''">
+                and a.policyStatus = #{policyStatus}
+            </if>
+            <if test="canEnter != null and canEnter != '' ">
+                and a.canEnter = #{canEnter}
+            </if>
             ${dataScope}
         </where>
     </select>
@@ -220,6 +228,8 @@
         on a.reserveProjectName = c.reserveProjectName
         <where>
             1 = 1
+            and
+            a.secondPower = 0
             <if test="reserveList != null and  reserveList !='' ">
                 and a.reserveProjectName in
                 <foreach collection="reserveList" item="item" index="index" open="(" separator="," close=")">
@@ -242,6 +252,8 @@
         on a.reserveProjectName = d.reserveProjectName
         <where>
             1 = 1
+            and
+            a.secondPower = 0
             <if test="reserveList != null and  reserveList !='' ">
                 and a.reserveProjectName in
                 <foreach collection="reserveList" item="item" index="index" open="(" separator="," close=")">
@@ -261,6 +273,8 @@
         on a.projectId = e.projectId
         <where>
             1 = 1
+            and
+            a.secondPower = 0
             and a.projectid !='' and a.projectName !=''
             <if test="reserveList != null and  reserveList !='' ">
                 and a.projectId in
@@ -1045,6 +1059,87 @@
             )
         </foreach>
     </insert>
+    <insert id="insertSgProject">
+        insert into xm_material_project(
+            id,
+            create_by,
+            create_date,
+            update_by,
+            update_date,
+            remarks,
+            del_flag,
+            projectName,
+            projectId,
+            projectType,
+            attributionYear,
+            arrageProject,
+            secondPower,
+            reserveProjectName
+        )
+        values(
+                  #{id},
+                  #{createBy.id},
+                  #{createDate},
+                  #{updateBy.id},
+                  #{updateDate},
+                  #{remarks},
+                  #{delFlag},
+                  #{projectName},
+                  #{projectId},
+                  #{projectType},
+                  #{attributionYear},
+                  #{arrageProject},
+                  #{secondPower},
+                  #{reserveProjectName}
+         )ON DUPLICATE KEY UPDATE
+           update_by = #{updateBy.id},
+           update_date = #{updateDate}
+    </insert>
+    <insert id="insertSgQuantity">
+        insert into xm_project_quantity(
+            id,
+            create_by,
+            create_date,
+            update_by,
+            update_date,
+            del_flag,
+            remarks,
+            reserveProjectName,
+            includeAutomation,
+            wayOf,
+            assignmentStyle,
+            operationSubstation,
+            namingNumber,
+            engineeringAcceptance,
+            electricalAcceptance,
+            blackoutLine,
+            outageRange,
+            policyIssues,
+            processingType,
+            processingDescription
+        ) values (
+             #{id},
+             #{createBy.id},
+             #{createDate},
+             #{updateBy.id},
+             #{updateDate},
+             #{delFlag},
+             #{remarks},
+             #{reserveProjectName},
+             #{includeAutomation},
+             #{wayOf},
+             #{assignmentStyle},
+             #{operationSubstation},
+             #{namingNumber},
+             #{engineeringAcceptance},
+             #{electricalAcceptance},
+             #{blackoutLine},
+             #{outageRange},
+             #{policyIssues},
+             #{processingType},
+             #{processingDescription}
+        )
+    </insert>
 
     <update id="update">
         UPDATE xm_project_details
@@ -1227,75 +1322,66 @@
         select
         <include refid="assignmentColumns"/>
         FROM xm_project_assignment c
-        WHERE reserveProjectName = (select reserveProjectName from md_acquisition_process where proc_ins_id = #{procInsId});
+        WHERE reserveProjectName = (
+        select reserveProjectName
+        from md_acquisition_process
+        where proc_ins_id = #{procInsId});
+    </select>
+
+    <select id="findSGUser" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+        select
+        <include refid="assignmentColumns"/>
+        FROM xm_project_assignment c
+        WHERE reserveProjectName = (
+        select reserveProjectName
+        from sg_construction_process
+        where proc_ins_id = #{procInsId});
     </select>
 
     <select id="findJSUser" 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
+        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 require_name = (select requireName from xm_settlement_process where proc_ins_id = #{procInsId});
     </select>
 
-    <select id="sgFindUser" 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 require_name = (select project_name from sg_construction_process where proc_ins_id = #{procInsId});
-    </select>
 
     <select id="findUserById" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
-        select id
-             , project_name
-             , demand_unit
-             , project_manage_role
-             , distribution_engineering
-             , distribution_materials
-             , distribution_system
-             , distribution_policy
-             , management_leader
-             , run_unit
-             , run_unit_role
-             , through_research_role
-             , construction_unit
-             , construction_unit_role
-             , construction_unit_manage
-             , construction_unit_leader
-             , design_unit
-             , design_unit_manage
-             , design_unit_leader
+        select id,
+               project_name,
+               demand_unit,
+               project_manage_role,
+               distribution_engineering,
+               distribution_materials,
+               distribution_system,
+               distribution_policy,
+               management_leader,
+               run_unit,
+               run_unit_role,
+               through_research_role,
+               construction_unit,
+               construction_unit_role,
+               construction_unit_manage,
+               construction_unit_leader,
+               design_unit,
+               design_unit_manage,
+               design_unit_leader
         FROM xm_project_details
         WHERE id = #{projectId}
     </select>
@@ -1378,7 +1464,9 @@
         where b.proc_ins_id = #{procInsId};
     </select>
     <select id="findByName" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
-        select a.reserveProjectName,
+        select
+        a.id,
+        a.reserveProjectName,
         a.projectId,
         a.projectName,
         a.status,
@@ -1388,6 +1476,7 @@
         a.settStatus,
         a.policyStatus,
         a.whetherCloseStatus,
+        a.canEnter,
         <include refid="assignmentColumns"/>
         from xm_material_project a
         LEFT JOIN xm_construction_clarificaiton b
@@ -1395,7 +1484,6 @@
         left join xm_project_assignment c
         on a.reserveProjectName = c.reserveProjectName
         where a.reserveProjectName = #{reserveProjectName};
-
     </select>
     <select id="findMaterialProject"
             resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
@@ -1404,4 +1492,224 @@
         where id = #{id};
     </select>
 
+    <select id="findAllInfo"
+            resultType="com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo">
+        select project_name,
+               material_code,
+               material_name,
+               extend_description,
+               total_count,
+               weight_kg,
+               weight_ton,
+               supply_type
+        from xm_material_data
+        where project_name = (select reserveProjectName from xm_material_project where id = #{id})
+    </select>
+
+    <select id="findSgInfo"
+            resultType="com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo">
+        select project_name,
+               material_code,
+               material_name,
+               extend_description,
+               total_count,
+               weight_kg,
+               weight_ton,
+               supply_type
+        from xm_material_data
+        where project_name = (select reserveProjectName from sg_construction_process where id = #{id})
+    </select>
+
+    <select id="findBlockAss" resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction">
+        SELECT
+        a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        xpq.blackoutLine as `quantity.blackoutLine`,
+        <include refid="assignmentColumns"/>
+        FROM
+        xm_material_project a
+        left join xm_project_quantity xpq
+        on a.reserveProjectName = xpq.reserveProjectName
+        LEFT JOIN xm_project_assignment c
+        ON a.reserveProjectName = c.reserveProjectName
+        WHERE xpq.reserveProjectName = (
+        SELECT reserveProjectName
+        FROM xm_material_project
+        WHERE id = #{id}
+        )
+    </select>
+
+    <select id="findWzAss" resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction">
+        SELECT
+        a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        xpq.blackoutLine as `quantity.blackoutLine`,
+        <include refid="assignmentColumns"/>
+        FROM
+        xm_material_project a
+        left join xm_project_quantity xpq
+        on a.reserveProjectName = xpq.reserveProjectName
+        LEFT JOIN xm_project_assignment c
+        ON a.reserveProjectName = c.reserveProjectName
+        WHERE xpq.reserveProjectName = (
+        SELECT reserveProjectName
+        FROM md_acquisition_process
+        WHERE proc_ins_id = #{procInsId}
+        )
+    </select>
+
+    <select id="findSgBlockAss"
+            resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction">
+        SELECT
+        a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        xpq.blackoutLine as `quantity.blackoutLine`,
+        <include refid="assignmentColumns"/>
+        FROM
+        xm_material_project a
+        left join xm_project_quantity xpq
+        on a.reserveProjectName = xpq.reserveProjectName
+        LEFT JOIN xm_project_assignment c
+        ON a.reserveProjectName = c.reserveProjectName
+        WHERE xpq.reserveProjectName = (
+        SELECT reserveProjectName
+        FROM sg_construction_process
+        WHERE id = #{id}
+        )
+    </select>
+
+    <select id="findSgProject" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+        select *
+        from xm_material_project
+        where reserveProjectName = (
+            select reserveProjectName
+            from sg_construction_process
+            where proc_ins_id = #{procInsId});
+    </select>
+
+    <select id="findSgAss" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Assignment">
+        select *
+        from xm_project_assignment
+        where reserveProjectName = (
+            select reserveProjectName
+            from sg_construction_process
+            where proc_ins_id = #{procInsId});
+    </select>
+
+    <select id="findSgQuantity" resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.Quantity">
+        select *
+        from xm_project_quantity
+        where reserveProjectName =(
+            select reserveProjectName
+            from sg_construction_process
+            where proc_ins_id = #{procInsId});
+    </select>
+
+    <update id="updateSgStatus">
+        update xm_material_project
+        set constructionStatus = #{status}
+        where reserveProjectName =(
+            select reserveProjectName
+            from sg_construction_process
+            where proc_ins_id = #{procInsId});
+    </update>
+    <update id="updateTjStatus">
+        update xm_material_project
+        set advanceStatus = #{status}
+        where reserveProjectName =(
+            select reserveProjectName
+            from xm_nonpower_process
+            where proc_ins_id = #{procInsId});
+    </update>
+    <update id="updateWzStatus">
+        update xm_material_project
+        set acquisitionStatus = #{status}
+        where reserveProjectName =(
+            select reserveProjectName
+            from md_acquisition_process
+            where proc_ins_id = #{procInsId});
+    </update>
+    <select id="findSgProcInsId" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+        select a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        a.constructionStatus,
+        a.advanceStatus,
+        <include refid="assignmentColumns"/>
+        from xm_material_project a
+        left join xm_project_assignment c
+        on a.reserveProjectName = c.reserveProjectName
+        where
+        a.reserveProjectName =(
+            SELECT
+            reserveProjectName
+            FROM
+            sg_construction_process
+            WHERE
+            proc_ins_id = #{procInsId})
+    </select>
+    <select id="findWzProcInsId" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+        select a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        a.acquisitionStatus,
+        a.canEnter,
+        xpq.blackoutLine as `quantity.blackoutLine`,
+        <include refid="assignmentColumns"/>
+        from xm_material_project a
+        left join xm_project_assignment c
+        on a.reserveProjectName = c.reserveProjectName
+        left join xm_project_quantity xpq
+        on a.reserveProjectName = xpq.reserveProjectName
+        where a.reserveProjectName =(
+        select reserveProjectName
+        from md_acquisition_process
+        where proc_ins_id = #{procInsId})
+    </select>
+    <select id="findTjProcInsId" resultType="com.jeeplus.modules.sg.managementcenter.project.entity.Project">
+        select a.reserveProjectName,
+        a.projectId,
+        a.projectName,
+        a.constructionStatus,
+        a.advanceStatus,
+        <include refid="assignmentColumns"/>
+        from xm_material_project a
+        left join xm_project_assignment c
+        on a.reserveProjectName = c.reserveProjectName
+        where
+        a.reserveProjectName =(
+        SELECT
+        reserveProjectName
+        FROM
+        xm_nonpower_process
+        WHERE
+        proc_ins_id = #{procInsId})
+    </select>
+
+    <select id="findWzInfo"
+            resultType="com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo">
+        select project_name,
+               material_code,
+               material_name,
+               extend_description,
+               total_count,
+               weight_kg,
+               weight_ton,
+               supply_type
+        from xm_material_data
+        where project_name = (select reserveProjectName from md_acquisition_process where proc_ins_id = #{porcInsId})
+    </select>
+    <update id="updateJsStatus">
+        update xm_material_project
+        set settStatus = #{status}
+        where reserveProjectName =#{reserveProjectName};
+    </update>
+    <update id="wzStatusByName">
+        update xm_material_project
+        set acquisitionStatus = #{status}
+        where reserveProjectName =#{reserveProjectName};
+    </update>
 </mapper>

+ 349 - 240
src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java

@@ -3,11 +3,16 @@
  */
 package com.jeeplus.modules.sg.managementcenter.project.service;
 
+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.entity.OtherAmount;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.Quantity;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Assignment;
 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.mapper.ProjectMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -19,6 +24,7 @@ import java.util.List;
 
 /**
  * 项目基础信息表单
+ *
  * @author lem
  * @version 2020-04-29
  */
@@ -26,250 +32,256 @@ import java.util.List;
 @Transactional(readOnly = true)
 public class ProjectService extends CrudService<ProjectMapper, Project> {
     @Autowired
-	private ProjectMapper projectMapper;
+    private ProjectMapper projectMapper;
 
-	@Override
-	public Page<Project> findPage(Page<Project> page, Project entity) {
-		return super.findPage(page, entity);
-	}
+    @Override
+    public Page<Project> findPage(Page<Project> page, Project entity) {
+        return super.findPage(page, entity);
+    }
 
-	public Page<Project> findAssPage(Page<Project> page, Project project) {
-		dataRuleFilter(project);
-		project.setPage(page);
-		page.setList(mapper.findAssList(project));
-		return page;
-	}
+    public Page<Project> findAssPage(Page<Project> page, Project project) {
+        dataRuleFilter(project);
+        project.setPage(page);
+        page.setList(mapper.findAssList(project));
+        return page;
+    }
 
-	/**
-	 * 交底计划安排
-	 */
-	public Page<Project> findPlanPage(Page<Project> page, Project project) {
-		dataRuleFilter(project);
-		project.setPage(page);
-		page.setList(mapper.findPlanList(project));
-		return page;
-	}
+    /**
+     * 交底计划安排
+     */
+    public Page<Project> findPlanPage(Page<Project> page, Project project) {
+        dataRuleFilter(project);
+        project.setPage(page);
+        page.setList(mapper.findPlanList(project));
+        return page;
+    }
 
-	/**
-	 * 项目立项信息
-	 */
-	public Page<Project> findApprovalPage(Page<Project> page, Project project) {
-		dataRuleFilter(project);
-		project.setPage(page);
-		page.setList(mapper.findApprovalList(project));
-		return page;
-	}
+    /**
+     * 项目立项信息
+     */
+    public Page<Project> findApprovalPage(Page<Project> page, Project project) {
+        dataRuleFilter(project);
+        project.setPage(page);
+        page.setList(mapper.findApprovalList(project));
+        return page;
+    }
 
 
+    /**
+     * 修改项目前期基础信息
+     */
+    @Transactional(readOnly = false)
+    public void insertBasic(Project project) {
+        project.preInsert();
+        projectMapper.insertBasic(project);
+    }
 
-	/**
-	 * 修改项目前期基础信息
-	 * */
-	@Transactional(readOnly = false)
-	public void insertBasic(Project project) {
-		project.preInsert();
-		projectMapper.insertBasic(project);
-	}
+    /**
+     * 导入批量前期基础信息
+     */
+    @Transactional(readOnly = false)
+    public void insertBasicList(List<Project> project) {
+        for (Project p : project) {
+            p.preInsert();
+        }
+        projectMapper.insertBasicList(project);
+    }
 
-	/**
-	 * 导入批量前期基础信息
-	 * */
-	@Transactional(readOnly = false)
-	public void insertBasicList(List<Project> project) {
-		for (Project p : project) {
-			p.preInsert();
-		}
-		projectMapper.insertBasicList(project);
-	}
+    /**
+     * 批量修改导入的项目信息
+     */
+    @Transactional(readOnly = false)
+    public void updateBasicList(List<Project> project) {
+        projectMapper.updateBasicList(project);
+    }
 
-	/**
-	 * 批量修改导入的项目信息
-	 * */
-	@Transactional(readOnly = false)
-	public void updateBasicList(List<Project> project) {
-		projectMapper.updateBasicList(project);
-	}
+    /**
+     * 导入批量施工任务分配信息
+     */
+    @Transactional(readOnly = false)
+    public void insertAssList(List<Project> project) {
+        for (Project p : project) {
+            p.preInsert();
+        }
+        projectMapper.insertAssList(project);
+    }
 
-	/**
-	 * 导入批量施工任务分配信息
-	 * */
-	@Transactional(readOnly = false)
-	public void insertAssList(List<Project> project) {
-		for (Project p : project) {
-			p.preInsert();
-		}
-		projectMapper.insertAssList(project);
-	}
+    /**
+     * 导入批量项目立项信息
+     */
+    @Transactional(readOnly = false)
+    public void insertApprovalList(List<Project> project) {
+        for (Project p : project) {
+            p.preInsert();
+        }
+        projectMapper.insertApprovalList(project);
+    }
 
-	/**
-	 * 导入批量项目立项信息
-	 */
-	@Transactional(readOnly = false)
-	public void insertApprovalList(List<Project> project) {
-		for (Project p : project) {
-			p.preInsert();
-		}
-		projectMapper.insertApprovalList(project);
-	}
+    /**
+     * 批量修改导入的施工任务分配信息
+     */
+    @Transactional(readOnly = false)
+    public void updateAssList(List<Project> project) {
+        projectMapper.updateAssList(project);
+    }
 
-	/**
-	 * 批量修改导入的施工任务分配信息
-	 * */
-	@Transactional(readOnly = false)
-	public void updateAssList(List<Project> project) {
-		projectMapper.updateAssList(project);
-	}
+    /**
+     * 批量修改导入的项目立项信息
+     */
+    @Transactional(readOnly = false)
+    public void updateApprovalList(List<Project> project) {
+        projectMapper.updateApprovalList(project);
+    }
 
-	/**
-	 * 批量修改导入的项目立项信息
-	 */
-	@Transactional(readOnly = false)
-	public void updateApprovalList(List<Project> project) {
-		projectMapper.updateApprovalList(project);
-	}
+    /**
+     * 导入批量交底计划安排
+     */
+    @Transactional(readOnly = false)
+    public void insertPlanList(List<Project> project) {
+        for (Project p : project) {
+            p.preInsert();
+        }
+        projectMapper.insertPlanList(project);
+    }
 
-	/**
-	 * 导入批量交底计划安排
-	 * */
-	@Transactional(readOnly = false)
-	public void insertPlanList(List<Project> project) {
-		for (Project p : project) {
-			p.preInsert();
-		}
-		projectMapper.insertPlanList(project);
-	}
+    /**
+     * 批量修改导入的交底计划安排
+     */
+    @Transactional(readOnly = false)
+    public void updatePlanList(List<Project> project) {
+        projectMapper.updatePlanList(project);
+    }
 
-	/**
-	 * 批量修改导入的交底计划安排
-	 * */
-	@Transactional(readOnly = false)
-	public void updatePlanList(List<Project> project) {
-		projectMapper.updatePlanList(project);
-	}
+    /**
+     * 修改项目前期基本信息
+     */
+    @Transactional(readOnly = false)
+    public void updateBasic(Project project) {
+        projectMapper.updateBasic(project);
+    }
 
-	/**
-	 * 修改项目前期基本信息
-	 */
-	@Transactional(readOnly = false)
-	public void updateBasic(Project project) {
-		projectMapper.updateBasic(project);
-	}
+    /**
+     * 根据名称查询项目前期基本信息
+     */
+    public Project findProByName(String name) {
+        return projectMapper.findProByName(name);
+    }
 
-	/**
-	 * 根据名称查询项目前期基本信息
-	 */
-	public Project findProByName(String name) {
-		return projectMapper.findProByName(name);
-	}
+    /**
+     * 根据名称查询施工任务分配信息
+     */
+    public Project findAssByName(String name) {
+        return projectMapper.findAssByName(name);
+    }
 
-	/**
-	 * 根据名称查询施工任务分配信息
-	 */
-	public Project findAssByName(String name) {
-		return projectMapper.findAssByName(name);
-	}
+    /**
+     * 根据名称查询交底计划安排信息
+     */
+    public Project findPlanByName(String name) {
+        return projectMapper.findPlanByName(name);
+    }
 
-	/**
-	 * 根据名称查询交底计划安排信息
-	 */
-	public Project findPlanByName(String name) {
-		return projectMapper.findPlanByName(name);
-	}
+    /**
+     * 根据名称查询该计划的id,用于流程在表中添加procInsId
+     */
+    public String findPlanIdByName(String name) {
+        return projectMapper.findPlanIdByName(name);
+    }
 
-	/**
-	 * 根据名称查询该计划的id,用于流程在表中添加procInsId
-	 */
-	public String findPlanIdByName(String name) {
-		return projectMapper.findPlanIdByName(name);
-	}
+    /**
+     * 根据名称查询项目立项信息
+     */
+    public Project findApprovalByName(String name) {
+        return projectMapper.findApprovalByName(name);
+    }
 
-	/**
-	 * 根据名称查询项目立项信息
-	 */
-	public Project findApprovalByName(String name) {
-		return projectMapper.findApprovalByName(name);
-	}
 
+    /**
+     * 根据年度物资上报id获取施工任务分配信息
+     */
+    public Project getAss(Project project) {
+        return projectMapper.getAss(project);
+    }
 
-	/**
-	 * 根据年度物资上报id获取施工任务分配信息
-	 */
-	public Project getAss(Project project) {
-		return projectMapper.getAss(project);
-	}
+    /**
+     * 根据年度物资上报id获取交底计划安排
+     */
+    public Project getPlan(Project project) {
+        return projectMapper.getPlan(project);
+    }
 
-	/**
-	 * 根据年度物资上报id获取交底计划安排
-	 */
-	public Project getPlan(Project project) {
-		return projectMapper.getPlan(project);
-	}
+    /**
+     * 根据年度物资上报id获取项目立项信息信息
+     */
+    public Project getApproval(Project project) {
+        return projectMapper.getApproval(project);
+    }
 
-	/**
-	 * 根据年度物资上报id获取项目立项信息信息
-	 */
-	public Project getApproval(Project project) {
-		return projectMapper.getApproval(project);
-	}
+    /**
+     * 获取需求单位
+     */
+    public String findDemandUnit(String name) {
+        return projectMapper.findDemandUnit(name);
+    }
 
-	/**
-	 * 获取需求单位
-	 */
-	public String findDemandUnit(String name) {
-		return projectMapper.findDemandUnit(name);
-	}
+    /**
+     * 通过流程定义号获取需求单位
+     */
+    public String demandByProcInsId(String procInsId) {
+        return projectMapper.demandByProcInsId(procInsId);
+    }
 
-	/**
-	 * 通过流程定义号获取需求单位
-	 */
-	public String demandByProcInsId(String procInsId) {
-		return projectMapper.demandByProcInsId(procInsId);
-	}
 
+    /**
+     * 根据id组查询所有项目信息
+     */
+    public List<Project> findListById(String[] projectIds) {
+        return projectMapper.findListById(projectIds);
+    }
 
-	/**
-	 * 根据id组查询所有项目信息
-	 * */
-	public List<Project> findListById(String[] projectIds) {
-		return projectMapper.findListById(projectIds);
-	}
 
+    /**
+     * 通过id获取项目暂定名称
+     */
+    public String reserveProjectNameById(String id) {
+        return projectMapper.reserveProjectNameById(id);
+    }
 
-	/**
-	 * 通过id获取项目暂定名称
-	 */
-	public String reserveProjectNameById(String id) {
-		return projectMapper.reserveProjectNameById(id);
-	}
+    /**
+     * 通过流程定实例id查询项目流转人员信息
+     */
+    public Project findUser(String procInsId) {
+        return projectMapper.findUser(procInsId);
+    }
 
-	/**
-	 * 通过流程定实例id查询项目流转人员信息
-	 * */
-	public Project findUser(String procInsId) {
-		return projectMapper.findUser(procInsId);
-	}
+    /**
+     * 通过流程定义id查询项目流转人员信息-土建流程
+     */
+    public Project findTJUser(String procInsId) {
+        return projectMapper.findTJUser(procInsId);
+    }
 
-	/**
-	 * 通过流程定义id查询项目流转人员信息-土建流程
-	 * */
-	public Project findTJUser(String procInsId) {
-		return projectMapper.findTJUser(procInsId);
-	}
+    /**
+     * 通过流程定义id查询项目流转人员信息-物资流程
+     */
+    public Project findWZUser(String procInsId) {
+        return projectMapper.findWZUser(procInsId);
+    }
 
-	/**
-	 * 通过流程定义id查询项目流转人员信息-物资流程
-	 * */
-	public Project findWZUser(String procInsId) {
-		return projectMapper.findWZUser(procInsId);
-	}
+    /**
+     * 通过流程定义id查询项目流转人员信息-施工流程
+     */
+    public Project findSGUser(String procInsId) {
+        return projectMapper.findSGUser(procInsId);
+    }
 
-	/**
-	 * 根据储备项目名称查询项目的
-	 */
-	@Transactional(readOnly = false)
-	public void updateAdvCon(String reserveProjectName, String status) {
-		projectMapper.updateAdvCon(reserveProjectName, status);
-	}
+    /**
+     * 根据储备项目名称查询项目的
+     */
+    @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;
@@ -411,40 +423,137 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		return projectMapper.findAllUser();
 	}*/
 
-	/**
-	 * 通过key值查找对应的流程id
-	 * */
-	public String findDefId(String key) {
-		return projectMapper.findDefId(key);
-	}
+    /**
+     * 通过key值查找对应的流程id
+     */
+    public String findDefId(String key) {
+        return projectMapper.findDefId(key);
+    }
 
-	/**
-	 * 根据流程定义号获取项目信息
-	 * */
-	public Project findByProcInsId(String procInsId) {
-		return projectMapper.findByProcInsId(procInsId);
-	}
+    /**
+     * 根据流程定义号获取项目信息
+     */
+    public Project findByProcInsId(String procInsId) {
+        return projectMapper.findByProcInsId(procInsId);
+    }
 
-	/**
-	 * 通过储备项目名称查询项目信息
-	 */
-	public Project findByName(String reserveProjectName) {
-		return projectMapper.findByName(reserveProjectName);
-	}
+    /**
+     * 通过储备项目名称查询项目信息
+     */
+    public Project findByName(String reserveProjectName) {
+        return projectMapper.findByName(reserveProjectName);
+    }
 
 
-	/**
-	 * 获取项目基础信息根据id
-	 */
-	public Project findMaterialProject(String id) {
-		return projectMapper.findMaterialProject(id);
-	}
+    /**
+     * 获取项目基础信息根据id
+     */
+    public Project findMaterialProject(String id) {
+        return projectMapper.findMaterialProject(id);
+    }
+
+    /**
+     * 通过项目需求名称修改土建状态
+     */
+    @Transactional(readOnly = false)
+    public void updateAdvanceStart(String reserveProjectName, String numerical) {
+        projectMapper.updateAdvanceStart(reserveProjectName, numerical);
+    }
+
+    //根据储备项目名称查询出所有的领料单数据
+    public List<MaterialInfo> findAllInfo(String id) {
+        return projectMapper.findAllInfo(id);
+    }
+
+    //根据储备项目名称查询出所有的领料单数据
+    public List<MaterialInfo> findWzInfo(String procInsId) {
+        return projectMapper.findWzInfo(procInsId);
+    }
+
+    //根据储备项目名称查询出所有的领料单数据-施工流程
+    public List<MaterialInfo> findSgInfo(String id) {
+        return projectMapper.findSgInfo(id);
+    }
+
+    //根据id查询项目的数据,包含停电线路,流转人员信息
+    public Construction findBlockAss(String id) {
+        return projectMapper.findBlockAss(id);
+    }
+
+    //根据id查询项目的数据,包含停电线路,流转人员信息
+    public Construction findWzAss(String procInsId) {
+        return projectMapper.findWzAss(procInsId);
+    }
+
+    //根据id查询项目的数据,包含停电线路,流转人员信息-施工流程
+    public Construction findSgBlockAss(String id) {
+        return projectMapper.findSgBlockAss(id);
+    }
+
+    //根据流程定义号获取项目信息添加项目二次涉电项目
+    public Project findSgProject(String procInsId) {
+        return projectMapper.findSgProject(procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void insertSgProject(Project project) {
+        project.preInsert();
+        projectMapper.insertSgProject(project);
+    }
+
+    public Assignment findSgAss(String procInsId) {
+        return projectMapper.findSgAss(procInsId);
+    }
+
+    public Quantity findSgQuantity(String procInsId) {
+        return projectMapper.findSgQuantity(procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void insertSgQuantity(Quantity quantity) {
+        quantity.preInsert();
+        projectMapper.insertSgQuantity(quantity);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateSgStatus(String status, String procInsId) {
+        projectMapper.updateSgStatus(status, procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateTjStatus(String status, String procInsId) {
+        projectMapper.updateTjStatus(status, procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateWzStatus(String status, String procInsId) {
+        projectMapper.updateWzStatus(status, procInsId);
+    }
+
+    //通过流程定义号查询项目的土建及施工领料状态
+    public Project findSgProcInsId(String procInsId) {
+        return projectMapper.findSgProcInsId(procInsId);
+    }
+
+    //通过流程定义号查询项目的物资领料及项目进场状态
+    public Project findWzProcInsId(String procInsId) {
+        return projectMapper.findWzProcInsId(procInsId);
+    }
+
+    //通过流程定义号查询项目的物资领料及项目进场状态
+    public Project findTjProcInsId(String procInsId) {
+        return projectMapper.findTjProcInsId(procInsId);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateJsStatus(@Param("status") String status, @Param("reserveProjectName") String reserveProjectName) {
+        projectMapper.updateJsStatus(status, reserveProjectName);
+    }
+
+    @Transactional(readOnly = false)
+    public void wzStatusByName(@Param("status") String status, @Param("reserveProjectName") String reserveProjectName) {
+        projectMapper.wzStatusByName(status, reserveProjectName);
+    }
+
 
-	/**
-	 * 通过项目需求名称修改土建状态
-	 */
-	@Transactional(readOnly = false)
-	public void updateAdvanceStart(String reserveProjectName, String numerical) {
-		projectMapper.updateAdvanceStart(reserveProjectName, numerical);
-	}
 }

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

@@ -256,7 +256,7 @@ public class ProjectController extends BaseController {
     }
 
     /**
-     * 施工模块项目选择框
+     * 土建流程项目选择
      */
     @ResponseBody
     @RequestMapping(value = "materialDataPicking")
@@ -265,7 +265,21 @@ public class ProjectController extends BaseController {
 		project1.setPreConstruction(1);
 		//未进行施工流程
 		project1.setConstructionStatus("0");*/
-        project.setAdvanceConstruction("1");
+        project.setAdvanceStatus("0");
+        project.setStatus("2");
+        Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
+        return getBootstrapData(page);
+    }
+
+    /**
+     * 验收流程项目选择
+     */
+    @ResponseBody
+    @RequestMapping(value = "ysDataPicking")
+    public Map<String, Object> ysDataPicking(Project project, HttpServletRequest request, HttpServletResponse response, Model model) {
+        project.setAdvanceStatus("2");
+        project.setConstructionStatus("0");
+        project.setPreConstruction("1");
         Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
         return getBootstrapData(page);
     }
@@ -284,6 +298,17 @@ public class ProjectController extends BaseController {
     }
 
     /**
+     * 政策超权限选择框
+     */
+    @ResponseBody
+    @RequestMapping(value = "advancePolicyData")
+    public Map<String, Object> advancePolicyData(Project project, HttpServletRequest request, HttpServletResponse response, Model model) {
+        project.setPolicyStatus("1");
+        Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);
+        return getBootstrapData(page);
+    }
+
+    /**
      * 提前施工项目选择
      */
     @ResponseBody

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

@@ -1,48 +1,66 @@
 package com.jeeplus.modules.sg.materialmodule.activiti.entity;
 
 import com.jeeplus.core.persistence.ActEntity;
+import com.jeeplus.modules.sg.managementcenter.project.entity.BasicInformation;
+
 import java.util.Date;
 
 public class MaterialModule extends ActEntity<MaterialModule> {
     private static final long serialVersionUID = 1L;
-    // 流程实例编号
-    private String procInsId;
-    // 申请人
-    private String userName;
-    // 项目号
-    private String projectId;
-    // 项目名称
-    private String projectName;
-    // 手动填写的项目类型,包含非涉电项目才会有项目类型
-    private String projectType;
-    //记录当前应该查询的项目信息
-    private String nowProjectName;
-    //记录第几次发电
-    private Integer frequency;
-    //记录项目是否包含土建
-    private Integer nonPower;
-    //记录项目是否包含电气
-    private Integer electrical;
-    //记录项目是否包含涉电
-    private Integer power;
-
-    @Override
-    public String getProcInsId() {
-        return procInsId;
-    }
-
-    @Override
-    public void setProcInsId(String procInsId) {
-        this.procInsId = procInsId;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
+    //项目定义号
+    private  String projectId;
+    //项目名称
+    private  String projectName;
+    //储备项目名称
+    private  String reserveProjectName;
+    //项目基础信息
+    private BasicInformation basicInformation;
+    //建设单位
+    private String buildingUnit;
+    //工程编号
+    private String projectNumber;
+    //施工单位
+    private String constructionUnit;
+    //计划开工时间
+    private  String plannedStart;
+    //计划竣工时间
+    private  String plannedEnd;
+    //实际开工时间
+    private  String actualStart;
+    //实际竣工时间
+    private  String actualEnd;
+    //项目负责人
+    private  String projectManager;
+    //施工负责人
+    private  String personInCharge;
+    //线路名称
+    private String lineName;
+    //工作地点
+    private  String workPlace;
+    //参考作业方式
+    private  String operationMethod;
+    //参考新建工作量
+    private  String newWorkload;
+    //参考拆除工作量
+    private  String demolitionWorkload;
+    //开工作业方式
+    private  String wayOfWorking;
+    //开工新建工作量
+    private  String startConstruction;
+    //开工拆除工作量
+    private  String startLoad;
+    //开工交叉跨越
+    private  String startCrossover;
+    //竣工作业方式
+    private  String completedWork;
+    //竣工新建工作量
+    private  String endConstruction;
+    //竣工拆除工作量
+    private  String endLoad;
+    //竣工交叉跨越
+    private  String endCrossover;
+    //记录第几次涉电
+    private String severalTimes;
 
     public String getProjectId() {
         return projectId;
@@ -60,51 +78,203 @@ public class MaterialModule extends ActEntity<MaterialModule> {
         this.projectName = projectName;
     }
 
-    public String getProjectType() {
-        return projectType;
+    public String getReserveProjectName() {
+        return reserveProjectName;
+    }
+
+    public void setReserveProjectName(String reserveProjectName) {
+        this.reserveProjectName = reserveProjectName;
+    }
+
+    public String getPlannedStart() {
+        return plannedStart;
+    }
+
+    public void setPlannedStart(String plannedStart) {
+        this.plannedStart = plannedStart;
+    }
+
+    public String getPlannedEnd() {
+        return plannedEnd;
+    }
+
+    public void setPlannedEnd(String plannedEnd) {
+        this.plannedEnd = plannedEnd;
+    }
+
+    public String getActualStart() {
+        return actualStart;
+    }
+
+    public void setActualStart(String actualStart) {
+        this.actualStart = actualStart;
+    }
+
+    public String getActualEnd() {
+        return actualEnd;
+    }
+
+    public void setActualEnd(String actualEnd) {
+        this.actualEnd = actualEnd;
+    }
+
+    public String getProjectManager() {
+        return projectManager;
+    }
+
+    public void setProjectManager(String projectManager) {
+        this.projectManager = projectManager;
+    }
+
+    public String getPersonInCharge() {
+        return personInCharge;
+    }
+
+    public void setPersonInCharge(String personInCharge) {
+        this.personInCharge = personInCharge;
+    }
+
+    public String getWorkPlace() {
+        return workPlace;
+    }
+
+    public void setWorkPlace(String workPlace) {
+        this.workPlace = workPlace;
+    }
+
+    public String getOperationMethod() {
+        return operationMethod;
+    }
+
+    public void setOperationMethod(String operationMethod) {
+        this.operationMethod = operationMethod;
+    }
+
+    public String getNewWorkload() {
+        return newWorkload;
+    }
+
+    public void setNewWorkload(String newWorkload) {
+        this.newWorkload = newWorkload;
+    }
+
+    public String getDemolitionWorkload() {
+        return demolitionWorkload;
+    }
+
+    public void setDemolitionWorkload(String demolitionWorkload) {
+        this.demolitionWorkload = demolitionWorkload;
+    }
+
+    public String getWayOfWorking() {
+        return wayOfWorking;
+    }
+
+    public void setWayOfWorking(String wayOfWorking) {
+        this.wayOfWorking = wayOfWorking;
+    }
+
+    public String getStartConstruction() {
+        return startConstruction;
+    }
+
+    public void setStartConstruction(String startConstruction) {
+        this.startConstruction = startConstruction;
+    }
+
+    public String getStartLoad() {
+        return startLoad;
+    }
+
+    public void setStartLoad(String startLoad) {
+        this.startLoad = startLoad;
+    }
+
+    public String getStartCrossover() {
+        return startCrossover;
+    }
+
+    public void setStartCrossover(String startCrossover) {
+        this.startCrossover = startCrossover;
+    }
+
+    public String getCompletedWork() {
+        return completedWork;
+    }
+
+    public void setCompletedWork(String completedWork) {
+        this.completedWork = completedWork;
+    }
+
+    public String getEndConstruction() {
+        return endConstruction;
+    }
+
+    public void setEndConstruction(String endConstruction) {
+        this.endConstruction = endConstruction;
+    }
+
+    public String getEndLoad() {
+        return endLoad;
+    }
+
+    public void setEndLoad(String endLoad) {
+        this.endLoad = endLoad;
+    }
+
+    public String getEndCrossover() {
+        return endCrossover;
+    }
+
+    public void setEndCrossover(String endCrossover) {
+        this.endCrossover = endCrossover;
+    }
+
+    public BasicInformation getBasicInformation() {
+        return basicInformation;
     }
 
-    public void setProjectType(String projectType) {
-        this.projectType = projectType;
+    public void setBasicInformation(BasicInformation basicInformation) {
+        this.basicInformation = basicInformation;
     }
 
-    public String getNowProjectName() {
-        return nowProjectName;
+    public String getBuildingUnit() {
+        return buildingUnit;
     }
 
-    public void setNowProjectName(String nowProjectName) {
-        this.nowProjectName = nowProjectName;
+    public void setBuildingUnit(String buildingUnit) {
+        this.buildingUnit = buildingUnit;
     }
 
-    public Integer getFrequency() {
-        return frequency;
+    public String getProjectNumber() {
+        return projectNumber;
     }
 
-    public void setFrequency(Integer frequency) {
-        this.frequency = frequency;
+    public void setProjectNumber(String projectNumber) {
+        this.projectNumber = projectNumber;
     }
 
-    public Integer getNonPower() {
-        return nonPower;
+    public String getConstructionUnit() {
+        return constructionUnit;
     }
 
-    public void setNonPower(Integer nonPower) {
-        this.nonPower = nonPower;
+    public void setConstructionUnit(String constructionUnit) {
+        this.constructionUnit = constructionUnit;
     }
 
-    public Integer getElectrical() {
-        return electrical;
+    public String getLineName() {
+        return lineName;
     }
 
-    public void setElectrical(Integer electrical) {
-        this.electrical = electrical;
+    public void setLineName(String lineName) {
+        this.lineName = lineName;
     }
 
-    public Integer getPower() {
-        return power;
+    public String getSeveralTimes() {
+        return severalTimes;
     }
 
-    public void setPower(Integer power) {
-        this.power = power;
+    public void setSeveralTimes(String severalTimes) {
+        this.severalTimes = severalTimes;
     }
 }

+ 11 - 13
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java

@@ -6,8 +6,10 @@ package com.jeeplus.modules.sg.materialmodule.activiti.mapper;
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
 import com.jeeplus.modules.sg.advence.activiti.entity.Advance;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -18,7 +20,7 @@ import java.util.List;
 public interface MaterialModuleMapper extends BaseMapper<MaterialModule> {
 
     //根据项目id修改项目施工状态
-    void updateConstructionStatus(MaterialModule materialModule);
+    void updateConstructionStatus(@Param("status") String status,@Param("reserveProjectName") String reserveProjectName);
 
     //查询项目信息
     String findProjectName (String procInsId);
@@ -36,23 +38,19 @@ public interface MaterialModuleMapper extends BaseMapper<MaterialModule> {
     //查询当月所有的计划项目信息
     List<ConstructionProject> findMonthProject();
 
-    //根据list<项目名>查询所有的流程项目信息
-    List<MaterialModule> findMaterialProject(List<ConstructionProject> list);
-
     //修改计划项目的是否竣工状态
     void updateEndFlag(String projectName);
 
-    //根据流程是列id获取流程信息
-    MaterialModule getModuleById(String procInsId);
-
-    //根据流程实列id修改项目记录领料次数信息
-    void updateModuleById(MaterialModule module);
+    //修改配网电气含涉电报告数据-开工报告
+    void updateElectricalStart(MaterialModule materialModule);
 
-    void updateNonPower(String procInsId);
+    //修改配网电气含涉电报告数据-竣工报告
+    void updateElectricalEnd(MaterialModule materialModule);
 
-    void updateElectrical(String procInsId);
+    //根据储备项目名称查询项目的作业方式
+    String findPlanDay(String reserveProjectName);
 
-    void updatePower(String procInsId);
+    List<EngineeringAmount> findProcessList(String reserveProjectName);
 
-    MaterialModule findByProcInsId(String procInsId);
+    void updateSeveralTimes(@Param("procInsId") String procInsId,@Param("number") int number);
 }

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

@@ -3,7 +3,7 @@
 <mapper namespace="com.jeeplus.modules.sg.materialmodule.activiti.mapper.MaterialModuleMapper">
 
     <sql id="materialColumns">
-		a.id AS "id",
+        a.id AS "id",
 		a.create_by AS "createBy.id",
 		a.create_date AS "createDate",
 		a.update_by AS "updateBy.id",
@@ -15,13 +15,49 @@
 		a.project_id AS "projectId",
 		a.project_name AS "projectName",
 		a.project_type AS "projectType"
-	</sql>
+    </sql>
 
     <select id="get" resultType="MaterialModule">
-        SELECT
-        <include refid="materialColumns"/>
-        FROM sg_construction_process a
-        WHERE a.proc_ins_id = #{procInsId}
+        select a.id,
+               a.projectId,
+               a.projectName,
+               a.reserveProjectName,
+               a.severalTimes,
+               b.municipalCompany   as buildingUnit,
+               b.erpNo              as projectNumber,
+               xpa.constructionUnit as constructionUnit,
+               a.plannedStart,
+               a.plannedEnd,
+               a.projectManager,
+               a.actualStart,
+               a.actualEnd,
+               a.projectManager,
+               a.personInCharge,
+               b.lineName,
+               a.workPlace,
+               a.operationMethod,
+               a.newWorkload,
+               a.demolitionWorkload,
+               a.wayOfWorking,
+               a.startConstruction,
+               a.startLoad,
+               a.startCrossover,
+               a.completedWork,
+               a.endConstruction,
+               a.endLoad,
+               a.endCrossover,
+               xpq.engineeringAcceptance,
+               a.create_date
+        from sg_construction_process a
+                 LEFT JOIN xm_material_project p
+                            ON a.reserveProjectName = p.reserveProjectName
+                 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.id = #{id}
     </select>
 
     <select id="findList" resultType="MaterialModule">
@@ -44,55 +80,45 @@
         </update>-->
 
     <insert id="insert">
-		insert into sg_construction_process (
-			id,
-			create_by,
-			create_date,
-			update_by,
-			update_date,
-			del_flag,
-			remarks,
-			proc_ins_id,
-			user_name,
-			project_id,
-			project_name,
-			project_type,
-			frequency,
-			nonPower,
-			electrical,
-			power
-		)values
-			(
-			#{id},
-			#{createBy.id},
-			#{createDate},
-			#{updateBy.id},
-			#{updateDate},
-			#{delFlag},
-			#{remarks},
-			#{procInsId},
-			#{userName},
-			#{projectId},
-			#{projectName},
-			#{projectType},
-			#{frequency},
-			#{nonPower},
-			#{electrical},
-			#{power}
-			)
-	</insert>
+        insert into sg_construction_process (id,
+                                             create_by,
+                                             create_date,
+                                             update_by,
+                                             update_date,
+                                             del_flag,
+                                             remarks,
+                                             projectId,
+                                             projectName,
+                                             reserveProjectName)
+        values (#{id},
+                #{createBy.id},
+                #{createDate},
+                #{updateBy.id},
+                #{updateDate},
+                #{delFlag},
+                #{remarks},
+                #{projectId},
+                #{projectName},
+                #{reserveProjectName});
+    </insert>
 
     <update id="updateConstructionStatus">
-		update xm_project_details set construction_status = '1' where id=#{projectId}
-	</update>
+        update xm_material_project
+        set constructionStatus = #{status}
+        where reserveProjectName = #{reserveProjectName}
+    </update>
 
     <select id="findProjectName" resultType="string">
-		select project_name from sg_construction_process where proc_ins_id = #{procInsId};
-	</select>
+        select projectName
+        from sg_construction_process
+        where proc_ins_id = #{procInsId};
+    </select>
 
     <select id="findSpecificTime" resultType="java.util.Date">
-		select specificTime from ms_construction_project where projectName = #{projectName};
-	</select>
+        select specificTime
+        from ms_construction_project
+        where projectName = #{projectName};
+    </select>
 
     <select id="findUserId" parameterType="java.util.List" resultType="java.lang.String">
         select id from sys_user
@@ -106,146 +132,159 @@
 
     <select id="findProject"
             resultType="com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject">
-		select id
-		, create_by
-		, create_date
-		, update_by
-		, update_date
-		, del_flag
-		, remarks
-		, cityCompany
-		, countyCompany
-		, projectNature
-		, powerSupplyArea
-		, gridNumber
-		, cellNumber
-		, reserveNumber
-		, projectName
-		, projectNumber
-		, substationName
-		, lineName
-		, projectType
-		, instructions
-		, workAreaNote
-		, contructiveContent
-		, costEstimate
-		, whetherGraceProject
-		, projectNote
-		, constructionUnit
-		, arrangeTime
-		, specificTime
-		, projectStatus
-		from ms_construction_project
-		where projectName = #{projectName}
-	</select>
+        select id
+             , create_by
+             , create_date
+             , update_by
+             , update_date
+             , del_flag
+             , remarks
+             , cityCompany
+             , countyCompany
+             , projectNature
+             , powerSupplyArea
+             , gridNumber
+             , cellNumber
+             , reserveNumber
+             , projectName
+             , projectNumber
+             , substationName
+             , lineName
+             , projectType
+             , instructions
+             , workAreaNote
+             , contructiveContent
+             , costEstimate
+             , whetherGraceProject
+             , projectNote
+             , constructionUnit
+             , arrangeTime
+             , specificTime
+             , projectStatus
+        from ms_construction_project
+        where projectName = #{projectName}
+    </select>
 
     <insert id="conProject">
-		  INSERT INTO ms_construction_project(
-			id,
-			create_by,
-			create_date,
-			update_by,
-			update_date,
-			remarks,
-			del_flag,
-			cityCompany,
-			countyCompany,
-			projectNature,
-			powerSupplyArea,
-			gridNumber,
-			cellNumber,
-			reserveNumber,
-			projectName,
-			projectNumber,
-			substationName,
-			lineName,
-			projectType,
-			instructions,
-			workAreaNote,
-			contructiveContent,
-			costEstimate,
-			whetherGraceProject,
-			projectNote,
-			constructionUnit,
-			arrangeTime,
-			specificTime,
-			projectStatus,
-			endFlag
-		) VALUES
-		(
-			#{id},
-			#{createBy.id},
-			#{createDate},
-			#{updateBy.id},
-			#{updateDate},
-			#{remarks},
-			#{delFlag},
-			#{cityCompany},
-			#{countyCompany},
-			#{projectNature},
-			#{powerSupplyArea},
-			#{gridNumber},
-			#{cellNumber},
-			#{reserveNumber},
-			#{projectName},
-			#{projectNumber},
-			#{substationName},
-			#{lineName},
-			#{projectType},
-			#{instructions},
-			#{workAreaNote},
-			#{contructiveContent},
-			#{costEstimate},
-			#{whetherGraceProject},
-			#{projectNote},
-			#{constructionUnit},
-			#{arrangeTime},
-			#{specificTime},
-			#{projectStatus},
-			0
-		)
-	</insert>
+        INSERT INTO ms_construction_project(id,
+                                            create_by,
+                                            create_date,
+                                            update_by,
+                                            update_date,
+                                            remarks,
+                                            del_flag,
+                                            cityCompany,
+                                            countyCompany,
+                                            projectNature,
+                                            powerSupplyArea,
+                                            gridNumber,
+                                            cellNumber,
+                                            reserveNumber,
+                                            projectName,
+                                            projectNumber,
+                                            substationName,
+                                            lineName,
+                                            projectType,
+                                            instructions,
+                                            workAreaNote,
+                                            contructiveContent,
+                                            costEstimate,
+                                            whetherGraceProject,
+                                            projectNote,
+                                            constructionUnit,
+                                            arrangeTime,
+                                            specificTime,
+                                            projectStatus,
+                                            endFlag)
+        VALUES (#{id},
+                #{createBy.id},
+                #{createDate},
+                #{updateBy.id},
+                #{updateDate},
+                #{remarks},
+                #{delFlag},
+                #{cityCompany},
+                #{countyCompany},
+                #{projectNature},
+                #{powerSupplyArea},
+                #{gridNumber},
+                #{cellNumber},
+                #{reserveNumber},
+                #{projectName},
+                #{projectNumber},
+                #{substationName},
+                #{lineName},
+                #{projectType},
+                #{instructions},
+                #{workAreaNote},
+                #{contructiveContent},
+                #{costEstimate},
+                #{whetherGraceProject},
+                #{projectNote},
+                #{constructionUnit},
+                #{arrangeTime},
+                #{specificTime},
+                #{projectStatus},
+                0)
+    </insert>
 
     <select id="findMonthProject"
             resultType="com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject">
-		select projectName,endFlag from ms_construction_project where DATE_FORMAT( arrangeTime, '%Y%m' ) = DATE_FORMAT( CURDATE() , '%Y%m' )
-	</select>
-
-    <select id="findMaterialProject" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
-        select id,proc_ins_id, user_name, project_id, project_name, project_type from sg_construction_process where
-        project_name
-        (
-        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
-            #{item.projectName}
-        </foreach>
-        )
+        select projectName, endFlag
+        from ms_construction_project
+        where DATE_FORMAT(arrangeTime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
     </select>
 
+
     <update id="updateEndFlag">
-		update ms_construction_project set endFlag = 1 where projectName = #{projectName};
-	</update>
-
-    <select id="getModuleById" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
-		select project_name,proc_ins_id,now_project_name,frequency from sg_construction_process where proc_ins_id = #{procInsId};
-	</select>
-
-    <update id="updateModuleById">
-		update sg_construction_process set frequency = #{frequency},now_project_name=#{nowProjectName} where proc_ins_id = #{procInsId};
-	</update>
-
-    <update id="updateNonPower">
-		update sg_construction_process set nonPower = 0 where proc_ins_id  = #{procInsId}
-	</update>
-
-    <update id="updateElectrical">
-		update sg_construction_process set electrical = 0 where proc_ins_id  = #{procInsId}
-	</update>
-
-    <update id="updatePower">
-		update sg_construction_process set power = 0 where proc_ins_id  = #{procInsId}
-	</update>
-	
-	<select id="findByProcInsId" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
-		select project_name,proc_ins_id,nonPower,electrical,power from sg_construction_process where proc_ins_id  = #{procInsId};
-	</select>
+        update ms_construction_project
+        set endFlag = 1
+        where projectName = #{projectName};
+    </update>
+
+    <update id="updateElectricalStart">
+        update sg_construction_process
+        set plannedStart      = #{plannedStart},
+            plannedEnd        = #{plannedEnd},
+            projectManager    = #{projectManager},
+            personInCharge    = #{personInCharge},
+            workPlace         = #{workPlace},
+            wayOfWorking      = #{wayOfWorking},
+            startConstruction = #{startConstruction},
+            startLoad         = #{startLoad},
+            startCrossover    = #{startCrossover}
+        where id = #{id}
+    </update>
+
+    <update id="updateElectricalEnd">
+        update sg_construction_process
+        set actualStart      = #{actualStart},
+            actualEnd        = #{actualEnd},
+            completedWork    = #{completedWork},
+            endConstruction    = #{endConstruction},
+            endLoad         = #{endLoad},
+            endCrossover      = #{endCrossover}
+        where id = #{id}
+    </update>
+    <update id="updateSeveralTimes">
+        update sg_construction_process set severalTimes = #{number}
+        where proc_ins_id = #{procInsId}
+    </update>
+
+    <select id="findPlanDay" resultType="java.lang.String">
+        select projectPowerOut
+        from xm_project_plan_daily
+        where projectName = #{reserveProjectName}
+    </select>
+    <select id="findProcessList"
+            resultType="com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount">
+        select materialDescription as `civilMaterials` ,
+               mdUnits as `civilUnit`
+        from md_process_list
+        where procInsId in
+              (select proc_ins_id
+               from md_acquisition_process
+               where canEnter = '2'
+                 and reserveProjectName = #{reserveProjectName});
+    </select>
 </mapper>

+ 24 - 25
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java

@@ -7,9 +7,11 @@ import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.advence.activiti.entity.Advance;
 import com.jeeplus.modules.sg.advence.activiti.mapper.AdvanceMapper;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.mapper.MaterialModuleMapper;
+import com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -65,51 +67,48 @@ public class MaterialModuleService extends CrudService<MaterialModuleMapper, Mat
         return materialModuleMapper.findMonthProject();
     }
 
-    //根据list<项目名>查询所有的流程项目信息
-    public List<MaterialModule> findMaterialProject(List<ConstructionProject> list) {
-        return materialModuleMapper.findMaterialProject(list);
-    }
-
     //修改计划项目的是否竣工状态
     @Transactional(readOnly = false)
     public void updateEndFlag(String projectName) {
         materialModuleMapper.updateEndFlag(projectName);
     }
 
-    //根据流程是列id获取流程信息
-    public MaterialModule getModuleById(String procInsId) {
-        return materialModuleMapper.getModuleById(procInsId);
-    }
-
-    //根据流程实列id修改项目记录领料次数信息
-    @Transactional(readOnly = false)
-    public void updateModuleById(MaterialModule module) {
-        materialModuleMapper.updateModuleById(module);
-    }
-
     @Transactional(readOnly = false)
     @Override
     public void save(MaterialModule entity) {
-        materialModuleMapper.updateConstructionStatus(entity);
         super.save(entity);
     }
 
+    //根据项目id修改项目施工状态
     @Transactional(readOnly = false)
-    public void updateNonPower(String procInsId) {
-		materialModuleMapper.updateNonPower(procInsId);
+    public void updateConstructionStatus(String status, String reserveProjectName) {
+        materialModuleMapper.updateConstructionStatus(status, reserveProjectName);
     }
 
+    //修改配网电气含涉电报告数据-开工报告
     @Transactional(readOnly = false)
-    public void updateElectrical(String procInsId) {
-		materialModuleMapper.updateElectrical(procInsId);
+    public void updateElectricalStart(MaterialModule materialModule) {
+        materialModuleMapper.updateElectricalStart(materialModule);
     }
 
+    //修改配网电气含涉电报告数据-竣工报告
     @Transactional(readOnly = false)
-    public void updatePower(String procInsId) {
-		materialModuleMapper.updatePower(procInsId);
+    public void updateElectricalEnd(MaterialModule materialModule) {
+        materialModuleMapper.updateElectricalEnd(materialModule);
+    }
+
+    //根据储备项目名称查询项目的作业方式
+    public String findPlanDay(String reserveProjectName) {
+        return materialModuleMapper.findPlanDay(reserveProjectName);
     }
 
-    public MaterialModule findByProcInsId(String procInsId) {
-        return materialModuleMapper.findByProcInsId(procInsId);
+    // 通过项目需求名称查询项目的进场领料单数据
+    public List<EngineeringAmount> findProcessList(String reserveProjectName) {
+        return materialModuleMapper.findProcessList(reserveProjectName);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateSeveralTimes(String procInsId, int number) {
+        materialModuleMapper.updateSeveralTimes(procInsId, number);
     }
 }

+ 148 - 191
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java

@@ -7,15 +7,22 @@ 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.managementcenter.activiti.entity.Construction;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
+import com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.util.*;
@@ -29,6 +36,20 @@ public class MaterialModuleController extends BaseController {
     private ActProcessService actProcessService;
     @Autowired
     private ActTaskService actTaskService;
+    @Autowired
+    private ProjectService projectService;
+
+    @ModelAttribute
+    public MaterialModule get(@RequestParam(required = false) String id) {
+        MaterialModule entity = null;
+        if (StringUtils.isNotBlank(id)) {
+            entity = materialModuleService.get(id);
+        }
+        if (entity == null) {
+            entity = new MaterialModule();
+        }
+        return entity;
+    }
 
     /**
      * 施工模块发起页面
@@ -39,200 +60,136 @@ public class MaterialModuleController extends BaseController {
         return "modules/sg/materialmodule/activiti/materialModuleForm";
     }
 
-/*    *//**
-     * 土建开工流程
-     *//*
-    @RequestMapping(value = "nonPowerStart")
-    public String nonPowerStart(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/nonPowerStart";
-    }*/
-
-  /*  *//**
-     * 土建施工中流程
-     *//*
-    @RequestMapping(value = "nonPowerMiddle")
-    public String nonPowerMiddle(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/nonPowerMiddle";
-    }
-
-    *//**
-     * 审核土建施工中流程
-     *//*
-    @RequestMapping(value = "nonRePowerMiddle")
-    public String nonRePowerMiddle(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/nonRePowerMiddle";
-    }
-
-    *//**
-     * 土建竣工流程
-     *//*
-    @RequestMapping(value = "nonPowerEnd")
-    public String nonPowerEnd(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/nonPowerEnd";
-    }
-
-    *//**
-     * 审核土建竣工流程
-     *//*
-    @RequestMapping(value = "nonRePowerEnd")
-    public String nonRePowerEnd(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/nonRePowerEnd";
-    }
-
-    *//**
-     * 经理审核土建
-     *//*
-    @RequestMapping(value = "reviewNonPower")
-    public String reviewNonPower(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/reviewNonPower";
-    }
-
-    *//**
-     * 电气开工流程
-     *//*
+    /**
+     * 电气开工报告页面
+     */
     @RequestMapping(value = "electricalStart")
     public String electricalStart(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/electricalStart";
-    }
+        //查询项目的日计划作业模式
+        String planDay = materialModuleService.findPlanDay(materialModule.getReserveProjectName());
+        if (null != planDay && !"".equals(planDay)) {
+            materialModule.setOperationMethod(planDay);
+        } else {
+            materialModule.setOperationMethod("未安排项目计划安排");
+        }
+        //查询开领料单进场施工材料
+        List<EngineeringAmount> processList = materialModuleService.findProcessList(materialModule.getReserveProjectName());
+        if (null == processList || processList.size() <= 0) {
 
-    *//**
-     * 电气施工流程
-     *//*
-    @RequestMapping(value = "electricalMiddle")
-    public String electricalMiddle(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
-        model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/electricalMiddle";
-    }
+        } else {
+            String a = "";
+            for (EngineeringAmount e : processList
+            ) {
+                a += e.getCivilMaterials() + e.getCivilUnit() + ";";
+            }
+            materialModule.setNewWorkload(a);
+        }
 
-    *//**
-     * 审核电气施工
-     *//*
-    @RequestMapping(value = "reElectricalMiddle")
-    public String reElectricalMiddle(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
+        //拆旧表
         model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/reElectricalMiddle";
+        return "modules/sg/materialmodule/activiti/electricalStart";
     }
 
-    *//**
-     * 电气竣工流程
-     *//*
+    /**
+     * 电气竣工页面
+     * */
     @RequestMapping(value = "electricalEnd")
     public String electricalEnd(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
         model.addAttribute("materialModule", materialModule);
         return "modules/sg/materialmodule/activiti/electricalEnd";
     }
 
-    *//**
-     * 审核电气竣工
-     *//*
-    @RequestMapping(value = "reElectricalEnd")
-    public String reElectricalEnd(MaterialModule materialModule, Model model) {
+
+    /**
+     * 施工单位项目经理判断项目是否包含涉电工作
+     */
+    @RequestMapping(value = "managerWhether")
+    public String managerWhether(MaterialModule materialModule, Model model) {
         MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
         model.addAttribute("materialShow", materialShow);
         model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/reElectricalEnd";
+        return "modules/sg/materialmodule/activiti/managerWhether";
     }
 
-    *//**
-     * 审核电气流程
-     *//*
-    @RequestMapping(value = "reviewElectrical")
-    public String reviewElectrical(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
+    /**
+     * 审核电气竣工流程
+     * */
+    @RequestMapping(value = "reElectricalEnd")
+    public String reElectricalEnd(MaterialModule materialModule, Model model) {
         model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/reviewElectrical";
+        return "modules/sg/materialmodule/activiti/reElectricalEnd";
     }
 
-    *//**
-     * 涉电开工流程
-     *//*
-    @RequestMapping(value = "PowerStart")
-    public String PowerStart(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
+    /**
+     * 上传涉电开工资料
+     * */
+    @RequestMapping(value = "powerFile")
+    public String powerFile(MaterialModule materialModule, Model model) {
         model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/PowerStart";
+        return "modules/sg/materialmodule/activiti/powerFile";
     }
 
-    *//**
-     * 涉电竣工流程
-     *//*
+    /**
+     * 涉电竣工报告
+     * */
     @RequestMapping(value = "PowerEnd")
     public String PowerEnd(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
         model.addAttribute("materialModule", materialModule);
         return "modules/sg/materialmodule/activiti/PowerEnd";
     }
 
-    *//**
-     * 审核涉电竣工
-     *//*
+    /**
+     * 审核涉电竣工报告
+     * */
     @RequestMapping(value = "rePowerEnd")
     public String rePowerEnd(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
         model.addAttribute("materialModule", materialModule);
         return "modules/sg/materialmodule/activiti/rePowerEnd";
     }
 
-    *//**
-     * 是否完成所有涉电工作
-     *//*
+    /**
+     * 审核涉电竣工报告
+     * */
     @RequestMapping(value = "PowerWhether")
     public String PowerWhether(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
         model.addAttribute("materialModule", materialModule);
         return "modules/sg/materialmodule/activiti/PowerWhether";
-    }*/
+    }
 
     /**
-     * 施工单位项目经理判断项目是否包含涉电工作
-     */
-    @RequestMapping(value = "managerWhether")
-    public String managerWhether(MaterialModule materialModule, Model model) {
-        MaterialModule materialShow = materialModuleService.get(materialModule.getAct().getProcInsId());
-        model.addAttribute("materialShow", materialShow);
+     * 涉电开工报告
+     * */
+    @RequestMapping(value = "PowerStart")
+    public String PowerStart(MaterialModule materialModule, Model model) {
+        //查询项目的日计划作业模式
+        String planDay = materialModuleService.findPlanDay(materialModule.getReserveProjectName());
+        if (null != planDay && !"".equals(planDay)) {
+            materialModule.setOperationMethod(planDay);
+        } else {
+            materialModule.setOperationMethod("未安排项目计划安排");
+        }
+        //查询开领料单进场施工材料
+        List<EngineeringAmount> processList = materialModuleService.findProcessList(materialModule.getReserveProjectName());
+        if (null == processList || processList.size() <= 0) {
+
+        } else {
+            String a = "";
+            for (EngineeringAmount e : processList
+            ) {
+                a += e.getCivilMaterials() + e.getCivilUnit() + ";";
+            }
+            materialModule.setNewWorkload(a);
+        }
         model.addAttribute("materialModule", materialModule);
-        return "modules/sg/materialmodule/activiti/managerWhether";
+        return "modules/sg/materialmodule/activiti/PowerStart";
     }
 
-
     /**
      * 施工流程发起
      */
     @ResponseBody
-    @RequestMapping(value = "containSave")
-    public AjaxJson save(MaterialModule materialModule, Model model,String procDefId,String flag) throws Exception {
+    @RequestMapping(value = "save")
+    public AjaxJson save(MaterialModule materialModule, Model model) throws Exception {
         AjaxJson j = new AjaxJson();
         /**
          * 后台hibernate-validation插件校验
@@ -244,62 +201,62 @@ public class MaterialModuleController extends BaseController {
             return j;
         }
         String projectId = materialModule.getProjectId();
-        if (projectId == null||"".equals(projectId)) {
+        if (projectId == null || "".equals(projectId)) {
             j.setSuccess(false);
             j.setMsg("请选择项目");
             return j;
         }
-
-        /**
-         * 流程审批
-         */
-        if (StringUtils.isBlank(materialModule.getId())) {
-            String projectType = materialModule.getProjectType();
-            String[] split = projectType.split("|");
-            Map<String, Object> vars = Maps.newHashMap();
-//            Project userById = MyActiviUtils.findUserById(projectId);
-//            vars.put("manager", UserUtils.getByUserName(userById.getConstructionUnitManage()).getLoginName());
-            //土建
-            vars.put("contain", false);
-            //电气
-            vars.put("electrical", false);
-            //涉电
-            vars.put("notContain", false);
-            boolean contain = false;
-            boolean electrical = false;
-            boolean notContain = false;
-            materialModule.setNonPower(0);
-            materialModule.setElectrical(0);
-            materialModule.setPower(0);
-            for (int i = 0; i < split.length; i++) {
-                if ("1".equals(split[i])) {
-                    materialModule.setNonPower(1);
-                    contain = true;
-                }
-                if ("2".equals(split[i])) {
-                    materialModule.setElectrical(1);
-                    electrical = true;
+        boolean electric = false;
+        //判单钢管杠,水泥杠,存在电气,判断是否包含
+        List<MaterialInfo> allInfo = projectService.findAllInfo(projectId);
+        if (allInfo.size() > 0) {
+            for (MaterialInfo mi : allInfo
+            ) {
+                String materialName = mi.getMaterialName();
+                if (null != materialName && !"".equals(materialName)) {
+                    //判断项目是否包含描述为钢管杆或水泥杠的物料,存在步入电气流程
+                    if (materialName.contains("钢管杆") || materialName.contains("水泥杆")) {
+                        electric = true;
+                        break;
+                    }
                 }
-                if ("3".equals(split[i])) {
-                    materialModule.setPower(1);
-                    notContain = true;
-                }
-            }
-            if (contain == true) {
-                vars.put("contain", true);
             }
-            if (electrical == true) {
-                vars.put("electrical", true);
-            }
-            if (notContain == true && contain == false && electrical == false) {
+        }
+        //查询出项目的基础信息,停电线路(如果纯在),人员流转信息
+        Construction blockAss = projectService.findBlockAss(projectId);
+        Map<String, Object> vars = Maps.newHashMap();
+        //没用电气及涉电 运行条件
+        vars.put("no", false);
+        //没有电气,有涉电 运行条件
+        vars.put("notContain", false);
+        //包含电气/涉电-优先电气 运行条件
+        vars.put("electrical", false);
+        if (electric) {
+            //发送开始电气流程
+            vars.put("electrical", true);
+        } else {
+            //没用电气进行涉电
+            //获取项目的领料单,查询停电线路
+            String blackoutLine = blockAss.getQuantity().getBlackoutLine();
+            if (null != blackoutLine && !"".equals(blackoutLine) && "不涉电".equals(blackoutLine)) {
+                //填写停电线路,不为空,-步入发起涉电流程
                 vars.put("notContain", true);
+            } else {
+                vars.put("no", true);
             }
-            //修改项目的施工模块状态
-            materialModule.setUserName(UserUtils.getUser().getName());
-            materialModule.setFrequency(1);
+        }
+
+        if (StringUtils.isBlank(materialModule.getId())) {
+            vars.put("manager", UserUtils.getByUserName(blockAss.getAssignment().getConstructionManage()).getLoginName());
+            materialModule.setProjectId(blockAss.getProjectId());
+            materialModule.setProjectName(blockAss.getProjectName());
+            materialModule.setReserveProjectName(blockAss.getReserveProjectName());
+            //保存项目储备项目名称,项目定义号,项目名称
             materialModuleService.save(materialModule);
+            //修改项目状态
+            materialModuleService.updateConstructionStatus("1", blockAss.getReserveProjectName());
             // 启动流程
-            ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+            ProcessDefinition p = actProcessService.getProcessDefinition(materialModule.getAct().getProcDefId());
             String title = materialModule.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
             actTaskService.startProcess(p.getKey(), "sg_construction_process", materialModule.getId(), title, vars);
             j.setMsg("发起施工流程成功!");

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

@@ -195,6 +195,8 @@ public class NonPowerController extends BaseController {
             Project materialProject = projectService.getAss(project);
             //定义vars用于指派流程走向
             Map<String, Object> vars = Maps.newHashMap();
+            vars.put("noPass", false);
+            vars.put("pass", true);
             //获取项目定义号
             vars.put("design", UserUtils.getByUserName(materialProject.getAssignment().getConstructionManage()).getLoginName());
             //保存基础信息到流程表中"
@@ -204,7 +206,7 @@ public class NonPowerController extends BaseController {
             //更改项目超权限状态
             projectService.updateAdvCon(nonPower.getReserveProjectName(),"2");
             nonPowerService.save(nonPower);
-            //根据项目定义号修改项目的土建流程状态
+            //根据项目id修改项目的土建流程状态
             constructionService.updateAdvStatus(nonPower.getProjectId());
             // 启动流程
             ProcessDefinition p = actProcessService.getProcessDefinition(nonPower.getAct().getProcDefId());

+ 30 - 0
src/main/java/com/jeeplus/modules/sg/picking/activiti/entity/Acquisition.java

@@ -8,6 +8,10 @@ import java.util.Date;
 public class Acquisition extends ActEntity<Acquisition> {
     //项目定义号
     private String projectId;
+    //项目名称
+    private String projectName;
+    //储备项目名称
+    private String reserveProjectName;
     //项目发起的次数
     private String theNumber;
     //模块版本号
@@ -24,6 +28,8 @@ public class Acquisition extends ActEntity<Acquisition> {
     private Date managerTime;
     //项目类型
     private String proType;
+    //进场状态
+    private String canEnter;
 
     public String getProjectId() {
         return projectId;
@@ -33,6 +39,22 @@ public class Acquisition extends ActEntity<Acquisition> {
         this.projectId = projectId;
     }
 
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getReserveProjectName() {
+        return reserveProjectName;
+    }
+
+    public void setReserveProjectName(String reserveProjectName) {
+        this.reserveProjectName = reserveProjectName;
+    }
+
     public String getTheNumber() {
         return theNumber;
     }
@@ -100,4 +122,12 @@ public class Acquisition extends ActEntity<Acquisition> {
     public void setProType(String proType) {
         this.proType = proType;
     }
+
+    public String getCanEnter() {
+        return canEnter;
+    }
+
+    public void setCanEnter(String canEnter) {
+        this.canEnter = canEnter;
+    }
 }

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

@@ -5,6 +5,8 @@ public class ProjectNumber {
     private String projectName;
     //选择版本号
     private String theNumber;
+    //项目是否可以进场状态
+    private String canEnter;
 
     public String getProjectName() {
         return projectName;
@@ -21,4 +23,12 @@ public class ProjectNumber {
     public void setTheNumber(String theNumber) {
         this.theNumber = theNumber;
     }
+
+    public String getCanEnter() {
+        return canEnter;
+    }
+
+    public void setCanEnter(String canEnter) {
+        this.canEnter = canEnter;
+    }
 }

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

@@ -46,7 +46,10 @@ public interface PickIngMapper extends BaseMapper<PickIng> {
      * */
     List<Acquisition> findErpType(List<String> list);
 
-    List<CapitalExport> exportList(@Param("list") List<Acquisition> list,@Param("projectId") String projectId);
+    /**根据当前的导出的领料单,查询出所有同名称的项目信息*/
+    List<Acquisition> findErpAll(List<String> list);
+
+    List<CapitalExport> exportList(@Param("list") List<Acquisition> list,@Param("projectName") String projectName);
 
     void updateErpAfter(List<Acquisition> list);
 
@@ -76,4 +79,17 @@ public interface PickIngMapper extends BaseMapper<PickIng> {
 
     //根据项目定义号删除当前流程表
     Integer deleteProcInsIdPickingApplication(String procInsId);
+
+    //根据项目定义号修改项目是否可以进场状态
+    void updateEnter(String procInsId);
+
+    //根据项目定义号获取项目名称,更新项目领料清单中的项目进场状态
+    void updateListEnter(String procInsId);
+
+    //通过结合获取所有符合条件的项目,更改进场状态
+    void updateEnterList(List<Acquisition> acquisitions);
+
+    //通过判断出领料清单中所有的已经完成领料的储备项目名称,更新项目的状态
+    void updateProjectEnter(List<String> updateProjectList);
+
 }

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

@@ -3,21 +3,20 @@
 <mapper namespace="com.jeeplus.modules.sg.picking.activiti.mapper.PickIngMapper">
 
     <sql id="classColumns">
-		a.id AS "id",
+        a.id AS "id",
 		a.md_img AS "mdImg",
 		a.md_big_class AS "mdBigClass",
 		a.md_the_class AS "mdTheClass",
 		a.md_small_class AS "mdSmallClass",
 		a.md_unit AS "mdUnit"
-	</sql>
-
+    </sql>
 
 
     <select id="get" resultType="com.jeeplus.modules.sg.picking.activiti.entity.PickIng">
         SELECT
         <include refid="classColumns"/>,
-		FROM md_module_block a
-		WHERE a.id = #{id}
+        FROM md_module_block a
+        WHERE a.id = #{id}
     </select>
 
     <select id="findList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.PickIng">
@@ -34,306 +33,372 @@
     <select id="findAllList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.PickIng">
         SELECT
         <include refid="classColumns"/>
-        FROM md_module_block a where md_version = (select id from md_module_block_version where versionName = #{version}) order by md_big_sort,md_the_sort,md_small_sort
+        FROM md_module_block a where md_version = (select id from md_module_block_version where versionName =
+        #{version}) order by md_big_sort,md_the_sort,md_small_sort
     </select>
 
     <insert id="insert">
-		INSERT INTO md_acquisition_process(
-			id,
-			proc_ins_id,
-			project_id,
-			the_number,
-			version,
-			select_number,
-			create_by,
-			create_date,
-			update_by,
-			update_date,
-			remarks,
-			del_flag
-		) VALUES (
-			#{id},
-			#{procInsId},
-			#{projectId},
-			#{theNumber},
-			#{version},
-			#{selectNumber},
-			#{createBy.id},
-			#{createDate},
-			#{updateBy.id},
-			#{updateDate},
-			#{remarks},
-			#{delFlag}
-		)
-	</insert>
+        INSERT INTO md_acquisition_process(id,
+                                           proc_ins_id,
+                                           project_id,
+                                           the_number,
+                                           version,
+                                           select_number,
+                                           create_by,
+                                           create_date,
+                                           update_by,
+                                           update_date,
+                                           remarks,
+                                           del_flag)
+        VALUES (#{id},
+                #{procInsId},
+                #{projectId},
+                #{theNumber},
+                #{version},
+                #{selectNumber},
+                #{createBy.id},
+                #{createDate},
+                #{updateBy.id},
+                #{updateDate},
+                #{remarks},
+                #{delFlag})
+    </insert>
 
     <update id="update">
-		UPDATE md_acquisition_process SET
-			proc_ins_id = #{procInsId},
-			project_id = #{projectId},
-			the_number = #{theNumber},
-			version = #{version},
-			select_number = #{selectNumber},
-			update_by = #{updateBy.id},
-			update_date = #{updateDate},
-			remarks = #{remarks}
-		WHERE id = #{id}
-	</update>
-
+        UPDATE md_acquisition_process
+        SET proc_ins_id   = #{procInsId},
+            project_id    = #{projectId},
+            the_number    = #{theNumber},
+            version       = #{version},
+            select_number = #{selectNumber},
+            update_by     = #{updateBy.id},
+            update_date   = #{updateDate},
+            remarks       = #{remarks}
+        WHERE id = #{id}
+    </update>
 
 
     <!--物理删除-->
     <update id="delete">
-		DELETE FROM md_module_block
-		WHERE id = #{id}
-	</update>
+        DELETE
+        FROM md_module_block
+        WHERE id = #{id}
+    </update>
 
     <!--逻辑删除-->
     <update id="deleteByLogic">
-		UPDATE md_module_block SET
-			del_flag = #{DEL_FLAG_DELETE}
-		WHERE id = #{id}
-	</update>
-
-	<select id="allVersion" resultType="string">
-		select versionName from md_module_block_version order by create_date desc;
-	</select>
-
-	<update id="updateSelectNumber">
-		update md_acquisition_process set  select_number = #{selectNumber} where proc_ins_id=#{procInsId};
-	</update>
-	
-	<select id="findSelectNumber" resultType="string">
-		select select_number from md_acquisition_process where proc_ins_id=#{procInsId};
-	</select>
-
-	<select id="selectVersion" resultType="string">
-		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 project_Name, the_number
-		from md_acquisition_process
-		where proc_ins_id = #{procInsId};
-	</select>
-
-	<update id="updateSelectVersion">
-		UPDATE sys_dict_value set `value` = #{version} where id = '1010101010'
-	</update>
-
-	<delete id="delAllTem">
-		TRUNCATE md_temporary_list
-	</delete>
-	
-	<insert id="processList">
-		insert into md_process_list (
-			id,
-			create_by,
-			create_date,
-			update_by,
-			update_date,
-			del_flag,
-			remarks,
-			procInsId,
-			materialCode,
-			extensionDescription,
-			materialDescription,
-			mdUnits,
-			mdTotalAmount,
-			mdTotalAmountAfter,
-			mdSingleWeight,
-			mdTotalWeight,
-			mdTheParty,
-			mdText
-		 )values
-		<foreach collection="showList" item="item" index="index" separator="," >
-		 (
-			#{item.id},
-			#{item.createBy.id},
-			#{item.createDate},
-			#{item.updateBy.id},
-			#{item.updateDate},
-			#{item.delFlag},
-			#{item.remarks},
-			#{item.procInsId},
-			#{item.materialCode},
-			#{item.extensionDescription},
-			#{item.materialDescription},
-			#{item.mdUnits},
-			#{item.mdTotalAmount},
-			#{item.mdTotalAmountAfter},
-			#{item.mdSingleWeight},
-			#{item.mdTotalWeight},
-			#{item.mdTheParty},
-			#{item.mdText}
-		 )
-		</foreach>
-	</insert>
-
-	<select id="findErpType" resultType="com.jeeplus.modules.sg.picking.activiti.entity.Acquisition">
-		select a.id,a.proc_ins_id,b.pro_type
-		from md_acquisition_process as a
-		LEFT JOIN xm_project_details as b
-		on a.project_id = b.id where a.id
-		in(
-		<foreach collection="list" item="item" separator=",">
-			#{item}
-		</foreach>
-		)
-	</select>
-
-	<select id="exportList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport">
-		select
-		a.materialCode as sapMaterialCode,
-		a.extensionDescription as deviceSerialNumber,
-		a.materialDescription as nameOfBuilding,
-		a.mdUnits as company,
-		c.require_name as projectName,
-		c.project_number as projectWbsNumber,
-		d.referencePrice as estimatedPrice
-		from md_process_list as a
-		LEFT JOIN md_acquisition_process as b
-			on a.procInsId = b.proc_ins_id
-		LEFT JOIN xm_project_details as c
-			on b.project_id = c.id
-		LEFT JOIN xm_material_provided as d
-			on a.materialCode = d.materialCode
-		where b.id in(
-			<foreach collection="list" item="item" separator=",">
-				#{item.id}
-			</foreach>
-		)
-		<if test="projectId != null and projectId != ''">
-			AND c.require_name LIKE concat('%',#{projectId},'%')
-		</if>
-	</select>
-	
-	<update id="updateErpAfter">
-		update md_acquisition_process set exportAfter = '是',exportTime = now() where id in (
-		<foreach collection="list" item="item" separator=",">
-			#{item.id}
-		</foreach>
-		);
-	</update>
-
-	<select id="findExportBlock" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ExportBlock">
-		select
-		materialCode,
-	 	materialDescription as projectName,
-		extensionDescription,
-		mdUnits,
-		mdTotalAmount,
-		mdSingleWeight,
-		mdTotalWeight,
-		mdTheParty,
-		mdText
-		from md_process_list
-		where procInsId = #{procInsId}
-		order by materialCode,materialDescription;
-	</select>
-
-	<delete id="truncateTemporary">
-		truncate table md_temporary_list
-	</delete>
-
-	<insert id="processTemList">
-		insert into md_temporary_list (
-		id,
-		create_by,
-		create_date,
-		update_by,
-		update_date,
-		del_flag,
-		remarks,
-		procInsId,
-		materialCode,
-		extensionDescription,
-		materialDescription,
-		mdUnits,
-		mdTotalAmount,
-		mdTotalAmountAfter,
-		mdSingleWeight,
-		mdTotalWeight,
-		mdTheParty,
-		mdText
-		)values
-		<foreach collection="showList" item="item" index="index" separator="," >
-			(
-			#{item.id},
-			#{item.createBy.id},
-			#{item.createDate},
-			#{item.updateBy.id},
-			#{item.updateDate},
-			#{item.delFlag},
-			#{item.remarks},
-			#{item.procInsId},
-			#{item.materialCode},
-			#{item.extensionDescription},
-			#{item.materialDescription},
-			#{item.mdUnits},
-			#{item.mdTotalAmount},
-			#{item.mdTotalAmountAfter},
-			#{item.mdSingleWeight},
-			#{item.mdTotalWeight},
-			#{item.mdTheParty},
-			#{item.mdText}
-			)
-		</foreach>
-	</insert>
-
-	<insert id="processTemReportList">
-		insert into md_temporary_report_list (
-		id,
-		create_by,
-		create_date,
-		update_by,
-		update_date,
-		del_flag,
-		remarks,
-		procInsId,
-		materialCode,
-		extensionDescription,
-		materialDescription,
-		mdUnits,
-		mdTotalAmount,
-		mdTotalAmountAfter,
-		mdSingleWeight,
-		mdTotalWeight,
-		mdTheParty,
-		mdText,
-		reserveName
-		)values
-		<foreach collection="showList" item="item" index="index" separator="," >
-			(
-			#{item.id},
-			#{item.createBy.id},
-			#{item.createDate},
-			#{item.updateBy.id},
-			#{item.updateDate},
-			#{item.delFlag},
-			#{item.remarks},
-			#{item.procInsId},
-			#{item.materialCode},
-			#{item.extensionDescription},
-			#{item.materialDescription},
-			#{item.mdUnits},
-			#{item.mdTotalAmount},
-			#{item.mdTotalAmountAfter},
-			#{item.mdSingleWeight},
-			#{item.mdTotalWeight},
-			#{item.mdTheParty},
-			#{item.mdText},
-			#{item.reserveName}
-			)
-		</foreach>
-	</insert>
-
-	<select id="findAllTem" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
-		select * from md_temporary_list where procInsId = #{procInsId};
-	</select>
-
-	<sql id="materialReportColumns">
-		a.id AS "id",
+        UPDATE md_module_block
+        SET del_flag = #{DEL_FLAG_DELETE}
+        WHERE id = #{id}
+    </update>
+
+    <select id="allVersion" resultType="string">
+        select versionName
+        from md_module_block_version
+        order by create_date desc;
+    </select>
+
+    <update id="updateSelectNumber">
+        update md_acquisition_process
+        set select_number = #{selectNumber}
+        where proc_ins_id = #{procInsId};
+    </update>
+
+    <select id="findSelectNumber" resultType="string">
+        select select_number
+        from md_acquisition_process
+        where proc_ins_id = #{procInsId};
+    </select>
+
+    <select id="selectVersion" resultType="string">
+        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 a.project_Name, a.the_number, b.canEnter
+        from md_acquisition_process a
+                 LEFT JOIN xm_material_project b
+                           ON a.reserveProjectName = b.reserveProjectName
+        where a.proc_ins_id = #{procInsId};
+    </select>
+
+    <update id="updateSelectVersion">
+        UPDATE sys_dict_value
+        set `value` = #{version}
+        where id = '1010101010'
+    </update>
+
+    <delete id="delAllTem">
+        TRUNCATE md_temporary_list
+    </delete>
+
+    <insert id="processList">
+        insert into md_process_list (
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        remarks,
+        procInsId,
+        materialCode,
+        extensionDescription,
+        materialDescription,
+        mdUnits,
+        mdTotalAmount,
+        mdTotalAmountAfter,
+        mdSingleWeight,
+        mdTotalWeight,
+        mdTheParty,
+        mdText
+        )values
+        <foreach collection="showList" item="item" index="index" separator=",">
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.remarks},
+            #{item.procInsId},
+            #{item.materialCode},
+            #{item.extensionDescription},
+            #{item.materialDescription},
+            #{item.mdUnits},
+            #{item.mdTotalAmount},
+            #{item.mdTotalAmountAfter},
+            #{item.mdSingleWeight},
+            #{item.mdTotalWeight},
+            #{item.mdTheParty},
+            #{item.mdText}
+            )
+        </foreach>
+    </insert>
+
+    <select id="findErpType" resultType="com.jeeplus.modules.sg.picking.activiti.entity.Acquisition">
+        select a.id,a.proc_ins_id,b.projectNature as proType,a.reserveProjectName,a.canEnter
+        from md_acquisition_process as a
+        LEFT JOIN xm_project_basicinformation as b
+        on a.reserveProjectName = b.reserveProjectName where a.id
+        in(
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </select>
+
+    <select id="findErpAll" resultType="com.jeeplus.modules.sg.picking.activiti.entity.Acquisition">
+        select a.id,a.proc_ins_id,b.projectNature as proType,a.reserveProjectName,a.canEnter
+        from md_acquisition_process as a
+        LEFT JOIN xm_project_basicinformation as b
+        on a.reserveProjectName = b.reserveProjectName
+        where a.reserveProjectName
+        in(
+            select reserveProjectName from md_acquisition_process where id in(
+                <foreach collection="list" item="item" separator=",">
+                    #{item}
+                </foreach>
+            )
+        )
+    </select>
+
+    <select id="exportList" resultType="com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport">
+        select
+        a.materialCode as sapMaterialCode,
+        a.extensionDescription as deviceSerialNumber,
+        a.materialDescription as nameOfBuilding,
+        a.mdUnits as company,
+        c.projectName as projectName,
+        c.projectId as  projectWbsNumber,
+        d.referencePrice as estimatedPrice
+        from md_process_list as a
+        LEFT JOIN md_acquisition_process as b
+        on a.procInsId = b.proc_ins_id
+        LEFT JOIN xm_material_project as c
+        on b.reserveProjectName = c.reserveProjectName
+        LEFT JOIN xm_material_provided as d
+        on a.materialCode = d.materialCode
+        where b.id in(
+        <foreach collection="list" item="item" separator=",">
+            #{item.id}
+        </foreach>
+        )
+        <if test="projectName != null and projectName != ''">
+            AND c.projectName LIKE concat('%',#{projectName},'%')
+        </if>
+    </select>
+
+    <update id="updateErpAfter">
+        update md_acquisition_process set exportAfter = '是',exportTime = now() where id in (
+        <foreach collection="list" item="item" separator=",">
+            #{item.id}
+        </foreach>
+        );
+    </update>
+    <update id="updateEnter">
+        update xm_material_project
+        set canEnter = '1'
+        where reserveProjectName
+            in (
+            select a.*
+            from (
+               select reserveProjectName
+               from md_acquisition_process
+               where proc_ins_id = #{procInsId}) a);
+    </update>
+    <update id="updateListEnter">
+        UPDATE md_acquisition_process
+        SET canEnter = 1
+        WHERE id in (
+            select a.* from (
+                SELECT id FROM md_acquisition_process
+                WHERE reserveProjectName =(
+                      select reserveProjectName
+                      from md_acquisition_process
+                      where proc_ins_id = #{procInsId}
+                      )
+                AND the_number &lt;= (
+                    SELECT the_number
+                    FROM md_acquisition_process
+                    WHERE proc_ins_id = #{procInsId})
+            )a
+        )
+    </update>
+    <update id="updateEnterList">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update md_acquisition_process set canEnter = '2' where id = #{item.id}
+        </foreach>
+    </update>
+
+    <update id="updateProjectEnter">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update xm_material_project set canEnter = '2',acquisitionStatus ='2' where reserveProjectName = #{item}
+        </foreach>
+    </update>
+
+    <select id="findExportBlock" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ExportBlock">
+        select materialCode,
+               materialDescription as projectName,
+               extensionDescription,
+               mdUnits,
+               mdTotalAmount,
+               mdSingleWeight,
+               mdTotalWeight,
+               mdTheParty,
+               mdText
+        from md_process_list
+        where procInsId = #{procInsId}
+        order by materialCode, materialDescription;
+    </select>
+
+    <delete id="truncateTemporary">
+        truncate table md_temporary_list
+    </delete>
+
+    <insert id="processTemList">
+        insert into md_temporary_list (
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        remarks,
+        procInsId,
+        materialCode,
+        extensionDescription,
+        materialDescription,
+        mdUnits,
+        mdTotalAmount,
+        mdTotalAmountAfter,
+        mdSingleWeight,
+        mdTotalWeight,
+        mdTheParty,
+        mdText
+        )values
+        <foreach collection="showList" item="item" index="index" separator=",">
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.remarks},
+            #{item.procInsId},
+            #{item.materialCode},
+            #{item.extensionDescription},
+            #{item.materialDescription},
+            #{item.mdUnits},
+            #{item.mdTotalAmount},
+            #{item.mdTotalAmountAfter},
+            #{item.mdSingleWeight},
+            #{item.mdTotalWeight},
+            #{item.mdTheParty},
+            #{item.mdText}
+            )
+        </foreach>
+    </insert>
+
+    <insert id="processTemReportList">
+        insert into md_temporary_report_list (
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        remarks,
+        procInsId,
+        materialCode,
+        extensionDescription,
+        materialDescription,
+        mdUnits,
+        mdTotalAmount,
+        mdTotalAmountAfter,
+        mdSingleWeight,
+        mdTotalWeight,
+        mdTheParty,
+        mdText,
+        reserveName
+        )values
+        <foreach collection="showList" item="item" index="index" separator=",">
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.remarks},
+            #{item.procInsId},
+            #{item.materialCode},
+            #{item.extensionDescription},
+            #{item.materialDescription},
+            #{item.mdUnits},
+            #{item.mdTotalAmount},
+            #{item.mdTotalAmountAfter},
+            #{item.mdSingleWeight},
+            #{item.mdTotalWeight},
+            #{item.mdTheParty},
+            #{item.mdText},
+            #{item.reserveName}
+            )
+        </foreach>
+    </insert>
+
+    <select id="findAllTem" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+        select *
+        from md_temporary_list
+        where procInsId = #{procInsId};
+    </select>
+
+    <sql id="materialReportColumns">
+        a.id AS "id",
 		a.procInsId AS "procInsId",
 		a.reserveName AS "reserveName",
 		a.materialCode AS "materialCode",
@@ -346,19 +411,23 @@
 		a.mdTotalWeight AS "mdTotalWeight",
 		a.mdTheParty AS "mdTheParty",
 		a.mdText AS "mdText"
-	</sql>
+    </sql>
 
-	<select id="findProcInsIdMaterialReport" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
-		select
-		<include refid="materialReportColumns"/>
-		from md_temporary_report_list a where a.procInsId = #{procInsId}
-	</select>
+    <select id="findProcInsIdMaterialReport" resultType="com.jeeplus.modules.sg.picking.activiti.entity.ShowList">
+        select
+        <include refid="materialReportColumns"/>
+        from md_temporary_report_list a where a.procInsId = #{procInsId}
+    </select>
 
-	<delete id="deleteProcInsIdMaterialReport" parameterType="string">
-		delete from md_temporary_report_list where procInsId = #{procInsId}
-	</delete>
+    <delete id="deleteProcInsIdMaterialReport" parameterType="string">
+        delete
+        from md_temporary_report_list
+        where procInsId = #{procInsId}
+    </delete>
 
-	<delete id="deleteProcInsIdPickingApplication">
-		delete from md_picking_application  where procInsId = #{procInsId}
-	</delete>
+    <delete id="deleteProcInsIdPickingApplication">
+        delete
+        from md_picking_application
+        where procInsId = #{procInsId}
+    </delete>
 </mapper>

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

@@ -337,8 +337,10 @@
         select
         a.id,
         a.proc_ins_id,
-        b.require_name as projectId,
-        b.pro_type as proType,
+        a.project_id,
+		a.reserveProjectName,
+        a.project_Name,
+        b.projectNature as proType,
         a.version,
         a.the_number,
         a.select_number,
@@ -346,14 +348,14 @@
         a.exportAfter,
         a.exportTime,
         a.managerTime
-        from md_acquisition_process as a
-        left join xm_project_details as b
-        on a.project_id = b.id
-        where exportStatus = '1'
-        <if test="projectId != null and projectId != ''">
-            AND b.require_name LIKE concat('%',#{projectId},'%')
+        from md_acquisition_process  a
+        left join xm_project_basicinformation  b
+        on a.reserveProjectName = b.reserveProjectName
+        where a.exportStatus = '1'
+        <if test="projectName != null and projectName != ''">
+            AND a.project_Name LIKE concat('%',#{projectName},'%')
         </if>
-        order by managerTime desc,exportAfter desc
+        order by a.managerTime desc,a.exportAfter desc
     </select>
 
     <update id="updateManagerTime">
@@ -362,8 +364,8 @@
 
     <select id="selectAllId" resultType="java.lang.String">
 		select
-		a.id
-		from md_acquisition_process as a
+		id
+		from md_acquisition_process
 		where exportStatus = '1'
 	</select>
 

+ 59 - 33
src/main/java/com/jeeplus/modules/sg/picking/activiti/service/PickIngService.java

@@ -27,6 +27,7 @@ import java.util.List;
 
 /**
  * 模块显示Service
+ *
  * @author
  * @version 2019-11-08
  */
@@ -48,7 +49,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 
 	//清空临时表数据
 	@Transactional(readOnly = false)
-	public void truncateTemporary(){
+	public void truncateTemporary() {
 		pickIngMapper.truncateTemporary();
 	}
 
@@ -56,7 +57,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 	 * 遍历查询结构 大类 中类 小类
 	 * 去除重复,记录大类
 	 * 根据大类查询它的中类放入list并记录
-	 * */
+	 */
 	public List<PickList> newAllList(PickIng entity, String s) {
 		DictValue dic = MyActiviUtils.findDic();
 		entity.setVersion(dic.getValue());
@@ -66,7 +67,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 		List<PickList> returnList = new ArrayList<>();
 
 		//循环得到所有大类
-		for (PickIng pickIng:allList) {
+		for (PickIng pickIng : allList) {
 			boolean flag = false;
 			for (PickList list : returnList) {
 				if (pickIng.getMdBigClass().equals(list.getName())) {
@@ -74,7 +75,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 					break;
 				}
 			}
-			if (flag==false) {
+			if (flag == false) {
 				//创建返回对象
 				PickList pickList = new PickList();
 				pickList.setName(pickIng.getMdBigClass());
@@ -88,7 +89,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 			//获得大类
 			String name = pList.getName();
 			//遍历查询的所有数据,与大类做比对,相同的,将中类记录下来
-			for (PickIng pickIng:allList) {
+			for (PickIng pickIng : allList) {
 				boolean flag = false;
 				//如果查出的数据中和记录下的大类一致,将中类放入大类的
 				if (pickIng.getMdBigClass().equals(name)) {
@@ -97,7 +98,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 							flag = true;
 						}
 					}
-					if (flag==false) {
+					if (flag == false) {
 						//创建中类对象,包含种类名称及对应的小类集合
 						MdTheClass mdTheClass = new MdTheClass();
 						mdTheClass.setId(pickIng.getId());
@@ -115,7 +116,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 				//创建
 				List<MdSmallClass> mdSmallClassList = new ArrayList<>();
 				for (PickIng pc : allList) {
-					if (md.getName().equals(pc.getMdTheClass())&&pList.getName().equals(pc.getMdBigClass())) {
+					if (md.getName().equals(pc.getMdTheClass()) && pList.getName().equals(pc.getMdBigClass())) {
 						//创建小类对象
 						MdSmallClass mdSmallClass = new MdSmallClass();
 						mdSmallClass.setName(pc.getMdSmallClass());
@@ -139,11 +140,11 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 
 
 	public List<String> allVersion() {
-		return  pickIngMapper.allVersion();
+		return pickIngMapper.allVersion();
 	}
 
 	@Transactional(readOnly = false)
-	public void updateSelectNumber(String selectNumber,String procInsId) {
+	public void updateSelectNumber(String selectNumber, String procInsId) {
 		pickIngMapper.updateSelectNumber(selectNumber, procInsId);
 	}
 
@@ -160,9 +161,11 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 	}
 
 	@Transactional(readOnly = false)
-	public void updateSelectVersion(String version){
+	public void updateSelectVersion(String version) {
 		pickIngMapper.updateSelectVersion(version);
-	};
+	}
+
+	;
 
 	@Transactional(readOnly = false)
 	public void processList(List<ShowList> showList) {
@@ -171,7 +174,7 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 
 	/**
 	 * 清空所有临时表的数据
-	 * */
+	 */
 	@Transactional(readOnly = false)
 	public void delAllTem() {
 		pickIngMapper.delAllTem();
@@ -179,37 +182,43 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 
 	/**
 	 * 插入临时领料清单
-	 * */
+	 */
 	@Transactional(readOnly = false)
-	public void processTemList(@Param("showList")List<ShowList> showList){
+	public void processTemList(@Param("showList") List<ShowList> showList) {
 		pickIngMapper.processTemList(showList);
 	}
 
 	/**
 	 * 插入临时领料清单:物资上报
-	 * */
+	 */
 	@Transactional(readOnly = false)
-	public void processTemReportList(@Param("showList")List<ShowList> showList){
+	public void processTemReportList(@Param("showList") List<ShowList> showList) {
 		pickIngMapper.processTemReportList(showList);
 	}
 
 	public List<Acquisition> findErpType(List<String> list) {
 		return pickIngMapper.findErpType(list);
 	}
+
+	public List<Acquisition> findErpAll(List<String> list) {
+		return pickIngMapper.findErpAll(list);
+	}
+
+
 	/**
 	 * 成本项目导出
-	 * */
+	 */
 	@Transactional(readOnly = false)
-	public List<CapitalExport> cbList(List<Acquisition> list, String projectId) {
-		List<CapitalExport> capitalExports = pickIngMapper.exportList(list,  projectId);
+	public List<CapitalExport> cbList(List<Acquisition> list, String projectName) {
+		List<CapitalExport> capitalExports = pickIngMapper.exportList(list, projectName);
 		int i = 0;
 		for (CapitalExport c : capitalExports) {
 			//项目定义号
 			String projectWbsNumber = c.getProjectWbsNumber();
 			i = i + 1;
 			c.setErpNumber(String.valueOf(i));
-			c.setProjectWbsNumber(projectWbsNumber+"0010000000");
-			c.setWbsNumber(projectWbsNumber+"0012000000");
+			c.setProjectWbsNumber(projectWbsNumber + "0010000000");
+			c.setWbsNumber(projectWbsNumber + "0012000000");
 			c.setWbsDescription("配网检修-外包材料费");
 			c.setDeviceSerialNumber("999999");
 			c.setModelSpecification(c.getNameOfBuilding());
@@ -228,10 +237,10 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 
 	/**
 	 * 资本项目导出
-	 * */
+	 */
 	@Transactional(readOnly = false)
-	public List<CapitalExport> zbList(List<Acquisition> list, String projectId) {
-		List<CapitalExport> capitalExports = pickIngMapper.exportList(list,projectId);
+	public List<CapitalExport> zbList(List<Acquisition> list, String projectName) {
+		List<CapitalExport> capitalExports = pickIngMapper.exportList(list, projectName);
 		int i = 0;
 		for (CapitalExport c : capitalExports) {
 			//项目定义号
@@ -239,19 +248,19 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 			String deviceSerialNumber = c.getDeviceSerialNumber();
 			i = i + 1;
 			c.setErpNumber(String.valueOf(i));
-			c.setProjectWbsNumber(projectWbsNumber+"00A0000000");
-			c.setWbsNumber(projectWbsNumber+"00A1310000");
+			c.setProjectWbsNumber(projectWbsNumber + "00A0000000");
+			c.setWbsNumber(projectWbsNumber + "00A1310000");
 			c.setWbsDescription("变压器");
 			if (deviceSerialNumber != null && !"".equals(deviceSerialNumber)) {
 				if (deviceSerialNumber.contains("变压器")) {
 					c.setDeviceSerialNumber("1");
 					c.setEquipmentType("1302001");
 					c.setUseEnvironment("户外");
-				}else if(deviceSerialNumber.contains("环网柜")||deviceSerialNumber.contains("环网箱")){
+				} else if (deviceSerialNumber.contains("环网柜") || deviceSerialNumber.contains("环网箱")) {
 					c.setDeviceSerialNumber("2");
 					c.setEquipmentType("1302004");
 					c.setUseEnvironment("户外");
-				}else if(deviceSerialNumber.contains("箱式变电站")){
+				} else if (deviceSerialNumber.contains("箱式变电站")) {
 					c.setDeviceSerialNumber("3");
 					c.setEquipmentType("1302003");
 					c.setUseEnvironment("户外");
@@ -289,24 +298,41 @@ public class PickIngService extends CrudService<PickIngMapper, PickIng> {
 	}
 
 	//根据流程实例id查询所有符合的临时表数据
-	public List<ShowList> findAllTem(String procInsId){
+	public List<ShowList> findAllTem(String procInsId) {
 		return pickIngMapper.findAllTem(procInsId);
 	}
 
 	//根据流程定义号查询当前 模块清单进行回显
-	public List<ShowList> findProcInsIdMaterialReport(String procInsId){
-		return  pickIngMapper.findProcInsIdMaterialReport(procInsId);
+	public List<ShowList> findProcInsIdMaterialReport(String procInsId) {
+		return pickIngMapper.findProcInsIdMaterialReport(procInsId);
 	}
 
 	//根据流程定义号删除当前临时表数据
 	@Transactional(readOnly = false)
-	public Integer deleteProcInsIdMaterialReport(String procInsId){
+	public Integer deleteProcInsIdMaterialReport(String procInsId) {
 		return pickIngMapper.deleteProcInsIdMaterialReport(procInsId);
 	}
 
 	//根据项目定义号删除当前流程表
 	@Transactional(readOnly = false)
-	public Integer deleteProcInsIdPickingApplication(String procInsId){
+	public Integer deleteProcInsIdPickingApplication(String procInsId) {
 		return pickIngMapper.deleteProcInsIdPickingApplication(procInsId);
 	}
+
+	//根据项目定义号获取
+	@Transactional(readOnly = false)
+	public void updateEnter(String procInsId) {
+		pickIngMapper.updateEnter(procInsId);
+		pickIngMapper.updateListEnter(procInsId);
+	}
+
+	@Transactional(readOnly = false)
+	public void updateEnterList(List<Acquisition> acquisitions) {
+		pickIngMapper.updateEnterList(acquisitions);
+	}
+
+	@Transactional(readOnly = false)
+	public void updateProjectEnter(List<String> updateProjectList) {
+		pickIngMapper.updateProjectEnter(updateProjectList);
+	}
 }

+ 298 - 31
src/main/java/com/jeeplus/modules/sg/picking/activiti/web/PickIngController.java

@@ -11,15 +11,21 @@ import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
 import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.materialInventory.entity.MaterialInventory;
 import com.jeeplus.modules.sg.managementcenter.materialProvided.entity.MaterialProvided;
 import com.jeeplus.modules.sg.managementcenter.materialProvided.service.MaterialProvidedService;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
 import com.jeeplus.modules.sg.picking.activiti.entity.*;
 import com.jeeplus.modules.sg.picking.activiti.service.PickIngService;
 import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
+import com.jeeplus.modules.sys.entity.DictValue;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -54,6 +60,8 @@ public class PickIngController extends BaseController {
     private ProjectService projectService;
     @Autowired
     private MaterialProvidedService materialProvidedService;
+    @Autowired
+    private MaterialModuleService materialModuleService;
 
     /**
      * 填写项目表
@@ -209,22 +217,22 @@ public class PickIngController extends BaseController {
         Page<PickIng> page = showListService.findNewImgPage(new Page<PickIng>(request, response), pickIng);
         //当判定系统为linux的时候
         if (Global.SYS_TYPE.equals("2")) {
-        List<PickIng> list = page.getList();
-        for (PickIng upload :
-                list) {
-            String mdImg = upload.getMdImg();
-            String newMdImg = "";
-            String[] split = mdImg.split("\\|");
+            List<PickIng> list = page.getList();
+            for (PickIng upload :
+                    list) {
+                String mdImg = upload.getMdImg();
+                String newMdImg = "";
+                String[] split = mdImg.split("\\|");
 //            String reg = "(?i).+?\\.(jpg|gif|bmp)";
-            for (int i = 0; i < split.length; i++) {
+                for (int i = 0; i < split.length; i++) {
 /*                if (split[i].matches(reg)) {
                     newMdImg += split[i] + "|";
                     continue;
                 }*/
-                newMdImg += "http://" + request.getServerName() + split[i] + "|";
+                    newMdImg += "http://" + request.getServerName() + split[i] + "|";
+                }
+                upload.setMdImg(newMdImg);
             }
-            upload.setMdImg(newMdImg);
-        }
         }
         return getBootstrapData(page);
     }
@@ -325,7 +333,7 @@ public class PickIngController extends BaseController {
 
         //先查出所有在物资专职的节点的信息
         List<String> activity = MyActiviUtils.findMdActivity("领料:配网物资专职审核领料单");
-        if (activity.size()>=0) {
+        if (activity.size() >= 0) {
             activity.add("错误提示");
             Page<ShowList> page = showListService.inventoryComparisonData(new Page<ShowList>(request, response), showList, activity);
             return getBootstrapData(page);
@@ -366,7 +374,7 @@ public class PickIngController extends BaseController {
     }
 
     /**
-     * 提前施工流程发起
+     * 物资领料流程发起
      */
     @ResponseBody
     @RequestMapping(value = "save")
@@ -390,9 +398,18 @@ public class PickIngController extends BaseController {
         /**
          * 流程审批
          */
-        /*if (StringUtils.isBlank(showList.getId())) {
-            String number = showListService.findNumber(showList.getProjectId());
+        Project byName = projectService.findByName(showList.getProjectName());
+        projectId = byName.getProjectId();
+        String projectName = byName.getProjectName();
+        String reserveProjectName = byName.getReserveProjectName();
+
+        if (StringUtils.isBlank(showList.getId())) {
+            String number = showListService.findNumber(projectId);
             if (number == null || "".equals(number)) {
+                showList.setsVersion(MyActiviUtils.findDic().getValue());
+                showList.setProjectName(projectName);
+                showList.setProjectId(projectId);
+                showList.setReserveProjectName(reserveProjectName);
                 showList.setTheNumber("1");
             } else {
                 int i = Integer.parseInt(number);
@@ -401,30 +418,33 @@ public class PickIngController extends BaseController {
                 DictValue dic = MyActiviUtils.findDic();
                 String value = dic.getValue();
                 showList.setsVersion(value);
+                showList.setProjectName(projectName);
+                showList.setProjectId(projectId);
+                showList.setReserveProjectName(reserveProjectName);
+                showList.setsVersion(MyActiviUtils.findDic().getValue());
             }
             //新增或编辑表单保存
             showListService.save(showList);//保存
-            //查询项目的领料状态是否不为0
-            String acqStatus = showListService.findAcqStatus(showList);
-            if ("0".equals(acqStatus)) {
-                showListService.updateAcqStatus(showList);
+            //变更项目领料状态,0未发起变更1发起
+            if ("0".equals(byName.getAcquisitionStatus())) {
+                showListService.updateAcqStatus(reserveProjectName);
             }
             //修改项目的状态
             // 启动流程
             Map<String, Object> vars = Maps.newHashMap();
-            vars.put("manager", UserUtils.getUser().getLoginName());
+            vars.put("manager", UserUtils.getByUserName(byName.getAssignment().getConstructionManage()).getLoginName());
             ProcessDefinition p = actProcessService.getProcessDefinition(showList.getAct().getProcDefId());
             String title = showList.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
             actTaskService.startProcess(p.getKey(), "md_acquisition_process", showList.getId(), title, vars);
             j.setMsg("发起领料流程成功!");
             j.getBody().put("targetUrl", "/act/task/process/");
 
-        }*/
+        }
         return j;
     }
 
     /**
-     * 领料申请流程发起
+     * 领料申请流程发起|
      */
     @ResponseBody
     @RequestMapping(value = "pickSave")
@@ -456,7 +476,7 @@ public class PickIngController extends BaseController {
         //配网政策处理专职
         List<String> strings = constructionService.nameFindOffice(loginName);
         boolean flag = false;
-        for (String a :strings) {
+        for (String a : strings) {
             if ("配网政策处理专职".equals(a)) {
                 flag = true;
             }
@@ -647,7 +667,7 @@ public class PickIngController extends BaseController {
             //备注
             showList.setMdText("");
 
-            List<ShowList> insertList =  new ArrayList<>();
+            List<ShowList> insertList = new ArrayList<>();
             insertList.add(showList);
             //将信息和数量存入对应表
             pickIngService.processTemList(insertList);
@@ -665,10 +685,10 @@ public class PickIngController extends BaseController {
      */
     @ResponseBody
     @RequestMapping(value = "exportErpData")
-    public AjaxJson exportErpData(String id, String projectId, HttpServletRequest request, HttpServletResponse response) {
+    public AjaxJson exportErpData(String id, String projectName, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            projectId = URLDecoder.decode(projectId, "UTF-8");
+            projectName = URLDecoder.decode(projectName, "UTF-8");
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
@@ -688,15 +708,131 @@ public class PickIngController extends BaseController {
         //循环数据,根据类型分组
         for (Acquisition acquisition : erpType) {
             String itemType = acquisition.getProType();
-            if ("配网成本".equals(itemType)) {
+            if (itemType.contains("成本")) {
                 cbList.add(acquisition);
             }
         }
         if (cbList.size() > 0) {
             try {
                 String fileName = "导出成本ERP" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
-                List<CapitalExport> capitalExports = pickIngService.cbList(cbList, projectId);
+                List<CapitalExport> capitalExports = pickIngService.cbList(cbList, projectName);
                 new ExportExcel("导出成本ERP", CapitalExport.class).setDataList(capitalExports).write(response, fileName).dispose();
+                List<Acquisition> updateList = new ArrayList<>();
+                List<String> selectList = new ArrayList<>();
+                //修改项目状态可以进场
+                for (Acquisition acquisition : cbList
+                ) {
+                    //获取可以进场的项目信息
+                    if ("1".equals(acquisition.getCanEnter())) {
+                        updateList.add(acquisition);
+                        selectList.add(acquisition.getId());
+                    }
+                }
+                //变更状态
+                if (updateList.size() > 0) {
+                    pickIngService.updateEnterList(updateList);
+                }
+                if (selectList.size() > 0) {
+                    //根据变更的id,查询改同储备项目名称下的领料单,判断是否已经都可进场,若可以进场,修改对应项目的项目状态
+                    List<Acquisition> erpType1 = pickIngService.findErpAll(selectList);
+                    Map<String, String> map = new HashMap<>();
+                    for (Acquisition acquisition : erpType1
+                    ) {
+                        if (map.containsKey(acquisition.getReserveProjectName())) {
+                            //获得key值对应的value值,如果是1-未完成领料,不修改值,如果是2-完成领料,判断该项目下的其它领料单状态,修改状态
+                            String keyValue = map.get(acquisition.getReserveProjectName());
+                            if ("2".equals(keyValue)) {
+                                if ("2".equals(acquisition.getCanEnter())) {
+                                    map.put(acquisition.getReserveProjectName(), "2");
+                                } else {
+                                    map.put(acquisition.getReserveProjectName(), "1");
+                                }
+                            }
+                        } else {
+                            if ("2".equals(acquisition.getCanEnter())) {
+                                map.put(acquisition.getReserveProjectName(), "2");
+                            } else {
+                                map.put(acquisition.getReserveProjectName(), "1");
+                            }
+                        }
+                    }
+                    List<String> updateProjectList = new ArrayList<>();
+                    Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
+                    while (iterator.hasNext()) {
+                        Map.Entry<String, String> next = iterator.next();
+                        String key = next.getKey();
+                        String value = next.getValue();
+                        if ("2".equals(value)) {
+                            updateProjectList.add(key);
+                        }
+                    }
+                    if (updateProjectList.size() > 0) {
+                        pickIngService.updateProjectEnter(updateProjectList);
+                        for (String name :
+                                updateProjectList) {
+                            //查询出所有更改项目状态的信息,判断是否完成土建流程,发送施工流程
+                            Project byName = projectService.findByName(name);
+                            if ("2".equals(byName.getAcquisitionStatus())) {
+                                //判断是否包含土建
+                                boolean electric = false;
+                                //判单钢管杠,水泥杠,存在电气,判断是否包含
+                                List<MaterialInfo> allInfo = projectService.findAllInfo(byName.getId());
+                                if (allInfo.size() > 0) {
+                                    for (MaterialInfo mi : allInfo
+                                    ) {
+                                        String materialName = mi.getMaterialName();
+                                        if (null != materialName && !"".equals(materialName)) {
+                                            //判断项目是否包含描述为钢管杆或水泥杠的物料,存在步入电气流程
+                                            if (materialName.contains("钢管杆") || materialName.contains("水泥杆")) {
+                                                electric = true;
+                                                break;
+                                            }
+                                        }
+                                    }
+                                }
+                                //查询出项目的基础信息,停电线路(如果纯在),人员流转信息
+                                Construction blockAss = projectService.findBlockAss(byName.getId());
+                                Map<String, Object> vars = Maps.newHashMap();
+                                //没用电气及涉电 运行条件
+                                vars.put("no", false);
+                                //没有电气,有涉电 运行条件
+                                vars.put("notContain", false);
+                                //包含电气/涉电-优先电气 运行条件
+                                vars.put("electrical", false);
+                                if (electric) {
+                                    //发送开始电气流程
+                                    vars.put("electrical", true);
+                                } else {
+                                    //没用电气进行涉电
+                                    //获取项目的领料单,查询停电线路
+                                    String blackoutLine = blockAss.getQuantity().getBlackoutLine();
+                                    if (null != blackoutLine && !"".equals(blackoutLine) && !"不涉电".equals(blackoutLine)) {
+                                        //填写停电线路,不为空,-步入发起涉电流程
+                                        vars.put("notContain", true);
+                                    } else {
+                                        vars.put("no", true);
+                                    }
+                                }
+                                MaterialModule materialModule = new MaterialModule();
+                                if (StringUtils.isBlank(materialModule.getId())) {
+                                    vars.put("manager", UserUtils.getByUserName(blockAss.getAssignment().getConstructionManage()).getLoginName());
+                                    materialModule.setProjectId(blockAss.getProjectId());
+                                    materialModule.setProjectName(blockAss.getProjectName());
+                                    materialModule.setReserveProjectName(blockAss.getReserveProjectName());
+                                    //保存项目储备项目名称,项目定义号,项目名称
+                                    materialModuleService.save(materialModule);
+                                    //修改项目状态
+                                    materialModuleService.updateConstructionStatus("1", blockAss.getReserveProjectName());
+                                    String procDefId = projectService.findDefId("sgys");
+                                    // 启动流程
+                                    ProcessDefinition p = actProcessService.getProcessDefinition(materialModule.getAct().getProcDefId());
+                                    String title = materialModule.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                                    actTaskService.startProcess(p.getKey(), "sg_construction_process", materialModule.getId(), title, vars);
+                                }
+                            }
+                        }
+                    }
+                }
                 j.setSuccess(true);
                 j.setMsg("导出成功!");
             } catch (IOException e) {
@@ -706,7 +842,7 @@ public class PickIngController extends BaseController {
             try {
                 String fileName = "没有对应的项目信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
                 List<CapitalExport> nullExports = new ArrayList<>();
-                new ExportExcel("没有对应的项目信息", CapitalExport.class).setDataList(nullExports).write(response,fileName ).dispose();
+                new ExportExcel("没有对应的项目信息", CapitalExport.class).setDataList(nullExports).write(response, fileName).dispose();
             } catch (IOException e) {
                 e.printStackTrace();
             }
@@ -744,7 +880,7 @@ public class PickIngController extends BaseController {
         //循环数据,根据类型分组
         for (Acquisition acquisition : erpType) {
             String itemType = acquisition.getProType();
-            if ("配网资本".equals(itemType)) {
+            if (itemType.contains("资本")) {
                 zbList.add(acquisition);
             }
         }
@@ -754,16 +890,133 @@ public class PickIngController extends BaseController {
                 String fileName = "导出资本ERP" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
                 List<CapitalExport> capitalExports = pickIngService.zbList(zbList, projectId);
                 new ExportExcel("导出资本ERP", CapitalExport.class).setDataList(capitalExports).write(response, fileName).dispose();
+                List<Acquisition> updateList = new ArrayList<>();
+                List<String> selectList = new ArrayList<>();
+                //修改项目状态可以进场
+                for (Acquisition acquisition : zbList
+                ) {
+                    //获取可以进场的项目信息
+                    if ("1".equals(acquisition.getCanEnter())) {
+                        updateList.add(acquisition);
+                        selectList.add(acquisition.getId());
+                    }
+                }
+                //变更状态
+                if (updateList.size() > 0) {
+                    pickIngService.updateEnterList(updateList);
+                }
+                if (selectList.size() > 0) {
+                    //根据变更的id,查询改同储备项目名称下的领料单,判断是否已经都可进场,若可以进场,修改对应项目的项目状态
+                    List<Acquisition> erpType1 = pickIngService.findErpAll(selectList);
+                    Map<String, String> map = new HashMap<>();
+                    for (Acquisition acquisition : erpType1
+                    ) {
+                        if (map.containsKey(acquisition.getReserveProjectName())) {
+                            //获得key值对应的value值,如果是1-未完成领料,不修改值,如果是2-完成领料,判断该项目下的其它领料单状态,修改状态
+                            String keyValue = map.get(acquisition.getReserveProjectName());
+                            if ("2".equals(keyValue)) {
+                                if ("2".equals(acquisition.getCanEnter())) {
+                                    map.put(acquisition.getReserveProjectName(), "2");
+                                } else {
+                                    map.put(acquisition.getReserveProjectName(), "1");
+                                }
+                            }
+                        } else {
+                            if ("2".equals(acquisition.getCanEnter())) {
+                                map.put(acquisition.getReserveProjectName(), "2");
+                            } else {
+                                map.put(acquisition.getReserveProjectName(), "1");
+                            }
+                        }
+                    }
+                    List<String> updateProjectList = new ArrayList<>();
+                    Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
+                    while (iterator.hasNext()) {
+                        Map.Entry<String, String> next = iterator.next();
+                        String key = next.getKey();
+                        String value = next.getValue();
+                        if ("2".equals(value)) {
+                            updateProjectList.add(key);
+                        }
+                    }
+                    if (updateProjectList.size() > 0) {
+                        pickIngService.updateProjectEnter(updateProjectList);
+                        for (String name :
+                                updateProjectList) {
+                            //查询出所有更改项目状态的信息,判断是否完成土建流程,发送施工流程
+                            Project byName = projectService.findByName(name);
+                            if ("2".equals(byName.getAcquisitionStatus())) {
+                                //判断是否包含电气
+
+                                boolean electric = false;
+                                //判单钢管杠,水泥杠,存在电气,判断是否包含
+                                List<MaterialInfo> allInfo = projectService.findAllInfo(byName.getId());
+                                if (allInfo.size() > 0) {
+                                    for (MaterialInfo mi : allInfo
+                                    ) {
+                                        String materialName = mi.getMaterialName();
+                                        if (null != materialName && !"".equals(materialName)) {
+                                            //判断项目是否包含描述为钢管杆或水泥杠的物料,存在步入电气流程
+                                            if (materialName.contains("钢管杆") || materialName.contains("水泥杆")) {
+                                                electric = true;
+                                                break;
+                                            }
+                                        }
+                                    }
+                                }
+                                //查询出项目的基础信息,停电线路(如果纯在),人员流转信息
+                                Construction blockAss = projectService.findBlockAss(byName.getId());
+                                Map<String, Object> vars = Maps.newHashMap();
+                                //没用电气及涉电 运行条件
+                                vars.put("no", false);
+                                //没有电气,有涉电 运行条件
+                                vars.put("notContain", false);
+                                //包含电气/涉电-优先电气 运行条件
+                                vars.put("electrical", false);
+                                if (electric) {
+                                    //发送开始电气流程
+                                    vars.put("electrical", true);
+                                } else {
+                                    //没用电气进行涉电
+                                    //获取项目的领料单,查询停电线路
+                                    String blackoutLine = blockAss.getQuantity().getBlackoutLine();
+                                    if (null != blackoutLine && !"".equals(blackoutLine) && !"不涉电".equals(blackoutLine)) {
+                                        //填写停电线路,不为空,-步入发起涉电流程
+                                        vars.put("notContain", true);
+                                    } else {
+                                        vars.put("no", true);
+                                    }
+                                }
+                                MaterialModule materialModule = new MaterialModule();
+                                if (StringUtils.isBlank(materialModule.getId())) {
+                                    vars.put("manager", UserUtils.getByUserName(blockAss.getAssignment().getConstructionManage()).getLoginName());
+                                    materialModule.setProjectId(blockAss.getProjectId());
+                                    materialModule.setProjectName(blockAss.getProjectName());
+                                    materialModule.setReserveProjectName(blockAss.getReserveProjectName());
+                                    //保存项目储备项目名称,项目定义号,项目名称
+                                    materialModuleService.save(materialModule);
+                                    //修改项目状态
+                                    materialModuleService.updateConstructionStatus("1", blockAss.getReserveProjectName());
+                                    String procDefId = projectService.findDefId("sgys");
+                                    // 启动流程
+                                    ProcessDefinition p = actProcessService.getProcessDefinition(procDefId);
+                                    String title = materialModule.getCurrentUser().getName() + "在" + DateUtils.getDateTime() + "发起" + p.getName();
+                                    actTaskService.startProcess(p.getKey(), "sg_construction_process", materialModule.getId(), title, vars);
+                                }
+                            }
+                        }
+                    }
+                }
                 j.setSuccess(true);
                 j.setMsg("导出成功!");
             } catch (IOException e) {
                 e.printStackTrace();
             }
-        }else {
+        } else {
             try {
                 String fileName = "没有对应的项目信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
                 List<CapitalExport> nullExports = new ArrayList<>();
-                new ExportExcel("没有对应的项目信息", CapitalExport.class).setDataList(nullExports).write(response,fileName ).dispose();
+                new ExportExcel("没有对应的项目信息", CapitalExport.class).setDataList(nullExports).write(response, fileName).dispose();
             } catch (IOException e) {
                 e.printStackTrace();
             }
@@ -873,6 +1126,20 @@ public class PickIngController extends BaseController {
         return j;
     }
 
+    /**
+     * 修改项目的是否可以经常状态
+     */
+    @ResponseBody
+    @RequestMapping(value = "updateCanEnter")
+    public AjaxJson updateCanEnter(Act act) {
+        AjaxJson j = new AjaxJson();
+        //获取流程定义号,更具定义号获取项目的储备项目名称
+        String procInsId = act.getProcInsId();
+        //修改项目信息中的是否可以进场
+        pickIngService.updateEnter(procInsId);
+        j.setMsg("进场成功!");
+        return j;
+    }
 }
 
 

+ 15 - 5
src/main/java/com/jeeplus/modules/sg/settActivi/entity/SettActivi.java

@@ -9,7 +9,9 @@ public class SettActivi extends ActEntity<SettActivi> {
     //项目定义号
     private String projectId;
     //项目需求名称
-    private String requireName;
+    private String projectName;
+    //储备项目名称
+    private String reserveProjectName;
     //项目经理
     private String constructionUnitManage;
 
@@ -21,12 +23,20 @@ public class SettActivi extends ActEntity<SettActivi> {
         this.projectId = projectId;
     }
 
-    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 getReserveProjectName() {
+        return reserveProjectName;
+    }
+
+    public void setReserveProjectName(String reserveProjectName) {
+        this.reserveProjectName = reserveProjectName;
     }
 
     public String getConstructionUnitManage() {

+ 2 - 0
src/main/java/com/jeeplus/modules/sg/settActivi/mapper/SettActiviMapper.java

@@ -45,4 +45,6 @@ public interface SettActiviMapper extends BaseMapper<SettActivi> {
     void updateSettMark(SettList settList);
 
     SettActivi exportFind(String procInsId);
+
+    void insertSett(SettActivi settActivi);
 }

+ 32 - 2
src/main/java/com/jeeplus/modules/sg/settActivi/mapper/xml/SettActiviMapper.xml

@@ -122,7 +122,8 @@
         del_flag,
         remarks,
         projectId,
-        requireName
+        projectName,
+       reserveProjectName
         )VALUES
         <foreach collection="list" item="item" index="index" separator=",">
             (
@@ -134,7 +135,8 @@
             #{item.delFlag},
             #{item.remarks},
             #{item.projectId},
-            #{item.requireName}
+            #{item.projectName},
+            #{item.reserveProjectName}
             )
         </foreach>
     </insert>
@@ -218,4 +220,32 @@
         where a.proc_ins_id = #{procInsId}
     </select>
 
+    <insert id="insertSett">
+        replace into xm_settlement_process(
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        remarks,
+        projectId,
+        projectName,
+        reserveProjectName
+        )VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.remarks},
+            #{item.projectId},
+            #{item.projectName},
+            #{item.reserveProjectName}
+            )
+        </foreach>
+    </insert>
 </mapper>

+ 5 - 0
src/main/java/com/jeeplus/modules/sg/settActivi/service/SettActiviService.java

@@ -102,4 +102,9 @@ public class SettActiviService extends CrudService<SettActiviMapper, SettActivi>
 	public SettActivi exportFind(String procInsId) {
 		return settActiviMapper.exportFind(procInsId);
 	}
+
+	@Transactional(readOnly =false)
+	public void insertSett(SettActivi settActivi) {
+		settActiviMapper.insertSett(settActivi);
+	}
 }

+ 2 - 2
src/main/java/com/jeeplus/modules/sg/settActivi/web/SettActiviController.java

@@ -241,7 +241,7 @@ public class SettActiviController extends BaseController {
         for (SettActivi a : allSett1) {
             List<SettList> lists = new ArrayList<>();
             for (SettList list : settLists) {
-                if (a.getRequireName().equals(list.getRequireName())) {
+                if (a.getProjectName().equals(list.getRequireName())) {
                     list.setProcInsId(a.getProcInsId());
                     lists.add(list);
                 }
@@ -287,7 +287,7 @@ public class SettActiviController extends BaseController {
         data.put("list", list);
         SettActivi settActivi = settActiviService.exportFind(settList.getProcInsId());
         data.put("projectId",settActivi.getProjectId());
-        data.put("projectName", settActivi.getRequireName());
+        data.put("projectName", settActivi.getProjectName());
         data.put("manager", settActivi.getConstructionUnitManage());
         File docFile = new File(path + "\\镇江本部配网工程竣工甲供材核对表.xls");
         FreemarkerUtil.generateFile(data, template, docFile);

+ 34 - 0
src/main/webapp/webpage/modules/sg/managementcenter/activiti/advancePolicy.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>

+ 73 - 0
src/main/webapp/webpage/modules/sg/managementcenter/activiti/advancePolicy.jsp

@@ -0,0 +1,73 @@
+<%@ 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="advancePolicy.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="construction"
+                               action="${ctx}/managementcenter/activiti/policySave" 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/advancePolicyData"
+                                                    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>

+ 4 - 4
src/main/webapp/webpage/modules/sg/managementcenter/materialproject/materialProjectForm.jsp

@@ -86,10 +86,10 @@
 					<td class="width-35">
 						<c:choose>
 							<c:when test="${!aBoolean}">
-								<form:input path="projectId" readonly="true" htmlEscape="false"  class="form-control required"/>
+								<form:input path="projectId" readonly="true" htmlEscape="false"  class="form-control"/>
 							</c:when>
 							<c:otherwise>
-								<form:input path="projectId" htmlEscape="false"  class="form-control required"/>
+								<form:input path="projectId" htmlEscape="false"  class="form-control"/>
 							</c:otherwise>
 						</c:choose>
 					</td>
@@ -97,10 +97,10 @@
 					<td class="width-35">
 						<c:choose>
 							<c:when test="${!aBoolean}">
-								<form:input path="projectName" readonly="true" htmlEscape="false"  class="form-control required"/>
+								<form:input path="projectName" readonly="true" htmlEscape="false"  class="form-control"/>
 							</c:when>
 							<c:otherwise>
-								<form:input path="projectName" htmlEscape="false"  class="form-control required"/>
+								<form:input path="projectName" htmlEscape="false"  class="form-control"/>
 							</c:otherwise>
 						</c:choose>
 					</td>

+ 33 - 16
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js

@@ -1,8 +1,6 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <script>
 $(document).ready(function() {
-	var procInsId = $("#procInsId").val();
-	// alert(procInsId);
 	$('#testPicTable').bootstrapTable({
 		  //请求方法
                method: 'post',
@@ -38,7 +36,7 @@ $(document).ready(function() {
                //可供选择的每页的行数(*)    
                pageList: [10, 25, 50, 100],
                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
-               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId=${materialModule.act.procInsId}",
                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
                //queryParamsType:'',   
                ////查询参数,每次调用是会带上这个参数,可自定义                         
@@ -105,10 +103,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  
@@ -137,25 +135,44 @@ $(document).ready(function() {
 		  $('#testPicTable').bootstrapTable('refresh');
 		});
 
+	function check() {
+		var flag = true;
+		var actualStart = $("#actualStart").val();
+		var actualEnd = $("#actualEnd").val();
+		var completedWork = $("#completedWork").val();
+		var endConstruction = $("#endConstruction").val();
+		var endLoad = $("#endLoad").val();
+		if (actualStart == ""
+			|| actualEnd == ""
+			|| completedWork == ""
+			|| endConstruction == ""
+			|| endLoad == "") {
+			flag = false;
+		}
+		return flag;
+	}
+
 	$("#agree").click(function () {
+		var flag = check();
+		if (!flag){
+			jp.error("请将需要填写的内容填写完毕");
+			return false;
+		}
 		var currentFileValues = $("input[name='pic']").val();
-		var imgName = $("#imgName").val();
 		if (currentFileValues == "" || currentFileValues == null) {
 			jp.error("请上传文件");
 		} else {
+			var formData = $('#inputForm').serialize();
 			jp.prompt("审核意见", function (message) {
 				jp.post("${ctx}/act/task/PowerEndTask",
-					{
-						"taskId":"${materialModule.act.taskId}",
-						"taskName":"${materialModule.act.taskName}",
-						"taskDefKey":"${materialModule.act.taskDefKey}",
-						"procInsId":"${materialModule.act.procInsId}",
-						"procDefId":"${materialModule.act.procDefId}",
-						"imgName":imgName,
+					formData+"&comment="+window.encodeURI(message)+"&flag=yes"
+					/*{
+						/!*"materialModule":formData,
 						"flag":"yes",
 						"pic":currentFileValues,
-						"comment":window.encodeURI(message)
-					},
+						"comment":window.encodeURI(message)*!/
+
+					}*/,
 					function (data) {
 						if(data.success){
 							jp.success(data.msg);
@@ -167,7 +184,7 @@ $(document).ready(function() {
 	});
 
 });
-		
+
   function getIdSelections() {
         return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
             return row.id

+ 165 - 66
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp

@@ -1,73 +1,172 @@
 <%@ 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="PowerEnd.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="PowerEnd.js" %>
 </head>
 <body>
-	<div class="wrapper wrapper-content">
-	<div class="panel panel-primary">
-	<div class="panel-heading">
-		<h3 class="panel-title">涉电竣工流程</h3>
-	</div>
-	<div class="panel-body">
-	<!-- 表格 -->
-	<table id="testPicTable"   data-toolbar="#toolbar"></table>
-		<div class="panel-body">
-			<form:form id="inputForm" modelAttribute="materialModule" class="form-horizontal">
-				<form:hidden path="id"/>
-				<form:hidden path="act.taskId"/>
-				<form:hidden path="act.taskName"/>
-				<form:hidden path="act.taskDefKey"/>
-				<form:hidden path="act.procInsId"/>
-				<form:hidden path="act.procDefId"/>
-				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
-				<table class="table table-bordered">
-					<tbody>
-					<tr>
-						<td class="width-35 active" style="text-align: right">项目名称:</td>
-						<td class="width-35">
-								${materialShow.projectName}
-						</td>
-					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
-						<td class="width-35">
-							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
-						</td>
-					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
-						<td class="width-35">
-							<input id="imgName" type="text" class="form-control required">
-						</td>
-					</tr>
-					</tbody>
-				</table>
-			</form:form>
-			<div class="row">
-				<div class="col-sm-3"></div>
-				<div class="col-sm-6">
-					<div class="form-group text-center">
-						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
-					</div>
-				</div>
-			</div>
-			<c:if test="${not empty materialModule.id}">
-				<act:flowChart procInsId="${materialModule.act.procInsId}"/>
-				<act:histoicFlow procInsId="${materialModule.act.procInsId}" />
-			</c:if>
-		</div>
-    <!-- context menu -->
-    <ul id="context-menu" class="dropdown-menu">
-    </ul>  
-	</div>
-	</div>
-	</div>
+<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"/>
+                    <table class="table table-bordered">
+                        <tbody>
+                        <form:hidden path="reserveProjectName"/>
+                        <form:hidden path="projectId"/>
+                        <tr>
+                            <td class="width-15 active">项目名称 :</td>
+                            <td class="width-35">
+                                <form:input id="projectName" path="projectName" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active">工程编号:</td>
+                            <td class="width-35">
+                                <form:input id="projectNumber" path="projectNumber" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">建设单位:</td>
+                            <td class="width-35">
+                                <form:input id="buildingUnit" path="buildingUnit" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active">施工单位:</td>
+                            <td class="width-35">
+                                <form:input id="constructionUnit" path="constructionUnit" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">实际开工时间:</td>
+                            <td class="width-35">
+                                <form:input id="actualStart" path="actualStart"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active">实际竣工时间:</td>
+                            <td class="width-35">
+                                <form:input id="actualEnd" path="actualEnd"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">项目负责人:</td>
+                            <td class="width-35">
+                                <form:input id="projectManager" path="projectManager" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active">施工负责人:</td>
+                            <td class="width-35">
+                                <form:input id="personInCharge" path="personInCharge" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">线路名称:</td>
+                            <td class="width-35">
+                                <form:input id="lineName" path="lineName" readonly="true"
+                                            cssClass="form-control"/>
+                            </td>
+                            <td class="width-15 active">工作地点:</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">作业方式:</td>
+                            <td class="width-35">
+                                <form:input id="wayOfWorking" path="wayOfWorking" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active">开工新建工作量:</td>
+                            <td class="width-35">
+                                <form:input id="startConstruction" path="startConstruction" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">开工拆除工作量:</td>
+                            <td class="width-35">
+                                <form:input id="startLoad" path="startLoad" readonly="true"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active">开工交叉跨越:</td>
+                            <td class="width-35">
+                                <form:input path="startCrossover" cssClass="form-control" readonly="true"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">竣工作业方式:</td>
+                            <td class="width-35">
+                                <form:input id="completedWork" path="completedWork"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active">竣工新建工作量:</td>
+                            <td class="width-35">
+                                <form:input id="endConstruction" path="endConstruction" cssClass="form-control required"
+                                            placeholder="必填"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">竣工拆除工作量:</td>
+                            <td class="width-35">
+                                <form:input id="endLoad" path="endLoad"
+                                            cssClass="form-control required" placeholder="必填"/>
+                            </td>
+                            <td class="width-15 active">竣工交叉跨越:</td>
+                            <td class="width-35">
+                                <form:select path="endCrossover" cssClass="form-control">
+                                    <form:option value="无"/>
+                                    <form:option value="有"/>
+                                </form:select>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label><font color="red">*</font>文件上传:</label></td>
+                            <td class="width-35">
+                                <sys:fileUpload path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}"
+                                                type="file" uploadPath="/materialModule"></sys:fileUpload>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </form:form>
+                <div class="row">
+                    <div class="col-sm-3"></div>
+                    <div class="col-sm-6">
+                        <div class="form-group text-center">
+                            <input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交"/>&nbsp;
+                        </div>
+                    </div>
+                </div>
+                <c:if test="${not empty materialModule.id}">
+                    <act:flowChart procInsId="${materialModule.act.procInsId}"/>
+                    <act:histoicFlow procInsId="${materialModule.act.procInsId}"/>
+                </c:if>
+            </div>
+            <!-- context menu -->
+            <ul id="context-menu" class="dropdown-menu">
+            </ul>
+        </div>
+    </div>
+</div>
 </body>
 </html>

+ 43 - 19
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.js

@@ -1,7 +1,6 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <script>
 $(document).ready(function() {
-	var procInsId = $("#procInsId").val();
 	$('#testPicTable').bootstrapTable({
 		  //请求方法
                method: 'post',
@@ -37,7 +36,7 @@ $(document).ready(function() {
                //可供选择的每页的行数(*)    
                pageList: [10, 25, 50, 100],
                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
-               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId=${materialModule.act.procInsId}",
                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
                //queryParamsType:'',   
                ////查询参数,每次调用是会带上这个参数,可自定义                         
@@ -104,10 +103,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  
@@ -136,31 +135,56 @@ $(document).ready(function() {
 		  $('#testPicTable').bootstrapTable('refresh');
 		});
 
+	function check() {
+		var flag = true;
+		var plannedStart = $("#plannedStart").val();
+		var plannedEnd = $("#plannedEnd").val();
+		var projectManager = $("#projectManager").val();
+		var personInCharge = $("#personInCharge").val();
+		var workPlace = $("#workPlace").val();
+		var wayOfWorking = $("#wayOfWorking").val();
+		var startConstruction = $("#startConstruction").val();
+		var startLoad = $("#startLoad").val();
+		if (plannedStart == ""
+			|| projectManager == ""
+			|| personInCharge == ""
+			|| plannedEnd == ""
+			|| workPlace == ""
+			|| wayOfWorking == ""
+			|| startConstruction == ""
+			|| startLoad == "") {
+			flag = false;
+		}
+		return flag;
+	}
+
 	$("#agree").click(function () {
+		var flag = check();
+		if (!flag){
+			jp.error("请将需要填写的内容填写完毕");
+			return false;
+		}
 		var currentFileValues = $("input[name='pic']").val();
-		var imgName = $("#imgName").val();
 		if (currentFileValues == "" || currentFileValues == null) {
 			jp.error("请上传文件");
 		} else {
+			var formData = $('#inputForm').serialize();
 			jp.prompt("审核意见", function (message) {
 				jp.post("${ctx}/act/task/PowerStartTask",
-					{
-						"taskId":"${materialModule.act.taskId}",
-						"taskName":"${materialModule.act.taskName}",
-						"taskDefKey":"${materialModule.act.taskDefKey}",
-						"procInsId":"${materialModule.act.procInsId}",
-						"procDefId":"${materialModule.act.procDefId}",
-						"imgName":imgName,
+					formData+"&comment="+window.encodeURI(message)+"&flag=yes"
+					/*{
+						/!*"materialModule":formData,
 						"flag":"yes",
 						"pic":currentFileValues,
-						"comment":window.encodeURI(message)
-					},
+						"comment":window.encodeURI(message)*!/
+
+					}*/,
 					function (data) {
-					if(data.success){
-						jp.success(data.msg);
-						jp.go("${ctx}/act/task/todo")
-					}
-				})
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
 			});
 		}
 	});

+ 104 - 6
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerStart.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>涉电开工流程</title>
+	<title>涉电开工报告</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">涉电开工流程</h3>
+		<h3 class="panel-title">涉电开工报告</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->
@@ -26,17 +26,115 @@
 				<form:hidden path="act.taskDefKey"/>
 				<form:hidden path="act.procInsId"/>
 				<form:hidden path="act.procDefId"/>
-				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
 				<table class="table table-bordered">
 					<tbody>
+					<form:hidden path="reserveProjectName"/>
+					<form:hidden path="projectId"/>
 					<tr>
-						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-15 active">项目名称 :</td>
 						<td class="width-35">
-								${materialShow.projectName}
+							<form:input id="projectName" path="projectName" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">工程编号:</td>
+						<td class="width-35">
+							<form:input id="projectNumber" path="projectNumber" readonly="true"
+										cssClass="form-control"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">建设单位:</td>
+						<td class="width-35">
+							<form:input id="buildingUnit" path="buildingUnit" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">施工单位:</td>
+						<td class="width-35">
+							<form:input id="constructionUnit" path="constructionUnit" readonly="true"
+										cssClass="form-control"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">计划开工时间:</td>
+						<td class="width-35">
+							<form:input id="plannedStart" path="plannedStart"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">计划竣工时间:</td>
+						<td class="width-35">
+							<form:input id="plannedEnd" path="plannedEnd"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">项目负责人:</td>
+						<td class="width-35">
+							<form:input id="projectManager" path="projectManager"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">施工负责人:</td>
+						<td class="width-35">
+							<form:input id="personInCharge" path="personInCharge"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">线路名称:</td>
+						<td class="width-35">
+							<form:input id="lineName" path="lineName" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">工作地点:</td>
+						<td class="width-35">
+							<form:input id="workPlace" path="workPlace"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">参考作业方式:</td>
+						<td class="width-35">
+							<form:textarea id="operationMethod" path="operationMethod" readonly="true"
+										   cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">参考新建工作量:</td>
+						<td class="width-35">
+							<form:textarea id="newWorkload" path="newWorkload" readonly="true"
+										   cssClass="form-control"/>
 						</td>
 					</tr>
 					<tr>
-						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-15 active">参考拆除工作量:</td>
+						<td class="width-35">
+							<form:textarea id="demolitionWorkload" path="demolitionWorkload" readonly="true"
+										   cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">作业方式:</td>
+						<td class="width-35">
+							<form:input id="wayOfWorking" path="wayOfWorking"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">新建工作量:</td>
+						<td class="width-35">
+							<form:input id="startConstruction" path="startConstruction"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">拆除工作量:</td>
+						<td class="width-35">
+							<form:input id="startLoad" path="startLoad"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">交叉跨越:</td>
+						<td class="width-35">
+							<form:select path="startCrossover" cssClass="form-control">
+								<form:option value="无"/>
+								<form:option value="有"/>
+							</form:select>
+						</td>
+						<td class="width-15 active"><label><font color="red">*</font>文件上传:</label></td>
 						<td class="width-35">
 							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>

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

@@ -105,10 +105,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  
@@ -167,6 +167,7 @@ $(document).ready(function() {
 					"taskDefKey":"${materialModule.act.taskDefKey}",
 					"procInsId":"${materialModule.act.procInsId}",
 					"procDefId":"${materialModule.act.procDefId}",
+					"severalTimes":"${materialModule.severalTimes}",
 					"flag":"second",
 					"comment":window.encodeURI(message)
 				},

+ 2 - 15
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerWhether.jsp

@@ -8,11 +8,6 @@
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
 	<%@include file="PowerWhether.js"%>
-	<script type="text/javascript">
-		$(document).ready(function() {
-
-		});
-	</script>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
@@ -32,22 +27,14 @@
 				<form:hidden path="act.procInsId"/>
 				<form:hidden path="act.procDefId"/>
 				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
-				<table class="table table-bordered">
-					<tbody>
-					<tr>
-						<td class="width-35 active" style="text-align: right">项目名称:${materialShow.projectName}</td>
-						<td class="width-35">项目类型:${materialShow.projectType}</td>
-					</tr>
-					</tbody>
-				</table>
 			</form:form>
 			<div class="row">
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">
 					<div class="form-group text-center">
-						<input id="finish" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="无二次涉电" />&nbsp;
+						<input id="finish" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="审核通过" />&nbsp;
 						<input id="second" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="二次涉电" />&nbsp;
-						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="审核不通过" />&nbsp;
+						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="涉电竣工有误" />&nbsp;
 					</div>
 				</div>
 			</div>

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

@@ -105,10 +105,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  
@@ -151,6 +151,8 @@ $(document).ready(function() {
 						"taskDefKey":"${materialModule.act.taskDefKey}",
 						"procInsId":"${materialModule.act.procInsId}",
 						"procDefId":"${materialModule.act.procDefId}",
+						"reserveProjectName":"${materialModule.reserveProjectName}",
+						"id":"${materialModule.id}",
 						"imgName":imgName,
 						"flag":"yes",
 						"pic":currentFileValues,

+ 1 - 12
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalEnd.jsp

@@ -8,11 +8,6 @@
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
 	<%@include file="electricalEnd.js"%>
-	<script type="text/javascript">
-		$(document).ready(function() {
-
-		});
-	</script>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
@@ -37,7 +32,7 @@
 					<tr>
 						<td class="width-35 active" style="text-align: right">项目名称:</td>
 						<td class="width-35">
-								${materialShow.projectName}
+								${materialModule.projectName}
 						</td>
 					</tr>
 					<tr>
@@ -46,12 +41,6 @@
 							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>
 					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
-						<td class="width-35">
-							<input id="imgName" type="text" class="form-control required">
-						</td>
-					</tr>
 					</tbody>
 				</table>
 			</form:form>

+ 40 - 16
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.js

@@ -1,7 +1,6 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <script>
 $(document).ready(function() {
-	var procInsId = $("#procInsId").val();
 	// alert(procInsId);
 	$('#testPicTable').bootstrapTable({
 		  //请求方法
@@ -38,7 +37,7 @@ $(document).ready(function() {
                //可供选择的每页的行数(*)    
                pageList: [10, 25, 50, 100],
                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
-               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId=${materialModule.act.procInsId}",
                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
                //queryParamsType:'',   
                ////查询参数,每次调用是会带上这个参数,可自定义                         
@@ -81,10 +80,10 @@ $(document).ready(function() {
 			$("#search-collapse").slideToggle();
 		},
                columns: [/*{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '标题',
 				   sortable: true,
-				   sortName: 'uId'
+				   sortName: 'uid'
 				   ,formatter:function(value, row , index){
 					   value = jp.unescapeHTML(value);
 				   <c:choose>
@@ -125,10 +124,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  
@@ -157,25 +156,50 @@ $(document).ready(function() {
 		  $('#testPicTable').bootstrapTable('refresh');
 		});
 
+	function check() {
+		var flag = true;
+		var plannedStart = $("#plannedStart").val();
+		var plannedEnd = $("#plannedEnd").val();
+		var projectManager = $("#projectManager").val();
+		var personInCharge = $("#personInCharge").val();
+		var workPlace = $("#workPlace").val();
+		var wayOfWorking = $("#wayOfWorking").val();
+		var startConstruction = $("#startConstruction").val();
+		var startLoad = $("#startLoad").val();
+		if (plannedStart == ""
+			|| projectManager == ""
+			|| personInCharge == ""
+			|| plannedEnd == ""
+			|| workPlace == ""
+			|| wayOfWorking == ""
+			|| startConstruction == ""
+			|| startLoad == "") {
+			flag = false;
+		}
+		return flag;
+	}
+
 	$("#agree").click(function () {
+		var flag = check();
+		if (!flag){
+			jp.error("请将需要填写的内容填写完毕");
+			return false;
+		}
 		var currentFileValues = $("input[name='pic']").val();
-		var imgName = $("#imgName").val();
 		if (currentFileValues == "" || currentFileValues == null) {
 			jp.error("请上传文件");
 		} else {
+			var formData = $('#inputForm').serialize();
 			jp.prompt("审核意见", function (message) {
 				jp.post("${ctx}/act/task/electricalStartTask",
-					{
-						"taskId":"${materialModule.act.taskId}",
-						"taskName":"${materialModule.act.taskName}",
-						"taskDefKey":"${materialModule.act.taskDefKey}",
-						"procInsId":"${materialModule.act.procInsId}",
-						"procDefId":"${materialModule.act.procDefId}",
-						"imgName":imgName,
+					formData+"&comment="+window.encodeURI(message)+"&flag=yes"
+					/*{
+						/!*"materialModule":formData,
 						"flag":"yes",
 						"pic":currentFileValues,
-						"comment":window.encodeURI(message)
-					},
+						"comment":window.encodeURI(message)*!/
+
+					}*/,
 					function (data) {
 						if(data.success){
 							jp.success(data.msg);

+ 101 - 9
src/main/webapp/webpage/modules/sg/materialmodule/activiti/electricalStart.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>电气开工流程</title>
+	<title>电气开工报告</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">电气开工流程</h3>
+		<h3 class="panel-title">电气开工报告</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->
@@ -26,25 +26,117 @@
 				<form:hidden path="act.taskDefKey"/>
 				<form:hidden path="act.procInsId"/>
 				<form:hidden path="act.procDefId"/>
-				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
 				<table class="table table-bordered">
 					<tbody>
+					<form:hidden path="reserveProjectName"/>
+					<form:hidden path="projectId"/>
 					<tr>
-						<td class="width-35 active" style="text-align: right">项目名称:</td>
+						<td class="width-15 active">项目名称 :</td>
 						<td class="width-35">
-								${materialShow.projectName}
+							<form:input id="projectName" path="projectName" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">工程编号:</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"><font color="red">*</font>文件上传:</label></td>
+						<td class="width-15 active">建设单位:</td>
 						<td class="width-35">
-							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
+							<form:input id="buildingUnit" path="buildingUnit" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">施工单位:</td>
+						<td class="width-35">
+							<form:input id="constructionUnit" path="constructionUnit" readonly="true"
+										cssClass="form-control"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">计划开工时间:</td>
+						<td class="width-35">
+							<form:input id="plannedStart" path="plannedStart"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">计划竣工时间:</td>
+						<td class="width-35">
+							<form:input id="plannedEnd" path="plannedEnd"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">项目负责人:</td>
+						<td class="width-35">
+							<form:input id="projectManager" path="projectManager"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">施工负责人:</td>
+						<td class="width-35">
+							<form:input id="personInCharge" path="personInCharge"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">线路名称:</td>
+						<td class="width-35">
+							<form:input id="lineName" path="lineName" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">工作地点:</td>
+						<td class="width-35">
+							<form:input id="workPlace" path="workPlace"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">参考作业方式:</td>
+						<td class="width-35">
+							<form:textarea id="operationMethod" path="operationMethod" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">参考新建工作量:</td>
+						<td class="width-35">
+							<form:textarea id="newWorkload" path="newWorkload" readonly="true"
+										cssClass="form-control"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">参考拆除工作量:</td>
+						<td class="width-35">
+							<form:textarea id="demolitionWorkload" path="demolitionWorkload" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">作业方式:</td>
+						<td class="width-35">
+							<form:input id="wayOfWorking" path="wayOfWorking"
+										cssClass="form-control required" placeholder="必填"/>
 						</td>
 					</tr>
 					<tr>
-						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>填写信息:</label></td>
+						<td class="width-15 active">新建工作量:</td>
+						<td class="width-35">
+							<form:input id="startConstruction" path="startConstruction"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">拆除工作量:</td>
 						<td class="width-35">
-							<input id="imgName" type="text" class="form-control required">
+							<form:input id="startLoad" path="startLoad"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">交叉跨越:</td>
+						<td class="width-35">
+								<form:select path="startCrossover" cssClass="form-control">
+									<form:option value="无"/>
+									<form:option value="有"/>
+								</form:select>
+						</td>
+						<td class="width-15 active"><label><font color="red">*</font>文件上传:</label></td>
+						<td class="width-35">
+							<sys:fileUpload  path="pic" fileNumLimit="50" fileSizeLimit="50" value="${testPic.pic}" type="file" uploadPath="/materialModule"></sys:fileUpload>
 						</td>
 					</tr>
 					</tbody>

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

@@ -104,10 +104,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  

+ 0 - 36
src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.js

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

+ 67 - 58
src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp

@@ -1,67 +1,76 @@
-<%@ page pageEncoding="UTF-8"%>
-<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ 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="materialModuleForm.js"%>
+    <title>施工模块项目发起流程</title>
+    <meta name="decorator" content="ani"/>
+    <!-- SUMMERNOTE -->
+    <%@include file="/webpage/include/summernote.jsp" %>
+    <%@include file="materialModuleForm.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="materialModule" action="${ctx}/picking/activiti/save" method="post" class="form-horizontal">
-						<input type="hidden" id="procDefId" value="${materialModule.act.procDefId}">
-						<div class="form-group text-center">
-							<h3> 领料申请</h3>
-						</div>
-						<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/materialDataPicking" id="project" name="projectId" value="${showList.projectName}" labelName="project.requireName" labelValue="${showList.projectName}"
-													title="选择项目号" cssClass="form-control required" fieldLabels="${fns:urlEncode('项目需求名称|工程编号|项目名称|项目定义号')}" fieldKeys="requireName|projecId|projectName|projectNumber" searchLabels="${fns:urlEncode('项目需求名称')}" searchKeys="requireName"  isMultiSelected="false"></sys:itemselect>
-								</td>
-							</tr>
-							<tr>
-								<td class="width-15 active"><label class="pull-right">选择项目类型:</label></td>
-								<td>
-									<form:checkboxes class="i-checks form-control required" path="projectType" items="${fns:getDictList('sg_electricity_involved')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-								</td>
-<%--								<td class="width-35"><input class="form-control" type="text" id="projectType"/></td>--%>
-							</tr>
-							</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="contain" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="提交" />&nbsp;
-							</div>
-						</div>
-					</div>
-					<c:if test="${not empty showList.id}">
-						<act:flowChart procInsId="${showList.act.procInsId}"/>
-						<act:histoicFlow procInsId="${showList.act.procInsId}" />
-					</c:if>
-				</div>
-			</div>
-		</div>
-	</div>
+    <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="materialModule" action="${ctx}/materialmodule/activiti/save"
+                               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/ysDataPicking"
+                                                    id="projectId" name="projectId"
+                                                    value="${project.projectId}"
+                                                    labelName="project.projectId"
+                                                    labelValue="${project.projectId}"
+                                                    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>
+                    <c:if test="${not empty materialModule.id}">
+                        <act:flowChart procInsId="${materialModule.act.procInsId}"/>
+                        <act:histoicFlow procInsId="${materialModule.act.procInsId}"/>
+                    </c:if>
+                </div>
+            </div>
+        </div>
+    </div>
 </div>
 </body>
 </html>

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

@@ -0,0 +1,182 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#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=${materialModule.act.procInsId}",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',   
+               ////查询参数,每次调用是会带上这个参数,可自定义                         
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该图片管理记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/test/pic/testPic/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#testPicTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        field: 'path',
+		        title: '图片路径',
+		        sortable: true,
+		        sortName: 'path',
+		        formatter:function(value, row , index){
+		        	var valueArray = value.split("|");
+		        	var labelArray = [];
+		        	for(var i =0 ; i<valueArray.length; i++){
+		        		if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+		        		{
+		        			labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+		        		}else{
+		        			labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+		        		}
+		        	}
+		        	return labelArray.join(" ");
+		        }
+		       
+		    },{
+				   field: 'imgName',
+				   title: '上传用途',
+				   sortable: true,
+				   sortName: 'imgName',
+			   },{
+				   field: 'uid',
+				   title: '上传人员',
+				   sortable: true,
+				   sortName: 'uid',
+			   }]
+		});
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/pic/testPic/export');
+	  });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	$("#agree").click(function () {
+		var currentFileValues = $("input[name='pic']").val();
+		var imgName = $("#imgName").val();
+		if (currentFileValues == "" || currentFileValues == null) {
+			jp.error("请上传文件");
+		} else {
+			jp.prompt("审核意见", function (message) {
+				jp.post("${ctx}/act/task/powerFileTask",
+					{
+						"taskId":"${materialModule.act.taskId}",
+						"taskName":"${materialModule.act.taskName}",
+						"taskDefKey":"${materialModule.act.taskDefKey}",
+						"procInsId":"${materialModule.act.procInsId}",
+						"procDefId":"${materialModule.act.procDefId}",
+						"reserveProjectName":"${materialModule.reserveProjectName}",
+						"id":"${materialModule.id}",
+						"imgName":imgName,
+						"flag":"yes",
+						"pic":currentFileValues,
+						"comment":window.encodeURI(message)
+					},
+					function (data) {
+						if(data.success){
+							jp.success(data.msg);
+							jp.go("${ctx}/act/task/todo")
+						}
+					})
+			});
+		}
+	});
+});
+		
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+
+</script>

+ 67 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/powerFile.jsp

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

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

@@ -105,10 +105,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  
@@ -146,6 +146,7 @@ $(document).ready(function() {
 					"taskDefKey":"${materialModule.act.taskDefKey}",
 					"procInsId":"${materialModule.act.procInsId}",
 					"procDefId":"${materialModule.act.procDefId}",
+					"id":"${materialModule.id}",
 					"flag":"yes",
 					"comment":window.encodeURI(message)
 				},

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

@@ -33,8 +33,8 @@
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">
 					<div class="form-group text-center">
-						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题" />&nbsp;
-						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="纯在问题" />&nbsp;
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题"/>&nbsp;
+						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="存在问题"/>&nbsp;
 					</div>
 				</div>
 			</div>

+ 3 - 5
src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.js

@@ -1,8 +1,6 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <script>
 $(document).ready(function() {
-	var procInsId = $("#procInsId").val();
-	// alert(procInsId);
 	$('#testPicTable').bootstrapTable({
 		  //请求方法
                method: 'post',
@@ -38,7 +36,7 @@ $(document).ready(function() {
                //可供选择的每页的行数(*)    
                pageList: [10, 25, 50, 100],
                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
-               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId="+procInsId,
+               url: "${ctx}/managementcenter/upload/materialUploadData?procInsId=${materialModule.act.procInsId}",
                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
                //queryParamsType:'',   
                ////查询参数,每次调用是会带上这个参数,可自定义                         
@@ -105,10 +103,10 @@ $(document).ready(function() {
 				   sortable: true,
 				   sortName: 'imgName',
 			   },{
-				   field: 'uId',
+				   field: 'uid',
 				   title: '上传人员',
 				   sortable: true,
-				   sortName: 'uId',
+				   sortName: 'uid',
 			   }]
 		});
 		  

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

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>涉电竣工流程</title>
+	<title>审核涉电竣工报告</title>
 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">涉电竣工流程</h3>
+		<h3 class="panel-title">审核涉电竣工报告</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->

+ 72 - 59
src/main/webapp/webpage/modules/sg/picking/activiti/constructionLeaderForm.jsp

@@ -1,70 +1,83 @@
-<%@ page pageEncoding="UTF-8"%>
-<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ 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="constructionLeaderForm.js"%>
+    <title>领料提交申请</title>
+    <meta name="decorator" content="ani"/>
+    <!-- SUMMERNOTE -->
+    <%@include file="/webpage/include/summernote.jsp" %>
+    <%@include file="constructionLeaderForm.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">
+    <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="showList" action="${ctx}/picking/activiti/save" 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/dataPicking" id="project" name="projectId" value="${showList.projectName}" labelName="project.requireName" labelValue="${showList.projectName}"
-													title="选择项目号" cssClass="form-control " fieldLabels="${fns:urlEncode('项目需求名称|工程编号|项目名称|项目定义号')}" fieldKeys="requireName|projecId|projectName|projectNumber" searchLabels="${fns:urlEncode('项目需求名称')}" searchKeys="requireName"  isMultiSelected="false"></sys:itemselect>
-								</td>
-							</tr>
-							<tr>
-							</tr>
-							</tbody>
-						</table>
+                    <form:form id="inputForm" modelAttribute="showList" action="${ctx}/picking/activiti/save"
+                               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/dataPicking"
+                                                    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>
+                            <tr>
+                            </tr>
+                            </tbody>
+                        </table>
 
-						<div class="form-group">
-							<div class="col-lg-3"></div>
-								<div class="col-lg-6">
-									<div class="form-group text-center">
-										<div>
-											<button class="btn btn-primary btn-block btn-lg btn-parsley" data-loading-text="正在提交...">提 交</button>
-										</div>
-									</div>
-								</div>
-						</div>
-					</form:form>
-					<c:if test="${not empty showList.id}">
-						<act:flowChart procInsId="${showList.act.procInsId}"/>
-						<act:histoicFlow procInsId="${showList.act.procInsId}" />
-					</c:if>
-				</div>
-			</div>
-		</div>
-	</div>
+                        <div class="form-group">
+                            <div class="col-lg-3"></div>
+                            <div class="col-lg-6">
+                                <div class="form-group text-center">
+                                    <div>
+                                        <button class="btn btn-primary btn-block btn-lg btn-parsley"
+                                                data-loading-text="正在提交...">提 交
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </form:form>
+                    <c:if test="${not empty showList.id}">
+                        <act:flowChart procInsId="${showList.act.procInsId}"/>
+                        <act:histoicFlow procInsId="${showList.act.procInsId}"/>
+                    </c:if>
+                </div>
+            </div>
+        </div>
+    </div>
 </div>
 </body>
 </html>

+ 9 - 3
src/main/webapp/webpage/modules/sg/picking/activiti/exportErp.js

@@ -64,9 +64,15 @@ $(document).ready(function() {
 			columns: [
 				{
 					checkbox: true
+				},{
+					field: 'reserveProjectName',
+					title: '储备项目名称',
+				},{
+					field: 'projectId',
+					title: '项目定义号',
 				},
 				{
-					field: 'projectId',
+					field: 'projectName',
 					title: '项目名称',
 				}, {
 					field: 'proType',
@@ -140,9 +146,9 @@ $(document).ready(function() {
 		if(id == undefined){
 			id = getIdSelections();
 		}
-		var val = encodeURI(encodeURI($("#projectId").val()));
+		var val = encodeURI(encodeURI($("#projectName").val()));
 		/*成本*/
-		jp.downloadFile('${ctx}/picking/activiti/exportErpData?id=' + id + '&projectId=' + val);
+		jp.downloadFile('${ctx}/picking/activiti/exportErpData?id=' + id + '&projectName=' + val);
 		refresh();
 	}
 

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

@@ -19,7 +19,7 @@
 					<form:form id="searchForm" modelAttribute="acquisition" class="form form-horizontal well clearfix">
 						<div class="col-xs-12 col-sm-6 col-md-4">
 							<label class="label-item single-overflow pull-left" title="项目名称:">项目名称:</label>
-							<form:input path="projectId" htmlEscape="false" class="form-control"/>
+							<form:input path="projectName" htmlEscape="false" class="form-control"/>
 						</div>
 						<div class="col-xs-12 col-sm-6 col-md-4">
 							<div style="margin-top:26px">

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

@@ -265,12 +265,28 @@ $(document).ready(function() {
 					function (data) {
 						if(data.success){
 							jp.success(data.msg);
-							jp.go("${ctx}/act/task/todo")
 						}
 					})
 			})
 		})
 
+	//是否可以进场
+	$("#canEnter").click(function () {
+		jp.confirm("是否确认可以进场", function (message) {
+			jp.post("${ctx}/picking/activiti/updateCanEnter",
+				{
+					"procInsId": "${showList.act.procInsId}",
+				},
+				function (data) {
+					if (data.success) {
+						jp.success(data.msg);
+						window.location.reload();
+					}
+				})
+		}, function () {
+		});
+	})
+
 	//领料清单
 	$("#exportBlock").click(function () {
 		var procInsId = encodeURI(encodeURI($("#procInsId").val()));

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

@@ -25,6 +25,11 @@
 			<button id="exportListing" class="btn btn-info">
 				<i class="fa fa-folder-open-o"></i> 导出模块清单
 			</button>
+			<c:if test="${projectNumber.canEnter == '0'}">
+			<button id="canEnter" class="btn btn-success">
+				<i class="glyphicon glyphicon-edit"></i> 是否可以进场
+			</button>
+			</c:if>
 		</div>
 		<div class="panel-body">
 			<div>

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

@@ -38,7 +38,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>