dongdingding
杜函宇 1 year ago
parent 5942c54cb5
commit 9d9ca2f410

@ -4,6 +4,7 @@ package com.ruoyi.jjh.ent.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.jjh.ent.entity.JMemorandum; import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest; import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
import com.ruoyi.jjh.ent.service.JMemorandumService; import com.ruoyi.jjh.ent.service.JMemorandumService;
@ -45,6 +46,21 @@ public class JMemorandumController extends BaseController {
return success(jMemorandumService.page(page,jMemorandumRequest)); return success(jMemorandumService.page(page,jMemorandumRequest));
} }
/**
* IDID
*
* @param jMemorandumRequest
* @return
*/
@ApiOperation(value = "根据关联项目库ID查询该ID下的备忘录", response = JMemorandum.class)
@GetMapping("/getIdToList")
public AjaxResult selectIdToAll(JMemorandumRequest jMemorandumRequest) {
if(jMemorandumRequest.getProjectId() == null){
throw new ServiceException("项目库ID不能为空");
}
return success(jMemorandumService.selectIdToAll(jMemorandumRequest));
}
/** /**
* *
* *

@ -4,18 +4,25 @@ package com.ruoyi.jjh.ent.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.poi.ProjectExcelUtil; import com.ruoyi.common.utils.poi.ProjectExcelUtil;
import com.ruoyi.common.utils.poi.ProjectValueUtil;
import com.ruoyi.jjh.ent.entity.JProject; import com.ruoyi.jjh.ent.entity.JProject;
import com.ruoyi.jjh.ent.entity.request.JProjectExcel;
import com.ruoyi.jjh.ent.service.JProjectService; import com.ruoyi.jjh.ent.service.JProjectService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@ -97,17 +104,12 @@ public class JProjectController extends BaseController {
} }
/** /**
* excel * excel
* *
*/ */
@ApiOperation(value = "导入excel项目数据") @ApiOperation(value = "导入已有的excel项目数据")
@PostMapping(value = "/export",consumes ="multipart/form-data") @PostMapping(value = "/export",consumes ="multipart/form-data")
public AjaxResult importProject(@RequestPart("file") MultipartFile file) throws Exception { public AjaxResult export(@RequestPart("file") MultipartFile file) throws Exception {
HttpServletRequest req = ServletUtils.getRequest();
// String token = req.getHeader("Authentication");
// if (StrUtil.isEmpty(token)) {
// throw new BaseException("用户未登录");
// }
ProjectExcelUtil<JProject> util = new ProjectExcelUtil<>(JProject.class); ProjectExcelUtil<JProject> util = new ProjectExcelUtil<>(JProject.class);
List<JProject> proList = util.importExcel(file.getInputStream()); List<JProject> proList = util.importExcel(file.getInputStream());
StringBuilder successMsg = new StringBuilder(); StringBuilder successMsg = new StringBuilder();
@ -119,5 +121,42 @@ public class JProjectController extends BaseController {
} }
return AjaxResult.success(successMsg); return AjaxResult.success(successMsg);
} }
/**
* excel
*
*/
@ApiOperation(value = "导入下载的excel模板和参数项目数据")
@ApiImplicitParams({
@ApiImplicitParam(name="projectClassify",value="项目分类",required=true),
@ApiImplicitParam(name="projectYear",value="年份",required=true),
})
@PostMapping(value = "/importTemplateProject",consumes ="multipart/form-data")
public AjaxResult importTemplateProject(@RequestPart("file") MultipartFile file,
@RequestParam("projectClassify")String projectClassify,
@RequestParam("projectYear")String projectYear) throws Exception {
ProjectValueUtil<JProject> util = new ProjectValueUtil<>(JProject.class);
List<JProject> proList = util.importExcel(file.getInputStream(),projectClassify,projectYear);
StringBuilder successMsg = new StringBuilder();
if(proList == null && proList.isEmpty()){
throw new ServiceException("项目导入数据不能为空");
}else {
jProjectService.saveBatch(proList);
successMsg.append("导入成功");
}
return AjaxResult.success(successMsg);
}
/**
*
*
*/
@ApiOperation(value = "下载项目模板")
@PostMapping("/updateProjectTemplate")
public void updateProjectTemplate(HttpServletResponse response)
{
ExcelUtil<JProjectExcel> util = new ExcelUtil<>(JProjectExcel.class);
util.importTemplateExcel(response, "项目模板");
}
} }

