Parcourir la source

管理员上报功能开发

user5 il y a 2 ans
Parent
commit
ce6ecee1ac
15 fichiers modifiés avec 7556 ajouts et 0 suppressions
  1. 41 0
      src/main/java/com/jeeplus/modules/projectrecord/dao/AdminProjectReportedImportDao.java
  2. 860 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/AdminProjectReportedImport.java
  3. 1284 0
      src/main/java/com/jeeplus/modules/projectrecord/service/AdminProjectReportedImportService.java
  4. 413 0
      src/main/java/com/jeeplus/modules/projectrecord/web/AdminProjectReportedImportController.java
  5. 8 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsReportedDao.java
  6. 103 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java
  7. 155 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/utils/RuralProjectReportedInfoUtil.java
  8. 133 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageAllController.java
  9. 462 0
      src/main/resources/mappings/modules/projectrecord/AdminProjectReportedImportDao.xml
  10. 4 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsReported.xml
  11. BIN
      src/main/webapp/dot/管理员上报导入模板.xlsx
  12. 1663 0
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/newReported/adminSubmitReportedProvincialStandingForm.jsp
  13. 820 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/adminProjectReportedImportList.jsp
  14. 1604 0
      src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/adminReportedForm.jsp
  15. 6 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/all/ruralProjectMessageAllList.jsp

+ 41 - 0
src/main/java/com/jeeplus/modules/projectrecord/dao/AdminProjectReportedImportDao.java

@@ -0,0 +1,41 @@
+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.AdminProjectReportedImport;
+import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
+import com.jeeplus.modules.sys.entity.Area;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author: 徐滕
+ * @create: 2021-12-27 09:50
+ **/
+@MyBatisDao
+public interface AdminProjectReportedImportDao extends CrudDao<AdminProjectReportedImport> {
+
+    /**
+     * 修改上报审批状态
+     * @param reported
+     */
+    void updateStatusById(AdminProjectReportedImport reported);
+
+    void updateProcessIdAndStatus(AdminProjectReportedImport reported);
+
+    String getListMoney(AdminProjectReportedImport reported);
+
+    /**
+     * 根据造价记录编号查询数量
+     * @param dangABH
+     * @return
+     */
+    Integer getByDangABH(String dangABH);
+
+    /**
+     * 根据父节点id和名称查询上报地区信息
+     * @param parentId
+     * @param name
+     * @return
+     */
+    Area getProjectReportedAreaByParentIdAndName(@Param("parentId") String parentId, @Param("name") String name);
+}

+ 860 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/AdminProjectReportedImport.java

@@ -0,0 +1,860 @@
+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 AdminProjectReportedImport extends ActEntity<AdminProjectReportedImport> {
+
+    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();	//附件信息
+
+    private String areaProvince;    //导入地区(外省、本省)
+    private String areaCity;    //导入地区(市)
+    private String areaDistrict;    //导入地区(区)
+    private String importProjectType;    //导入项目类型
+    private String projectMaster;    //导入项目负责人
+    private String projectConsultant;    //导入项目咨询员
+
+
+    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;
+    }
+
+    @ExcelField(title="工程所在省份", align=2, sort=9)
+    public String getAreaProvince() {
+        return areaProvince;
+    }
+
+    public void setAreaProvince(String areaProvince) {
+        this.areaProvince = areaProvince;
+    }
+    @ExcelField(title="工程所在地(市)", align=2, sort=10)
+    public String getAreaCity() {
+        return areaCity;
+    }
+
+    public void setAreaCity(String areaCity) {
+        this.areaCity = areaCity;
+    }
+    @ExcelField(title="工程所在地(区)", align=2, sort=11)
+    public String getAreaDistrict() {
+        return areaDistrict;
+    }
+
+    public void setAreaDistrict(String areaDistrict) {
+        this.areaDistrict = areaDistrict;
+    }
+    @ExcelField(title="项目类型", align=2, sort=12)
+    public String getImportProjectType() {
+        return importProjectType;
+    }
+
+    public void setImportProjectType(String importProjectType) {
+        this.importProjectType = importProjectType;
+    }
+
+    @ExcelField(title="咨询项目负责人", align=2, sort=13)
+    public String getProjectMaster() {
+        return projectMaster;
+    }
+
+    public void setProjectMaster(String projectMaster) {
+        this.projectMaster = projectMaster;
+    }
+    @ExcelField(title="专业咨询员", align=2, sort=14)
+    public String getProjectConsultant() {
+        return projectConsultant;
+    }
+
+    public void setProjectConsultant(String projectConsultant) {
+        this.projectConsultant = projectConsultant;
+    }
+
+}

