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.ruoyi.common.core.controller.BaseController;
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.request.JMemorandumRequest;
import com.ruoyi.jjh.ent.service.JMemorandumService;
@ -45,6 +46,21 @@ public class JMemorandumController extends BaseController {
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.ruoyi.common.core.controller.BaseController;
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.utils.ServletUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
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.request.JProjectExcel;
import com.ruoyi.jjh.ent.service.JProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.Serializable;
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")
public AjaxResult importProject(@RequestPart("file") MultipartFile file) throws Exception {
HttpServletRequest req = ServletUtils.getRequest();
// String token = req.getHeader("Authentication");
// if (StrUtil.isEmpty(token)) {
// throw new BaseException("用户未登录");
// }
public AjaxResult export(@RequestPart("file") MultipartFile file) throws Exception {
ProjectExcelUtil<JProject> util = new ProjectExcelUtil<>(JProject.class);
List<JProject> proList = util.importExcel(file.getInputStream());
StringBuilder successMsg = new StringBuilder();
@ -119,5 +121,42 @@ public class JProjectController extends BaseController {
}
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 = "项目分类")
@Excel(name = "项目分类", readConverterExp = "1=总部经济," +
"2=自主品牌先进技术研究院," +
"3=省现代服务业重点项目2023," +
"4=省现代服务业重点项目2024," +
"5=省市服务业领军企业-园区内各级省市服务业领军," +
"6=省市服务业领军企业-苏州市全量服务业领军企业," +
"7=省级现代服务业聚集区," +
"8=两业融合试点单位," +
"9=楼宇经济-苏州市全量楼宇经济奖励名单," +
"10=楼宇经济-园区内楼宇经济奖励名单," +
"11=工业设计中心-苏州市全量工业设计中心," +
"12=工业设计中心-园区内各级工业设计中心," +
"13=工业设计研究院," +
"14=工业设计中心-园区内工业设计研究院," +
"15=服务型制造示范-苏州市全量服务型制造示范," +
"16=服务型制造示范-园区内各级服务型制造示范")
@ApiModelProperty("项目分类")
private String projectClassify;
private Integer projectClassify;
/**
*

@ -15,6 +15,13 @@ import java.util.Date;
@Data
@ApiModel("备忘录请求类")
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 org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* (JMemorandum)访
*
@ -22,5 +24,13 @@ public interface JMemorandumMapper extends BaseMapper<JMemorandum> {
* @return
*/
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.request.JMemorandumRequest;
import java.util.List;
/**
* (JMemorandum)
*
@ -21,5 +23,14 @@ public interface JMemorandumService extends IService<JMemorandum> {
* @return
*/
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 org.springframework.stereotype.Service;
import java.util.List;
/**
* (JMemorandum)
*
@ -29,5 +31,16 @@ public class JMemorandumServiceImpl extends ServiceImpl<JMemorandumMapper, JMemo
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;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
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.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
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.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
@ -27,6 +32,7 @@ import com.ruoyi.framework.config.ServerConfig;
* @author ruoyi
*/
@RestController
@Api(tags = "上传下载")
@RequestMapping("/common")
public class CommonController
{
@ -44,6 +50,7 @@ public class CommonController
* @param delete
*/
@GetMapping("/download")
@ApiOperation(value = "通用下载请求")
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
{
try
@ -72,6 +79,7 @@ public class CommonController
/**
*
*/
@ApiOperation(value = "通用上传请求(单个)")
@PostMapping("/upload")
public AjaxResult uploadFile(MultipartFile file) throws Exception
{
@ -98,6 +106,7 @@ public class CommonController
/**
*
*/
@ApiOperation(value = "通用上传请求(多个)")
@PostMapping("/uploads")
public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
{
@ -135,6 +144,7 @@ public class CommonController
/**
*
*/
@ApiOperation(value = "本地资源通用下载")
@GetMapping("/download/resource")
public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
throws Exception

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

@ -18,4 +18,19 @@
</if>
</where>
</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>

@ -395,7 +395,15 @@ public class ProjectExcelUtil<T> {
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()
.sorted(customComparator)
.collect(Collectors.toMap(

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

Loading…
Cancel
Save