feat: 删除流量站小时/日/月数据&修改流量站小时数据
This commit is contained in:
parent
45467b37d6
commit
fa7b9b8e69
@ -141,8 +141,9 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
.append("fp.DTIN_TM AS dtinTm, ")
|
.append("fp.DTIN_TM AS dtinTm, ")
|
||||||
.append("fp.BLDSTT_CODE AS bldsttCcode, ")
|
.append("fp.BLDSTT_CODE AS bldsttCcode, ")
|
||||||
.append("CASE ")
|
.append("CASE ")
|
||||||
.append("WHEN fp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' ")
|
.append("WHEN fp.BLDSTT_CODE = 0 THEN '未建/规划' ")
|
||||||
.append("WHEN fp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ")
|
.append("WHEN fp.BLDSTT_CODE = 1 THEN '在建' ")
|
||||||
|
.append("WHEN fp.BLDSTT_CODE = 2 THEN '已建' ")
|
||||||
.append("ELSE '未建/规划' END AS bldsttCcodeName, ")
|
.append("ELSE '未建/规划' END AS bldsttCcodeName, ")
|
||||||
.append("fp.STDSDT AS stdsdt, ")
|
.append("fp.STDSDT AS stdsdt, ")
|
||||||
.append("fp.PSTSTDT AS pststdt, ")
|
.append("fp.PSTSTDT AS pststdt, ")
|
||||||
@ -462,7 +463,12 @@ public class FpBuildServiceImpl implements FpBuildService {
|
|||||||
columnMap.put("dtinName", "CASE WHEN NVL(fp.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END");
|
columnMap.put("dtinName", "CASE WHEN NVL(fp.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END");
|
||||||
columnMap.put("dtinTm", "fp.DTIN_TM");
|
columnMap.put("dtinTm", "fp.DTIN_TM");
|
||||||
columnMap.put("bldsttCcode", "fp.BLDSTT_CODE");
|
columnMap.put("bldsttCcode", "fp.BLDSTT_CODE");
|
||||||
columnMap.put("bldsttCcodeName", "CASE WHEN fp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN fp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
columnMap.put("bldsttCcodeName",
|
||||||
|
"CASE WHEN fp.BLDSTT_CODE = 0 THEN '未建/规划' " +
|
||||||
|
"WHEN fp.BLDSTT_CODE = 1 THEN '在建' " +
|
||||||
|
"WHEN fp.BLDSTT_CODE = 2 THEN '已建' " +
|
||||||
|
"ELSE '未知' END");
|
||||||
|
// columnMap.put("bldsttCcodeName", "CASE WHEN fp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN fp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
||||||
columnMap.put("stdsdt", "fp.STDSDT");
|
columnMap.put("stdsdt", "fp.STDSDT");
|
||||||
columnMap.put("pststdt", "fp.PSTSTDT");
|
columnMap.put("pststdt", "fp.PSTSTDT");
|
||||||
columnMap.put("pesstdt", "fp.PESSTDT");
|
columnMap.put("pesstdt", "fp.PESSTDT");
|
||||||
|
|||||||
@ -787,8 +787,10 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
"vb.HBRVCD AS hbrvcd, " +
|
"vb.HBRVCD AS hbrvcd, " +
|
||||||
"hbrv.HBRVNM AS hbrvcdName, " +
|
"hbrv.HBRVNM AS hbrvcdName, " +
|
||||||
"TO_CHAR(vb.BLDSTT_CODE) AS bldsttCcode, " +
|
"TO_CHAR(vb.BLDSTT_CODE) AS bldsttCcode, " +
|
||||||
"CASE WHEN vb.BLDSTT_CODE IN (1, 10, 11) THEN '已建' " +
|
"CASE WHEN vb.BLDSTT_CODE = 1 THEN '在建' " +
|
||||||
"WHEN vb.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, " +
|
"WHEN vb.BLDSTT_CODE = 2 THEN '已建' ELSE '未建/规划' END AS bldsttCcodeName, " +
|
||||||
|
// "CASE WHEN vb.BLDSTT_CODE IN (1, 10, 11) THEN '已建' " +
|
||||||
|
// "WHEN vb.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, " +
|
||||||
"va.TETP AS tetp, " +
|
"va.TETP AS tetp, " +
|
||||||
"va.TECNT AS tecnt, " +
|
"va.TECNT AS tecnt, " +
|
||||||
"va.STLC AS stlc, " +
|
"va.STLC AS stlc, " +
|
||||||
@ -989,7 +991,12 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
columnMap.put("hbrvcdName", "hbrv.HBRVNM");
|
columnMap.put("hbrvcdName", "hbrv.HBRVNM");
|
||||||
columnMap.put("bldsttCcode", "vb.BLDSTT_CODE");
|
columnMap.put("bldsttCcode", "vb.BLDSTT_CODE");
|
||||||
columnMap.put("bldsttCcodeName",
|
columnMap.put("bldsttCcodeName",
|
||||||
"CASE WHEN vb.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vb.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
"CASE WHEN vb.BLDSTT_CODE = 0 THEN '未建/规划' " +
|
||||||
|
"WHEN vb.BLDSTT_CODE = 1 THEN '在建' " +
|
||||||
|
"WHEN vb.BLDSTT_CODE = 2 THEN '已建' " +
|
||||||
|
"ELSE '未知' END");
|
||||||
|
// columnMap.put("bldsttCcodeName",
|
||||||
|
// "CASE WHEN vb.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vb.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
||||||
columnMap.put("tetp", "va.TETP");
|
columnMap.put("tetp", "va.TETP");
|
||||||
columnMap.put("tecnt", "va.TECNT");
|
columnMap.put("tecnt", "va.TECNT");
|
||||||
columnMap.put("stlc", "va.STLC");
|
columnMap.put("stlc", "va.STLC");
|
||||||
@ -1717,7 +1724,12 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
columnMap.put("bldstt", "vp.BLPRD");
|
columnMap.put("bldstt", "vp.BLPRD");
|
||||||
columnMap.put("bldsttCcode", "vp.BLDSTT_CODE");
|
columnMap.put("bldsttCcode", "vp.BLDSTT_CODE");
|
||||||
columnMap.put("bldsttName", "CASE WHEN vp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
columnMap.put("bldsttName", "CASE WHEN vp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
||||||
columnMap.put("bldsttCcodeName", "CASE WHEN vp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
// columnMap.put("bldsttCcodeName", "CASE WHEN vp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
|
||||||
|
columnMap.put("bldsttCcodeName",
|
||||||
|
"CASE WHEN vp.BLDSTT_CODE = 0 THEN '未建/规划' " +
|
||||||
|
"WHEN vp.BLDSTT_CODE = 1 THEN '在建' " +
|
||||||
|
"WHEN vp.BLDSTT_CODE = 2 THEN '已建' " +
|
||||||
|
"ELSE '未知' END");
|
||||||
columnMap.put("stdsdt", "vp.STDSDT");
|
columnMap.put("stdsdt", "vp.STDSDT");
|
||||||
columnMap.put("ststdt", "vp.STDSDT");
|
columnMap.put("ststdt", "vp.STDSDT");
|
||||||
columnMap.put("pststdt", "vp.PSTSTDT");
|
columnMap.put("pststdt", "vp.PSTSTDT");
|
||||||
|
|||||||
@ -211,7 +211,12 @@ public class VdMonitorServiceImpl implements VdMonitorService {
|
|||||||
selectMap.put("dtinName", "CASE WHEN NVL(t.dtin, 0) = 1 THEN '已接入' ELSE '未接入' END AS dtinName");
|
selectMap.put("dtinName", "CASE WHEN NVL(t.dtin, 0) = 1 THEN '已接入' ELSE '未接入' END AS dtinName");
|
||||||
selectMap.put("usfl", "t.usfl AS usfl");
|
selectMap.put("usfl", "t.usfl AS usfl");
|
||||||
selectMap.put("bldsttCcode", "t.bldsttCcode AS bldsttCcode");
|
selectMap.put("bldsttCcode", "t.bldsttCcode AS bldsttCcode");
|
||||||
selectMap.put("bldsttCcodeName", "CASE WHEN t.bldsttCcode IN (1, 10, 11) THEN '已建' WHEN t.bldsttCcode IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
selectMap.put("bldsttCcodeName",
|
||||||
|
"CASE WHEN t.bldsttCcode = 0 THEN '未建/规划' " +
|
||||||
|
"WHEN t.bldsttCcode = 1 THEN '在建' " +
|
||||||
|
"WHEN t.bldsttCcode = 2 THEN '已建' " +
|
||||||
|
"ELSE '未知' END");
|
||||||
|
// selectMap.put("bldsttCcodeName", "CASE WHEN t.bldsttCcode IN (1, 10, 11) THEN '已建' WHEN t.bldsttCcode IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
||||||
selectMap.put("stindx", "t.stindx AS stindx");
|
selectMap.put("stindx", "t.stindx AS stindx");
|
||||||
selectMap.put("introduce", "t.introduce AS introduce");
|
selectMap.put("introduce", "t.introduce AS introduce");
|
||||||
selectMap.put("logo", "t.logo AS logo");
|
selectMap.put("logo", "t.logo AS logo");
|
||||||
|
|||||||
@ -104,7 +104,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
"t.JCDT AS jcdt, " +
|
"t.JCDT AS jcdt, " +
|
||||||
"t.WDDT AS wddt, " +
|
"t.WDDT AS wddt, " +
|
||||||
"t.BLDSTT_CODE AS bldsttCode, " +
|
"t.BLDSTT_CODE AS bldsttCode, " +
|
||||||
"CASE WHEN t.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN t.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, "+
|
"CASE WHEN t.BLDSTT_CODE =2 THEN '已建' WHEN t.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, "+
|
||||||
"t.INV AS inv, " +
|
"t.INV AS inv, " +
|
||||||
"t.INVINMN AS invinmn, " +
|
"t.INVINMN AS invinmn, " +
|
||||||
"t.INTRODUCE AS introduce, " +
|
"t.INTRODUCE AS introduce, " +
|
||||||
@ -2003,7 +2003,12 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
columnMap.put("stcd", "wt.STCD AS stcd");
|
columnMap.put("stcd", "wt.STCD AS stcd");
|
||||||
columnMap.put("fhstcd", "wt.FHSTCD AS fhstcd");
|
columnMap.put("fhstcd", "wt.FHSTCD AS fhstcd");
|
||||||
columnMap.put("rstcd", "wt.RSTCD AS rstcd");
|
columnMap.put("rstcd", "wt.RSTCD AS rstcd");
|
||||||
columnMap.put("bldsttCcodeName", "CASE WHEN wt.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN wt.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
// columnMap.put("bldsttCcodeName", "CASE WHEN wt.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN wt.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
||||||
|
columnMap.put("bldsttCcodeName",
|
||||||
|
"CASE WHEN wt.BLDSTT_CODE = 0 THEN '未建/规划' " +
|
||||||
|
"WHEN wt.BLDSTT_CODE = 1 THEN '在建' " +
|
||||||
|
"WHEN wt.BLDSTT_CODE = 2 THEN '已建' " +
|
||||||
|
"ELSE '未知' END");
|
||||||
columnMap.put("bldsttCcode", "wt.BLDSTT_CODE AS bldsttCcode");
|
columnMap.put("bldsttCcode", "wt.BLDSTT_CODE AS bldsttCcode");
|
||||||
columnMap.put("stCode", "NULL AS stCode");
|
columnMap.put("stCode", "NULL AS stCode");
|
||||||
columnMap.put("stName", "NULL AS stName");
|
columnMap.put("stName", "NULL AS stName");
|
||||||
|
|||||||
@ -189,8 +189,8 @@ public class SdWtvtRServiceImpl extends ServiceImpl<SdWtvtRMapper, SdWtvtYearVo>
|
|||||||
item.put("tm", dt);
|
item.put("tm", dt);
|
||||||
item.put("wthg", parseBigDecimal(wthgStr));
|
item.put("wthg", parseBigDecimal(wthgStr));
|
||||||
item.put("vwt", parseBigDecimal(vwtStr));
|
item.put("vwt", parseBigDecimal(vwtStr));
|
||||||
item.put("recordUser", "admin");
|
// item.put("recordUser", "admin");
|
||||||
// item.put("recordUser", SecurityUtils.getUserId());
|
item.put("recordUser", SecurityUtils.getUserId());
|
||||||
dataList.add(item);
|
dataList.add(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.yfd.platform.qgc_env.zq.controller;
|
|||||||
|
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
|
import com.yfd.platform.qgc_base.entity.vo.BatchDeleteAo;
|
||||||
import com.yfd.platform.qgc_env.zq.service.ZqMonitorService;
|
import com.yfd.platform.qgc_env.zq.service.ZqMonitorService;
|
||||||
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;
|
||||||
@ -14,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/zq")
|
@RequestMapping("/zq")
|
||||||
@Tag(name = "水文流量站监测")
|
@Tag(name = "水文流量站监测")
|
||||||
@ -53,6 +56,20 @@ public class ZqMonitorController {
|
|||||||
return ResponseResult.successData(zqMonitorService.getRiverDrtpKendoListCust(dataSourceRequest));
|
return ResponseResult.successData(zqMonitorService.getRiverDrtpKendoListCust(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/river/removeKendoByIds")
|
||||||
|
@Operation(summary = "删除流量站小时/日/月数据")
|
||||||
|
public ResponseResult removeKendoByIds(@RequestBody BatchDeleteAo batchDeleteAo) {
|
||||||
|
zqMonitorService.removeKendoByIds(batchDeleteAo);
|
||||||
|
return ResponseResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/river/updateRiverRData")
|
||||||
|
@Operation(summary = "修改流量站小时数据")
|
||||||
|
public ResponseResult updateRiverRData(@RequestBody Map<String, Object> updateData) {
|
||||||
|
zqMonitorService.updateRiverRData(updateData);
|
||||||
|
return ResponseResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/msstbprpt/getStcdInfo")
|
@GetMapping("/msstbprpt/getStcdInfo")
|
||||||
@Operation(summary = "根据站码查询单条水文站基础数据")
|
@Operation(summary = "根据站码查询单条水文站基础数据")
|
||||||
public ResponseResult getStcdInfo(@RequestParam String stcd) {
|
public ResponseResult getStcdInfo(@RequestParam String stcd) {
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.yfd.platform.qgc_env.zq.service;
|
|||||||
|
|
||||||
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.qgc_base.entity.vo.BatchDeleteAo;
|
||||||
import com.yfd.platform.qgc_env.zq.entity.vo.ZqBaseInfoVo;
|
import com.yfd.platform.qgc_env.zq.entity.vo.ZqBaseInfoVo;
|
||||||
import com.yfd.platform.qgc_env.zq.entity.vo.ZqRiverDayDataVo;
|
import com.yfd.platform.qgc_env.zq.entity.vo.ZqRiverDayDataVo;
|
||||||
import com.yfd.platform.qgc_env.zq.entity.vo.ZqRiverDrtpDataVo;
|
import com.yfd.platform.qgc_env.zq.entity.vo.ZqRiverDrtpDataVo;
|
||||||
@ -19,5 +20,9 @@ public interface ZqMonitorService {
|
|||||||
|
|
||||||
DataSourceResult<ZqRiverDrtpDataVo> getRiverDrtpKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<ZqRiverDrtpDataVo> getRiverDrtpKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
boolean removeKendoByIds(BatchDeleteAo batchDeleteAo);
|
||||||
|
|
||||||
|
boolean updateRiverRData(java.util.Map<String, Object> updateData);
|
||||||
|
|
||||||
ZqBaseInfoVo getStcdInfo(String stcd);
|
ZqBaseInfoVo getStcdInfo(String stcd);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,8 @@ import com.yfd.platform.common.GroupHelper;
|
|||||||
import com.yfd.platform.common.GroupingInfo;
|
import com.yfd.platform.common.GroupingInfo;
|
||||||
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||||
import com.yfd.platform.common.exception.BizException;
|
import com.yfd.platform.common.exception.BizException;
|
||||||
|
import com.yfd.platform.qgc_base.entity.vo.BatchDeleteAo;
|
||||||
|
import com.yfd.platform.qgc_base.entity.vo.DataParam;
|
||||||
import com.yfd.platform.qgc_env.fh.entity.vo.HabitatVo;
|
import com.yfd.platform.qgc_env.fh.entity.vo.HabitatVo;
|
||||||
import com.yfd.platform.qgc_env.zq.entity.vo.ZqBaseInfoVo;
|
import com.yfd.platform.qgc_env.zq.entity.vo.ZqBaseInfoVo;
|
||||||
import com.yfd.platform.qgc_env.zq.entity.vo.ZqRiverDayDataVo;
|
import com.yfd.platform.qgc_env.zq.entity.vo.ZqRiverDayDataVo;
|
||||||
@ -19,13 +21,18 @@ import com.yfd.platform.qgc_env.zq.service.ZqMonitorService;
|
|||||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ZqMonitorServiceImpl implements ZqMonitorService {
|
public class ZqMonitorServiceImpl implements ZqMonitorService {
|
||||||
@ -33,6 +40,9 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
|
|||||||
@Resource
|
@Resource
|
||||||
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
|
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
||||||
return getMsstbprptListInternal(dataSourceRequest, false);
|
return getMsstbprptListInternal(dataSourceRequest, false);
|
||||||
@ -152,6 +162,81 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
|
|||||||
return queryRiverDrtpGroupList(dataSourceRequest, loadOptions);
|
return queryRiverDrtpGroupList(dataSourceRequest, loadOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public boolean removeKendoByIds(BatchDeleteAo batchDeleteAo) {
|
||||||
|
if (batchDeleteAo == null || CollUtil.isEmpty(batchDeleteAo.getDataList())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
String dataType = batchDeleteAo.getDataType();
|
||||||
|
List<DataParam> dataList = batchDeleteAo.getDataList();
|
||||||
|
int batchSize = 500;
|
||||||
|
for (int i = 0; i < dataList.size(); i += batchSize) {
|
||||||
|
List<DataParam> subList = dataList.subList(i, Math.min(i + batchSize, dataList.size()));
|
||||||
|
if ("TIME".equals(dataType)) {
|
||||||
|
deleteRiverRData(subList);
|
||||||
|
Map<String, String[]> dateRangeMap = new HashMap<>();
|
||||||
|
Map<String, String[]> monthRangeMap = new HashMap<>();
|
||||||
|
for (DataParam param : subList) {
|
||||||
|
if (param == null || StrUtil.isBlank(param.getId()) || StrUtil.isBlank(param.getTm()) || param.getTm().length() < 10) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String stcd = param.getId();
|
||||||
|
String tm = param.getTm();
|
||||||
|
String dateStr = tm.substring(0, 10);
|
||||||
|
dateRangeMap.compute(stcd, (k, range) -> mergeDateRange(range, dateStr));
|
||||||
|
|
||||||
|
String yearMonth = tm.substring(0, 7);
|
||||||
|
String[] ym = yearMonth.split("-");
|
||||||
|
if (ym.length == 2) {
|
||||||
|
Integer year = Integer.parseInt(ym[0]);
|
||||||
|
Integer month = Integer.parseInt(ym[1]);
|
||||||
|
String monthStart = year + "-" + String.format("%02d", month) + "-01";
|
||||||
|
String monthEnd = getMonthEndDate(year, month);
|
||||||
|
String monthKey = stcd + "_" + year + "_" + month;
|
||||||
|
monthRangeMap.putIfAbsent(monthKey, new String[]{stcd, monthStart, monthEnd});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, String[]> entry : dateRangeMap.entrySet()) {
|
||||||
|
statisticsDayDataFromHour(entry.getKey(), entry.getValue()[0], entry.getValue()[1]);
|
||||||
|
}
|
||||||
|
Set<String> processedMonths = new HashSet<>();
|
||||||
|
for (String[] values : monthRangeMap.values()) {
|
||||||
|
String monthKey = values[0] + "_" + values[1];
|
||||||
|
if (processedMonths.add(monthKey)) {
|
||||||
|
statisticsMonthDataFromDay(values[0], values[1], values[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("DATE".equals(dataType)) {
|
||||||
|
deleteRiverDayData(subList);
|
||||||
|
}
|
||||||
|
if ("MON".equals(dataType)) {
|
||||||
|
deleteRiverMonthData(subList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public boolean updateRiverRData(Map<String, Object> updateData) {
|
||||||
|
updateRiverHourData(updateData);
|
||||||
|
String stcd = updateData == null ? null : asString(updateData.get("stcd"));
|
||||||
|
String tm = updateData == null ? null : asString(updateData.get("tm"));
|
||||||
|
if (StrUtil.isNotBlank(stcd) && StrUtil.isNotBlank(tm) && tm.length() >= 10) {
|
||||||
|
String dateStr = tm.substring(0, 10);
|
||||||
|
statisticsDayDataFromHour(stcd, dateStr, dateStr);
|
||||||
|
String[] ym = dateStr.substring(0, 7).split("-");
|
||||||
|
if (ym.length == 2) {
|
||||||
|
Integer year = Integer.parseInt(ym[0]);
|
||||||
|
Integer month = Integer.parseInt(ym[1]);
|
||||||
|
statisticsMonthDataFromDay(stcd, year + "-" + String.format("%02d", month) + "-01", getMonthEndDate(year, month));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ZqBaseInfoVo getStcdInfo(String stcd) {
|
public ZqBaseInfoVo getStcdInfo(String stcd) {
|
||||||
if (StrUtil.isBlank(stcd)) {
|
if (StrUtil.isBlank(stcd)) {
|
||||||
@ -169,7 +254,7 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
|
|||||||
"t.JCDT AS jcdt, " +
|
"t.JCDT AS jcdt, " +
|
||||||
"t.WDDT AS wddt, " +
|
"t.WDDT AS wddt, " +
|
||||||
"t.BLDSTT_CODE AS bldsttCode, " +
|
"t.BLDSTT_CODE AS bldsttCode, " +
|
||||||
"CASE WHEN t.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN t.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, " +
|
"CASE WHEN t.BLDSTT_CODE = 2 THEN '已建' WHEN t.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, " +
|
||||||
"t.INTRODUCE AS introduce, " +
|
"t.INTRODUCE AS introduce, " +
|
||||||
"t.LOGO AS logo, " +
|
"t.LOGO AS logo, " +
|
||||||
"t.INFFILE AS inffile, " +
|
"t.INFFILE AS inffile, " +
|
||||||
@ -1402,6 +1487,235 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
|
|||||||
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
|
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void deleteRiverRData(List<DataParam> list) {
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
StringBuilder sql = new StringBuilder("DELETE FROM SD_RIVER_R WHERE ");
|
||||||
|
List<Object> args = new ArrayList<>();
|
||||||
|
appendRiverDeleteConditions(sql, args, list, false, false);
|
||||||
|
if (!args.isEmpty()) {
|
||||||
|
jdbcTemplate.update(sql.toString(), args.toArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteRiverDayData(List<DataParam> list) {
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
StringBuilder sql = new StringBuilder("DELETE FROM SD_RIVERDAY_S WHERE ");
|
||||||
|
List<Object> args = new ArrayList<>();
|
||||||
|
appendRiverDeleteConditions(sql, args, list, true, false);
|
||||||
|
if (!args.isEmpty()) {
|
||||||
|
jdbcTemplate.update(sql.toString(), args.toArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteRiverMonthData(List<DataParam> list) {
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
StringBuilder sql = new StringBuilder("DELETE FROM SD_RIVERDRTP_S WHERE ");
|
||||||
|
List<String> conditions = new ArrayList<>();
|
||||||
|
List<Object> args = new ArrayList<>();
|
||||||
|
for (DataParam item : list) {
|
||||||
|
if (item == null || StrUtil.isBlank(item.getId()) || StrUtil.isBlank(item.getDrtp())
|
||||||
|
|| StrUtil.isBlank(item.getYear()) || StrUtil.isBlank(item.getMonth())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
conditions.add("(STCD = ? AND DRTP = ? AND YEAR = ? AND MONTH = ?)");
|
||||||
|
args.add(item.getId());
|
||||||
|
args.add(item.getDrtp());
|
||||||
|
args.add(Integer.parseInt(item.getYear()));
|
||||||
|
args.add(Integer.parseInt(item.getMonth()));
|
||||||
|
}
|
||||||
|
if (!conditions.isEmpty()) {
|
||||||
|
sql.append(String.join(" OR ", conditions));
|
||||||
|
jdbcTemplate.update(sql.toString(), args.toArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void appendRiverDeleteConditions(StringBuilder sql,
|
||||||
|
List<Object> args,
|
||||||
|
List<DataParam> list,
|
||||||
|
boolean dayTable,
|
||||||
|
boolean includeSeconds) {
|
||||||
|
List<String> conditions = new ArrayList<>();
|
||||||
|
for (DataParam item : list) {
|
||||||
|
if (item == null || StrUtil.isBlank(item.getId())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String timeValue = dayTable ? item.getDt() : item.getTm();
|
||||||
|
if (StrUtil.isBlank(timeValue)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String pattern = dayTable ? "yyyy-MM-dd HH24:mi:ss" : "yyyy-MM-dd HH24:mi:ss";
|
||||||
|
String column = dayTable ? "DT" : "TM";
|
||||||
|
conditions.add("(STCD = ? AND " + column + " = TO_DATE(?, '" + pattern + "'))");
|
||||||
|
args.add(item.getId());
|
||||||
|
args.add(timeValue);
|
||||||
|
}
|
||||||
|
if (!conditions.isEmpty()) {
|
||||||
|
sql.append(String.join(" OR ", conditions));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateRiverHourData(Map<String, Object> updateData) {
|
||||||
|
if (updateData == null || StrUtil.isBlank(asString(updateData.get("stcd"))) || StrUtil.isBlank(asString(updateData.get("tm")))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<String> setParts = new ArrayList<>();
|
||||||
|
List<Object> args = new ArrayList<>();
|
||||||
|
if (updateData.containsKey("z")) {
|
||||||
|
setParts.add("Z = ?");
|
||||||
|
args.add(updateData.get("z"));
|
||||||
|
}
|
||||||
|
if (updateData.containsKey("q")) {
|
||||||
|
setParts.add("Q = ?");
|
||||||
|
args.add(updateData.get("q"));
|
||||||
|
}
|
||||||
|
if (updateData.containsKey("v")) {
|
||||||
|
setParts.add("V = ?");
|
||||||
|
args.add(updateData.get("v"));
|
||||||
|
}
|
||||||
|
if (setParts.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String sql = "UPDATE SD_RIVER_R SET " + String.join(", ", setParts)
|
||||||
|
+ " WHERE STCD = ? AND TM = TO_DATE(?, 'yyyy-MM-dd HH24:mi:ss')";
|
||||||
|
args.add(asString(updateData.get("stcd")));
|
||||||
|
args.add(asString(updateData.get("tm")));
|
||||||
|
jdbcTemplate.update(sql, args.toArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
private String[] mergeDateRange(String[] range, String dateStr) {
|
||||||
|
if (range == null) {
|
||||||
|
return new String[]{dateStr, dateStr};
|
||||||
|
}
|
||||||
|
if (dateStr.compareTo(range[0]) < 0) {
|
||||||
|
range[0] = dateStr;
|
||||||
|
}
|
||||||
|
if (dateStr.compareTo(range[1]) > 0) {
|
||||||
|
range[1] = dateStr;
|
||||||
|
}
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getMonthEndDate(Integer year, Integer month) {
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.set(year, month - 1, 1);
|
||||||
|
int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
|
||||||
|
return year + "-" + String.format("%02d", month) + "-" + String.format("%02d", lastDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String asString(Object value) {
|
||||||
|
return value == null ? null : String.valueOf(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void statisticsDayDataFromHour(String stcd, String startDate, String endDate) {
|
||||||
|
String deleteSql = "DELETE FROM SD_RIVERDAY_S T " +
|
||||||
|
"WHERE T.STCD = ? " +
|
||||||
|
"AND T.DT BETWEEN TO_DATE(?, 'YYYY-MM-DD') " +
|
||||||
|
"AND TO_DATE(?, 'YYYY-MM-DD') " +
|
||||||
|
"AND NOT EXISTS ( " +
|
||||||
|
"SELECT 1 FROM SD_RIVER_R S " +
|
||||||
|
"WHERE S.STCD = T.STCD " +
|
||||||
|
"AND TRUNC(S.TM) = T.DT " +
|
||||||
|
"AND S.TM >= TO_DATE(? || ' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') " +
|
||||||
|
"AND S.TM <= TO_DATE(? || ' 23:59:59', 'YYYY-MM-DD HH24:MI:SS') " +
|
||||||
|
"AND NVL(S.IS_DELETED, 0) = 0)";
|
||||||
|
jdbcTemplate.update(deleteSql, stcd, startDate, endDate, startDate, endDate);
|
||||||
|
|
||||||
|
String mergeSql = "MERGE INTO SD_RIVERDAY_S T " +
|
||||||
|
"USING ( " +
|
||||||
|
" SELECT STCD, " +
|
||||||
|
" TRUNC(TM) AS DT, " +
|
||||||
|
" AVG(Z) AS Z, " +
|
||||||
|
" AVG(Q) AS Q, " +
|
||||||
|
" AVG(V) AS V, " +
|
||||||
|
" MIN(MSQMT) AS MSQMT " +
|
||||||
|
" FROM SD_RIVER_R " +
|
||||||
|
" WHERE STCD = ? " +
|
||||||
|
" AND TM >= TO_DATE(? || ' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') " +
|
||||||
|
" AND TM <= TO_DATE(? || ' 23:59:59', 'YYYY-MM-DD HH24:MI:SS') " +
|
||||||
|
" AND NVL(IS_DELETED, 0) = 0 " +
|
||||||
|
" GROUP BY STCD, TRUNC(TM) " +
|
||||||
|
") S " +
|
||||||
|
"ON (T.STCD = S.STCD AND T.DT = S.DT) " +
|
||||||
|
"WHEN MATCHED THEN UPDATE SET " +
|
||||||
|
" T.Z = S.Z, " +
|
||||||
|
" T.Q = S.Q, " +
|
||||||
|
" T.V = S.V, " +
|
||||||
|
" T.MSQMT = S.MSQMT, " +
|
||||||
|
" T.IS_DELETED = 0, " +
|
||||||
|
" T.DELETE_USER = NULL, " +
|
||||||
|
" T.DELETE_TIME = NULL, " +
|
||||||
|
" T.MODIFY_USER = NULL, " +
|
||||||
|
" T.MODIFY_TIME = SYSDATE " +
|
||||||
|
"WHEN NOT MATCHED THEN INSERT ( " +
|
||||||
|
" ID, STCD, DT, Z, Q, V, MSQMT, RECORD_TIME, IS_DELETED " +
|
||||||
|
") VALUES ( " +
|
||||||
|
" SYS_GUID(), S.STCD, S.DT, S.Z, S.Q, S.V, S.MSQMT, SYSDATE, 0 " +
|
||||||
|
")";
|
||||||
|
jdbcTemplate.update(mergeSql, stcd, startDate, endDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void statisticsMonthDataFromDay(String stcd, String startDate, String endDate) {
|
||||||
|
Integer startYearInt = Integer.parseInt(startDate.substring(0, 4));
|
||||||
|
Integer startMonthInt = Integer.parseInt(startDate.substring(5, 7));
|
||||||
|
Integer endMonthInt = Integer.parseInt(endDate.substring(5, 7));
|
||||||
|
|
||||||
|
String deleteSql = "DELETE FROM SD_RIVERDRTP_S T " +
|
||||||
|
"WHERE T.DRTP = 'MON' " +
|
||||||
|
"AND T.STCD = ? " +
|
||||||
|
"AND T.YEAR = ? " +
|
||||||
|
"AND T.MONTH BETWEEN ? AND ? " +
|
||||||
|
"AND NOT EXISTS ( " +
|
||||||
|
" SELECT 1 FROM SD_RIVERDAY_S D " +
|
||||||
|
" WHERE D.STCD = T.STCD " +
|
||||||
|
" AND NVL(D.IS_DELETED, 0) = 0 " +
|
||||||
|
" AND EXTRACT(YEAR FROM D.DT) = T.YEAR " +
|
||||||
|
" AND EXTRACT(MONTH FROM D.DT) = T.MONTH " +
|
||||||
|
" AND D.DT >= TO_DATE(?, 'YYYY-MM-DD') " +
|
||||||
|
" AND D.DT < TO_DATE(?, 'YYYY-MM-DD') + 1)";
|
||||||
|
jdbcTemplate.update(deleteSql, stcd, startYearInt, startMonthInt, endMonthInt, startDate, endDate);
|
||||||
|
|
||||||
|
String mergeSql = "MERGE INTO SD_RIVERDRTP_S T " +
|
||||||
|
"USING ( " +
|
||||||
|
" SELECT STCD, " +
|
||||||
|
" EXTRACT(YEAR FROM DT) AS YEAR, " +
|
||||||
|
" EXTRACT(MONTH FROM DT) AS MONTH, " +
|
||||||
|
" 'MON' AS DRTP, " +
|
||||||
|
" AVG(Z) AS Z, " +
|
||||||
|
" AVG(Q) AS Q, " +
|
||||||
|
" AVG(V) AS V, " +
|
||||||
|
" MIN(MSQMT) AS MSQMT " +
|
||||||
|
" FROM SD_RIVERDAY_S " +
|
||||||
|
" WHERE STCD = ? " +
|
||||||
|
" AND DT >= TO_DATE(?, 'YYYY-MM-DD') " +
|
||||||
|
" AND DT < TO_DATE(?, 'YYYY-MM-DD') + 1 " +
|
||||||
|
" AND NVL(IS_DELETED, 0) = 0 " +
|
||||||
|
" GROUP BY STCD, EXTRACT(YEAR FROM DT), EXTRACT(MONTH FROM DT) " +
|
||||||
|
") S " +
|
||||||
|
"ON (T.STCD = S.STCD AND T.DRTP = 'MON' AND T.YEAR = S.YEAR AND T.MONTH = S.MONTH) " +
|
||||||
|
"WHEN MATCHED THEN UPDATE SET " +
|
||||||
|
" T.Z = S.Z, " +
|
||||||
|
" T.Q = S.Q, " +
|
||||||
|
" T.V = S.V, " +
|
||||||
|
" T.MSQMT = S.MSQMT, " +
|
||||||
|
" T.IS_DELETED = 0, " +
|
||||||
|
" T.DELETE_TIME = NULL, " +
|
||||||
|
" T.MODIFY_TIME = SYSDATE, " +
|
||||||
|
" T.TM = TO_DATE(S.YEAR || '-' || LPAD(S.MONTH, 2, '0') || '-01', 'YYYY-MM-DD') " +
|
||||||
|
"WHEN NOT MATCHED THEN INSERT ( " +
|
||||||
|
" ID, STCD, DRTP, YEAR, MONTH, Z, Q, V, MSQMT, RECORD_TIME, IS_DELETED, TM " +
|
||||||
|
") VALUES ( " +
|
||||||
|
" SYS_GUID(), S.STCD, 'MON', S.YEAR, S.MONTH, S.Z, S.Q, S.V, S.MSQMT, SYSDATE, 0, " +
|
||||||
|
" TO_DATE(S.YEAR || '-' || LPAD(S.MONTH, 2, '0') || '-01', 'YYYY-MM-DD') " +
|
||||||
|
")";
|
||||||
|
jdbcTemplate.update(mergeSql, stcd, startDate, endDate);
|
||||||
|
}
|
||||||
|
|
||||||
private String buildRiverAggregateSql(String aggregate, String column, String field) {
|
private String buildRiverAggregateSql(String aggregate, String column, String field) {
|
||||||
String normalized = aggregate == null ? "" : aggregate.toLowerCase();
|
String normalized = aggregate == null ? "" : aggregate.toLowerCase();
|
||||||
return switch (normalized) {
|
return switch (normalized) {
|
||||||
@ -1559,7 +1873,7 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
|
|||||||
selectMap.put("jcdt", "t.JCDT AS jcdt");
|
selectMap.put("jcdt", "t.JCDT AS jcdt");
|
||||||
selectMap.put("wddt", "t.WDDT AS wddt");
|
selectMap.put("wddt", "t.WDDT AS wddt");
|
||||||
selectMap.put("bldsttCode", "t.BLDSTT_CODE AS bldsttCode");
|
selectMap.put("bldsttCode", "t.BLDSTT_CODE AS bldsttCode");
|
||||||
selectMap.put("bldsttCcodeName", "CASE WHEN t.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN t.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
selectMap.put("bldsttCcodeName", "CASE WHEN t.BLDSTT_CODE =2 THEN '已建' WHEN t.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
||||||
selectMap.put("introduce", "t.INTRODUCE AS introduce");
|
selectMap.put("introduce", "t.INTRODUCE AS introduce");
|
||||||
selectMap.put("logo", "t.LOGO AS logo");
|
selectMap.put("logo", "t.LOGO AS logo");
|
||||||
selectMap.put("inffile", "t.INFFILE AS inffile");
|
selectMap.put("inffile", "t.INFFILE AS inffile");
|
||||||
@ -1681,7 +1995,7 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
|
|||||||
case "jcdt" -> "t.JCDT";
|
case "jcdt" -> "t.JCDT";
|
||||||
case "wddt" -> "t.WDDT";
|
case "wddt" -> "t.WDDT";
|
||||||
case "bldsttCode", "bldsttCcode" -> "t.BLDSTT_CODE";
|
case "bldsttCode", "bldsttCcode" -> "t.BLDSTT_CODE";
|
||||||
case "bldsttCcodeName" -> "CASE WHEN t.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN t.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END";
|
case "bldsttCcodeName" -> "CASE WHEN t.BLDSTT_CODE =2 THEN '已建' WHEN t.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END";
|
||||||
case "introduce" -> "t.INTRODUCE";
|
case "introduce" -> "t.INTRODUCE";
|
||||||
case "logo" -> "t.LOGO";
|
case "logo" -> "t.LOGO";
|
||||||
case "inffile" -> "t.INFFILE";
|
case "inffile" -> "t.INFFILE";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user