何浩玮 2 weeks ago
commit 3be38cc063

@ -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));
}
}

@ -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();

@ -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;
}

@ -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("现状分类")

@ -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;
}

@ -22,5 +22,20 @@ public interface BuildingInformationMapper extends BaseMapper<BuildingInformatio
* @return
*/
List<BuildingInformation> selectAll(@Param("req") ZwIdPageReq zwIdPageReq);
/**
* idmax
*/
BuildingInformation getOneXmIdToMax(@Param("id") Long id);
/**
*
*/
BuildingInformation getAllMax();
/**
* ,max
*/
List<BuildingInformation> getImportantBuildings();
}

@ -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();
}

@ -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);
/**
* idmax
*/
BuildingInformation getOneXmIdToMax(Long id);
/**
*
*/
BuildingInformation getAllMax();
/**
* ,max
*/
List<BuildingInformation> getImportantBuildings();
}

@ -28,5 +28,29 @@ public class BuildingInformationServiceImpl extends ServiceImpl<BuildingInformat
public List<BuildingInformation> selectAll(ZwIdPageReq zwIdPageReq) {
return baseMapper.selectAll(zwIdPageReq);
}
/**
* idmax
*/
@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();
}
}

@ -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());
//最大值
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();
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<>());
}
xr1.setType(1);
List<XmhxDetail> l1 = 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();
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());
XmhxDetail xmhxDetail = new XmhxDetail();
xmhxDetail.setYsmc("层数");
String s;
if (floor.size() % 2 == 1) {
xmhxDetail.setPjpm(String.valueOf(floor.get(floor.size() / 2)));
s = String.valueOf(floor.get(floor.size() / 2));
} else {
if(!floor.isEmpty()){
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");
s = String.valueOf((lower + upper) / 2);
} else {
s = "0";
}
}
zws.add(xmhxDetail);
//首层层高
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());
zws.add(getXmhxDetails(sccg, "首层层高"));
//二层及以上层高
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());
zws.add(getXmhxDetails(ec, "二层及以上层高"));
//二层及以上楼载荷
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());
zws.add(getXmhxDetails(zh, "二层及以上楼载荷"));
xr2.setList(zws);
obj.add(xr);
obj.add(xr1);
obj.add(xr2);
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;
}
}
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(
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);
}
}

@ -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>

@ -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

@ -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,
<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>

@ -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>

@ -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}}个。

Loading…
Cancel
Save