From eb660dc66ca3fb87c4a3f7e4755fca293e0ef4d1 Mon Sep 17 00:00:00 2001 From: zhangqinlin <983410zql> Date: Tue, 14 Dec 2021 17:16:40 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=B7=A5=E4=BD=9C=E7=BB=84=E5=9C=A8?= =?UTF-8?q?=E7=A0=94=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayResearchProjectController.java | 213 +++++++++++++----- .../project/entity/PayResearchProject.java | 21 ++ .../mapper/PayResearchProjectMapper.java | 12 + .../mapper/xml/PayResearchProjectMapper.xml | 26 +++ .../service/IPayResearchProjectService.java | 8 + .../impl/PayResearchProjectServiceImpl.java | 37 ++- 6 files changed, 254 insertions(+), 63 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayResearchProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayResearchProjectController.java index ee762ce7..dbf32de7 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayResearchProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayResearchProjectController.java @@ -2,6 +2,8 @@ package com.jero.project.controller; import java.io.IOException; import java.util.Arrays; +import java.util.List; +import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,14 +11,16 @@ import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; -import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.project.entity.PayResearchProject; import com.jero.project.service.IPayResearchProjectService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -36,13 +40,15 @@ public class PayResearchProjectController extends JeroController queryPageList(PayResearchProject payResearchProject, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(payResearchProject, req.getParameterMap()); + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize + ) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StringUtils.isNotBlank(payResearchProject.getWorkingGroupId())){ + queryWrapper.eq("working_group_id",payResearchProject.getWorkingGroupId()); + }else { + return Result.error("工作组id为空!"); + } + if(StringUtils.isNotBlank(payResearchProject.getProjectName())){ + queryWrapper.like("project_name",payResearchProject.getProjectName()); + } Page page = new Page(pageNo, pageSize); - IPage pageList = payResearchProjectService.page(page, queryWrapper); + IPage pageList = payResearchProjectService.pageList(page, queryWrapper); return Result.OK(pageList); } @@ -94,16 +108,85 @@ public class PayResearchProjectController extends JeroController add(@RequestBody PayResearchProject payResearchProject) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_name",payResearchProject.getProjectName()); + int count = payResearchProjectService.count(queryWrapper); + if (count>0) { + return Result.error("项目名称已存在"); + } + payResearchProjectService.save(payResearchProject); + QueryWrapper queryWrapper2 = new QueryWrapper<>(); + queryWrapper2.eq("project_name",payResearchProject.getProjectName()); + PayResearchProject one = payResearchProjectService.getOne(queryWrapper2); + if(StringUtils.isNotBlank(payResearchProject.getFiles())){ + String files = payResearchProject.getFiles(); + List filesList = Arrays.asList(files.split(",")); + for(String s:filesList){ + UUID uuid = UUID.randomUUID(); + payResearchProjectService.saveFile(uuid.toString(),s,one.getId()); + } + } + return Result.OK("新增成功!"); + } + /** * 编辑 * * @param payResearchProject * @return */ + @Transactional @AutoLog(value = "在研项目-编辑") @ApiOperation(value="在研项目-编辑", notes="在研项目-编辑") - @PutMapping(value = "/edit") + @PostMapping(value = "/edit") public Result edit(@RequestBody PayResearchProject payResearchProject) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_name",payResearchProject.getProjectName()); + queryWrapper.ne("id",payResearchProject.getId()); + int count = payResearchProjectService.count(queryWrapper); + if (count>0) { + return Result.error("项目名称已存在"); + } + //删除关联文件表 + payResearchProjectService.deleteFile(payResearchProject.getId()); + //删除文件表 + PayResearchProject byId = payResearchProjectService.getById(payResearchProject.getId()); + if(StringUtils.isNotBlank(byId.getFiles())){ + List filesList = Arrays.asList(byId.getFiles().split(",")); + if(StringUtils.isNotBlank(payResearchProject.getFiles())) { + List newFilesList = Arrays.asList(payResearchProject.getFiles().split(",")); + for(String s:filesList){ + //旧文件包含在新文件中则不删除 + if(!newFilesList.contains(s)){ + iossFileService.removeById(s); + } + } + }else { + //新文件为空则全部删除旧文件 + iossFileService.removeByIds(filesList); + } + } + //重新加入关系表 + if(StringUtils.isNotBlank(payResearchProject.getFiles())){ + String files = payResearchProject.getFiles(); + List filesList = Arrays.asList(files.split(",")); + for(String s:filesList){ + UUID uuid = UUID.randomUUID(); + payResearchProjectService.saveFile(uuid.toString(),s,payResearchProject.getId()); + } + } + //更新 payResearchProjectService.updateById(payResearchProject); return Result.OK("编辑成功!"); } @@ -116,64 +199,72 @@ public class PayResearchProjectController extends JeroController delete(@RequestParam(name="id",required=true) String id) { + //删除关联文件表 + payResearchProjectService.deleteFile(id); + //删除文件表 + PayResearchProject byId = payResearchProjectService.getById(id); + if(StringUtils.isNotBlank(byId.getFiles())){ + List filesList = Arrays.asList(byId.getFiles().split(",")); + iossFileService.removeByIds(filesList); + } payResearchProjectService.removeById(id); return Result.OK("删除成功!"); } - /** - * 批量删除 - * - * @param ids - * @return - */ - @AutoLog(value = "在研项目-批量删除") - @ApiOperation(value="在研项目-批量删除", notes="在研项目-批量删除") - @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.payResearchProjectService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); - } - - /** - * 通过id查询 - * - * @param id - * @return - */ - @AutoLog(value = "在研项目-通过id查询") - @ApiOperation(value="在研项目-通过id查询", notes="在研项目-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { - PayResearchProject payResearchProject = payResearchProjectService.getById(id); - if(payResearchProject==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(payResearchProject); - } - - /** - * 导出excel - * - * @param request - * @param payResearchProject - */ - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, PayResearchProject payResearchProject) { - return super.exportXls(request, payResearchProject, PayResearchProject.class, "在研项目"); - } - - /** - * 通过excel导入数据 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, PayResearchProject.class); - } +// /** +// * 批量删除 +// * +// * @param ids +// * @return +// */ +// @AutoLog(value = "在研项目-批量删除") +// @ApiOperation(value="在研项目-批量删除", notes="在研项目-批量删除") +// @DeleteMapping(value = "/deleteBatch") +// public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { +// this.payResearchProjectService.removeByIds(Arrays.asList(ids.split(","))); +// return Result.OK("批量删除成功!"); +// } +// +// /** +// * 通过id查询 +// * +// * @param id +// * @return +// */ +// @AutoLog(value = "在研项目-通过id查询") +// @ApiOperation(value="在研项目-通过id查询", notes="在研项目-通过id查询") +// @GetMapping(value = "/queryById") +// public Result queryById(@RequestParam(name="id",required=true) String id) { +// PayResearchProject payResearchProject = payResearchProjectService.getById(id); +// if(payResearchProject==null) { +// return Result.error("未找到对应数据"); +// } +// return Result.OK(payResearchProject); +// } +// +// /** +// * 导出excel +// * +// * @param request +// * @param payResearchProject +// */ +// @RequestMapping(value = "/exportXls") +// public ModelAndView exportXls(HttpServletRequest request, PayResearchProject payResearchProject) { +// return super.exportXls(request, payResearchProject, PayResearchProject.class, "在研项目"); +// } +// +// /** +// * 通过excel导入数据 +// * +// * @param request +// * @param response +// * @return +// */ +// @RequestMapping(value = "/importExcel", method = RequestMethod.POST) +// public Result importExcel(HttpServletRequest request, HttpServletResponse response) { +// return super.importExcel(request, response, PayResearchProject.class); +// } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayResearchProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayResearchProject.java index 8ccd478d..48540e12 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayResearchProject.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayResearchProject.java @@ -1,9 +1,13 @@ package com.jero.project.entity; import java.io.Serializable; +import java.util.List; + 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.jero.data.entity.Files; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -13,6 +17,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + /** * @Description: pay_research_project * @Author: jeecg-boot @@ -28,11 +35,18 @@ public class PayResearchProject implements Serializable { private static final long serialVersionUID = 1L; /**主键*/ + @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主键") private java.lang.String id; + /**工作组id*/ + @NotNull(message ="工作组id不能为空") + @ApiModelProperty(value = "工作组id") + private java.lang.String workingGroupId; /**项目名称*/ @Excel(name = "项目名称", width = 15) + @NotNull(message ="项目名称不能为空") + @Size(max = 50,message = "项目名称长度不超过50个字符") @ApiModelProperty(value = "项目名称") private java.lang.String projectName; /**主要起草单位*/ @@ -43,6 +57,13 @@ public class PayResearchProject implements Serializable { @Excel(name = "过程文件", width = 15) @ApiModelProperty(value = "过程文件(多个都好隔开)") private java.lang.String files; + + /**文件集合*/ + @TableField(exist = false) + @Excel(name = "文件集合", width = 15) + @ApiModelProperty(value = "文件集合") + private List filesList; + /**项目进度*/ @Excel(name = "项目进度", width = 15) @ApiModelProperty(value = "项目进度") diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayResearchProjectMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayResearchProjectMapper.java index 1db3b67b..d9c96e4f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayResearchProjectMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayResearchProjectMapper.java @@ -1,7 +1,13 @@ package com.jero.project.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.project.entity.PayResearchProject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.yaml.snakeyaml.scanner.Constant; /** * @Description: pay_research_project @@ -11,4 +17,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface PayResearchProjectMapper extends BaseMapper { + IPage pageList(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + void saveFile(@Param("id")String id,@Param("fileId")String fileId,@Param("projectId") String projectId); + + void deleteFile(@Param("id")String id); + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayResearchProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayResearchProjectMapper.xml index 9c8e2f15..9dfa93e6 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayResearchProjectMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayResearchProjectMapper.xml @@ -1,5 +1,31 @@ + + + + + + + + + + + + + + + + + insert into pay_research_project_file (id,project_id,file_id) value (#{id},#{projectId},#{fileId}) + + + delete from pay_research_project_file where pay_research_project_file.project_id=#{id} + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java index 5826b099..c241ba5a 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java @@ -1,7 +1,9 @@ package com.jero.project.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.project.entity.PayResearchProject; import com.baomidou.mybatisplus.extension.service.IService; @@ -19,4 +21,10 @@ public interface IPayResearchProjectService extends IService void downLoad(Integer fileId,String fileName) throws IOException; + IPage pageList(Page page, QueryWrapper queryWrapper); + + void saveFile(String id,String fileId, String projectId); + + void deleteFile(String id); + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java index 88355a97..af2489ce 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java @@ -2,7 +2,9 @@ package com.jero.project.service.impl; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.project.entity.PayResearchProject; import com.jero.project.mapper.PayResearchProjectMapper; import com.jero.project.service.IPayResearchProjectService; @@ -19,6 +21,7 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.activation.MimetypesFileTypeMap; +import javax.annotation.Resource; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; @@ -26,6 +29,8 @@ import javax.crypto.spec.DESKeySpec; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.security.SecureRandom; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; /** @@ -44,9 +49,12 @@ public class PayResearchProjectServiceImpl extends ServiceImpl pageList(Page page, QueryWrapper queryWrapper) { + IPage payResearchProjectIPage = payResearchProjectMapper.pageList(page, queryWrapper); + return payResearchProjectIPage; + } + + @Override + public void saveFile(String id,String fileId, String projectId) { + payResearchProjectMapper.saveFile(id,fileId,projectId); + + } + + @Override + public void deleteFile(String id) { + payResearchProjectMapper.deleteFile(id); + } }