add:工作组在研项目

This commit is contained in:
zhangqinlin
2021-12-14 17:16:40 +08:00
parent 0a36ed34ec
commit eb660dc66c
6 changed files with 254 additions and 63 deletions
@@ -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<PayResearchProj
@Autowired
private IPayResearchProjectService payResearchProjectService;
@Autowired
private IOSSFileService iossFileService;
/**
* 分页列表查询
*
* @param payResearchProject
* @param pageNo
* @param pageSize
* @param req
* @param
* @return
*/
@AutoLog(value = "在研项目-分页列表查询")
@@ -50,11 +56,19 @@ public class PayResearchProjectController extends JeroController<PayResearchProj
@GetMapping(value = "/list")
public Result<?> queryPageList(PayResearchProject payResearchProject,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayResearchProject> queryWrapper = QueryGenerator.initQueryWrapper(payResearchProject, req.getParameterMap());
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize
) {
QueryWrapper<PayResearchProject> 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<PayResearchProject> page = new Page<PayResearchProject>(pageNo, pageSize);
IPage<PayResearchProject> pageList = payResearchProjectService.page(page, queryWrapper);
IPage<PayResearchProject> pageList = payResearchProjectService.pageList(page, queryWrapper);
return Result.OK(pageList);
}
@@ -94,16 +108,85 @@ public class PayResearchProjectController extends JeroController<PayResearchProj
payResearchProjectService.downLoad(fileId,fileName);
}
/**
* 新增
*
* @param payResearchProject
* @return
*/
@Transactional
@AutoLog(value = "在研项目-新增")
@ApiOperation(value="在研项目-新增", notes="在研项目-新增")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayResearchProject payResearchProject) {
QueryWrapper<PayResearchProject> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_name",payResearchProject.getProjectName());
int count = payResearchProjectService.count(queryWrapper);
if (count>0) {
return Result.error("项目名称已存在");
}
payResearchProjectService.save(payResearchProject);
QueryWrapper<PayResearchProject> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("project_name",payResearchProject.getProjectName());
PayResearchProject one = payResearchProjectService.getOne(queryWrapper2);
if(StringUtils.isNotBlank(payResearchProject.getFiles())){
String files = payResearchProject.getFiles();
List<String> 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<PayResearchProject> 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<String> filesList = Arrays.asList(byId.getFiles().split(","));
if(StringUtils.isNotBlank(payResearchProject.getFiles())) {
List<String> 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<String> 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<PayResearchProj
*/
@AutoLog(value = "在研项目-通过id删除")
@ApiOperation(value="在研项目-通过id删除", notes="在研项目-通过id删除")
@DeleteMapping(value = "/delete")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
//删除关联文件表
payResearchProjectService.deleteFile(id);
//删除文件表
PayResearchProject byId = payResearchProjectService.getById(id);
if(StringUtils.isNotBlank(byId.getFiles())){
List<String> 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);
// }
}
@@ -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<Files> filesList;
/**项目进度*/
@Excel(name = "项目进度", width = 15)
@ApiModelProperty(value = "项目进度")
@@ -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<PayResearchProject> {
IPage<PayResearchProject> pageList(Page<PayResearchProject> page,@Param(Constants.WRAPPER) QueryWrapper<PayResearchProject> queryWrapper);
void saveFile(@Param("id")String id,@Param("fileId")String fileId,@Param("projectId") String projectId);
void deleteFile(@Param("id")String id);
}
@@ -1,5 +1,31 @@
<?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="com.jero.project.mapper.PayResearchProjectMapper">
<select id="pageList" resultMap="page">
select * from pay_research_project
${ew.customSqlSegment}
</select>
<resultMap id="page" type="com.jero.project.entity.PayResearchProject">
<id property="id" column="id" />
<result property="projectName" column="project_name" />
<result property="draftCompany" column="draft_company" />
<result property="files" column="files" />
<result property="projectSchedule" column="project_schedule" />
<collection property="filesList" ofType="com.jero.data.entity.Files" select="pageFile" javaType="java.util.List" column="id=id" >
<result property="fileId" column="fileId" />
<result property="fileName" column="file_name" />
<result property="createTime" column="create_time" />
</collection>
</resultMap>
<select id="pageFile" resultType="com.jero.data.entity.Files">
select oof.id AS fileId,oof.file_name,oof.create_time from pay_research_project_file prpf left join oss_file oof on(prpf.file_id=oof.id) where prpf.project_id=#{id}
</select>
<insert id="saveFile" >
insert into pay_research_project_file (id,project_id,file_id) value (#{id},#{projectId},#{fileId})
</insert>
<delete id="deleteFile" >
delete from pay_research_project_file where pay_research_project_file.project_id=#{id}
</delete>
</mapper>
@@ -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<PayResearchProject>
void downLoad(Integer fileId,String fileName) throws IOException;
IPage<PayResearchProject> pageList(Page<PayResearchProject> page, QueryWrapper<PayResearchProject> queryWrapper);
void saveFile(String id,String fileId, String projectId);
void deleteFile(String id);
}
@@ -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<PayResearchProjec
private String PREFIXF ="appId=QC_APP01&fid=";//文件下载参数
private String URL ="http://www.catarc.org.cn:8088/zxd/serviceInterface/getProjectInfoPage";
private String URL ="http://www.catarc.org.cn:8088/zxd/serviceInterface/getProjectInfoPage";//列表地址
private String URLF ="http://www.catarc.org.cn:8088/zxd/serviceInterface/downloadProjectFile";
private String URLF ="http://www.catarc.org.cn:8088/zxd/serviceInterface/downloadProjectFile";//文件下载地址
@Resource
private PayResearchProjectMapper payResearchProjectMapper;
/**
* 加密,并将结果转成16进制字符串
*
@@ -90,6 +98,14 @@ public class PayResearchProjectServiceImpl extends ServiceImpl<PayResearchProjec
JSONObject jsonObject = JSONObject.parseObject(s1);
return jsonObject;
}
// //传入时间戳即可
// public String conversionTime(String timeStamp) {
// //yyyy-MM-dd HH:mm:ss 转换的时间格式 可以自定义
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// //转换
// String time = sdf.format(new Date(Long.parseLong(timeStamp)));
// return time;
// }
@Override
public void downLoad(Integer fileId,String fileName) throws IOException {
@@ -123,4 +139,21 @@ public class PayResearchProjectServiceImpl extends ServiceImpl<PayResearchProjec
bis.close();
outputStream.close();
}
@Override
public IPage<PayResearchProject> pageList(Page<PayResearchProject> page, QueryWrapper<PayResearchProject> queryWrapper) {
IPage<PayResearchProject> 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);
}
}