瀏覽代碼

招标项目上报功能

user5 3 年之前
父節點
當前提交
78dfae6336
共有 25 個文件被更改,包括 10409 次插入8 次删除
  1. 1 0
      src/main/java/com/jeeplus/common/utils/MenuStatusEnum.java
  2. 7 0
      src/main/java/com/jeeplus/modules/projectrecord/dao/ProjectRecordsDao.java
  3. 31 0
      src/main/java/com/jeeplus/modules/projectrecord/dao/ProjectReportedImportDao.java
  4. 9 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectRecords.java
  5. 801 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectReportedImport.java
  6. 11 0
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java
  7. 1091 0
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectReportedImportService.java
  8. 1 0
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectRecordsController.java
  9. 387 0
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectReportedImportController.java
  10. 8 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsReportedDao.java
  11. 1 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java
  12. 159 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/utils/RuralProjectReportedInfoUtil.java
  13. 104 0
      src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java
  14. 51 8
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  15. 2 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectcontentinfoDao.xml
  16. 88 0
      src/main/resources/mappings/modules/projectrecord/ProjectRecordsDao.xml
  17. 441 0
      src/main/resources/mappings/modules/projectrecord/ProjectReportedImportDao.xml
  18. 4 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsReported.xml
  19. 二進制
      src/main/webapp/dot/招标项目上报导入模板.xlsx
  20. 5 0
      src/main/webapp/webpage/modules/projectrecord/projectRecordsList.jsp
  21. 816 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/projectReportedImportList.jsp
  22. 1645 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedAudit.jsp
  23. 1604 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedForm.jsp
  24. 1584 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedModify.jsp
  25. 1558 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedView.jsp

+ 1 - 0
src/main/java/com/jeeplus/common/utils/MenuStatusEnum.java

