diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/XmpjqdController.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/XmpjqdController.java
index 342c20b..127c046 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/XmpjqdController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/XmpjqdController.java
@@ -68,7 +68,7 @@ public class XmpjqdController extends BaseController {
      */
     @ApiOperation(value = "通过主键查询单条项目画像",response = XmhxResponse.class)
     @GetMapping("/oneXmhx/{id}")
-    public AjaxResult oneXmhx(@PathVariable Serializable id) {
+    public AjaxResult oneXmhx(@PathVariable Long id) {
         return success(xmpjqdService.oneXmhx(id));
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/ZwStatsController.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/ZwStatsController.java
index 6ea103f..f88684c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/ZwStatsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/controller/ZwStatsController.java
@@ -166,9 +166,42 @@ public class ZwStatsController extends BaseController {
         dt.put("{{currentBuilding1}}",allProjectResponse.getCurrentBuilding1());
         dt.put("{{currentBuilding2}}",allProjectResponse.getCurrentBuilding2());
         dt.put("{{currentBuilding3}}",allProjectResponse.getCurrentBuilding3());
-
-//        String fatherFile = fileAddress + "/out.docx";
-//        FileUtil.newFile(fatherFile);
+        ribbon.forEach(x->{
+            switch (x.getSsgnq()) {
+                case "高端制造与国际贸易区":
+                    dt.put("{{gn1}}",x.getCount());
+                    break;
+                case "阳澄湖半岛旅游度假区":
+                    dt.put("{{gn2}}",x.getCount());
+                    break;
+                case "金鸡湖商务区":
+                    dt.put("{{gn3}}",x.getCount());
+                    break;
+                case "苏相合作区":
+                    dt.put("{{gn4}}",x.getCount());
+                    break;
+                case "独墅湖科教创新区":
+                    dt.put("{{gn5}}",x.getCount());
+                    break;
+                default:
+                    break;
+            }
+        });
+        investors.forEach(x->{
+            switch (x.getSsgnq()) {
+                case "国企":
+                    dt.put("{{tz1}}",x.getCount());
+                    break;
+                case "民营企业":
+                    dt.put("{{tz2}}",x.getCount());
+                    break;
+                case "外资企业":
+                    dt.put("{{tz3}}",x.getCount());
+                    break;
+                default:
+                    break;
+            }
+        });
         ClassPathResource classPathResource = new ClassPathResource("ztbgmb.docx");
         try (
                 InputStream inputStream = classPathResource.getStream();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/BasicInformation.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/BasicInformation.java
index 78ba250..4f142cc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/BasicInformation.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/BasicInformation.java
@@ -30,110 +30,110 @@ public class BasicInformation extends BaseModel {
     private Long id;
 
 
-    @Excel(name = "统一社会信用代码*", sort = 2, required = true, type = Excel.Type.ALL,headerBackgroundColor= IndexedColors.RED1)
+    @Excel(name = "统一社会信用代码*", sort = 2, required = true, type = Excel.Type.ALL, headerBackgroundColor = IndexedColors.RED1)
     @ApiModelProperty("统一社会信用代码")
     private String tyshxydm;
 
 
     @NotBlank
-    @Excel(name = "项目名称*", sort = 2, required = true, type = Excel.Type.ALL,headerBackgroundColor= IndexedColors.RED1)
+    @Excel(name = "项目名称*", sort = 2, required = true, type = Excel.Type.ALL, headerBackgroundColor = IndexedColors.RED1)
     @ApiModelProperty("项目名称")
     private String name;
 
     @ApiModelProperty("总用地面积")
-    @Excel(name = "总用地面积", sort = 8,type= Excel.Type.ALL)
+    @Excel(name = "总用地面积", sort = 8, type = Excel.Type.ALL)
     @TableField(exist = false)
     private BigDecimal zydmj;
 
     @ApiModelProperty("总建筑面积")
-    @Excel(name = "总建筑面积",type = Excel.Type.EXPORT)
+    @Excel(name = "总建筑面积", type = Excel.Type.EXPORT)
     @TableField(exist = false)
     private BigDecimal zjzmj;
 
 
     @NotBlank
-    @Excel(name = "项目法人单位*", sort = 4, required = true,type= Excel.Type.ALL,headerBackgroundColor= IndexedColors.RED1)
+    @Excel(name = "项目法人单位*", sort = 4, required = true, type = Excel.Type.ALL, headerBackgroundColor = IndexedColors.RED1)
     @ApiModelProperty("项目法人单位")
     private String xmfrdwxz;
 
 
     @NotBlank
     @ApiModelProperty("项目法人单位性质")
-    @Excel(name = "项目法人单位性质",dictType = "xmfrdwxz",comboReadDict = true,type = Excel.Type.EXPORT)
+    @Excel(name = "项目法人单位性质", dictType = "xmfrdwxz", comboReadDict = true, type = Excel.Type.EXPORT)
     private Integer nature;
 
     @ApiModelProperty("施工单位")
-    @Excel(name = "施工单位",type = Excel.Type.EXPORT)
+    @Excel(name = "施工单位", type = Excel.Type.EXPORT)
     private String sgdw;
 
     @ApiModelProperty("设计单位")
-    @Excel(name = "设计单位",type = Excel.Type.EXPORT)
+    @Excel(name = "设计单位", type = Excel.Type.EXPORT)
     private String sjdw;
 
     @ApiModelProperty("总投资额")
-    @Excel(name = "总投资额", sort = 7,type= Excel.Type.ALL)
+    @Excel(name = "总投资额", sort = 7, type = Excel.Type.ALL)
     private BigDecimal ztze;
 
     @NotBlank
     @ApiModelProperty("所属功能区")
-    @Excel(name = "所属功能区",dictType = "ssgnq",comboReadDict = true,type = Excel.Type.EXPORT)
+    @Excel(name = "所属功能区", dictType = "ssgnq", comboReadDict = true, type = Excel.Type.EXPORT)
     private Integer ssgnq;
 
 
     @ApiModelProperty("建设开始时间 yyyy-MM")
-    @Excel(name = "建设开始时间",  sort = 5,type= Excel.Type.ALL)
+    @Excel(name = "建设开始时间", sort = 5, width = 24, type = Excel.Type.EXPORT)
     private String begainTime;
 
     @ApiModelProperty("建设结束时间 yyyy-MM")
-    @Excel(name = "建设结束时间",  sort = 6,type= Excel.Type.ALL)
+    @Excel(name = "建设结束时间", sort = 6, width = 24, type = Excel.Type.EXPORT)
     private String endTime;
 
     @NotBlank
-    @Excel(name = "现状分类", sort = 3, dictType = "xzfl", comboReadDict = true,type= Excel.Type.ALL)
+    @Excel(name = "现状分类", sort = 3, dictType = "xzfl", comboReadDict = true, type = Excel.Type.ALL)
     @ApiModelProperty("现状分类")
     private Integer xzfl;
 
     @NotBlank
-    @Excel(name = "建设地点",type = Excel.Type.EXPORT)
+    @Excel(name = "建设地点", type = Excel.Type.EXPORT)
     @ApiModelProperty("建设地点")
     private String jsdd;
 
     @NotBlank
-    @Excel(name = "重点发展产业",type = Excel.Type.EXPORT)
+    @Excel(name = "重点发展产业", type = Excel.Type.EXPORT)
     @ApiModelProperty("重点发展产业")
     private String prioritize;
 
     @NotBlank
-    @Excel(name = "建设模式",dictType = "jsms",comboReadDict = true,type = Excel.Type.EXPORT)
+    @Excel(name = "建设模式", dictType = "jsms", comboReadDict = true, type = Excel.Type.EXPORT)
     @ApiModelProperty("建设模式")
     private Integer jsms;
 
     @ApiModelProperty("项目标签")
-    @Excel(name = "项目标签",type = Excel.Type.EXPORT)
+    @Excel(name = "项目标签", type = Excel.Type.EXPORT)
     private String label;
 
     @NotBlank
     @ApiModelProperty("项目负责人")
-    @Excel(name = "项目负责人",type = Excel.Type.EXPORT)
+    @Excel(name = "项目负责人", type = Excel.Type.EXPORT)
     private String projectLeader;
 
     @NotBlank
     @ApiModelProperty("联系方式")
-    @Excel(name = "联系方式",type = Excel.Type.EXPORT)
+    @Excel(name = "联系方式", type = Excel.Type.EXPORT)
     private String phone;
 
 
     @ApiModelProperty("施工许可证发放时间")
-    @Excel(name = "施工许可证发放时间",type = Excel.Type.EXPORT)
+    @Excel(name = "施工许可证发放时间", type = Excel.Type.EXPORT)
     private String issuingTime;
 
     @ApiModelProperty("竣工验收时间")
-    @Excel(name = "竣工验收时间",type = Excel.Type.EXPORT)
+    @Excel(name = "竣工验收时间", type = Excel.Type.EXPORT)
     private String acceptanceTime;
 
 
     @ApiModelProperty("建设进度")
-    @Excel(name = "建设进度",type = Excel.Type.EXPORT)
+    @Excel(name = "建设进度", type = Excel.Type.EXPORT)
     private String jsjd;
 
     @NotBlank
@@ -148,11 +148,11 @@ public class BasicInformation extends BaseModel {
     private String fj;
 
     @ApiModelProperty("经度")
-    @Excel(name = "经度",type = Excel.Type.EXPORT)
+    @Excel(name = "经度", type = Excel.Type.EXPORT)
     private String longitude;
 
 
-    @Excel(name = "纬度",type = Excel.Type.EXPORT )
+    @Excel(name = "纬度", type = Excel.Type.EXPORT)
     @ApiModelProperty("纬度")
     private String latitude;
 
@@ -163,7 +163,7 @@ public class BasicInformation extends BaseModel {
     private Integer isFmqd;
 
     @ApiModelProperty("计划投资额")
-    @Excel(name = "计划投资额",type = Excel.Type.EXPORT )
+    @Excel(name = "计划投资额", type = Excel.Type.EXPORT)
     private BigDecimal jhtze;
 
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/request/BasicInformationPageReq.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/request/BasicInformationPageReq.java
index 5189c3f..9f82f19 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/request/BasicInformationPageReq.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/request/BasicInformationPageReq.java
@@ -25,13 +25,9 @@ public class BasicInformationPageReq {
     private String xmfrdwxz;
 
     @ApiModelProperty("建设起止时间-开始时间 yyyy-MM")
-//    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM", timezone = "GMT+8")
-//    @DateTimeFormat(pattern = "yyyy-MM")
     private String startTime;
 
     @ApiModelProperty("建设起止时间-结束时间 yyyy-MM")
-//    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM", timezone = "GMT+8")
-//    @DateTimeFormat(pattern = "yyyy-MM")
     private String endTime;
 
     @ApiModelProperty("现状分类")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/response/XmhxDetail/XmhxDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/response/XmhxDetail/XmhxDetail.java
index 1739a57..44715f1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/response/XmhxDetail/XmhxDetail.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/entity/response/XmhxDetail/XmhxDetail.java
@@ -13,6 +13,11 @@ public class XmhxDetail {
     @ApiModelProperty("要素名称")
     private String ysmc;
 
+    public XmhxDetail(String ysmc, String pjpm) {
+        this.ysmc = ysmc;
+        this.pjpm = pjpm;
+    }
+
     @ApiModelProperty("具体数值")
     private String pjpm;
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/BuildingInformationMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/BuildingInformationMapper.java
index b8193a7..20ba082 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/BuildingInformationMapper.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/BuildingInformationMapper.java
@@ -22,5 +22,20 @@ public interface BuildingInformationMapper extends BaseMapper<BuildingInformatio
      * @return 所有数据
      */
     List<BuildingInformation> selectAll(@Param("req") ZwIdPageReq zwIdPageReq);
+
+    /**
+     * 分组之后拿到每个项目id对应的一个每个值都是max的楼栋
+     */
+    BuildingInformation getOneXmIdToMax(@Param("id") Long id);
+
+    /**
+     * 最大值
+     */
+    BuildingInformation getAllMax();
+
+    /**
+     * 查询所有的建筑信息,只保留是重要楼栋的max条
+     */
+    List<BuildingInformation> getImportantBuildings();
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/XmpjqdMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/XmpjqdMapper.java
index fc3c340..37c0c7c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/XmpjqdMapper.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/mapper/XmpjqdMapper.java
@@ -37,30 +37,22 @@ public interface XmpjqdMapper extends BaseMapper<Xmpjqd> {
      */
     List<XmpjqdOneResponse> selectOnePj(@Param("id") Long id);
 
-    /**
-     * 查询所有的建筑信息,只保留是重要楼栋的第一条
-     */
-    List<BuildingInformation> getImportantBuildings();
-
 
     /**
-     * 通过主键查询单条项目画像
-     *
-     * @param id 主键
-     * @return 单条数据
+     * 总投资额本项目
      */
-    List<XmhxDetail> oneXmhx(@Param("id") Serializable id);
+    XmhxDetail meZtze(@Param("id") Long id);
 
     /**
      * 总投资额中位数
      */
-    List<BigDecimal> zwsXmhx();
+    List<BigDecimal> zwsZtze();
 
 
     /**
-     * 最大值
+     * 总投资额最大值
      */
-    List<XmhxDetail> maxXmhx();
+    XmhxDetail zdzZtze();
 
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/BuildingInformationService.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/BuildingInformationService.java
index dffebc0..9f7f882 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/BuildingInformationService.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/BuildingInformationService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.gysl.entity.BuildingInformation;
 import com.ruoyi.gysl.entity.request.ZwIdPageReq;
 
+import javax.management.Query;
 import java.util.List;
 
 /**
@@ -21,5 +22,22 @@ public interface BuildingInformationService extends IService<BuildingInformation
      * @return 所有数据
      */
     List<BuildingInformation> selectAll(ZwIdPageReq zwIdPageReq);
+
+
+    /**
+     * 分组之后拿到每个项目id对应的一个每个值都是max的楼栋
+     */
+    BuildingInformation getOneXmIdToMax(Long id);
+
+    /**
+     * 所有数据的最大值
+     */
+    BuildingInformation getAllMax();
+
+    /**
+     * 查询所有的建筑信息,只保留是重要楼栋的max条
+     */
+    List<BuildingInformation> getImportantBuildings();
 }
 
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/BuildingInformationServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/BuildingInformationServiceImpl.java
index 4228f3f..cbdc95e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/BuildingInformationServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/BuildingInformationServiceImpl.java
@@ -28,5 +28,29 @@ public class BuildingInformationServiceImpl extends ServiceImpl<BuildingInformat
     public List<BuildingInformation> selectAll(ZwIdPageReq zwIdPageReq) {
         return baseMapper.selectAll(zwIdPageReq);
     }
+
+    /**
+     * 分组之后拿到每个项目id对应的一个每个值都是max的楼栋
+     */
+    @Override
+    public BuildingInformation getOneXmIdToMax(Long id) {
+        return baseMapper.getOneXmIdToMax(id);
+    }
+
+    /**
+     * 最大值
+     */
+    @Override
+    public BuildingInformation getAllMax() {
+        return baseMapper.getAllMax();
+    }
+
+    /**
+     * 查询所有的建筑信息,只保留是重要楼栋Max
+     */
+    @Override
+    public List<BuildingInformation> getImportantBuildings() {
+        return baseMapper.getImportantBuildings();
+    }
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/XmpjqdServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/XmpjqdServiceImpl.java
index 5be3c82..e96e9e2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/XmpjqdServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/gysl/service/impl/XmpjqdServiceImpl.java
@@ -3,6 +3,7 @@ package com.ruoyi.gysl.service.impl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.gysl.entity.BuildingInformation;
+import com.ruoyi.gysl.entity.Pjpz;
 import com.ruoyi.gysl.entity.Xmpjqd;
 import com.ruoyi.gysl.entity.request.XmpjqdPageReq;
 import com.ruoyi.gysl.entity.response.XmhxDetail.XmhxDetail;
@@ -66,72 +67,11 @@ public class XmpjqdServiceImpl extends ServiceImpl<XmpjqdMapper, Xmpjqd> impleme
     public List<XmpjqdOneResponse> selectOnePj(Long id) {
         List<XmpjqdOneResponse> xmpjqdOneResponses = xmpjqdMapper.selectOnePj(id);
         //获取项目评价配置
-        pjpzService.list().forEach(x->{
+        pjpzService.list().forEach(x -> {
             XmpjqdOneResponse xr = new XmpjqdOneResponse();
             xr.setYsmc(x.getPjys());
             xmpjqdOneResponses.add(xr);
         });
-        //查询所有的建筑信息,只保留是重要楼栋的随机一条
-//        List<BuildingInformation> list = xmpjqdMapper.getImportantBuildings();
-
-//        //层数
-//        list.sort(Comparator.comparing(BuildingInformation::getFloor).reversed());
-//        XmpjqdOneResponse a1 = new XmpjqdOneResponse();
-//        a1.setYsmc("层数");
-//        for (int i = 0; i < list.size(); i++) {
-//            if (Objects.equals(list.get(i).getXmId(), id)) {
-//                a1.setPjpm(i + 1);
-//            }
-//        }
-//        a1.setCount(String.valueOf(list.size()));
-//        xmpjqdOneResponses.add(a1);
-//        //首层层高
-//        XmpjqdOneResponse a2 = new XmpjqdOneResponse();
-//        list.sort(Comparator.comparing(BuildingInformation::getScgd).reversed());
-//        a2.setYsmc("首层层高");
-//        for (int i = 0; i < list.size(); i++) {
-//            if (Objects.equals(list.get(i).getXmId(), id)) {
-//                a2.setPjpm(i + 1);
-//            }
-//        }
-//        a2.setCount(String.valueOf(list.size()));
-//        xmpjqdOneResponses.add(a2);
-//
-//        //二层及以上层高
-//        XmpjqdOneResponse a3 = new XmpjqdOneResponse();
-//        list.sort(Comparator.comparing(BuildingInformation::getTwoAndFourCg).reversed());
-//        a3.setYsmc("二层及以上层高");
-//        for (int i = 0; i < list.size(); i++) {
-//            if (Objects.equals(list.get(i).getXmId(), id)) {
-//                a3.setPjpm(i + 1);
-//            }
-//        }
-//        a3.setCount(String.valueOf(list.size()));
-//        xmpjqdOneResponses.add(a3);
-//
-//        //首层地面载荷
-//        XmpjqdOneResponse a4 = new XmpjqdOneResponse();
-//        list.sort(Comparator.comparing(BuildingInformation::getScdmhz).reversed());
-//        a4.setYsmc("首层地面载荷");
-//        for (int i = 0; i < list.size(); i++) {
-//            if (Objects.equals(list.get(i).getXmId(), id)) {
-//                a4.setPjpm(i + 1);
-//            }
-//        }
-//        a4.setCount(String.valueOf(list.size()));
-//        xmpjqdOneResponses.add(a4);
-//
-//        //二层及以上楼面荷载
-//        XmpjqdOneResponse a5 = new XmpjqdOneResponse();
-//        list.sort(Comparator.comparing(BuildingInformation::getTwoAndThreeLmhz).reversed());
-//        a5.setYsmc("二层及以上楼面荷载");
-//        for (int i = 0; i < list.size(); i++) {
-//            if (Objects.equals(list.get(i).getXmId(), id)) {
-//                a5.setPjpm(i + 1);
-//            }
-//        }
-//        a5.setCount(String.valueOf(list.size()));
-//        xmpjqdOneResponses.add(a5);
         return xmpjqdOneResponses;
     }
 
@@ -143,122 +83,120 @@ public class XmpjqdServiceImpl extends ServiceImpl<XmpjqdMapper, Xmpjqd> impleme
      */
     @Override
     public List<XmhxResponse> oneXmhx(Serializable id) {
+        //返回体
         List<XmhxResponse> obj = new ArrayList<>();
-        XmhxResponse xr = new XmhxResponse();
-        xr.setType(1);
-        xr.setList(xmpjqdMapper.maxXmhx());
-
-        XmhxResponse xr1 = new XmhxResponse();
-        List<XmhxDetail> xmhxDetails = xmpjqdMapper.oneXmhx(id);
-        BuildingInformation one = buildingInformationService.lambdaQuery()
-                .eq(BuildingInformation::getXmId, id)
-                .eq(BuildingInformation::getSfwzyld, 1)
-                .groupBy(BuildingInformation::getXmId).one();
-        if (one != null) {
-            XmhxDetail a1 = new XmhxDetail();
-            a1.setYsmc("层数");
-            a1.setPjpm(one.getFloor() == null ? "" : String.valueOf(one.getFloor()));
-            XmhxDetail a2 = new XmhxDetail();
-            a2.setYsmc("首层层高");
-            a2.setPjpm(String.valueOf(one.getScgd() == null ? "" : one.getScgd()));
-            XmhxDetail a3 = new XmhxDetail();
-            a3.setYsmc("二层及以上层高");
-            a3.setPjpm(String.valueOf(one.getTwoAndFourCg() == null ? "" : one.getTwoAndFourCg()));
-            XmhxDetail a4 = new XmhxDetail();
-            a4.setYsmc("二层及以上楼面荷载");
-            a4.setPjpm(String.valueOf(one.getTwoAndThreeLmhz() == null ? "" : one.getTwoAndThreeLmhz()));
-            xr1.setType(2);
-            xmhxDetails.add(a1);
-            xmhxDetails.add(a2);
-            xmhxDetails.add(a3);
-            xmhxDetails.add(a4);
-            xr1.setList(xmhxDetails);
-        } else {
-            xr1.setType(2);
-            xr1.setList(new ArrayList<>());
-        }
-
-        XmhxResponse xr2 = new XmhxResponse();
-        xr2.setType(3);
-        List<XmhxDetail> zws = new ArrayList<>();
-        //总投资额
-        List<BigDecimal> bigDecimals = xmpjqdMapper.zwsXmhx();
-        XmhxDetail z1 = getXmhxDetails(bigDecimals, "总投资额");
-        zws.add(z1);
-        //获取建筑信息表
-        List<BuildingInformation> ib = xmpjqdMapper.getImportantBuildings();
-        //层数拿出来
-        List<Integer> floor = ib.stream()
-                .map(BuildingInformation::getFloor)
-                .filter(Objects::nonNull)
-                .sorted()
-                .collect(Collectors.toList());
-        XmhxDetail xmhxDetail = new XmhxDetail();
-        xmhxDetail.setYsmc("层数");
-        if (floor.size() % 2 == 1) {
-            xmhxDetail.setPjpm(String.valueOf(floor.get(floor.size() / 2)));
-        } else {
-            if(!floor.isEmpty()){
-                Integer lower = floor.get(floor.size() / 2 - 1);
-                Integer upper = floor.get(floor.size() / 2);
-                xmhxDetail.setPjpm(String.valueOf((lower + upper) / 2));
-            }else {
-                xmhxDetail.setPjpm("0");
+        //最大值
+        BuildingInformation allMax = buildingInformationService.getAllMax();
+        //本项目
+        BuildingInformation th = buildingInformationService.getOneXmIdToMax((Long) id);
+        //查询所有的建筑信息,只保留是重要楼栋的max条
+        List<BuildingInformation> ib = buildingInformationService.getImportantBuildings();
+        //获取项目评价配置数据
+        List<Pjpz> list = pjpzService.list();
+        list.forEach(x -> {
+            XmhxResponse xr1 = new XmhxResponse();
+            xr1.setType(1);
+            List<XmhxDetail> l1 = new ArrayList<>();
+            XmhxResponse xr2 = new XmhxResponse();
+            xr2.setType(2);
+            List<XmhxDetail> l2 = new ArrayList<>();
+            XmhxResponse xr3 = new XmhxResponse();
+            xr3.setType(3);
+            List<XmhxDetail> l3 = new ArrayList<>();
+            if (allMax != null && th != null) {
+                switch (x.getPjys()) {
+                    case "总投资额":
+                        l1.add(xmpjqdMapper.zdzZtze());
+                        l2.add(xmpjqdMapper.meZtze((Long) id));
+                        l3.add(getXmhxDetails(xmpjqdMapper.zwsZtze(), "总投资额"));
+                        break;
+                    case "层数":
+                        l1.add(new XmhxDetail("层数", String.valueOf(allMax.getFloor())));
+                        l2.add(new XmhxDetail("层数", String.valueOf(th.getFloor())));
+                        //层数拿出来
+                        List<Integer> floor = ib.stream()
+                                .map(BuildingInformation::getFloor)
+                                .filter(Objects::nonNull)
+                                .sorted()
+                                .collect(Collectors.toList());
+                        String s;
+                        if (floor.size() % 2 == 1) {
+                            s = String.valueOf(floor.get(floor.size() / 2));
+                        } else {
+                            if (!floor.isEmpty()) {
+                                Integer lower = floor.get(floor.size() / 2 - 1);
+                                Integer upper = floor.get(floor.size() / 2);
+                                s = String.valueOf((lower + upper) / 2);
+                            } else {
+                                s = "0";
+                            }
+                        }
+                        l3.add(new XmhxDetail("层数", s));
+                        break;
+                    case "首层层高":
+                        l1.add(new XmhxDetail("首层层高", String.valueOf(allMax.getScgd())));
+                        l2.add(new XmhxDetail("首层层高", String.valueOf(th.getScgd())));
+                        List<BigDecimal> sccg = ib.stream()
+                                .map(BuildingInformation::getScgd)
+                                .filter(Objects::nonNull)
+                                .sorted()
+                                .collect(Collectors.toList());
+                        l3.add(getXmhxDetails(sccg, "首层层高"));
+                        break;
+                    case "二层及以上层高":
+                        l1.add(new XmhxDetail("二层及以上层高", String.valueOf(allMax.getTwoAndFourCg())));
+                        l2.add(new XmhxDetail("二层及以上层高", String.valueOf(th.getTwoAndFourCg())));
+                        List<BigDecimal> ec = ib.stream()
+                                .map(BuildingInformation::getTwoAndFourCg)
+                                .filter(Objects::nonNull)
+                                .sorted()
+                                .collect(Collectors.toList());
+                        l3.add(getXmhxDetails(ec, "二层及以上层高"));
+                        break;
+                    case "二层及以上楼面荷载":
+                        l1.add(new XmhxDetail("二层及以上楼面荷载", String.valueOf(allMax.getTwoAndThreeLmhz())));
+                        l2.add(new XmhxDetail("二层及以上楼面荷载", String.valueOf(th.getTwoAndThreeLmhz())));
+                        List<BigDecimal> zh = ib.stream()
+                                .map(BuildingInformation::getTwoAndThreeLmhz)
+                                .filter(Objects::nonNull)
+                                .sorted()
+                                .collect(Collectors.toList());
+                        l3.add(getXmhxDetails(zh, "二层及以上楼载荷"));
+                        break;
+                    default:
+                        l1.add(new XmhxDetail(x.getPjys(), null));
+                        l2.add(new XmhxDetail(x.getPjys(), null));
+                        l3.add(new XmhxDetail(x.getPjys(), null));
+                        break;
+                }
             }
-        }
-        zws.add(xmhxDetail);
-        //首层层高
-        List<BigDecimal> sccg = ib.stream()
-                .map(BuildingInformation::getScgd)
-                .filter(Objects::nonNull)
-                .sorted()
-                .collect(Collectors.toList());
-        zws.add(getXmhxDetails(sccg, "首层层高"));
-        //二层及以上层高
-        List<BigDecimal> ec = ib.stream()
-                .map(BuildingInformation::getTwoAndFourCg)
-                .filter(Objects::nonNull)
-                .sorted()
-                .collect(Collectors.toList());
-        zws.add(getXmhxDetails(ec, "二层及以上层高"));
-        //二层及以上楼载荷
-        List<BigDecimal> zh = ib.stream()
-                .map(BuildingInformation::getTwoAndThreeLmhz)
-                .filter(Objects::nonNull)
-                .sorted()
-                .collect(Collectors.toList());
-        zws.add(getXmhxDetails(zh, "二层及以上楼载荷"));
-
-        xr2.setList(zws);
-        obj.add(xr);
-        obj.add(xr1);
-        obj.add(xr2);
+            xr1.setList(l1);
+            xr2.setList(l2);
+            xr3.setList(l3);
+        });
         return obj;
     }
 
     private static XmhxDetail getXmhxDetails(List<BigDecimal> bigDecimals, String content) {
-        XmhxDetail xmhxDetail = new XmhxDetail();
-        xmhxDetail.setYsmc(content);
+        String s;
         int length = bigDecimals.size();
         int middleIndex = length / 2;
         // 根据奇偶性计算中位数
         if (length % 2 == 1) {
-            xmhxDetail.setPjpm(String.valueOf(bigDecimals.get(middleIndex)));
+            s = String.valueOf(bigDecimals.get(middleIndex));
         } else {
-            if(!bigDecimals.isEmpty()){
+            if (!bigDecimals.isEmpty()) {
                 BigDecimal lower = bigDecimals.get(middleIndex - 1);
                 BigDecimal upper = bigDecimals.get(middleIndex);
-                xmhxDetail.setPjpm(
-                        String.valueOf(
-                                lower.add(upper)
-                                        .divide(BigDecimal.valueOf(2), 2, RoundingMode.HALF_UP)  // 2 表示保留两位小数
-                        )
+                s = String.valueOf(
+                        lower.add(upper)
+                                .divide(BigDecimal.valueOf(2), 2, RoundingMode.HALF_UP)  // 2 表示保留两位小数
                 );
-            }else {
-                xmhxDetail.setPjpm("0");
+            } else {
+                s = "0";
             }
         }
-        return xmhxDetail;
+        return new XmhxDetail(content, s);
     }
 }
 
diff --git a/ruoyi-admin/src/main/resources/mapper/BuildingInformationMapper.xml b/ruoyi-admin/src/main/resources/mapper/BuildingInformationMapper.xml
index 92874f7..c88e63c 100644
--- a/ruoyi-admin/src/main/resources/mapper/BuildingInformationMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/BuildingInformationMapper.xml
@@ -10,6 +10,46 @@
             </if>
         </where>
     </select>
+    <select id="getOneXmIdToMax" resultType="com.ruoyi.gysl.entity.BuildingInformation">
+        select
+            MAX(floor) as floor,
+            MAX(scgd) as scgd,
+            MAX(two_and_four_cg) as twoAndFourCg,
+            MAX(two_and_three_lmhz) as twoAndThreeLmhz
+        from gysl_building_information
+        where  sfwzyld = 1 and xm_id = #{id}
+        group by xm_id;
+    </select>
+    <select id="getAllMax" resultType="com.ruoyi.gysl.entity.BuildingInformation">
+            SELECT
+                MAX( scgd ) AS scgd,
+                MAX( floor ) AS floor,
+                MAX( two_and_four_cg ) AS twoAndFourCg,
+                MAX( two_and_three_lmhz ) AS twoAndThreeLmhz
+            FROM
+                gysl_building_information
+    </select>
+    <select id="getImportantBuildings" resultType="com.ruoyi.gysl.entity.BuildingInformation">
+            SELECT
+                xm_id,
+                Max(floor),
+                Max(scgd),
+                Max(scdmhz),
+                Max(two_and_four_cg),
+                Max(two_and_three_lmhz)
+            FROM
+                gysl_building_information
+            WHERE
+                sfwzyld = 1
+            GROUP BY
+                xm_id,
+                floor,
+                scgd,
+                scdmhz,
+                two_and_four_cg,
+                two_and_three_lmhz
+
+    </select>
 
 </mapper>
 
diff --git a/ruoyi-admin/src/main/resources/mapper/QyStatsMapper.xml b/ruoyi-admin/src/main/resources/mapper/QyStatsMapper.xml
index 37050da..d29ce3e 100644
--- a/ruoyi-admin/src/main/resources/mapper/QyStatsMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/QyStatsMapper.xml
@@ -31,7 +31,7 @@
     </select>
     <select id="qyNotice" resultType="com.ruoyi.docking.entity.SmartDeclaration">
         select * from gysl_smart_declaration
-        where tyshxydm = #{username} and is_read = 1
+        where tyshxydm = #{username}
     </select>
     <select id="qyNoticeCount" resultType="java.lang.Integer">
         select count(*) from gysl_smart_declaration
diff --git a/ruoyi-admin/src/main/resources/mapper/XmpjqdMapper.xml b/ruoyi-admin/src/main/resources/mapper/XmpjqdMapper.xml
index 7d1d11f..a5a549c 100644
--- a/ruoyi-admin/src/main/resources/mapper/XmpjqdMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/XmpjqdMapper.xml
@@ -96,67 +96,21 @@
         WHERE
             c.id = #{id}
     </select>
-    <select id="getImportantBuildings" resultType="com.ruoyi.gysl.entity.BuildingInformation">
-        /**
-          随机取一条
-         */
-        SELECT
-            xm_id,
-            floor,
-            scgd,
-            scdmhz,
-            two_and_four_cg,
-            two_and_three_lmhz
-        FROM
-            gysl_building_information
-        WHERE
-            sfwzyld = 1
-        GROUP BY
-            xm_id,
-            floor,
-            scgd,
-            scdmhz,
-            two_and_four_cg,
-            two_and_three_lmhz
-
-    </select>
-    <select id="oneXmhx" resultType="com.ruoyi.gysl.entity.response.XmhxDetail.XmhxDetail">
-        select IFNULL(ztze,0) as pjpm,
-            '总投资额' as ysmc
+    <select id="zdzZtze" resultType="com.ruoyi.gysl.entity.response.XmhxDetail.XmhxDetail">
+        select IFNULL(MAX(ztze),0) as pjpm,
+               '总投资额' as ysmc
         from gysl_basic_information
-        where id = #{id}
-    </select>
-    <select id="maxXmhx" resultType="com.ruoyi.gysl.entity.response.XmhxDetail.XmhxDetail">
-        SELECT
-            MAX( ztze ) AS pjpm,
-            '总投资额' AS ysmc
-        FROM
-            gysl_basic_information UNION
-        SELECT
-            MAX( scgd ) AS pjpm,
-            '首层层高' AS ysmc
-        FROM
-            gysl_building_information UNION
-        SELECT
-            MAX( floor ) AS pjpm,
-            '层数' AS ysmc
-        FROM
-            gysl_building_information UNION
-        SELECT
-            MAX( two_and_four_cg ) AS pjpm,
-            '2层及以上层高' AS ysmc
-        FROM
-            gysl_building_information UNION
-        SELECT
-            MAX( two_and_three_lmhz ) AS pjpm,
-            '二层及以上楼面荷载' AS ysmc
-        FROM
-            gysl_building_information
     </select>
-    <select id="zwsXmhx" resultType="java.math.BigDecimal">
+    <select id="zwsZtze" resultType="java.math.BigDecimal">
         SELECT ztze FROM gysl_basic_information where ztze is not null
         order by ztze desc
     </select>
+    <select id="meZtze" resultType="com.ruoyi.gysl.entity.response.XmhxDetail.XmhxDetail">
+        SELECT
+            ztze as pjpm,
+            '总投资额' as ysmc
+        FROM gysl_basic_information where  id = #{id}
+    </select>
 
 </mapper>
 
diff --git a/ruoyi-admin/src/main/resources/mapper/ZwStatsMapper.xml b/ruoyi-admin/src/main/resources/mapper/ZwStatsMapper.xml
index 7c7c5e9..4e5a365 100644
--- a/ruoyi-admin/src/main/resources/mapper/ZwStatsMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/ZwStatsMapper.xml
@@ -72,95 +72,84 @@
         </where>
     </select>
     <select id="ribbon" resultType="com.ruoyi.gysl.entity.stats.RibbonResponse">
-        SELECT COUNT(*) AS count,  -- 统计左表实际存在的记录数
+        SELECT COUNT(a.ssgnq) AS count,
                b.dict_label AS ssgnq
         FROM
-            (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'ssgnq') b -- 先获取所有字典项
+            (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'ssgnq') b
             LEFT JOIN
             gysl_basic_information a
-        ON a.ssgnq = b.dict_value AND a.ssgnq IS NOT NULL -- 左连接并过滤空值
-        <where>
+        ON a.ssgnq = b.dict_value
             <if test="years != null and years != ''">
-                LEFT(a.begain_time, 4) = #{years}
+                and LEFT(a.begain_time, 4) = #{years}
             </if>
-        </where>
         GROUP BY
-            b.dict_label, b.dict_value -- 按字典项的标签和值分组
+            b.dict_label, b.dict_value
         ORDER BY
-            b.dict_value; -- 按字典排序(可选)
+            b.dict_value;
     </select>
     <select id="investors" resultType="com.ruoyi.gysl.entity.stats.RibbonResponse">
         SELECT
-            COUNT( * ) AS count,-- 统计左表实际存在的记录数
+            COUNT( a.nature ) AS count,
         	b.dict_label AS ssgnq
         FROM
-            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'xmfrdwxz' ) b -- 先获取所有字典项
+            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'xmfrdwxz' ) b
             LEFT JOIN gysl_basic_information a ON a.nature = b.dict_value
-            AND a.nature IS NOT NULL -- 左连接并过滤空值
-        <where>
             <if test="years != null and years != ''">
-                LEFT(a.begain_time, 4) = #{years}
+              and LEFT(a.begain_time, 4) = #{years}
             </if>
-        </where>
         GROUP BY
             b.dict_label,
-            b.dict_value -- 按字典项的标签和值分组
+            b.dict_value
         ORDER BY
-            b.dict_value;-- 按字典排序(可选)
+            b.dict_value;
     </select>
     <select id="zwNotice" resultType="com.ruoyi.docking.entity.SmartDeclaration">
         select * from gysl_smart_declaration
-        where  zw_id = #{userId} and is_read = 1
+        where  zw_id = #{userId}
     </select>
     <select id="zwNoticeCount" resultType="java.lang.Integer">
         select count(*) from gysl_smart_declaration
         where  zw_id = #{userId} and is_read = 1
     </select>
     <select id="xfcyfx" resultType="com.ruoyi.gysl.entity.stats.RibbonResponse">
-        SELECT COUNT(a.cylb) AS count,-- 统计左表实际存在的记录数
+        SELECT COUNT(a.cylb) AS count,
 	b.dict_label AS ssgnq
         FROM
-            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cylb' ) b -- 先获取所有字典项
+            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cylb' ) b
             LEFT JOIN gysl_xfcygl a
         ON a.cylb = b.dict_value
-            AND a.cylb IS NOT NULL -- 左连接并过滤空值
         GROUP BY
             b.dict_label,
-            b.dict_value -- 按字典项的标签和值分组
-
+            b.dict_value
         ORDER BY
-            b.dict_value;-- 按字典排序(可选)`
+            b.dict_value;
     </select>
     <select id="mlfx" resultType="com.ruoyi.gysl.entity.stats.RibbonResponse">
-        SELECT COUNT(a.slmllb) AS count,-- 统计左表实际存在的记录数
+        SELECT COUNT(a.slmllb) AS count,
 	b.dict_label AS ssgnq
         FROM
-            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'shangloumulu' ) b -- 先获取所有字典项
+            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'shangloumulu' ) b
             LEFT JOIN gysl_ml a
         ON a.slmllb = b.dict_value
-            AND a.slmllb IS NOT NULL -- 左连接并过滤空值
         GROUP BY
             b.dict_label,
-            b.dict_value -- 按字典项的标签和值分组
-
+            b.dict_value
         ORDER BY
-            b.dict_value;-- 按字典排序(可选)`
+            b.dict_value;
     </select>
     <select id="allXfcyfx" resultType="java.lang.Integer">
         SELECT COUNT(a.cylb)
         FROM
-            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cylb' ) b -- 先获取所有字典项
+            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cylb' ) b
             LEFT JOIN gysl_xfcygl a
         ON a.cylb = b.dict_value
-            AND a.cylb IS NOT NULL -- 左连接并过滤空值
     </select>
     <select id="allMlfx" resultType="java.lang.Integer">
         SELECT COUNT(a.slmllb) AS count
         FROM
-            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'shangloumulu' ) b -- 先获取所有字典项
+            ( SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'shangloumulu' ) b
             LEFT JOIN gysl_ml a
         ON a.slmllb = b.dict_value
-            AND a.slmllb IS NOT NULL -- 左连接并过滤空值
     </select>
 </mapper>
 
diff --git a/ruoyi-admin/src/main/resources/ztbgmb.docx b/ruoyi-admin/src/main/resources/ztbgmb.docx
index c5beacf..3905b52 100644
--- a/ruoyi-admin/src/main/resources/ztbgmb.docx
+++ b/ruoyi-admin/src/main/resources/ztbgmb.docx
@@ -6,7 +6,7 @@
    二、当年项目情况
    {{years}}年,苏州工业园区新开工上楼项目总数共计{{currentYearProject}}个,新开工项目总建筑面积达到{{currentYearGrossArea}}万平方米,已建项目{{currentBuilding1}}个,在建项目{{currentBuilding2}}个,拟建项目{{currentBuilding3}}个,力求为企业提供优质的生产和办公环境,同时在建设标准和质量上提出更高要求。
    三、功能区情况分析
-   截至xxxx年,项目总数共xx个,其中高端制造与国际贸易区项目数量占xx个,独墅湖科教创新区项目数量占xx个,阳澄湖半岛旅游度假区项目数量占xx个,金鸡湖商务区项目数量占xx个,苏相合作区项目数量占xx个。
+   截至{{years}}年,项目总数共{{allProject}}个,其中高端制造与国际贸易区项目数量占{{gn1}}个,独墅湖科教创新区项目数量占{{gn5}}个,阳澄湖半岛旅游度假区项目数量占{{gn2}}个,金鸡湖商务区项目数量占{{gn3}}个,苏相合作区项目数量占{{gn4}}个。
    四、投资主体情况分析
-   截至xxxx年,项目总数共xx个,国企投资占xx个,民企投资占xx个,外企投资占xx个。
+   截至{{years}}年,项目总数共{{allProject}}个,国企投资占{{tz1}}个,民企投资占{{tz2}}个,外企投资占{{tz3}}个。