@ -42,10 +42,24 @@ public class JProject{
/** /**
* *
*/ */
// @Excel(name = "项目分类", readConverterExp = "0=省现代服务业重点项目,1=两业融合试点单位") @Excel(name = "项目分类", readConverterExp = "1=总部经济," +
@Excel(name = "项目分类") "2=自主品牌先进技术研究院," +
"3=省现代服务业重点项目2023," +
"4=省现代服务业重点项目2024," +
"5=省市服务业领军企业-园区内各级省市服务业领军," +
"6=省市服务业领军企业-苏州市全量服务业领军企业," +
"7=省级现代服务业聚集区," +
"8=两业融合试点单位," +
"9=楼宇经济-苏州市全量楼宇经济奖励名单," +
"10=楼宇经济-园区内楼宇经济奖励名单," +
"11=工业设计中心-苏州市全量工业设计中心," +
"12=工业设计中心-园区内各级工业设计中心," +
"13=工业设计研究院," +
"14=工业设计中心-园区内工业设计研究院," +
"15=服务型制造示范-苏州市全量服务型制造示范," +
"16=服务型制造示范-园区内各级服务型制造示范")
@ApiModelProperty("项目分类") @ApiModelProperty("项目分类")
private String projectClassify; private Integer projectClassify;
/** /**
* *

@ -15,6 +15,13 @@ import java.util.Date;
@Data @Data
@ApiModel("备忘录请求类") @ApiModel("备忘录请求类")
public class JMemorandumRequest { public class JMemorandumRequest {
/**
* ID
*/
@ApiModelProperty("项目库关联ID")
private Long projectId;
/** /**
* *
*/ */

@ -0,0 +1,26 @@
package com.ruoyi.jjh.ent.entity.request;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author du
* @since 2024/3/27 16:37
*/
@Data
public class JProjectExcel {
/**
*
*/
@Excel(name = "项目名称")
@ApiModelProperty("项目名称")
private String projectName;
/**
*
*/
@Excel(name = "申报单位")
@ApiModelProperty("申报单位")
private String declareUnit;
}

@ -6,6 +6,8 @@ import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest; import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* (JMemorandum)访 * (JMemorandum)访
* *
@ -22,5 +24,13 @@ public interface JMemorandumMapper extends BaseMapper<JMemorandum> {
* @return * @return
*/ */
Page<JMemorandum> page(Page<JMemorandum> page, @Param("req") JMemorandumRequest jMemorandumRequest); Page<JMemorandum> page(Page<JMemorandum> page, @Param("req") JMemorandumRequest jMemorandumRequest);
/**
* IDID
*
* @param jMemorandumRequest
* @return
*/
List<JMemorandum> selectIdToAll(@Param("req") JMemorandumRequest jMemorandumRequest);
} }

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.jjh.ent.entity.JMemorandum; import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest; import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
import java.util.List;
/** /**
* (JMemorandum) * (JMemorandum)
* *
@ -21,5 +23,14 @@ public interface JMemorandumService extends IService<JMemorandum> {
* @return * @return
*/ */
Page<JMemorandum> page(Page<JMemorandum> page, JMemorandumRequest jMemorandumRequest); Page<JMemorandum> page(Page<JMemorandum> page, JMemorandumRequest jMemorandumRequest);
/**
* IDID
*
* @param jMemorandumRequest
* @return
*/
List<JMemorandum> selectIdToAll(JMemorandumRequest jMemorandumRequest);
} }

@ -8,6 +8,8 @@ import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.service.JMemorandumService; import com.ruoyi.jjh.ent.service.JMemorandumService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* (JMemorandum) * (JMemorandum)
* *
@ -29,5 +31,16 @@ public class JMemorandumServiceImpl extends ServiceImpl<JMemorandumMapper, JMemo
return baseMapper.page(page,jMemorandumRequest); return baseMapper.page(page,jMemorandumRequest);
} }
/**
* IDID
*
* @param jMemorandumRequest
* @return
*/
@Override
public List<JMemorandum> selectIdToAll(JMemorandumRequest jMemorandumRequest) {
return baseMapper.selectIdToAll(jMemorandumRequest);
}
} }

