sm 集成excel 导入,库容填报新增基础接口,及导入,导出模板接口,智能外呼呼叫人数修改为220人
2 files modified
8 files added
461 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml 5 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java 3 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResStagCapDicsController.java 127 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttResStagCapDics.java 119 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/AttResStagCapDiscExcel.java 35 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/AttResStagCapDiscImport.java 25 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResStagCapDicsMapper.java 26 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResStagCapDicsMapper.xml 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResStagCapDicsService.java 30 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResStagCapDicsServiceImpl.java 81 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
@@ -70,7 +70,10 @@
            <artifactId>skjcmanager-pwd-api</artifactId>
            <version>3.0.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springblade</groupId>
            <artifactId>blade-starter-excel</artifactId>
        </dependency>
    </dependencies>
    <build>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
@@ -133,6 +133,7 @@
        bodyJson.put("body", paramJson);
        HttpEntity<String> stringHttpEntity = new HttpEntity<>(bodyJson.toJSONString(), httpHeaders);
        log.info("创建超汛限智能外呼任务请求参数:{}", bodyJson.toJSONString());
        log.info("创建超汛限智能外呼任务呼叫人数:{}", arr.size());
        ResponseEntity<String> response = restTemplate.postForEntity(requestUrl, stringHttpEntity, String.class);
        log.info("创建外呼任务请求结果:{}", response.getBody());
        if (response.getStatusCode() != HttpStatus.OK) {
@@ -860,7 +861,7 @@
        List<Scene> totalList = callTaskMapper.getNotCallOrCallNotConnect();
        // 取出随机的150人
        Set<Scene> taskRandomList = new HashSet<>();
        Integer personNumber = 150;
        Integer personNumber = 220;
        Random random = new Random();
        for (int i = 0; i < totalList.size(); i++) {
            // 获取随机数作为下标索引
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResStagCapDicsController.java
New file
@@ -0,0 +1,127 @@
package cn.gistack.sm.sjztmd.controller;
import cn.gistack.sm.sjztmd.entity.AttResStagCapDics;
import cn.gistack.sm.sjztmd.excel.AttResStagCapDiscExcel;
import cn.gistack.sm.sjztmd.excel.AttResStagCapDiscImport;
import cn.gistack.sm.sjztmd.service.IAttResStagCapDicsService;
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.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.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 * @ClassName AttResStagCapDicsController
 * @author zhongrj
 * @Date 2023/09/04
 */
@Slf4j
@Api(tags = "中台水库库容数据信息填报")
@RestController
@RequestMapping("/sjztmd/attResStagCapDics")
@AllArgsConstructor
public class AttResStagCapDicsController {
    private final IAttResStagCapDicsService attResStagCapDicsService;
    /**
     * 查询水库填报详情信息
     * @param resGuid
     * @return
     */
    @ApiOperation(value = "中台水库-查询水库填报详情信息", notes = "中台水库-查询水库填报详情信息")
    @GetMapping(value = "/getDetailByGuid")
    public R getDetailByCode(String resGuid) {
        List<AttResStagCapDics> attResBase = attResStagCapDicsService.getDetailByGuid(resGuid);
        return R.data(attResBase);
    }
    /**
     * 新增
     * @param attResStagCapDics
     * @return
     */
    @ApiOperation(value = "水库信息-新增", notes = "水库信息-新增")
    @PostMapping(value = "/save")
    public R save(@RequestBody AttResStagCapDics attResStagCapDics) {
        Date date = new Date();
        attResStagCapDics.setCreateTime(date);
        attResStagCapDics.setUpdateTime(date);
        attResStagCapDics.setCollectTime(date);
        attResStagCapDics.setSysResource("手工录入");
        return R.status(attResStagCapDicsService.save(attResStagCapDics));
    }
    /**
     * 批量新增
     * @param attResStagCapDicsList
     * @return
     */
    @ApiOperation(value = "水库信息-批量新增", notes = "水库信息-批量新增")
    @PostMapping(value = "/batchSave")
    public R batchSave(@RequestBody List<AttResStagCapDics> attResStagCapDicsList) {
        for (AttResStagCapDics attResStagCapDics : attResStagCapDicsList) {
            Date date = new Date();
            attResStagCapDics.setCreateTime(date);
            attResStagCapDics.setUpdateTime(date);
            attResStagCapDics.setCollectTime(date);
            attResStagCapDics.setSysResource("手工录入");
        }
        return R.status(attResStagCapDicsService.saveBatch(attResStagCapDicsList));
    }
    /**
     * 编辑
     * @param attResStagCapDics
     * @return
     */
    @ApiOperation(value = "水库信息-编辑", notes = "水库信息-编辑")
    @PostMapping(value = "/edit")
    public R edit(@RequestBody AttResStagCapDics attResStagCapDics) {
        Date date = new Date();
        attResStagCapDics.setUpdateTime(date);
        return R.status(attResStagCapDicsService.updateById(attResStagCapDics));
    }
    /**
     * 删除
     * @param ids
     * @return
     */
    @ApiOperation(value = "水库信息-删除", notes = "水库信息-删除")
    @PostMapping(value = "/remove")
    public R remove(@RequestParam  String ids) {
        return R.status(attResStagCapDicsService.removeByIds(Arrays.asList(ids.split(","))));
    }
    /**
     * 导入库容
     */
    @PostMapping("import-attResStagCapDics")
    public R importUser(MultipartFile file,String resGuid) {
        AttResStagCapDiscImport attResStagCapDiscImport = new AttResStagCapDiscImport(attResStagCapDicsService,resGuid);
        ExcelUtil.save(file, attResStagCapDiscImport, AttResStagCapDiscExcel.class);
        return R.success("操作成功");
    }
    /**
     * 导出库容模板
     */
    @GetMapping("export-attResStagCapDics-template")
    public void exportAttResStagCapDicsTemplate(HttpServletResponse response) {
        List<AttResStagCapDiscExcel> list = new ArrayList<>();
        ExcelUtil.export(response, "水库库容数据" + DateUtil.time(), "水库库容数据表", list, AttResStagCapDiscExcel.class);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttResStagCapDics.java
New file
@@ -0,0 +1,119 @@
package cn.gistack.sm.sjztmd.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 中台水库库容曲线实体类-填报
 *
 * @author zhongrj
 * @date 2023-09-04
 */
@Data
@TableName("\"att_res_stag_cap_disc\"")
@ApiModel(value = "中台水库库容曲线对象", description = "中台水库库容曲线对象")
public class AttResStagCapDics implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键")
    @TableId(value = "\"guid\"",type = IdType.ASSIGN_UUID)
    private String guid;
    /**
     * 水位(米)
     * 本水库的任意一个水位,或某个特征水位
     */
    @ApiModelProperty(value = "水位(米)本水库的任意一个水位,或某个特征水位")
    @TableField("\"stag\"")
    private Double stag;
    /**
     * 步长(厘米)
     * 记录水库水位的间隔长度
     */
    @ApiModelProperty(value = "步长(厘米)记录水库水位的间隔长度")
    @TableField("\"stamp\"")
    private Double stamp;
    /**
     * 面积(平方千米)
     * 对应某个水位时的水库水面面积
     */
    @ApiModelProperty(value = "面积(平方千米)对应某个水位时的水库水面面积")
    @TableField("\"area\"")
    private Double area;
    /**
     *库容(万立方米)
     *对应某个水位时的水库库容
     */
    @ApiModelProperty(value = "库容(万立方米)对应某个水位时的水库库容")
    @TableField("\"cap\"")
    private Double cap;
    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    @TableField("\"order_id\"")
    private Integer orderId;
    /**
     * 水库编码
     */
    @ApiModelProperty(value = "水库编码")
    @TableField("\"res_guid\"")
    private String resGuid;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间 ")
    @TableField("\"create_time\"")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间 ")
    @TableField("\"update_time\"")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 采集时间
     */
    @ApiModelProperty(value = "采集时间 ")
    @TableField("\"collect_time\"")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    /**
     * 数据来源
     */
    @ApiModelProperty(value = "数据来源 ")
    @TableField("\"sys_resource\"")
    private String sysResource;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/AttResStagCapDiscExcel.java
New file
@@ -0,0 +1,35 @@
package cn.gistack.sm.sjztmd.excel;
import com.alibaba.excel.annotation.ExcelIgnore;
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 lombok.Data;
import java.io.Serializable;
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class AttResStagCapDiscExcel implements Serializable {
    private static final long serialVersionUID = 1L;
    @ColumnWidth(15)
    @ExcelProperty("水位(米)")
    private Double stag;
    @ColumnWidth(15)
    @ExcelProperty("库容(万立方米)")
    private Double cap;
    @ColumnWidth(20)
    @ExcelProperty("水库编码")
    private String resGuid;
//    @ColumnWidth(15)
//    @ExcelProperty("排序")
//    private String orderId;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/AttResStagCapDiscImport.java
New file
@@ -0,0 +1,25 @@
package cn.gistack.sm.sjztmd.excel;
import cn.gistack.sm.sjztmd.service.IAttResStagCapDicsService;
import lombok.RequiredArgsConstructor;
import org.springblade.core.excel.support.ExcelImporter;
import java.util.List;
/**
 * 导入水库库容数据
 * @author zhongrj
 * @date 2023-09-04
 */
@RequiredArgsConstructor
public class AttResStagCapDiscImport implements ExcelImporter<AttResStagCapDiscExcel> {
    private final IAttResStagCapDicsService service;
    private final String resGuid;
    @Override
    public void save(List<AttResStagCapDiscExcel> data) {
        service.importAttResStagCapDiscData(data,resGuid);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResStagCapDicsMapper.java
New file
@@ -0,0 +1,26 @@
package cn.gistack.sm.sjztmd.mapper;
import cn.gistack.sm.sjztmd.entity.AttResStagCapDics;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * AttResStagCapDicsMapper 接口
 *
 * @author zhongrj
 * @date 2023-09-04
 */
@DS("zt")
public interface AttResStagCapDicsMapper extends BaseMapper<AttResStagCapDics> {
    /**
     * 查询水库填报详情信息
     * @param resGuid
     * @return
     */
    List<AttResStagCapDics> getDetailByResGuid(@Param("resGuid") String resGuid);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResStagCapDicsMapper.xml
New file
@@ -0,0 +1,10 @@
<?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.sjztmd.mapper.AttResStagCapDicsMapper">
    <!--查询水库填报详情信息-->
    <select id="getDetailByResGuid" resultType="cn.gistack.sm.sjztmd.entity.AttResStagCapDics">
        SELECT * FROM "att_res_stag_cap_disc" WHERE "res_guid" = #{resGuid}
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResStagCapDicsService.java
New file
@@ -0,0 +1,30 @@
package cn.gistack.sm.sjztmd.service;
import cn.gistack.sm.sjztmd.entity.AttResStagCapDics;
import cn.gistack.sm.sjztmd.excel.AttResStagCapDiscExcel;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * @ClassName IAttResStagCapDicsService
 * @Description TODO
 * @author zhongrj
 * @date 2023/8/14
 * @Version 1.0
 */
public interface IAttResStagCapDicsService extends IService<AttResStagCapDics> {
    /**
     * 查询水库填报详情信息
     * @param guid
     * @return
     */
    List<AttResStagCapDics> getDetailByGuid(String guid);
    /**
     * 批量导入水库库容数据
     * @param data
     */
    void importAttResStagCapDiscData(List<AttResStagCapDiscExcel> data,String resGuid);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResStagCapDicsServiceImpl.java
New file
@@ -0,0 +1,81 @@
package cn.gistack.sm.sjztmd.service.impl;
import cn.gistack.sm.sjztmd.entity.AttResStagCapDics;
import cn.gistack.sm.sjztmd.excel.AttResStagCapDiscExcel;
import cn.gistack.sm.sjztmd.mapper.AttResStagCapDicsMapper;
import cn.gistack.sm.sjztmd.service.IAttResStagCapDicsService;
import cn.gistack.system.user.entity.User;
import cn.gistack.system.user.feign.IUserClient;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * @ClassName AttResStagCapDicsServiceImpl
 * @Description TODO
 * @author zhongrj
 * @date 2023/09/04
 */
@Service
@DS("zt")
public class AttResStagCapDicsServiceImpl extends ServiceImpl<AttResStagCapDicsMapper, AttResStagCapDics> implements IAttResStagCapDicsService {
    /**
     * 查询水库填报详情信息
     * @param guid
     * @return
     */
    @Override
    public List<AttResStagCapDics> getDetailByGuid(String guid) {
        return baseMapper.getDetailByResGuid(guid);
    }
    /**
     * 批量导入水库库容数据
     * @param data
     * @param resGuid 水库guid
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void importAttResStagCapDiscData(List<AttResStagCapDiscExcel> data,String resGuid) {
        if (data.size()>0) {
            // 判断是否为当前水库
            // 先清空数据,再导入数据
            QueryWrapper<AttResStagCapDics> wrapper = new QueryWrapper<>();
            wrapper.eq("\"res_guid\"",data.get(0).getResGuid());
            // 删除
            boolean remove = remove(wrapper);
            List<AttResStagCapDics> list = new ArrayList<>();
            for (AttResStagCapDiscExcel capDiscExcel : data) {
                // 判断是否为当前水库guid
                if (null==capDiscExcel.getResGuid() || capDiscExcel.getResGuid().equals("") || !capDiscExcel.getResGuid().equals(resGuid)){
                    continue;
                }
                // 组装数据
                AttResStagCapDics attResStagCapDics = Objects.requireNonNull(BeanUtil.copy(capDiscExcel, AttResStagCapDics.class));
                // 设置日期数据
                Date date = new Date();
                attResStagCapDics.setCreateTime(date);
                attResStagCapDics.setUpdateTime(date);
                attResStagCapDics.setCollectTime(date);
                attResStagCapDics.setSysResource("手工录入");
                // 加入集合
                list.add(attResStagCapDics);
            }
            // 批量新增
            saveBatch(list);
        }
    }
}