Fichier diff supprimé car celui-ci est trop grand
+ 1284 - 0
src/main/java/com/jeeplus/modules/projectrecord/service/AdminProjectReportedImportService.java


+ 413 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/AdminProjectReportedImportController.java

@@ -0,0 +1,413 @@
+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.AdminProjectReportedImport;
+import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
+import com.jeeplus.modules.projectrecord.service.AdminProjectReportedImportService;
+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.ui.Model;
+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 javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.ConstraintViolationException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 全过程导入上报controller
+ * @author: 徐滕
+ * @create: 2021-12-27 09:46
+ **/
+@Controller
+@RequestMapping(value = "${adminPath}/project/adminProjectReportedImport")
+public class AdminProjectReportedImportController extends BaseController {
+
+    @Autowired
+    private AdminProjectReportedImportService projectReportedImportService;
+    @Autowired
+    private RuralProjectMessageService ruralProjectMessageS;
+    @Autowired
+    private ProjectEngineeringService engineeringService;
+    @Autowired
+    private RuralProjectMessageNewService ruralProjectMessageService;
+    @Autowired
+    private ActTaskService actTaskService;
+
+    @ModelAttribute
+    public AdminProjectReportedImport get(@RequestParam(required=false) String id) {
+        AdminProjectReportedImport entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectReportedImportService.get(id);
+        }
+        if (entity == null){
+            entity = new AdminProjectReportedImport();
+        }
+        return entity;
+    }
+
+    /**
+     * list列表
+     * @param projectReportedImport
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @RequiresPermissions("project:adminProjectReportedImport:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(AdminProjectReportedImport projectReportedImport, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        Page<AdminProjectReportedImport> page = projectReportedImportService.findPage(new Page<AdminProjectReportedImport>(request, response), projectReportedImport);
+
+        model.addAttribute("page", page);
+        model.addAttribute("moneyAll", projectReportedImportService.getMoneyAll(projectReportedImport));
+        return "modules/ruralprojectrecords/reported/import/adminProjectReportedImportList";
+    }
+
+
+    /**
+     * 下载导入项目数据模板
+     * @param response
+     * @param redirectAttributes
+     * @return
+     */
+    @RequiresPermissions("project:adminProjectReportedImport:import")
+    @RequestMapping(value = "import/template")
+    public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            String fileName = "管理员上报导入模板.xlsx";
+            List<AdminProjectReportedImport> list = Lists.newArrayList();
+            new ExportExcel("项目上报数据", AdminProjectReportedImport.class, 1).setDataList(list).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+ Global.getAdminPath()+"/project/adminProjectReportedImport/?repage";
+    }
+
+
+    /**
+     * 导入Excel数据
+     * @param file
+     * @param redirectAttributes
+     * @return
+     */
+    @RequiresPermissions("project:adminProjectReportedImport: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<AdminProjectReportedImport> list = ei.getDataList(AdminProjectReportedImport.class);
+            //数据处理
+            Map<String, Object> map = projectReportedImportService.disposeData(list);
+            Boolean success = (Boolean) map.get("success");
+            if(!success){
+                String message = (String) map.get("message");
+                addMessage(redirectAttributes, "导入项目失败!失败信息:"+message);
+                return "redirect:"+Global.getAdminPath()+"/project/adminProjectReportedImport/?repage";
+            }
+            list = (List<AdminProjectReportedImport>) map.get("data");
+            for (AdminProjectReportedImport projectReportedImport : list){
+                try{
+                    projectReportedImportService.saveImport(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/adminProjectReportedImport/?repage";
+    }
+
+
+    /**
+     * 项目上报
+     * @param projectReportedImport
+     * @return
+     */
+    @RequestMapping(value = "updateReported")
+    public String updateReported(AdminProjectReportedImport 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/adminReportedForm";
+    }
+
+    /**
+     * 保存报告并提交审核
+     * @param projectReportedImport
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = "saveReported")
+    public String saveReported(AdminProjectReportedImport 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()){//编辑表单保存
+            AdminProjectReportedImport t = projectReportedImportService.getRuralProjectRecordsReported(projectReportedImport.getId());;//从数据库取出记录的值
+            MyBeanUtils.copyBeanNotNull2Bean(projectReportedImport, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            str = projectReportedImportService.saveReportedInfo(t);
+        }else{//新增表单保存
+            str = projectReportedImportService.saveReportedInfo(projectReportedImport);
+        }
+
+
+        if (com.jeeplus.common.utils.StringUtils.isNotBlank(str)){
+            addMessage(redirectAttributes, "项目上报失败:"+str);
+        }else {
+            addMessage(redirectAttributes, "项目上报成功");
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/adminProjectReportedImport/?repage";
+    }
+
+
+
+    /**
+     * 报告归档:强制撤回
+     */
+    @RequestMapping("cancelInvalidateByReported")
+    public String cancelInvalidateByReported(AdminProjectReportedImport 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/adminProjectReportedImport/?repage";
+                }
+            }
+        }catch (Exception e){
+            addMessage(redirectAttributes, "强制撤回项目上报失败");
+            logger.error("强制撤回项目上报信息失败",e);
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/adminProjectReportedImport/?repage";
+    }
+
+
+
+    /**
+     * 项目上报
+     * @param projectReportedImport
+     * @return
+     */
+    @RequestMapping(value = "reportedModify")
+    public String reportedModify(AdminProjectReportedImport 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(AdminProjectReportedImport 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/adminProjectReportedImport/?repage";
+                }
+            }
+            projectReportedImportService.disposeList(reported);
+            AdminProjectReportedImport 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/adminProjectReportedImport/?repage";
+        }
+    }
+
+
+    /**
+     * 查看
+     * @param projectReportedImport
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "view")
+    public String view(AdminProjectReportedImport 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";
+    }
+
+    /**
+     * 删除
+     * @param projectReportedImport
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "delete")
+    public String delete(AdminProjectReportedImport projectReportedImport, Model model,RedirectAttributes redirectAttributes){
+        if(StringUtils.isNotBlank(projectReportedImport.getReportStatus())){
+
+            if("0".equals(projectReportedImport.getReportStatus()) || "1".equals(projectReportedImport.getReportStatus()) || "3".equals(projectReportedImport.getReportStatus()) || "4".equals(projectReportedImport.getReportStatus())){
+                projectReportedImportService.delete(projectReportedImport);
+            }else{
+                addMessage(redirectAttributes, "项目已上报,无法删除");
+                return "redirect:"+Global.getAdminPath()+"/project/adminProjectReportedImport/?repage";
+            }
+        }else{
+            projectReportedImportService.delete(projectReportedImport);
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/adminProjectReportedImport/?repage";
+    }
+}

+ 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.AdminProjectReportedImport;
 import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
 import com.jeeplus.modules.ruralprojectrecords.entity.ReportedConsultant;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
@@ -45,6 +46,13 @@ public interface RuralProjectRecordsReportedDao extends CrudDao<RuralProjectReco
      */
     int deleteConsultantImport(ProjectReportedImport reported);
 