@ -1,17 +1,22 @@
package com.ruoyi.web.controller.common; package com.ruoyi.web.controller.common;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JProjectExcel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
@ -27,6 +32,7 @@ import com.ruoyi.framework.config.ServerConfig;
* @author ruoyi * @author ruoyi
*/ */
@RestController @RestController
@Api(tags = "上传下载")
@RequestMapping("/common") @RequestMapping("/common")
public class CommonController public class CommonController
{ {
@ -44,6 +50,7 @@ public class CommonController
* @param delete * @param delete
*/ */
@GetMapping("/download") @GetMapping("/download")
@ApiOperation(value = "通用下载请求")
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
{ {
try try
@ -72,6 +79,7 @@ public class CommonController
/** /**
* *
*/ */
@ApiOperation(value = "通用上传请求(单个)")
@PostMapping("/upload") @PostMapping("/upload")
public AjaxResult uploadFile(MultipartFile file) throws Exception public AjaxResult uploadFile(MultipartFile file) throws Exception
{ {
@ -98,6 +106,7 @@ public class CommonController
/** /**
* *
*/ */
@ApiOperation(value = "通用上传请求(多个)")
@PostMapping("/uploads") @PostMapping("/uploads")
public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
{ {
@ -135,6 +144,7 @@ public class CommonController
/** /**
* *
*/ */
@ApiOperation(value = "本地资源通用下载")
@GetMapping("/download/resource") @GetMapping("/download/resource")
public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
throws Exception throws Exception

@ -70,7 +70,7 @@ public class SwaggerConfig {
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build() .build()
/* 设置安全模式swagger可以设置访问token */ /* 设置安全模式swagger可以设置访问token */
.securitySchemes(securitySchemes()) // .securitySchemes(securitySchemes())
.securityContexts(securityContexts()) .securityContexts(securityContexts())
.pathMapping(pathMapping) .pathMapping(pathMapping)
// 排除mybatis-plus的分页参数 // 排除mybatis-plus的分页参数
@ -80,11 +80,11 @@ public class SwaggerConfig {
/** /**
* tokenAuthorization * tokenAuthorization
*/ */
private List<SecurityScheme> securitySchemes() { // private List<SecurityScheme> securitySchemes() {
List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>(); // List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
// apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); // apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
return apiKeyList; // return apiKeyList;
} // }
/** /**
* *

@ -18,4 +18,19 @@
</if> </if>
</where> </where>
</select> </select>
<select id="selectIdToAll" resultType="com.ruoyi.jjh.ent.entity.JMemorandum">
select * from j_memorandum
<where>
<if test="req.name != null and req.name != '' ">
and name like concat('%',#{req.name},'%') or keywords like concat('%',#{req.name},'%')
</if>
<if test="req.startTime != null ">
and create_time &gt;= #{req.startTime}
</if>
<if test="req.endTime != null">
and create_time &lt;= #{req.endTime}
</if>
and project_id = #{req.projectId}
</where>
</select>
</mapper> </mapper>

@ -395,7 +395,15 @@ public class ProjectExcelUtil<T> {
sortHash.put(key1, String.valueOf(val1)); sortHash.put(key1, String.valueOf(val1));
} }
// 自定义比较器按值排序 // 自定义比较器按值排序
Comparator<Map.Entry<String, String>> customComparator = Comparator.comparingInt(entry -> entry.getValue().length()); Comparator<Map.Entry<String, String>> customComparator = (entry1, entry2) -> {
if (entry1.getValue().length() > entry2.getValue().length()) {
return 1;
} else if (entry1.getValue().length() < entry2.getValue().length()) {
return -1;
} else {
return 0; // 默认升序排序
}
};
Map<String, String> sortedMap = sortHash.entrySet().stream() Map<String, String> sortedMap = sortHash.entrySet().stream()
.sorted(customComparator) .sorted(customComparator)
.collect(Collectors.toMap( .collect(Collectors.toMap(

@ -115,7 +115,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 静态资源,可匿名访问 // 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
.antMatchers("/jjh/**").permitAll() // .antMatchers("/jjh/**").permitAll()
// .antMatchers("/common/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证 // 除上面外的所有请求全部需要鉴权认证

Loading…
Cancel
Save