供水统计

master
wany 2024-07-24 09:11:20 +08:00
parent dbc554408f
commit 44340d9756
5 changed files with 49 additions and 24 deletions

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gunshi.core.result.R; import com.gunshi.core.result.R;
import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.xyt.entity.vo.StWaterRVo; import com.gunshi.project.xyt.entity.vo.StWaterRVo;
import com.gunshi.project.xyt.model.StWaterR; import com.gunshi.project.xyt.model.StWaterR;
import com.gunshi.project.xyt.service.StWaterRService; import com.gunshi.project.xyt.service.StWaterRService;
@ -19,16 +20,12 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* : * :
@ -98,4 +95,10 @@ public class StWaterRController {
List<StWaterRVo> vos = ConvertUtil.entityToVoList(this.list(stWaterR).getData(), StWaterRVo.class); List<StWaterRVo> vos = ConvertUtil.entityToVoList(this.list(stWaterR).getData(), StWaterRVo.class);
ExcelUtil.exportExcel(vos, filename, StWaterRVo.class, response, "供水流量表"); ExcelUtil.exportExcel(vos, filename, StWaterRVo.class, response, "供水流量表");
} }
@Operation(summary = "闸阀总览-供水统计")
@PostMapping("/stat")
public R<Map<String, BigDecimal>> stat(@RequestBody @Validated DateTimeRangeSo dateTimeRangeSo) {
return R.ok(service.stat(dateTimeRangeSo));
}
} }

View File

@ -1,8 +1,12 @@
package com.gunshi.project.xyt.mapper; package com.gunshi.project.xyt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.xyt.model.StWaterR; import com.gunshi.project.xyt.model.StWaterR;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/** /**
* : * :
@ -12,4 +16,15 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface StWaterRMapper extends BaseMapper<StWaterR> { public interface StWaterRMapper extends BaseMapper<StWaterR> {
@Select("""
<script>
select t.v,s.sttp as stcd from
(select stcd,sum(v)
from public.st_water_r t
where tm <![CDATA[>=]]> #{obj.start} and tm <![CDATA[<=]]> #{obj.end}
group by stcd ) t
left join st_stbprp_b s on t.stcd = s.stcd
</script>
""")
List<StWaterR> stat(DateTimeRangeSo dateTimeRangeSo);
} }

View File

@ -15,6 +15,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -64,7 +65,7 @@ public class StWaterR extends GenericPageParams implements Serializable {
@TableField(value="v") @TableField(value="v")
@Schema(description="水量") @Schema(description="水量")
// @Size(max = 0,message = "水量最大长度要小于 0") // @Size(max = 0,message = "水量最大长度要小于 0")
private String v; private BigDecimal v;
/** /**

View File

@ -1,18 +1,15 @@
package com.gunshi.project.xyt.service; package com.gunshi.project.xyt.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.project.xyt.entity.vo.GateStautsVo; import com.gunshi.project.xyt.entity.vo.GateStautsVo;
import com.gunshi.project.xyt.mapper.GateValveRMapper; import com.gunshi.project.xyt.mapper.GateValveRMapper;
import com.gunshi.project.xyt.mapper.GateValveRealMapper; import com.gunshi.project.xyt.mapper.GateValveRealMapper;
import com.gunshi.project.xyt.model.GateValveKey; import com.gunshi.project.xyt.model.GateValveKey;
import com.gunshi.project.xyt.model.GateValveKeyAutoDao; import com.gunshi.project.xyt.model.GateValveKeyAutoDao;
import com.gunshi.project.xyt.model.GateValveR;
import com.gunshi.project.xyt.model.GateValveReal; import com.gunshi.project.xyt.model.GateValveReal;
import com.gunshi.project.xyt.util.DateUtil; import com.gunshi.project.xyt.util.DateUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -58,18 +55,18 @@ public class GateValveRealService extends ServiceImpl<GateValveRealMapper, GateV
if(valveKey == null || !key.equals(valveKey.getKey())){ if(valveKey == null || !key.equals(valveKey.getKey())){
throw new IllegalArgumentException("密码不正确"); throw new IllegalArgumentException("密码不正确");
} }
//更新闸阀实时表和历史表 //todo 给闸阀下发调节指令
GateValveR gateValveR = new GateValveR(); // GateValveR gateValveR = new GateValveR();
BeanUtils.copyProperties(gateValveKey,gateValveR); // BeanUtils.copyProperties(gateValveKey,gateValveR);
gateValveR.setTm(new Date()); // gateValveR.setTm(new Date());
gateValveRMapper.insert(gateValveR); // gateValveRMapper.insert(gateValveR);
//
GateValveReal real = new GateValveReal(); // GateValveReal real = new GateValveReal();
BeanUtils.copyProperties(gateValveKey,real); // BeanUtils.copyProperties(gateValveKey,real);
real.setTm(new Date()); // real.setTm(new Date());
this.remove(new QueryWrapper<GateValveReal>().eq("valve_code",valveCode)); // this.remove(new QueryWrapper<GateValveReal>().eq("valve_code",valveCode));
this.save(real); // this.save(real);
return "调节闸阀成功"; return "调节闸阀指令已下发";
} }
} }

View File

@ -1,13 +1,17 @@
package com.gunshi.project.xyt.service; package com.gunshi.project.xyt.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.xyt.mapper.StWaterRMapper; import com.gunshi.project.xyt.mapper.StWaterRMapper;
import com.gunshi.project.xyt.model.StWaterR; import com.gunshi.project.xyt.model.StWaterR;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* : * :
@ -20,6 +24,11 @@ import java.util.Date;
public class StWaterRService extends ServiceImpl<StWaterRMapper, StWaterR> public class StWaterRService extends ServiceImpl<StWaterRMapper, StWaterR>
{ {
public Map<String, BigDecimal> stat(DateTimeRangeSo dateTimeRangeSo) {
List<StWaterR> list = baseMapper.stat(dateTimeRangeSo);
return list.stream()
.collect(Collectors.groupingBy(StWaterR::getStcd, Collectors.mapping(StWaterR::getV, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
}
} }