+    /**
+     * 删除上报咨询员信息
+     * @param reported
+     * @return
+     */
+    int deleteConsultantAdminImport(AdminProjectReportedImport reported);
+
 
 
 

+ 103 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java

@@ -5556,4 +5556,107 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         ProjectMaterialDefectRecord deficiencyRemarks = dao.getDeficiencyRemarks(reportId);
         return deficiencyRemarks;
     }
+
+
+
+    /**
+     * 保存上报数据
+     * @param reported
+     */
+    @Transactional(readOnly = false)
+    public String adminSaveReportedInfo(RuralProjectRecordsReported reported) {
+        this.disposeList(reported);
+        reported.setS3(reported.getS3().replaceAll(",",""));
+        reported.setReportStatus(String.valueOf(ProjectStatusEnum.SIGNED.getValue()));
+        //查询是否已经上报项目信息
+        if (StringUtils.isBlank(reported.getId())){
+            reported.setCompany(UserUtils.getSelectCompany());
+            reported.setOffice(UserUtils.getSelectOffice());
+            reported.preInsert();
+            //将项目id设置为id
+            reported.setId(reported.getProjectId());
+            ruralProjectRecordsReportedDao.insert(reported);
+        }else{
+            reported.preUpdate();
+            ruralProjectRecordsReportedDao.update(reported);
+        }
+        //删除上报咨询员信息
+        ruralProjectRecordsReportedDao.deleteConsultant(reported);
+        //保存咨询员信息
+        for (ReportedConsultant info : reported.getReportedConsultantList()){
+            if (info.getZixunyuan() == null){
+                continue;
+            }
+            //添加项目上报id
+            info.setReportedId(reported.getId());
+            info.preInsert();
+            ruralProjectRecordsReportedDao.insertConsultant(info);
+        }
+
+        //保存附件信息
+        if(reported.getWorkAttachments().size()>0){
+            List<WorkClientAttachment> workAttachments = reported.getWorkAttachments();
+            for (WorkClientAttachment workClientAttachment: workAttachments) {
+                if (workClientAttachment.getId() == null){
+                    continue;
+                }
+                if (WorkClientAttachment.DEL_FLAG_NORMAL.equals(workClientAttachment.getDelFlag())){
+                    workClientAttachment.setAttachmentId(reported.getId());
+                    workClientAttachment.setAttachmentFlag("95");
+                    workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
+                    if (com.jeeplus.common.utils.StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())){
+                        workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
+                    }else{
+                        workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
+                    }
+                }else{
+                    workClientAttachmentDao.delete(workClientAttachment);
+                }
+            }
+        }
+
+        //启动审核
+        //信用代码id
+        String jsonUscCode = "{\"uscCode\": \"91320000746823994F\"";
+        Map map = RuralProjectReportedInfoUtil.reportedDataManage(reported);
+        String jsonUscData = JSONObject.toJSONString(map);
+        byte[] privateKey = org.apache.commons.codec.binary.Base64.decodeBase64(PRIVATE_KEY);
+        //客户拿到密钥将自己的数据 jsonUscData 进行非对称加密。
+        byte[] encryptByPrivateKey = new byte[0];
+        try {
+            encryptByPrivateKey = Rsatool.encryptByPrivateKey(jsonUscData.getBytes(), privateKey);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //将唯一标志和非对称加密后数据采用对称加密,方便传到服务段解析,并获得非对称的公钥来解密客户用密钥加密的数据
+        String encryString = jsonUscCode + ",\"data\":\"" + Base64.encodeBase64String(encryptByPrivateKey) + "\"}";
+        String encryptByAes = null;
+        try {
+            encryptByAes = Aestool.Encrypt(encryString, AES_KEY);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //测试接口
+        //String url = "http://comp.jszj.com.cn:8031/api/testAddProject";
+        //正式接口
+        String url = REPORTEDURL;
+        //发送请求
+        String returnResult = HttpPostTool.doPost(url, encryptByAes);
+        HashMap hashMap = JSON.parseObject(returnResult, HashMap.class);
+        if(!"1".equals(hashMap.get("code"))){
+            return "上报失败:" + hashMap.get("msg").toString();
+        }
+        //修改项目上报表中状态
+        reported.setAccomplishDate(new Date());
+        reported.setReportStatus(String.valueOf(ProjectStatusEnum.SIGNED.getValue()));
+
+        //修改项目表中上报状态
+        //修改项目信息中的上报状态
+        RuralProjectRecords records = new RuralProjectRecords();
+        records.setId(reported.getId());
+        records.setReportedState(String.valueOf(ProjectStatusEnum.SIGNED.getValue()));
+        dao.updateReported(records);
+
+        return null;
+    }
 }

