fix: 优化出入库水温查询逻辑
This commit is contained in:
parent
219323e0fc
commit
cb59b3835e
@ -1,12 +1,16 @@
|
|||||||
package com.yfd.platform.env.controller;
|
package com.yfd.platform.env.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.common.exception.BizException;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.env.entity.vo.BatchDeleteAo;
|
import com.yfd.platform.env.entity.vo.BatchDeleteAo;
|
||||||
import com.yfd.platform.env.entity.vo.WtrvInfo;
|
import com.yfd.platform.env.entity.vo.WtrvInfo;
|
||||||
import com.yfd.platform.env.service.AlongDetailService;
|
import com.yfd.platform.env.service.AlongDetailService;
|
||||||
|
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -60,12 +64,25 @@ public class SdAlongDetailController {
|
|||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
// @PostMapping("/qgc/GetKendoListCust")
|
@PostMapping("/qgc/GetKendoListCust")
|
||||||
// @Operation(summary = "环保部查询出入库水温、出入库流量、入库水温、天然水温、降雨、气温数据")
|
@Operation(summary = "环保部查询出入库水温、出入库流量、入库水温、天然水温、降雨、气温数据")
|
||||||
// public ResponseResult getQgcKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getQgcKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
// DataSourceResult result = alongDetailService.getQgcKendoListCust(dataSourceRequest);
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||||
// return ResponseResult.successData(result);
|
String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd");
|
||||||
// }
|
if (StrUtil.isBlank(stcd)) {
|
||||||
|
throw new BizException("站点编码不能为空.");
|
||||||
|
}
|
||||||
|
WtrvInfo wtrvInfo = alongDetailService.getWtrvInfoByStcd(stcd);
|
||||||
|
if (wtrvInfo == null) {
|
||||||
|
throw new BizException("获取站点信息失败,请检查是否站点存在.");
|
||||||
|
}
|
||||||
|
DataSourceResult result = alongDetailService.processKendoList(dataSourceRequest, null, new Page<>());
|
||||||
|
if (wtrvInfo.getType() == 3 || result == null || result.getData() == null || result.getTotal() == 0) {
|
||||||
|
return ResponseResult.successData(result);
|
||||||
|
}
|
||||||
|
DataSourceResult qgcResult = alongDetailService.processQgcKendList(result, wtrvInfo);
|
||||||
|
return ResponseResult.successData(qgcResult);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/qgc/stcdCheck")
|
@GetMapping("/qgc/stcdCheck")
|
||||||
@Operation(summary = "判断出库水温站、垂向水温站或者低温水减缓设施所属的电站是否有出库水温站、垂向水温站和低温水减缓设施")
|
@Operation(summary = "判断出库水温站、垂向水温站或者低温水减缓设施所属的电站是否有出库水温站、垂向水温站和低温水减缓设施")
|
||||||
|
|||||||
@ -20,13 +20,20 @@ import java.util.Map;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
||||||
|
|
||||||
|
@Select("SELECT wt.STCD AS stcd, wt.STNM AS stnm, wt.RSTCD AS rstcd, eng.ENNM AS ennm, " +
|
||||||
|
"CASE WHEN wt.STCD = rel.ENG_IWT_CODE THEN 1 WHEN wt.STCD = rel.ENG_DWT_CODE THEN 2 ELSE 3 END AS type, " +
|
||||||
|
"wt.STTP AS sttpCode " +
|
||||||
|
"FROM SD_WT_B_H wt " +
|
||||||
|
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD " +
|
||||||
|
"LEFT JOIN SD_PRWTRLTN_B rel ON rel.STCD = wt.RSTCD AND rel.IS_DELETED = 0 " +
|
||||||
|
"WHERE wt.IS_DELETED = 0 AND wt.STTP = 'WTRV' AND wt.STCD = #{stcd}")
|
||||||
WtrvInfo getWtrvInfoByStcd(@Param("stcd") String stcd);
|
WtrvInfo getWtrvInfoByStcd(@Param("stcd") String stcd);
|
||||||
//电站数据
|
//电站数据
|
||||||
@Select("SELECT AVG(a.QI) AS qi, AVG(a.QO) AS qo, a.tm, AVG(a.RZ) AS rz, AVG(a.DZ) AS dz " +
|
@Select("SELECT AVG(a.QI) AS qi, AVG(a.QO) AS qo, a.tm, AVG(a.RZ) AS rz, AVG(a.DZ) AS dz " +
|
||||||
"FROM SD_HYDROPW_R a " +
|
"FROM SD_HYDROPW_R a " +
|
||||||
"INNER JOIN MS_STBPRP_T b ON a.STCD = b.RSTCD " +
|
"WHERE a.IS_DELETED = 0 " +
|
||||||
"WHERE b.IS_DELETED = 0 AND a.IS_DELETED = 0 " +
|
"AND a.STCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
|
||||||
"AND b.STCD = #{stcd} AND a.TM BETWEEN #{startTime} AND #{endTime} " +
|
"AND a.TM BETWEEN #{startTime} AND #{endTime} " +
|
||||||
"GROUP BY a.TM")
|
"GROUP BY a.TM")
|
||||||
List<Map<String, Object>> getHydropwDataList(@Param("stcd") String stcd,
|
List<Map<String, Object>> getHydropwDataList(@Param("stcd") String stcd,
|
||||||
@Param("startTime") Date startTime,
|
@Param("startTime") Date startTime,
|
||||||
@ -34,7 +41,7 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
//天然水温
|
//天然水温
|
||||||
@Select("<script>" +
|
@Select("<script>" +
|
||||||
"SELECT STCD, WTTP, MNTH, WT FROM SD_WTNP_B " +
|
"SELECT STCD, WTTP, MNTH, WT FROM SD_WTNP_B " +
|
||||||
"WHERE WTTP = 1 " +
|
"WHERE WTTP = 1 AND IS_DELETED = 0 " +
|
||||||
"<if test='rstcd != null and rstcd != \"\"'>" +
|
"<if test='rstcd != null and rstcd != \"\"'>" +
|
||||||
"AND STCD = #{rstcd} " +
|
"AND STCD = #{rstcd} " +
|
||||||
"</if>" +
|
"</if>" +
|
||||||
@ -46,14 +53,14 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
//入库水温
|
//入库水温
|
||||||
@Select("<script>" +
|
@Select("<script>" +
|
||||||
"SELECT 1 AS TYPE, AVG(b.WT) AS WT, b.TM " +
|
"SELECT 1 AS TYPE, AVG(b.WT) AS WT, b.TM " +
|
||||||
"FROM MS_STBPRP_T a " +
|
"FROM SD_PRWTRLTN_B rel " +
|
||||||
"INNER JOIN SD_WTRV_R b ON a.STCD = b.STCD " +
|
"INNER JOIN SD_WTRV_R b ON b.STCD = rel.ENG_IWT_CODE " +
|
||||||
"WHERE a.STTP_CODE = 'WTRV' AND a.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
"WHERE rel.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
||||||
"<if test='stcd != null and stcd != \"\"'>" +
|
"<if test='stcd != null and stcd != \"\"'>" +
|
||||||
"AND a.ENG_IWT_CODE = (SELECT RSTCD FROM MS_STBPRP_T WHERE STCD = #{stcd}) " +
|
"AND rel.STCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
|
||||||
"</if>" +
|
"</if>" +
|
||||||
"<if test='rstcd != null and rstcd != \"\"'>" +
|
"<if test='rstcd != null and rstcd != \"\"'>" +
|
||||||
"AND a.ENG_IWT_CODE = #{rstcd} " +
|
"AND rel.STCD = #{rstcd} " +
|
||||||
"</if>" +
|
"</if>" +
|
||||||
"AND b.TM BETWEEN #{startTime} AND #{endTime} " +
|
"AND b.TM BETWEEN #{startTime} AND #{endTime} " +
|
||||||
"GROUP BY b.TM" +
|
"GROUP BY b.TM" +
|
||||||
@ -62,14 +69,14 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
//出库水温
|
//出库水温
|
||||||
@Select("<script>" +
|
@Select("<script>" +
|
||||||
"SELECT 2 AS TYPE, AVG(b.WT) AS WT, b.TM " +
|
"SELECT 2 AS TYPE, AVG(b.WT) AS WT, b.TM " +
|
||||||
"FROM MS_STBPRP_T a " +
|
"FROM SD_PRWTRLTN_B rel " +
|
||||||
"INNER JOIN SD_WTRV_R b ON a.STCD = b.STCD " +
|
"INNER JOIN SD_WTRV_R b ON b.STCD = rel.ENG_DWT_CODE " +
|
||||||
"WHERE a.STTP_CODE = 'WTRV' AND a.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
"WHERE rel.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
||||||
"<if test='stcd != null and stcd != \"\"'>" +
|
"<if test='stcd != null and stcd != \"\"'>" +
|
||||||
"AND a.ENG_DWT_CODE = (SELECT RSTCD FROM MS_STBPRP_T WHERE STCD = #{stcd}) " +
|
"AND rel.STCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
|
||||||
"</if>" +
|
"</if>" +
|
||||||
"<if test='rstcd != null and rstcd != \"\"'>" +
|
"<if test='rstcd != null and rstcd != \"\"'>" +
|
||||||
"AND a.ENG_DWT_CODE = #{rstcd} " +
|
"AND rel.STCD = #{rstcd} " +
|
||||||
"</if>" +
|
"</if>" +
|
||||||
"AND b.TM BETWEEN #{startTime} AND #{endTime} " +
|
"AND b.TM BETWEEN #{startTime} AND #{endTime} " +
|
||||||
"GROUP BY b.TM" +
|
"GROUP BY b.TM" +
|
||||||
@ -81,7 +88,7 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
"INNER JOIN MS_STBPRP_T b ON a.STCD = b.STCD " +
|
"INNER JOIN MS_STBPRP_T b ON a.STCD = b.STCD " +
|
||||||
"WHERE b.STTP_CODE = 'MM' " +
|
"WHERE b.STTP_CODE = 'MM' " +
|
||||||
"AND a.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
"AND a.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
||||||
"AND b.RSTCD = (SELECT RSTCD FROM MS_STBPRP_T WHERE STCD = #{stcd}) " +
|
"AND b.RSTCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
|
||||||
"AND a.TM BETWEEN #{startTime} AND #{endTime} " +
|
"AND a.TM BETWEEN #{startTime} AND #{endTime} " +
|
||||||
"GROUP BY a.TM")
|
"GROUP BY a.TM")
|
||||||
List<Map<String, Object>> getPptnDataList(@Param("stcd")String stcd, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
List<Map<String, Object>> getPptnDataList(@Param("stcd")String stcd, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||||
@ -90,7 +97,7 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
"FROM SD_TMP_R a " +
|
"FROM SD_TMP_R a " +
|
||||||
"INNER JOIN MS_STBPRP_T b ON a.STCD = b.STCD " +
|
"INNER JOIN MS_STBPRP_T b ON a.STCD = b.STCD " +
|
||||||
"WHERE b.STTP_CODE = 'MM' AND a.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
"WHERE b.STTP_CODE = 'MM' AND a.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
|
||||||
"AND b.RSTCD = (SELECT RSTCD FROM MS_STBPRP_T WHERE STCD = #{stcd}) " +
|
"AND b.RSTCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
|
||||||
"AND a.TM BETWEEN #{startTime} AND #{endTime} " +
|
"AND a.TM BETWEEN #{startTime} AND #{endTime} " +
|
||||||
"GROUP BY a.TM")
|
"GROUP BY a.TM")
|
||||||
List<Map<String, Object>> getTmpDataList(@Param("stcd")String stcd, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
List<Map<String, Object>> getTmpDataList(@Param("stcd")String stcd, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||||
@ -99,8 +106,8 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
"SELECT TM, WTHG, ROUND(AVG(VWT), 2) AS VWT " +
|
"SELECT TM, WTHG, ROUND(AVG(VWT), 2) AS VWT " +
|
||||||
"FROM SD_WTVT_R " +
|
"FROM SD_WTVT_R " +
|
||||||
"WHERE STCD IN (" +
|
"WHERE STCD IN (" +
|
||||||
" SELECT STCD FROM MS_STBPRP_T " +
|
" SELECT STCD FROM SD_WT_B_H " +
|
||||||
" WHERE RSTCD = #{rstcd} AND STTP_CODE = 'WTVT' AND IS_DELETED = 0" +
|
" WHERE RSTCD = #{rstcd} AND STTP = 'WTVT' AND IS_DELETED = 0 AND MWAY = 2" +
|
||||||
") " +
|
") " +
|
||||||
"AND TO_CHAR(TM, 'mi') = 0 AND IS_DELETED = 0 " +
|
"AND TO_CHAR(TM, 'mi') = 0 AND IS_DELETED = 0 " +
|
||||||
"AND TM BETWEEN #{startTime} AND #{endTime} " +
|
"AND TM BETWEEN #{startTime} AND #{endTime} " +
|
||||||
@ -126,18 +133,19 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
|
|||||||
"GROUP BY a.STCD, a.STNM")
|
"GROUP BY a.STCD, a.STNM")
|
||||||
WtrvInfo getWtrvInfoByStcd2(@Param("stcd") String stcd);
|
WtrvInfo getWtrvInfoByStcd2(@Param("stcd") String stcd);
|
||||||
|
|
||||||
@Select("SELECT a.STCD AS rstcd, a.STNM AS ennm, " +
|
@Select("SELECT eng.STCD AS rstcd, eng.ENNM AS ennm, " +
|
||||||
"REGEXP_REPLACE(LISTAGG(TO_CHAR(b.STCD), ',') WITHIN GROUP (ORDER BY b.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS stcd, " +
|
"REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(wtrv.STCD), ',') WITHIN GROUP (ORDER BY wtrv.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS stcd, " +
|
||||||
"REGEXP_REPLACE(LISTAGG(TO_CHAR(b.STNM), ',') WITHIN GROUP (ORDER BY b.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS stnm, " +
|
"REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(wtrv.STNM), ',') WITHIN GROUP (ORDER BY wtrv.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS stnm, " +
|
||||||
"REGEXP_REPLACE(LISTAGG(TO_CHAR(c.STCD), ',') WITHIN GROUP (ORDER BY c.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStcd, " +
|
"REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(vt.STCD), ',') WITHIN GROUP (ORDER BY vt.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStcd, " +
|
||||||
"REGEXP_REPLACE(LISTAGG(TO_CHAR(c.STNM), ',') WITHIN GROUP (ORDER BY c.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStnm " +
|
"REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(vt.STNM), ',') WITHIN GROUP (ORDER BY vt.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStnm " +
|
||||||
"FROM MS_STBPRP_T a " +
|
"FROM SD_ENGINFO_B_H eng " +
|
||||||
"LEFT JOIN MS_STBPRP_T b ON a.STCD = b.RSTCD AND b.STTP_CODE = 'WTRV' AND b.IS_DELETED = 0 AND b.MWAY = 2 AND b.DTIN_TYPE = 0 " +
|
"LEFT JOIN SD_PRWTRLTN_B rel ON rel.STCD = eng.STCD AND rel.IS_DELETED = 0 " +
|
||||||
"LEFT JOIN MS_STBPRP_T c ON a.STCD = c.RSTCD AND c.STTP_CODE = 'WTVT' AND c.IS_DELETED = 0 AND c.MWAY = 2 " +
|
"LEFT JOIN SD_WT_B_H wtrv ON wtrv.RSTCD = eng.STCD AND wtrv.STCD IN (rel.ENG_IWT_CODE, rel.ENG_DWT_CODE) " +
|
||||||
"WHERE a.STTP_CODE = 'ENG' AND a.IS_DELETED = 0 " +
|
" AND wtrv.STTP = 'WTRV' AND wtrv.IS_DELETED = 0 AND wtrv.MWAY = 2 " +
|
||||||
"AND b.STCD IS NOT NULL AND c.STCD IS NOT NULL AND b.ENG_DWT_CODE IS NOT NULL " +
|
"LEFT JOIN SD_WT_B_H vt ON vt.RSTCD = eng.STCD AND vt.STTP = 'WTVT' AND vt.IS_DELETED = 0 AND vt.MWAY = 2 " +
|
||||||
"AND (b.STCD = #{stcd} OR c.STCD = #{stcd} OR a.STCD = #{stcd}) " +
|
"WHERE eng.USFL = 1 " +
|
||||||
"AND a.STCD = b.ENG_DWT_CODE " +
|
"AND wtrv.STCD IS NOT NULL AND vt.STCD IS NOT NULL AND rel.ENG_DWT_CODE IS NOT NULL " +
|
||||||
"GROUP BY a.STCD, a.STNM")
|
"AND (wtrv.STCD = #{stcd} OR vt.STCD = #{stcd} OR eng.STCD = #{stcd}) " +
|
||||||
|
"GROUP BY eng.STCD, eng.ENNM")
|
||||||
WtrvInfo getWtrvInfoByStcd3(@Param("stcd") String stcd);
|
WtrvInfo getWtrvInfoByStcd3(@Param("stcd") String stcd);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,11 +7,13 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yfd.platform.common.*;
|
import com.yfd.platform.common.*;
|
||||||
|
import com.yfd.platform.common.exception.BizException;
|
||||||
import com.yfd.platform.env.entity.vo.*;
|
import com.yfd.platform.env.entity.vo.*;
|
||||||
import com.yfd.platform.env.mapper.AlongDetailMapper;
|
import com.yfd.platform.env.mapper.AlongDetailMapper;
|
||||||
import com.yfd.platform.env.mapper.SdWtrvdrtpSMapper;
|
import com.yfd.platform.env.mapper.SdWtrvdrtpSMapper;
|
||||||
import com.yfd.platform.env.service.AlongDetailService;
|
import com.yfd.platform.env.service.AlongDetailService;
|
||||||
import com.yfd.platform.utils.CollectionExtUtils;
|
import com.yfd.platform.utils.CollectionExtUtils;
|
||||||
|
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||||
import com.yfd.platform.utils.SecurityUtils;
|
import com.yfd.platform.utils.SecurityUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
@ -33,6 +35,8 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
@Resource
|
@Resource
|
||||||
private DynamicSQLMapper dynamicSQLMapper;
|
private DynamicSQLMapper dynamicSQLMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
|
||||||
|
@Resource
|
||||||
private AlongDetailMapper alongDetailMapper;
|
private AlongDetailMapper alongDetailMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@ -44,34 +48,71 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult processKendoList(DataSourceRequest dataSourceRequest, Map<String, GroupResult> filterResult, Page page) {
|
public DataSourceResult processKendoList(DataSourceRequest dataSourceRequest, Map<String, GroupResult> filterResult, Page page) {
|
||||||
DataSourceResult dataSourceResult = new DataSourceResult();
|
DataSourceResult dataSourceResult = new DataSourceResult();
|
||||||
StringBuilder sql = new StringBuilder("SELECT t.tm,t.mon, t.stcd, t.wt, t.stnm, t.basename,t.mway,t.rstcd\n" +
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||||
"FROM (SELECT DISTINCT r.tm,to_char(r.tm,'MM') mon, r.stcd, r.WT,r.TASK_ID,r.TASK_STATUS ,t2.stnm,t2.BASE_Id AS baseId, t2.BASE_NAME baseName,t2.MWAY AS mway, t2.rstcd\n" +
|
String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd");
|
||||||
" FROM SD_WTRV_R r\n" +
|
String tm = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "tm");
|
||||||
//" inner join MS_ALONGDET_B b on r.stcd=b.stcd and b.is_deleted=0 inner join MS_ALONG_B a on a.ID=b.ALONG_ID and a.code='common' " +
|
if (StrUtil.isBlank(tm)) {
|
||||||
" LEFT JOIN MS_STBPRP_T t2 ON r.STCD = t2.STCD \n" +
|
throw new BizException("时间(tm)不能为空.");
|
||||||
" WHERE r.is_deleted=0 and t2.is_deleted=0 " +
|
}
|
||||||
" order by r.tm DESC, r.stcd) t where 1=1 ");
|
Date startTime = null;
|
||||||
|
Date endTime = null;
|
||||||
sql. append(" AND (TASK_ID IS NULL OR TASK_ID ='' OR TASK_STATUS ='Approved') ");
|
String[] tmArr = tm.split(",");
|
||||||
if (ObjectUtil.isNotEmpty(filterResult.get(CommonConstant.DEFAULT))) {
|
if (tmArr.length == 2) {
|
||||||
if (StrUtil.isNotBlank(filterResult.get(CommonConstant.DEFAULT).getGroupSql())) {
|
Date first = DateUtil.parse(tmArr[0].trim());
|
||||||
sql.append(" and ").append(filterResult.get(CommonConstant.DEFAULT).getGroupSql());
|
Date second = DateUtil.parse(tmArr[1].trim());
|
||||||
|
if (first.after(second)) {
|
||||||
|
startTime = second;
|
||||||
|
endTime = first;
|
||||||
|
} else {
|
||||||
|
startTime = first;
|
||||||
|
endTime = second;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(filterResult.get(CommonConstant.DEFAULT).getOrderBySql())) {
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append(" ").append(filterResult.get(CommonConstant.DEFAULT).getOrderBySql());
|
sql.append("SELECT t.tm, t.mon, t.stcd, t.wt, t.stnm, t.baseName ")
|
||||||
|
.append("FROM (")
|
||||||
|
.append(" SELECT DISTINCT r.tm, TO_NUMBER(TO_CHAR(r.tm,'MM')) mon, r.stcd, r.wt, ")
|
||||||
|
.append(" wt.stnm, hb.basename AS baseName, wt.mway, wt.rstcd ")
|
||||||
|
.append(" FROM SD_WTRV_R r ")
|
||||||
|
.append(" LEFT JOIN SD_WT_B_H wt ON r.STCD = wt.STCD ")
|
||||||
|
.append(" LEFT JOIN SD_ENGINFO_B_H eng ON wt.RSTCD = eng.STCD ")
|
||||||
|
.append(" LEFT JOIN SD_HYDROBASE hb ON eng.BASE_ID = hb.BASEID ")
|
||||||
|
.append(" WHERE r.IS_DELETED = 0 ")
|
||||||
|
.append(" AND wt.IS_DELETED = 0 ")
|
||||||
|
.append(" AND wt.STTP = 'WTRV' ")
|
||||||
|
.append(" AND r.TM BETWEEN #{map.startTime} AND #{map.endTime} ");
|
||||||
|
if (StrUtil.isNotBlank(stcd)) {
|
||||||
|
sql.append(" AND r.STCD = #{map.stcd} ");
|
||||||
}
|
}
|
||||||
|
sql.append(") t WHERE 1=1 ");
|
||||||
|
if (dataSourceRequest.getSort() != null && !dataSourceRequest.getSort().isEmpty()) {
|
||||||
|
DataSourceRequest.SortDescriptor sortDescriptor = dataSourceRequest.getSort().get(0);
|
||||||
|
String orderField = "tm";
|
||||||
|
if ("stcd".equalsIgnoreCase(sortDescriptor.getField())) {
|
||||||
|
orderField = "stcd";
|
||||||
|
} else if ("stnm".equalsIgnoreCase(sortDescriptor.getField())) {
|
||||||
|
orderField = "stnm";
|
||||||
|
} else if ("wt".equalsIgnoreCase(sortDescriptor.getField())) {
|
||||||
|
orderField = "wt";
|
||||||
|
}
|
||||||
|
String orderDir = "desc".equalsIgnoreCase(sortDescriptor.getDir()) ? "DESC" : "ASC";
|
||||||
|
sql.append(" ORDER BY t.").append(orderField).append(" ").append(orderDir);
|
||||||
|
} else {
|
||||||
|
sql.append(" ORDER BY t.tm ASC ");
|
||||||
}
|
}
|
||||||
Map<String, Object> map = new HashMap();
|
|
||||||
Iterator iterator = filterResult.keySet().iterator();
|
|
||||||
|
|
||||||
while (iterator.hasNext()) {
|
Map<String, Object> map = new HashMap<>();
|
||||||
String key = (String) iterator.next();
|
map.put("startTime", startTime);
|
||||||
map.putAll(filterResult.get(key).getParamMap());
|
map.put("endTime", endTime);
|
||||||
|
if (StrUtil.isNotBlank(stcd)) {
|
||||||
|
map.put("stcd", stcd);
|
||||||
}
|
}
|
||||||
List<SdAlongDetailVO> list = this.dynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), map, SdAlongDetailVO.class);
|
PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions);
|
||||||
|
Page currentPage = pageInfo.getHasPageInfo() ? pageInfo.getPage() : page;
|
||||||
|
List<SdAlongDetailVO> list = this.microservicDynamicSQLMapper.pageAllListWithResultType(currentPage, sql.toString(), map, SdAlongDetailVO.class);
|
||||||
dataSourceResult.setData(list);
|
dataSourceResult.setData(list);
|
||||||
dataSourceResult.setTotal(ObjectUtil.isNotEmpty(page) ? page.getTotal() : (long) list.size());
|
dataSourceResult.setTotal(ObjectUtil.isNotEmpty(currentPage) ? currentPage.getTotal() : (long) list.size());
|
||||||
return dataSourceResult;
|
return dataSourceResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +183,7 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
@Override
|
@Override
|
||||||
public DataSourceResult processQgcKendList(DataSourceResult dataSourceResult, WtrvInfo wtrvInfo) {
|
public DataSourceResult processQgcKendList(DataSourceResult dataSourceResult, WtrvInfo wtrvInfo) {
|
||||||
DataSourceResult dr = new DataSourceResult();
|
DataSourceResult dr = new DataSourceResult();
|
||||||
List<Map<String, Object>> list = (List<Map<String, Object>>) dataSourceResult.getData();
|
List<SdAlongDetailVO> list = (List<SdAlongDetailVO>) dataSourceResult.getData();
|
||||||
|
|
||||||
if (list == null || list.isEmpty()) {
|
if (list == null || list.isEmpty()) {
|
||||||
dr.setData(new ArrayList<>());
|
dr.setData(new ArrayList<>());
|
||||||
@ -150,8 +191,8 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
return dr;
|
return dr;
|
||||||
}
|
}
|
||||||
|
|
||||||
Date startTime = (Date) list.get(0).get("tm");
|
Date startTime = list.get(0).getTm();
|
||||||
Date endTime = (Date) list.get(list.size() - 1).get("tm");
|
Date endTime = list.get(list.size() - 1).getTm();
|
||||||
|
|
||||||
if (startTime.compareTo(endTime) > 0) {
|
if (startTime.compareTo(endTime) > 0) {
|
||||||
Date tmpDate = startTime;
|
Date tmpDate = startTime;
|
||||||
@ -162,7 +203,7 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
List<Map<String, Object>> iwtDataVoList = new ArrayList<>();
|
List<Map<String, Object>> iwtDataVoList = new ArrayList<>();
|
||||||
List<Map<String, Object>> dwtDataVoList = new ArrayList<>();
|
List<Map<String, Object>> dwtDataVoList = new ArrayList<>();
|
||||||
List<Map<String, Object>> wtvtDataVoList = new ArrayList<>();
|
List<Map<String, Object>> wtvtDataVoList = new ArrayList<>();
|
||||||
List<Map<String, Object>> hydropwDataVoList = new ArrayList<>();
|
// List<Map<String, Object>> hydropwDataVoList = new ArrayList<>();
|
||||||
List<Map<String, Object>> pptnDataVoList = new ArrayList<>();
|
List<Map<String, Object>> pptnDataVoList = new ArrayList<>();
|
||||||
List<Map<String, Object>> tmpDataVoList = new ArrayList<>();
|
List<Map<String, Object>> tmpDataVoList = new ArrayList<>();
|
||||||
List<Map<String, Object>> wtnpDataVoList;
|
List<Map<String, Object>> wtnpDataVoList;
|
||||||
@ -187,9 +228,9 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
Map<Date, Map<String, Object>> dwtDataMap = dwtDataVoList.stream()
|
Map<Date, Map<String, Object>> dwtDataMap = dwtDataVoList.stream()
|
||||||
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
|
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
|
||||||
|
|
||||||
hydropwDataVoList.addAll(this.alongDetailMapper.getHydropwDataList(wtrvInfo.getStcd(), startTime, endTime));
|
// hydropwDataVoList.addAll(this.alongDetailMapper.getHydropwDataList(wtrvInfo.getStcd(), startTime, endTime));
|
||||||
Map<Date, Map<String, Object>> hydropwDataMap = hydropwDataVoList.stream()
|
// Map<Date, Map<String, Object>> hydropwDataMap = hydropwDataVoList.stream()
|
||||||
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
|
// .collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
|
||||||
|
|
||||||
pptnDataVoList.addAll(this.alongDetailMapper.getPptnDataList(wtrvInfo.getStcd(), startTime, endTime));
|
pptnDataVoList.addAll(this.alongDetailMapper.getPptnDataList(wtrvInfo.getStcd(), startTime, endTime));
|
||||||
Map<Date, Map<String, Object>> pptnDataMap = pptnDataVoList.stream()
|
Map<Date, Map<String, Object>> pptnDataMap = pptnDataVoList.stream()
|
||||||
@ -213,42 +254,42 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
List<Map<String, Object>> qgcWtrvDataVoList = new ArrayList<>();
|
List<Map<String, Object>> qgcWtrvDataVoList = new ArrayList<>();
|
||||||
list.forEach(it -> {
|
list.forEach(it -> {
|
||||||
Map<String, Object> vo = new HashMap<>();
|
Map<String, Object> vo = new HashMap<>();
|
||||||
vo.put("stcd", it.get("stcd"));
|
vo.put("stcd", it.getStcd());
|
||||||
vo.put("stnm", it.get("stnm"));
|
vo.put("stnm", it.getStnm());
|
||||||
vo.put("wt", it.get("wt"));
|
vo.put("wt", it.getWt());
|
||||||
vo.put("tm", it.get("tm"));
|
vo.put("tm", it.getTm());
|
||||||
vo.put("ennm", wtrvInfo.getEnnm());
|
vo.put("ennm", wtrvInfo.getEnnm());
|
||||||
vo.put("rstcd", wtrvInfo.getRstcd());
|
vo.put("rstcd", wtrvInfo.getRstcd());
|
||||||
vo.put("type", wtrvInfo.getType());
|
vo.put("type", wtrvInfo.getType());
|
||||||
vo.put("natureTmp", wtnpDataMap.get(it.get("mon")));
|
vo.put("natureTmp", wtnpDataMap.get(it.getMon()));
|
||||||
vo.put("hydropwDataVo", hydropwDataMap.get(it.get("tm")));
|
// vo.put("hydropwDataVo", hydropwDataMap.get(it.getTm()));
|
||||||
vo.put("pptnDataVo", pptnDataMap.get(it.get("tm")));
|
vo.put("pptnDataVo", pptnDataMap.get(it.getTm()));
|
||||||
vo.put("tmpDataVo", tmpDataMap.get(it.get("tm")));
|
vo.put("tmpDataVo", tmpDataMap.get(it.getTm()));
|
||||||
|
|
||||||
if (wtrvInfo.getType() == 1) {
|
if (wtrvInfo.getType() == 1) {
|
||||||
Map<String, Object> iwtVo = new HashMap<>();
|
Map<String, Object> iwtVo = new HashMap<>();
|
||||||
iwtVo.put("tm", it.get("tm"));
|
iwtVo.put("tm", it.getTm());
|
||||||
iwtVo.put("wt", it.get("wt"));
|
iwtVo.put("wt", it.getWt());
|
||||||
vo.put("iwtDataVo", iwtVo);
|
vo.put("iwtDataVo", iwtVo);
|
||||||
vo.put("dwtDataVo", dwtDataMap.get(it.get("tm")));
|
vo.put("dwtDataVo", dwtDataMap.get(it.getTm()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wtrvInfo.getType() == 2) {
|
if (wtrvInfo.getType() == 2) {
|
||||||
Map<String, Object> dwtVo = new HashMap<>();
|
Map<String, Object> dwtVo = new HashMap<>();
|
||||||
dwtVo.put("tm", it.get("tm"));
|
dwtVo.put("tm", it.getTm());
|
||||||
dwtVo.put("wt", it.get("wt"));
|
dwtVo.put("wt", it.getWt());
|
||||||
vo.put("dwtDataVo", dwtVo);
|
vo.put("dwtDataVo", dwtVo);
|
||||||
vo.put("iwtDataVo", iwtDataMap.get(it.get("tm")));
|
vo.put("iwtDataVo", iwtDataMap.get(it.getTm()));
|
||||||
|
|
||||||
if (it.get("wt") != null && wtvtDataVoMap != null) {
|
if (it.getWt() != null && wtvtDataVoMap != null) {
|
||||||
List<Map<String, Object>> vtList = wtvtDataVoMap.get(it.get("tm"));
|
List<Map<String, Object>> vtList = wtvtDataVoMap.get(it.getTm());
|
||||||
if (vtList != null) {
|
if (vtList != null) {
|
||||||
Map<BigDecimal, List<Map<String, Object>>> vtMap = vtList.stream()
|
Map<BigDecimal, List<Map<String, Object>>> vtMap = vtList.stream()
|
||||||
.filter(tt -> tt.get("vwt") != null)
|
.filter(tt -> tt.get("vwt") != null)
|
||||||
.collect(Collectors.groupingBy(tt -> (BigDecimal) tt.get("vwt")));
|
.collect(Collectors.groupingBy(tt -> (BigDecimal) tt.get("vwt")));
|
||||||
|
|
||||||
if (vtMap.containsKey(it.get("wt"))) {
|
if (vtMap.containsKey(it.getWt())) {
|
||||||
vo.put("wtvtDataVo", vtMap.get(it.get("wt")).get(0));
|
vo.put("wtvtDataVo", vtMap.get(it.getWt()).get(0));
|
||||||
qgcWtrvDataVoList.add(vo);
|
qgcWtrvDataVoList.add(vo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -262,7 +303,7 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
.sorted()
|
.sorted()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
BigDecimal[] lrValue = CollectionExtUtils.findNeighbors(sortVt, (BigDecimal) it.get("wt"));
|
BigDecimal[] lrValue = CollectionExtUtils.findNeighbors(sortVt, it.getWt());
|
||||||
if (lrValue.length == 2) {
|
if (lrValue.length == 2) {
|
||||||
leftVt = lrValue[0];
|
leftVt = lrValue[0];
|
||||||
rightVt = lrValue[1];
|
rightVt = lrValue[1];
|
||||||
@ -279,7 +320,7 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (leftVt != null && rightVt != null) {
|
if (leftVt != null && rightVt != null) {
|
||||||
BigDecimal currentWt = (BigDecimal) it.get("wt");
|
BigDecimal currentWt = it.getWt();
|
||||||
BigDecimal wthg = ((rightVt.subtract(currentWt)).multiply((BigDecimal) leftVo.get("wthg"))
|
BigDecimal wthg = ((rightVt.subtract(currentWt)).multiply((BigDecimal) leftVo.get("wthg"))
|
||||||
.add((currentWt.subtract(leftVt)).multiply((BigDecimal) rightVo.get("wthg"))))
|
.add((currentWt.subtract(leftVt)).multiply((BigDecimal) rightVo.get("wthg"))))
|
||||||
.divide((rightVt.subtract(currentWt)).add(currentWt.subtract(leftVt)), RoundingMode.HALF_UP);
|
.divide((rightVt.subtract(currentWt)).add(currentWt.subtract(leftVt)), RoundingMode.HALF_UP);
|
||||||
|
|||||||
@ -90,11 +90,14 @@ public class SdRvwtSInOutOneServiceImpl extends ServiceImpl<SdRvwtSInOutOneMappe
|
|||||||
String forceType) {
|
String forceType) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||||
String engStcd = normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd"));
|
String engStcd = normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd"));
|
||||||
String relationStcd = firstNotBlank(
|
String engIwtCode = normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "engIwtCode"));
|
||||||
engStcd,
|
String engDwtCode = normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "engDwtCode"));
|
||||||
normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "engIwtCode")),
|
if (StrUtil.isBlank(engIwtCode) && StrUtil.isNotBlank(engStcd)) {
|
||||||
normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "engDwtCode"))
|
engIwtCode = engStcd;
|
||||||
);
|
}
|
||||||
|
if (StrUtil.isBlank(engDwtCode) && StrUtil.isNotBlank(engStcd)) {
|
||||||
|
engDwtCode = engStcd;
|
||||||
|
}
|
||||||
String url = normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "url"));
|
String url = normalizeFilterValue(QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "url"));
|
||||||
boolean isDetail = forceDetail != null ? forceDetail : "details".equals(url);
|
boolean isDetail = forceDetail != null ? forceDetail : "details".equals(url);
|
||||||
|
|
||||||
@ -112,26 +115,19 @@ public class SdRvwtSInOutOneServiceImpl extends ServiceImpl<SdRvwtSInOutOneMappe
|
|||||||
.append("SWS.WT AS wt, ")
|
.append("SWS.WT AS wt, ")
|
||||||
.append("REL.ENG_IWT_CODE AS engIwtCode, ")
|
.append("REL.ENG_IWT_CODE AS engIwtCode, ")
|
||||||
.append("REL.ENG_DWT_CODE AS engDwtCode ")
|
.append("REL.ENG_DWT_CODE AS engDwtCode ")
|
||||||
.append("FROM (")
|
.append("FROM SD_WT_B_H SWT ")
|
||||||
.append(" SELECT SPR.STCD, SPR.ENG_IWT_CODE, SPR.ENG_DWT_CODE ")
|
.append("INNER JOIN ").append(tableName).append(" SWS ON SWS.STCD = SWT.STCD ")
|
||||||
.append(" FROM SD_PRWTRLTN_B SPR ")
|
.append("INNER JOIN SD_WTENGRLTN_B REL ON REL.STCD = SWT.STCD ")
|
||||||
.append(" WHERE SPR.IS_DELETED = 0 ");
|
.append("INNER JOIN SD_ENGINFO_B_H SEG ON SEG.STCD = SWT.RSTCD ")
|
||||||
|
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
|
||||||
if (StrUtil.isNotBlank(relationStcd)) {
|
|
||||||
paramMap.put("relationStcd", relationStcd);
|
|
||||||
sql.append(" AND SPR.STCD = #{map.relationStcd} ");
|
|
||||||
}
|
|
||||||
sql.append(") REL ")
|
|
||||||
.append("INNER JOIN SD_ENGINFO_B_H SEG ON SEG.STCD = REL.STCD ")
|
|
||||||
.append("INNER JOIN ").append(tableName).append(" SWS ON SWS.STCD IN (REL.ENG_IWT_CODE, REL.ENG_DWT_CODE) ")
|
|
||||||
.append("INNER JOIN SD_WT_B_H SWT ON SWT.STCD = SWS.STCD ")
|
|
||||||
.append("WHERE SWS.IS_DELETED = 0 ")
|
.append("WHERE SWS.IS_DELETED = 0 ")
|
||||||
.append("AND SWT.IS_DELETED = 0 ")
|
.append("AND SWT.IS_DELETED = 0 ")
|
||||||
|
.append("AND REL.IS_DELETED = 0 ")
|
||||||
.append("AND SWT.USFL = 1 ")
|
.append("AND SWT.USFL = 1 ")
|
||||||
.append("AND SWT.MWAY = 2 ")
|
.append("AND SWT.MWAY = 2 ")
|
||||||
.append("AND SWT.STTP = 'WTRV' ")
|
.append("AND SWT.STTP = 'WTRV' ")
|
||||||
.append("AND SEG.USFL = 1 ");
|
.append("AND SEG.USFL = 1 ");
|
||||||
|
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
if (timeRange[0] != null && timeRange[1] != null) {
|
if (timeRange[0] != null && timeRange[1] != null) {
|
||||||
paramMap.put("startTime", timeRange[0]);
|
paramMap.put("startTime", timeRange[0]);
|
||||||
paramMap.put("endTime", timeRange[1]);
|
paramMap.put("endTime", timeRange[1]);
|
||||||
@ -140,8 +136,19 @@ public class SdRvwtSInOutOneServiceImpl extends ServiceImpl<SdRvwtSInOutOneMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isDetail) {
|
if (isDetail) {
|
||||||
appendDetailCondition(sql, forceType);
|
appendDetailCondition(sql, paramMap, forceType, engIwtCode, engDwtCode);
|
||||||
} else {
|
} else {
|
||||||
|
if (StrUtil.isNotBlank(engIwtCode) && StrUtil.isNotBlank(engDwtCode)) {
|
||||||
|
paramMap.put("engIwtCode", engIwtCode);
|
||||||
|
paramMap.put("engDwtCode", engDwtCode);
|
||||||
|
sql.append("AND ((REL.ENG_IWT_CODE = #{map.engIwtCode}) OR (REL.ENG_DWT_CODE = #{map.engDwtCode})) ");
|
||||||
|
} else if (StrUtil.isNotBlank(engIwtCode)) {
|
||||||
|
paramMap.put("engIwtCode", engIwtCode);
|
||||||
|
sql.append("AND REL.ENG_IWT_CODE = #{map.engIwtCode} ");
|
||||||
|
} else if (StrUtil.isNotBlank(engDwtCode)) {
|
||||||
|
paramMap.put("engDwtCode", engDwtCode);
|
||||||
|
sql.append("AND REL.ENG_DWT_CODE = #{map.engDwtCode} ");
|
||||||
|
}
|
||||||
appendInCondition(sql, paramMap, "SEG.BASE_ID", "baseId", baseIdList);
|
appendInCondition(sql, paramMap, "SEG.BASE_ID", "baseId", baseIdList);
|
||||||
appendInCondition(sql, paramMap, "SEG.RVCD", "rvcd", rvcdList);
|
appendInCondition(sql, paramMap, "SEG.RVCD", "rvcd", rvcdList);
|
||||||
}
|
}
|
||||||
@ -151,7 +158,7 @@ public class SdRvwtSInOutOneServiceImpl extends ServiceImpl<SdRvwtSInOutOneMappe
|
|||||||
List<SdRvwtSVO> resultList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdRvwtSVO.class);
|
List<SdRvwtSVO> resultList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdRvwtSVO.class);
|
||||||
|
|
||||||
if (!isDetail) {
|
if (!isDetail) {
|
||||||
fillDwtp(resultList);
|
fillDwtp(resultList, engIwtCode, engDwtCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
DataSourceResult<SdRvwtSVO> result = new DataSourceResult<>();
|
DataSourceResult<SdRvwtSVO> result = new DataSourceResult<>();
|
||||||
@ -160,23 +167,43 @@ public class SdRvwtSInOutOneServiceImpl extends ServiceImpl<SdRvwtSInOutOneMappe
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void appendDetailCondition(StringBuilder sql, String forceType) {
|
private void appendDetailCondition(StringBuilder sql,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
String forceType,
|
||||||
|
String engIwtCode,
|
||||||
|
String engDwtCode) {
|
||||||
if (TYPE_IWT.equals(forceType)) {
|
if (TYPE_IWT.equals(forceType)) {
|
||||||
sql.append("AND SWT.STCD = REL.ENG_IWT_CODE ");
|
sql.append("AND SWT.WT_TYPE = 'IWT' ");
|
||||||
|
if (StrUtil.isNotBlank(engIwtCode)) {
|
||||||
|
paramMap.put("detailEngIwtCode", engIwtCode);
|
||||||
|
sql.append("AND REL.ENG_IWT_CODE = #{map.detailEngIwtCode} ");
|
||||||
|
}
|
||||||
} else if (TYPE_DWT.equals(forceType)) {
|
} else if (TYPE_DWT.equals(forceType)) {
|
||||||
sql.append("AND SWT.STCD = REL.ENG_DWT_CODE ");
|
sql.append("AND SWT.WT_TYPE = 'DWT' ");
|
||||||
|
if (StrUtil.isNotBlank(engDwtCode)) {
|
||||||
|
paramMap.put("detailEngDwtCode", engDwtCode);
|
||||||
|
sql.append("AND REL.ENG_DWT_CODE = #{map.detailEngDwtCode} ");
|
||||||
|
}
|
||||||
|
} else if (StrUtil.isNotBlank(engDwtCode)) {
|
||||||
|
paramMap.put("detailEngDwtCode", engDwtCode);
|
||||||
|
sql.append("AND SWT.WT_TYPE = 'DWT' ")
|
||||||
|
.append("AND REL.ENG_DWT_CODE = #{map.detailEngDwtCode} ");
|
||||||
|
} else if (StrUtil.isNotBlank(engIwtCode)) {
|
||||||
|
paramMap.put("detailEngIwtCode", engIwtCode);
|
||||||
|
sql.append("AND SWT.WT_TYPE = 'IWT' ")
|
||||||
|
.append("AND REL.ENG_IWT_CODE = #{map.detailEngIwtCode} ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fillDwtp(List<SdRvwtSVO> voList) {
|
private void fillDwtp(List<SdRvwtSVO> voList, String engIwtCode, String engDwtCode) {
|
||||||
for (SdRvwtSVO vo : voList) {
|
for (SdRvwtSVO vo : voList) {
|
||||||
if (StrUtil.isNotBlank(vo.getStcd())
|
if (StrUtil.isNotBlank(vo.getEngIwtCode())
|
||||||
&& StrUtil.isNotBlank(vo.getEngIwtCode())
|
&& StrUtil.isNotBlank(engIwtCode)
|
||||||
&& vo.getStcd().equals(vo.getEngIwtCode())) {
|
&& vo.getEngIwtCode().contains(engIwtCode)) {
|
||||||
vo.setDwtp(SdRvwtSVO.DWTP_IWT);
|
vo.setDwtp(SdRvwtSVO.DWTP_IWT);
|
||||||
} else if (StrUtil.isNotBlank(vo.getStcd())
|
} else if (StrUtil.isNotBlank(vo.getEngDwtCode())
|
||||||
&& StrUtil.isNotBlank(vo.getEngDwtCode())
|
&& StrUtil.isNotBlank(engDwtCode)
|
||||||
&& vo.getStcd().equals(vo.getEngDwtCode())) {
|
&& vo.getEngDwtCode().contains(engDwtCode)) {
|
||||||
vo.setDwtp(SdRvwtSVO.DWTP_DWT);
|
vo.setDwtp(SdRvwtSVO.DWTP_DWT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -324,15 +351,4 @@ public class SdRvwtSInOutOneServiceImpl extends ServiceImpl<SdRvwtSInOutOneMappe
|
|||||||
return timeValue;
|
return timeValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String firstNotBlank(String... values) {
|
|
||||||
if (values == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
for (String value : values) {
|
|
||||||
if (StrUtil.isNotBlank(value)) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user