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); } } }