@@ -76,6 +76,7 @@ public enum MenuStatusEnum {
     WORK_WAGE("2215996d069d435ea3a673e0ae2beb3a","单笔工资项"),
     WORK_CONTRACT_LIST_INFO("4650ceada41d46b382dc81f8980fda66","合同明细一览表"),
     FILING_BATCH ("e7ac5a36777e4dbfb1ca9fec1d2f5d1b","批量归档"),
+    INVITATION_REPORTED("9efe77d0948247d186b9cd8e71f24072","招标上报"),
     END("19940722131313","废弃");
 
     private String value;

+ 7 - 0
src/main/java/com/jeeplus/modules/projectrecord/dao/ProjectRecordsDao.java

@@ -7,6 +7,7 @@ import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.projectType.entity.ProjectType;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 
 import java.util.List;
 import java.util.Map;
@@ -83,4 +84,10 @@ public interface ProjectRecordsDao extends CrudDao<ProjectRecords> {
      */
     List<ProjectRecords> processProjectPlanList(ProjectRecords records);
 
+    /**
+     * 项目列表项目开票总价
+     * @return
+     */
+    String getListMoney(ProjectRecords ruralProjectRecords);
+
 }

+ 31 - 0
src/main/java/com/jeeplus/modules/projectrecord/dao/ProjectReportedImportDao.java

@@ -0,0 +1,31 @@
+package com.jeeplus.modules.projectrecord.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
+
+/**
+ * @author: 徐滕
+ * @create: 2021-12-27 09:50
+ **/
+@MyBatisDao
+public interface ProjectReportedImportDao extends CrudDao<ProjectReportedImport> {
+
+    /**
+     * 修改上报审批状态
+     * @param reported
+     */
+    void updateStatusById(ProjectReportedImport reported);
+
+    void updateProcessIdAndStatus(ProjectReportedImport reported);
+
+    String getListMoney(ProjectReportedImport reported);
+
+    /**
+     * 根据造价记录编号查询数量
+     * @param dangABH
+     * @return
+     */
+    Integer getByDangABH(String dangABH);
+}

+ 9 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectRecords.java

@@ -143,6 +143,7 @@ public class ProjectRecords extends ActEntity<ProjectRecords> {
 	private List<String> idList;
 	private String belongingDepartment;	//归属部门
 	private String reportedProcessInstanceId;  //上报流程id
+	private String ziXunShouRu; //咨询收入
 
 	public ProjectRecords() {
 		super();
@@ -849,4 +850,12 @@ public class ProjectRecords extends ActEntity<ProjectRecords> {
 	public void setReportedProcessInstanceId(String reportedProcessInstanceId) {
 		this.reportedProcessInstanceId = reportedProcessInstanceId;
 	}
+
+	public String getZiXunShouRu() {
+		return ziXunShouRu;
+	}
+
+	public void setZiXunShouRu(String ziXunShouRu) {
+		this.ziXunShouRu = ziXunShouRu;
+	}
 }

+ 801 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectReportedImport.java

@@ -0,0 +1,801 @@
+package com.jeeplus.modules.projectrecord.entity;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.persistence.ActEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+import com.jeeplus.modules.ruralprojectrecords.entity.ReportedConsultant;
+import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author: 徐滕
+ * @create: 2021-12-27 09:23
+ **/
+public class ProjectReportedImport extends ActEntity<ProjectReportedImport> {
+
+    public static final String SERIAL_BIZCODE ="1";
+    private WorkContractInfo workContractInfo;		// 合同信息
+    private String projectId;		// 项目id
+    private String projectRecordId;		// 项目编号
+    private List<User> projectLeaders; //项目负责人
+    @NotNull(message = "项目名称不能为空")
+    private String ProjectName;		// 项目名称
+    private String xmFZR;		//项目负责人
+    private String leaderNameStr;   //项目负责人
+    private String WeiTuoDW;		//委托单位
+    private String LianXiDH;		//委托单位电话
+    private String TouZiXZ;    //投资性质
+    private String ProjectType;    //咨询项目类型
+    private String HeTongLeiXing;   //合同类型
+    private String ZiXunHTBH;      //合同编号
+    @NotNull(message = "造价记录编号不能为空")
+    private String DangABH;   //造价记录编号
+    private String BaoGaoShuQianFaDate;  //出具报告日期
+    private String ZiXunShouRu;   //咨询收入
+    private String zaoJiaShiZhengHao;   //造价师注册证号
+    private List<ReportedConsultant> reportedConsultantList= Lists.newArrayList();;//咨询员列表
+    private List<String> chargeCriterionList;	//合同收费标准
+
+
+    //项目信息
+    private String s1;				//工程所在省份
+    private String s2;				//工程所在地级市
+    private String s3;				//工程所在区县
+    private String PorjectStruct;	//工程结构
+    private Integer FloorUp;		//地上层数
+    private Integer FloorDown;		//地下层数
+    private String GCGMValue;		//建筑面积或规模
+    private String GCGMUnit;		//计量单位
+    private String PorjectUse;		//工程用途
+    private String ZiXunBDE;		//咨询标的额(万元)
+    private String ZiXunBDETJ;		//其中土建造价(万元)
+    private String ZiXunBDEAZ;		//其中安装造价(万元)
+    private String CalTJPercent;	//其中土建百分比(%)
+    private String CalAZPercent;	//其中安装百分比(%)
+    private String CalZZJUnit;	//单位造价(元)
+
+    private String CalZZJTJUnit;	//其中土建单位造价(元)
+    private String CalZZJAZUnit;	//其中安装单位造价(元)
+    private String HeTongJia;		//合同价(万元)
+    private String SongShenJia;		//送审价(万元)
+    private String ShenDingJia;		//审定价(万元)
+    private String JingHeJianE;		//审核增减额(万元)
+    private String JingHeJianLv;	//审核增减率(%)
+
+
+    //主要材料和人工消耗量指标
+    private String GCYL;			//钢材用量(t)
+    private String SNYL;			//水泥用量(t)
+    private String YBTYL;			//预拌砼用量(m³)
+    private String RGGRYL;			//人工工日用量(工日)
+    private String GCYLPerUnit;	//钢材消耗指标(kg)
+    private String SNYLPerUnit;	//水泥消耗指标(kg)
+    private String YBTYLPerUnit;	//预拌砼消耗指标(m³)
+    private String RGGRYLPerUnit;	//人工工日消耗指标(工日)
+
+    private List<String> TJProjectList;		//土建工程
+    private List<String> ZSProjectList;	//装饰工程
+    private List<String> AZProjectList;	//安装工程
+    private List<String> SZProjectList;	//市政工程
+    private List<String> FGYLProjectList;		//仿古园林工程
+
+    private String TJProject;//土建工程
+    private String ZSProject;//装饰工程
+    private String AZProject;//安装工程
+    private String SZProject;//市政工程
+    private String FGYLProject;//仿古园林工程
+    private String QTProjec;	//其他专业工程咨询项目造价包含内容说明
+
+    private String province;   	//省
+    private String city;		//市
+    private String county;     	//区县
+    private String processInstanceId;
+    private Office company;	// 公司
+    private Office office;	// 部门
+    private String reportStatus;  //上报状态
+    private String home;
+
+    private String projectCode;	//项目代码
+    private String projectSection;	//项目标段
+    private String projectClassify;	//项目分类
+    private String GCGMValueParameter;	//建筑规模参数
+    private List<String> contentsIncludeList = Lists.newArrayList();		//咨询项目造价包含内容说明(勾选)
+    private String contentsInclude;//咨询项目造价包含内容说明(勾选)
+    private String projectTotalInvestment;	//项目总投资
+    private Date beginDate;	//作业期开始日期
+    private Date endDate;	//作业期结束日期
+    private String archivesNo;   //咨询档案编号
+
+    private String advisoryIncome;	//全过程咨询收入
+    private String projectSupervisionIncome;	//工程监理收入
+    private String tenderingAgencyIncome;	//招标代理收入
+    private String designIncome;	//设计收入
+    private String otherIncome;	//其他收入
+    private List<WorkClientAttachment> workAttachments = Lists.newArrayList();	//附件信息
+
+    public WorkContractInfo getWorkContractInfo() {
+        return workContractInfo;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public String getProjectRecordId() {
+        return projectRecordId;
+    }
+
+    public List<User> getProjectLeaders() {
+        return projectLeaders;
+    }
+
+    @ExcelField(title="咨询项目名称", align=2, sort=1)
+    public String getProjectName() {
+        return ProjectName;
+    }
+
+    public String getXmFZR() {
+        return xmFZR;
+    }
+
+    public String getLeaderNameStr() {
+        return leaderNameStr;
+    }
+
+    @ExcelField(title="委托单位", align=2, sort=3)
+    public String getWeiTuoDW() {
+        return WeiTuoDW;
+    }
+
+    @ExcelField(title="委托单位电话", align=2, sort=4)
+    public String getLianXiDH() {
+        return LianXiDH;
+    }
+
+    public String getTouZiXZ() {
+        return TouZiXZ;
+    }
+
+    public String getProjectType() {
+        return ProjectType;
+    }
+
+    public String getHeTongLeiXing() {
+        return HeTongLeiXing;
+    }
+
+    @ExcelField(title="合同编号", align=2, sort=2)
+    public String getZiXunHTBH() {
+        return ZiXunHTBH;
+    }
+
+    @ExcelField(title="造价记录编号", align=2, sort=5)
+    public String getDangABH() {
+        return DangABH;
+    }
+
+    @ExcelField(title="出具咨询报告日期", align=2, sort=6)
+    public String getBaoGaoShuQianFaDate() {
+        return BaoGaoShuQianFaDate;
+    }
+
+    @ExcelField(title="造价咨询营业收入", align=2, sort=7)
+    public String getZiXunShouRu() {
+        return ZiXunShouRu;
+    }
+
+    public String getZaoJiaShiZhengHao() {
+        return zaoJiaShiZhengHao;
+    }
+
+    public List<ReportedConsultant> getReportedConsultantList() {
+        return reportedConsultantList;
+    }
+
+    public List<String> getChargeCriterionList() {
+        return chargeCriterionList;
+    }
+
+    public String getS1() {
+        return s1;
+    }
+
+    public String getS2() {
+        return s2;
+    }
+
+    public String getS3() {
+        return s3;
+    }
+
+    public String getPorjectStruct() {
+        return PorjectStruct;
+    }
+
+    public Integer getFloorUp() {
+        return FloorUp;
+    }
+
+    public Integer getFloorDown() {
+        return FloorDown;
+    }
+
+    public String getGCGMValue() {
+        return GCGMValue;
+    }
+
+    public String getGCGMUnit() {
+        return GCGMUnit;
+    }
+
+    public String getPorjectUse() {
+        return PorjectUse;
+    }
+
+    @ExcelField(title="咨询标的额", align=2, sort=8)
+    public String getZiXunBDE() {
+        return ZiXunBDE;
+    }
+
+    public String getZiXunBDETJ() {
+        return ZiXunBDETJ;
+    }
+
+    public String getZiXunBDEAZ() {
+        return ZiXunBDEAZ;
+    }
+
+    public String getCalTJPercent() {
+        return CalTJPercent;
+    }
+
+    public String getCalAZPercent() {
+        return CalAZPercent;
+    }
+
+    public String getCalZZJUnit() {
+        return CalZZJUnit;
+    }
+
+    public String getCalZZJTJUnit() {
+        return CalZZJTJUnit;
+    }
+
+    public String getCalZZJAZUnit() {
+        return CalZZJAZUnit;
+    }
+
+    public String getHeTongJia() {
+        return HeTongJia;
+    }
+
+    public String getSongShenJia() {
+        return SongShenJia;
+    }
+
+    public String getShenDingJia() {
+        return ShenDingJia;
+    }
+
+    public String getJingHeJianE() {
+        return JingHeJianE;
+    }
+
+    public String getJingHeJianLv() {
+        return JingHeJianLv;
+    }
+
+    public String getGCYL() {
+        return GCYL;
+    }
+
+    public String getSNYL() {
+        return SNYL;
+    }
+
+    public String getYBTYL() {
+        return YBTYL;
+    }
+
+    public String getRGGRYL() {
+        return RGGRYL;
+    }
+
+    public String getGCYLPerUnit() {
+        return GCYLPerUnit;
+    }
+
+    public String getSNYLPerUnit() {
+        return SNYLPerUnit;
+    }
+
+    public String getYBTYLPerUnit() {
+        return YBTYLPerUnit;
+    }
+
+    public String getRGGRYLPerUnit() {
+        return RGGRYLPerUnit;
+    }
+
+    public List<String> getTJProjectList() {
+        return TJProjectList;
+    }
+
+    public List<String> getZSProjectList() {
+        return ZSProjectList;
+    }
+
+    public List<String> getAZProjectList() {
+        return AZProjectList;
+    }
+
+    public List<String> getSZProjectList() {
+        return SZProjectList;
+    }
+
+    public List<String> getFGYLProjectList() {
+        return FGYLProjectList;
+    }
+
+    public String getTJProject() {
+        return TJProject;
+    }
+
+    public String getZSProject() {
+        return ZSProject;
+    }
+
+    public String getAZProject() {
+        return AZProject;
+    }
+
+    public String getSZProject() {
+        return SZProject;
+    }
+
+    public String getFGYLProject() {
+        return FGYLProject;
+    }
+
+    public String getQTProjec() {
+        return QTProjec;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public String getCounty() {
+        return county;
+    }
+
+    public String getProcessInstanceId() {
+        return processInstanceId;
+    }
+
+    public Office getCompany() {
+        return company;
+    }
+
+    public Office getOffice() {
+        return office;
+    }
+
+    public String getReportStatus() {
+        return reportStatus;
+    }
+
+    public String getHome() {
+        return home;
+    }
+
+    public String getProjectCode() {
+        return projectCode;
+    }
+
+    public String getProjectSection() {
+        return projectSection;
+    }
+
+    public String getProjectClassify() {
+        return projectClassify;
+    }
+
+    public String getGCGMValueParameter() {
+        return GCGMValueParameter;
+    }
+
+    public List<String> getContentsIncludeList() {
+        return contentsIncludeList;
+    }
+
+    public String getContentsInclude() {
+        return contentsInclude;
+    }
+
+    public String getProjectTotalInvestment() {
+        return projectTotalInvestment;
+    }
+
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public String getArchivesNo() {
+        return archivesNo;
+    }
+
+    public String getAdvisoryIncome() {
+        return advisoryIncome;
+    }
+
+    public String getProjectSupervisionIncome() {
+        return projectSupervisionIncome;
+    }
+
+    public String getTenderingAgencyIncome() {
+        return tenderingAgencyIncome;
+    }
+
+    public String getDesignIncome() {
+        return designIncome;
+    }
+
+    public String getOtherIncome() {
+        return otherIncome;
+    }
+
+    public List<WorkClientAttachment> getWorkAttachments() {
+        return workAttachments;
+    }
+
+    public void setWorkContractInfo(WorkContractInfo workContractInfo) {
+        this.workContractInfo = workContractInfo;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public void setProjectRecordId(String projectRecordId) {
+        this.projectRecordId = projectRecordId;
+    }
+
+    public void setProjectLeaders(List<User> projectLeaders) {
+        this.projectLeaders = projectLeaders;
+    }
+
+    public void setProjectName(String projectName) {
+        ProjectName = projectName;
+    }
+
+    public void setXmFZR(String xmFZR) {
+        this.xmFZR = xmFZR;
+    }
+
+    public void setLeaderNameStr(String leaderNameStr) {
+        this.leaderNameStr = leaderNameStr;
+    }
+
+    public void setWeiTuoDW(String weiTuoDW) {
+        WeiTuoDW = weiTuoDW;
+    }
+
+    public void setLianXiDH(String lianXiDH) {
+        LianXiDH = lianXiDH;
+    }
+
+    public void setTouZiXZ(String touZiXZ) {
+        TouZiXZ = touZiXZ;
+    }
+
+    public void setProjectType(String projectType) {
+        ProjectType = projectType;
+    }
+
+    public void setHeTongLeiXing(String heTongLeiXing) {
+        HeTongLeiXing = heTongLeiXing;
+    }
+
+    public void setZiXunHTBH(String ziXunHTBH) {
+        ZiXunHTBH = ziXunHTBH;
+    }
+
+    public void setDangABH(String dangABH) {
+        DangABH = dangABH;
+    }
+
+    public void setBaoGaoShuQianFaDate(String baoGaoShuQianFaDate) {
+        BaoGaoShuQianFaDate = baoGaoShuQianFaDate;
+    }
+
+    public void setZiXunShouRu(String ziXunShouRu) {
+        ZiXunShouRu = ziXunShouRu;
+    }
+
+    public void setZaoJiaShiZhengHao(String zaoJiaShiZhengHao) {
+        this.zaoJiaShiZhengHao = zaoJiaShiZhengHao;
+    }
+
+    public void setReportedConsultantList(List<ReportedConsultant> reportedConsultantList) {
+        this.reportedConsultantList = reportedConsultantList;
+    }
+
+    public void setChargeCriterionList(List<String> chargeCriterionList) {
+        this.chargeCriterionList = chargeCriterionList;
+    }
+
+    public void setS1(String s1) {
+        this.s1 = s1;
+    }
+
+    public void setS2(String s2) {
+        this.s2 = s2;
+    }
+
+    public void setS3(String s3) {
+        this.s3 = s3;
+    }
+
+    public void setPorjectStruct(String porjectStruct) {
+        PorjectStruct = porjectStruct;
+    }
+
+    public void setFloorUp(Integer floorUp) {
+        FloorUp = floorUp;
+    }
+
+    public void setFloorDown(Integer floorDown) {
+        FloorDown = floorDown;
+    }
+
+    public void setGCGMValue(String GCGMValue) {
+        this.GCGMValue = GCGMValue;
+    }
+
+    public void setGCGMUnit(String GCGMUnit) {
+        this.GCGMUnit = GCGMUnit;
+    }
+
+    public void setPorjectUse(String porjectUse) {
+        PorjectUse = porjectUse;
+    }
+
+    public void setZiXunBDE(String ziXunBDE) {
+        ZiXunBDE = ziXunBDE;
+    }
+
+    public void setZiXunBDETJ(String ziXunBDETJ) {
+        ZiXunBDETJ = ziXunBDETJ;
+    }
+
+    public void setZiXunBDEAZ(String ziXunBDEAZ) {
+        ZiXunBDEAZ = ziXunBDEAZ;
+    }
+
+    public void setCalTJPercent(String calTJPercent) {
+        CalTJPercent = calTJPercent;
+    }
+
+    public void setCalAZPercent(String calAZPercent) {
+        CalAZPercent = calAZPercent;
+    }
+
+    public void setCalZZJUnit(String calZZJUnit) {
+        CalZZJUnit = calZZJUnit;
+    }
+
+    public void setCalZZJTJUnit(String calZZJTJUnit) {
+        CalZZJTJUnit = calZZJTJUnit;
+    }
+
+    public void setCalZZJAZUnit(String calZZJAZUnit) {
+        CalZZJAZUnit = calZZJAZUnit;
+    }
+
+    public void setHeTongJia(String heTongJia) {
+        HeTongJia = heTongJia;
+    }
+
+    public void setSongShenJia(String songShenJia) {
+        SongShenJia = songShenJia;
+    }
+
+    public void setShenDingJia(String shenDingJia) {
+        ShenDingJia = shenDingJia;
+    }
+
+    public void setJingHeJianE(String jingHeJianE) {
+        JingHeJianE = jingHeJianE;
+    }
+
+    public void setJingHeJianLv(String jingHeJianLv) {
+        JingHeJianLv = jingHeJianLv;
+    }
+
+    public void setGCYL(String GCYL) {
+        this.GCYL = GCYL;
+    }
+
+    public void setSNYL(String SNYL) {
+        this.SNYL = SNYL;
+    }
+
+    public void setYBTYL(String YBTYL) {
+        this.YBTYL = YBTYL;
+    }
+
+    public void setRGGRYL(String RGGRYL) {
+        this.RGGRYL = RGGRYL;
+    }
+
+    public void setGCYLPerUnit(String GCYLPerUnit) {
+        this.GCYLPerUnit = GCYLPerUnit;
+    }
+
+    public void setSNYLPerUnit(String SNYLPerUnit) {
+        this.SNYLPerUnit = SNYLPerUnit;
+    }
+
+    public void setYBTYLPerUnit(String YBTYLPerUnit) {
+        this.YBTYLPerUnit = YBTYLPerUnit;
+    }
+
+    public void setRGGRYLPerUnit(String RGGRYLPerUnit) {
+        this.RGGRYLPerUnit = RGGRYLPerUnit;
+    }
+
+    public void setTJProjectList(List<String> TJProjectList) {
+        this.TJProjectList = TJProjectList;
+    }
+
+    public void setZSProjectList(List<String> ZSProjectList) {
+        this.ZSProjectList = ZSProjectList;
+    }
+
+    public void setAZProjectList(List<String> AZProjectList) {
+        this.AZProjectList = AZProjectList;
+    }
+
+    public void setSZProjectList(List<String> SZProjectList) {
+        this.SZProjectList = SZProjectList;
+    }
+
+    public void setFGYLProjectList(List<String> FGYLProjectList) {
+        this.FGYLProjectList = FGYLProjectList;
+    }
+
+    public void setTJProject(String TJProject) {
+        this.TJProject = TJProject;
+    }
+
+    public void setZSProject(String ZSProject) {
+        this.ZSProject = ZSProject;
+    }
+
+    public void setAZProject(String AZProject) {
+        this.AZProject = AZProject;
+    }
+
+    public void setSZProject(String SZProject) {
+        this.SZProject = SZProject;
+    }
+
+    public void setFGYLProject(String FGYLProject) {
+        this.FGYLProject = FGYLProject;
+    }
+
+    public void setQTProjec(String QTProjec) {
+        this.QTProjec = QTProjec;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public void setCounty(String county) {
+        this.county = county;
+    }
+
+    public void setProcessInstanceId(String processInstanceId) {
+        this.processInstanceId = processInstanceId;
+    }
+
+    public void setCompany(Office company) {
+        this.company = company;
+    }
+
+    public void setOffice(Office office) {
+        this.office = office;
+    }
+
+    public void setReportStatus(String reportStatus) {
+        this.reportStatus = reportStatus;
+    }
+
+    public void setHome(String home) {
+        this.home = home;
+    }
+
+    public void setProjectCode(String projectCode) {
+        this.projectCode = projectCode;
+    }
+
+    public void setProjectSection(String projectSection) {
+        this.projectSection = projectSection;
+    }
+
+    public void setProjectClassify(String projectClassify) {
+        this.projectClassify = projectClassify;
+    }
+
+    public void setGCGMValueParameter(String GCGMValueParameter) {
+        this.GCGMValueParameter = GCGMValueParameter;
+    }
+
+    public void setContentsIncludeList(List<String> contentsIncludeList) {
+        this.contentsIncludeList = contentsIncludeList;
+    }
+
+    public void setContentsInclude(String contentsInclude) {
+        this.contentsInclude = contentsInclude;
+    }
+
+    public void setProjectTotalInvestment(String projectTotalInvestment) {
+        this.projectTotalInvestment = projectTotalInvestment;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public void setArchivesNo(String archivesNo) {
+        this.archivesNo = archivesNo;
+    }
+
+    public void setAdvisoryIncome(String advisoryIncome) {
+        this.advisoryIncome = advisoryIncome;
+    }
+
+    public void setProjectSupervisionIncome(String projectSupervisionIncome) {
+        this.projectSupervisionIncome = projectSupervisionIncome;
+    }
+
+    public void setTenderingAgencyIncome(String tenderingAgencyIncome) {
+        this.tenderingAgencyIncome = tenderingAgencyIncome;
+    }
+
+    public void setDesignIncome(String designIncome) {
+        this.designIncome = designIncome;
+    }
+
+    public void setOtherIncome(String otherIncome) {
+        this.otherIncome = otherIncome;
+    }
+
+    public void setWorkAttachments(List<WorkClientAttachment> workAttachments) {
+        this.workAttachments = workAttachments;
+    }
+}

+ 11 - 0
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java

@@ -22,6 +22,7 @@ import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
 import com.jeeplus.modules.projectreportnum.dao.ProjectReportNumDao;
 import com.jeeplus.modules.projectreportnum.entity.ReportNum;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.serialnum.service.SerialNumTplService;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
@@ -253,6 +254,16 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		return page;
 	}
 
+
+	public String getMoneyAll(ProjectRecords ruralProjectRecords){
+		ruralProjectRecords.setPage(new Page<ProjectRecords>());
+		String getSumMoney = dao.getListMoney(ruralProjectRecords);
+		if(com.jeeplus.common.utils.StringUtils.isBlank(getSumMoney)){
+			getSumMoney = "0";
+		}
+		return getSumMoney;
+	}
+
 	public Page<ProjectRecords> findAllPage(Page<ProjectRecords> page, ProjectRecords projectRecords) {
 		//设置数据权限
         /*if(!UserUtils.getUser().isAdmin()) {

文件差異過大導致無法顯示
+ 1091 - 0
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectReportedImportService.java


+ 1 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectRecordsController.java

@@ -146,6 +146,7 @@ public class ProjectRecordsController extends BaseController {
 				}
 			}
 		}
+		model.addAttribute("moneyAll", projectRecordsService.getMoneyAll(projectRecords));
 		model.addAttribute("page", page);
 		return "modules/projectrecord/projectRecordsList";
 	}

+ 387 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectReportedImportController.java

@@ -0,0 +1,387 @@
+package com.jeeplus.modules.projectrecord.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
+import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
+import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
+import com.jeeplus.modules.projectrecord.service.ProjectReportedImportService;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
+import com.jeeplus.modules.sys.entity.Area;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+import org.springframework.ui.Model;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.ConstraintViolationException;
+import java.util.List;
+
+/**
+ * 全过程导入上报controller
+ * @author: 徐滕
+ * @create: 2021-12-27 09:46
+ **/
+@Controller
+@RequestMapping(value = "${adminPath}/project/projectReportedImport")
+public class ProjectReportedImportController extends BaseController {
+
+    @Autowired
+    private ProjectReportedImportService projectReportedImportService;
+    @Autowired
+    private RuralProjectMessageService ruralProjectMessageS;
+    @Autowired
+    private ProjectEngineeringService engineeringService;
+    @Autowired
+    private RuralProjectMessageNewService ruralProjectMessageService;
+    @Autowired
+    private ActTaskService actTaskService;
+
+    @ModelAttribute
+    public ProjectReportedImport get(@RequestParam(required=false) String id) {
+        ProjectReportedImport entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectReportedImportService.get(id);
+        }
+        if (entity == null){
+            entity = new ProjectReportedImport();
+        }
+        return entity;
+    }
+
+    /**
+     * list列表
+     * @param projectReportedImport
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @RequiresPermissions("project:projectReportedImport:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(ProjectReportedImport projectReportedImport, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        Page<ProjectReportedImport> page = projectReportedImportService.findPage(new Page<ProjectReportedImport>(request, response), projectReportedImport);
+
+        model.addAttribute("page", page);
+        model.addAttribute("moneyAll", projectReportedImportService.getMoneyAll(projectReportedImport));
+        return "modules/ruralprojectrecords/reported/import/projectReportedImportList";
+    }
+
+
+    /**
+     * 下载导入项目数据模板
+     * @param response
+     * @param redirectAttributes
+     * @return
+     */
+    @RequiresPermissions("project:projectReportedImport:import")
+    @RequestMapping(value = "import/template")
+    public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            String fileName = "招标项目上报导入模板.xlsx";
+            List<ProjectReportedImport> list = Lists.newArrayList();
+            new ExportExcel("招标项目上报数据", ProjectReportedImport.class, 1).setDataList(list).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+ Global.getAdminPath()+"/project/projectReportedImport/?repage";
+    }
+
+
+    /**
+     * 导入Excel数据
+     * @param file
+     * @param redirectAttributes
+     * @return
+     */
+    @RequiresPermissions("project:projectReportedImport:import")
+    @RequestMapping(value = "import", method= RequestMethod.POST)
+    public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
+        try {
+            int successNum = 0;
+            int failureNum = 0;
+            StringBuilder failureMsg = new StringBuilder();
+            ImportExcel ei = new ImportExcel(file, 1, 0);
+            List<ProjectReportedImport> list = ei.getDataList(ProjectReportedImport.class);
+            for (ProjectReportedImport projectReportedImport : list){
+                try{
+                    if(StringUtils.isNotBlank(projectReportedImport.getDangABH())){
+
+                    }
+                    Integer count = projectReportedImportService.getByDangABH(projectReportedImport.getDangABH());
+                    if(count == 0){
+                        projectReportedImportService.save(projectReportedImport);
+                        successNum++;
+                    }
+                }catch(ConstraintViolationException ex){
+                    failureNum++;
+                }catch (Exception ex) {
+                    failureNum++;
+                }
+            }
+            if (failureNum>0){
+                failureMsg.insert(0, ",失败 "+failureNum+" 条项目记录。");
+            }
+            addMessage(redirectAttributes, "已成功导入 "+successNum+" 条项目记录"+failureMsg);
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导入项目失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/projectReportedImport/?repage";
+    }
+
+
+    /**
+     * 项目上报
+     * @param projectReportedImport
+     * @return
+     */
+    @RequestMapping(value = "updateReported")
+    public String updateReported(ProjectReportedImport projectReportedImport, Model model) {
+        //查询上报信息表中是否含有数据,没有则进行获取基础数据
+        projectReportedImport = projectReportedImportService.getRuralProjectRecordsReported(projectReportedImport.getId());
+        if(projectReportedImport == null){
+            //合同价送审价审定价处理
+            if(com.jeeplus.common.utils.StringUtils.isNotBlank(projectReportedImport.getHeTongJia())){
+                Double heTongJia = Double.valueOf(projectReportedImport.getHeTongJia())/10000;
+                projectReportedImport.setHeTongJia(String.format("%.2f", heTongJia));
+            }
+            if(com.jeeplus.common.utils.StringUtils.isNotBlank(projectReportedImport.getSongShenJia())){
+                Double songShenJia = Double.valueOf(projectReportedImport.getSongShenJia())/10000;
+                projectReportedImport.setSongShenJia(String.format("%.2f", songShenJia));
+            }
+            if(com.jeeplus.common.utils.StringUtils.isNotBlank(projectReportedImport.getShenDingJia())){
+                Double shenDingJia = Double.valueOf(projectReportedImport.getShenDingJia())/10000;
+                projectReportedImport.setShenDingJia(String.format("%.2f", shenDingJia));
+            }
+            if(com.jeeplus.common.utils.StringUtils.isNotBlank(projectReportedImport.getSongShenJia()) && com.jeeplus.common.utils.StringUtils.isNotBlank(projectReportedImport.getShenDingJia())){
+                Double jingHeJianE = Double.valueOf(projectReportedImport.getShenDingJia())-Double.valueOf(projectReportedImport.getSongShenJia());
+                projectReportedImport.setJingHeJianE(String.format("%.2f", jingHeJianE));
+                Double jingHeJianLv = jingHeJianE/Double.valueOf(projectReportedImport.getSongShenJia()) * 100;
+                if(jingHeJianLv.isNaN()){
+                    jingHeJianLv = 0D;
+                }
+                projectReportedImport.setJingHeJianLv(String.format("%.2f", jingHeJianLv));
+            }
+        }
+        //获取工程类型
+        ProjectEngineeringInfo engineeringInfos=engineeringService.getProjectReportedType(projectReportedImport.getPorjectUse());
+        model.addAttribute("engineeringInfo", engineeringInfos);
+        //根据上报id查询上报咨询员的信息
+        List<RuralReportConsultant> reportedConsultants=ruralProjectMessageS.getReportedConsultantsList(projectReportedImport.getId());
+        //查询报告咨询员的信息
+        //对上报的咨询员进行处理
+        List<RuralReportConsultant> consultantList = ruralProjectMessageS.disposereportedConsultant(reportedConsultants);
+
+        model.addAttribute("ruralProjectRecordsReported", projectReportedImport);
+        model.addAttribute("consultantInfo", consultantList);
+        return "modules/ruralprojectrecords/reported/import/reportedForm";
+    }
+
+    /**
+     * 保存报告并提交审核
+     * @param projectReportedImport
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = "saveReported")
+    public String saveReported(ProjectReportedImport projectReportedImport,  RedirectAttributes redirectAttributes) throws Exception {
+        if(!BaseController.REPORTSWITCH){
+            addMessage(redirectAttributes, "项目上报失败:上报管理员已关闭上报模块");
+            return "redirect:"+Global.getAdminPath()+"/project/projectReportedImport/?repage";
+        }
+        projectReportedImportService.disposeListImport(projectReportedImport);
+        String str = "";
+        if(!projectReportedImport.getIsNewRecord()){//编辑表单保存
+            ProjectReportedImport t = projectReportedImportService.getRuralProjectRecordsReported(projectReportedImport.getId());;//从数据库取出记录的值
+            MyBeanUtils.copyBeanNotNull2Bean(projectReportedImport, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            str = projectReportedImportService.saveReportedInfo(t, ProjectStatusEnum.IN_APRL);
+        }else{//新增表单保存
+            str = projectReportedImportService.saveReportedInfo(projectReportedImport,ProjectStatusEnum.IN_APRL);
+        }
+
+
+        if (com.jeeplus.common.utils.StringUtils.isNotBlank(str)){
+            addMessage(redirectAttributes, "项目上报失败:"+str);
+        }else {
+            addMessage(redirectAttributes, "项目上报成功");
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/projectReportedImport/?repage";
+    }
+
+
+
+    /**
+     * 报告归档:强制撤回
+     */
+    @RequestMapping("cancelInvalidateByReported")
+    public String cancelInvalidateByReported(ProjectReportedImport reported,RedirectAttributes redirectAttributes){
+        try {
+            if(reported.getReportStatus().equals("5")){
+                addMessage(redirectAttributes, "项目上报已审批通过,无法撤回");
+            }else{
+                if(reported.getReportStatus().equals("2")){
+                    projectReportedImportService.cancelInvalidateByReported(reported);
+                    addMessage(redirectAttributes, "强制撤回项目上报成功");
+                }else{
+                    addMessage(redirectAttributes, "项目上报不是送审状态,无法撤回");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+                }
+            }
+        }catch (Exception e){
+            addMessage(redirectAttributes, "强制撤回项目上报失败");
+            logger.error("强制撤回项目上报信息失败",e);
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/projectReportedImport/?repage";
+    }
+
+
+
+    /**
+     * 项目上报
+     * @param projectReportedImport
+     * @return
+     */
+    @RequestMapping(value = "reportedModify")
+    public String reportedModify(ProjectReportedImport projectReportedImport, Model model) {
+        ProcessInstance processInstance = actTaskService.getProcIns(projectReportedImport.getProcessInstanceId());
+        if (processInstance!=null) {
+            Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
+            Act act = new Act();
+            act.setTaskId(taskInfok.getId());
+            act.setTaskName(taskInfok.getName());
+            act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+            act.setProcDefId(taskInfok.getProcessDefinitionId());
+            act.setProcInsId(taskInfok.getProcessInstanceId());
+            act.setTask(taskInfok);
+            projectReportedImport.setAct(act);
+        }
+
+        //根据上报id查询上报咨询员的信息
+        List<RuralReportConsultant> reportedConsultants=ruralProjectMessageService.getReportedConsultantsList(projectReportedImport.getId());
+        //对上报的咨询员进行处理
+        List<RuralReportConsultant> consultantList = ruralProjectMessageService.disposereportedConsultant(reportedConsultants);
+
+        //获取工程类型
+        ProjectEngineeringInfo engineeringInfos=engineeringService.getProjectReportedType(projectReportedImport.getPorjectUse());
+        model.addAttribute("engineeringInfo", engineeringInfos);
+        List<Area> areaList = ruralProjectMessageService.getProjectReportedAreaByParentId(projectReportedImport.getS1());
+        model.addAttribute("cityList", areaList);
+        //查询项目信息
+        model.addAttribute("consultantInfo", consultantList);
+        model.addAttribute("projectReportedImport", projectReportedImport);
+        return "modules/ruralprojectrecords/reported/import/reportedModify";
+    }
+
+
+
+    /**
+     * 工单执行(完成任务)
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "auditSaveReported")
+    public String auditSaveReported(ProjectReportedImport reported, Model model,
+                                    RedirectAttributes redirectAttributes) {
+        try {
+            if (!BaseController.REPORTSWITCH){
+                addMessage(redirectAttributes, "重新申请失败:上报管理员已关闭上报功能");
+                if (com.jeeplus.common.utils.StringUtils.isNotBlank(reported.getHome()) && "home".equals(reported.getHome())){
+                    return "redirect:" + Global.getAdminPath() + "/home/?repage";
+                }else {
+                    return "redirect:"+Global.getAdminPath()+"/project/projectReportedImport/?repage";
+                }
+            }
+            projectReportedImportService.disposeList(reported);
+            ProjectReportedImport t = projectReportedImportService.get(reported.getId());;//从数据库取出记录的值
+            MyBeanUtils.copyBeanNotNull2Bean(reported, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+
+            String taskDefKey =  t.getAct().getTaskDefKey();
+            List<User> users = null;
+            if ("bmzr".equals(taskDefKey)){
+                users = UserUtils.getByProssType(t.getProcessInstanceId(),2);
+                if (users==null )
+                    users = UserUtils.getByRoleActivityEnname("sbglyyjla",3,t.getOffice().getId(),"4",t.getCreateBy());
+            }else if ("modifyApply".equals(taskDefKey)){
+                users = UserUtils.getByRoleActivityEnname("sbglyyjla",3,t.getOffice().getId(),"4",t.getCreateBy());
+            }
+
+            String flag = reported.getAct().getFlag();
+            if ("yes".equals(flag) && (users==null || users.size()==0)){
+                addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
+            }else {
+                String str = projectReportedImportService.auditSaveReported(t, users);
+
+                addMessage(redirectAttributes, str);
+            }
+        }catch (Exception e){
+            addMessage(redirectAttributes, "上报流程审批失败");
+            logger.error("上报流程审批失败:",e);
+        }
+        if (com.jeeplus.common.utils.StringUtils.isNotBlank(reported.getHome()) && "home".equals(reported.getHome())){
+            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+        }else if (com.jeeplus.common.utils.StringUtils.isNotBlank(reported.getHome()) && "notifyList".equals(reported.getHome())){
+            return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
+        }else {
+            return "redirect:"+Global.getAdminPath()+"/project/projectReportedImport/?repage";
+        }
+    }
+
+
+    /**
+     * 查看
+     * @param projectReportedImport
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "view")
+    public String view(ProjectReportedImport projectReportedImport, Model model) {
+        projectReportedImport = projectReportedImportService.getRuralProjectRecordsReported(projectReportedImport.getId());
+        //查询所有的工程类型
+        List<ProjectEngineeringInfo> projectEngineeringInfo=engineeringService.findList(new ProjectEngineeringInfo());
+        model.addAttribute("projectEngineeringInfo",projectEngineeringInfo);
+
+
+        /*Act act = getByAct(projectReportedImport.getProcessInstanceId());
+        projectReportedImport.setAct(act);*/
+
+        //根据上报id查询上报咨询员的信息
+        List<RuralReportConsultant> reportedConsultants=ruralProjectMessageService.getReportedConsultantsList(projectReportedImport.getId());
+        //对上报的咨询员进行处理
+        List<RuralReportConsultant> consultantList = ruralProjectMessageService.disposereportedConsultant(reportedConsultants);
+
+        //获取工程类型
+        ProjectEngineeringInfo engineeringInfos=engineeringService.getProjectReportedType(projectReportedImport.getPorjectUse());
+        model.addAttribute("engineeringInfo", engineeringInfos);
+        List<Area> areaList = ruralProjectMessageService.getProjectReportedAreaByParentId(projectReportedImport.getS1());
+        model.addAttribute("cityList", areaList);
+        model.addAttribute("consultantInfo", consultantList);
+        model.addAttribute("ruralProjectRecordsReported", projectReportedImport);
+        return "modules/ruralprojectrecords/reported/import/reportedView";
+    }
+}

+ 8 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsReportedDao.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.ruralprojectrecords.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
 import com.jeeplus.modules.ruralprojectrecords.entity.ReportedConsultant;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
 
@@ -37,6 +38,13 @@ public interface RuralProjectRecordsReportedDao extends CrudDao<RuralProjectReco
      */
     int deleteConsultant(RuralProjectRecordsReported reported);
 
+    /**
+     * 删除上报咨询员信息
+     * @param reported
+     * @return
+     */
+    int deleteConsultantImport(ProjectReportedImport reported);
+
 
 
 

+ 1 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java

@@ -34,6 +34,7 @@ import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
 import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;

+ 159 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/utils/RuralProjectReportedInfoUtil.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.ruralprojectrecords.utils;
 
 import com.alibaba.fastjson.JSONObject;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
 import com.jeeplus.modules.ruralprojectrecords.entity.ReportedConsultant;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
 import com.jeeplus.modules.ruralprojectrecords.entity.StaffInfo;
@@ -202,4 +203,162 @@ public class RuralProjectReportedInfoUtil {
         System.out.println(jsonStr);
         return map;
     }
+
+
+
+
+
+
+    /**
+     * 项目上报数据处理(转map)
+     * @param reported
+     * @return
+     */
+    public static Map<String ,Object> reportedDataManageImport(ProjectReportedImport reported){
+        Map<String,Object> map = new LinkedHashMap<>();
+        //工程所在省份,必填
+        map.put("projectProv",reported.getS1());
+        //工程所在地,必填
+        map.put("projectHome",reported.getS3());
+        //项目编号,必填
+        map.put("projectNum",reported.getProjectRecordId());
+        //项目名称,必填
+        map.put("projectName",reported.getProjectName());
+        //项目分类,必填
+        map.put("projectSort",reported.getProjectClassify());
+        //项目标段
+        map.put("projectSection",notRequiredManage(reported.getProjectSection()));
+
+        //项目代码,必填
+        map.put("projectCode",reported.getProjectCode());
+        //投资性质,必填
+        map.put("investPropCd",reported.getTouZiXZ());
+        //合同编号,必填
+        map.put("contractNum",reported.getZiXunHTBH());
+        //合同类型,必填
+        map.put("contractTypeCd",reported.getHeTongLeiXing());
+        //项目类型,必填
+        map.put("projectTypeCd",reported.getProjectType());
+        //委托单位,必填
+        map.put("entrustUnit",reported.getWeiTuoDW());
+        //委托单位联系电话,必填
+        map.put("entrustPhone",reported.getLianXiDH());
+        //造价记录编号,必填
+        map.put("recordNum",reported.getDangABH());
+        //出具咨询报告日期,必填
+        map.put("issueReportDate",reported.getBaoGaoShuQianFaDate());
+        //造价咨询营业收入,必填
+        map.put("incomeFee",reported.getZiXunShouRu());
+
+
+
+        //负责人筛选
+        ReportedConsultant responsiblePerson = new ReportedConsultant();
+        //咨询员
+        List<ReportedConsultant> reportedConsultantList = reported.getReportedConsultantList();
+
+        Iterator iterator = reportedConsultantList.iterator();
+        while (iterator.hasNext()) {
+            ReportedConsultant data = (ReportedConsultant) iterator.next();
+            if (null == data.getId()){
+                iterator.remove();
+            }else if("1".equals(data.getRoleFlag())){
+                responsiblePerson = data;
+                iterator.remove();
+            }
+        }
+        //根据咨询员id查询咨询员姓名信息
+        User user = UserUtils.get(responsiblePerson.getZixunyuan());
+
+
+        //咨询项目负责人姓名,必填
+        map.put("leaderName",user.getName());
+        //咨询项目负责人身份证号,必填
+        map.put("leaderLetterNum",responsiblePerson.getIdCard());
+        //咨询项目负责人完成营业收入比例(%),必填
+        map.put("leaderIncomePercent",responsiblePerson.getWcyysrbl().toString());
+        //咨询项目负责人完成营业收入
+        map.put("leaderIncomeMoney",responsiblePerson.getWcyysr().toString());
+
+        //添加咨询员信息
+        map.put("staffs",consultantManage(reportedConsultantList));
+
+        //工程结构,必填
+        map.put("projectStructCd",reported.getPorjectStruct());
+        //地上层数
+        if(null != reported.getFloorUp()){
+            map.put("floorUp",reported.getFloorUp().toString());
+        }else{
+            map.put("floorUp","");
+        }
+
+        //地下层数
+        if(null != reported.getFloorUp()){
+            map.put("floorDown",reported.getFloorDown().toString());
+        }else{
+            map.put("floorDown","");
+        }
+        //建筑规模,必填
+        map.put("projectAreaVal",reported.getGCGMValueParameter());
+        //建筑规模单位,必填
+        map.put("projectAreaUnit",reported.getGCGMValue());
+        //工程用途,必填
+        map.put("projectUseCd",reported.getPorjectUse());
+        //咨询标的额(万元),必填
+        map.put("targetFee",reported.getZiXunBDE());
+        //合同价(万元)
+        map.put("contractFee",notRequiredManage(reported.getHeTongJia()));
+        //咨询档案编号(万元)
+        map.put("archivesNo",notRequiredManage(reported.getArchivesNo()));
+        //送审价(万元)
+        map.put("submitAuditFee",notRequiredManage(reported.getSongShenJia()));
+        //审定价(万元)
+        map.put("fixedAuditFee",notRequiredManage(reported.getShenDingJia()));
+        //审核增减额
+        map.put("checkCutFee",notRequiredManage(reported.getJingHeJianE()));
+        //审核增减率
+        map.put("checkCutLv",notRequiredManage(reported.getJingHeJianLv()));
+        //咨询项目造价包含内容说明,必填
+        map.put("projectContainContent",notRequiredManage(reported.getContentsInclude()));
+        //工程项目总投资(万元)
+        map.put("totalInvestment",notRequiredManage(reported.getProjectTotalInvestment()));
+
+        //总咨询师
+        if(StringUtils.isNotBlank(reported.getXmFZR())){
+            User xmFZRUser = UserUtils.get(reported.getXmFZR());
+            if(null != xmFZRUser){
+                map.put("chiefConsultant",xmFZRUser.getName());
+            }else{
+                map.put("chiefConsultant","");
+            }
+        }else{
+            map.put("chiefConsultant","");
+        }
+
+        //咨询档案编号
+        map.put("archivesNo",notRequiredManage(reported.getProjectTotalInvestment()));
+        //作业期(起止时间) 模板:2020-12-12到2021-12-12
+        if(null != reported.getBeginDate() && null != reported.getEndDate()){
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+            map.put("stage",formatter.format(reported.getBeginDate()) + "到" + formatter.format(reported.getEndDate()));
+        } else{
+            map.put("stage","");
+        }
+        //全过程工程咨询收入
+        map.put("wholeIncomeFee",notRequiredManage(reported.getAdvisoryIncome()));
+        //工程监理收入
+        map.put("supervisorFee",notRequiredManage(reported.getProjectSupervisionIncome()));
+        //招标代理收入
+        map.put("biddingFee",notRequiredManage(reported.getTenderingAgencyIncome()));
+        //设计收入
+        map.put("designFee",notRequiredManage(reported.getDesignIncome()));
+        //其他收入
+        map.put("otherFee",notRequiredManage(reported.getOtherIncome()));
+        //项目状态,必填(默认给0,即暂存;2:直接上报)
+        map.put("delFlag","2");
+
+        String s = JSONObject.toJSONString(map);
+        System.out.println(s);
+        return map;
+    }
 }

+ 104 - 0
src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java

@@ -121,4 +121,108 @@ public class WorkCalendarTaskService  {
         projectRecordsService.saveProjectRecordListByAdvent();
         logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");
     }
+
+
+    /**
+     * 月度报表
+     */
+    //每个月最后一天晚上23点推送
+    /*@Scheduled(cron= "0 0 23 L * ?")
+    public void getStatementCompanyComprehensiveOnMonth() {
+        logger.info("-----------公司级—项目月度报表(开始)------------------");
+        projectRecordsService.saveProjectReportedListByAdvent();
+        logger.info("------------公司级—项目月度报表(结束)------------------");
+        logger.info("-----------公司级—开票月度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—开票月度报表(结束)------------------");
+        logger.info("-----------公司级—报销月度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—报销月度报表(结束)------------------");
+        logger.info("-----------公司级—合同月度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—合同月度报表(结束)------------------");
+
+
+        logger.info("-----------部门级—项目月度报表(开始)------------------");
+        projectRecordsService.saveProjectReportedListByAdvent();
+        logger.info("------------部门级—项目月度报表(结束)------------------");
+        logger.info("-----------部门级—开票月度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—开票月度报表(结束)------------------");
+        logger.info("-----------部门级—报销月度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—报销月度报表(结束)------------------");
+        logger.info("-----------部门级—合同月度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—合同月度报表(结束)------------------");
+    }*/
+
+    /**
+     * 季度报表
+     */
+    //每个季度最后一天晚上23点推送
+    /*@Scheduled(cron= "0 0 23 L 3,6,9,12 ?")
+    public void getStatementCompanyComprehensiveOnQuarter() {
+        logger.info("-----------公司级—项目季度报表(开始)------------------");
+        projectRecordsService.saveProjectReportedListByAdvent();
+        logger.info("------------公司级—项目季度报表(结束)------------------");
+        logger.info("-----------公司级—开票季度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—开票季度报表(结束)------------------");
+        logger.info("-----------公司级—报销季度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—报销季度报表(结束)------------------");
+        logger.info("-----------公司级—合同季度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—合同季度报表(结束)------------------");
+
+
+        logger.info("-----------部门级—项目季度报表(开始)------------------");
+        projectRecordsService.saveProjectReportedListByAdvent();
+        logger.info("------------部门级—项目季度报表(结束)------------------");
+        logger.info("-----------部门级—开票季度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—开票季度报表(结束)------------------");
+        logger.info("-----------部门级—报销季度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—报销季度报表(结束)------------------");
+        logger.info("-----------部门级—合同季度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—合同季度报表(结束)------------------");
+    }*/
+
+    /**
+     * 年度报表
+     */
+    //每年最后一天晚上23点推送
+    /*@Scheduled(cron= "0 0 23 31 12 ?")
+    public void getStatementCompanyComprehensiveOnYear() {
+        logger.info("-----------公司级—项目年度报表(开始)------------------");
+        projectRecordsService.saveProjectReportedListByAdvent();
+        logger.info("------------公司级—项目年度报表(结束)------------------");
+        logger.info("-----------公司级—开票年度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—开票年度报表(结束)------------------");
+        logger.info("-----------公司级—报销年度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—报销年度报表(结束)------------------");
+        logger.info("-----------公司级—合同年度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------公司级—合同年度报表(结束)------------------");
+
+
+        logger.info("-----------部门级—项目年度报表(开始)------------------");
+        projectRecordsService.saveProjectReportedListByAdvent();
+        logger.info("------------部门级—项目年度报表(结束)------------------");
+        logger.info("-----------部门级—开票年度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—开票年度报表(结束)------------------");
+        logger.info("-----------部门级—报销年度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—报销年度报表(结束)------------------");
+        logger.info("-----------部门级—合同年度报表(开始)------------------");
+        projectRecordsService.saveProjectRecordListByAdvent();
+        logger.info("------------部门级—合同年度报表(结束)------------------");
+    }*/
+
 }

+ 51 - 8
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -57,14 +57,8 @@ import com.jeeplus.modules.projectcontentinfo.entity.*;
 import com.jeeplus.modules.projectcontentinfo.service.*;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
-import com.jeeplus.modules.projectrecord.entity.ProjectFollowReport;
-import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
-import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
-import com.jeeplus.modules.projectrecord.entity.ProjectRecordsAlter;
-import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
-import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
-import com.jeeplus.modules.projectrecord.service.ProjectRecordsAlterService;
-import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.projectrecord.entity.*;
+import com.jeeplus.modules.projectrecord.service.*;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordsReportedDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.*;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
@@ -506,6 +500,8 @@ public class WorkProjectNotifyController extends BaseController {
 	private FollowArchiveService followArchiveService;
 	@Autowired
 	private RuralProjectMessageElectronicSealService ruralProjectMessageElectronicSealService;
+	@Autowired
+	private ProjectReportedImportService projectReportedImportService;
 
 	@ModelAttribute
 	public WorkProjectNotify get(@RequestParam(required=false) String id) {
@@ -2845,6 +2841,53 @@ public class WorkProjectNotifyController extends BaseController {
 						model.addAttribute("reportedId",reported.getId());
 						return "modules/ruralprojectrecords/ruralporjectmessage/reportedView";
 					}
+				}else if ("219".equals(workProjectNotify.getType())) {    //全过程项目上报管理
+					ProjectReportedImport reported = projectReportedImportService.getRuralProjectRecordsReported(workProjectNotify.getNotifyId());
+
+
+					//查询所有的工程类型
+					List<ProjectEngineeringInfo> projectEngineeringInfo=engineeringService.findList(new ProjectEngineeringInfo());
+					model.addAttribute("projectEngineeringInfo",projectEngineeringInfo);
+
+
+					Act act = getByAct(reported.getProcessInstanceId());
+					reported.setAct(act);
+					if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+						reported.setHome(workProjectNotify.getHome());
+					}else{
+						reported.setHome("home");
+					}
+
+					//根据上报id查询上报咨询员的信息
+					List<RuralReportConsultant> reportedConsultants=ruralProjectMessageService.getReportedConsultantsList(reported.getId());
+					//对上报的咨询员进行处理
+					List<RuralReportConsultant> consultantList = ruralProjectMessageService.disposereportedConsultant(reportedConsultants);
+
+					//获取工程类型
+					ProjectEngineeringInfo engineeringInfos=engineeringService.getProjectReportedType(reported.getPorjectUse());
+					model.addAttribute("engineeringInfo", engineeringInfos);
+					List<Area> areaList = ruralProjectMessageService.getProjectReportedAreaByParentId(reported.getS1());
+					model.addAttribute("cityList", areaList);
+					model.addAttribute("consultantInfo", consultantList);
+					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+						model.addAttribute("ruralProjectRecordsReported", reported);
+						projectReportedImportService.getInfoByView(reported);
+						model.addAttribute("reportedId",reported.getId());
+						return "modules/ruralprojectrecords/reported/import/reportedView";
+					}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+						model.addAttribute("ruralProjectRecordsReported", reported);
+						model.addAttribute("identification", "projectReported");
+						model.addAttribute("identificationName","项目上报审核意见");
+						return "modules/ruralprojectrecords/reported/import/reportedAudit";
+					} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+						model.addAttribute("projectReportedImport", reported);
+						return "modules/ruralprojectrecords/reported/import/reportedModify";
+					} else {
+						model.addAttribute("ruralProjectRecordsReported", reported);
+						projectReportedImportService.getInfoByView(reported);
+						model.addAttribute("reportedId",reported.getId());
+						return "modules/ruralprojectrecords/reported/import/reportedView";
+					}
 				} else if (workProjectNotify.getType().equals("131")) {    //项目计划通知
 					boolean flag = false;
 					//通过通知信息id获取项目登记对象

+ 2 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectcontentinfoDao.xml

@@ -44,6 +44,8 @@
 		FROM project_content_info a
 		<include refid="projectcontentinfoJoins"/>
 		WHERE a.project_id = #{projectId}
+		order by update_date desc
+		limit 1
 	</select>
 
 

+ 88 - 0
src/main/resources/mappings/modules/projectrecord/ProjectRecordsDao.xml

@@ -96,6 +96,7 @@
 		dsu.name as "projectRegistrant"
 		,ifnull(rprr.report_status,0) as "reportedState"
 		,rprr.process_instance_id as "reportedProcessInstanceId"
+		,ifnull(rprr.ZiXunShouRu,"0") as "ziXunShouRu"
 		FROM rural_project_records a
 		<include refid="projectRecordsJoins"/>
 
@@ -188,6 +189,93 @@
 		</choose>
 	</select>
 
+	<select id="getListMoney" resultType="java.lang.String" >
+		SELECT
+		ROUND(sum(if(rprr.report_status = '5',rprr.ZiXunShouRu,0)),2) as moneyAll
+		FROM rural_project_records a
+		<include refid="projectRecordsJoins"/>
+
+
+		LEFT JOIN work_project_user w on a.id = w.project_id
+		LEFT JOIN sys_user su on w.user_id = su.id
+		LEFT JOIN sys_user dsu on a.create_by = dsu.id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		left join rural_project_records_reported rprr on rprr.id = a.id
+		<where>
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="scaleType != null and scaleType != ''">
+				AND a.scale_type = #{scaleType}
+			</if>
+			<if test="scaleUnit != null and scaleUnit != ''">
+				AND a.scale_unit = #{scaleUnit}
+			</if>
+			<if test="scaleQuantity != null and scaleQuantity != ''">
+				AND a.scale_quantity = #{scaleQuantity}
+			</if>
+			<if test="projectSite != null and projectSite != ''">
+				AND a.project_site LIKE concat('%',#{projectSite},'%')
+			</if>
+			<if test="remarks != null and remarks != ''">
+				AND a.remarks LIKE concat('%',#{remarks},'%')
+			</if>
+			<if test="projectDesc != null and projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{projectDesc},'%')
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractNum !=null and workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{workContractInfo.contractNum}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractPrice !=null and workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{workContractInfo.contractPrice}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractType !=null and workContractInfo.contractType !=''">
+				AND wci.contract_type = #{workContractInfo.contractType}
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="projectStatus !=null">
+				AND a.status = #{projectStatus}
+			</if>
+			<if test="beginDate !=null">
+				AND a.create_date >= #{beginDate}
+			</if>
+			<if test="endDate !=null">
+				AND a.create_date &lt; #{endDate}
+			</if>
+			<if test="projectType !=null and projectType !=''">
+				and project_type= #{projectType}
+			</if>
+			<if test="idList!=null and idList.size!=0">
+				and a.id in
+				<foreach collection="idList" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
+			AND  a.status != 7 AND a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
+			</if>
+		</where>
+	</select>
+
+
     <select id="queryCount" resultType="int" >
         SELECT count(DISTINCT a.id)
         FROM rural_project_records a

+ 441 - 0
src/main/resources/mappings/modules/projectrecord/ProjectReportedImportDao.xml

@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.projectrecord.dao.ProjectReportedImportDao">
+
+	<sql id="projectRecordsColumns">
+		a.id,
+		a.create_by AS "createBy.id",
+		(select name from sys_user user where user.id=a.create_by) AS "createBy.name",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.ProjectName,
+		a.xmFZR,
+		(select name from sys_user user where user.id=a.xmFZR) AS "leaderNameStr",
+		a.WeiTuoDW,
+		a.LianXiDH,
+		a.TouZiXZ,
+		a.ProjectType,
+		a.HeTongLeiXing,
+		a.ZiXunHTBH as 'ZiXunHTBH',
+		a.ZiXunHTBH as 'ziXunHTBHShow',
+		a.DangABH,
+		DATE_FORMAT(a.BaoGaoShuQianFaDate, '%Y-%m-%d') as 'BaoGaoShuQianFaDate',
+		ifnull(a.ZiXunShouRu,"0") as "ziXunShouRu",
+		a.zaoJiaShiZhengHao,
+		a.s1,
+		a.s2,
+		a.s3,
+		a.PorjectStruct,
+		a.FloorUp,
+		a.FloorDown,
+		a.GCGMValue as "GCGMValue",
+		a.GCGMUnit,
+		a.PorjectUse,
+		a.ZiXunBDE,
+		a.ZiXunBDETJ,
+		a.ZiXunBDEAZ,
+		a.CalTJPercent,
+		a.CalAZPercent,
+		a.CalZZJUnit,
+		a.CalZZJTJUnit,
+		a.CalZZJAZUnit,
+		a.HeTongJia,
+		a.SongShenJia,
+		a.ShenDingJia,
+		a.JingHeJianE,
+		a.JingHeJianLv,
+		a.GCYL,
+		a.SNYL,
+		a.YBTYL,
+		a.RGGRYL,
+		a.GCYLPerUnit,
+		a.SNYLPerUnit,
+		a.YBTYLPerUnit,
+		a.RGGRYLPerUnit,
+		a.TJProject,
+		a.ZSProject,
+		a.AZProject,
+		a.SZProject,
+		a.FGYLProject,
+		a.QTProjec,
+		ifnull(a.report_status ,0) as "reportStatus",
+		a.process_instance_id  as "processInstanceId",
+		a.company_id as "company.id",
+		a.office_id as "office.id",
+		a.project_id as "projectId",
+		a.projectCode,
+		a.projectSection,
+		a.projectClassify,
+		a.GCGMValueParameter,
+		a.contentsInclude,
+		a.projectTotalInvestment,
+		a.beginDate,
+		a.endDate,
+		a.archivesNo,
+		a.advisoryIncome,
+		a.projectSupervisionIncome,
+		a.tenderingAgencyIncome,
+		a.designIncome,
+		a.otherIncome,
+		a.projectRecordId
+	</sql>
+
+	<sql id="projectRecordsJoins">
+
+	</sql>
+
+
+	<select id="get" resultType="ProjectReportedImport" >
+		SELECT
+			<include refid="projectRecordsColumns"/>
+		,pra.name as "city"
+		,pra2.name as "county"
+		,pra3.name as "province"
+        FROM project_reported_import a
+        <include refid="projectRecordsJoins"/>
+		left join project_reported_area pra on a.s2 = pra.id
+		left join project_reported_area pra2 on a.s3 = pra2.id
+		left join project_reported_area pra3 on a.s1 = pra3.id
+        LEFT JOIN sys_user su ON su.id = a.create_by
+        LEFT JOIN sys_office o ON o.id = a.office_id
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="findList" resultType="ProjectReportedImport" >
+		SELECT
+		<include refid="projectRecordsColumns"/>
+		FROM project_reported_import a
+		<where>
+			<if test="ProjectName != null and ProjectName != ''">
+				AND a.ProjectName like concat('%',#{ProjectName},'%')
+			</if>
+			<if test="ZiXunHTBH != null and ZiXunHTBH != ''">
+				AND a.ZiXunHTBH like concat(concat('%',#{ZiXunHTBH}),'%')
+			</if>
+			<if test="DangABH != null and DangABH != ''">
+				AND a.DangABH like concat(concat('%',#{DangABH}),'%')
+			</if>
+			<if test="sqlMap.delFlag !=null and sqlMap.delFlag!=''">
+				${sqlMap.delFlag}
+			</if>
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				and (a.company_id = #{currentUser.company.id} ${sqlMap.dsf})
+			</if>
+		</where>
+		GROUP BY a.id
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="getListMoney" resultType="java.lang.String" >
+		SELECT
+		ROUND(sum(if(a.report_status = '5',a.ZiXunShouRu,0)),2) as moneyAll
+		FROM project_reported_import a
+		<where>
+			<if test="ProjectName != null and ProjectName != ''">
+				AND a.ProjectName like concat('%',#{ProjectName},'%')
+			</if>
+			<if test="ZiXunHTBH != null and ZiXunHTBH != ''">
+				AND a.ZiXunHTBH like concat(concat('%',#{ZiXunHTBH}),'%')
+			</if>
+			<if test="DangABH != null and DangABH != ''">
+				AND a.DangABH like concat(concat('%',#{DangABH}),'%')
+			</if>
+			<if test="sqlMap.delFlag !=null and sqlMap.delFlag!=''">
+				${sqlMap.delFlag}
+			</if>
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				and (a.company_id = #{currentUser.company.id} ${sqlMap.dsf})
+			</if>
+		</where>
+	</select>
+
+	<select id="queryCount" resultType="int" >
+		SELECT count(DISTINCT a.id)
+		FROM project_reported_import a
+		<include refid="projectRecordsJoins"/>
+		<where>
+			<if test="ProjectName != null and ProjectName != ''">
+				AND a.ProjectName like concat('%',#{ProjectName},'%')
+			</if>
+			<if test="ZiXunHTBH != null and ZiXunHTBH != ''">
+				AND a.ZiXunHTBH like concat(concat('%',#{ZiXunHTBH}),'%')
+			</if>
+			<if test="DangABH != null and DangABH != ''">
+				AND a.DangABH like concat(concat('%',#{DangABH}),'%')
+			</if>
+			<if test="sqlMap.delFlag !=null and sqlMap.delFlag!=''">
+				${sqlMap.delFlag}
+			</if>
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				and (a.company_id = #{currentUser.company.id} ${sqlMap.dsf})
+			</if>
+		</where>
+	</select>
+
+
+	<insert id="insert">
+		insert into project_reported_import (
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			ProjectName,
+			xmFZR,
+			WeiTuoDW,
+			LianXiDH,
+			TouZiXZ,
+			ProjectType,
+			HeTongLeiXing,
+			ZiXunHTBH,
+			DangABH,
+			BaoGaoShuQianFaDate,
+			ZiXunShouRu,
+			zaoJiaShiZhengHao,
+			s1,
+			s2,
+			s3,
+			PorjectStruct,
+			FloorUp,
+			FloorDown,
+			GCGMValue,
+			GCGMUnit,
+			PorjectUse,
+			ZiXunBDE,
+			ZiXunBDETJ,
+			ZiXunBDEAZ,
+			CalTJPercent,
+			CalAZPercent,
+			CalZZJUnit,
+			CalZZJTJUnit,
+			CalZZJAZUnit,
+			HeTongJia,
+			SongShenJia,
+			ShenDingJia,
+			JingHeJianE,
+			JingHeJianLv,
+			GCYL,
+			SNYL,
+			YBTYL,
+			RGGRYL,
+			GCYLPerUnit,
+			SNYLPerUnit,
+			YBTYLPerUnit,
+			RGGRYLPerUnit,
+			TJProject,
+			ZSProject,
+			AZProject,
+			SZProject,
+			FGYLProject,
+			QTProjec,
+			report_status,
+			upload_time,
+			process_instance_id,
+			company_id,
+			office_id,
+			project_id,
+			projectCode,
+			projectSection,
+			projectClassify,
+			GCGMValueParameter,
+			contentsInclude,
+			projectTotalInvestment,
+			beginDate,
+			endDate,
+			archivesNo,
+			advisoryIncome,
+			projectSupervisionIncome,
+			tenderingAgencyIncome,
+			designIncome,
+			otherIncome,
+			projectRecordId
+		)
+		values
+		  (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{ProjectName},
+			#{xmFZR},
+			#{WeiTuoDW},
+			#{LianXiDH},
+			#{TouZiXZ},
+			#{ProjectType},
+			#{HeTongLeiXing},
+			#{ZiXunHTBH},
+			#{DangABH},
+			#{BaoGaoShuQianFaDate},
+			#{ZiXunShouRu},
+			#{zaoJiaShiZhengHao},
+			#{s1},
+			#{s2},
+			#{s3},
+			#{PorjectStruct},
+			#{FloorUp},
+			#{FloorDown},
+			#{GCGMValue},
+			#{GCGMUnit},
+			#{PorjectUse},
+			#{ZiXunBDE},
+			#{ZiXunBDETJ},
+			#{ZiXunBDEAZ},
+			#{CalTJPercent},
+			#{CalAZPercent},
+			#{CalZZJUnit},
+			#{CalZZJTJUnit},
+			#{CalZZJAZUnit},
+			#{HeTongJia},
+			#{SongShenJia},
+			#{ShenDingJia},
+			#{JingHeJianE},
+			#{JingHeJianLv},
+			#{GCYL},
+			#{SNYL},
+			#{YBTYL},
+			#{RGGRYL},
+			#{GCYLPerUnit},
+			#{SNYLPerUnit},
+			#{YBTYLPerUnit},
+			#{RGGRYLPerUnit},
+			#{TJProject},
+			#{ZSProject},
+			#{AZProject},
+			#{SZProject},
+			#{FGYLProject},
+			#{QTProjec},
+			#{reportStatus},
+			now(),
+			#{processInstanceId},
+			#{company.id},
+			#{office.id},
+			#{projectId},
+			#{projectCode},
+			#{projectSection},
+			#{projectClassify},
+			#{GCGMValueParameter},
+			#{contentsInclude},
+			#{projectTotalInvestment},
+			#{beginDate},
+			#{endDate},
+			#{archivesNo},
+			#{advisoryIncome},
+			#{projectSupervisionIncome},
+			#{tenderingAgencyIncome},
+			#{designIncome},
+			#{otherIncome},
+			#{projectRecordId}
+		  )
+	</insert>
+
+	<update id="update">
+		update
+		project_reported_import
+		set
+		update_by = #{updateBy.id},
+		update_date = #{updateDate},
+		remarks = #{remarks},
+		ProjectName = #{ProjectName},
+		xmFZR = #{xmFZR},
+		WeiTuoDW = #{WeiTuoDW},
+		LianXiDH = #{LianXiDH},
+		TouZiXZ = #{TouZiXZ},
+		ProjectType = #{ProjectType},
+		HeTongLeiXing = #{HeTongLeiXing},
+		ZiXunHTBH = #{ZiXunHTBH},
+		DangABH = #{DangABH},
+		BaoGaoShuQianFaDate = #{BaoGaoShuQianFaDate},
+		ZiXunShouRu = #{ZiXunShouRu},
+		zaoJiaShiZhengHao = #{zaoJiaShiZhengHao},
+		s1 = #{s1},
+		s2 = #{s2},
+		s3 = #{s3},
+		PorjectStruct = #{PorjectStruct},
+		FloorUp = #{FloorUp},
+		FloorDown = #{FloorDown},
+		GCGMValue = #{GCGMValue},
+		GCGMUnit = #{GCGMUnit},
+		PorjectUse = #{PorjectUse},
+		ZiXunBDE = #{ZiXunBDE},
+		ZiXunBDETJ = #{ZiXunBDETJ},
+		ZiXunBDEAZ = #{ZiXunBDEAZ},
+		CalTJPercent = #{CalTJPercent},
+		CalAZPercent = #{CalAZPercent},
+		CalZZJUnit = #{CalZZJUnit},
+		CalZZJTJUnit = #{CalZZJTJUnit},
+		CalZZJAZUnit = #{CalZZJAZUnit},
+		HeTongJia = #{HeTongJia},
+		SongShenJia = #{SongShenJia},
+		ShenDingJia = #{ShenDingJia},
+		JingHeJianE = #{JingHeJianE},
+		JingHeJianLv = #{JingHeJianLv},
+		GCYL = #{GCYL},
+		SNYL = #{SNYL},
+		YBTYL = #{YBTYL},
+		RGGRYL = #{RGGRYL},
+		GCYLPerUnit = #{GCYLPerUnit},
+		SNYLPerUnit = #{SNYLPerUnit},
+		YBTYLPerUnit = #{YBTYLPerUnit},
+		RGGRYLPerUnit = #{RGGRYLPerUnit},
+		TJProject = #{TJProject},
+		ZSProject = #{ZSProject},
+		AZProject = #{AZProject},
+		SZProject = #{SZProject},
+		FGYLProject = #{FGYLProject},
+		QTProjec = #{QTProjec},
+		upload_time = now()
+		<if test="reportStatus !=null and reportStatus !=''">
+			,report_status = #{reportStatus}
+		</if>
+		,projectCode = #{projectCode},
+		projectSection = #{projectSection},
+		projectClassify = #{projectClassify},
+		GCGMValueParameter = #{GCGMValueParameter},
+		contentsInclude = #{contentsInclude},
+		projectTotalInvestment = #{projectTotalInvestment},
+		beginDate = #{beginDate},
+		endDate = #{endDate},
+		archivesNo = #{archivesNo},
+		advisoryIncome = #{advisoryIncome},
+		projectSupervisionIncome = #{projectSupervisionIncome},
+		tenderingAgencyIncome = #{tenderingAgencyIncome},
+		designIncome = #{designIncome},
+		otherIncome = #{otherIncome},
+		projectRecordId = #{projectRecordId}
+		where id = #{id}
+	</update>
+
+
+	<update id="updateProcessIdAndStatus" >
+        UPDATE  project_reported_import SET
+        process_instance_id = #{processInstanceId},
+        report_status = #{reportStatus}
+        WHERE id = #{id}
+    </update>
+
+	<update id="updateStatusById">
+        UPDATE project_reported_import SET
+        report_status = #{reportStatus}
+        WHERE id = #{id}
+    </update>
+
+	<select id="getByDangABH" resultType="java.lang.Integer">
+		select count(1) from project_reported_import where DangABH = #{dangABH}
+	</select>
+
+</mapper>

+ 4 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsReported.xml

@@ -424,6 +424,10 @@
 		delete from rural_reported_consultant where reportedId = #{id}
 	</delete>
 
+	<delete id="deleteConsultantImport">
+		delete from rural_reported_consultant where reportedId = #{id}
+	</delete>
+
 	<update id="updateStatusById">
         UPDATE rural_project_records_reported SET
         report_status = #{reportStatus}

二進制
src/main/webapp/dot/招标项目上报导入模板.xlsx


+ 5 - 0
src/main/webapp/webpage/modules/projectrecord/projectRecordsList.jsp

@@ -379,6 +379,9 @@
 							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="noLockProject"> 解除锁定</button>
 						</shiro:hasPermission>
 						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+						<div class=" layui-btn-sm" style="float: right;width: 300px">
+							<span style="color: red">咨询营业收入:${moneyAll}(万元)</span>
+						</div>
 					</div>
 <%--					<shiro:hasPermission name="project:projectRecords:add">--%>
 <%--						<table:addRow url="${ctx}/project/projectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->--%>
@@ -437,6 +440,7 @@
                 ,{field:'client',align:'center', title: '委托方',  width:150,templet:function(d){
                         return "<span title=\"" + d.client + "\">" + d.client + "</span>";
                     }}
+                ,{field:'ziXunShouRu',align:'center', title: '咨询营业收入(万元)',  width:120}
                 ,{field:'createName',align:'center', title: '创建人',  width:80}
                 ,{field:'createDate',align:'center', title: '创建日期',  width:80}
                 ,{align:'center', title: '状态',  width:90,templet:function(d){
@@ -532,6 +536,7 @@
                     ,"procId":"${projectRecords.processInstanceId}"
                     ,"reportedProcessInstanceId":"${projectRecords.reportedProcessInstanceId}"
 					,"reportedState":"${projectRecords.reportedState}"
+					,"ziXunShouRu":"${projectRecords.ziXunShouRu}"
                     <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
                     <shiro:hasPermission name="project:projectRecords:del">,"candel":	<c:choose><c:when test="${projectRecords.projectStatus == 1 or projectRecords.projectStatus == 3 or projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
                     <shiro:hasPermission name="project:projectRecords:edit">,"canedit1":	<c:choose><c:when test="${projectRecords.projectStatus == 1 }">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>

+ 816 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/projectReportedImportList.jsp

@@ -0,0 +1,816 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目登记</title>
+	<meta name="decorator" content="default"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
+    <style>
+        .layui-table th{
+            font-size: 14px;
+            /*表头内容居中显示*/
+            text-align: center;
+        }
+		.pid{
+			font-size:14px;
+			font-weight:400;
+		}
+    </style>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+        function openDialog(title,url,width,height,target) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                skin: 'three-btns',
+                btn: ['送审', '暂存', '关闭'],
+                /*yes: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+
+                    if (iframeWin.contentWindow.doSubmit()) {
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+
+                },*/
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target,buttons) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    if(split.length==2){return}
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+		function openDialogreReportSwitch(title,url,width,height,target,buttons) {
+
+			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+				width = 'auto';
+				height = 'auto';
+			} else {//如果是PC端,根据用户设置的width和height显示。
+
+			}
+			var split = buttons.split(",");
+			$.ajax({
+				url: "${ctx}/ruralProject/ruralCostProjectMessage/getReportSwitch",
+				success: function (data) {
+					if (data){
+						top.layer.open({
+							type: 2,
+							area: [width, height],
+							title: title,
+							maxmin: true, //开启最大化最小化按钮
+							skin: 'three-btns',
+							content: url,
+							btn: split,
+							btn1: function(index, layero){
+								var body = top.layer.getChildFrame('body', index);
+								var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+								var inputForm = body.find('#inputForm');
+								var top_iframe;
+								if(target){
+									top_iframe = target;//如果指定了iframe,则在改frame中跳转
+								}else{
+									top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+								}
+								inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+								if(iframeWin.contentWindow.doSubmit(1) ){
+									// top.layer.close(index);//关闭对话框。
+									setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+								}
+							},
+							btn2:function(index,layero){
+								if(split.length==2){return}
+								var body = top.layer.getChildFrame('body', index);
+								var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+								var inputForm = body.find('#inputForm');
+								var top_iframe;
+								if(target){
+									top_iframe = target;//如果指定了iframe,则在改frame中跳转
+								}else{
+									top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+								}
+								inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+								if(iframeWin.contentWindow.doSubmit(2) ){
+									// top.layer.close(index);//关闭对话框。
+									setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+								}else {
+									return false;
+								}
+							},
+							btn3: function (index) {
+							}
+						});
+					}else{
+						top.layer.msg("上报功能已关闭", {icon: 0});
+					}
+				}
+			});
+		}
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+		</div>
+		<div class="full-width fl">
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="projectReportedImport" action="${ctx}/project/projectReportedImport/" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="ProjectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">合同编号:</label>
+							<div class="layui-input-block">
+								<form:input path="ZiXunHTBH" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<div class="layui-btn-group search-spacing">
+									<button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
+									<button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
+								</div>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+						<div class="layui-item query athird ">
+							<label class="layui-form-label double-line">造价记录编号:</label>
+							<div class="layui-input-block">
+								<form:input path="DangABH" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+							<%--<div class="layui-item query athird ">
+                                <label class="layui-form-label">创建时间:</label>
+                                <div class="layui-input-block readOnlyFFF">
+                                    <input id="beginDate" name="beginDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+                                           value="<fmt:formatDate value="${projectRecords.beginDate}" pattern="yyyy-MM-dd"/>"/>
+                                    </input>
+                                    <span class="group-sep">-</span>
+                                    <input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+                                           value="<fmt:formatDate value="${projectRecords.endDate}" pattern="yyyy-MM-dd"/>"/>
+                                    </input>
+                                </div>
+                            </div>
+                            <div class="layui-item query athird ">
+                                <label class="layui-form-label">状态:</label>
+                                <div class="layui-input-block">
+                                    <form:select path="projectStatus" class=" form-control  simple-select">
+                                        <form:option value="" label=""/>
+                                        <form:options items="${fns:getDictList('audit_state')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                    </form:select>
+                                </div>
+                            </div>--%>
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<div class="layui-btn-group">
+						<shiro:hasPermission name="project:projectReportedImport:add">
+							<table:addRow url="${ctx}/project/projectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->
+						</shiro:hasPermission>
+						<shiro:hasPermission name="project:projectReportedImport:del">
+							<%--<table:delRow url="${ctx}/project/projectRecords/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->--%>
+						</shiro:hasPermission>
+
+						<shiro:hasPermission name="project:projectReportedImport:import">
+							<table:importExcel url="${ctx}/project/projectReportedImport/import"></table:importExcel><!-- 导入按钮 -->
+						</shiro:hasPermission>
+
+						<shiro:hasPermission name="project:projectReportedImport:export">
+							<table:exportExcel url="${ctx}/project/projectRecords/export"></table:exportExcel><!-- 导出按钮 -->
+						</shiro:hasPermission>
+						<shiro:hasPermission name="project:projectRecords:lockProject">
+							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="lockProject"> 锁定</button>
+						</shiro:hasPermission>
+						<shiro:hasPermission name="project:projectRecords:noLockProject">
+							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="noLockProject"> 解除锁定</button>
+						</shiro:hasPermission>
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+						<div class=" layui-btn-sm" style="float: right;width: 300px">
+							<span style="color: red">咨询营业收入:${moneyAll}(万元)</span>
+						</div>
+					</div>
+
+                    <div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+
+<script>
+
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+			,id:"checkboxTable"
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+				{checkbox: true, fixed: true},
+                {field:'index',align:'center', title: '序号',width:60}
+                ,{field:'ProjectName',align:'center', title: '咨询项目名称',minWidth:200,templet:function(d){
+						return "<a class=\"attention-info\" title=\"" + d.ProjectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectReportedImport/view?id=" + d.id +"','95%', '95%')\">" + d.ProjectName + "</a>";
+					}}
+                ,{field:'ziXunHTBH',align:'center', title: '合同编号',minWidth:150}
+                ,{field:'WeiTuoDW', align:'center',title: '委托单位',minWidth:200}
+                ,{field:'LianXiDH', align:'center',title: '委托单位电话',minWidth:200}
+                ,{field:'DangABH', align:'center',title: '造价记录编号',minWidth:200}
+				,{field:'BaoGaoShuQianFaDate',align:'center', title: '出具咨询报告日期',  width:180}
+				,{field:'ZiXunShouRu',align:'center', title: '造价咨询营业收入',  width:120}
+				,{field:'ZiXunBDE',align:'center', title: '咨询标的额',  width:100}
+                ,{field:'createName',align:'center', title: '创建人',  width:100}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:100}
+				,{align:'center', title: '上报',  width:100,templet:function(d){
+					var st = getReportedState(""+d.reportedState);
+					if(st.action)
+						var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportedProcess?processInstanceId=" + d.processInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+					else
+						var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+					return xml;
+				}}
+                ,{field:'op',align:'center',title:"操作",width:130,templet:function(d){
+                        ////对操作进行初始化
+                        var xml="<div class=\"layui-btn-group\">";
+                        if(d.canedit3 != undefined && d.canedit3 =="1")
+                        {
+							if(d.reportedState !=undefined && d.reportedState != null && d.reportedState !='' && d.reportedState !='0'){
+								if(d.reportedState == 1){
+									xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/project/projectRecords/updateReported?id=" +  d.id + " ','95%', '95%','','上报,暂存,关闭')\"  class=\"layui-btn layui-btn-xs  layui-bg-green\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 修改上报</a>";
+								}
+								if(d.reportedState == 2){
+									xml+="<a href=\"${ctx}/project/projectReportedImport/cancelInvalidateByReported?id=" + d.id + "&processInstanceId=" + d.processInstanceId + "\" onclick=\"return confirmx('确认要撤回该上报审批吗?', this.href)\" class=\"layui-btn layui-btn-xs  layui-bg-red\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 撤回上报</a>";
+								}
+								/*撤回修改*/
+								if(d.reportedState == 3){
+									xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/project/projectReportedImport/updateReported?id=" +  d.id + " ','95%', '95%','','上报,关闭')\"  class=\"layui-btn layui-btn-xs  layui-bg-green\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 修改上报</a>";
+								}
+								/*驳回修改*/
+								if(d.reportedState == 4){
+									//驳回操作
+									xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/project/projectReportedImport/reportedModify?id=" +  d.id + " ','95%', '95%','','上报,关闭')\"  class=\"layui-btn layui-btn-xs layui-bg-green\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 修改上报</a>";
+								}
+							}else{
+								xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/project/projectReportedImport/updateReported?id=" +  d.id + " ','95%', '95%','','上报,暂存,关闭')\"  class=\"layui-btn layui-btn-xs  layui-bg-blue\" > 上报</a>";
+							}
+
+                        }
+                        xml+="</div>"
+                        return xml;
+
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="projectRecords" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${projectRecords.id}"
+                    ,"ziXunHTBH":"${projectRecords.ziXunHTBH}"
+                    ,"ProjectName":"<c:out value="${projectRecords.projectName}" escapeXml="true"/>"
+					,"WeiTuoDW":"${projectRecords.weiTuoDW}"
+					,"LianXiDH":"${projectRecords.lianXiDH}"
+					,"DangABH":"${projectRecords.dangABH}"
+					,"BaoGaoShuQianFaDate":"${projectRecords.baoGaoShuQianFaDate}"
+					,"ZiXunShouRu":"${projectRecords.ziXunShouRu}"
+					,"ZiXunBDE":"${projectRecords.ziXunBDE}"
+					,"createName":"${projectRecords.createBy.name}"
+					,"reportedState":"${projectRecords.reportStatus}"
+					,"processInstanceId":"${projectRecords.processInstanceId}"
+					,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+                    <shiro:hasPermission name="project:projectReportedImport:edit">,"canedit3":<c:choose><c:when test="${fn:contains(projectRecords.createBy.id,fns:getUser().id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+		$("#lockProject").bind("click",function () {
+			//获得表格CheckBox已经选中的行的信息
+			var checkList = layui.table.checkStatus('checkboxTable').data;
+			//定义数组存放批量删除的行的id
+			var listId = [];
+			//进行遍历所有选中行数据,拿出每一行的id存储到数组中
+			$.each(checkList, function (i, data) {
+				listId.push(data.id);
+			});
+			if (listId.length <= 0) {
+				layer.msg("请选择需要锁定的项目信息", {icon: 2})
+			} else {
+				$("#searchForm").attr("action","${ctx}/project/projectRecords/lockProject?listId="+ listId);
+				$("#searchForm").submit();
+				layer.msg("锁定成功", {icon: 1})
+				return true;
+			}
+		});
+		$("#noLockProject").bind("click",function () {
+			$("#searchForm").attr("action","${ctx}/project/projectRecords/noLockProject");
+			$("#searchForm").submit();
+			layer.msg("解除锁定成功", {icon: 1})
+			return true;
+		});
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+<%--<script>
+    /*使用模块加载的方式 加载文件*/
+    layui.config({
+        base: '${ctx}/resoueces/css/layui/module/'
+    }).extend({
+        treetable: 'treetable-lay/treetable'
+    }).use(['layer', 'table', 'treetable'], function () {
+        var $ = layui.jquery;
+        var table = layui.table;
+        var layer = layui.layer;
+        var treetable = layui.treetable;
+
+        // 渲染表格
+        var renderTable = function () {
+        	var projectName = $("#projectName").val();
+        	var workContractInfoName = $("#workContractInfoName").val();
+        	var workContractInfoClientName = $("#workContractInfoClientName").val();
+        	if(undefined == workContractInfoName){
+				workContractInfoName = "";
+			}
+        	if(undefined == workContractInfoClientName){
+				workContractInfoClientName = "";
+			}
+            layer.load(2);
+            treetable.render({
+                treeColIndex: 1,//树形图标显示在第几列
+                treeSpid: 0,//最上级的父级id
+                treeIdName: 'permissionId',//id字段的名称
+                treePidName: 'pid',//pid字段的名称
+                treeDefaultClose: true,//是否默认折叠
+                treeLinkage: true,//父级展开时是否自动展开所有子级
+                elem: '#permissionTable',
+                url: '${ctx}/project/projectRecords/getProjectList?projectId=${projectRecords.id}&pageNo=${page.pageNo}&projectName='+$("#projectName").val()+'&leaderNameStr='+$("#leaderNameStr").val()+'&workContractInfo.name='+workContractInfoName+'&workContractInfo.client.name='+workContractInfoClientName+'&beginDate='+$("#beginDate").val()+'&endDate='+$("#endDate").val()+'&projectStatus='+$("#projectStatus").val(),
+                page: false,
+                cols: [[
+                    {type: 'numbers', align:'center', title: '序号' ,width:80},
+                    {field: 'projectId', title: '项目编号/项目阶段编号'},
+                    {field: 'projectName', align:'center', title: '项目名称/成果文件编号',templet:function(d){
+                    	if(0 == d.pid){
+							return "<a class=\"attention-info pid\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projectName + "</a>";
+						}else{
+							return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看成果文件名称', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportView&dictType="+d.dictType+"&id="+d.contentPId+"&parentIds="+d.parentIds+"&infoId="+d.id+"','95%', '95%')\">" + d.projectName + "</a>";
+						}
+						}},
+					{field: 'clientName', align:'center', title: '委托方/当前阶段',templet: function(d){
+							if(0 == d.pid){
+								return "<font style = 'font-size:14px;font-weight:500;'>"+d.clientName+"</font>";
+							}else{
+								return "<font>"+d.clientName+"</font>";
+							}
+						}},
+                    {field: 'projectLeader', align:'center', title: '项目负责人/工作内容',templet: function(d){
+							if(0 == d.pid){
+								return "<font style = 'font-size:14px;font-weight:500;'>"+d.projectLeader+"</font>";
+							}else{
+								return "<font>"+d.projectLeader+"</font>";
+							}
+						}},
+                    {field: 'projectRegistrant', align:'center', title: '登记人',templet: function(d){
+							if(0 == d.pid){
+								return "<font style = 'font-size:14px;font-weight:500;'>"+d.projectRegistrant+"</font>";
+							}else{
+								return "<font>"+d.projectRegistrant+"</font>";
+							}
+						}},
+                    {field: 'createDate', align:'center', title: '登记日期',width:100,templet: function(d){
+							var date=d.createDate;
+							date=date.replace(new RegExp(/-/gm) ,"/");
+
+							if(0 == d.pid){
+								return "<font style = 'font-size:14px;font-weight:500;'>"+layui.util.toDateString(date,'yyyy-MM-dd')+"</font>";
+							}else{
+								return "<font>"+layui.util.toDateString(date,'yyyy-MM-dd')+"</font>";
+							}
+						}},
+					{align:'center', title: '状态',  width:70,templet:function(d){
+							var st = getAuditState(""+d.projectStatus);
+							if(d.pid ==0){
+								if(st.action)
+									var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/project/projectRecords/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+								else
+									var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+								return xml;
+							}else if(d.pid !=0){
+								if(st.action)
+									var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/projectcontentinfo/projectcontentinfo/getProcessOne?id=" + d.id + "&projectReportData.id="+ d.id + "&type="+d.projectStatus+"','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+								else
+									var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+								return xml;
+							}else{
+								return '';
+							}
+						}},
+                    {templet: complain, align:'center', title: '操作',width:130}
+                ]],
+                done: function () {
+                    layer.closeAll('loading');
+                }
+            });
+        };
+
+        renderTable();
+
+        //触发三个button按钮
+        $('#btn-expand').click(function () {
+            treetable.expandAll('#permissionTable');
+        });
+
+        $('#btn-fold').click(function () {
+            treetable.foldAll('#permissionTable');
+        });
+
+        $('#btn-refresh').click(function () {
+            renderTable();
+        });
+
+
+        function complain(d){//操作中显示的内容
+			if(d.loginId == d.createId) {
+				if (0 == d.pid) {
+					if(1==d.projectStatus){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogres(\'暂存项目修改\', \'${ctx}/project/projectRecords/form?id=' + d.id +'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 修改</a>',
+							'<a href="${ctx}/project/projectRecords/delete?id='+d.id+'" onclick="return confirmx(\'确认要删除该项目信息吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+						].join('');
+					}
+					else if(2==d.projectStatus){
+						return [
+							'<a href="${ctx}/project/projectRecords/revoke?id='+d.id+ "&processInstanceId=" + d.procId +'" onclick="return confirmx(\'确认要撤回该项目审批吗?\', this.href)"   class="op-btn op-btn-cancel"><i class="glyphicon glyphicon-share-alt"></i> 撤回</a>',
+						].join('');
+					}
+					else if(3==d.projectStatus){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'撤回项目调整\', \'${ctx}/project/projectRecords/form?id=' + d.id +'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 修改</a>',
+							'<a href="${ctx}/project/projectRecords/delete?id='+d.id+'" onclick="return confirmx(\'确认要删除该项目信息吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+						].join('');
+					}
+					else if(4==d.projectStatus){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'驳回项目调整\', \'${ctx}/project/projectRecords/modify?id=' + d.id +'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 修改</a>',
+							'<a href="${ctx}/project/projectRecords/delete?id='+d.id+'" onclick="return confirmx(\'确认要删除该项目信息吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+						].join('');
+					}
+					else if(5==d.projectStatus){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'项目变更管理\', \'${ctx}/project/projectRecordsAlter/form?alterBeforeRecords.id=' + d.id +'\',\'95%\',\'95%\')" style=\"color: white;background: darkseagreen\" class="op-btn op-btn-op-btn-revert" ><i class="fa fa-edit"></i> 变更</a>',
+						].join('');
+					}else{
+						return[''].join('');
+					}
+				} else {
+					//
+					if(d.projectStatus == 1){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogres(\'修改报告\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=report&condition=record&dictType='+d.dictType+'&id='+d.contentPId+'&parentIds='+d.parentIds+'&projectReportData.id='+d.id+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 修改</a>',
+							'<a href="${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId='+d.id+'&id='+d.contentPId+'&type=8&condition=record" onclick="return confirmxRefresh(\'确认要删除该工作内容报告吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+						].join('');
+					}else if(d.projectStatus == 2){
+						return [
+							'<a href="${ctx}/projectcontentinfo/projectcontentinfo/cancelInvalidate?infoId='+d.id+'&id='+d.contentPId+'&type=8&condition=record" onclick="return confirmxRefresh(\'确认要撤回该工作内容报告吗?\', this.href)"   class="op-btn op-btn-cancel"><i class="glyphicon glyphicon-share-alt"></i> 撤回</a>',
+						].join('');
+					}else if(d.projectStatus == 3){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改报告\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=report&condition=record&dictType='+d.dictType+'&id='+d.contentPId+'&parentIds='+d.parentIds+'&projectReportData.id='+d.id+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 修改</a>',
+							'<a href="${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId='+d.id+'&id='+d.contentPId+'&type=8&condition=record" onclick="return confirmxRefresh(\'确认要删除该工作内容报告吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+						].join('');
+					}else if(d.projectStatus == 4){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改报告\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportModify&condition=record&dictType='+d.dictType+'&id='+d.contentPId+'&parentIds='+d.parentIds+'&projectReportData.id='+d.id+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 修改</a>',
+							'<a href="${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId='+d.id+'&id='+d.contentPId+'&type=8&condition=record" onclick="return confirmxRefresh(\'确认要删除该工作内容报告吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+						].join('');
+					}else if(d.projectStatus == 5){
+						return [
+							'<a href="javascript:void(0)" onclick="openDialogres(\'报告作废\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportInvalid&condition=record&dictType='+d.dictType+'&id='+d.contentPId+'&parentIds='+d.parentIds+'&projectReportData.id='+d.id+'\',\'95%\',\'95%\')" class="op-btn op-btn-invalid" ><i class="fa fa-trash-o"></i> 作废</a>',
+						].join('');
+					}else{
+						return[''].join('');
+					}
+				}
+			}else{
+				return[''].join('');
+			}
+        }
+        //监听工具条
+        table.on('tool(permissionTable)', function (obj) {
+            var data = obj.data;
+            var layEvent = obj.event;
+            if(data.permissionName!=null){
+                if (layEvent === 'del') {
+                    layer.msg('删除' + data.id);
+                } else if (layEvent === 'edit') {
+                    layer.msg('修改' + data.id);
+                }
+            }
+        });
+    });
+
+</script>
+<script>
+	function openDialogres(title,url,width,height,target){
+
+		if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+			width='auto';
+			height='auto';
+		}else{//如果是PC端,根据用户设置的width和height显示。
+
+		}
+		top.layer.open({
+			type: 2,
+			area: [width, height],
+			title: title,
+			skin: 'three-btns',
+			maxmin: true, //开启最大化最小化按钮
+			content: url ,
+			btn: ['提交','暂存','关闭'],
+			btn1: function(index, layero){
+				var body = top.layer.getChildFrame('body', index);
+				var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+				var inputForm = body.find('#inputForm');
+				var top_iframe;
+				if(target){
+					top_iframe = target;//如果指定了iframe,则在改frame中跳转
+				}else{
+					top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+				}
+				inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+				if(iframeWin.contentWindow.doSubmit(1) ){
+					//top.layer.close(index);//关闭对话框。
+					setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+				}
+			},
+			btn2:function(index,layero){
+				var body = top.layer.getChildFrame('body', index);
+				var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+				var inputForm = body.find('#inputForm');
+				var top_iframe;
+				if(target){
+					top_iframe = target;//如果指定了iframe,则在改frame中跳转
+				}else{
+					top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+				}
+				inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+				if(iframeWin.contentWindow.doSubmit(2) ){
+					// top.layer.close(index);//关闭对话框。
+					setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+				}
+				return false;
+			},
+			btn3: function(index){
+			}
+		});
+	}
+	function openDialogreAudit(title,url,width,height,target){
+
+		if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+			width='auto';
+			height='auto';
+		}else{//如果是PC端,根据用户设置的width和height显示。
+
+		}
+		top.layer.open({
+			type: 2,
+			area: [width, height],
+			title: title,
+			skin: 'three-btns',
+			maxmin: true, //开启最大化最小化按钮
+			content: url ,
+			btn: ['提交','关闭'],
+			btn1: function(index, layero){
+				var body = top.layer.getChildFrame('body', index);
+				var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+				var inputForm = body.find('#inputForm');
+				var top_iframe;
+				if(target){
+					top_iframe = target;//如果指定了iframe,则在改frame中跳转
+				}else{
+					top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+				}
+				inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+				if(iframeWin.contentWindow.doSubmit(1) ){
+					top.layer.close(index);//关闭对话框。
+					setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+				}
+			},
+			btn2: function(index){
+			}
+		});
+	}
+	// 确认对话框
+	function confirmxRefresh(mess, href){
+		top.layer.confirm(mess, {icon: 3, title:'系统提示'}, function(index){
+			//do something
+			if (typeof href == 'function') {
+				href();
+			}else{
+				resetTip(); //loading();
+				$.ajax({
+					url:href,
+					data:$('#loginForm').serialize(),
+					type:"post",
+					success:function(data){
+						if(data.status){
+							parent.layer.msg(data.msg,{icon:1});
+						}else {
+							parent.layer.msg(data.msg,{icon:2});
+						}
+						//parent.refreshTrees();
+						location = '${ctx}/project/projectRecords/list';
+					}
+				});
+			}
+			top.layer.close(index);
+		});
+		return false;
+	}
+</script>--%>
+</body>
+</html>

文件差異過大導致無法顯示
+ 1645 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedAudit.jsp


文件差異過大導致無法顯示
+ 1604 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedForm.jsp


文件差異過大導致無法顯示
+ 1584 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedModify.jsp


文件差異過大導致無法顯示
+ 1558 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/reportedView.jsp