zhongrj
2023-10-19 67f5db1b58ca7e9f8b9235c111104db7c7802636
新增按行政区统计蓄水放水统计数据查询,导出和导入接口
8 files added
596 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/XsfsQktjController.java 94 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/XsfsQktjExcel.java 174 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/XsfsQktjImport.java 23 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/XsfsQktjMapper.java 44 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/XsfsQktjMapper.xml 68 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/IXsfsQktjService.java 52 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/XsfsQktjServiceImpl.java 128 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/vo/XsfsQktjVO.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/XsfsQktjController.java
New file
@@ -0,0 +1,94 @@
package cn.gistack.sm.sjztods.controller;
import cn.gistack.sm.sjztods.entity.XsfsQktj;
import cn.gistack.sm.sjztods.excel.XsfsQktjExcel;
import cn.gistack.sm.sjztods.excel.XsfsQktjImport;
import cn.gistack.sm.sjztods.service.IXsfsQktjService;
import cn.gistack.sm.sjztods.vo.XsfsQktjVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 *
 * @ClassName XsfsQktjController
 * @author zhongrj
 * @date 2023-10-19
 */
@Slf4j
@Api(tags = "蓄水放水情况统计表")
@RestController
@RequestMapping("/sjztods/xsfsQktj")
@AllArgsConstructor
public class XsfsQktjController {
    private final IXsfsQktjService xsfsQktjService;
    /**
     * 上报
     * @param xsfsQktj
     * @return
     */
    @ApiOperation(value = "蓄水放水情况统计-上报", notes = "蓄水放水情况统计-上报")
    @PostMapping(value = "/exportXsfsQktj")
    public R exportXsfsQktj(@RequestBody XsfsQktj xsfsQktj) {
        return R.status(xsfsQktjService.exportXsfsQktj(xsfsQktj));
    }
    /**
     * 分页列表数据查询
     * @param xsfsQktj
     * @param query
     * @return
     */
    @GetMapping(value = "/page")
    public R page(XsfsQktjVO xsfsQktj, Query query) {
        return R.data(xsfsQktjService.selectXsfsQktjPage(Condition.getPage(query), xsfsQktj));
    }
    /**
     * 按行政区统计
     * @param xsfsQktj
     * @return
     */
    @ApiOperation(value = "蓄水放水情况统计-按行政区统计", notes = "蓄水放水情况统计-按行政区统计")
    @GetMapping(value = "/getStatisticList")
    public R getStatisticList(XsfsQktjVO xsfsQktj) {
        return R.data(xsfsQktjService.getStatisticList(xsfsQktj));
    }
    /**
     * 导入
     * @param file
     * @return
     */
    @PostMapping("/import-xsfsQktj")
    public R importXsfsQktj(MultipartFile file) {
        XsfsQktjImport xsfsQktjImport = new XsfsQktjImport(xsfsQktjService);
        ExcelUtil.save(file, xsfsQktjImport, XsfsQktjExcel.class);
        return R.success("操作成功");
    }
    /**
     * 导出
     * @param xsfsQktj
     */
    @GetMapping("/export-xsfsQktj")
    public void exportXsfsQktj(HttpServletResponse response,XsfsQktjVO xsfsQktj) {
        List<XsfsQktjExcel> list = xsfsQktjService.exportXsfsQktjList(xsfsQktj);
        ExcelUtil.export(response, "水库统计数据" + DateUtil.time(), "水库统计数据表", list, XsfsQktjExcel.class);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/XsfsQktjExcel.java
New file
@@ -0,0 +1,174 @@
package cn.gistack.sm.sjztods.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class XsfsQktjExcel implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 区域名称
     */
    @ColumnWidth(15)
    @ExcelProperty("区域名称")
    private String adName;
    /**
     * 区域编号
     */
    @ColumnWidth(15)
    @ExcelProperty("区域编号")
    private String adCode;
    /**
     * 总蓄水合计
     */
    @ColumnWidth(15)
    @ExcelProperty("总蓄水合计")
    private Double zxsTotal;
    /**
     * 总蓄水较上次
     */
    @ColumnWidth(15)
    @ExcelProperty("总蓄水较上次")
    private String zxsSc;
    /**
     * 总蓄水较历史同期
     */
    @ColumnWidth(15)
    @ExcelProperty("总蓄水较历史同期")
    private String zxsHisTq;
    /**
     * 总蓄水较历史同期增减(%)
     */
    @ColumnWidth(15)
    @ExcelProperty("总蓄水较历史同期增减(%)")
    private String zxsHisTqzj;
    /**
     * 总蓄水较去年同期
     */
    @ColumnWidth(15)
    @ExcelProperty("总蓄水较去年同期")
    private String zxsLastYearTq;
    /**
     * 总蓄水较去年同期增减(%)
     */
    @ColumnWidth(15)
    @ExcelProperty("总蓄水较去年同期增减(%)")
    private String zxsLastYearTqzj;
    /**
     * 有效蓄水合计
     */
    @ColumnWidth(15)
    @ExcelProperty("有效蓄水合计")
    private Double yxxsTotal;
    /**
     * 有效蓄水较同期历史有效蓄水增减(%)
     */
    @ColumnWidth(15)
    @ExcelProperty("有效蓄水较同期历史有效蓄水增减(%)")
    private String yxxsHisTqzj;
    /**
     * 有效蓄水较同期去年有效蓄水增减(%)
     */
    @ColumnWidth(15)
    @ExcelProperty("有效蓄水较同期去年有效蓄水增减(%)")
    private String yxxsLastYearTqzj;
    /**
     * 占兴利库容百分比(%)
     */
    @ColumnWidth(15)
    @ExcelProperty("占兴利库容百分比(%)")
    private String yxxsZXlkr;
    /**
     * 大型水库蓄水合计
     */
    @ColumnWidth(15)
    @ExcelProperty("大型水库蓄水合计")
    private Double dxskXsTotal;
    /**
     * 大型水库蓄水较历史同期
     */
    @ColumnWidth(15)
    @ExcelProperty("大型水库蓄水较历史同期")
    private String dxskXsHis;
    /**
     * 大型水库蓄水较去年同期
     */
    @ColumnWidth(15)
    @ExcelProperty("大型水库蓄水较去年同期")
    private String dxskXsLastYear;
    /**
     * 大型水库有效蓄水
     */
    @ColumnWidth(15)
    @ExcelProperty("大型水库有效蓄水")
    private Double dxskYxxs;
    /**
     * 中型水库蓄水合计
     */
    @ColumnWidth(15)
    @ExcelProperty("中型水库蓄水合计")
    private Double zxskXsTotal;
    /**
     * 中型水库较历史同期
     */
    @ColumnWidth(15)
    @ExcelProperty("中型水库较历史同期")
    private String zxskXsHis;
    /**
     * 中型水库较去年同期
     */
    @ColumnWidth(15)
    @ExcelProperty("中型水库较去年同期")
    private String zxskXsLastYear;
    /**
     * 中型水库有效蓄水
     */
    @ColumnWidth(15)
    @ExcelProperty("中型水库有效蓄水")
    private Double zxskYxxs;
    /**
     * 小型水库蓄水合计
     */
    @ColumnWidth(15)
    @ExcelProperty("小型水库蓄水合计")
    private Double xxskXsTotal;
    /**
     * 小型水库有效蓄水
     */
    @ColumnWidth(15)
    @ExcelProperty("小型水库有效蓄水")
    private Double xxskYxxs;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/XsfsQktjImport.java
New file
@@ -0,0 +1,23 @@
package cn.gistack.sm.sjztods.excel;
import cn.gistack.sm.sjztods.service.IXsfsQktjService;
import lombok.RequiredArgsConstructor;
import org.springblade.core.excel.support.ExcelImporter;
import java.util.List;
/**
 * 导入水库数据
 * @author zhongrj
 * @date 2023-10-19
 */
@RequiredArgsConstructor
public class XsfsQktjImport implements ExcelImporter<XsfsQktjExcel> {
    private final IXsfsQktjService service;
    @Override
    public void save(List<XsfsQktjExcel> data) {
        service.importXsfsQktjData(data);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/XsfsQktjMapper.java
New file
@@ -0,0 +1,44 @@
package cn.gistack.sm.sjztods.mapper;
import cn.gistack.sm.sjztods.entity.XsfsQktj;
import cn.gistack.sm.sjztods.excel.XsfsQktjExcel;
import cn.gistack.sm.sjztods.vo.XsfsQktjVO;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * XsfsQktjMapper 接口
 *
 * @author zhongrj
 * @date 2023-10-19
 */
@DS("ztznwh")
public interface XsfsQktjMapper extends BaseMapper<XsfsQktj> {
    /**
     * 分页列表数据查询
     * @param page
     * @param xsfsQktj
     * @return
     */
    List<XsfsQktjVO> selectXsfsQktjPage(@Param("page") IPage<XsfsQktjVO> page,@Param("xsfsQktj") XsfsQktjVO xsfsQktj);
    /**
     * 按行政区统计
     * @param xsfsQktj
     * @return
     */
    List<XsfsQktjVO> getStatisticList(@Param("xsfsQktj") XsfsQktjVO xsfsQktj);
    /**
     * 查询导出数据
     * @param xsfsQktj
     * @return
     */
    List<XsfsQktjExcel> exportXsfsQktjList(@Param("xsfsQktj") XsfsQktjVO xsfsQktj);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/XsfsQktjMapper.xml
New file
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.gistack.sm.sjztods.mapper.XsfsQktjMapper">
    <!--分页列表数据查询-->
    <select id="selectXsfsQktjPage" resultType="cn.gistack.sm.sjztods.vo.XsfsQktjVO">
        select
            xq.*
        from SJZT_ODS."xsfs_qktj" xq
        where 1=1
        <if test="xsfsQktj.statisticTime!=null">
            and date_format(xq."statistic_time","%Y-%m-%d") = #{xsfsQktj.statisticTime}
        </if>
        <if test="xsfsQktj.adCode!=null and xsfsQktj.adCode!=''">
            and xq."ad_code" = #{xsfsQktj.adCode}
        </if>
    </select>
    <!--按行政区统计-->
    <select id="getStatisticList" resultType="cn.gistack.sm.sjztods.vo.XsfsQktjVO">
        select
        xq.*
        from SJZT_ODS."xsfs_qktj" xq
        where 1=1
        <if test="xsfsQktj.statisticTime!=null">
            and date_format(xq."statistic_time","%Y-%m-%d") = #{xsfsQktj.statisticTime}
        </if>
        <if test="xsfsQktj.adCode!=null and xsfsQktj.adCode!=''">
            and xq."ad_code" = #{xsfsQktj.adCode}
        </if>
        order by "ad_code"
    </select>
    <!--查询导出数据-->
    <select id="exportXsfsQktjList" resultType="cn.gistack.sm.sjztods.excel.XsfsQktjExcel">
        select
            xq."ad_name" as adName,
            xq."ad_code" as adCode,
            xq."zxs_total" as zxsTotal,
            xq."zxs_sc" as zxsSc,
            xq."zxs_his_tq" as zxsHisTq,
            xq."zxs_his_tqzj" as zxsHisTqzj,
            xq."zxs_last_year_tq" as zxsLastYearTq,
            xq."zxs_last_year_tqzj" as zxsLastYearTqzj,
            xq."yxxs_total" as yxxsTotal,
            xq."yxxs_his_tqzj" as yxxsHisTqzj,
            xq."yxxs_last_year_tqzj" as yxxsLastYearTqzj,
            xq."yxxs_z_xlkr" as yxxsZXlkr,
            xq."dxsk_xs_total" as dxskXsTotal,
            xq."dxsk_xs_his" as dxskXsHis,
            xq."dxsk_xs_last_year" as dxskXsLastYear,
            xq."dxsk_yxxs" as dxskYxxs,
            xq."zxsk_xs_total" as zxskXsTotal,
            xq."zxsk_xs_his" as zxskXsHis,
            xq."zxsk_xs_last_year" as zxskXsLastYear,
            xq."zxsk_yxxs" as zxskYxxs,
            xq."xxsk_xs_total" as xxskXsTotal,
            xq."xxsk_yxxs" as xxskYxxs
        from SJZT_ODS."xsfs_qktj" xq
        where 1=1
        <if test="xsfsQktj.statisticTime!=null">
            and date_format(xq."statistic_time","%Y-%m-%d") = #{xsfsQktj.statisticTime}
        </if>
        <if test="xsfsQktj.adCode!=null and xsfsQktj.adCode!=''">
            and xq."ad_code" = #{xsfsQktj.adCode}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/IXsfsQktjService.java
New file
@@ -0,0 +1,52 @@
package cn.gistack.sm.sjztods.service;
import cn.gistack.sm.sjztods.entity.XsfsQktj;
import cn.gistack.sm.sjztods.excel.XsfsQktjExcel;
import cn.gistack.sm.sjztods.vo.XsfsQktjVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * @ClassName IXsfsQktjService
 * @author zhongrj
 * @date 2023-10-19
 */
public interface IXsfsQktjService extends IService<XsfsQktj> {
    /**
     * 上报
     * @param xsfsQktj
     * @return
     */
    boolean exportXsfsQktj(XsfsQktj xsfsQktj);
    /**
     * 分页列表数据查询
     * @param xsfsQktj
     * @param page
     * @return
     */
    Object selectXsfsQktjPage(IPage<XsfsQktjVO> page, XsfsQktjVO xsfsQktj);
    /**
     * 按行政区统计
     * @param xsfsQktj
     * @return
     */
    Object getStatisticList(XsfsQktjVO xsfsQktj);
    /**
     * 导入统计上报数据
     * @param data
     */
    void importXsfsQktjData(List<XsfsQktjExcel> data);
    /**
     * 查询导出数据
     * @param xsfsQktj
     * @return
     */
    List<XsfsQktjExcel> exportXsfsQktjList(XsfsQktjVO xsfsQktj);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/XsfsQktjServiceImpl.java
New file
@@ -0,0 +1,128 @@
package cn.gistack.sm.sjztods.service.impl;
import cn.gistack.sm.sjztods.entity.XsfsQktj;
import cn.gistack.sm.sjztods.excel.XsfsQktjExcel;
import cn.gistack.sm.sjztods.mapper.XsfsQktjMapper;
import cn.gistack.sm.sjztods.service.IXsfsQktjService;
import cn.gistack.sm.sjztods.vo.XsfsQktjVO;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * @ClassName XsfsQktjServiceImpl
 * @author zhongrj
 * @date 2023-10-19
 */
@Service
@DS("ztznwh")
public class XsfsQktjServiceImpl extends ServiceImpl<XsfsQktjMapper, XsfsQktj> implements IXsfsQktjService {
    /**
     * 上报
     * @param xsfsQktj
     * @return
     */
    @Override
    @DS("ztznwh")
    public boolean exportXsfsQktj(XsfsQktj xsfsQktj) {
        // 查询库中是否包含当前日期,当前行政区的数据,如果有,则更新,没有则新增
        QueryWrapper<XsfsQktj> wrapper = new QueryWrapper<>();
        wrapper.eq("\"statistic_time\"",xsfsQktj.getStatisticTime())
            .eq("\"ad_code\"",xsfsQktj.getAdCode());
        XsfsQktj qkTj = baseMapper.selectOne(wrapper);
        // 设置更新人员,更新时间,来源信息
        xsfsQktj.setUpdateTime(new Date());
        xsfsQktj.setUpdateUser(AuthUtil.getUserId());
        xsfsQktj.setSysResource("sb");
        if (null!= qkTj){
            xsfsQktj.setGuid(qkTj.getGuid());
            // 更新并返回
            return updateById(xsfsQktj);
        }
        // 设置创建人员,时间信息
        xsfsQktj.setCreateUser(AuthUtil.getUserId());
        xsfsQktj.setCreateTime(new Date());
        // 保存并返回
        return save(xsfsQktj);
    }
    /**
     * 分页列表数据查询
     * @param xsfsQktj
     * @param page
     * @return
     */
    @Override
    public Object selectXsfsQktjPage(IPage<XsfsQktjVO> page, XsfsQktjVO xsfsQktj) {
        if (null!=xsfsQktj.getIsExport()){
            // 导出,查询所有数据
            return baseMapper.selectXsfsQktjPage(null,xsfsQktj);
        }
        return page.setRecords(baseMapper.selectXsfsQktjPage(page,xsfsQktj));
    }
    /**
     * 按行政区统计
     * @param xsfsQktj
     * @return
     */
    @Override
    public Object getStatisticList(XsfsQktjVO xsfsQktj) {
        return baseMapper.getStatisticList(xsfsQktj);
    }
    /**
     * 导入统计上报数据
     * @param data
     */
    @Override
    public void importXsfsQktjData(List<XsfsQktjExcel> data) {
        if (data.size()>0){
            // 遍历
            data.forEach(xsfsQktjExcel -> {
                XsfsQktj xsfsQktj = Objects.requireNonNull(BeanUtil.copy(xsfsQktjExcel, XsfsQktj.class));
                // 查询库中是否包含当前日期,当前行政区的数据,如果有,则更新,没有则新增
                QueryWrapper<XsfsQktj> wrapper = new QueryWrapper<>();
                wrapper.eq("\"statistic_time\"",xsfsQktj.getStatisticTime())
                    .eq("\"ad_code\"",xsfsQktj.getAdCode());
                XsfsQktj qkTj = baseMapper.selectOne(wrapper);
                // 设置更新人员,更新时间,来源信息
                xsfsQktj.setUpdateTime(new Date());
                xsfsQktj.setUpdateUser(AuthUtil.getUserId());
                xsfsQktj.setSysResource("sb");
                if (null!= qkTj){
                    xsfsQktj.setGuid(qkTj.getGuid());
                    // 更新并返回
                    updateById(xsfsQktj);
                    return;
                }
                // 设置创建人员,时间信息
                xsfsQktj.setCreateUser(AuthUtil.getUserId());
                xsfsQktj.setCreateTime(new Date());
                // 保存并返回
                save(xsfsQktj);
                return;
            });
        }
    }
    /**
     * 查询导出数据
     * @param xsfsQktj
     * @return
     */
    @Override
    public List<XsfsQktjExcel> exportXsfsQktjList(XsfsQktjVO xsfsQktj) {
        return baseMapper.exportXsfsQktjList(xsfsQktj);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/vo/XsfsQktjVO.java
New file
@@ -0,0 +1,13 @@
package cn.gistack.sm.sjztods.vo;
import cn.gistack.sm.sjztods.entity.XsfsQktj;
import lombok.Data;
@Data
public class XsfsQktjVO extends XsfsQktj {
    /**
     * 水库规模
     */
    private Integer isExport;
}