Browse Source

Merge remote-tracking branch 'origin/master'

yue 5 years ago
parent
commit
0da0c94a92

+ 87 - 82
src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/Project.java

@@ -5,6 +5,7 @@ import com.jeeplus.core.persistence.DataEntity;
 
 public class Project extends DataEntity<Project> {
     private static final long serialVersionUID = 1L;
+    private String serialNumber;
     private String type;//类型
     private String demandUnit;//需求提出单位
     private String bdzName;//变电站名称
@@ -59,7 +60,6 @@ public class Project extends DataEntity<Project> {
     private String stayOpenArea;//柱开集中或就业地
     private String ringNetworkCabinet;//环网柜
     private String stationDtu;//站房dtu
-    private String itemType;//项目类型
     private String status;
     private String acquisitionStatus;//领料状态
     private String constructionStatus;//施工状态
@@ -67,6 +67,15 @@ public class Project extends DataEntity<Project> {
     private Integer earlyMaterial;//判断项目是否可以提前发起领料
     private Integer preConstruction;//判断项目是否可以提前施工
 
+    @ExcelField(title = "序号", align = 2, sort = 1)
+    public String getSerialNumber() {
+        return serialNumber;
+    }
+
+    public void setSerialNumber(String serialNumber) {
+        this.serialNumber = serialNumber;
+    }
+
     public String getStatus() {
         return status;
     }
@@ -99,7 +108,7 @@ public class Project extends DataEntity<Project> {
         this.whetherCloseStatus = whetherCloseStatus;
     }
 
-    @ExcelField(title = "类型", align = 2, sort = 1)
+    @ExcelField(title = "类型", align = 2, sort = 2)
     public String getType() {
         return type;
     }
@@ -108,7 +117,7 @@ public class Project extends DataEntity<Project> {
         this.type = type;
     }
 
-    @ExcelField(title = "需求提出单位", align = 2, sort = 2)
+    @ExcelField(title = "需求提出单位", align = 2, sort = 3)
     public String getDemandUnit() {
         return demandUnit;
     }
@@ -117,7 +126,7 @@ public class Project extends DataEntity<Project> {
         this.demandUnit = demandUnit;
     }
 
-    @ExcelField(title = "变电站名称", align = 2, sort = 3)
+    @ExcelField(title = "变电站名称", align = 2, sort = 4)
     public String getBdzName() {
         return bdzName;
     }
@@ -126,7 +135,7 @@ public class Project extends DataEntity<Project> {
         this.bdzName = bdzName;
     }
 
-    @ExcelField(title = "线路名称", align = 2, sort = 4)
+    @ExcelField(title = "线路名称", align = 2, sort = 5)
     public String getLineName() {
         return lineName;
     }
@@ -135,12 +144,12 @@ public class Project extends DataEntity<Project> {
         this.lineName = lineName;
     }
 
-    @ExcelField(title = "项目需求名称", align = 2, sort = 5)
+    @ExcelField(title = "项目需求名称", align = 2, sort = 6)
     public String getRequireName() {
         return requireName;
     }
 
-    @ExcelField(title = "工程编号", align = 2, sort = 6)
+    @ExcelField(title = "工程编号", align = 2, sort = 7)
     public String getProjectId() {
         return projectId;
     }
@@ -149,7 +158,7 @@ public class Project extends DataEntity<Project> {
         this.projectId = projectId;
     }
 
-    @ExcelField(title = "项目名称", align = 2, sort = 7)
+    @ExcelField(title = "项目名称", align = 2, sort = 8)
     public String getProjectName() {
         return projectName;
     }
@@ -158,7 +167,7 @@ public class Project extends DataEntity<Project> {
         this.projectName = projectName;
     }
 
-    @ExcelField(title = "项目定义号", align = 2, sort = 8)
+    @ExcelField(title = "项目定义号", align = 2, sort = 9)
     public String getProjectNumber() {
         return projectNumber;
     }
@@ -167,12 +176,12 @@ public class Project extends DataEntity<Project> {
         this.projectNumber = projectNumber;
     }
 
-    @ExcelField(title = "项目经理角色", align = 2, sort = 9)
+    @ExcelField(title = "项目经理角色", align = 2, sort = 10)
     public String getProjectManageRole() {
         return projectManageRole;
     }
 
-    @ExcelField(title = "配网工程专职角色", align = 2, sort = 10)
+    @ExcelField(title = "配网工程专职角色", align = 2, sort = 11)
     public String getDistributionEngineering() {
         return distributionEngineering;
     }
@@ -181,7 +190,7 @@ public class Project extends DataEntity<Project> {
         this.distributionEngineering = distributionEngineering;
     }
 
-    @ExcelField(title = "配网物资专职角色", align = 2, sort = 11)
+    @ExcelField(title = "配网物资专职角色", align = 2, sort = 12)
     public String getDistributionMaterials() {
         return distributionMaterials;
     }
@@ -190,7 +199,7 @@ public class Project extends DataEntity<Project> {
         this.distributionMaterials = distributionMaterials;
     }
 
-    @ExcelField(title = "配网系统专职角色", align = 2, sort = 12)
+    @ExcelField(title = "配网系统专职角色", align = 2, sort = 13)
     public String getDistributionSystem() {
         return distributionSystem;
     }
@@ -199,7 +208,7 @@ public class Project extends DataEntity<Project> {
         this.distributionSystem = distributionSystem;
     }
 
-    @ExcelField(title = "配网政策处理专职角色", align = 2, sort = 13)
+    @ExcelField(title = "配网政策处理专职角色", align = 2, sort = 14)
     public String getDistributionPolicy() {
         return distributionPolicy;
     }
@@ -208,7 +217,7 @@ public class Project extends DataEntity<Project> {
         this.distributionPolicy = distributionPolicy;
     }
 
-    @ExcelField(title = "项目管理中心领导角色", align = 2, sort = 14)
+    @ExcelField(title = "项目管理中心领导角色", align = 2, sort = 15)
     public String getManagementLeader() {
         return managementLeader;
     }
@@ -217,7 +226,7 @@ public class Project extends DataEntity<Project> {
         this.managementLeader = managementLeader;
     }
 
-    @ExcelField(title = "运行单位", align = 2, sort = 15)
+    @ExcelField(title = "运行单位", align = 2, sort = 16)
     public String getRunUnit() {
         return runUnit;
     }
@@ -226,7 +235,7 @@ public class Project extends DataEntity<Project> {
         this.runUnit = runUnit;
     }
 
-    @ExcelField(title = "运行单位角色", align = 2, sort = 16)
+    @ExcelField(title = "运行单位角色", align = 2, sort = 17)
     public String getRunUnitRole() {
         return runUnitRole;
     }
@@ -235,7 +244,7 @@ public class Project extends DataEntity<Project> {
         this.runUnitRole = runUnitRole;
     }
 
-    @ExcelField(title = "经研所角色", align = 2, sort = 17)
+    @ExcelField(title = "经研所角色", align = 2, sort = 18)
     public String getThroughResearchRole() {
         return throughResearchRole;
     }
@@ -248,7 +257,7 @@ public class Project extends DataEntity<Project> {
         this.projectManageRole = projectManageRole;
     }
 
-    @ExcelField(title = "施工单位", align = 2, sort = 18)
+    @ExcelField(title = "施工单位", align = 2, sort = 19)
     public String getConstructionUnit() {
         return constructionUnit;
     }
@@ -257,12 +266,29 @@ public class Project extends DataEntity<Project> {
         this.constructionUnit = constructionUnit;
     }
 
-    @ExcelField(title = "施工单位角色", align = 2, sort = 19)
+    @ExcelField(title = "施工单位角色", align = 2, sort = 20)
     public String getConstructionUnitRole() {
         return constructionUnitRole;
     }
 
-    @ExcelField(title = "设计单位", align = 2, sort = 20)
+    @ExcelField(title = "施工单位项目经理", align = 2, sort = 21)
+    public String getConstructionUnitManage() {
+        return constructionUnitManage;
+    }
+
+    public void setConstructionUnitManage(String constructionUnitManage) {
+        this.constructionUnitManage = constructionUnitManage;
+    }
+    @ExcelField(title = "施工单位领导", align = 2, sort = 22)
+    public String getConstructionUnitLeader() {
+        return constructionUnitLeader;
+    }
+
+    public void setConstructionUnitLeader(String constructionUnitLeader) {
+        this.constructionUnitLeader = constructionUnitLeader;
+    }
+
+    @ExcelField(title = "设计单位", align = 2, sort = 23)
     public String getDesignUnit() {
         return designUnit;
     }
@@ -271,7 +297,7 @@ public class Project extends DataEntity<Project> {
         this.designUnit = designUnit;
     }
 
-    @ExcelField(title = "设计单位角色", align = 2, sort = 21)
+    @ExcelField(title = "设计单位角色", align = 2, sort = 24)
     public String getDesignUnitManage() {
         return designUnitManage;
     }
@@ -280,11 +306,20 @@ public class Project extends DataEntity<Project> {
         this.designUnitManage = designUnitManage;
     }
 
+    @ExcelField(title = "设计单位领导", align = 2, sort = 25)
+    public String getDesignUnitLeader() {
+        return designUnitLeader;
+    }
+
+    public void setDesignUnitLeader(String designUnitLeader) {
+        this.designUnitLeader = designUnitLeader;
+    }
+
     public void setConstructionUnitRole(String constructionUnitRole) {
         this.constructionUnitRole = constructionUnitRole;
     }
 
-    @ExcelField(title = "交底类型", align = 2, sort = 22)
+    @ExcelField(title = "交底类型", align = 2, sort = 26)
     public String getClarificaitonType() {
         return clarificaitonType;
     }
@@ -297,7 +332,7 @@ public class Project extends DataEntity<Project> {
         this.requireName = requireName;
     }
 
-    @ExcelField(title = "建设理由分类", align = 2, sort = 23)
+    @ExcelField(title = "建设理由分类", align = 2, sort = 27)
     public String getBulidClassificationResons() {
         return bulidClassificationResons;
     }
@@ -306,7 +341,7 @@ public class Project extends DataEntity<Project> {
         this.bulidClassificationResons = bulidClassificationResons;
     }
 
-    @ExcelField(title = "建设理由", align = 2, sort = 24)
+    @ExcelField(title = "建设理由", align = 2, sort = 28)
     public String getBulbidResons() {
         return bulbidResons;
     }
@@ -315,7 +350,7 @@ public class Project extends DataEntity<Project> {
         this.bulbidResons = bulbidResons;
     }
 
-    @ExcelField(title = "设备基本情况", align = 2, sort = 25)
+    @ExcelField(title = "设备基本情况", align = 2, sort = 29)
     public String getAsicEquipment() {
         return asicEquipment;
     }
@@ -324,7 +359,7 @@ public class Project extends DataEntity<Project> {
         this.asicEquipment = asicEquipment;
     }
 
-    @ExcelField(title = "运行班", align = 2, sort = 26)
+    @ExcelField(title = "运行班", align = 2, sort = 30)
     public String getRunTheClass() {
         return runTheClass;
     }
@@ -333,7 +368,7 @@ public class Project extends DataEntity<Project> {
         this.runTheClass = runTheClass;
     }
 
-    @ExcelField(title = "项目组", align = 2, sort = 27)
+    @ExcelField(title = "项目组", align = 2, sort = 31)
     public String getProjectTeam() {
         return projectTeam;
     }
@@ -342,7 +377,7 @@ public class Project extends DataEntity<Project> {
         this.projectTeam = projectTeam;
     }
 
-    @ExcelField(title = "费用估算", align = 2, sort = 28)
+    @ExcelField(title = "费用估算", align = 2, sort = 32)
     public Double getCostEstimate() {
         return costEstimate;
     }
@@ -351,7 +386,7 @@ public class Project extends DataEntity<Project> {
         this.costEstimate = costEstimate;
     }
 
-    @ExcelField(title = "是否迎风期度夏项目", align = 2, sort = 29)
+    @ExcelField(title = "是否迎风期度夏项目", align = 2, sort = 33)
     public String getWhetherRheUpwind() {
         return whetherRheUpwind;
     }
@@ -360,7 +395,7 @@ public class Project extends DataEntity<Project> {
         this.whetherRheUpwind = whetherRheUpwind;
     }
 
-    @ExcelField(title = "确定下达时间", align = 2, sort = 30)
+    @ExcelField(title = "确定下达时间", align = 2, sort = 34)
     public String getSureDaDate() {
         return sureDaDate;
     }
@@ -369,7 +404,7 @@ public class Project extends DataEntity<Project> {
         this.sureDaDate = sureDaDate;
     }
 
-    @ExcelField(title = "备注", align = 2, sort = 31)
+    @ExcelField(title = "备注", align = 2, sort = 35)
     public String getTextRemark() {
         return textRemark;
     }
@@ -382,7 +417,7 @@ public class Project extends DataEntity<Project> {
         this.textRemark = textRemark;
     }
 
-    @ExcelField(title = "停电线路", align = 2, sort = 32)
+    @ExcelField(title = "停电线路", align = 2, sort = 36)
     public String getPowerLine() {
         return powerLine;
     }
@@ -391,7 +426,7 @@ public class Project extends DataEntity<Project> {
         this.powerLine = powerLine;
     }
 
-    @ExcelField(title = "停电范围", align = 2, sort = 33)
+    @ExcelField(title = "停电范围", align = 2, sort = 37)
     public String getPowerScope() {
         return powerScope;
     }
@@ -400,7 +435,7 @@ public class Project extends DataEntity<Project> {
         this.powerScope = powerScope;
     }
 
-    @ExcelField(title = "项目类型", align = 2, sort = 34)
+    @ExcelField(title = "项目类型", align = 2, sort = 38)
     public String getProjectType() {
         return projectType;
     }
@@ -409,7 +444,7 @@ public class Project extends DataEntity<Project> {
         this.projectType = projectType;
     }
 
-    @ExcelField(title = "是否为停电打包项目", align = 2, sort = 35)
+    @ExcelField(title = "是否为停电打包项目", align = 2, sort = 39)
     public String getPowerFlagPackage() {
         return powerFlagPackage;
     }
@@ -418,7 +453,7 @@ public class Project extends DataEntity<Project> {
         this.powerFlagPackage = powerFlagPackage;
     }
 
-    @ExcelField(title = "证处初步判断", align = 2, sort = 36)
+    @ExcelField(title = "证处初步判断", align = 2, sort = 40)
     public String getPreliminaryJudgment() {
         return preliminaryJudgment;
     }
@@ -427,7 +462,7 @@ public class Project extends DataEntity<Project> {
         this.preliminaryJudgment = preliminaryJudgment;
     }
 
-    @ExcelField(title = "是否含土建(不含钢管杆)", align = 2, sort = 37)
+    @ExcelField(title = "是否含土建(不含钢管杆)", align = 2, sort = 41)
     public String getFlagCivilEngineering() {
         return flagCivilEngineering;
     }
@@ -436,7 +471,7 @@ public class Project extends DataEntity<Project> {
         this.flagCivilEngineering = flagCivilEngineering;
     }
 
-    @ExcelField(title = "钢管杆基础类型", align = 2, sort = 38)
+    @ExcelField(title = "钢管杆基础类型", align = 2, sort = 42)
     public String getSteelTubePole() {
         return steelTubePole;
     }
@@ -445,7 +480,7 @@ public class Project extends DataEntity<Project> {
         this.steelTubePole = steelTubePole;
     }
 
-    @ExcelField(title = "是否需要规矩报批", align = 2, sort = 39)
+    @ExcelField(title = "是否需要规矩报批", align = 2, sort = 43)
     public String getFlagApprovalPlanning() {
         return flagApprovalPlanning;
     }
@@ -454,7 +489,7 @@ public class Project extends DataEntity<Project> {
         this.flagApprovalPlanning = flagApprovalPlanning;
     }
 
-    @ExcelField(title = "设备改造类型", align = 2, sort = 40)
+    @ExcelField(title = "设备改造类型", align = 2, sort = 44)
     public String getEquCreateType() {
         return equCreateType;
     }
@@ -463,7 +498,7 @@ public class Project extends DataEntity<Project> {
         this.equCreateType = equCreateType;
     }
 
-    @ExcelField(title = "改造设备尺寸及间隔数", align = 2, sort = 41)
+    @ExcelField(title = "改造设备尺寸及间隔数", align = 2, sort = 45)
     public String getEquCreateSize() {
         return equCreateSize;
     }
@@ -472,7 +507,7 @@ public class Project extends DataEntity<Project> {
         this.equCreateSize = equCreateSize;
     }
 
-    @ExcelField(title = "是否新设备命名", align = 2, sort = 42)
+    @ExcelField(title = "是否新设备命名", align = 2, sort = 46)
     public String getFlagNewEquName() {
         return flagNewEquName;
     }
@@ -481,7 +516,7 @@ public class Project extends DataEntity<Project> {
         this.flagNewEquName = flagNewEquName;
     }
 
-    @ExcelField(title = "是否含变电站新闻隔投运", align = 2, sort = 43)
+    @ExcelField(title = "是否含变电站新闻隔投运", align = 2, sort = 47)
     public String getIncludeBdzNews() {
         return includeBdzNews;
     }
@@ -490,7 +525,7 @@ public class Project extends DataEntity<Project> {
         this.includeBdzNews = includeBdzNews;
     }
 
-    @ExcelField(title = "是否非涉电电气施工", align = 2, sort = 44)
+    @ExcelField(title = "是否非涉电电气施工", align = 2, sort = 48)
     public String getFlagNoElectrical() {
         return flagNoElectrical;
     }
@@ -499,7 +534,7 @@ public class Project extends DataEntity<Project> {
         this.flagNoElectrical = flagNoElectrical;
     }
 
-    @ExcelField(title = "图纸标注的带点作业情况", align = 2, sort = 45)
+    @ExcelField(title = "图纸标注的带点作业情况", align = 2, sort = 49)
     public String getDrawingsWork() {
         return drawingsWork;
     }
@@ -508,7 +543,7 @@ public class Project extends DataEntity<Project> {
         this.drawingsWork = drawingsWork;
     }
 
-    @ExcelField(title = "是否含自动化", align = 2, sort = 46)
+    @ExcelField(title = "是否含自动化", align = 2, sort = 50)
     public String getFlagAutomation() {
         return flagAutomation;
     }
@@ -517,7 +552,7 @@ public class Project extends DataEntity<Project> {
         this.flagAutomation = flagAutomation;
     }
 
-    @ExcelField(title = "二摇或三摇", align = 2, sort = 47)
+    @ExcelField(title = "二摇或三摇", align = 2, sort = 51)
     public String getTwoAndThreeRemote() {
         return twoAndThreeRemote;
     }
@@ -526,7 +561,7 @@ public class Project extends DataEntity<Project> {
         this.twoAndThreeRemote = twoAndThreeRemote;
     }
 
-    @ExcelField(title = "通信方式", align = 2, sort = 48)
+    @ExcelField(title = "通信方式", align = 2, sort = 52)
     public String getPhoneStyle() {
         return phoneStyle;
     }
@@ -535,7 +570,7 @@ public class Project extends DataEntity<Project> {
         this.phoneStyle = phoneStyle;
     }
 
-    @ExcelField(title = "柱开集中或就业地", align = 2, sort = 49)
+    @ExcelField(title = "柱开集中或就业地", align = 2, sort = 53)
     public String getStayOpenArea() {
         return stayOpenArea;
     }
@@ -544,7 +579,7 @@ public class Project extends DataEntity<Project> {
         this.stayOpenArea = stayOpenArea;
     }
 
-    @ExcelField(title = "环网柜", align = 2, sort = 50)
+    @ExcelField(title = "环网柜", align = 2, sort = 54)
     public String getRingNetworkCabinet() {
         return ringNetworkCabinet;
     }
@@ -553,7 +588,7 @@ public class Project extends DataEntity<Project> {
         this.ringNetworkCabinet = ringNetworkCabinet;
     }
 
-    @ExcelField(title = "站房DTU", align = 2, sort = 51)
+    @ExcelField(title = "站房DTU", align = 2, sort = 55)
     public String getStationDtu() {
         return stationDtu;
     }
@@ -570,37 +605,7 @@ public class Project extends DataEntity<Project> {
         this.earlyMaterial = earlyMaterial;
     }
 
-    public String getConstructionUnitManage() {
-        return constructionUnitManage;
-    }
-
-    public void setConstructionUnitManage(String constructionUnitManage) {
-        this.constructionUnitManage = constructionUnitManage;
-    }
-
-    public String getConstructionUnitLeader() {
-        return constructionUnitLeader;
-    }
-
-    public void setConstructionUnitLeader(String constructionUnitLeader) {
-        this.constructionUnitLeader = constructionUnitLeader;
-    }
 
-    public String getDesignUnitLeader() {
-        return designUnitLeader;
-    }
-
-    public void setDesignUnitLeader(String designUnitLeader) {
-        this.designUnitLeader = designUnitLeader;
-    }
-
-    public String getItemType() {
-        return itemType;
-    }
-
-    public void setItemType(String itemType) {
-        this.itemType = itemType;
-    }
 
     public Integer getPreConstruction() {
         return preConstruction;

+ 3 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/ProjectAcquisition.java

@@ -1,5 +1,6 @@
 package com.jeeplus.modules.sg.managementcenter.project.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.modules.sg.picking.activiti.entity.Acquisition;
 
 import java.util.Date;
@@ -24,11 +25,12 @@ public class ProjectAcquisition {
     public void setProjectNumber(String projectNumber) {
         this.projectNumber = projectNumber;
     }
-
+    @JsonFormat(pattern = "yyyy-MM-dd")
     public Date getAuditTime() {
         return auditTime;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd")
     public void setAuditTime(Date auditTime) {
         this.auditTime = auditTime;
     }

+ 603 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/ProjectManager.java

@@ -0,0 +1,603 @@
+package com.jeeplus.modules.sg.managementcenter.project.entity;
+
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+import com.jeeplus.core.persistence.DataEntity;
+
+public class ProjectManager extends DataEntity<ProjectManager> {
+    private static final long serialVersionUID = 1L;
+    private String type;//类型
+    private String demandUnit;//需求提出单位
+    private String bdzName;//变电站名称
+    private String lineName;//线路名称
+    private String requireName;//需求项目名称
+    private String projectId;//工程编号
+    private String projectName;//项目名称
+    private String projectNumber;//项目定义号
+    private String projectManageRole;//项目经理角色
+    private String distributionEngineering;//配网工程专职角色
+    private String distributionMaterials;//配网物资专职角色
+    private String distributionSystem;//配网系统专职角色
+    private String distributionPolicy;//配网政策处理专职角色
+    private String managementLeader;//项目管理中心领导角色
+    private String runUnit;//运行单位
+    private String runUnitRole;//运行单位角色
+    private String throughResearchRole;//经研所角色
+    private String constructionUnit;//施工单位
+    private String constructionUnitRole;//施工单位角色
+    private String constructionUnitManage;//施工单位项目经理
+    private String constructionUnitLeader;//施工单位领导
+    private String designUnit;//设计单位
+    private String designUnitManage;//设计单位角色
+    private String designUnitLeader;//施工 单位领导
+    private String clarificaitonType;//交底类型
+    private String bulidClassificationResons;//建设理由分类
+    private String bulbidResons;//建设理由
+    private String asicEquipment;//设备基本情况
+    private String runTheClass;//运行班
+    private String projectTeam;//项目组
+    private Double costEstimate;//费用估算
+    private String whetherRheUpwind;//是否迎风期度夏项目
+    private String sureDaDate;//确定下达时间
+    private String textRemark;//备注
+    private String powerLine;//停电线路
+    private String powerScope;//停电范围
+    private String projectType;//项目类型
+    private String powerFlagPackage;//是否为停电打包项目
+    private String preliminaryJudgment;//证处初步判断
+    private String flagCivilEngineering;//是否含土建(不含钢管杆)
+    private String steelTubePole;//钢管杆基础类型
+    private String flagApprovalPlanning;//是否需要规矩报批
+    private String equCreateType;//设备改造类型
+    private String equCreateSize;//改造设备尺寸及间隔数
+    private String flagNewEquName;//是否新设备命名
+    private String includeBdzNews;//是否含变电站新闻格投运
+    private String flagNoElectrical;//是否非涉电电气施工
+    private String drawingsWork;//图纸标注的带点作业情况
+    private String flagAutomation;//是否含自动化
+    private String twoAndThreeRemote;//二或三
+    private String phoneStyle;//通信方式
+    private String stayOpenArea;//柱开集中或就业地
+    private String ringNetworkCabinet;//环网柜
+    private String stationDtu;//站房dtu
+    private String status;
+    private String acquisitionStatus;//领料状态
+    private String constructionStatus;//施工状态
+    private String whetherCloseStatus;//是否项目关闭
+    private Integer earlyMaterial;//判断项目是否可以提前发起领料
+    private Integer preConstruction;//判断项目是否可以提前施工
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getAcquisitionStatus() {
+        return acquisitionStatus;
+    }
+
+    public void setAcquisitionStatus(String acquisitionStatus) {
+        this.acquisitionStatus = acquisitionStatus;
+    }
+
+    public String getConstructionStatus() {
+        return constructionStatus;
+    }
+
+    public void setConstructionStatus(String constructionStatus) {
+        this.constructionStatus = constructionStatus;
+    }
+
+    public String getWhetherCloseStatus() {
+        return whetherCloseStatus;
+    }
+
+    public void setWhetherCloseStatus(String whetherCloseStatus) {
+        this.whetherCloseStatus = whetherCloseStatus;
+    }
+
+    @ExcelField(title = "类型", align = 2, sort = 1)
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    @ExcelField(title = "需求提出单位", align = 2, sort = 2)
+    public String getDemandUnit() {
+        return demandUnit;
+    }
+
+    public void setDemandUnit(String demandUnit) {
+        this.demandUnit = demandUnit;
+    }
+
+    @ExcelField(title = "变电站名称", align = 2, sort = 3)
+    public String getBdzName() {
+        return bdzName;
+    }
+
+    public void setBdzName(String bdzName) {
+        this.bdzName = bdzName;
+    }
+
+    @ExcelField(title = "线路名称", align = 2, sort = 4)
+    public String getLineName() {
+        return lineName;
+    }
+
+    public void setLineName(String lineName) {
+        this.lineName = lineName;
+    }
+
+    @ExcelField(title = "项目需求名称", align = 2, sort = 5)
+    public String getRequireName() {
+        return requireName;
+    }
+
+    @ExcelField(title = "工程编号", align = 2, sort = 6)
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    @ExcelField(title = "项目名称", align = 2, sort = 7)
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    @ExcelField(title = "项目定义号", align = 2, sort = 8)
+    public String getProjectNumber() {
+        return projectNumber;
+    }
+
+    public void setProjectNumber(String projectNumber) {
+        this.projectNumber = projectNumber;
+    }
+
+    @ExcelField(title = "项目经理角色", align = 2, sort = 9)
+    public String getProjectManageRole() {
+        return projectManageRole;
+    }
+
+    @ExcelField(title = "配网工程专职角色", align = 2, sort = 10)
+    public String getDistributionEngineering() {
+        return distributionEngineering;
+    }
+
+    public void setDistributionEngineering(String distributionEngineering) {
+        this.distributionEngineering = distributionEngineering;
+    }
+
+    @ExcelField(title = "配网物资专职角色", align = 2, sort = 11)
+    public String getDistributionMaterials() {
+        return distributionMaterials;
+    }
+
+    public void setDistributionMaterials(String distributionMaterials) {
+        this.distributionMaterials = distributionMaterials;
+    }
+
+    @ExcelField(title = "配网系统专职角色", align = 2, sort = 12)
+    public String getDistributionSystem() {
+        return distributionSystem;
+    }
+
+    public void setDistributionSystem(String distributionSystem) {
+        this.distributionSystem = distributionSystem;
+    }
+
+    @ExcelField(title = "配网政策处理专职角色", align = 2, sort = 13)
+    public String getDistributionPolicy() {
+        return distributionPolicy;
+    }
+
+    public void setDistributionPolicy(String distributionPolicy) {
+        this.distributionPolicy = distributionPolicy;
+    }
+
+    @ExcelField(title = "项目管理中心领导角色", align = 2, sort = 14)
+    public String getManagementLeader() {
+        return managementLeader;
+    }
+
+    public void setManagementLeader(String managementLeader) {
+        this.managementLeader = managementLeader;
+    }
+
+    @ExcelField(title = "运行单位", align = 2, sort = 15)
+    public String getRunUnit() {
+        return runUnit;
+    }
+
+    public void setRunUnit(String runUnit) {
+        this.runUnit = runUnit;
+    }
+
+    @ExcelField(title = "运行单位角色", align = 2, sort = 16)
+    public String getRunUnitRole() {
+        return runUnitRole;
+    }
+
+    public void setRunUnitRole(String runUnitRole) {
+        this.runUnitRole = runUnitRole;
+    }
+
+    @ExcelField(title = "经研所角色", align = 2, sort = 17)
+    public String getThroughResearchRole() {
+        return throughResearchRole;
+    }
+
+    public void setThroughResearchRole(String throughResearchRole) {
+        this.throughResearchRole = throughResearchRole;
+    }
+
+    public void setProjectManageRole(String projectManageRole) {
+        this.projectManageRole = projectManageRole;
+    }
+
+    @ExcelField(title = "施工单位", align = 2, sort = 18)
+    public String getConstructionUnit() {
+        return constructionUnit;
+    }
+
+    public void setConstructionUnit(String constructionUnit) {
+        this.constructionUnit = constructionUnit;
+    }
+
+    @ExcelField(title = "施工单位角色", align = 2, sort = 19)
+    public String getConstructionUnitRole() {
+        return constructionUnitRole;
+    }
+
+    @ExcelField(title = "设计单位", align = 2, sort = 20)
+    public String getDesignUnit() {
+        return designUnit;
+    }
+
+    public void setDesignUnit(String designUnit) {
+        this.designUnit = designUnit;
+    }
+
+    @ExcelField(title = "设计单位角色", align = 2, sort = 21)
+    public String getDesignUnitManage() {
+        return designUnitManage;
+    }
+
+    public void setDesignUnitManage(String designUnitManage) {
+        this.designUnitManage = designUnitManage;
+    }
+
+    public void setConstructionUnitRole(String constructionUnitRole) {
+        this.constructionUnitRole = constructionUnitRole;
+    }
+
+    @ExcelField(title = "交底类型", align = 2, sort = 22)
+    public String getClarificaitonType() {
+        return clarificaitonType;
+    }
+
+    public void setClarificaitonType(String clarificaitonType) {
+        this.clarificaitonType = clarificaitonType;
+    }
+
+    public void setRequireName(String requireName) {
+        this.requireName = requireName;
+    }
+
+    @ExcelField(title = "建设理由分类", align = 2, sort = 23)
+    public String getBulidClassificationResons() {
+        return bulidClassificationResons;
+    }
+
+    public void setBulidClassificationResons(String bulidClassificationResons) {
+        this.bulidClassificationResons = bulidClassificationResons;
+    }
+
+    @ExcelField(title = "建设理由", align = 2, sort = 24)
+    public String getBulbidResons() {
+        return bulbidResons;
+    }
+
+    public void setBulbidResons(String bulbidResons) {
+        this.bulbidResons = bulbidResons;
+    }
+
+    @ExcelField(title = "设备基本情况", align = 2, sort = 25)
+    public String getAsicEquipment() {
+        return asicEquipment;
+    }
+
+    public void setAsicEquipment(String asicEquipment) {
+        this.asicEquipment = asicEquipment;
+    }
+
+    @ExcelField(title = "运行班", align = 2, sort = 26)
+    public String getRunTheClass() {
+        return runTheClass;
+    }
+
+    public void setRunTheClass(String runTheClass) {
+        this.runTheClass = runTheClass;
+    }
+
+    @ExcelField(title = "项目组", align = 2, sort = 27)
+    public String getProjectTeam() {
+        return projectTeam;
+    }
+
+    public void setProjectTeam(String projectTeam) {
+        this.projectTeam = projectTeam;
+    }
+
+    @ExcelField(title = "费用估算", align = 2, sort = 28)
+    public Double getCostEstimate() {
+        return costEstimate;
+    }
+
+    public void setCostEstimate(Double costEstimate) {
+        this.costEstimate = costEstimate;
+    }
+
+    @ExcelField(title = "是否迎风期度夏项目", align = 2, sort = 29)
+    public String getWhetherRheUpwind() {
+        return whetherRheUpwind;
+    }
+
+    public void setWhetherRheUpwind(String whetherRheUpwind) {
+        this.whetherRheUpwind = whetherRheUpwind;
+    }
+
+    @ExcelField(title = "确定下达时间", align = 2, sort = 30)
+    public String getSureDaDate() {
+        return sureDaDate;
+    }
+
+    public void setSureDaDate(String sureDaDate) {
+        this.sureDaDate = sureDaDate;
+    }
+
+    @ExcelField(title = "备注", align = 2, sort = 31)
+    public String getTextRemark() {
+        return textRemark;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public void setTextRemark(String textRemark) {
+        this.textRemark = textRemark;
+    }
+
+    @ExcelField(title = "停电线路", align = 2, sort = 32)
+    public String getPowerLine() {
+        return powerLine;
+    }
+
+    public void setPowerLine(String powerLine) {
+        this.powerLine = powerLine;
+    }
+
+    @ExcelField(title = "停电范围", align = 2, sort = 33)
+    public String getPowerScope() {
+        return powerScope;
+    }
+
+    public void setPowerScope(String powerScope) {
+        this.powerScope = powerScope;
+    }
+
+    @ExcelField(title = "项目类型", align = 2, sort = 34)
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
+
+    @ExcelField(title = "是否为停电打包项目", align = 2, sort = 35)
+    public String getPowerFlagPackage() {
+        return powerFlagPackage;
+    }
+
+    public void setPowerFlagPackage(String powerFlagPackage) {
+        this.powerFlagPackage = powerFlagPackage;
+    }
+
+    @ExcelField(title = "证处初步判断", align = 2, sort = 36)
+    public String getPreliminaryJudgment() {
+        return preliminaryJudgment;
+    }
+
+    public void setPreliminaryJudgment(String preliminaryJudgment) {
+        this.preliminaryJudgment = preliminaryJudgment;
+    }
+
+    @ExcelField(title = "是否含土建(不含钢管杆)", align = 2, sort = 37)
+    public String getFlagCivilEngineering() {
+        return flagCivilEngineering;
+    }
+
+    public void setFlagCivilEngineering(String flagCivilEngineering) {
+        this.flagCivilEngineering = flagCivilEngineering;
+    }
+
+    @ExcelField(title = "钢管杆基础类型", align = 2, sort = 38)
+    public String getSteelTubePole() {
+        return steelTubePole;
+    }
+
+    public void setSteelTubePole(String steelTubePole) {
+        this.steelTubePole = steelTubePole;
+    }
+
+    @ExcelField(title = "是否需要规矩报批", align = 2, sort = 39)
+    public String getFlagApprovalPlanning() {
+        return flagApprovalPlanning;
+    }
+
+    public void setFlagApprovalPlanning(String flagApprovalPlanning) {
+        this.flagApprovalPlanning = flagApprovalPlanning;
+    }
+
+    @ExcelField(title = "设备改造类型", align = 2, sort = 40)
+    public String getEquCreateType() {
+        return equCreateType;
+    }
+
+    public void setEquCreateType(String equCreateType) {
+        this.equCreateType = equCreateType;
+    }
+
+    @ExcelField(title = "改造设备尺寸及间隔数", align = 2, sort = 41)
+    public String getEquCreateSize() {
+        return equCreateSize;
+    }
+
+    public void setEquCreateSize(String equCreateSize) {
+        this.equCreateSize = equCreateSize;
+    }
+
+    @ExcelField(title = "是否新设备命名", align = 2, sort = 42)
+    public String getFlagNewEquName() {
+        return flagNewEquName;
+    }
+
+    public void setFlagNewEquName(String flagNewEquName) {
+        this.flagNewEquName = flagNewEquName;
+    }
+
+    @ExcelField(title = "是否含变电站新闻隔投运", align = 2, sort = 43)
+    public String getIncludeBdzNews() {
+        return includeBdzNews;
+    }
+
+    public void setIncludeBdzNews(String includeBdzNews) {
+        this.includeBdzNews = includeBdzNews;
+    }
+
+    @ExcelField(title = "是否非涉电电气施工", align = 2, sort = 44)
+    public String getFlagNoElectrical() {
+        return flagNoElectrical;
+    }
+
+    public void setFlagNoElectrical(String flagNoElectrical) {
+        this.flagNoElectrical = flagNoElectrical;
+    }
+
+    @ExcelField(title = "图纸标注的带点作业情况", align = 2, sort = 45)
+    public String getDrawingsWork() {
+        return drawingsWork;
+    }
+
+    public void setDrawingsWork(String drawingsWork) {
+        this.drawingsWork = drawingsWork;
+    }
+
+    @ExcelField(title = "是否含自动化", align = 2, sort = 46)
+    public String getFlagAutomation() {
+        return flagAutomation;
+    }
+
+    public void setFlagAutomation(String flagAutomation) {
+        this.flagAutomation = flagAutomation;
+    }
+
+    @ExcelField(title = "二摇或三摇", align = 2, sort = 47)
+    public String getTwoAndThreeRemote() {
+        return twoAndThreeRemote;
+    }
+
+    public void setTwoAndThreeRemote(String twoAndThreeRemote) {
+        this.twoAndThreeRemote = twoAndThreeRemote;
+    }
+
+    @ExcelField(title = "通信方式", align = 2, sort = 48)
+    public String getPhoneStyle() {
+        return phoneStyle;
+    }
+
+    public void setPhoneStyle(String phoneStyle) {
+        this.phoneStyle = phoneStyle;
+    }
+
+    @ExcelField(title = "柱开集中或就业地", align = 2, sort = 49)
+    public String getStayOpenArea() {
+        return stayOpenArea;
+    }
+
+    public void setStayOpenArea(String stayOpenArea) {
+        this.stayOpenArea = stayOpenArea;
+    }
+
+    @ExcelField(title = "环网柜", align = 2, sort = 50)
+    public String getRingNetworkCabinet() {
+        return ringNetworkCabinet;
+    }
+
+    public void setRingNetworkCabinet(String ringNetworkCabinet) {
+        this.ringNetworkCabinet = ringNetworkCabinet;
+    }
+
+    @ExcelField(title = "站房DTU", align = 2, sort = 51)
+    public String getStationDtu() {
+        return stationDtu;
+    }
+
+    public void setStationDtu(String stationDtu) {
+        this.stationDtu = stationDtu;
+    }
+
+    public Integer getEarlyMaterial() {
+        return earlyMaterial;
+    }
+
+    public void setEarlyMaterial(Integer earlyMaterial) {
+        this.earlyMaterial = earlyMaterial;
+    }
+
+    public String getConstructionUnitManage() {
+        return constructionUnitManage;
+    }
+
+    public void setConstructionUnitManage(String constructionUnitManage) {
+        this.constructionUnitManage = constructionUnitManage;
+    }
+
+    public String getConstructionUnitLeader() {
+        return constructionUnitLeader;
+    }
+
+    public void setConstructionUnitLeader(String constructionUnitLeader) {
+        this.constructionUnitLeader = constructionUnitLeader;
+    }
+
+    public String getDesignUnitLeader() {
+        return designUnitLeader;
+    }
+
+    public void setDesignUnitLeader(String designUnitLeader) {
+        this.designUnitLeader = designUnitLeader;
+    }
+
+    public Integer getPreConstruction() {
+        return preConstruction;
+    }
+
+    public void setPreConstruction(Integer preConstruction) {
+        this.preConstruction = preConstruction;
+    }
+}

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

@@ -35,4 +35,5 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     //查找项目信息
     List<Project> findListProjectRequisitions(@Param("list")List<PickingRequisition> pickingRequisitions);
+
 }

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

@@ -64,7 +64,6 @@
     	a.stay_open_area AS "stayOpenArea",
     	a.ring_network_cabinet AS "ringNetworkCabinet",
     	a.station_dtu AS "stationDtu",
-    	a.item_type AS "itemType",
 		a.status As "status",
 		a.acquisition_status AS "acquisitionStatus",
 		a.construction_status AS "constructionStatus",
@@ -99,6 +98,9 @@
 			<if test="requireName != null and  requireName != ''">
 				AND a.require_name LIKE CONCAT(CONCAT('%',#{requireName},'%'))
 			</if>
+			<if test="projectManageRole != null and  projectManageRole != ''">
+				AND a.project_manage_role = #{projectManageRole}
+			</if>
 			<if test="constructionUnitRole != null and  constructionUnitRole != ''">
 				AND a.construction_unit_role = #{constructionUnitRole}
 			</if>
@@ -212,7 +214,6 @@
 			stay_open_area,
 			ring_network_cabinet,
 			station_dtu,
-			item_type,
 			status,
 			acquisition_status,
 			construction_status,
@@ -281,7 +282,6 @@
     	 	#{stayOpenArea},
     	 	#{ringNetworkCabinet},
     	 	#{stationDtu},
-    	 	#{itemType},
     		#{status},
     		#{acquisitionStatus},
     		#{constructionStatus},
@@ -353,7 +353,6 @@
 		phone_style,
 		stay_open_area,
 		ring_network_cabinet,
-		item_type,
 		station_dtu,
 		status,
 		acquisition_status,
@@ -424,7 +423,6 @@
 			#{item.phoneStyle},
 			#{item.stayOpenArea},
 			#{item.ringNetworkCabinet},
-			#{item.itemType},
 			#{item.stationDtu},
 			#{item.status},
 			#{item.acquisitionStatus},
@@ -579,5 +577,4 @@
 			</foreach>
 		</if>
 	</select>
-
 </mapper>

+ 171 - 25
src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java

@@ -9,6 +9,7 @@ import java.util.UUID;
 import com.jeeplus.modules.sg.financial.settlement.entity.MaintainData;
 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.ProjectManager;
 import com.jeeplus.modules.sg.managementcenter.project.mapper.ProjectMapper;
 import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Param;
@@ -42,7 +43,7 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 	public Page<Project> findPage(Page<Project> page, Project project) {
 		return super.findPage(page, project);
 	}
-	
+
 	@Transactional(readOnly = false)
 	public void save(Project project) {
 		super.save(project);
@@ -78,6 +79,7 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		projectMapper.updateStatusByClose(close,procInsId);
 	}
 
+	//配网项目经理导入
 	@Transactional(readOnly = false)
 	public void saveList(List<Project> projects) {
 		String status = "0";
@@ -89,6 +91,7 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		Project project1 = new Project();
 		List<Project> list = projectMapper.findList(project1);
 		for(Project project:projects){
+			project.setProjectType("");
 			status = "0";
 			acquisitionStatus="0";//领料状态
 			constructionStatus="0";//施工状态
@@ -105,23 +108,66 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 					project.setId(project2.getId());//项目id
 					project.setCreateBy(project2.getCreateBy());
 					project.setCreateDate(project2.getCreateDate());
-					project.setProjectManageRole(project2.getProjectManageRole());//项目经理角色
-					project.setDistributionEngineering(project2.getDistributionEngineering());//配网工程专职角色
-					project.setDistributionMaterials(project2.getDistributionMaterials());//配网物资专职角色
-					project.setDistributionSystem(project2.getDistributionSystem());//配网系统专职角色
-					project.setDistributionPolicy(project2.getDistributionPolicy());//配网政策处理专职角色
-					project.setManagementLeader(project2.getManagementLeader());//项目管理中心领导角色
-					project.setRunUnit(project2.getRunUnit());//运行单位
-					project.setRunUnitRole(project2.getRunUnitRole());//运行单位角色
-					project.setThroughResearchRole(project2.getThroughResearchRole());//经研所角色
-					project.setConstructionUnit(project2.getConstructionUnit());//施工单位
-					project.setConstructionUnitRole(project2.getConstructionUnitRole());//施工单位角色
-					project.setConstructionUnitManage(project2.getConstructionUnitManage());//施工单位项目经理
-					project.setConstructionUnitLeader(project2.getConstructionUnitLeader());//施工单位项目领导
-					project.setDesignUnit(project2.getDesignUnit());//设计单位
-					project.setDesignUnitManage(project2.getDesignUnitManage());//设计单位角色
-					project.setDesignUnitLeader(project2.getDesignUnitLeader());//设计单位领导
-					project.setClarificaitonType(project2.getClarificaitonType());//交底类型
+					if (!status.equals("3")){
+						if (!status.equals("0")||!acquisitionStatus.equals("0")
+								||!constructionStatus.equals("0")||earlyMaterial!=0
+								||preConstruction!=0){
+							project.setType(project2.getType());
+							project.setDemandUnit(project2.getDemandUnit());
+							project.setBdzName(project2.getBdzName());
+							project.setLineName(project2.getLineName());
+							project.setRequireName(project2.getRequireName());
+							project.setProjectId(project2.getProjectId());
+							project.setProjectName(project2.getProjectName());
+							project.setProjectNumber(project2.getProjectNumber());
+							project.setProjectManageRole(project2.getProjectManageRole());//项目经理角色
+							project.setDistributionEngineering(project2.getDistributionEngineering());//配网工程专职角色
+							project.setDistributionMaterials(project2.getDistributionMaterials());//配网物资专职角色
+							project.setDistributionSystem(project2.getDistributionSystem());//配网系统专职角色
+							project.setDistributionPolicy(project2.getDistributionPolicy());//配网政策处理专职角色
+							project.setManagementLeader(project2.getManagementLeader());//项目管理中心领导角色
+							project.setRunUnit(project2.getRunUnit());//运行单位
+							project.setRunUnitRole(project2.getRunUnitRole());//运行单位角色
+							project.setThroughResearchRole(project2.getThroughResearchRole());//经研所角色
+							project.setConstructionUnit(project2.getConstructionUnit());//施工单位
+							project.setConstructionUnitRole(project2.getConstructionUnitRole());//施工单位角色
+							project.setConstructionUnitManage(project2.getConstructionUnitManage());//施工单位项目经理
+							project.setConstructionUnitLeader(project2.getConstructionUnitLeader());//施工单位项目领导
+							project.setDesignUnit(project2.getDesignUnit());//设计单位
+							project.setDesignUnitManage(project2.getDesignUnitManage());//设计单位角色
+							project.setDesignUnitLeader(project2.getDesignUnitLeader());//设计单位领导
+							project.setClarificaitonType(project2.getClarificaitonType());//交底类型
+							project.setBulidClassificationResons(project2.getBulidClassificationResons());//建设理由分类
+							project.setBulbidResons(project2.getBulbidResons());//建设理由
+							project.setAsicEquipment(project2.getAsicEquipment());//设备基本情况
+							project.setRunTheClass(project2.getRunTheClass());//运行班
+							project.setProjectTeam(project2.getProjectTeam());//项目组
+							project.setCostEstimate(project2.getCostEstimate());//费用估算
+							project.setWhetherRheUpwind(project2.getWhetherRheUpwind());//是否迎风期度夏项目
+							project.setSureDaDate(project2.getSureDaDate());//确定下达时间
+							project.setTextRemark(project2.getTextRemark());//备注
+						}
+					}
+					project.setPowerLine(project2.getPowerLine());//停电线路
+					project.setPowerScope(project2.getPowerScope());//停电范围
+					project.setProjectType(project2.getProjectType());
+					project.setPowerFlagPackage(project2.getPowerFlagPackage());
+					project.setPreliminaryJudgment(project2.getPreliminaryJudgment());
+					project.setFlagCivilEngineering(project2.getFlagCivilEngineering());
+					project.setSteelTubePole(project2.getSteelTubePole());
+					project.setFlagApprovalPlanning(project2.getFlagApprovalPlanning());
+					project.setEquCreateType(project2.getEquCreateType());
+					project.setEquCreateSize(project2.getEquCreateSize());
+					project.setFlagNewEquName(project2.getFlagNewEquName());
+					project.setIncludeBdzNews(project2.getIncludeBdzNews());
+					project.setFlagNoElectrical(project2.getFlagNoElectrical());
+					project.setDrawingsWork(project2.getDrawingsWork());
+					project.setFlagAutomation(project2.getFlagAutomation());
+					project.setTwoAndThreeRemote(project2.getTwoAndThreeRemote());
+					project.setPhoneStyle(project2.getPhoneStyle());
+					project.setStayOpenArea(project2.getStayOpenArea());
+					project.setRingNetworkCabinet(project2.getRingNetworkCabinet());
+					project.setStationDtu(project2.getStationDtu());
 					break;
 				}
 			}
@@ -130,18 +176,118 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 			}else {
 				project.preInsert();
 			}
-
-			project.setStatus(status);
-			project.setAcquisitionStatus(acquisitionStatus);
-			project.setConstructionStatus(constructionStatus);
-			project.setWhetherCloseStatus(whetherCloseStatus);
-			project.setEarlyMaterial(earlyMaterial);
-			project.setPreConstruction(preConstruction);
+			if (!"".equals(project.getProjectType())){//项目类型
+				project.setStatus(status);
+				project.setAcquisitionStatus(acquisitionStatus);
+				project.setConstructionStatus(constructionStatus);
+				project.setWhetherCloseStatus(whetherCloseStatus);
+				project.setEarlyMaterial(earlyMaterial);
+				project.setPreConstruction(preConstruction);
+			}else {
+				project.setStatus("3");
+				project.setAcquisitionStatus("3");
+				project.setConstructionStatus("3");
+				project.setWhetherCloseStatus(whetherCloseStatus);
+				project.setEarlyMaterial(3);
+				project.setPreConstruction(3);
+			}
 		}
 		if (null!=projects&&projects.size()>0){
 			projectMapper.insertList(projects);
 		}
 	}
+		//项目经理导入
+		@Transactional(readOnly = false)
+		public void saveListManager(List<Project> projects,List<Project> projectList) {
+			String status = "0";
+			String acquisitionStatus="0";//领料状态
+			String constructionStatus="0";//施工状态
+			String whetherCloseStatus = "0";//项目是否关闭
+			Integer earlyMaterial = 0;//是否可以提前领料
+			Integer preConstruction = 0;//提前施工
+			for(Project project:projects){
+				status = "0";
+				acquisitionStatus="0";//领料状态
+				constructionStatus="0";//施工状态
+				whetherCloseStatus = "0";//项目是否关闭
+				earlyMaterial = 0;//是否可以提前领料
+				for (Project project2:projectList){
+					if (project.getRequireName().equals(project2.getRequireName())){
+						status = project2.getStatus();
+						acquisitionStatus = project2.getAcquisitionStatus();
+						constructionStatus = project2.getConstructionStatus();
+						whetherCloseStatus = project2.getWhetherCloseStatus();
+						earlyMaterial = project2.getEarlyMaterial();//是否可以提前领料
+						preConstruction = project2.getPreConstruction();//提前施工
+						if (status.equals("3")){
+							status = "0";
+						}
+						if (acquisitionStatus.equals("3")){
+							acquisitionStatus = "0";
+						}
+						if (constructionStatus.equals("3")){
+							constructionStatus = "0";
+						}
+						if (earlyMaterial==3){
+							earlyMaterial = 0;
+						}
+						if (preConstruction == 3){
+							preConstruction = 0;
+						}
+						project.setId(project2.getId());//项目id
+						project.setCreateBy(project2.getCreateBy());
+						project.setCreateDate(project2.getCreateDate());
+						project.setType(project2.getType());
+						project.setDemandUnit(project2.getDemandUnit());
+						project.setBdzName(project2.getBdzName());
+						project.setLineName(project2.getLineName());
+						project.setRequireName(project2.getRequireName());
+						project.setProjectId(project2.getProjectId());
+						project.setProjectName(project2.getProjectName());
+						project.setProjectNumber(project2.getProjectNumber());
+						project.setProjectManageRole(project2.getProjectManageRole());//项目经理角色
+						project.setDistributionEngineering(project2.getDistributionEngineering());//配网工程专职角色
+						project.setDistributionMaterials(project2.getDistributionMaterials());//配网物资专职角色
+						project.setDistributionSystem(project2.getDistributionSystem());//配网系统专职角色
+						project.setDistributionPolicy(project2.getDistributionPolicy());//配网政策处理专职角色
+						project.setManagementLeader(project2.getManagementLeader());//项目管理中心领导角色
+						project.setRunUnit(project2.getRunUnit());//运行单位
+						project.setRunUnitRole(project2.getRunUnitRole());//运行单位角色
+						project.setThroughResearchRole(project2.getThroughResearchRole());//经研所角色
+						project.setConstructionUnit(project2.getConstructionUnit());//施工单位
+						project.setConstructionUnitRole(project2.getConstructionUnitRole());//施工单位角色
+						project.setConstructionUnitManage(project2.getConstructionUnitManage());//施工单位项目经理
+						project.setConstructionUnitLeader(project2.getConstructionUnitLeader());//施工单位项目领导
+						project.setDesignUnit(project2.getDesignUnit());//设计单位
+						project.setDesignUnitManage(project2.getDesignUnitManage());//设计单位角色
+						project.setDesignUnitLeader(project2.getDesignUnitLeader());//设计单位领导
+						project.setClarificaitonType(project2.getClarificaitonType());//交底类型
+						project.setBulidClassificationResons(project2.getBulidClassificationResons());//建设理由分类
+						project.setBulbidResons(project2.getBulbidResons());//建设理由
+						project.setAsicEquipment(project2.getAsicEquipment());//设备基本情况
+						project.setRunTheClass(project2.getRunTheClass());//运行班
+						project.setProjectTeam(project2.getProjectTeam());//项目组
+						project.setCostEstimate(project2.getCostEstimate());//费用估算
+						project.setWhetherRheUpwind(project2.getWhetherRheUpwind());//是否迎风期度夏项目
+						project.setSureDaDate(project2.getSureDaDate());//确定下达时间
+						project.setTextRemark(project2.getTextRemark());//备注
+						break;
+					}
+				}
+				if (null!=project.getId()){
+					project.preUpdate();
+				}
+				project.setStatus(status);
+				project.setAcquisitionStatus(acquisitionStatus);
+				project.setConstructionStatus(constructionStatus);
+				project.setWhetherCloseStatus(whetherCloseStatus);
+				project.setEarlyMaterial(earlyMaterial);
+				project.setPreConstruction(preConstruction);
+			}
+			if (null!=projects&&projects.size()>0){
+				projectMapper.insertList(projects);
+			}
+		}
 	//根据id查找项目
 	public List<Project> getListProject(List<Project> projects){
 		return  projectMapper.findListProject(projects);

+ 116 - 29
src/main/java/com/jeeplus/modules/sg/managementcenter/project/util/PickingInfo.java

@@ -199,19 +199,6 @@ public  class PickingInfo {
         return pickingRequisitionArrayList;
     }
 
-    /*
-        与时间进行对比得到list集合(得到超过三天的)不一致
-     */
-    public static List<PickingRequisition> getJudgeDatPicking(List<PickingRequisition> pickingRequisitions){
-        List<PickingRequisition> unifiedPicking = getUnifiedPicking(pickingRequisitions);
-//        List<PickingRequisition> duplicateRemoval = getDuplicateRemoval(unifiedPicking);//去重
-        List<PickingRequisition> pickingRequisitionList = new ArrayList<PickingRequisition>();//得到超过三天的集合
-        for (PickingRequisition pickingRequisition:unifiedPicking){
-            pickingRequisition.setFlagMoreThree(1);
-            pickingRequisitionList.add(pickingRequisition);
-        }
-        return pickingRequisitionList;
-    }
 
     /*
         根据物料编码去重
@@ -225,6 +212,7 @@ public  class PickingInfo {
             for (PickingRequisition pickingDuplicate:pickingDuplicates){
                 if (pickingRequisition.getMaterialCode().equals(pickingDuplicate.getMaterialCode())) {
                     flag = false;
+                    break;
                 }
             }
             if (flag){
@@ -241,22 +229,54 @@ public  class PickingInfo {
      * @param findListDate 根据项目的id去数据库中查找项目领导审核时间
      * @return 整合后的集合
      */
-//    public List<ProjectAcquisition> getListProjectAcquisition(List<Project> listProjectPicking,List<Acquisition> findListDate){
-//        List<ProjectAcquisition> projectAcquisitions = new ArrayList<ProjectAcquisition>();
-//        ProjectAcquisition projectAcquisition = null;
-//        for (Project project:listProjectPicking){
-//            for (Acquisition acquisition:findListDate){
-//                if (project.getId().equals(acquisition.getId())){
-//                    projectAcquisition = new ProjectAcquisition();
-//                    projectAcquisition.setId(acquisition.getId());
-////                    projectAcquisition.setAuditTime(acquisition);
-//                }
-//            }
-//        }
+    public static List<ProjectAcquisition> getListProjectAcquisition(List<Project> listProjectPicking,List<Acquisition> findListDate){
+        List<ProjectAcquisition> projectAcquisitions = new ArrayList<ProjectAcquisition>();
+        ProjectAcquisition projectAcquisition = null;
+        for (Project project:listProjectPicking){
+            for (Acquisition acquisition:findListDate){
+                if (project.getId().equals(acquisition.getId())){
+                    projectAcquisition = new ProjectAcquisition();
+                    projectAcquisition.setId(acquisition.getId());
+                    projectAcquisition.setProjectNumber(project.getProjectNumber());
+                    projectAcquisition.setAuditTime(acquisition.getManagerTime());
+                    projectAcquisitions.add(projectAcquisition);
+                    break;
+                }
+            }
+        }
+        return projectAcquisitions;
+    }
+//    /*
+//        与时间进行对比得到list集合 得到存在项目(不一致且超过三天的)
+//     */
+//    public static List<PickingRequisition> getJudgeDatePicking(List<PickingRequisition> pickingRequisitions,List<ProjectAcquisition> listProjectAcquisition){
+//
+//
+//        return pickingRequisitionList;
 //    }
 
     /**
      *
+     * @param listProjectAcquisition //存在项目信息
+     * @param listPickRequisition //读取表格的集合
+     * @return 得到和项目表匹配的pickAcquisition的集合同时判断给超过三天的领料做标识
+     */
+    public static List<PickingRequisition> getListSameSetOf(List<ProjectAcquisition> listProjectAcquisition,List<PickingRequisition> listPickRequisition){
+        List<PickingRequisition> pickingRequisitions = new ArrayList<PickingRequisition>();
+        for (PickingRequisition pickingRequisition:listPickRequisition){
+            for (ProjectAcquisition projectAcquisition:listProjectAcquisition){
+                if (pickingRequisition.getProjectDefinition().equals(projectAcquisition.getProjectNumber())){
+                    pickingRequisition.setFlagMoreThree(getJudgeDate(projectAcquisition));//得到超过三天的标识
+                    pickingRequisitions.add(pickingRequisition);
+                    break;
+                }
+            }
+        }
+        return pickingRequisitions;
+    }
+
+    /**
+     *
      * @param judgeDatPicking 超过三天的集合
      * @param materialInventories  库存信息
      * @return 所有缺货和未缺货信息的登记
@@ -302,18 +322,85 @@ public  class PickingInfo {
 
     /**
      * @param pickingRequisitions 所有缺货和未缺货信息的登记
-     * @return 缺货信息2
+     * @return 缺货信息3
      */
-    public static String getYesStock1(List<PickingRequisition> pickingRequisitions){
-        String yesStock1 = "";
+    public static String getYesStock2(List<PickingRequisition> pickingRequisitions){
+        String yesStock2 = "";
         for (PickingRequisition pickingRequisition:pickingRequisitions){
             if (pickingRequisition.getWhetherStock()==1.0){
-                yesStock1+="【项目描述:"+pickingRequisition.getItemDetail()+";项目定义:"+pickingRequisition.getProjectDefinition()+";物料:"+pickingRequisition.getMaterialCode()
+                yesStock2+="【项目描述:"+pickingRequisition.getItemDetail()+";项目定义:"+pickingRequisition.getProjectDefinition()+";物料:"+pickingRequisition.getMaterialCode()
                         +";物料描述:"+pickingRequisition.getMaterialDescription()+";计量单位:"+pickingRequisition.getMeasuringUnit()
                         +";需求数量:"+pickingRequisition.getQuantityDemanded()+";已出库数量:"+pickingRequisition.getQuantityDelivered()
                         +";非限制性库存数量:"+pickingRequisition.getStockNumber()+"】\n";
             }
         }
+        return yesStock2;
+    }
+    /**
+     * @param pickingRequisitions 所有缺货和未缺货信息的登记
+     * @return 缺货信息2
+     */
+    public static String getYesStock1(List<PickingRequisition> pickingRequisitions){
+        String yesStock1 = "";
+        List<PickingRequisition> duplicateRemoval2 = getDuplicateRemoval2(pickingRequisitions);
+        for (PickingRequisition pickingRequisition:duplicateRemoval2){
+            yesStock1+="【物料:"+pickingRequisition.getMaterialCode()
+                    +";物料描述:"+pickingRequisition.getMaterialDescription()+";计量单位:"+pickingRequisition.getMeasuringUnit()
+                    +";需求数量:"+pickingRequisition.getQuantityDemanded()+";已出库数量:"+pickingRequisition.getQuantityDelivered()
+                    +";非限制性库存数量:"+pickingRequisition.getStockNumber()+"】\n";
+        }
         return yesStock1;
     }
+
+    //根据物料编码和物料描述进行去重
+    public static List<PickingRequisition> getDuplicateRemoval2(List<PickingRequisition> pickingRequisitions){
+        ArrayList<PickingRequisition> pickingDuplicates = new ArrayList<PickingRequisition>();
+        boolean flag = true;//去重开关:判断是否存在重复
+        double quantityDemanded; //需求数量
+        double quantityDelivered; //已出库数量
+        PickingRequisition requisition = null;
+        for (PickingRequisition pickingRequisition:pickingRequisitions){
+            flag = true;
+            for (PickingRequisition pickingDuplicate:pickingDuplicates){
+                if (pickingRequisition.getMaterialCode().equals(pickingDuplicate.getMaterialCode())
+                    &&pickingRequisition.getMaterialDescription().equals(pickingDuplicate.getProjectDefinition())) {
+                    //需求数量
+                    quantityDemanded = pickingRequisition.getQuantityDemanded()+pickingDuplicate.getQuantityDemanded();
+                    //已经出库数量
+                    quantityDelivered = pickingRequisition.getQuantityDelivered()+pickingDuplicate.getQuantityDelivered();
+                    //保存合并的需求数量
+                    pickingDuplicate.setQuantityDemanded(quantityDemanded);
+                    //保存合并的已经出库数量
+                    pickingDuplicate.setQuantityDelivered(quantityDelivered);
+                    flag = false;
+                    break;
+                }
+            }
+            if (flag){
+                requisition = new PickingRequisition();
+                requisition.setMaterialCode(pickingRequisition.getMaterialCode());//物料编码
+                requisition.setMaterialDescription(pickingRequisition.getMaterialDescription());//物料描述
+                requisition.setMeasuringUnit(pickingRequisition.getMeasuringUnit());//计量单位
+                requisition.setQuantityDemanded(pickingRequisition.getQuantityDemanded());//需求数量
+                requisition.setQuantityDelivered(pickingRequisition.getQuantityDelivered());//已经出库数量
+                requisition.setStockNumber(pickingRequisition.getStockNumber());//非限制性库存数量
+                requisition.setWhetherStock(pickingRequisition.getWhetherStock());//记录缺货状态
+                pickingDuplicates.add(requisition);
+            }
+        }
+        return pickingDuplicates;
+    }
+
+
+    /*
+        判断是否超过当前时间
+     */
+    public static Integer getJudgeDate(ProjectAcquisition projectAcquisition){
+        Date date1 = new Date(System.currentTimeMillis());//获取系统时间
+        long days = date1.getTime() - projectAcquisition.getAuditTime().getTime()/1000/3600/24;
+        if (days>=72){
+            return 1;
+        }
+        return 0;
+    }
 }

+ 116 - 17
src/main/java/com/jeeplus/modules/sg/managementcenter/project/util/ProExcelInfo.java

@@ -1,5 +1,6 @@
 package com.jeeplus.modules.sg.managementcenter.project.util;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
+import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Row;
@@ -26,12 +27,14 @@ public  class ProExcelInfo {
     public static String[] PRO_STAY_AREA={"集中","就地"};//柱开集中或就业地
     public static String[] PRO_RING_NETWORK = {"户内","户外"};//环网柜
     public static String[] PRO_ITEM_TYPE = {"资本项目","成本项目"};//项目类型
+
+    public final static String[] SYS_ROLE = {"项目经理","配网工程专职"};//
     /**
      * 获取表格数据
-     * @param importUtil
+     * @param importUtil 配网工程专职导入
      * @return List<ErpAccount> 导入表格数据
      */
-    public static List<Project> getProjectUtil(ImportUtil importUtil)  {
+    public static List<Project> getProjectUtilDistribution(ImportUtil importUtil)  {
         int lastRow = importUtil.getLastDataRowNum();
         List<Project> list = new ArrayList<Project>();
         Project project = null;
@@ -50,7 +53,6 @@ public  class ProExcelInfo {
                 project.setProjectName((String)importUtil.getCellValue(row,7));//项目名称
                 project.setProjectNumber((String)importUtil.getCellValue(row,8));//项目定义号
                 project.setProjectManageRole((String)importUtil.getCellValue(row,9));//项目经理角色
-
                 project.setDistributionEngineering((String)importUtil.getCellValue(row,10));//配网工程专职角色
                 project.setDistributionMaterials((String)importUtil.getCellValue(row,11));//配网物资专职角色
                 project.setDistributionSystem((String)importUtil.getCellValue(row,12));//配网系统专职角色
@@ -79,6 +81,49 @@ public  class ProExcelInfo {
                 project.setWhetherRheUpwind((String)importUtil.getCellValue(row,32));//是否迎风期度夏项目
                 project.setSureDaDate((String)importUtil.getCellValue(row,33));//确定下达时间
                 project.setTextRemark((String)importUtil.getCellValue(row,34));//备注
+//                project.setPowerLine((String)importUtil.getCellValue(row,35));//停电线路
+//                project.setPowerScope((String)importUtil.getCellValue(row,36));//停电范围
+//                project.setProjectType((String)importUtil.getCellValue(row,37));//项目类型
+//                project.setPowerFlagPackage((String)importUtil.getCellValue(row,38));//是否为停电打包项目
+//                project.setPreliminaryJudgment((String)importUtil.getCellValue(row,39));//证处初步判断
+//                project.setFlagCivilEngineering((String)importUtil.getCellValue(row,40));//是否含土建
+//                project.setSteelTubePole((String)importUtil.getCellValue(row,41));//钢管杆基础类型
+//                project.setFlagApprovalPlanning((String)importUtil.getCellValue(row,42));//是否需要规划报批
+//                project.setEquCreateType((String)importUtil.getCellValue(row,43));//设备改造类型
+//                project.setEquCreateSize((String)importUtil.getCellValue(row,44));//间隔数
+//                project.setFlagNewEquName((String)importUtil.getCellValue(row,45));//是否新设备命名
+//                project.setIncludeBdzNews((String)importUtil.getCellValue(row,46));//是否含变电站新闻格投运
+//                project.setFlagNoElectrical((String)importUtil.getCellValue(row,47));//是否非射电电气施工
+//                project.setDrawingsWork((String)importUtil.getCellValue(row,48));//图纸标注的带点作业情况
+//                project.setFlagAutomation((String)importUtil.getCellValue(row,49));//是否含自动化
+//                project.setTwoAndThreeRemote((String)importUtil.getCellValue(row,50));//二遥或三
+//                project.setPhoneStyle((String)importUtil.getCellValue(row,51));//通信方式
+//                project.setStayOpenArea((String)importUtil.getCellValue(row,52));//柱开集中或就业地
+//                project.setRingNetworkCabinet((String)importUtil.getCellValue(row,53));//环网柜
+//                project.setStationDtu((String)importUtil.getCellValue(row,54));//站房dtu
+//                project.setItemType((String)importUtil.getCellValue(row,55));//项目类型
+                  list.add(project);
+            }
+        }
+        return list;
+    }
+
+    /**
+     * 获取表格数据
+     * @param importUtil 项目经理导入
+     * @return List<ErpAccount> 导入表格数据
+     */
+    public static List<Project> getProjectUtilProjectManager(ImportUtil importUtil)  {
+        int lastRow = importUtil.getLastDataRowNum();
+        List<Project> list = new ArrayList<Project>();
+        Project project = null;
+        String costEstimate="";//费用估算
+        for(int i=2; i<=lastRow;i++){
+            project = new Project();
+            Row row = importUtil.getRow(i);
+            String requireCode = (String) importUtil.getCellValue(row,5);//获取需求项目名称
+            if(StringUtils.isNotBlank(requireCode)) {
+                project.setRequireName(requireCode);
                 project.setPowerLine((String)importUtil.getCellValue(row,35));//停电线路
                 project.setPowerScope((String)importUtil.getCellValue(row,36));//停电范围
                 project.setProjectType((String)importUtil.getCellValue(row,37));//项目类型
@@ -99,8 +144,6 @@ public  class ProExcelInfo {
                 project.setStayOpenArea((String)importUtil.getCellValue(row,52));//柱开集中或就业地
                 project.setRingNetworkCabinet((String)importUtil.getCellValue(row,53));//环网柜
                 project.setStationDtu((String)importUtil.getCellValue(row,54));//站房dtu
-                project.setItemType((String)importUtil.getCellValue(row,55));//项目类型
-                project.setStatus("0");
                 list.add(project);
             }
         }
@@ -113,7 +156,6 @@ public  class ProExcelInfo {
         String indexFive =  (String)importUtil.getCellValue(row,5);
         String indexSix = (String)importUtil.getCellValue(row,6);
         String indexNine = (String)importUtil.getCellValue(row,9);
-        String indexFives= (String)importUtil.getCellValue(row,55);
         if (!indexFive.contains("项目")){
             flag = true;
         }
@@ -123,14 +165,11 @@ public  class ProExcelInfo {
         if (!indexNine.contains("角色")){
             flag = true;
         }
-        if (!indexFives.contains("类型")){
-            flag = true;
-        }
         return flag;
     }
 
     /*
-        对值进行验证
+        对值进行验证 配网工程专职验证
      */
     public static String getJudgeValue(List<Project> projects){
         Boolean flag = false;
@@ -199,6 +238,20 @@ public  class ProExcelInfo {
                     str+="交底类型填写有误;";
                 }
             }
+        }
+        if (!"".equals(str)){
+            return str;
+        }
+        return str;
+    }
+
+    /*
+        对值进行验证:项目经理验证
+    */
+    public static String getJudgeValueManager(List<Project> projects){
+        Boolean flag = false;
+        String str = "";
+        for (Project project:projects){
             if (null!=project.getPowerScope()){//停电范围
                 flag = getJudge(project.getPowerScope(), PRO_POWERSCOPE);
                 if (flag){
@@ -301,12 +354,6 @@ public  class ProExcelInfo {
                     str+="环网柜填写有误;";
                 }
             }
-            if (null!=project.getItemType()){
-                flag = getJudge(project.getItemType(),PRO_ITEM_TYPE);
-                if (flag){
-                    str+="项目类型填写有误";
-                }
-            }
 
         }
         if (!"".equals(str)){
@@ -350,7 +397,8 @@ public  class ProExcelInfo {
         }
         return  (machineId+String.format("%015d",hashCodeV));
     }
-    public static List<Project> getSureProjects(List<Project> projects){
+    //进行导入角色筛选 项目经理
+    public static List<Project> getSureProjectsManager(List<Project> projects){
         String loginName = UserUtils.getUser().getLoginName();
         for (int i = 0; i < projects.size(); i++) {
             if (null!=projects.get(i).getProjectManageRole()){//项目经理角色
@@ -362,4 +410,55 @@ public  class ProExcelInfo {
         }
         return projects;
     }
+
+    //进行导入角色筛选
+    public static List<Project> getSureProjects(List<Project> projects){
+        String loginName = UserUtils.getUser().getLoginName();
+        for (int i = 0; i < projects.size(); i++) {
+            if (null!=projects.get(i).getProjectManageRole()){//项目经理角色
+                if (!loginName.equals(projects.get(i).getDistributionEngineering())){
+                    projects.remove(i);
+                    i--;
+                }
+            }
+        }
+        return projects;
+    }
+
+    /**
+     * @param projectsManager 项目经理操作的集合
+     * @param projectList 数据库中查到的集合
+     * @return 去掉数据库中不存在的数据
+     */
+    public static List<Project> getSureManagerProject(List<Project> projectsManager,List<Project> projectList){
+        String requireName = "";//需求项目名称
+        boolean flag = false;//开关
+        for (int i = 0; i < projectsManager.size(); i++) {
+            requireName = projectsManager.get(i).getRequireName();
+            flag = true;
+            for (Project project:projectList){
+                if (project.getRequireName().equals(requireName)){
+                    flag = false;
+                    break;
+                }
+            }
+            if (flag){
+                projectsManager.remove(i);
+                i--;
+            }
+        }
+        return projectsManager;
+    }
+
+    public static String getJudgeRole(User user){
+        //如果是项目经理导入的
+        if ("项目经理".equals(user.getRoleList().get(0).getName())){
+            return "1";
+        }
+        if ("配网工程专职".equals(user.getRoleList().get(0).getName())){
+            return "0";
+        }
+        return "2";
+    }
+
 }

+ 121 - 18
src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java

@@ -22,6 +22,8 @@ import com.jeeplus.modules.sg.managementcenter.materialInventory.entity.Material
 import com.jeeplus.modules.sg.managementcenter.materialInventory.service.MaterialInventoryService;
 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.ProjectAcquisition;
+import com.jeeplus.modules.sg.managementcenter.project.entity.ProjectManager;
 import com.jeeplus.modules.sg.managementcenter.project.mapper.PickingRequisitionMapper;
 import com.jeeplus.modules.sg.managementcenter.project.service.PickingRequisitionService;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
@@ -29,6 +31,8 @@ import com.jeeplus.modules.sg.managementcenter.project.util.ImportUtil;
 import com.jeeplus.modules.sg.managementcenter.project.util.PickingInfo;
 import com.jeeplus.modules.sg.managementcenter.project.util.ProExcelInfo;
 import com.jeeplus.modules.sg.picking.activiti.entity.Acquisition;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.SystemService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.shiro.authz.annotation.Logical;
@@ -70,6 +74,9 @@ public class ProjectController extends BaseController {
 	private MaterialInventoryService materialInventoryService;
 	@Autowired
 	private OaNotifyService oaNotifyService;//通知服务类
+
+	@Autowired
+	private SystemService systemService;
 	
 	@ModelAttribute
 	public Project get(@RequestParam(required=false) String id) {
@@ -277,6 +284,7 @@ public class ProjectController extends BaseController {
     public AjaxJson exportFile(Project project, HttpServletRequest request, HttpServletResponse response) {
 		AjaxJson j = new AjaxJson();
 		try {
+			project.setProjectManageRole(UserUtils.getUser().getLoginName());
             String fileName = "需求基本信息"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
             Page<Project> page = projectService.findPage(new Page<Project>(request, response, -1), project);
     		new ExportExcel("需求基本信息", Project.class).setDataList(page.getList()).write(response, fileName).dispose();
@@ -299,34 +307,75 @@ public class ProjectController extends BaseController {
     @RequestMapping(value = "import")
    	public AjaxJson importFile(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request){
 		AjaxJson j = new AjaxJson();
+		//获取登录名
+		User userByLoginName = systemService.getUserByLoginName(UserUtils.getUser().getLoginName());
+		String judgeRole = ProExcelInfo.getJudgeRole(userByLoginName);
+		if (judgeRole.equals("2")){
+			j.setSuccess(false);
+			j.setMsg("导入失败:您还没有导入的权限,如果需要请联系管理员!");
+			return j;
+		}
 		try {
 			ImportUtil importUtil = new ImportUtil(file, 0, 0);
+			//验证表是否规范
 			Boolean projectUtilFlag = ProExcelInfo.getProjectUtilFlag(importUtil);
 			if (projectUtilFlag){
 				j.setSuccess(false);
-				j.setMsg("表不符合规范");
+				j.setMsg("导入失败:表不符合规范,请修改后再导入");
 				return j;
 			}
-			List<Project> projects =ProExcelInfo.getSureProjects(ProExcelInfo.getProjectUtil(importUtil));
-			String judgeValue = ProExcelInfo.getJudgeValue(projects);
-			if (!"".equals(judgeValue)){
-				j.setSuccess(false);
-				j.setMsg("导入失败:"+judgeValue+"数据不符合规范!");
-				return j;
+			if (judgeRole.equals("0")){
+				List<Project> projects =ProExcelInfo.getSureProjects(ProExcelInfo.getProjectUtilDistribution(importUtil));
+				String judgeValue = ProExcelInfo.getJudgeValue(projects);
+				if (!"".equals(judgeValue)){
+					j.setSuccess(false);
+					j.setMsg("导入失败:"+judgeValue+"数据不符合规范!");
+					return j;
+				}
+				if (null==projects||projects.size()<=0){
+					j.setSuccess(false);
+					j.setMsg("导入失败:无符合数据,请检查后再重新导入.");
+					return j;
+				}
+				projectService.saveList(projects);
+				j.setMsg( "已成功导入 "+projects.size()+" 条项目表单记录");
 			}
-			if (null==projects||projects.size()<=0){
-				j.setSuccess(false);
-				j.setMsg("导入失败:无符合数据.");
-				return j;
+			//项目经理操作
+			if (judgeRole.equals("1")){
+				//得到项目经理操作的集合
+				List<Project> projectsManager =ProExcelInfo.getSureProjectsManager(ProExcelInfo.getProjectUtilProjectManager(importUtil));
+				if(null==projectsManager||projectsManager.size()<=0){
+					j.setSuccess(false);
+					j.setMsg("导入失败:无符合数据,请检查后再重新导入.");
+					return j;
+				}
+				//根据项目名称去查找数据库中集合
+				List<Project> projectList = projectService.getListProject(projectsManager);
+				//得到可以导入数据库中集合
+				List<Project> sureManagerProject = ProExcelInfo.getSureManagerProject(projectsManager, projectList);
+				String judgeValue = ProExcelInfo.getJudgeValueManager(sureManagerProject);
+				if (!"".equals(judgeValue)){
+					j.setSuccess(false);
+					j.setMsg("导入失败:"+judgeValue+"数据不符合规范!");
+					return j;
+				}
+				if (null!=sureManagerProject && sureManagerProject.size()>0){
+					projectService.saveListManager(sureManagerProject,projectList);
+					j.setMsg( "已成功导入 "+sureManagerProject.size()+" 条项目表单记录");
+				}else {
+					j.setSuccess(false);
+					j.setMsg("导入失败:配网工程专职还没有导入基础数据表.");
+					return j;
+				}
 			}
-			projectService.saveList(projects);
-			j.setMsg( "已成功导入 "+projects.size()+" 条项目表单记录");
 		} catch (Exception e) {
 			j.setSuccess(false);
 			j.setMsg("导入需求基本信息表单失败!失败信息:"+e.getMessage());
 		}
 		return j;
     }
+
+
 	/**
 	 * 导入Excel数据
 		领料单
@@ -346,9 +395,9 @@ public class ProjectController extends BaseController {
 			List<PickingRequisition> duplicateRemoval = PickingInfo.getDuplicateRemoval(listPickRequisition);//去重集合
 			List<PickingRequisition> pickingRequisitions = pickingRequisitionService.pickingRequisitions(duplicateRemoval);//得到数据库中数据
 			List<PickingRequisition> sureSavePicking = PickingInfo.getSureSavePicking(pickingRequisitions, listPickRequisition);//参数1:得到数据库集合 参数2:读取表格list
-//			if (null!=sureSavePicking&&sureSavePicking.size()>0){
-//				pickingRequisitionService.saveList(sureSavePicking);
-//			}
+			if (null!=sureSavePicking&&sureSavePicking.size()>0){
+				pickingRequisitionService.saveList(sureSavePicking);
+			}
 			/*
 				发送通知方法集合
 			 */
@@ -356,16 +405,30 @@ public class ProjectController extends BaseController {
 			List<Project> listProjectPicking = projectService.findListProjectPicking(duplicateRemoval);
 			//根据项目的id去数据库中查找项目领导审核时间
 			List<Acquisition> findListDate = pickingRequisitionService.getFindListDate(listProjectPicking);
-			//不一致且超过三天的集合
-			List<PickingRequisition> notifyPickingRequisitions = PickingInfo.getJudgeDatPicking(listPickRequisition);
+			//得到整合后的list集合(存在项目信息)
+			List<ProjectAcquisition> listProjectAcquisition = PickingInfo.getListProjectAcquisition(listProjectPicking, findListDate);
+
+			//得到存在项目(不一致且超过三天的)
+//			List<PickingRequisition> notifyPickingRequisitions = PickingInfo.getJudgeDatePicking(listPickRequisition,listProjectAcquisition);
+
+			//得到和项目表匹配的pickAcquisition的集合同时判断给超过三天的领料做标识
+			List<PickingRequisition> listSameSetOf = PickingInfo.getListSameSetOf(listProjectAcquisition, pickingRequisitions);
+			//获得该项目是否允许领料是否允许领料状态的项目:返回不一致集合
+			List<PickingRequisition> notifyPickingRequisitions = PickingInfo.getUnifiedPicking(listSameSetOf);
+
 			//根据物料编码进行去重
 			List<PickingRequisition> duplicateRemovalMaterCode = PickingInfo.getDuplicateRemovalMaterCode(notifyPickingRequisitions);
+
 			//得到库存对应的集合
 			List<MaterialInventory> byListPicking = materialInventoryService.findByListPicking(duplicateRemovalMaterCode);
+
 			//所有缺货未缺货信息的登记
 			List<PickingRequisition> whetherStock = PickingInfo.getWhetherStock(notifyPickingRequisitions, byListPicking);
+
 			//得到非缺货信息1的通知
 			String noStock = PickingInfo.getNoStock(whetherStock);
+			//得到缺货信息3的通知
+			String yesStock2 = PickingInfo.getYesStock2(whetherStock);
 			//得到缺货信息2的通知
 			String yesStock1 = PickingInfo.getYesStock1(whetherStock);
 			//发送通知方法
@@ -389,6 +452,46 @@ public class ProjectController extends BaseController {
 					new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
 				}
 			}
+			//非缺货信息2
+			if (!"".equals(yesStock1)){
+				List<String> listUserId = PickingInfo.getListUserId(PickingInfo.CS_XMJL);
+				List<String> userId = pickingRequisitionService.findUserId(listUserId);
+				String stringJoiningTogether = PickingInfo.getStringJoiningTogether(userId);//获取通知人
+				OaNotify oaNotify = new OaNotify();
+				oaNotify.setType("6");
+				oaNotify.setTitle("缺货信息");
+				oaNotify.setContent(yesStock1);
+				oaNotify.setStatus("1");
+				oaNotify.setOaNotifyRecordIds(stringJoiningTogether);
+				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(), "收到一条新通知,请到我的通知查看!");
+				}
+			}
+			//非缺货信息2
+			if (!"".equals(yesStock2)){
+				List<String> listUserId = PickingInfo.getListUserId(PickingInfo.CS_XMJL);
+				List<String> userId = pickingRequisitionService.findUserId(listUserId);
+				String stringJoiningTogether = PickingInfo.getStringJoiningTogether(userId);//获取通知人
+				OaNotify oaNotify = new OaNotify();
+				oaNotify.setType("7");
+				oaNotify.setTitle("缺货项目信息");
+				oaNotify.setContent(yesStock2);
+				oaNotify.setStatus("1");
+				oaNotify.setOaNotifyRecordIds(stringJoiningTogether);
+				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(), "收到一条新通知,请到我的通知查看!");
+				}
+			}
 			j.setMsg( "已成功导入 "+sureSavePicking.size()+" 条领料表单记录");
 //		} catch (Exception e) {
 //			j.setSuccess(false);

+ 3 - 0
src/main/webapp/webpage/modules/sg/managementcenter/project/projectList.js

@@ -466,6 +466,9 @@ $(document).ready(function() {
 	 $("#export").click(function(){//导出Excel文件
 			jp.downloadFile('${ctx}/sg/managementcenter/project/export');
 	  });
+    // $("#export1").click(function(){//导出Excel文件
+    //     jp.downloadFile('${ctx}/sg/managementcenter/project/export1');
+    // });
 
 		    
 	  $("#search").click("click", function() {// 绑定查询按扭

+ 5 - 0
src/main/webapp/webpage/modules/sg/managementcenter/project/projectList.jsp

@@ -67,6 +67,11 @@
 					<i class="fa fa-file-excel-o"></i> 导出
 				</button>
 			</shiro:hasPermission>
+			<%--<shiro:hasPermission name="sg:managementcenter:project:export">--%>
+				<%--<button id="export1" class="btn btn-warning">--%>
+					<%--<i class="fa fa-file-excel-o"></i> 导出1--%>
+				<%--</button>--%>
+			<%--</shiro:hasPermission>--%>
 		    </div>
 		
 	<!-- 表格 -->