+ 155 - 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.AdminProjectReportedImport;
 import com.jeeplus.modules.projectrecord.entity.ProjectReportedImport;
 import com.jeeplus.modules.ruralprojectrecords.entity.ReportedConsultant;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
@@ -361,4 +362,158 @@ public class RuralProjectReportedInfoUtil {
         System.out.println(s);
         return map;
     }
+
+
+    /**
+     * 项目上报数据处理(转map)
+     * @param reported
+     * @return
+*/
+    public static Map<String ,Object> reportedDataManageAdminImport(AdminProjectReportedImport 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;
+    }
 }

+ 133 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageAllController.java

@@ -8,6 +8,8 @@ import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.historical.entity.HistoricalData;
 import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
 import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
@@ -17,10 +19,12 @@ import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.entity.*;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageAllService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Area;
 import com.jeeplus.modules.sys.entity.Dict;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.entity.User;
@@ -32,6 +36,8 @@ import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
 import jersey.repackaged.com.google.common.collect.Lists;
 import org.activiti.engine.HistoryService;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -68,6 +74,8 @@ public class RuralProjectMessageAllController extends BaseController {
     private RuralProjectMessageService ruralProjectMessageService;
     @Autowired
     private ProjectEngineeringService engineeringService;
+    @Autowired
+    private ActTaskService actTaskService;
 
     @ModelAttribute
     public RuralProjectRecords get(@RequestParam(required=false) String id) {
@@ -633,4 +641,129 @@ public class RuralProjectMessageAllController extends BaseController {
 
 
 
+    /**
+     * 项目上报(admin)
+     * @param projectRecords
+     * @return
+     */
+    @RequestMapping(value = "adminSubmitReportedProvincialStanding")
+    public String adminSubmitReportedProvincialStanding(RuralProjectRecords projectRecords, Model model) {
+        //查询上报信息表中是否含有数据,没有则进行获取基础数据
+        RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
+
+        if(reported == null){
+            RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectRecords.getId());
+            projectRecordsService.queryProjectDetail(records);
+            Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectRecords.getId());
+            ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
+            records.setReportData(projectReportData);
+            reported = ruralProjectMessageService.disposeData(records);
+
+            //合同价送审价审定价处理
+            if(StringUtils.isNotBlank(reported.getHeTongJia())){
+                Double heTongJia = Double.valueOf(reported.getHeTongJia())/10000;
+                reported.setHeTongJia(String.format("%.2f", heTongJia));
+            }
+            if(StringUtils.isNotBlank(reported.getSongShenJia())){
+                Double songShenJia = Double.valueOf(reported.getSongShenJia())/10000;
+                reported.setSongShenJia(String.format("%.2f", songShenJia));
+            }
+            if(StringUtils.isNotBlank(reported.getShenDingJia())){
+                Double shenDingJia = Double.valueOf(reported.getShenDingJia())/10000;
+                reported.setShenDingJia(String.format("%.2f", shenDingJia));
+            }
+            if(StringUtils.isNotBlank(reported.getSongShenJia()) && StringUtils.isNotBlank(reported.getShenDingJia())){
+                Double jingHeJianE = Double.valueOf(reported.getShenDingJia())-Double.valueOf(reported.getSongShenJia());
+                reported.setJingHeJianE(String.format("%.2f", jingHeJianE));
+                Double jingHeJianLv = jingHeJianE/Double.valueOf(reported.getSongShenJia()) * 100;
+                if(jingHeJianLv.isNaN()){
+                    jingHeJianLv = 0D;
+                }
+                reported.setJingHeJianLv(String.format("%.2f", jingHeJianLv));
+            }
+
+            ruralProjectMessageService.disposeProjectRecords(records,reported);
+            //将质量复核的咨询收入添加到上报中
+            reported.setZiXunShouRu(projectReportData.getZiXunShouRu());
+        }
+        //根据上报id查询上报咨询员的信息
+        List<RuralReportConsultant> reportedConsultants=ruralProjectMessageService.getReportedConsultantsList(reported.getId());
+        //查询报告咨询员的信息
+        List<RuralReportConsultant> consultants=ruralProjectMessageService.getConsultantsList(projectRecords.getId());
+        List<RuralReportConsultant> consultantList = com.google.common.collect.Lists.newArrayList();
+        if(reportedConsultants.size() == 0){
+            //如果上报的咨询员信息为空 则处理报告咨询员信息
+            consultantList = ruralProjectMessageService.disposeConsultant(consultants, projectRecords);
+        }else{
+            //对上报的咨询员进行处理
+            consultantList = ruralProjectMessageService.disposereportedConsultant(reportedConsultants);
+        }
+        RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(reported.getProjectId());
+
+        if(StringUtils.isNotBlank(reported.getProcessInstanceId())){
+            ProcessInstance processInstance = actTaskService.getProcIns(reported.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);
+                reported.setAct(act);
+            }
+        }
+        /*RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(reported.getProjectId());
+        //根据上报id查询上报咨询员的信息
+        List<RuralReportConsultant> reportedConsultants=ruralProjectMessageS.getReportedConsultantsList(reported.getId());
+        //对上报的咨询员进行处理
+        List<RuralReportConsultant> consultantList = ruralProjectMessageS.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("ruralProjectRecords", records);
+        model.addAttribute("consultantInfo", consultantList);
+        model.addAttribute("ruralProjectRecordsReported", reported);
+        return "modules/ruralprojectrecords/cost/newReported/adminSubmitReportedProvincialStandingForm";
+    }
+
+
+    /**
+     * 保存报告并提交审核
+     * @param reported
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = "adminSaveReported")
+    public String adminSaveReported(RuralProjectRecordsReported reported,  RedirectAttributes redirectAttributes) throws Exception {
+        if(!BaseController.REPORTSWITCH){
+            addMessage(redirectAttributes, "项目上报失败:上报管理员已关闭上报模块");
+            return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessageAll/?repage";
+        }
+        String str = "";
+        if(!reported.getIsNewRecord()){//编辑表单保存
+            ruralProjectMessageService.disposeList(reported);
+            RuralProjectRecordsReported t = ruralProjectMessageService.getRuralProjectRecordsReportedById(reported.getId());;//从数据库取出记录的值
+            MyBeanUtils.copyBeanNotNull2Bean(reported, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            str = ruralProjectMessageService.adminSaveReportedInfo(t);
+        }else{//新增表单保存
+            str = ruralProjectMessageService.adminSaveReportedInfo(reported);
+        }
+
+
+        if (StringUtils.isNotBlank(str)){
+            addMessage(redirectAttributes, "项目上报失败:"+str);
+        }else {
+            addMessage(redirectAttributes, "项目上报成功");
+        }
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessageAll/?repage";
+    }
+
+
+
 }

+ 462 - 0
src/main/resources/mappings/modules/projectrecord/AdminProjectReportedImportDao.xml

@@ -0,0 +1,462 @@
+<?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.AdminProjectReportedImportDao">
+
+	<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="AdminProjectReportedImport" >
+		SELECT
+			<include refid="projectRecordsColumns"/>
+		,pra.name as "city"
+		,pra2.name as "county"
+		,pra3.name as "province"
+        FROM project_reported_admin_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="AdminProjectReportedImport" >
+		SELECT
+		<include refid="projectRecordsColumns"/>
+		FROM project_reported_admin_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_admin_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_admin_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_admin_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_admin_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_admin_import SET
+        process_instance_id = #{processInstanceId},
+        report_status = #{reportStatus}
+        WHERE id = #{id}
+    </update>
+
+	<update id="updateStatusById">
+        UPDATE project_reported_admin_import SET
+        report_status = #{reportStatus}
+        WHERE id = #{id}
+    </update>
+
+	<select id="getByDangABH" resultType="java.lang.Integer">
+		select count(1) from project_reported_admin_import where DangABH = #{dangABH}
+	</select>
+
+	<delete id="delete">
+		delete from project_reported_admin_import where id = #{id}
+	</delete>
+
+	<select id="getProjectReportedAreaByParentIdAndName" resultType="Area">
+		select
+		  id,
+		  parent_id as "pid",
+		  `name`,
+		  sort,
+		  code,
+		  `type`,
+		  remarks
+		from
+		  project_reported_area
+		where
+		del_flag = 0
+		and parent_id = #{parentId}
+		and `name` LIKE concat('%',#{name},'%')
+	</select>
+
+</mapper>

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

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

BIN
src/main/webapp/dot/管理员上报导入模板.xlsx


Fichier diff supprimé car celui-ci est trop grand
+ 1663 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/newReported/adminSubmitReportedProvincialStandingForm.jsp


+ 820 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/adminProjectReportedImportList.jsp

@@ -0,0 +1,820 @@
+<%@ 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="adminProjectReportedImport" action="${ctx}/project/adminProjectReportedImport/" 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:adminProjectReportedImport:add">
+							<table:addRow url="${ctx}/project/projectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->
+						</shiro:hasPermission>
+						<shiro:hasPermission name="project:adminProjectReportedImport:del">
+							<%--<table:delRow url="${ctx}/project/projectRecords/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->--%>
+						</shiro:hasPermission>
+
+						<shiro:hasPermission name="project:adminProjectReportedImport:import">
+							<table:importExcel url="${ctx}/project/adminProjectReportedImport/import"></table:importExcel><!-- 导入按钮 -->
+						</shiro:hasPermission>
+
+						<shiro:hasPermission name="project:adminProjectReportedImport: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/adminProjectReportedImport/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/adminProjectReportedImport/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>";
+									xml+="<a href=\"${ctx}/project/adminProjectReportedImport/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs btn-danger btn-xs layui-bg-red\" > 删除</a>";
+								}
+								if(d.reportedState == 2){
+									xml+="<a href=\"${ctx}/project/adminProjectReportedImport/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/adminProjectReportedImport/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>";
+									xml+="<a href=\"${ctx}/project/adminProjectReportedImport/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs btn-danger btn-xs layui-bg-red\" > 删除</a>";
+								}
+								/*驳回修改*/
+								if(d.reportedState == 4){
+									//驳回操作
+									xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/project/adminProjectReportedImport/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>";
+									xml+="<a href=\"${ctx}/project/adminProjectReportedImport/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs btn-danger btn-xs layui-bg-red\" > 删除</a>";
+								}
+							}else{
+								xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/project/adminProjectReportedImport/updateReported?id=" +  d.id + " ','95%', '95%','','上报,关闭')\"  class=\"layui-btn layui-btn-xs  layui-bg-blue\" > 上报</a>";
+								xml+="<a href=\"${ctx}/project/adminProjectReportedImport/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs btn-danger btn-xs layui-bg-red\"  > 删除</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:adminProjectReportedImport: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>

Fichier diff supprimé car celui-ci est trop grand
+ 1604 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/reported/import/adminReportedForm.jsp


+ 6 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/all/ruralProjectMessageAllList.jsp

@@ -1176,6 +1176,12 @@
                             }
                         </shiro:hasPermission>
 
+						<shiro:hasPermission name="ruralProject:ruralCostProjectMessage:reportedProvincialStanding">
+						if(d.reportedState == 10){
+							xml+="<a href=\"#\" onclick=\"openDialogreReportSwitch('上报管理', '${ctx}/ruralProject/ruralProjectMessageAll/adminSubmitReportedProvincialStanding?id=" +  d.id + " ','95%', '95%','','上报,关闭')\"  class=\"layui-btn layui-btn-xs layui-bg-green\" style='margin-top: 5px;margin-bottom: 5px;' > 提交省站</a>";
+						}
+						</shiro:hasPermission>
+
 
 
 						xml+="</div>";