瀏覽代碼

项目计划安排

Enford 5 年之前
父節點
當前提交
a348d9f0b0

+ 14 - 0
src/main/java/com/jeeplus/modules/oa/service/OaNotifyService.java

@@ -8,6 +8,7 @@ import java.util.List;
 
 import com.jeeplus.modules.oa.entity.OaNotifyMaterial;
 import com.jeeplus.modules.oa.mapper.OaNotifyMaterialMapper;
+import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectActProclnsAss;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -88,6 +89,19 @@ public class OaNotifyService extends CrudService<OaNotifyMapper, OaNotify> {
 			oaNotifyRecordMapper.insertAll(oaNotify.getOaNotifyRecordList());
 		}
 	}
+	//项目计划安排模块
+	@Transactional(readOnly = false)
+	public void saveListProjectArrage(OaNotify oaNotify, List<ProjectActProclnsAss> netList) {
+		super.save(oaNotify);
+		for (ProjectActProclnsAss proclnsAss:netList){
+			proclnsAss.setOanotityId(oaNotify.getId());
+		}
+		// 更新发送接受人记录
+		oaNotifyRecordMapper.deleteByOaNotifyId(oaNotify.getId());
+		if (oaNotify.getOaNotifyRecordList().size() > 0){
+			oaNotifyRecordMapper.insertAll(oaNotify.getOaNotifyRecordList());
+		}
+	}
 	
 	/**
 	 * 更新阅读状态

+ 7 - 0
src/main/java/com/jeeplus/modules/oa/web/OaNotifyController.java

@@ -16,6 +16,7 @@ import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.modules.oa.entity.OaNotifyMaterial;
 import com.jeeplus.modules.oa.service.OaNotifyMaterialService;
 import com.jeeplus.modules.sg.managementcenter.materialplan.entity.MaterialPlan;
+import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectActProclnsAss;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -130,6 +131,12 @@ public class OaNotifyController extends BaseController {
 				model.addAttribute("oaNotifyMaterialList",oaNotifyMaterialList);
 				return "modules/oa/notify/oaNotifyFormDesign";
 			}
+			if (oaNotify.getType().equals("9")){
+				ProjectActProclnsAss projectActProclnsAss = new ProjectActProclnsAss();
+				projectActProclnsAss.setOanotityId(oaNotify.getId());
+				model.addAttribute("oaNotify",oaNotify);
+				return "modules/sg/managementcenter/projectPlanArrage/oaNotify/planOaNotityForm";
+			}
 		}
 
 		return "modules/oa/notify/oaNotifyForm";

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/materialInventory/web/MaterialInventoryController.java

@@ -299,7 +299,7 @@ public class MaterialInventoryController extends BaseController {
 							int count = 0;
 							List<String> listUserId = PickingInfo.getListUserId(PickingInfo.ALL_USER_ID);
 							List<String> userId = pickingRequisitionService.findUserId(listUserId);
-							String stringJoiningTogether = PickingInfo.getStringJoiningTogether(userId);//获取通知人
+//							String stringJoiningTogether = PickingInfo.getStringJoiningTogether(userId);//获取通知人
 							OaNotify oaNotify = new OaNotify();
 							oaNotify.setType("5");
 							oaNotify.setTitle("非缺货信息");//非缺货信息

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

@@ -29,12 +29,21 @@ public class MaterialProject extends DataEntity<MaterialProject>{
     private String projectName;
 
     private String arrageProject;//项目计划安排
+    private String arrageProject1;//项目计划安排
 
     private String projectStatus;
 
     private String[] reserveCodes;//储备编码(多条)
     private String[] projectCodes;//项目编码(多条)
 
+    public String getArrageProject1() {
+        return arrageProject1;
+    }
+
+    public void setArrageProject1(String arrageProject1) {
+        this.arrageProject1 = arrageProject1;
+    }
+
     public String getArrageProject() {
         return arrageProject;
     }

+ 47 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/entity/ProjectActProclnsAss.java

@@ -26,6 +26,53 @@ public class ProjectActProclnsAss extends DataEntity<ProjectActProclnsAss> {
     private String backToText;//退回备注
     private Act act;
 
+    private String associatedBag;//关联包
+    private String powerPackage;//停电包
+    private Integer associatedSort;//关联包排序字段
+    private Integer powerPackageSort;//停电包排序字段
+    private String oanotityId; //通知id
+
+    public String getOanotityId() {
+        return oanotityId;
+    }
+
+    public void setOanotityId(String oanotityId) {
+        this.oanotityId = oanotityId;
+    }
+
+
+    public String getAssociatedBag() {
+        return associatedBag;
+    }
+
+    public void setAssociatedBag(String associatedBag) {
+        this.associatedBag = associatedBag;
+    }
+
+    public String getPowerPackage() {
+        return powerPackage;
+    }
+
+    public void setPowerPackage(String powerPackage) {
+        this.powerPackage = powerPackage;
+    }
+
+    public Integer getAssociatedSort() {
+        return associatedSort;
+    }
+
+    public void setAssociatedSort(Integer associatedSort) {
+        this.associatedSort = associatedSort;
+    }
+
+    public Integer getPowerPackageSort() {
+        return powerPackageSort;
+    }
+
+    public void setPowerPackageSort(Integer powerPackageSort) {
+        this.powerPackageSort = powerPackageSort;
+    }
+
     public Act getAct() {
         return act;
     }

+ 37 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/entity/ProjectPlanArrage.java

@@ -31,6 +31,43 @@ public class ProjectPlanArrage extends DataEntity<ProjectPlanArrage> {
     private String backToText;//退回备注
     private String operationStatus;//是否允许操作 0- 允许操作 1-不允许
 
+    private String associatedBag;//关联包
+    private String powerPackage;//停电包
+    private Integer associatedSort;//关联包排序字段
+    private Integer powerPackageSort;//停电包排序字段
+
+    public Integer getAssociatedSort() {
+        return associatedSort;
+    }
+
+    public void setAssociatedSort(Integer associatedSort) {
+        this.associatedSort = associatedSort;
+    }
+
+    public Integer getPowerPackageSort() {
+        return powerPackageSort;
+    }
+
+    public void setPowerPackageSort(Integer powerPackageSort) {
+        this.powerPackageSort = powerPackageSort;
+    }
+
+    public String getAssociatedBag() {
+        return associatedBag;
+    }
+
+    public void setAssociatedBag(String associatedBag) {
+        this.associatedBag = associatedBag;
+    }
+
+    public String getPowerPackage() {
+        return powerPackage;
+    }
+
+    public void setPowerPackage(String powerPackage) {
+        this.powerPackage = powerPackage;
+    }
+
     public String getOperationStatus() {
         return operationStatus;
     }

+ 4 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/mapper/ProjectPlanActMapper.java

@@ -34,6 +34,9 @@ public interface ProjectPlanActMapper extends BaseMapper<ProjectActProclnsAss> {
     //配网项目经理
     Integer deleteNetAss(ProjectActProclnsAss projectActProclnsAss);
 
-    //修改项目状态
+    //修改项目状态--完成后
     Integer updateMaterialProject(@Param("list")List<String> strings);
+
+    //修改项目状态--配网项目经理
+    Integer updateMaterialNetProject(@Param("list")List<String> strings);
 }

+ 36 - 3
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/mapper/xml/ProjectPlanActMapper.xml

@@ -34,7 +34,12 @@
 		a.constructionUnit AS "constructionUnit",
 		a.operationUnit AS "operationUnit",
 		a.backToStauts AS "backToStauts",
-		a.backToText AS "backToText"
+		a.backToText AS "backToText",
+		a.associatedBag AS "associatedBag",
+		a.powerPackage AS "powerPackage",
+		a.associatedSort AS "associatedSort",
+		a.powerPackageSort AS "powerPackageSort",
+		a.oanotityId AS "oanotityId"
 	</sql>
 
 	<!--<select id="findListAssList">-->
@@ -54,12 +59,21 @@
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			${dataScope}
+			<if test="projectName != null and projectName != ''">
+				AND a.projectName = #{projectName}
+			</if>
+			<if test="projectNumber != null and projectNumber != ''">
+				AND a.projectNumber = #{projectNumber}
+			</if>
 			<if test="procInsId != null and procInsId != ''">
 				AND a.proc_ins_id = #{procInsId}
 			</if>
 			<if test="operationUnit!=null and operationUnit != ''">
 				AND a.operationUnit = #{operationUnit}
 			</if>
+			<if test="oanotityId!=null and oanotityId != ''">
+				AND a.oanotityId = #{oanotityId}
+			</if>
 		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
@@ -150,7 +164,12 @@
 		constructionUnit,
 		operationUnit,
 		backToStauts,
-		backToText
+		backToText,
+		associatedBag,
+		powerPackage,
+		associatedSort,
+		powerPackageSort,
+		oanotityId
 		) VALUES
 		<foreach collection="list" item="item" index="index" separator="," >
 			(
@@ -176,7 +195,12 @@
 			#{item.constructionUnit},
 			#{item.operationUnit},
 			#{item.backToStauts},
-			#{item.backToText}
+			#{item.backToText},
+			#{item.associatedBag},
+			#{item.powerPackage},
+			#{item.associatedSort},
+			#{item.powerPackageSort},
+			#{item.oanotityId}
 			)
 		</foreach>
 	</insert>
@@ -199,6 +223,15 @@
 
 	<update id="updateMaterialProject">
 		UPDATE xm_material_project SET
+		arrageProject = '2'
+		WHERE reserveProjectName in
+		<foreach collection="list" open="(" close=")" item="item" separator=",">
+			#{item}
+		</foreach>
+	</update>
+
+	<update id="updateMaterialNetProject">
+		UPDATE xm_material_project SET
 		arrageProject = '1'
 		WHERE reserveProjectName in
 		<foreach collection="list" open="(" close=")" item="item" separator=",">

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/mapper/xml/ProjectPlanArrageMapper.xml

@@ -71,7 +71,7 @@
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			${dataScope}
 			<if test="arrageProject != null and arrageProject != ''">
-				AND a.arrageProject = #{arrageProject}
+				AND a.arrageProject = #{arrageProject} or a.arrageProject = #{arrageProject1}
 			</if>
 		</where>
 		<choose>

+ 62 - 3
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/service/ProjectPlanActService.java

@@ -2,12 +2,20 @@ package com.jeeplus.modules.sg.managementcenter.projectPlanArrage.service;
 
 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.common.websocket.service.system.SystemInfoSocketHandler;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.mapper.ActMapper;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.oa.entity.OaNotify;
+import com.jeeplus.modules.oa.entity.OaNotifyMaterial;
+import com.jeeplus.modules.oa.entity.OaNotifyRecord;
+import com.jeeplus.modules.oa.mapper.OaNotifyMapper;
+import com.jeeplus.modules.oa.mapper.OaNotifyRecordMapper;
+import com.jeeplus.modules.oa.service.OaNotifyService;
 import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectActProcIns;
 import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectActProclnsAss;
 import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectPlanArrage;
@@ -23,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.ServletContext;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -43,6 +52,12 @@ public class ProjectPlanActService{
     private ActProcessService actProcessService;
     @Autowired
     private ActTaskService actTaskService;
+    @Autowired
+    private OaNotifyService oaNotifyService;
+    @Autowired
+    private OaNotifyRecordMapper oaNotifyRecordMapper;
+    @Autowired
+    private OaNotifyMapper oaNotifyMapper;
 
     //查询配网项目经理当前安排的计划
     public List<ProjectActProclnsAss> findListAss(ProjectActProclnsAss projectActProclnsAss){
@@ -71,6 +86,13 @@ public class ProjectPlanActService{
         List<String> personName = getPersonName(projectPlanArrages, "1");//获取施工单位项目经理集合
         getConsMaps(vars,personName);
         startProcessConsProject(procDefKey,businessTable,businessId,title,vars,projectActProcIns,projectPlanArrages);
+        List<String> strings = new ArrayList<String>();
+        for (ProjectPlanArrage planArrage:projectPlanArrages){
+            if (null!=planArrage.getProjectName()&&!"".equals(planArrage.getProjectName())){
+                strings.add(planArrage.getProjectName());
+            }
+        }
+        projectPlanActMapper.updateMaterialNetProject(strings);
     }
     public void getConsMaps(Map<String, Object> vars,List<String> personName){
         int len = personName.size();
@@ -178,6 +200,10 @@ public class ProjectPlanActService{
             projectActProclnsAss.setConstructionUnit(planArrage.getConstructionUnit());
             projectActProclnsAss.setOperationUnit(planArrage.getOperationUnit());
             projectActProclnsAss.setBackToStauts("0");
+            projectActProclnsAss.setAssociatedBag(planArrage.getAssociatedBag());
+            projectActProclnsAss.setAssociatedSort(planArrage.getAssociatedSort());
+            projectActProclnsAss.setPowerPackage(planArrage.getPowerPackage());
+            projectActProclnsAss.setPowerPackageSort(planArrage.getPowerPackageSort());
             projectActProclnsAsses.add(projectActProclnsAss);
         }
         return projectActProclnsAsses;
@@ -256,6 +282,10 @@ public class ProjectPlanActService{
                     planArrage.setBackToText(proclnsAss.getBackToText());
                     planArrage.setConstructionUnit(proclnsAss.getConstructionUnit());
                     planArrage.setProjectPowerOut(proclnsAss.getProjectPowerOut());
+                    planArrage.setAssociatedBag(proclnsAss.getAssociatedBag());
+                    planArrage.setAssociatedSort(proclnsAss.getAssociatedSort());
+                    planArrage.setPowerPackage(proclnsAss.getPowerPackage());
+                    planArrage.setPowerPackageSort(proclnsAss.getPowerPackageSort());
                     if (proclnsAss.getConstructionUnit().equals(name)){
                         planArrage.setOperationStatus("0");//允许操作
                     }else {
@@ -279,6 +309,10 @@ public class ProjectPlanActService{
                     planArrage.setBackToText(proclnsAss.getBackToText());
                     planArrage.setConstructionUnit(proclnsAss.getConstructionUnit());
                     planArrage.setProjectPowerOut(proclnsAss.getProjectPowerOut());
+                    planArrage.setAssociatedBag(proclnsAss.getAssociatedBag());
+                    planArrage.setAssociatedSort(proclnsAss.getAssociatedSort());
+                    planArrage.setPowerPackage(proclnsAss.getPowerPackage());
+                    planArrage.setPowerPackageSort(proclnsAss.getPowerPackageSort());
                     break;
                 }
             }
@@ -379,10 +413,18 @@ public class ProjectPlanActService{
         // 对不同环节的业务逻辑进行操作
         String taskDefKey = act.getTaskDefKey();
         //获取人
-        List<String> personName = getPersonName(projectPlans, "3");//获取施工单位项目经理集合
+        List<String> personName = getPersonName(projectPlans, "3");//获取运行单位人员
+        //获取运行单位集合
+        String ids = "";
+        for (String s:personName){
+            ids+=UserUtils.getByUserName(s).getId()+",";
+        }
+        if (ids.contains(",")){
+            ids = ids.substring(0,ids.length()-1);
+        }
         // 提交流程任务
         Map<String, Object> vars = Maps.newHashMap();
-        getRunsMaps(vars,personName);
+//        getRunsMaps(vars,personName);
         actTaskService.complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
         //业务 处理保存 流程表
         //获取流程id
@@ -392,8 +434,25 @@ public class ProjectPlanActService{
         //删除
         projectPlanActMapper.deleteNetAss(procNet);
         List<ProjectActProclnsAss> netList = PackagingUtil.getNetList(projectPlans, procInsId);
-        projectPlanActMapper.insertProcInsAssList(netList);
+        OaNotify oaNotify = new OaNotify();
+        int count = 0;
+        oaNotify.setType("9");
+        oaNotify.setTitle("项目计划安排通知");//非缺货信息
+        oaNotify.setContent("请在详情中查看...");
+        oaNotify.setStatus("1");
+        oaNotify.setOaNotifyRecordIds(ids);
+        oaNotifyService.saveListProjectArrage(oaNotify,netList);
+        projectPlanActMapper.insertProcInsAssList(netList);//保存流程表
+        List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
+        for(OaNotifyRecord o : list){
+            count++;
+            //发送通知到客户端
+            ServletContext context = SpringContextHolder
+                    .getBean(ServletContext.class);
+            new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
+        }
     }
+
     public void getRunsMaps(Map<String, Object> vars,List<String> personName){
         int len = personName.size();
         String cons = "";

+ 221 - 15
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/service/ProjectPlanArrageService.java

@@ -18,10 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
+import java.util.*;
 
 @Service
 @Transactional(readOnly = true)
@@ -71,12 +68,9 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
     }
 
     //获取最终待安排的项目list  --树形
-    public List<ProjectPlanArrage> getProjectPlanArrageList(){
+    public List<ProjectPlanArrage> getProjectPlanArrageList(MaterialProject materialProject){
         //初始list
         List<ProjectPlanArrage> projectPlanArrages = new ArrayList<ProjectPlanArrage>();
-        //获取项目计划安排的初始项目
-        MaterialProject materialProject = new MaterialProject();
-        materialProject.setArrageProject("0");
         //得到所有未安排的计划
         List<MaterialProject> listMaterialProject = findListMaterialProject(materialProject);
         //得到所有立项信息的项目--有项目定义号:项目名称
@@ -150,7 +144,89 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
 
     //安排项目计划 -- 按钮功能 获取相同id相同以及包含开关的方法--配网项目经理初始安排计划
     public void getUnplannedService(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
+        List<Integer> integerList = new ArrayList<Integer>();
+        for (ProjectPlanArrage planArrage:projectPlanArrages){
+            if (null!=planArrage.getAssociatedSort()){
+                integerList.add(planArrage.getAssociatedSort());//添加进入集合
+            }
+        }
+        Integer assInter = 1;
+        if (null!=integerList&&!integerList.isEmpty()){
+            Collections.sort(integerList);
+            assInter = integerList.get(integerList.size()-1)+1;
+        }
+        //复制所有数据集合,以供使用
+        List<ProjectPlanArrage> copyProjectPlanArrage = PackagingUtil.getCopyProjectPlanArrage(projectPlanArrages);
+        //获取用户选择安排计划项目定义号的项目
+        List<ProjectPlanArrage> planArragesChild = new ArrayList<ProjectPlanArrage>();//子类集合
+
+        HashSet<String> hashSet = new HashSet<String>();
+        //得到集合
+        for (String id:idList){
+            for (ProjectPlanArrage projectPlanArrage:copyProjectPlanArrage){
+                if (id.equals(projectPlanArrage.getId())){
+                    if (projectPlanArrage.getWhetherStatus().equals("0")){
+                        planArragesChild.add(projectPlanArrage);
+                        PackagingUtil.getSplice(projectPlanArrage.getProjectPowerRange(),hashSet);
+                        break;
+                    }
+                }
+            }
+        }
+        PackagingUtil.getRecursive(copyProjectPlanArrage,hashSet);
+        String assPackName = "";
+        Integer assPackSort = null;
+        if (!planArragesChild.isEmpty()){
+            for (ProjectPlanArrage pa:projectPlanArrages){
+                if (!pa.getWhetherStatus().equals("1")){
+                    for (String s:hashSet){
+                        if (pa.getProjectPowerRange().contains(s)){
+                            if (pa.getArrageFlag().equals("1")){
+                                assPackName = pa.getAssociatedBag();
+                                assPackSort = pa.getAssociatedSort();
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        //处理子类集合 -- 如果子类集合不为空
+        if (!planArragesChild.isEmpty()){
+            for (ProjectPlanArrage pa:projectPlanArrages){
+                if (!pa.getWhetherStatus().equals("1")){
+                    for (String s:hashSet){
+                        if (pa.getProjectPowerRange().contains(s)){
+                            if (!"".equals(assPackName)){
+                                pa.setArrageFlag("1");
+                                pa.setAssociatedBag(assPackName);
+                                pa.setAssociatedSort(assPackSort);
+                            }else {
+                                pa.setArrageFlag("1");
+                                pa.setAssociatedBag("关联包项目"+assInter.toString());
+                                pa.setAssociatedSort(assInter);
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+    }
 
+    //安排项目计划 -- 按钮功能 获取相同id相同以及包含开关的方法--配网项目经理初始安排计划
+    public void getNetWorkUnplannedService(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
+        List<Integer> integerList = new ArrayList<Integer>();
+        for (ProjectPlanArrage planArrage:projectPlanArrages){
+            if (null!=planArrage.getAssociatedSort()){
+                integerList.add(planArrage.getAssociatedSort());//添加进入集合
+            }
+        }
+        Integer assInter = 1;
+        if (null!=integerList&&!integerList.isEmpty()){
+            Collections.sort(integerList);
+            assInter = integerList.get(integerList.size()-1)+1;
+        }
         //复制所有数据集合,以供使用
         List<ProjectPlanArrage> copyProjectPlanArrage = PackagingUtil.getCopyProjectPlanArrage(projectPlanArrages);
         //获取用户选择安排计划项目定义号的项目
@@ -170,13 +246,42 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
             }
         }
         PackagingUtil.getRecursive(copyProjectPlanArrage,hashSet);
+        String assPackName = "";
+        Integer assPackSort = null;
+        if (!planArragesChild.isEmpty()){
+            for (ProjectPlanArrage pa:projectPlanArrages){
+                if (!pa.getWhetherStatus().equals("1")){
+                    for (String s:hashSet){
+                        if (pa.getProjectPowerRange().contains(s)){
+                            if (pa.getArrageFlag().equals("1")){
+                                assPackName = pa.getAssociatedBag();
+                                assPackSort = pa.getAssociatedSort();
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
         //处理子类集合 -- 如果子类集合不为空
         if (!planArragesChild.isEmpty()){
             for (ProjectPlanArrage pa:projectPlanArrages){
                 if (!pa.getWhetherStatus().equals("1")){
                     for (String s:hashSet){
                         if (pa.getProjectPowerRange().contains(s)){
-                            pa.setArrageFlag("1");
+                            if (!pa.getArrageFlag().equals("1")){
+                                if (!"".equals(assPackName)){
+                                    pa.setBackToStauts("2");
+                                    pa.setArrageFlag("1");
+                                    pa.setAssociatedBag(assPackName);
+                                    pa.setAssociatedSort(assPackSort);
+                                }else {
+                                    pa.setBackToStauts("2");
+                                    pa.setArrageFlag("1");
+                                    pa.setAssociatedBag("关联包项目"+assInter.toString());
+                                    pa.setAssociatedSort(assInter);
+                                }
+                            }
                             break;
                         }
                     }
@@ -184,11 +289,55 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
             }
         }
     }
+    //取消项目计划 -- 按钮功能 获取相同id相同以及包含开关的方法--配网项目经理初始安排计划
+    public void getCancelPowerPackage(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
+        for(String id:idList){
+            for (ProjectPlanArrage planArrage:projectPlanArrages){
+                if (id.equals(planArrage.getId())){
+                    planArrage.setPowerPackageSort(null);
+                    planArrage.setPowerPackage(null);
+                    break;
+                }
+            }
+        }
+    }
+    //安排项目计划 -- 按钮功能 获取相同id相同以及包含开关的方法--配网项目经理初始安排计划
+    public void getUnplannedPowerPackage(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
+        //得到包的数量
+        List<Integer> integerList = new ArrayList<Integer>();
+        for (ProjectPlanArrage planArrage:projectPlanArrages){
+            if (null!=planArrage.getPowerPackageSort()){
+                integerList.add(planArrage.getPowerPackageSort());//添加进入集合
+            }
+        }
+        Integer powerInter = 1;
+        if (null!=integerList&&!integerList.isEmpty()){
+            Collections.sort(integerList);
+            powerInter = integerList.get(integerList.size()-1)+1;
+        }
+        //打停电包
+        boolean flag = true;//定义开关
+        for (ProjectPlanArrage planArrage:projectPlanArrages){
+            flag = false;
+            for (String id:idList){
+                if (id.equals(planArrage.getId())){
+                    flag = true;
+                    break;
+                }
+            }
+            if (flag){
+                planArrage.setPowerPackage("停电包"+powerInter);
+                planArrage.setPowerPackageSort(powerInter);
+            }
+        }
+    }
+
     //退回操作--第二次配网项目经理
     public void getNetWorkSecond(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
         for (String id:idList){
             for (ProjectPlanArrage planArrage:projectPlanArrages){
                 if (planArrage.getId().equals(id)){
+                    planArrage.setAssociatedSort(null);
                     planArrage.setArrageFlag("0");
                     break;
                 }
@@ -196,7 +345,20 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
         }
     }
 
-
+    //退回项目计划 -- 单个项目 -- 按钮功能 获取相同id相同以及包含开关的方法
+    public void getTheRoBackOneService(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
+       for (String id:idList){
+           for (ProjectPlanArrage planArrage:projectPlanArrages){
+               if (id.equals(planArrage.getId())){
+                   planArrage.setArrageFlag("0");
+                   planArrage.setAssociatedSort(null);
+                   planArrage.setPowerPackage("");
+                   planArrage.setPowerPackageSort(null);
+                   break;
+               }
+           }
+       }
+    }
     //退回项目计划 -- 按钮功能 获取相同id相同以及包含开关的方法
     public void getTheRoBackService(List<ProjectPlanArrage> projectPlanArrages,List<String> idList){
         //复制所有数据集合,以供使用
@@ -353,6 +515,18 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
 
     //安排项目计划 -- 按钮功能 获取相同id相同以及包含开关的方法--施工项目经理初始安排计划
     public void getConsPlanArranageService(List<ProjectPlanArrage> projectPlanArrages, List<String> idList, Date mouthDate){
+        List<Integer> integerList = new ArrayList<Integer>();
+        for (ProjectPlanArrage planArrage:projectPlanArrages){
+            if (null!=planArrage.getAssociatedSort()){
+                integerList.add(planArrage.getAssociatedSort());//添加进入集合
+            }
+        }
+        Integer assInter = 1;
+        if (null!=integerList&&!integerList.isEmpty()){
+            Collections.sort(integerList);
+            assInter = integerList.get(integerList.size()-1)+1;
+        }
+
         //复制所有数据集合,以供使用
         List<ProjectPlanArrage> copyProjectPlanArrage = PackagingUtil.getCopyProjectPlanArrage(projectPlanArrages);
         //获取用户选择安排计划项目定义号的项目
@@ -372,17 +546,49 @@ public class ProjectPlanArrageService extends CrudService<ProjectPlanArrageMappe
             }
         }
         PackagingUtil.getRecursive(copyProjectPlanArrage,hashSet);
+        //获取存在的关联包
+        String assPackName = "";
+        Integer assPackSort = null;
+        if (!planArragesChild.isEmpty()){
+            for (ProjectPlanArrage pa:projectPlanArrages){
+                if (!pa.getWhetherStatus().equals("1")){
+                    for (String s:hashSet){
+                        if (pa.getProjectPowerRange().contains(s)){
+                            if (pa.getArrageFlag().equals("1")){
+                                assPackName = pa.getAssociatedBag();
+                                assPackSort = pa.getAssociatedSort();
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
         //处理子类集合 -- 如果子类集合不为空
         if (!planArragesChild.isEmpty()){
             for (ProjectPlanArrage pa:projectPlanArrages){
                 if (!pa.getWhetherStatus().equals("1")){
                     for (String s:hashSet){
                         if (pa.getProjectPowerRange().contains(s)){
-                            pa.setArrageFlag("1");
-                            pa.setBackToStauts("2");//说明这是施工单位项目经理新增的状态
-                            pa.setOperationStatus("0");//循序操作
-                            pa.setProjectMonthDate(mouthDate);//自动配置月份
-                            pa.setProjectPowerOut("停电");
+                            if (!pa.getArrageFlag().equals("1")){
+                                pa.setArrageFlag("1");
+                                pa.setBackToStauts("2");//说明这是施工单位项目经理新增的状态
+                                pa.setOperationStatus("0");//循序操作
+                                pa.setProjectMonthDate(mouthDate);//自动配置月份
+                                if (null!=pa.getProjectPowerRange()&&pa.getProjectPowerRange().contains("非涉电")){
+                                    pa.setProjectPowerOut("带电");
+                                }else {
+                                    pa.setProjectPowerOut("停电");
+                                }
+                                //分配关联包
+                                if (!"".equals(assPackName)){
+                                    pa.setAssociatedBag("关联包项目"+assPackSort);
+                                    pa.setAssociatedSort(assPackSort);
+                                }else {
+                                    pa.setAssociatedBag("关联包项目"+assInter);
+                                    pa.setAssociatedSort(assInter);
+                                }
+                            }
                             break;
                         }
                     }

+ 8 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/util/PackagingUtil.java

@@ -213,6 +213,10 @@ public class PackagingUtil {
                     proclnsAss.setBackToStauts(planArrage.getBackToStauts());//状态
                     proclnsAss.setBackToText(planArrage.getBackToText());//备注
                     proclnsAss.setProjectPowerOut(planArrage.getProjectPowerOut());
+                    proclnsAss.setAssociatedBag(planArrage.getAssociatedBag());
+                    proclnsAss.setAssociatedSort(planArrage.getAssociatedSort());
+                    proclnsAss.setPowerPackage(planArrage.getPowerPackage());
+                    proclnsAss.setPowerPackageSort(planArrage.getPowerPackageSort());
                     proclnsAss.setStatus("0");
                     projectActProclnsAsses.add(proclnsAss);
                 }
@@ -245,6 +249,10 @@ public class PackagingUtil {
                 proclnsAss.setBackToText(planArrage.getBackToText());//备注
                 proclnsAss.setProjectPowerOut(planArrage.getProjectPowerOut());
                 proclnsAss.setStatus("0");
+                proclnsAss.setAssociatedBag(planArrage.getAssociatedBag());
+                proclnsAss.setAssociatedSort(planArrage.getAssociatedSort());
+                proclnsAss.setPowerPackage(planArrage.getPowerPackage());
+                proclnsAss.setPowerPackageSort(planArrage.getPowerPackageSort());
                 projectActProclnsAsses.add(proclnsAss);
 //                if (planArrage.getConstructionUnit().equals(name)){
 //

+ 240 - 20
src/main/java/com/jeeplus/modules/sg/managementcenter/projectPlanArrage/web/ProjectPlanArrageController.java

@@ -4,12 +4,18 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.SpringContextHolder;
 import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.websocket.service.system.SystemInfoSocketHandler;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.oa.entity.OaNotify;
+import com.jeeplus.modules.oa.entity.OaNotifyRecord;
+import com.jeeplus.modules.oa.service.OaNotifyService;
 import com.jeeplus.modules.sg.managementcenter.materialplan.entity.MaterialPlan;
+import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
 import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectActProclnsAss;
 import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectAssignment;
 import com.jeeplus.modules.sg.managementcenter.projectPlanArrage.entity.ProjectPlanArrage;
@@ -28,6 +34,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.UnsupportedEncodingException;
@@ -48,6 +55,8 @@ public class ProjectPlanArrageController extends BaseController {
     private ProjectPlanActService projectPlanActService;
     @Autowired
     private ActTaskService actTaskService;
+    @Autowired
+    private OaNotifyService oaNotifyService;
 
 
     @RequestMapping(value = {"list", ""})
@@ -90,9 +99,12 @@ public class ProjectPlanArrageController extends BaseController {
                 String name = URLDecoder.decode(projectPlanArrage.getProjectName(),"utf-8");
                 projectPlanArrage.setProjectName(name);
             }
-
+            //获取项目计划安排的初始项目
+            MaterialProject materialProject = new MaterialProject();
+            materialProject.setArrageProject("0");
+            materialProject.setArrageProject1("0");
             //初始安排计划项目列表
-            List<ProjectPlanArrage> planArrageList = projectPlanArrageService.getProjectPlanArrageList();
+            List<ProjectPlanArrage> planArrageList = projectPlanArrageService.getProjectPlanArrageList(materialProject);
             if (!planArrageList.isEmpty()){
                 //根据项目名称查询人员
                 List<ProjectAssignment> listAssignment = projectPlanArrageService.findListAssignment(planArrageList);
@@ -195,6 +207,78 @@ public class ProjectPlanArrageController extends BaseController {
         return j;
     }
 
+    //安排停电打包  --- 配网项目经理
+    @ResponseBody
+    @RequestMapping(value = "unplannedPackage")
+    public Result getUnplannedPackage(ProjectPlanArrage projectPlanArrage,String ids,HttpServletRequest request){
+        Result j = new Result();
+        List<String> strings = PackagingUtil.getString(ids);
+        j.setSuccess(false);
+        j.setMessage("停电打包失败");
+        boolean flag = true;
+        try {
+
+            //获取项目信息
+            List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("projectPlan");
+            if (!projectPlans.isEmpty()&&!strings.isEmpty()){
+                projectPlanArrageService.getUnplannedPowerPackage(projectPlans,strings);
+            }else {
+                flag = false;
+                j.setSuccess(false);
+                j.setMessage("停电打包失败");
+            }
+            List<ProjectPlanArrage> planArrages = new ArrayList<ProjectPlanArrage>();
+            for (ProjectPlanArrage planArrage:projectPlans){
+                if (planArrage.getArrageFlag().equals("0")){
+                    planArrages.add(planArrage);
+                }
+            }
+            List<Map<String,Object>> objects = Lists.newArrayList();
+            List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages,"1");
+            j.setMapListTree(bookStrapTree);
+            if (flag){
+                j.setSuccess(true);
+                j.setMessage("停电打包成功");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return j;
+    }
+
+    //取消停电打包  --- 配网项目经理
+    @ResponseBody
+    @RequestMapping(value = "cancelPackage")
+    public Result getCancelPackage(ProjectPlanArrage projectPlanArrage,String ids,HttpServletRequest request){
+        Result j = new Result();
+        List<String> strings = PackagingUtil.getString(ids);
+        boolean flag = true;
+        try {
+            //获取项目信息
+            List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("projectPlan");
+            if (!projectPlans.isEmpty()&&!strings.isEmpty()){
+                projectPlanArrageService.getCancelPowerPackage(projectPlans,strings);
+                j.setSuccess(true);
+                j.setMessage("取消停电包成功");
+            }
+            List<ProjectPlanArrage> planArrages = new ArrayList<ProjectPlanArrage>();
+            for (ProjectPlanArrage planArrage:projectPlans){
+                if (planArrage.getArrageFlag().equals("0")){
+                    planArrages.add(planArrage);
+                }
+            }
+            List<Map<String,Object>> objects = Lists.newArrayList();
+            List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages,"1");
+            j.setMapListTree(bookStrapTree);
+        }catch (Exception e){
+            e.printStackTrace();
+            j.setSuccess(false);
+            j.setMessage("取消停电包失败");
+        }
+        return j;
+    }
+
+
     //退回操作
     @ResponseBody
     @RequestMapping(value = "deleteAll")
@@ -207,7 +291,8 @@ public class ProjectPlanArrageController extends BaseController {
             //获取项目信息
             List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("projectPlan");
             if (!projectPlans.isEmpty()&&!strings.isEmpty()){
-                projectPlanArrageService.getTheRoBackService(projectPlans,strings);
+                projectPlanArrageService.getTheRoBackOneService(projectPlans,strings);
+//                projectPlanArrageService.getTheRoBackService(projectPlans,strings);
             }else {
                 j.setSuccess(false);
                 j.setMessage("退回计划项目失败");
@@ -312,9 +397,12 @@ public class ProjectPlanArrageController extends BaseController {
         //获取计划安排月份
         Date mouthDate = projectPlanActService.getMouthDate(listAss);
         request.getSession().setAttribute("mouthDate",mouthDate);
-
+        //获取项目计划安排的初始项目
+        MaterialProject materialProject = new MaterialProject();
+        materialProject.setArrageProject("0");
+        materialProject.setArrageProject1("1");
         //初始安排计划项目列表
-        List<ProjectPlanArrage> planArrageList = projectPlanArrageService.getProjectPlanArrageList();
+        List<ProjectPlanArrage> planArrageList = projectPlanArrageService.getProjectPlanArrageList(materialProject);
         //根据项目名称查询人员
         List<ProjectAssignment> listAssignment = projectPlanArrageService.findListAssignment(planArrageList);
         //获得最终集合
@@ -325,7 +413,6 @@ public class ProjectPlanArrageController extends BaseController {
         ProjectPlanArrage planArrage = new ProjectPlanArrage();
         planArrage.setProjectNumber(projectId);//赋值项目定义号
         List<ProjectPlanArrage> projectPlanList = PackagingUtil.getProjectPlanList(planArrage,projectList);
-
         //当前项目与配网项目经理安排项目会合
         List<ProjectPlanArrage> summaryService = projectPlanActService.getSummaryService(projectPlanList, listAss);
         for (ProjectPlanArrage planArrage1:summaryService){
@@ -579,9 +666,11 @@ public class ProjectPlanArrageController extends BaseController {
         request.getSession().setAttribute("networkActProInsAss",listAss);
         //项目已经安排项目定义号拼接
         String projectId = projectPlanActService.getMapProjectId(listAss);
-
+        MaterialProject materialProject = new MaterialProject();
+        materialProject.setArrageProject("0");
+        materialProject.setArrageProject1("1");
         //初始安排计划项目列表
-        List<ProjectPlanArrage> planArrageList = projectPlanArrageService.getProjectPlanArrageList();
+        List<ProjectPlanArrage> planArrageList = projectPlanArrageService.getProjectPlanArrageList(materialProject);
         //根据项目名称查询人员
         List<ProjectAssignment> listAssignment = projectPlanArrageService.findListAssignment(planArrageList);
         //获得最终集合
@@ -673,6 +762,79 @@ public class ProjectPlanArrageController extends BaseController {
         ajaxJson.setMsg("安排时间失败");
         return ajaxJson;
     }
+
+    //取消停电打包  --- 配网项目经理
+    @ResponseBody
+    @RequestMapping(value = "cancelNetPackage")
+    public Result getCancelNetPackage(ProjectPlanArrage projectPlanArrage,String ids,HttpServletRequest request){
+        Result j = new Result();
+        List<String> strings = PackagingUtil.getString(ids);
+        boolean flag = true;
+        try {
+            //获取项目信息
+            List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("networkList");
+            if (!projectPlans.isEmpty()&&!strings.isEmpty()){
+                projectPlanArrageService.getCancelPowerPackage(projectPlans,strings);
+                j.setSuccess(true);
+                j.setMessage("取消停电包成功");
+            }
+            List<ProjectPlanArrage> planArrages = new ArrayList<ProjectPlanArrage>();
+            for (ProjectPlanArrage planArrage:projectPlans){
+                if (planArrage.getArrageFlag().equals("0")){
+                    planArrages.add(planArrage);
+                }
+            }
+            List<Map<String,Object>> objects = Lists.newArrayList();
+            List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages,"1");
+            j.setMapListTree(bookStrapTree);
+        }catch (Exception e){
+            e.printStackTrace();
+            j.setSuccess(false);
+            j.setMessage("取消停电包失败");
+        }
+        return j;
+    }
+
+    //安排停电打包  --- 配网项目经理2
+    @ResponseBody
+    @RequestMapping(value = "unNetplannedPackage")
+    public Result getUnNetplannedPackage(ProjectPlanArrage projectPlanArrage,String ids,HttpServletRequest request){
+        Result j = new Result();
+        List<String> strings = PackagingUtil.getString(ids);
+        j.setSuccess(false);
+        j.setMessage("停电打包失败");
+        boolean flag = true;
+        try {
+
+            //获取项目信息
+            List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("networkList");
+            if (!projectPlans.isEmpty()&&!strings.isEmpty()){
+                projectPlanArrageService.getUnplannedPowerPackage(projectPlans,strings);
+            }else {
+                flag = false;
+                j.setSuccess(false);
+                j.setMessage("停电打包失败");
+            }
+            List<ProjectPlanArrage> planArrages = new ArrayList<ProjectPlanArrage>();
+            for (ProjectPlanArrage planArrage:projectPlans){
+                if (planArrage.getArrageFlag().equals("0")){
+                    planArrages.add(planArrage);
+                }
+            }
+            List<Map<String,Object>> objects = Lists.newArrayList();
+            List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages,"1");
+            j.setMapListTree(bookStrapTree);
+            if (flag){
+                j.setSuccess(true);
+                j.setMessage("停电打包成功");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return j;
+    }
+
+
     //退回操作--配网项目经理退回
     @ResponseBody
     @RequestMapping(value = "deleteNetWork")
@@ -690,15 +852,15 @@ public class ProjectPlanArrageController extends BaseController {
                 j.setSuccess(false);
                 j.setMessage("退回计划项目失败");
             }
-//            List<ProjectPlanArrage> planArrages = new ArrayList<ProjectPlanArrage>();
-//            for (ProjectPlanArrage planArrage:projectPlans){
-//                if (planArrage.getArrageFlag().equals("0")){
-//                    planArrages.add(planArrage);
-//                }
-//            }
-//            List<Map<String,Object>> objects = Lists.newArrayList();
-//            List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages);
-//            j.setMapListTree(bookStrapTree);
+            List<ProjectPlanArrage> planArrages = new ArrayList<ProjectPlanArrage>();
+            for (ProjectPlanArrage planArrage:projectPlans){
+                if (planArrage.getArrageFlag().equals("0")){
+                    planArrages.add(planArrage);
+                }
+            }
+            List<Map<String,Object>> objects = Lists.newArrayList();
+            List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages,"1");
+            j.setMapListTree(bookStrapTree);
             j.setSuccess(true);
             j.setMessage("退回计划成功");
         }catch (Exception e){
@@ -715,12 +877,14 @@ public class ProjectPlanArrageController extends BaseController {
         List<String> strings = PackagingUtil.getString(ids);
         j.setSuccess(false);
         j.setMessage("安排计划项目失败");
+        boolean flag = true;
         try {
             //获取项目信息
             List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("networkList");
             if (!projectPlans.isEmpty()&&!strings.isEmpty()){
-                projectPlanArrageService.getUnplannedService(projectPlans,strings);
+                projectPlanArrageService.getNetWorkUnplannedService(projectPlans,strings);
             }else {
+                flag = false;
                 j.setSuccess(false);
                 j.setMessage("安排计划项目失败");
             }
@@ -733,8 +897,10 @@ public class ProjectPlanArrageController extends BaseController {
             List<Map<String,Object>> objects = Lists.newArrayList();
             List<Map<String, Object>> bookStrapTree = BookStrapTreeUtil.getAllBookStrapTree(objects, planArrages,"1");
             j.setMapListTree(bookStrapTree);
-            j.setSuccess(true);
-            j.setMessage("安排计划成功");
+            if (flag){
+                j.setSuccess(true);
+                j.setMessage("安排计划成功");
+            }
         }catch (Exception e){
             e.printStackTrace();
         }
@@ -771,6 +937,58 @@ public class ProjectPlanArrageController extends BaseController {
         }
         return ajaxJson;
     }
+    //设置开关
+    //设置停电开关页面 ---配网项目经理2
+    @RequestMapping(value = "netWorkElectrified")
+    public String netWorkElectrified(ProjectPlanArrage projectPlanArrage){
+        return "modules/sg/managementcenter/projectPlanArrage/act/netActPowerList2";
+    }
+
+    //安排带电项目展示form --配网项目经理2
+    @ResponseBody
+//	@RequiresPermissions("managementcenter:materialproject:list")
+    @RequestMapping(value = "dataPower2")
+    public Map<String, Object> dataPower2(ProjectPlanArrage projectPlanArrage, HttpServletRequest request, HttpServletResponse response, Model model) {
+        projectPlanArrage.setArrageFlag("1");
+        projectPlanArrage.setWhetherStatus("0");
+        List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("networkList");
+        Page<ProjectPlanArrage> page = findPageList(new Page<ProjectPlanArrage>(request, response),projectPlanArrage,projectPlans);
+        return getBootstrapData(page);
+    }
+    //检验开关  --配网项目经理2
+    @ResponseBody
+    @RequestMapping(value = "inspectionNetWork")
+    public AjaxJson inspectionNetWork(String ids,ProjectPlanArrage projectPlanArrage,Model model,HttpServletRequest request,HttpServletResponse response){
+        List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("networkList");
+        List<ProjectPlanArrage> planArrages = projectPlanArrageService.inspectionService(ids, projectPlans);
+        request.getSession().setAttribute("networkList",planArrages);
+        AjaxJson j = new AjaxJson();
+        j.setSuccess(true);
+        j.setMsg("检验成功");
+        return j;
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "sureNetWorkInspection")
+    public AjaxJson sureNetWorkInspection(String ids,ProjectPlanArrage projectPlanArrage,Model model,HttpServletRequest request,HttpServletResponse response){
+        AjaxJson j = new AjaxJson();
+        List<ProjectPlanArrage> projectPlans = (List<ProjectPlanArrage>)request.getSession().getAttribute("networkList");
+        List<ProjectPlanArrage> planArrages = projectPlanArrageService.inspectionService(ids, projectPlans);
+        request.getSession().setAttribute("networkList",planArrages);
+        boolean flag = true;
+        for (ProjectPlanArrage planArrage:planArrages){
+            if (planArrage.getHtmlStatus().equals("1")){
+                flag = false;
+                break;
+            }
+        }
+        if (flag){
+            j.setSuccess(false);
+        }else {
+            j.setSuccess(true);
+        }
+        return j;
+    }
 
     //安排计划时间列表
     @ResponseBody
@@ -897,6 +1115,8 @@ public class ProjectPlanArrageController extends BaseController {
     @ResponseBody
     @RequestMapping(value = "export")
     public AjaxJson exportFile(ProjectActProclnsAss projectActProclnsAss, HttpServletRequest request, HttpServletResponse response) {
+        String name = UserUtils.getUser().getName();
+        projectActProclnsAss.setOperationUnit(name);
         AjaxJson j = new AjaxJson();
         try {
             String fileName = "项目计划安排表"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";