diff --git a/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java b/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java index 4b1c64474..996dba793 100644 --- a/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java +++ b/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java @@ -16,7 +16,7 @@ public enum ProcessResponseEnum { * A00550 ~ A00649 */ PROCESS_COMMON_ERROR("A00550","监督管理模块异常"), - + UPLOAD_FILE_ERROR("A00551","上传文件服务器错误,请检查数据"), ; private final String code; diff --git a/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserParam.java b/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserParam.java new file mode 100644 index 000000000..7bf3cdde4 --- /dev/null +++ b/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserParam.java @@ -0,0 +1,39 @@ +package com.njcn.process.pojo.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * 未建档干扰源用户编辑Param + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/11 10:34 + */ +@Data +@ApiModel +public class LoadTypeUserParam { + + @ApiModelProperty("所属单位") + @NotBlank(message = "所属单位不可为空") + private String orgNo; + + @ApiModelProperty("干扰源类型") + @NotBlank(message = "干扰源类型不可为空") + private String loadType; + + @ApiModelProperty("干扰源用户名称") + @NotBlank(message = "干扰源用户名称不可为空") + private String userName; + + @ApiModelProperty("建档时间") + @NotBlank(message = "时间不可为空") + @Pattern(regexp = PatternRegex.TIME_SECOND_FORMAT, message = "时间格式错误") + private String recordTime; + +} diff --git a/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserSearchParam.java b/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserSearchParam.java new file mode 100644 index 000000000..0861bd16a --- /dev/null +++ b/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserSearchParam.java @@ -0,0 +1,43 @@ +package com.njcn.process.pojo.param; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotNull; + +/** + * 未建档干扰源用户搜索Param + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/11 10:34 + */ +@Data +@ApiModel +public class LoadTypeUserSearchParam { + + @ApiModelProperty("所属单位") + private String orgNo; + + @ApiModelProperty("干扰源类型") + private String loadType; + + @ApiModelProperty("干扰源用户名称") + private String userName; + + @ApiModelProperty("是否上传报告(0:否 1:是)") + private Integer aIsFileUpload; + + @ApiModelProperty("页码") + @NotNull(message = "页码不可为空") + @Range(min = 1,message = "页码必须大于0") + private Integer pageNum; + + @ApiModelProperty("条数") + @NotNull(message = "条数不可为空") + @Range(min = 1,message = "条数必须大于0") + private Integer pageSize; + +} diff --git a/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserUploadParam.java b/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserUploadParam.java new file mode 100644 index 000000000..2061f5231 --- /dev/null +++ b/process-api/src/main/java/com/njcn/process/pojo/param/LoadTypeUserUploadParam.java @@ -0,0 +1,45 @@ +package com.njcn.process.pojo.param; + +import com.njcn.web.constant.ValidMessage; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 未建档干扰源用户入网上传Param + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/11 10:34 + */ +@Data +public class LoadTypeUserUploadParam { + + @ApiModelProperty(name = "id",required = true) + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + private String id; + + @ApiModelProperty(name = "file",value = "入网报告文件",required = true) + @NotNull(message = "入网报告文件不可为空") + private MultipartFile file; + + @ApiModelProperty(name = "iIsOverLimit",value = "入网是否超标(0:否 1:是)",required = true) + @NotNull(message = "入网是否超标不可为空") + private Integer iIsOverLimit; + + @ApiModelProperty(name = "iOverLimitTarget",value = "入网超标指标",required = true) + @NotBlank(message = "入网超标指标不可为空") + private String iOverLimitTarget; + + @ApiModelProperty(name = "iPlanStep",value = "入网计划采取措施",required = true) + @NotBlank(message = "入网计划采取措施不可为空") + private String iPlanStep; + + @ApiModelProperty(name = "iDescription",value = "入网详情") + private String iDescription; + + +} diff --git a/process-api/src/main/java/com/njcn/process/utils/PublicDataUtils.java b/process-api/src/main/java/com/njcn/process/utils/PublicDataUtils.java index b016bee37..cb9881f82 100644 --- a/process-api/src/main/java/com/njcn/process/utils/PublicDataUtils.java +++ b/process-api/src/main/java/com/njcn/process/utils/PublicDataUtils.java @@ -1,5 +1,12 @@ package com.njcn.process.utils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + /** * 数据公共工具类 * @@ -9,7 +16,7 @@ package com.njcn.process.utils; */ public class PublicDataUtils { /** - * 功能:下划线命名转驼峰命名 + * 下划线命名转驼峰命名 * 将下划线替换为空格,将字符串根据空格分割成数组,再将每个单词首字母大写 * @param s * @return @@ -27,4 +34,29 @@ public class PublicDataUtils { } return under; } + + /** + * MultipartFile 转 String + * @param multipartFile 原字符串 + * @return 成功标记 + */ + private String MultipartFileToString(MultipartFile multipartFile) { + InputStreamReader isr; + BufferedReader br; + StringBuilder txtResult = new StringBuilder(); + try { + isr = new InputStreamReader(multipartFile.getInputStream(), StandardCharsets.UTF_8); + br = new BufferedReader(isr); + String lineTxt; + while ((lineTxt = br.readLine()) != null) { + txtResult.append(lineTxt); + } + isr.close(); + br.close(); + return txtResult.toString(); + } catch (IOException e) { + e.printStackTrace(); + return ""; + } + } } diff --git a/process-boot/src/main/java/com/njcn/process/controller/LoadTypeUserManageController.java b/process-boot/src/main/java/com/njcn/process/controller/LoadTypeUserManageController.java index 01efc09db..7de7fba22 100644 --- a/process-boot/src/main/java/com/njcn/process/controller/LoadTypeUserManageController.java +++ b/process-boot/src/main/java/com/njcn/process/controller/LoadTypeUserManageController.java @@ -1,22 +1,26 @@ package com.njcn.process.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.process.pojo.param.LoadTypeUserParam; +import com.njcn.process.pojo.param.LoadTypeUserSearchParam; +import com.njcn.process.pojo.param.LoadTypeUserUploadParam; +import com.njcn.process.pojo.po.RLoadTypeUserManage; import com.njcn.process.pojo.vo.RLoadTypeUserManageVO; import com.njcn.process.service.LoadTypeUserManageService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; /** * 干扰源用户管理 @@ -35,17 +39,70 @@ public class LoadTypeUserManageController extends BaseController { private final LoadTypeUserManageService loadTypeUserManageService; /** - * 查询所有数据 + * 查询所有干扰源用户 * @author qijian * @date 2022/11/11 */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @GetMapping("/getAll") + @PostMapping("/getLoadTypeUserList") @ApiOperation("查询所有数据") - public HttpResult> getAll(){ - String methodDescribe = getMethodDescribe("getAll"); - List list = loadTypeUserManageService.getAll(); + @ApiImplicitParam(name = "loadTypeUserSearchParam", value = "干扰源用户入参", required = true) + public HttpResult> getLoadTypeUserList(@RequestBody @Validated LoadTypeUserSearchParam loadTypeUserSearchParam){ + String methodDescribe = getMethodDescribe("getLoadTypeUserList"); + Page list = loadTypeUserManageService.getLoadTypeUserList(loadTypeUserSearchParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + /** + * 根据id查询干扰源用户 + * @author qijian + * @date 2022/11/14 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getLoadTypeUserById") + @ApiOperation("根据id查询干扰源用户") + @ApiImplicitParam(name = "id", value = "id", required = true) + public HttpResult getLoadTypeUserById(@RequestParam("id") String id){ + String methodDescribe = getMethodDescribe("getLoadTypeUserById"); + RLoadTypeUserManage rLoadTypeUserManage = loadTypeUserManageService.getLoadTypeUserById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rLoadTypeUserManage, methodDescribe); + } + + /** + * 新增干扰源用户 + * @author qijian + * @date 2022/11/14 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD) + @PostMapping("/addLoadTypeUser") + @ApiOperation("新增干扰源用户") + @ApiImplicitParam(name = "loadTypeUserParam", value = "实体参数", required = true) + public HttpResult addLoadTypeUser(@RequestBody @Validated LoadTypeUserParam loadTypeUserParam){ + String methodDescribe = getMethodDescribe("addLoadTypeUser"); + boolean res = loadTypeUserManageService.addLoadTypeUser(loadTypeUserParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + /** + * 上传干扰源用户入网报告 + * @author qijian + * @date 2022/11/14 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD) + @PostMapping("/uploadLoadTypeUser") + @ApiOperation("上传干扰源用户入网报告") + @ApiImplicitParam(name = "loadTypeUserUploadParam", value = "实体参数", required = true) + public HttpResult uploadLoadTypeUser(@RequestBody @Validated LoadTypeUserUploadParam loadTypeUserUploadParam){ + String methodDescribe = getMethodDescribe("uploadLoadTypeUser"); + boolean res = loadTypeUserManageService.uploadLoadTypeUser(loadTypeUserUploadParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } } diff --git a/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java b/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java index 516ef0fad..882c1e22c 100644 --- a/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java +++ b/process-boot/src/main/java/com/njcn/process/mapper/LoadTypeUserManageMapper.java @@ -2,10 +2,12 @@ package com.njcn.process.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.process.pojo.param.LoadTypeUserSearchParam; import com.njcn.process.pojo.po.RLoadTypeUserManage; import com.njcn.process.pojo.vo.RLoadTypeUserManageVO; - -import java.util.List; +import org.apache.ibatis.annotations.Param; /** * 干扰源用户管理Mapper @@ -17,8 +19,10 @@ import java.util.List; public interface LoadTypeUserManageMapper extends BaseMapper { /** - * 查询所有数据 + * 干扰源用户分页查询 + * @param page 分页参数 + * @param loadTypeUserSearchParam 入参 * @return 结果 */ - List getAll(); + Page getLoadTypeUserPage(IPage page, @Param("loadTypeUserParam") LoadTypeUserSearchParam loadTypeUserSearchParam); } diff --git a/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml b/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml index 01feb1f51..7f09934c5 100644 --- a/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml +++ b/process-boot/src/main/java/com/njcn/process/mapper/mapping/LoadTypeUserManageMapper.xml @@ -2,11 +2,24 @@ - SELECT * FROM - r_load_type_user_manage + r_load_type_user_manage r + where 1=1 + + and r.org_no = #{loadTypeUserSearchParam.orgNo} + + + and r.load_type = #{loadTypeUserSearchParam.loadType} + + + and r.user_name like CONCAT(CONCAT('%', #{loadTypeUserSearchParam.userName}), '%') + + + and r.a_is_file_upload = #{loadTypeUserSearchParam.aIsFileUpload} + diff --git a/process-boot/src/main/java/com/njcn/process/service/LoadTypeUserManageService.java b/process-boot/src/main/java/com/njcn/process/service/LoadTypeUserManageService.java index be59ce10b..a5ff30a53 100644 --- a/process-boot/src/main/java/com/njcn/process/service/LoadTypeUserManageService.java +++ b/process-boot/src/main/java/com/njcn/process/service/LoadTypeUserManageService.java @@ -1,9 +1,12 @@ package com.njcn.process.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.process.pojo.param.LoadTypeUserParam; +import com.njcn.process.pojo.param.LoadTypeUserSearchParam; +import com.njcn.process.pojo.param.LoadTypeUserUploadParam; +import com.njcn.process.pojo.po.RLoadTypeUserManage; import com.njcn.process.pojo.vo.RLoadTypeUserManageVO; -import java.util.List; - /** * 干扰源用户管理 * @@ -13,5 +16,31 @@ import java.util.List; */ public interface LoadTypeUserManageService { - List getAll(); + /** + * 干扰源用户分页查询 + * @param loadTypeUserSearchParam + * @return + */ + Page getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam); + + /** + * 根据id查询干扰源用户 + * @param id + * @return + */ + RLoadTypeUserManage getLoadTypeUserById(String id); + + /** + * 新增干扰源用户 + * @param loadTypeUserParam + * @return + */ + boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam); + + /** + * 上传干扰源用户入网报告 + * @param loadTypeUserUploadParam + * @return + */ + boolean uploadLoadTypeUser(LoadTypeUserUploadParam loadTypeUserUploadParam); } diff --git a/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java b/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java index f2e014205..d1fc1c08f 100644 --- a/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java +++ b/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java @@ -1,13 +1,27 @@ package com.njcn.process.service.impl; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.minio.bo.MinIoUploadResDTO; +import com.njcn.minio.config.MinIoProperties; +import com.njcn.minio.utils.MinIoUtils; +import com.njcn.process.enums.ProcessResponseEnum; import com.njcn.process.mapper.LoadTypeUserManageMapper; +import com.njcn.process.pojo.param.LoadTypeUserParam; +import com.njcn.process.pojo.param.LoadTypeUserSearchParam; +import com.njcn.process.pojo.param.LoadTypeUserUploadParam; +import com.njcn.process.pojo.po.RLoadTypeUserManage; import com.njcn.process.pojo.vo.RLoadTypeUserManageVO; import com.njcn.process.service.LoadTypeUserManageService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; -import java.util.List; +import javax.annotation.Resource; +import java.util.Date; /** * 干扰源用户管理 @@ -23,8 +37,89 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService private final LoadTypeUserManageMapper loadTypeUserManageMapper; + @Resource + private MinIoUtils minIoUtils; + + @Resource + private MinIoProperties minIoProperties; + + /** + * 干扰源用户分页查询 + * @param loadTypeUserSearchParam + * @return + */ @Override - public List getAll() { - return loadTypeUserManageMapper.getAll(); + public Page getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam){ + Page page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize()); + return loadTypeUserManageMapper.getLoadTypeUserPage(page,loadTypeUserSearchParam); + } + + /** + * 根据id查询干扰源用户 + * @param id + * @return + */ + @Override + public RLoadTypeUserManage getLoadTypeUserById(String id) { + RLoadTypeUserManage rLoadTypeUserManage = loadTypeUserManageMapper.selectById(id); + return rLoadTypeUserManage; + } + + /** + * 新增干扰源用户 + * @param loadTypeUserParam + * @return + */ + @Override + public boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam) { + //参数转换 + RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage(); + BeanUtils.copyProperties(loadTypeUserParam, rLoadTypeUserManage); + System.out.println(rLoadTypeUserManage); + + //塞入建档时间 + Date date = DateUtil.parse(loadTypeUserParam.getRecordTime(), "yyyy-MM-dd HH:mm:ss"); + rLoadTypeUserManage.setRecordTime(date); + loadTypeUserManageMapper.insert(rLoadTypeUserManage); + return true; + } + + /** + * 上传干扰源用户入网报告 + * @param loadTypeUserUploadParam + * @return + */ + @Override + public boolean uploadLoadTypeUser(LoadTypeUserUploadParam loadTypeUserUploadParam) { + + RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage(); + + //文件上传到Minio服务器,存入文件名 + MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserUploadParam.getFile()); + rLoadTypeUserManage.setIFilePath(minIoUploadResDTO.getMinFileName()); + rLoadTypeUserManage.setIUploadTime(new Date()); + + //填入数据修改 + BeanUtils.copyProperties(loadTypeUserUploadParam, rLoadTypeUserManage); + rLoadTypeUserManage.setIStatus("待审核");//需要修改字典 + loadTypeUserManageMapper.updateById(rLoadTypeUserManage); + + return true; + } + + /** + * 上传文件到Minio + * + * @param file 文件 + * @return 成功标记 + */ + private MinIoUploadResDTO fileToMinio(MultipartFile file) { + try { + //把名称存入数据 + MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "loadTypeUser/"); + return upload; + } catch (Exception e) { + throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR); + } } }