Browse Source

优化

master
dimengzhe 1 year ago
parent
commit
cbaa7b4360
  1. 4
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java
  2. 26
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml
  3. 205
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java

4
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java

@ -56,7 +56,7 @@ public interface DailyReportMapper extends BaseMapper<DailyReport> {
List<DailyReportVo> selectReport3(@Param("date") String date, @Param("busOrgSid") String busOrgSid); List<DailyReportVo> selectReport3(@Param("date") String date, @Param("busOrgSid") String busOrgSid);
List<BrandVo> selectByBrand2(@Param("useOrgSid") String useOrgSid, @Param("date") String date); List<BrandVo> selectByBrand2(@Param("useOrgSid") String useOrgSid, @Param("date") String date,@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
List<DailyReportVo> selectReport4(@Param("join") List<String> brandList, @Param("useOrgSid") String useOrgSid, @Param("date") String date); List<DailyReportVo> selectReport4(@Param("join") List<String> brandList, @Param("useOrgSid") String useOrgSid, @Param("date") String date,@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
} }

26
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml

@ -403,13 +403,6 @@
SELECT dr.brandSid linkSid, SELECT dr.brandSid linkSid,
dr.brandName NAME, dr.brandName NAME,
b.colspan b.colspan
<!--(
SELECT count(ddr.vehModelSid)
FROM daily_report ddr
WHERE ddr.brandSid = dr.brandSid
AND DATE_FORMAT(ddr.createTime, '%Y-%m-%d') = #{date}
and ddr.useOrgSid = #{useOrgSid}
) as colspan-->
FROM daily_report dr FROM daily_report dr
left join left join
( (
@ -418,16 +411,14 @@
from (SELECT ddr.brandSid from (SELECT ddr.brandSid
FROM daily_report ddr FROM daily_report ddr
left join left join
anrui_base.base_model_config bmv anrui_base.base_model_config bmc
on ddr.vehMConfigSid = bmv.sid on ddr.vehMConfigSid = bmc.sid
left join left join
anrui_base.base_vehicle_model bm anrui_base.base_vehicle_model bm
on bm.sid = ddr.vehModelSid on bm.sid = ddr.vehModelSid
WHERE DATE_FORMAT(ddr.createTime, '%Y-%m-%d') = #{date} <where>
and ddr.useOrgSid = #{useOrgSid} ${ew.sqlSegment}
group by ddr.brandSid, </where>) a
bm.fuelTypeValue,
bm.emissionStandardValue) a
group by a.brandSid) b group by a.brandSid) b
on b.brandSid = dr.brandSid on b.brandSid = dr.brandSid
WHERE dr.useOrgSid = #{useOrgSid} WHERE dr.useOrgSid = #{useOrgSid}
@ -582,13 +573,16 @@
from daily_report dr from daily_report dr
left join anrui_base.base_vehicle_model bm on bm.sid = dr.vehModelSid left join anrui_base.base_vehicle_model bm on bm.sid = dr.vehModelSid
left join anrui_base.base_model_config bmc on bmc.sid = dr.vehMConfigSid left join anrui_base.base_model_config bmc on bmc.sid = dr.vehMConfigSid
where dr.useOrgSid = #{useOrgSid} <!-- where dr.useOrgSid = #{useOrgSid}
AND DATE_FORMAT(dr.createTime, '%Y-%m-%d') = #{date} AND DATE_FORMAT(dr.createTime, '%Y-%m-%d') = #{date}
and dr.brandSid in and dr.brandSid in
<foreach collection="join" item="item" index="index" open="(" separator="," close=")"> <foreach collection="join" item="item" index="index" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
group by dr.brandSid, bm.fuelTypeValue, bm.emissionStandardValue group by dr.brandSid, bm.fuelTypeValue, bm.emissionStandardValue
order by dr.brandSid desc order by dr.brandSid desc-->
<where>
${ew.sqlSegment}
</where>
</select> </select>
</mapper> </mapper>

205
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java

@ -1059,9 +1059,18 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
public ResultBean<DailyReportAppVo> list4(String date, String useOrgSid) { public ResultBean<DailyReportAppVo> list4(String date, String useOrgSid) {
ResultBean<DailyReportAppVo> rb = ResultBean.fireFail(); ResultBean<DailyReportAppVo> rb = ResultBean.fireFail();
QueryWrapper<DailyReport> qw = new QueryWrapper<>();
DailyReportAppVo dailyReportAppVo = new DailyReportAppVo(); DailyReportAppVo dailyReportAppVo = new DailyReportAppVo();
dailyReportAppVo.setTitle("分公司" + date + "日报"); dailyReportAppVo.setTitle("分公司" + date + "日报");
List<BrandVo> rows1 = baseMapper.selectByBrand2(useOrgSid, date); qw.like("ddr.createTime",date);
qw.eq("ddr.useOrgSid",useOrgSid);
qw.groupBy("ddr.brandSid");
qw.groupBy("bm.fuelTypeValue");
qw.groupBy("bm.emissionStandardValue");
List<DailyParameterVo> parameterVoList = baseMapper.selectByParameters(useOrgSid);
parameterVoList.removeAll(Collections.singleton(null));
qw = getCommon(parameterVoList,qw);
List<BrandVo> rows1 = baseMapper.selectByBrand2(useOrgSid, date,qw);
rows1.removeAll(Collections.singleton(null)); rows1.removeAll(Collections.singleton(null));
dailyReportAppVo.setRow1(rows1); dailyReportAppVo.setRow1(rows1);
List<String> brandList = rows1.stream().map(v -> v.getLinkSid()).collect(Collectors.toList()); List<String> brandList = rows1.stream().map(v -> v.getLinkSid()).collect(Collectors.toList());
@ -1069,7 +1078,16 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
if (brandList.isEmpty()) { if (brandList.isEmpty()) {
return rb.success(); return rb.success();
} }
List<DailyReportVo> dailyReportVoList = baseMapper.selectReport4(brandList, useOrgSid, date); qw = new QueryWrapper<>();
qw.eq("dr.useOrgSid",useOrgSid);
qw.like("dr.createTime",date);
qw.in("dr.brandSid",brandList);
qw.orderByDesc("dr.brandSid");
qw.groupBy("dr.brandSid");
qw.groupBy("bm.fuelTypeValue");
qw.groupBy("bm.emissionStandardValue");
qw = getCommon(parameterVoList,qw);
List<DailyReportVo> dailyReportVoList = baseMapper.selectReport4(brandList, useOrgSid, date,qw);
//燃料 //燃料
List<String> row2 = dailyReportVoList.stream().map(v -> v.getFuelTypeValue()).collect(Collectors.toList()); List<String> row2 = dailyReportVoList.stream().map(v -> v.getFuelTypeValue()).collect(Collectors.toList());
dailyReportAppVo.setRow2(row2); dailyReportAppVo.setRow2(row2);
@ -1310,82 +1328,161 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
List<ParameterVo> dynamicRows = new ArrayList<>(); List<ParameterVo> dynamicRows = new ArrayList<>();
List<DailyParameterVo> parameterVoList = baseMapper.selectByParameters(useOrgSid); /*List<DailyParameterVo> parameterVoList = baseMapper.selectByParameters(useOrgSid);
parameterVoList.removeAll(Collections.singleton(null)); parameterVoList.removeAll(Collections.singleton(null));*/
for (int i = 0; i < parameterVoList.size(); i++) { int totalRowspan = 3;
DailyParameterVo dailyParameterVo = parameterVoList.get(i); if (!parameterVoList.isEmpty()) {
String tableName = Arrays.asList(dailyParameterVo.getTableNameKey().split("\\.")).get(1); for (int i = 0; i < parameterVoList.size(); i++) {
ParameterVo parameterVo = new ParameterVo(); DailyParameterVo dailyParameterVo = parameterVoList.get(i);
parameterVo.setName(dailyParameterVo.getColText()); String tableName = Arrays.asList(dailyParameterVo.getTableNameKey().split("\\.")).get(1);
ParameterVo parameterVo = new ParameterVo();
parameterVo.setName(dailyParameterVo.getColText());
List<String> columnNames = dailyReportVoList.stream().map(v -> { List<String> columnNames = dailyReportVoList.stream().map(v -> {
String columnName = ""; String columnName = "";
try { try {
Field field = v.getClass().getDeclaredField(dailyParameterVo.getColName()); Field field = v.getClass().getDeclaredField(dailyParameterVo.getColName());
field.setAccessible(true); field.setAccessible(true);
columnName = (String) field.get(v); columnName = (String) field.get(v);
} catch (NoSuchFieldException | IllegalAccessException e) { } catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} }
if (StringUtils.isBlank(columnName)) { if (StringUtils.isBlank(columnName)) {
return "-"; return "-";
} else { } else {
return columnName; return columnName;
} }
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// columnNames.add(""); // columnNames.add("");
parameterVo.setRow(columnNames); parameterVo.setRow(columnNames);
dynamicRows.add(parameterVo); dynamicRows.add(parameterVo);
}
dailyReportAppVo.setDynamicRows(dynamicRows);
if (!dynamicRows.isEmpty()) {
for (int i = 0; i < dynamicRows.size(); i++) {
if (i > 6) {
break;
} else {
ParameterVo parameterVo = dynamicRows.get(i);
switch (i) {
case 0:
if (parameterVo != null) {
dailyReportAppVo.setRow101(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
case 1:
if (parameterVo != null) {
dailyReportAppVo.setRow102(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
case 2:
if (parameterVo != null) {
dailyReportAppVo.setRow103(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
case 3:
if (parameterVo != null) {
dailyReportAppVo.setRow104(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
case 4:
if (parameterVo != null) {
dailyReportAppVo.setRow105(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
case 5:
if (parameterVo != null) {
dailyReportAppVo.setRow106(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
case 6:
if (parameterVo != null) {
dailyReportAppVo.setRow107(parameterVo);
totalRowspan = totalRowspan + 1;
}
break;
default:
break;
}
}
}
}
} }
dailyReportAppVo.setDynamicRows(dynamicRows);
int totalRowspan = 3; dailyReportAppVo.setTotalRowspan(totalRowspan);
if (!dynamicRows.isEmpty()) { return rb.success().setData(dailyReportAppVo);
for (int i = 0; i < dynamicRows.size(); i++) { }
public QueryWrapper<DailyReport> getCommon(List<DailyParameterVo> parameterVoList,QueryWrapper<DailyReport> qw){
if(!parameterVoList.isEmpty()){
for (int i = 0; i < parameterVoList.size(); i++) {
DailyParameterVo dailyParameterVo = parameterVoList.get(i);
String tableName = Arrays.asList(dailyParameterVo.getTableNameKey().split("\\.")).get(1);
if (i > 6) { if (i > 6) {
break; break;
} else { } else {
ParameterVo parameterVo = dynamicRows.get(i);
switch (i) { switch (i) {
case 0: case 0:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow101(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
case 1: case 1:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow102(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
case 2: case 2:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow103(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
case 3: case 3:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow104(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
case 4: case 4:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow105(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
case 5: case 5:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow106(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
case 6: case 6:
if (parameterVo != null) { if ("base_model_config".equals(tableName)) {
dailyReportAppVo.setRow107(parameterVo); qw.groupBy("bmc." + dailyParameterVo.getColName());
totalRowspan = totalRowspan+1; qw.orderByDesc("bmc." + dailyParameterVo.getColName());
} else if ("base_vehicle_model".equals(tableName)) {
qw.groupBy("bm." + dailyParameterVo.getColName());
} }
break; break;
default: default:
@ -1394,7 +1491,7 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
} }
} }
} }
dailyReportAppVo.setTotalRowspan(totalRowspan);
return rb.success().setData(dailyReportAppVo); return qw;
} }
} }

Loading…
Cancel
Save