Commit d1ad4dcd by 涂亚平

第一个版本

1 parent 65538c24
Showing with 1223 additions and 1049 deletions
# Created by .ignore support plugin (hsz.mobi)
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
assets/
logs/
\ No newline at end of file
This diff could not be displayed because it is too large.
2026-04-10 15:16:08,277 [http-nio-23511-exec-4] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
2026-04-15 17:07:30,154 [http-nio-23511-exec-6] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:299)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
......@@ -43,187 +43,7 @@ org.springframework.http.converter.HttpMessageNotWritableException: No converter
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2026-04-10 15:19:53,982 [http-nio-23511-exec-7] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:299)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:123)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2026-04-10 15:20:35,395 [http-nio-23511-exec-9] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:299)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:123)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2026-04-10 15:22:06,560 [http-nio-23511-exec-6] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:299)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:123)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2026-04-10 15:22:08,433 [http-nio-23511-exec-7] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:299)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:123)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2026-04-10 15:24:08,090 [http-nio-23511-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
2026-04-15 17:14:39,042 [http-nio-23511-exec-4] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'] with root cause
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.zhongzhi.vo.ResponseVO] with preset Content-Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:299)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
......
This diff could not be displayed because it is too large.
......@@ -16,7 +16,7 @@ public class ProjectSchedule {
// 校内赛
public static final String SCHOOL_REVIEW = "校级申请项目";
public static final String SEMI_FINAL_REVIEW = "级复赛项目";
public static final String SEMI_FINAL_REVIEW = "级复赛项目";
public static final String FINAL_REVIEW = "市级决赛项目";
}
......@@ -184,4 +184,11 @@ public class DateFormatUtil {
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
return localDateTime;
}
public static String currentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 获取当前时间并格式化为字符串
return sdf.format(new Date());
}
}
......@@ -125,6 +125,82 @@ public class ExcelUtil {
return list;
}
/**
* 导出excel文件
*
* @param list
* @param cls
* @param <T>
*/
public static <T> void writeExcel(List<T> list, Class cls) {
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletResponse response = servletRequestAttributes.getResponse();
Field[] fields = cls.getDeclaredFields();
List<Field> fieldList = Arrays.stream(fields).filter(field -> {
ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
if (annotation != null) {
field.setAccessible(true);
return true;
}
return false;
}).sorted(Comparator.comparing(field -> {
int col = 0;
ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
if (annotation != null) {
col = annotation.col();
}
return col;
})).collect(Collectors.toList());
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet();
AtomicInteger ai = new AtomicInteger();
{
Row row = sheet.createRow(ai.getAndIncrement());
AtomicInteger at = new AtomicInteger();
fieldList.forEach(field -> {
ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
String columnName = "";
if (annotation != null) {
columnName = annotation.value();
}
Cell cell = row.createCell(at.getAndIncrement());
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
Font font = wb.createFont();
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
cell.setCellValue(columnName);
});
if (list != null) {
list.forEach(data -> {
Row r = sheet.createRow(ai.getAndIncrement());
AtomicInteger a = new AtomicInteger();
fieldList.forEach(field -> {
try {
Class<?> type = field.getType();
Object value = field.get(data);
Cell cell = r.createCell(a.getAndIncrement());
if (value != null) {
cell.setCellValue(value.toString());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
});
});
for (int i = 0; i < list.size(); i++) {
sheet.autoSizeColumn(i);
}
}
String fileName = String.valueOf(new Date().getTime());
buildExcelDocument(fileName + "." + EXCEL2007, wb, response);
}
}
public static <T> void writeExcel(String title, List<ExcelFieldVO> fields, List<Map> list) {
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletResponse response = servletRequestAttributes.getResponse();
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dao.RolePermissionMapper;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.CreateAdministerDTO;
import com.zhongzhi.dto.administer.LoginDTO;
......@@ -14,6 +15,7 @@ import com.zhongzhi.service.AdministerPermissionService;
import com.zhongzhi.service.AdministerService;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.zhongzhi.vo.ResponseVO;
import com.zhongzhi.vo.permission.PermissionVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -46,6 +48,9 @@ public class AdministerController {
@Autowired
private AdministerPermissionService administerPermissionService;
@Autowired
private RolePermissionMapper rolePermissionMapper;
@PostMapping(value = "/login")
@ApiOperation("中心端 --- 登录:手机号/telephone, code/验证码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
......@@ -64,8 +69,8 @@ public class AdministerController {
administerService.save(createAdministerDTO);
List<Long> trackIds = createAdministerDTO.getTrackIds();
if (null != trackIds){
for (Long id : trackIds){
if (null != trackIds) {
for (Long id : trackIds) {
AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
administerTrackMappingDO.setTrackId(id);
......@@ -73,12 +78,13 @@ public class AdministerController {
}
}
List<Long> permissionIds = createAdministerDTO.getPermissionIds();
if (null != permissionIds){
for (Long id : permissionIds){
List<PermissionVO> permission = rolePermissionMapper.getPermission(createAdministerDTO.getRole());
if (null != permission && permission.size() > 0) {
for (PermissionVO permissionVO : permission) {
AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
administerPermissionDO.setAdministerId(createAdministerDTO.getId());
administerPermissionDO.setPermissionId(id);
administerPermissionDO.setPermissionId(permissionVO.getId());
administerPermissionService.save(administerPermissionDO);
}
}
......@@ -92,11 +98,11 @@ public class AdministerController {
administerService.updateAdminister(createAdministerDTO);
List<Long> trackIds = createAdministerDTO.getTrackIds();
if (null != trackIds){
if (null != trackIds) {
administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,createAdministerDTO.getId()));
for (Long id : trackIds){
.eq(AdministerTrackMappingDO::getAdministerId, createAdministerDTO.getId()));
for (Long id : trackIds) {
AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
administerTrackMappingDO.setTrackId(id);
......@@ -108,8 +114,8 @@ public class AdministerController {
if (null != permissionIds) {
administerPermissionService.remove(new QueryWrapper<AdministerPermissionDO>()
.lambda()
.eq(AdministerPermissionDO::getAdministerId,createAdministerDTO.getId()));
for (Long id : permissionIds){
.eq(AdministerPermissionDO::getAdministerId, createAdministerDTO.getId()));
for (Long id : permissionIds) {
AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
administerPermissionDO.setAdministerId(createAdministerDTO.getId());
administerPermissionDO.setPermissionId(id);
......@@ -126,7 +132,7 @@ public class AdministerController {
administerService.removeById(administerDO.getId());
administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,administerDO.getId()));
.eq(AdministerTrackMappingDO::getAdministerId, administerDO.getId()));
return ResponseData.generateCreatedResponse(0);
}
}
......@@ -8,6 +8,7 @@ import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.dto.project.ProjectSummaryDTO;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.service.MatchDictService;
import com.zhongzhi.vo.ResponseVO;
......@@ -164,11 +165,22 @@ public class MatchDictController {
/* 职教管理端 */
@PostMapping(value = "/getVocationalPage")
@LoginRequired({Platform.center, Platform.school, Platform.review})
// @LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("[立信]中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getVocationalPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalPage(selectListPageDTO));
}
@PostMapping("projectSummary")
@ApiOperation("概览 matchId startDate endDate")
public ResponseVO projectSummary(@RequestBody ProjectSummaryDTO projectSummaryDTO){
return ResponseData.generateCreatedResponse(0,matchDictService.projectSummary(projectSummaryDTO));
}
@PostMapping("exportProjectSummary")
@ApiOperation("导出")
public void exportProjectSummary(@RequestBody ProjectSummaryDTO projectSummaryDTO){
matchDictService.exportProjectSummary(projectSummaryDTO);
}
}
\ No newline at end of file
......@@ -33,4 +33,5 @@ public class PermissionsController {
}
}
......@@ -329,14 +329,14 @@ public class ProjectController {
}
@PostMapping(value = "/exportProjectList")
@LoginRequired({Platform.center})
// @LoginRequired({Platform.center})
@ApiOperation("####中心端 --- 批量导出种子赛道项目:matchId/赛事ID")
public void exportProjectList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
projectService.exportProjectList(projectCollegeListDTO);
}
@PostMapping(value = "/exportProjectAll")
@LoginRequired({Platform.center})
// @LoginRequired({Platform.center})
@ApiOperation("####中心端 --- 导出全部种子赛道项目:matchId/赛事ID, projectSchedule/项目进度,projectGroup/项目组别")
public void exportProjectAll(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
projectService.exportProjectAll(projectCollegeListDTO);
......@@ -594,6 +594,7 @@ public class ProjectController {
}
@PostMapping(value = "getReviewVocationalNum")
@LoginRequired({Platform.center,Platform.school,Platform.review})
@ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId")
public ResponseVO getReviewVocationalNum(@RequestBody ReviewVocationalNumDTO reviewVocationalNumDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getReviewVocationalNum(reviewVocationalNumDTO));
......
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dao.RolePermissionMapper;
import com.zhongzhi.dto.administer.AddRolePermissionDTO;
import com.zhongzhi.model.RolePermissionDO;
import com.zhongzhi.service.RolePermissionService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 系统用户权限表 前端控制器
* </p>
*
* @author DengMin
* @since 2026-05-15
*/
@RestController
@Api(tags = "角色权限")
@RequestMapping("/rolePermission")
public class RolePermissionController {
@Autowired
private RolePermissionService permissionService;
@PostMapping("queryRolePermission")
@ApiOperation("查询角色下权限 role ")
public ResponseVO queryRolePermission(@RequestBody RolePermissionDO rolePermissionDO){
return ResponseData.generateCreatedResponse(0,permissionService.queryRolePermission(rolePermissionDO));
}
@PostMapping("updateRolePermission")
@ApiOperation("添加角色权限 role permissionIds")
public ResponseVO addRolePermission(@RequestBody AddRolePermissionDTO addRolePermissionDTO){
permissionService.addRolePermission(addRolePermissionDTO);
return ResponseData.generateCreatedResponse(0);
}
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.model.MatchDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.match.MatchDictVO;
import com.zhongzhi.vo.match.ProjectSummaryVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -24,4 +25,6 @@ public interface MatchDictDAO extends BaseMapper<MatchDictDO> {
IPage<MatchDictVO> getSeedTrackMatchPage(Page page);
List<MatchDictDO> getList(@Param("projectType") String projectType, @Param("projectGroup") String projectGroup);
List<ProjectSummaryVO> projectSummary(Long matchId, String startDate, String endDate);
}
......@@ -37,7 +37,7 @@ public interface ProjectDAO extends BaseMapper<ProjectDO> {
IPage<ProjectPageVO> getProjectReviewPage(Page page, Long judgeId, Long matchId, String projectName, String projectSchedule, String projectReview, String projectGroup,String projectProgress);
List<ProjectDO> getProjectReviewList(Long id, Long matchId,String projectProgress);
List<ProjectDO> getProjectReviewList(Long id, Long matchId,String projectSchedule);
List<ProjectDO> getProjectByCollege(Long matchId, @Param("name") String name, String projectProgress);
......@@ -70,4 +70,6 @@ public interface ProjectDAO extends BaseMapper<ProjectDO> {
Integer projectMembers(Long project,String type);
ProjectProgressCntVO projectProgressCnt(List<Long> projectIds);
void updateProjectStatus(Long id,String status,String projectSchedule,String projectReview,String projectAssigned);
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.model.RolePermissionDO;
import com.zhongzhi.vo.permission.PermissionVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 系统用户权限表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2026-05-15
*/
@Repository
public interface RolePermissionMapper extends BaseMapper<RolePermissionDO> {
List<PermissionVO> getPermission(String role);
}
package com.zhongzhi.dto.administer;
import lombok.Data;
import java.util.List;
@Data
public class AddRolePermissionDTO {
private String role;
private List<Long> permissionIds;
}
......@@ -45,6 +45,8 @@ public class CreateProjectMemberDTO {
*/
private String studentNo;
private String studyNo;
/**
* 手机号
*/
......
......@@ -36,4 +36,8 @@ public class MentorDTO {
* 身份证号
*/
private String idCard;
private String studyNo;
private String education;
}
......@@ -46,4 +46,10 @@ public class TeamMemberDTO {
* 手机号
*/
private String teamTelephone;
private String studyNo;
private String education;
private String email;
}
......@@ -11,5 +11,5 @@ public class ApproveDTO {
private Long id;
private Integer projectStatus;
private String projectStatus;
}
......@@ -6,48 +6,82 @@ import lombok.Data;
@Data
public class ExportProjectDTO {
@ExcelColumn(col = 1, value = "届数")
private String matchName;
@ExcelColumn(col = 2, value = "项目名称")
@ExcelColumn(col = 1, value = "项目名称")
private String projectName;
@ExcelColumn(col = 3, value = "项目简介")
@ExcelColumn(col = 2, value = "项目概述")
private String projectIntro;
@ExcelColumn(col = 4, value = "组别")
private String projectGroup;
@ExcelColumn(col = 5, value = "项目类型")
private String projectType;
@ExcelColumn(col = 3, value = "负责人姓名")
private String name;
@ExcelColumn(col = 6, value = "所属行业")
private String classification;
@ExcelColumn(col = 4, value = "负责人手机号")
private String telephone;
@ExcelColumn(col = 7, value = "负责人")
private String name;
@ExcelColumn(col = 5, value = "负责人邮箱")
private String email;
// @ExcelColumn(col = 8, value = "院校")
@ExcelColumn(col = 6, value = "学校")
private String college;
@ExcelColumn(col = 8, value = "学院")
@ExcelColumn(col = 7, value = "所在院系")
private String xueyuan;
@ExcelColumn(col = 9, value = "专业")
@ExcelColumn(col = 8, value = "学号")
private String studyNo;
@ExcelColumn(col = 9, value = "学历层次")
private String education;
@ExcelColumn(col = 10, value = "入学时间")
private String enrollmentDate;
@ExcelColumn(col = 11, value = "毕业时间")
private String graduateDate;
@ExcelColumn(col = 12, value = "专业名称")
private String major;
@ExcelColumn(col = 10, value = "手机号")
private String telephone;
@ExcelColumn(col = 13, value = "省份")
private String province;
@ExcelColumn(col = 11, value = "团队成员")
private String teamMembers;
@ExcelColumn(col = 14,value = "指导教师")
private String mentorStr;
@ExcelColumn(col = 12, value = "指导老师")
private String teachers;
@ExcelColumn(col = 15,value = "团队成员")
private String memberStr;
@ExcelColumn(col = 13, value = "项目阶段")
@ExcelColumn(col = 16, value = "报名时间")
private String createDate;
@ExcelColumn(col = 17, value = "赛道")
private String projectTrack;
@ExcelColumn(col = 18, value = "参赛组别")
private String projectGroup;
@ExcelColumn(col = 19, value = "参赛类别")
private String projectType;
@ExcelColumn(col = 20, value = "项目进展")
private String projectStage;
@ExcelColumn(col = 21, value = "参赛阶段")
private String projectSchedule;
@ExcelColumn(col = 14, value = "项目状态")
private String projectStatus;
@ExcelColumn(col = 22, value = "学校科技成果转化")
private String resultTransfer;
@ExcelColumn(col = 23, value = "参赛申报人为科技成果的第一完成人或所有人")
private String competitionFirst;
@ExcelColumn(col = 24, value = "隐私设置")
private String privacySetting;
@ExcelColumn(col = 25, value = "国赛获奖情况")
private String countryReward;
@ExcelColumn(col = 26, value = "省赛获奖情况")
private String provinceReward;
}
package com.zhongzhi.dto.project;
import lombok.Data;
@Data
public class ProjectSummaryDTO {
private Long matchId;
private String startDate;
private String endDate;
}
package com.zhongzhi.model;
import com.baomidou.mybatisplus.annotation.*;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
......@@ -51,6 +49,7 @@ public class ProjectDO extends BaseModel {
/**
* 组别
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String projectGroup;
/**
......@@ -152,9 +151,12 @@ public class ProjectDO extends BaseModel {
*/
private String projectSchedule;
private String submitDate;
/**
* 项目类型
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String projectType;
/**
......@@ -173,4 +175,13 @@ public class ProjectDO extends BaseModel {
private String rewardUrl;
private String legalPersonName;
private String unifyCode;
private String position;
private String investment;
private String privacySetting;
}
......@@ -45,6 +45,10 @@ public class ProjectMemberDO extends BaseModel {
*/
private String grade;
private String studyNo;
private String education;
/**
* 身份证
*/
......
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 系统用户权限表
* </p>
*
* @author DengMin
* @since 2026-05-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("role_permission")
public class RolePermissionDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 角色名称
*/
private String role;
/**
* 权限id
*/
private Long permissionId;
}
......@@ -3,8 +3,10 @@ package com.zhongzhi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.dto.project.ProjectSummaryDTO;
import com.zhongzhi.model.MatchDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.match.ProjectSummaryVO;
import java.util.List;
......@@ -39,4 +41,8 @@ public interface MatchDictService extends IService<MatchDictDO> {
void updateMatchDate(MatchDictDO matchDictDO);
MatchDictDO getMatch(MatchDictDO matchDictDO);
List<ProjectSummaryVO> projectSummary(ProjectSummaryDTO projectSummaryDTO);
void exportProjectSummary(ProjectSummaryDTO projectSummaryDTO);
}
......@@ -151,7 +151,7 @@ public interface ProjectService extends IService<ProjectDO> {
void exportProjectById(ReviewListDTO reviewListDTO);
VocationalProjectNum getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO);
List<VocationalProjectNum> getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO);
void batchUpdateEditStatus(EditStatusDTO editStatusDTO);
......
package com.zhongzhi.service;
import com.zhongzhi.dto.administer.AddRolePermissionDTO;
import com.zhongzhi.model.RolePermissionDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.permission.PermissionVO;
import java.util.List;
/**
* <p>
* 系统用户权限表 服务类
* </p>
*
* @author DengMin
* @since 2026-05-15
*/
public interface RolePermissionService extends IService<RolePermissionDO> {
List<PermissionVO> queryRolePermission(RolePermissionDO rolePermissionDO);
void addRolePermission(AddRolePermissionDTO addRolePermissionDTO);
}
......@@ -9,6 +9,7 @@ import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.JwtUtil;
import com.zhongzhi.dao.AdministerPermissionDAO;
import com.zhongzhi.dao.AdministerTrackMappingDAO;
import com.zhongzhi.dao.RolePermissionMapper;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.model.*;
......@@ -50,6 +51,9 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerDAO, Administer
@Autowired
private AdministerPermissionDAO administerPermissionDAO;
@Autowired
private RolePermissionMapper rolePermissionMapper;
@Override
public AdministerVO login(LoginDTO loginDTO) {
AdministerVO administerVO = new AdministerVO();
......@@ -76,25 +80,25 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerDAO, Administer
administerVO.setToken(token);
administerVO.setId(administerDO.getId());
List<PermissionVO> list = permissionsService.getPermissionById(administerDO.getId());
List<PermissionVO> treeList = new ArrayList();
list.forEach(permissions -> {
if (permissions.getParentId() == null) {
treeList.add(permissions);
}
list.forEach(p -> {
if (p.getParentId() != null) {
if (p.getParentId().equals(permissions.getId())) {
if (permissions.getChildNodeList() == null) {
permissions.setChildNodeList(new ArrayList<>());
}
permissions.getChildNodeList().add(p);
}
}
});
});
administerVO.setPermission(treeList);
List<PermissionVO> list = rolePermissionMapper.getPermission(administerDO.getRole());
// List<PermissionVO> treeList = new ArrayList();
// list.forEach(permissions -> {
// if (permissions.getParentId() == null) {
// treeList.add(permissions);
// }
//
// list.forEach(p -> {
// if (p.getParentId() != null) {
// if (p.getParentId().equals(permissions.getId())) {
// if (permissions.getChildNodeList() == null) {
// permissions.setChildNodeList(new ArrayList<>());
// }
// permissions.getChildNodeList().add(p);
// }
// }
// });
// });
administerVO.setPermission(list);
return administerVO;
}
......@@ -111,7 +115,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerDAO, Administer
.eq(AdministerTrackMappingDO::getAdministerId,getAdministerPageVO.getId()));
getAdministerPageVO.setAdministerTrackMappingDOS(administerTrackMappingDOS);
List<PermissionVO> list = permissionsService.getPermissionById(getAdministerPageVO.getId());
List<PermissionVO> list = rolePermissionMapper.getPermission(getAdministerPageVO.getRole());
List<PermissionVO> treeList = new ArrayList();
list.forEach(permissions -> {
if (permissions.getParentId() == null) {
......
......@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.utils.DateFormatUtil;
import com.zhongzhi.common.utils.ExcelUtil;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.dto.project.ProjectSummaryDTO;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.dao.MatchDictDAO;
import com.zhongzhi.model.MatchScheduleDO;
......@@ -14,12 +16,14 @@ import com.zhongzhi.service.MatchDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.service.MatchScheduleService;
import com.zhongzhi.vo.match.MatchDictVO;
import com.zhongzhi.vo.match.ProjectSummaryVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
......@@ -148,6 +152,64 @@ public class MatchDictServiceImpl extends ServiceImpl<MatchDictDAO, MatchDictDO>
}
@Override
public List<ProjectSummaryVO> projectSummary(ProjectSummaryDTO projectSummaryDTO) {
// ===================== 1. 固定顺序(必须和图2一致)=====================
List<String> ALL_COLLEGES = Arrays.asList(
"会计学院",
"金融学院",
"工商管理学院",
"国际经贸学院",
"财税与公共管理学院",
"统计与数学学院",
"计算机与人工智能学院",
"外国语学院",
"保险学院",
"法学院",
"金融科技学院",
"人文艺术学院",
"序伦书院"
);
List<ProjectSummaryVO> projectSummaryVOS = this.baseMapper.projectSummary(projectSummaryDTO.getMatchId(), projectSummaryDTO.getStartDate(), projectSummaryDTO.getEndDate());
// ===================== 3. 关键代码:补全所有学院,没有数据则为0 =====================
// 把SQL结果转成 Map<学院名, 数据>,方便快速查找
Map<String, ProjectSummaryVO> dataMap = projectSummaryVOS.stream()
.collect(Collectors.toMap(ProjectSummaryVO::getXueyuan, d -> d));
// 遍历固定顺序列表 → 有数据用数据,没数据补0
List<ProjectSummaryVO> finalResult = ALL_COLLEGES.stream()
.map(college -> {
ProjectSummaryVO data = dataMap.get(college);
if (data != null) {
return data;
} else {
// 没有数据 → 构造 0 值对象
return new ProjectSummaryVO(college, 0, 0);
}
})
.collect(Collectors.toList());
int i = 1;
String[] split = "159,114,62,72,89,59,93,33,37,34,36,8,4".split(",");
for (ProjectSummaryVO projectSummaryVO : finalResult){
projectSummaryVO.setFixCnt(Integer.valueOf(split[i-1]));
projectSummaryVO.setId(i ++);
}
return finalResult;
}
@Override
public void exportProjectSummary(ProjectSummaryDTO projectSummaryDTO) {
List<ProjectSummaryVO> projectSummaryVOS = projectSummary(projectSummaryDTO);
ExcelUtil.writeExcel(projectSummaryVOS,ProjectSummaryVO.class);
}
@Override
public List<MatchDictDO> getList(String projectType, String projectGroup) {
return this.baseMapper.getList(projectType, projectGroup);
}
......
......@@ -50,7 +50,7 @@ public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, Projec
@Override
public IPage<ProjectJudgePageVO> getProjectJudgePage(ProjectJudgePageDTO projectJudgePageDTO) {
IPage<ProjectJudgePageVO> iPage = this.baseMapper.getProjectJudgePage(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()), projectJudgePageDTO.getUsername(), projectJudgePageDTO.getStatus(),projectJudgePageDTO.getProjectTrack());
IPage<ProjectJudgePageVO> iPage = this.baseMapper.getProjectJudgePage(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()), projectJudgePageDTO.getUsername(), projectJudgePageDTO.getStatus(), projectJudgePageDTO.getProjectTrack());
for (ProjectJudgePageVO record : iPage.getRecords()) {
Integer count = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
......@@ -62,11 +62,11 @@ public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, Projec
@Override
public void createProjectJudge(ProjectJudgeDO projectJudgeDO) {
ProjectJudgeDO projectJudge = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
int count = this.baseMapper.selectCount(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getTelephone, projectJudgeDO.getTelephone()));
if (projectJudge != null) {
throw new HttpException(10020);
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO.getAccountName()));
if (count > 0) {
throw new HttpException(10028);
}
this.baseMapper.insert(projectJudgeDO);
......@@ -76,12 +76,9 @@ public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, Projec
public void updateProjectJudge(ProjectJudgeDO projectJudgeDO) {
ProjectJudgeDO projectJudge = this.baseMapper.selectById(projectJudgeDO.getId());
if (projectJudge != null) {
if (projectJudge.getTelephone().equals(projectJudgeDO.getTelephone())) {
this.baseMapper.updateById(projectJudgeDO);
} else {
ProjectJudgeDO p = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getTelephone, projectJudgeDO.getTelephone()));
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO.getAccountName()));
if (p != null) {
throw new HttpException(10020);
} else {
......@@ -89,7 +86,6 @@ public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, Projec
}
}
}
}
@Override
public JudgeInfoVO login(LoginDTO loginDTO) {
......@@ -99,13 +95,13 @@ public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, Projec
.lambda()
.eq(ProjectJudgeDO::getAccountName, loginDTO.getAccountName()));
if (null != projectJudgeDO){
if (null != projectJudgeDO) {
if (null != projectJudgeDO.getPasswordFree() && projectJudgeDO.getPasswordFree() != 1){
if (null != projectJudgeDO.getPasswordFree() && projectJudgeDO.getPasswordFree() != 1) {
ProjectJudgeDO projectJudgeDO1 = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName,loginDTO.getAccountName())
.eq(ProjectJudgeDO::getPassword,loginDTO.getPassword()));
.eq(ProjectJudgeDO::getAccountName, loginDTO.getAccountName())
.eq(ProjectJudgeDO::getPassword, loginDTO.getPassword()));
// SmsCodeDO smsCodeDO = smsCodeService.getOneByTelePhone(loginDTO.getTelephone(), SmsCode.login, SmsCode.review);
// if (smsCodeDO == null) {
// throw new HttpException(10025);
......@@ -128,7 +124,6 @@ public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, Projec
}
String token = JwtUtil.generateToken(projectJudgeDO.getId(), SmsCode.review);
judgeInfoVO.setTelephone(projectJudgeDO.getTelephone());
judgeInfoVO.setPosition(projectJudgeDO.getPosition());
......
......@@ -2,6 +2,7 @@ package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.ProjectReview;
import com.zhongzhi.common.constant.ProjectStatus;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.constant.SMSTemplate;
import com.zhongzhi.common.exception.HttpException;
......@@ -51,6 +52,9 @@ public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewDAO, Proj
@Autowired
private AliyunSmsUtil aliyunSmsUtil;
@Autowired
private ProjectDAO projectDAO;
@Override
@Transactional(rollbackFor = Exception.class)
public void setReview(SetReviewDTO setReviewDTO) {
......@@ -84,13 +88,7 @@ public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewDAO, Proj
}
if (projectDO.getProjectAssigned().equals(ProjectReview.UNASSIGNED)) {
ProjectDO project = new ProjectDO();
project.setId(projectId);
project.setProjectAssigned(ProjectReview.ASSIGNED);
if (projectDO.getProjectReview().equals(ProjectReview.SUBMITTED)) {
project.setProjectReview(ProjectReview.TO_REVIEWED);
}
projectService.updateById(project);
projectDAO.updateProjectStatus(projectId, ProjectStatus.TO_CHECK,null,ProjectReview.TO_REVIEWED,ProjectReview.ASSIGNED);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
......@@ -123,13 +121,7 @@ public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewDAO, Proj
}
if (projectDO.getProjectAssigned().equals(ProjectReview.UNASSIGNED)) {
ProjectDO project = new ProjectDO();
project.setId(projectId);
project.setProjectAssigned(ProjectReview.ASSIGNED);
if (projectDO.getProjectReview().equals(ProjectReview.SUBMITTED)) {
project.setProjectReview(ProjectReview.TO_REVIEWED);
}
projectService.updateById(project);
projectDAO.updateProjectStatus(projectId, ProjectStatus.TO_CHECK,null,ProjectReview.TO_REVIEWED,ProjectReview.ASSIGNED);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
......@@ -251,10 +243,7 @@ public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewDAO, Proj
只有最后一个评委是撤销修改项目分配状态
*/
if (count == 1) {
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
project.setProjectAssigned(ProjectReview.UNASSIGNED);
projectService.updateById(project);
projectDAO.updateProjectStatus(projectDO.getId(), ProjectStatus.TO_CHECK,null,ProjectReview.TO_REVIEWED,ProjectReview.UNASSIGNED);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
......@@ -273,7 +262,7 @@ public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewDAO, Proj
this.baseMapper.deleteById(projectReview.getId());
}
aliyunSmsUtil.sendTemplateMsg(projectDO.getProjectName(), projectJudgeDO.getTelephone(), SMSTemplate.CANCEL_REVIEW);
// aliyunSmsUtil.sendTemplateMsg(projectDO.getProjectName(), projectJudgeDO.getTelephone(), SMSTemplate.CANCEL_REVIEW);
}
}
}
......
......@@ -79,11 +79,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
private AliyunSmsUtil aliyunSmsUtil;
@Autowired
private CollegesDictDAO collegesDictDAO;
private ProjectAwardMapper projectAwardMapper;
@Autowired
private AdministerDAO administerDAO;
@Autowired
private ProjectOwnershipStructureDAO projectOwnershipStructureDAO;
// @Override
// public IPage getMainTrackProject(ProjectListPageDTO projectListPageDTO) {
// StudentDO studentDO = (StudentDO) Localstorage.getUser();
......@@ -150,7 +153,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
reviewListDTO.getProjectSchedule(),
reviewListDTO.getProjectAssigned(), null,
reviewListDTO.getProjectTrack(),
reviewListDTO.getUserId(),administerDO.getCollege(),
reviewListDTO.getUserId(), administerDO.getCollege(),
reviewListDTO.getXueyuan(),
reviewListDTO.getProjectType());
......@@ -343,7 +346,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
IPage<SeedTrackProjectPageVO> iPage = this.baseMapper.getSeedTrackProjectPage(page, matchId, projectListPageDTO.getProjectGroup(), projectListPageDTO.getProjectTrack(), MemberType.PRINCIPAL, null,
projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(), projectListPageDTO.getProjectName(),
projectListPageDTO.getProjectProgress(),projectListPageDTO.getUserId(),administerDO.getCollege(),projectListPageDTO.getProjectType(),projectListPageDTO.getXueyuan());
projectListPageDTO.getProjectProgress(), projectListPageDTO.getUserId(), administerDO.getCollege(), projectListPageDTO.getProjectType(), projectListPageDTO.getXueyuan());
for (SeedTrackProjectPageVO record : iPage.getRecords()) {
List<ProjectMaterialsDO> list = projectMaterialsService.list(new QueryWrapper<ProjectMaterialsDO>()
.lambda()
......@@ -363,7 +366,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
Page page = new Page(projectListPageDTO.getPageNo(), projectListPageDTO.getPageSize());
IPage<SeedTrackProjectPageVO> iPage = this.baseMapper.getSeedTrackProjectPage(page, projectListPageDTO.getMatchId(), projectListPageDTO.getProjectGroup(), null, MemberType.PRINCIPAL, collegesDictDO.getName(),
projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(),
projectListPageDTO.getProjectName(), projectListPageDTO.getProjectProgress(),projectListPageDTO.getUserId(),null,projectListPageDTO.getProjectType(),projectListPageDTO.getXueyuan());
projectListPageDTO.getProjectName(), projectListPageDTO.getProjectProgress(), projectListPageDTO.getUserId(), null, projectListPageDTO.getProjectType(), projectListPageDTO.getXueyuan());
for (SeedTrackProjectPageVO record : iPage.getRecords()) {
List<ProjectMaterialsDO> list = projectMaterialsService.list(new QueryWrapper<ProjectMaterialsDO>()
.lambda()
......@@ -623,23 +626,27 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
ProjectJudgeDO projectJudgeDO = (ProjectJudgeDO) map.get("user");
list = this.baseMapper.getListByJudgeId(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), projectJudgeDO.getId());
} else {
list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), null,seedTrackProjectNumDTO.getUserId(),administerDO.getCollege());
list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), null, seedTrackProjectNumDTO.getUserId(), administerDO.getCollege());
}
VocationalNumVO vocationalNumVO = new VocationalNumVO();
Integer schoolProjectNum = 0;
Integer registerNum = 0;
Integer fusaiNum = 0;
if (list != null && list.size() > 0) {
for (ProjectDO projectDO : list) {
if (projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)) {
schoolProjectNum++;
} else if (projectDO.getProjectSchedule().equals(ProjectSchedule.REGISTER)) {
registerNum++;
} else {
fusaiNum++;
}
}
}
vocationalNumVO.setRegisterNum(registerNum);
vocationalNumVO.setSchoolProjectNum(schoolProjectNum);
vocationalNumVO.setFusaiNum(fusaiNum);
return vocationalNumVO;
}
......@@ -648,12 +655,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId());
VocationalReviewNumVO vo = new VocationalReviewNumVO();
List<ProjectDO> list = this.baseMapper.getVocationalReviewNum(reviewListDTO.getUserId(),reviewListDTO.getMatchId(),administerDO.getCollege());
List<ProjectDO> list = this.baseMapper.getVocationalReviewNum(reviewListDTO.getUserId(), reviewListDTO.getMatchId(), administerDO.getCollege());
Long review = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.REVIEW)&&projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long notReview = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.TO_REVIEWED)&& projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long review = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.REVIEW) && projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long notReview = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.TO_REVIEWED) && projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW) ).count();
Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)).count();
Long secRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)).count();
Long secFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)).count();
......@@ -719,7 +726,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
}
@Override
public VocationalProjectNum getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO) {
public List<VocationalProjectNum> getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO) {
List<VocationalProjectNum> vocationalProjectNums = new ArrayList<>();
reviewVocationalNumDTO.setProjectSchedule("校级申请项目");
ProjectJudgeDO projectJudgeDO = (ProjectJudgeDO) Localstorage.getUser();
// ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(reviewVocationalNumDTO.getProjectJudgeId());
if (projectJudgeDO == null) {
......@@ -737,21 +747,61 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
(new Date().before(projectReviewPeriodDO.getEndTime()) ||
DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO.getEndTime(), DateFormatUtil.FMT_sdf14_L)))) {
List<ProjectDO> list = this.baseMapper.getProjectReviewList(projectJudgeDO.getId(), reviewVocationalNumDTO.getMatchId(), null);
Long secPreliminaryNUm = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)).count();
Long secRematchNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)).count();
Long secPreliminaryNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)).count();
Long secFinalNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)).count();
Long reviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectSchedule()) && p.getProjectReview().equals(ProjectReview.REVIEW)).count();
Long notReviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectSchedule()) && p.getProjectReview().equals(ProjectReview.ASSIGNED)).count();
vocationalProjectNum.setSecRematchNum(secRematchNum);
vocationalProjectNum.setSecFinalNum(secFinalNum);
vocationalProjectNum.setSecPreliminaryNUm(secPreliminaryNUm);
vocationalProjectNum.setSecPreliminaryNUm(secPreliminaryNum);
vocationalProjectNum.setReviewedNum(reviewedNum);
vocationalProjectNum.setNotReviewedNum(notReviewedNum);
vocationalProjectNums.add(vocationalProjectNum);
}else {
vocationalProjectNum.setSecRematchNum(0L);
vocationalProjectNum.setSecFinalNum(0L);
vocationalProjectNum.setSecPreliminaryNUm(0L);
vocationalProjectNum.setReviewedNum(0L);
vocationalProjectNum.setNotReviewedNum(0L);
vocationalProjectNums.add(vocationalProjectNum);
}
}
reviewVocationalNumDTO.setProjectSchedule("校级复赛项目");
VocationalProjectNum vocationalProjectNum1 = new VocationalProjectNum();
ProjectReviewPeriodDO projectReviewPeriodDO1 = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, reviewVocationalNumDTO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, reviewVocationalNumDTO.getProjectSchedule()));
if (projectReviewPeriodDO1 != null) {
if ((new Date().after(projectReviewPeriodDO1.getStartTime()) ||
DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO1.getStartTime(), DateFormatUtil.FMT_sdf14_L)))
&&
(new Date().before(projectReviewPeriodDO1.getEndTime()) ||
DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO1.getEndTime(), DateFormatUtil.FMT_sdf14_L)))) {
List<ProjectDO> list = this.baseMapper.getProjectReviewList(projectJudgeDO.getId(), reviewVocationalNumDTO.getMatchId(), null);
Long secRematchNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)).count();
Long secFinalNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)).count();
Long reviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectSchedule()) && p.getProjectReview().equals(ProjectReview.REVIEW)).count();
Long notReviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectSchedule()) && p.getProjectReview().equals(ProjectReview.ASSIGNED)).count();
vocationalProjectNum1.setSecRematchNum(secRematchNum);
vocationalProjectNum1.setSecFinalNum(secFinalNum);
vocationalProjectNum1.setReviewedNum(reviewedNum);
vocationalProjectNum1.setNotReviewedNum(notReviewedNum);
vocationalProjectNums.add(vocationalProjectNum1);
}else {
vocationalProjectNum1.setSecRematchNum(0L);
vocationalProjectNum1.setSecFinalNum(0L);
vocationalProjectNum1.setSecPreliminaryNUm(0L);
vocationalProjectNum1.setReviewedNum(0L);
vocationalProjectNum1.setNotReviewedNum(0L);
vocationalProjectNums.add(vocationalProjectNum1);
}
}
return vocationalProjectNum;
return vocationalProjectNums;
}
@Override
......@@ -797,7 +847,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
ProjectAssignNumVO projectAssignNumVO = new ProjectAssignNumVO();
AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId());
List<ProjectDO> list = this.baseMapper.getVocationalAssignNum(reviewListDTO.getUserId(),reviewListDTO.getMatchId(),administerDO.getCollege());
List<ProjectDO> list = this.baseMapper.getVocationalAssignNum(reviewListDTO.getUserId(), reviewListDTO.getMatchId(), administerDO.getCollege());
Long assignNum = list.stream().filter(projectDO -> projectDO.getProjectAssigned().equals(ProjectReview.ASSIGNED) &&
projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
......@@ -1125,7 +1175,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
.eq(ProjectMemberDO::getProjectId, project.getId())
.eq(ProjectMemberDO::getTelephone, newMember.getTeamTelephone()));
if (count > 0){
if (count > 0) {
throw new HttpException(10032);
}
......@@ -1159,7 +1209,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
.eq(ProjectMemberDO::getProjectId, project.getId())
.eq(ProjectMemberDO::getTelephone, newMember.getTelephone()));
if (count > 0){
if (count > 0) {
throw new HttpException(10032);
}
ProjectMemberDO mentor = new ProjectMemberDO();
......@@ -1247,6 +1297,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
projectMember.setType(MemberType.PRINCIPAL);
projectMember.setTelephone(studentDO.getTelephone());
projectMember.setIdCard(createProjectMemberDTO.getIdCard());
projectMember.setStudyNo(createProjectMemberDTO.getStudyNo());
if (projectMemberDO != null) {
projectMember.setId(projectMemberDO.getId());
projectMemberService.updateById(projectMember);
......@@ -1278,7 +1329,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
.eq(ProjectMemberDO::getProjectId, project.getId())
.eq(ProjectMemberDO::getTelephone, teamMemberDTO.getTeamTelephone()));
if (count > 0){
if (count > 0) {
throw new HttpException(10079);
}
......@@ -1289,6 +1340,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
teamMember.setType(MemberType.TEAM_MEMBER);
teamMember.setIdCard(teamMember.getIdCard());
teamMember.setTelephone(teamMemberDTO.getTeamTelephone());
teamMember.setEmail(teamMemberDTO.getEmail());
projectMemberService.save(teamMember);
}
}
......@@ -1322,7 +1374,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
.eq(ProjectMemberDO::getProjectId, project.getId())
.eq(ProjectMemberDO::getTelephone, mentorDTO.getTelephone()));
if (count2 > 0){
if (count2 > 0) {
throw new HttpException(10079);
}
......@@ -1336,10 +1388,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
}
if (project.getEditStatus() == 0) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(project.getId());
projectDO.setProjectStatus(ProjectReview.TO_REVIEWED);
this.baseMapper.updateById(projectDO);
this.baseMapper.updateProjectStatus(project.getId(), ProjectStatus.TO_CHECK, null, null, null);
}
}
......@@ -1525,8 +1574,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
ProjectDO pd = new ProjectDO();
pd.setId(project.getId());
pd.setProjectStatus(ProjectStatus.UN_SUBMITTED);
this.baseMapper.updateById(pd);
this.baseMapper.updateProjectStatus(project.getId(), ProjectStatus.UN_SUBMITTED, null, null, null);
}
//
// @Override
......@@ -1663,12 +1711,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
if (projectDO != null) {
BeanUtils.copyProperties(projectDO, projectInfoVO);
// // 股权结构
// List<ProjectOwnershipStructureDO> ownershipStructureDOList = projectOwnershipStructureService.list(new QueryWrapper<ProjectOwnershipStructureDO>()
// .lambda()
// .eq(ProjectOwnershipStructureDO::getProjectId, projectDO.getId()));
// projectInfoVO.setOwnership(ownershipStructureDOList);
//
// 股权结构
List<ProjectOwnershipStructureDO> ownershipStructureDOList = projectOwnershipStructureService.list(new QueryWrapper<ProjectOwnershipStructureDO>()
.lambda()
.eq(ProjectOwnershipStructureDO::getProjectId, projectDO.getId()));
projectInfoVO.setOwnership(ownershipStructureDOList);
// /**
// * 专利
// */
......@@ -1685,13 +1733,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
// .eq(ProjectPaperDO::getProjectId, projectDO.getId()));
// projectInfoVO.setPaper(paperDOList);
//
// /**
// * 奖项
// */
// List<ProjectAwardDO> awardDOList = awardMapper.selectList(new QueryWrapper<ProjectAwardDO>()
// .lambda()
// .eq(ProjectAwardDO::getProjectId, projectDO.getId()));
// projectInfoVO.setAward(awardDOList);
/**
* 奖项
*/
List<ProjectAwardDO> awardDOList = projectAwardMapper.selectList(new QueryWrapper<ProjectAwardDO>()
.lambda()
.eq(ProjectAwardDO::getProjectId, projectDO.getId()));
projectInfoVO.setAward(awardDOList);
//
// /**
// * 软件著作权
......@@ -1768,12 +1816,38 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
projectDO.setProjectGroup(createVocationalProjectDTO.getProjectGroup());
}
projectDO.setSubmitDate(DateFormatUtil.currentTime());
if (po == null) {
this.baseMapper.insert(projectDO);
} else {
projectDO.setId(po.getId());
this.baseMapper.updateById(projectDO);
}
if (null != createVocationalProjectDTO.getAward()) {
projectAwardMapper.delete(new QueryWrapper<ProjectAwardDO>()
.lambda()
.eq(ProjectAwardDO::getProjectId, projectDO.getId()));
List<ProjectAwardDO> award = createVocationalProjectDTO.getAward();
award.stream().forEach(x -> {
x.setProjectId(projectDO.getId());
projectAwardMapper.insert(x);
});
}
if (null != createVocationalProjectDTO.getOwnership()) {
projectOwnershipStructureDAO.delete(new QueryWrapper<ProjectOwnershipStructureDO>()
.lambda()
.eq(ProjectOwnershipStructureDO::getProjectId, projectDO.getId()));
List<ProjectOwnershipStructureDO> ownership = createVocationalProjectDTO.getOwnership();
ownership.stream().forEach(x -> {
x.setProjectId(projectDO.getId());
projectOwnershipStructureDAO.insert(x);
});
}
}
@Override
......@@ -2296,15 +2370,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
throw new HttpException(10046);
}
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule()) ){
project.setProjectSchedule(ProjectSchedule.SCHOOL_REVIEW);
if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule())) {
this.baseMapper.updateProjectStatus(projectDO.getId(), ProjectStatus.TO_CHECK, ProjectSchedule.SCHOOL_REVIEW, null, null);
} else if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())) {
this.baseMapper.updateProjectStatus(projectDO.getId(), ProjectStatus.TO_CHECK, ProjectSchedule.SEMI_FINAL_REVIEW, null, null);
} else {
this.baseMapper.updateProjectStatus(projectDO.getId(), approveDTO.getProjectStatus(), ProjectSchedule.SEMI_FINAL_REVIEW, null, null);
}
this.baseMapper.updateById(project);
}
}
......@@ -2317,8 +2389,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
public SeedTrackProjectDetailVO getProjectById(Long id) {
SeedTrackProjectDetailVO seedTrackProjectDetailVO = new SeedTrackProjectDetailVO();
ProjectDO projectDO = this.baseMapper.selectById(id);
if (projectDO != null) {
BeanUtils.copyProperties(projectDO, seedTrackProjectDetailVO);
StudentDO studentDO = studentService.getById(projectDO.getProposerId());
seedTrackProjectDetailVO.setXueyuan(studentDO.getXueyuan());
List<ProjectMaterialsDO> materials = projectMaterialsService.list(new QueryWrapper<ProjectMaterialsDO>()
.lambda()
.eq(ProjectMaterialsDO::getProjectId, projectDO.getId()));
......@@ -2340,6 +2417,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
seedTrackProjectDetailVO.setStudentNo(projectMemberDO.getStudentNo());
seedTrackProjectDetailVO.setEmail(projectMemberDO.getEmail());
seedTrackProjectDetailVO.setIdCard(projectMemberDO.getIdCard());
seedTrackProjectDetailVO.setStudyNo(projectMemberDO.getStudyNo());
seedTrackProjectDetailVO.setEducation(projectMemberDO.getEducation());
seedTrackProjectDetailVO.setEmail(projectMemberDO.getEmail());
seedTrackProjectDetailVO.setFiveYears(projectMemberDO.getFiveYears());
} else if (projectMemberDO.getType().equals(MemberType.TEAM_MEMBER)) {
TeamMemberDTO teamMemberDTO = new TeamMemberDTO();
......@@ -2352,6 +2432,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
teamMemberDTO.setTeamName(projectMemberDO.getName());
teamMemberDTO.setTeamTelephone(projectMemberDO.getTelephone());
teamMemberDTO.setIdCard(projectMemberDO.getIdCard());
teamMemberDTO.setStudyNo(projectMemberDO.getStudyNo());
teamMemberDTO.setEducation(projectMemberDO.getEducation());
teamMemberDTO.setEmail(projectMemberDO.getEmail());
teamMember.add(teamMemberDTO);
} else if (projectMemberDO.getType().equals(MemberType.MENTOR)) {
MentorDTO mentorDTO = new MentorDTO();
......@@ -2368,6 +2451,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
seedTrackProjectDetailVO.setMentor(mentor);
seedTrackProjectDetailVO.setTeamMember(teamMember);
}
List<ProjectOwnershipStructureDO> projectOwnershipStructureDOS = projectOwnershipStructureDAO.selectList(new QueryWrapper<ProjectOwnershipStructureDO>()
.lambda()
.eq(ProjectOwnershipStructureDO::getProjectId, projectDO.getId()));
seedTrackProjectDetailVO.setOwnership(projectOwnershipStructureDOS);
List<ProjectAwardDO> projectAwardDOS = projectAwardMapper.selectList(new QueryWrapper<ProjectAwardDO>()
.lambda()
.eq(ProjectAwardDO::getProjectId, projectDO.getId()));
seedTrackProjectDetailVO.setAward(projectAwardDOS);
return seedTrackProjectDetailVO;
}
......@@ -2377,7 +2471,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
AdministerDO administerDO = administerDAO.selectById(projectCollegeListDTO.getUserId());
ExportProjectDTO project = new ExportProjectDTO();
List<ProjectDO> list = this.baseMapper.exportProjectReview(projectCollegeListDTO.getUserId(),projectCollegeListDTO.getMatchId(),projectCollegeListDTO.getProjectSchedule(),administerDO.getCollege());
List<ProjectDO> list = this.baseMapper.exportProjectReview(projectCollegeListDTO.getUserId(), projectCollegeListDTO.getMatchId(), projectCollegeListDTO.getProjectSchedule(), administerDO.getCollege());
if (list != null && list.size() > 0) {
for (ProjectDO projectDO : list) {
if (projectDO != null) {
......@@ -2390,38 +2484,68 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
project.setTelephone(studentDO.getTelephone());
project.setCollege(studentDO.getCollege());
project.setXueyuan(studentDO.getXueyuan());
project.setEnrollmentDate(studentDO.getEnrollmentDate());
project.setGraduateDate(studentDO.getGraduateDate());
project.setEducation(studentDO.getEducation());
}
MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
//查找这个负责人的学号
ProjectMemberDO projectMemberDO = projectMemberDAO.selectOne(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId())
.eq(ProjectMemberDO::getType, MemberType.PRINCIPAL));
if (null != projectMemberDO) {
project.setStudyNo(projectMemberDO.getStudyNo());
project.setEmail(projectMemberDO.getEmail());
}
project.setProvince("上海市");
project.setCreateDate(projectDO.getSubmitDate());
List<ProjectMemberDO> memberDOS = projectMemberService.list(new QueryWrapper<ProjectMemberDO>()
//查找指导教师
List<ProjectMemberDO> mentor = projectMemberDAO.selectList(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId()));
String teamMember = "";
String teacher = "";
for (ProjectMemberDO memberDO : memberDOS) {
if (memberDO.getType().equals(MemberType.TEAM_MEMBER)) {
teamMember += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.MENTOR)) {
teacher += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.PRINCIPAL)) {
// project.setEducation(memberDO.getDeleteTime());
}
}
if (StringUtils.isNotBlank(teamMember)) {
project.setTeamMembers(teamMember.substring(0, teamMember.length() - 1));
.eq(ProjectMemberDO::getProjectId, projectDO.getId())
.eq(ProjectMemberDO::getType, MemberType.MENTOR));
StringBuilder mentorStr = new StringBuilder();
for (int i = 0; i < mentor.size(); i++) {
if (i == mentor.size() - 1) {
mentorStr.append(mentor.get(i).getName());
} else {
project.setTeamMembers("");
mentorStr.append(mentor.get(i).getName()).append(",");
}
}
project.setMentorStr(mentorStr.toString());
//查找团队成员
List<ProjectMemberDO> members = projectMemberDAO.selectList(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId())
.eq(ProjectMemberDO::getType, MemberType.TEAM_MEMBER));
if (StringUtils.isNotBlank(teacher)) {
project.setTeachers(teacher.substring(0, teacher.length() - 1));
StringBuilder memberStr = new StringBuilder();
for (int i = 0; i < members.size(); i++) {
if (i == members.size() - 1) {
memberStr.append(members.get(i).getName());
} else {
project.setTeachers("");
memberStr.append(members.get(i).getName()).append(",");
}
}
project.setMemberStr(memberStr.toString());
if ("高教主赛道".equals(projectDO.getProjectTrack())) {
if ("本科".equals(studentDO.getEducation())) {
project.setProjectGroup("本科生" + project.getProjectGroup());
} else {
project.setProjectGroup("研究生" + project.getProjectGroup());
}
}
if (StringUtils.isEmpty(projectDO.getCompanyName())) {
project.setProjectStage("创意计划阶段");
} else {
project.setProjectStage("已注册公司运营");
}
data.add(JSON.parseObject(JSON.toJSONString(project), Map.class));
}
}
......@@ -2451,36 +2575,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
project.setTelephone(studentDO.getTelephone());
}
MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
}
List<ProjectMemberDO> memberDOS = projectMemberService.list(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId()));
String teamMember = "";
String teacher = "";
for (ProjectMemberDO memberDO : memberDOS) {
if (memberDO.getType().equals(MemberType.TEAM_MEMBER)) {
teamMember += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.MENTOR)) {
teacher += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.PRINCIPAL)) {
// project.setStudentNo(memberDO.getStudentNo());
}
}
if (StringUtils.isNotBlank(teamMember)) {
project.setTeamMembers(teamMember.substring(0, teamMember.length() - 1));
} else {
project.setTeamMembers("");
}
if (StringUtils.isNotBlank(teacher)) {
project.setTeachers(teacher.substring(0, teacher.length() - 1));
} else {
project.setTeachers("");
}
data.add(JSON.parseObject(JSON.toJSONString(project), Map.class));
}
}
......@@ -2497,78 +2591,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
throw new HttpException(10046);
}
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule()) ){
if (approveDTO.getProjectStatus() == 7) {
project.setProjectStatus(ProjectStatus.ABANDON);
if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule())) {
this.baseMapper.updateProjectStatus(projectDO.getId(), ProjectStatus.TO_CHECK, ProjectSchedule.SCHOOL_REVIEW, null, null);
} else if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())) {
this.baseMapper.updateProjectStatus(projectDO.getId(), ProjectStatus.TO_CHECK, ProjectSchedule.SEMI_FINAL_REVIEW, null, null);
} else {
project.setProjectSchedule(ProjectSchedule.SCHOOL_REVIEW);
project.setProjectStatus(ProjectReview.TO_REVIEWED);
this.baseMapper.updateProjectStatus(projectDO.getId(), approveDTO.getProjectStatus(), ProjectSchedule.SEMI_FINAL_REVIEW, null, null);
}
project.setProjectAssigned(ProjectReview.UNASSIGNED);
project.setProjectReview(ProjectReview.TO_REVIEWED);
}
if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())){
if (approveDTO.getProjectStatus() == 7) {
project.setProjectStatus(ProjectStatus.ABANDON);
} else {
project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW);
project.setProjectStatus(ProjectReview.TO_REVIEWED);
}
project.setProjectAssigned(ProjectReview.UNASSIGNED);
project.setProjectReview(ProjectReview.TO_REVIEWED);
}
if (ProjectSchedule.SEMI_FINAL_REVIEW.equals(projectDO.getProjectSchedule())) {
/**
* 复赛通过 ---> 决赛审核
*/
if (approveDTO.getProjectStatus() == 1) {
project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
project.setProjectReview(ProjectReview.TO_SCORE);
project.setProjectAssigned(ProjectReview.UNASSIGNED);
} else if (approveDTO.getProjectStatus() == 2) {
project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_WINNING_AWARD);
} else if (approveDTO.getProjectStatus() == 3) {
project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_SILVER_AWARD);
} else if (approveDTO.getProjectStatus() == 4) {
project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_BRONZE_AWARD);
}else if (approveDTO.getProjectStatus() == 7){
project.setProjectStatus(ProjectStatus.ABANDON);
}
}
if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())){
/**
* 决赛通过 ---> 决赛通过
*/
if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())){
/**
* 决赛通过 ---> 决赛通过
*/
if (approveDTO.getProjectStatus() == 5) {
project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_FINALS_GOLD_AWARD);
} else if (approveDTO.getProjectStatus() == 6) {
project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_SILVER_AWARD);
}else if (approveDTO.getProjectStatus() == 2){
project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_WINNING_AWARD);
}else if (approveDTO.getProjectStatus() == 4){
project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.REMATCH_BRONZE_AWARD);
}
}
}
this.baseMapper.updateById(project);
}
@Override
......@@ -2595,11 +2625,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
//StudentDO studentDO = studentService.getById(projectDO.getProposerId());
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
project.setProjectStatus(projectStatus);
project.setProjectSchedule(projectDO.getProjectSchedule());
this.baseMapper.updateById(project);
// ProjectDO project = new ProjectDO();
// project.setId(projectDO.getId());
// project.setProjectStatus(projectStatus);
// project.setProjectSchedule(projectDO.getProjectSchedule());
this.baseMapper.updateProjectStatus(projectDO.getId(), ProjectStatus.ABANDON, null, null, null);
ProjectScheduleRecordDO ps = projectScheduleRecordService.getOne(new QueryWrapper<ProjectScheduleRecordDO>().lambda()
.eq(ProjectScheduleRecordDO::getProjectSchedule, projectDO.getProjectSchedule())
......@@ -2612,10 +2642,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
projectScheduleRecordService.updateById(projectScheduleRecordDO);
}
// if (studentDO != null) {
// String msg = ProjectSchedule.SCHOOL_REVIEW + "," + ProjectStatus.SCHOOL_NOT_PASSED;
// aliyunSmsUtil.sendTemplateMsg(msg, studentDO.getTelephone(), SMSTemplate.PROJECT_PROGRESS);
// }
}
@Override
......@@ -2632,23 +2658,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
throw new HttpException(10065);
}
String projectStatus = "";
if (ProjectReview.TO_REVIEWED.equals(projectDO.getProjectStatus())
&& ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule())) {
projectStatus = ProjectStatus.REGISTER_NOT_PASSED;
} else if (ProjectReview.TO_REVIEWED.equals(projectDO.getProjectStatus())
&& ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())) {
projectStatus = ProjectStatus.SCHOOL_NOT_PASSED;
}
//StudentDO studentDO = studentService.getById(projectDO.getProposerId());
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
project.setProjectStatus(projectStatus);
project.setProjectSchedule(projectDO.getProjectSchedule());
this.baseMapper.updateById(project);
// ProjectDO project = new ProjectDO();
// project.setId(projectDO.getId());
// project.setProjectStatus(projectStatus);
// project.setProjectSchedule(projectDO.getProjectSchedule());
this.baseMapper.updateProjectStatus(projectDO.getId(), ProjectStatus.ABANDON, null, null, null);
// ProjectScheduleRecordDO ps = projectScheduleRecordService.getOne(new QueryWrapper<ProjectScheduleRecordDO>().lambda()
// .eq(ProjectScheduleRecordDO::getProjectSchedule, projectDO.getProjectSchedule())
......@@ -2685,38 +2701,68 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
project.setTelephone(studentDO.getTelephone());
project.setCollege(studentDO.getCollege());
project.setXueyuan(studentDO.getXueyuan());
project.setEnrollmentDate(studentDO.getEnrollmentDate());
project.setGraduateDate(studentDO.getGraduateDate());
project.setEducation(studentDO.getEducation());
}
MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
//查找这个负责人的学号
ProjectMemberDO projectMemberDO = projectMemberDAO.selectOne(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId())
.eq(ProjectMemberDO::getType, MemberType.PRINCIPAL));
if (null != projectMemberDO) {
project.setStudyNo(projectMemberDO.getStudyNo());
project.setEmail(projectMemberDO.getEmail());
}
project.setProvince("上海市");
project.setCreateDate(projectDO.getSubmitDate());
List<ProjectMemberDO> memberDOS = projectMemberService.list(new QueryWrapper<ProjectMemberDO>()
//查找指导教师
List<ProjectMemberDO> mentor = projectMemberDAO.selectList(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId()));
String teamMember = "";
String teacher = "";
for (ProjectMemberDO memberDO : memberDOS) {
if (memberDO.getType().equals(MemberType.TEAM_MEMBER)) {
teamMember += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.MENTOR)) {
teacher += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.PRINCIPAL)) {
// project.setStudentNo(memberDO.getStudentNo());
}
}
if (StringUtils.isNotBlank(teamMember)) {
project.setTeamMembers(teamMember.substring(0, teamMember.length() - 1));
.eq(ProjectMemberDO::getProjectId, projectDO.getId())
.eq(ProjectMemberDO::getType, MemberType.MENTOR));
StringBuilder mentorStr = new StringBuilder();
for (int i = 0; i < mentor.size(); i++) {
if (i == mentor.size() - 1) {
mentorStr.append(mentor.get(i).getName());
} else {
project.setTeamMembers("");
mentorStr.append(mentor.get(i).getName()).append(",");
}
}
project.setMentorStr(mentorStr.toString());
if (StringUtils.isNotBlank(teacher)) {
project.setTeachers(teacher.substring(0, teacher.length() - 1));
//查找团队成员
List<ProjectMemberDO> members = projectMemberDAO.selectList(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId())
.eq(ProjectMemberDO::getType, MemberType.TEAM_MEMBER));
StringBuilder memberStr = new StringBuilder();
for (int i = 0; i < members.size(); i++) {
if (i == members.size() - 1) {
memberStr.append(members.get(i).getName());
} else {
project.setTeachers("");
memberStr.append(members.get(i).getName()).append(",");
}
}
project.setMemberStr(memberStr.toString());
if ("高教主赛道".equals(projectDO.getProjectTrack())) {
if ("本科".equals(studentDO.getEducation())) {
project.setProjectGroup("本科生创意组");
} else {
project.setProjectGroup("研究生创意组");
}
}
if (StringUtils.isEmpty(projectDO.getCompanyName())) {
project.setProjectStage("创意计划阶段");
} else {
project.setProjectStage("已注册公司运营");
}
data.add(JSON.parseObject(JSON.toJSONString(project), Map.class));
}
}
......@@ -2804,8 +2850,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
reviewListDTO.getProjectAssigned(),
reviewListDTO.getProjectProgress(),
reviewListDTO.getProjectTrack(),
reviewListDTO.getUserId(),administerDO.getCollege(),
reviewListDTO.getXueyuan(),reviewListDTO.getProjectType());
reviewListDTO.getUserId(), administerDO.getCollege(),
reviewListDTO.getXueyuan(), reviewListDTO.getProjectType());
for (ReviewListVO record : iPage.getRecords()) {
StudentDO studentDO = studentService.getById(record.getProposerId());
......@@ -3220,15 +3266,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
Integer num = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, project.getId())
.eq(ProjectReviewDO::getProjectSchedule,projectReviewDO.getProjectSchedule()));
.eq(ProjectReviewDO::getProjectSchedule, projectReviewDO.getProjectSchedule()));
Integer submitNum = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, project.getId())
.eq(ProjectReviewDO::getProjectSchedule,projectReviewDO.getProjectSchedule())
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.SUBMITTED));
if (submitNum == num - 1) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(id);
projectDO.setProjectGroup(project.getProjectGroup());
projectDO.setProjectType(project.getProjectType());
projectDO.setProjectReview(ProjectReview.SUBMITTED);
this.baseMapper.updateById(projectDO);
}
......@@ -3277,15 +3326,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
Integer num = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())
.eq(ProjectReviewDO::getProjectSchedule,projectReviewDO.getProjectSchedule()));
.eq(ProjectReviewDO::getProjectSchedule, projectReviewDO.getProjectSchedule()));
Integer submitNum = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())
.eq(ProjectReviewDO::getProjectSchedule,projectReviewDO.getProjectSchedule())
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.SUBMITTED));
if (submitNum == num - 1) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(projectReviewScoreDTO.getId());
projectDO.setProjectGroup(project.getProjectGroup());
projectDO.setProjectType(project.getProjectType());
projectDO.setProjectReview(ProjectReview.SUBMITTED);
this.baseMapper.updateById(projectDO);
}
......@@ -3557,7 +3609,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
int gongkelei = 0;
int rengonglei = 0;
for (GetDataDListVO getDataListVO : dateList){
for (GetDataDListVO getDataListVO : dateList) {
projectCnt += getDataListVO.getProjectCnt();
memberCnt += getDataListVO.getMemberCnt();
guideCnt += getDataListVO.getGuideCnt();
......@@ -3590,14 +3642,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
public List<GetDataDListVO> getDateList(DataOverviewDTO dataOverviewDTO) {
List<GetDataDListVO> dateList = this.baseMapper.getDateList(dataOverviewDTO.getMatchId());
for (GetDataDListVO getDataListVO : dateList){
for (GetDataDListVO getDataListVO : dateList) {
//找到这个学校下的所有项目id
List<Long> projectIds = this.baseMapper.collegeProjects(getDataListVO.getXueyuan(), getDataListVO.getMajor(), dataOverviewDTO.getMatchId());
int memberCnt = 0 ;
int memberCnt = 0;
int guideCnt = 0;
for (Long projectId : projectIds){
for (Long projectId : projectIds) {
// 团队成员数量
Integer memberCntTmp = this.baseMapper.projectMembers(projectId, MemberType.TEAM_MEMBER);
memberCnt += memberCntTmp;
......@@ -3611,7 +3663,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
//创意组 初创组 成长组
ProjectProgressCntVO projectProgressCntVO = this.baseMapper.projectProgressCnt(projectIds);
BeanUtils.copyProperties(projectProgressCntVO,getDataListVO);
BeanUtils.copyProperties(projectProgressCntVO, getDataListVO);
}
return dateList;
}
......@@ -3661,12 +3713,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
List<ExcelFieldVO> fieldList = ExcelUtil.getField(ProjectJudgeVO.class);
ProjectJudgeVO projectJudgeVO = new ProjectJudgeVO();
AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId());
List<ProjectDO> projectList = this.baseMapper.exportProjectReview(reviewListDTO.getUserId(),reviewListDTO.getMatchId(),reviewListDTO.getProjectSchedule(),administerDO.getCollege());
List<ProjectDO> projectList = this.baseMapper.exportProjectReview(reviewListDTO.getUserId(), reviewListDTO.getMatchId(), reviewListDTO.getProjectSchedule(), administerDO.getCollege());
for (ProjectDO projectDO : projectList) {
if (projectDO != null) {
projectJudgeVO.setProjectName(projectDO.getProjectName());
projectJudgeVO.setProjectGroup(projectDO.getProjectGroup());
// projectJudgeVO.setProjectTrack(projectDO.getProjectTrack());
projectJudgeVO.setProjectTrack(projectDO.getProjectTrack());
// projectJudgeVO.setUnitTrack(projectDO.getUnitTrack());
projectJudgeVO.setProjectSchedule(projectDO.getProjectSchedule());
projectJudgeVO.setProjectType(projectDO.getProjectType());
......@@ -3729,7 +3781,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
// projectJudgeVO.setProjectProgress(projectDO.getProjectProgress());
projectJudgeVO.setProjectSchedule(projectDO.getProjectSchedule());
// projectJudgeVO.setCollege(projectDO.getCollege());
projectJudgeVO.setProjectTrack(projectDO.getProjectTrack());
MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId());
if (matchDictDO != null) {
projectJudgeVO.setMatchName(matchDictDO.getMatchName());
......@@ -3941,19 +3993,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
throw new HttpException(10078);
}
ProjectDO p = new ProjectDO();
p.setId(project.getId());
if (ProjectSchedule.SCHOOL_REVIEW.equals(project.getProjectSchedule())) {
p.setProjectSchedule(ProjectSchedule.REGISTER);
this.baseMapper.updateProjectStatus(project.getId(), ProjectStatus.TO_CHECK, ProjectSchedule.REGISTER, null, null);
}
if (project.getProjectSchedule().equals(ProjectSchedule.REGISTER)) {
p.setProjectStatus(ProjectStatus.UN_SUBMITTED);
this.baseMapper.updateProjectStatus(project.getId(), ProjectStatus.UN_SUBMITTED, ProjectSchedule.REGISTER, null, null);
}
this.baseMapper.updateById(p);
}
@Override
......@@ -3966,7 +4013,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
}
SeedTrackProjectNumVO seedTrackProjectNumVO = new SeedTrackProjectNumVO();
List<ProjectDO> list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), seedTrackProjectNumDTO.getProjectProgress(),seedTrackProjectNumDTO.getUserId(),administerDO.getCollege());
List<ProjectDO> list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), seedTrackProjectNumDTO.getProjectProgress(), seedTrackProjectNumDTO.getUserId(), administerDO.getCollege());
Integer schoolProjectNum = 0;
Integer rematchProjectNum = 0;
Integer finalProjectNum = 0;
......@@ -4001,45 +4048,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectDAO, ProjectDO> imple
ExportProjectDTO project = new ExportProjectDTO();
BeanUtils.copyProperties(projectDO, project);
MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
}
List<ProjectMemberDO> memberDOS = projectMemberService.list(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getProjectId, projectDO.getId()));
String teamMember = "";
String teacher = "";
for (ProjectMemberDO memberDO : memberDOS) {
if (memberDO.getType().equals(MemberType.PRINCIPAL)) {
project.setName(memberDO.getName());
project.setMajor(memberDO.getMajor());
if (memberDO.getTelephone() == null) {
StudentDO studentDO = studentService.getById(projectDO.getProposerId());
project.setTelephone(studentDO.getTelephone());
} else {
project.setTelephone(memberDO.getTelephone());
}
// project.setStudentNo(memberDO.getStudentNo());
} else if (memberDO.getType().equals(MemberType.TEAM_MEMBER)) {
teamMember += memberDO.getName() + ",";
} else if (memberDO.getType().equals(MemberType.MENTOR)) {
teacher += memberDO.getName() + ",";
}
}
if (StringUtils.isNotBlank(teamMember)) {
project.setTeamMembers(teamMember.substring(0, teamMember.length() - 1));
} else {
project.setTeamMembers("");
}
if (StringUtils.isNotBlank(teacher)) {
project.setTeachers(teacher.substring(0, teacher.length() - 1));
} else {
project.setTeachers("");
}
data.add(JSON.parseObject(JSON.toJSONString(project), Map.class));
}
}
......
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.dao.RolePermissionMapper;
import com.zhongzhi.dto.administer.AddRolePermissionDTO;
import com.zhongzhi.model.RolePermissionDO;
import com.zhongzhi.service.RolePermissionService;
import com.zhongzhi.vo.permission.PermissionVO;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 系统用户权限表 服务实现类
* </p>
*
* @author DengMin
* @since 2026-05-15
*/
@Service
public class RolePermissionServiceImpl extends ServiceImpl<RolePermissionMapper, RolePermissionDO> implements RolePermissionService {
@Override
public List<PermissionVO> queryRolePermission(RolePermissionDO rolePermissionDO) {
List<PermissionVO> list = this.baseMapper.getPermission(rolePermissionDO.getRole());
List<PermissionVO> treeList = new ArrayList();
list.forEach(permissions -> {
if (permissions.getParentId() == null) {
treeList.add(permissions);
}
list.forEach(p -> {
if (p.getParentId() != null) {
if (p.getParentId().equals(permissions.getId())) {
if (permissions.getChildNodeList() == null) {
permissions.setChildNodeList(new ArrayList<>());
}
permissions.getChildNodeList().add(p);
}
}
});
});
return list;
}
@Override
public void addRolePermission(AddRolePermissionDTO addRolePermissionDTO) {
this.baseMapper.delete(new QueryWrapper<RolePermissionDO>()
.lambda()
.eq(RolePermissionDO::getRole,addRolePermissionDTO.getRole()));
List<Long> permissionIds = addRolePermissionDTO.getPermissionIds();
permissionIds.stream().forEach(x->{
RolePermissionDO rolePermissionDO = new RolePermissionDO();
rolePermissionDO.setPermissionId(x);
rolePermissionDO.setRole(addRolePermissionDTO.getRole());
this.baseMapper.insert(rolePermissionDO);
});
}
}
package com.zhongzhi.vo.match;
import com.zhongzhi.common.utils.ExcelColumn;
import lombok.Data;
@Data
public class ProjectSummaryVO {
@ExcelColumn(value = "序号", col = 1)
private Integer id;
@ExcelColumn(value = "学院名称", col = 2)
private String xueyuan;
@ExcelColumn(value = "应报项目数", col = 3)
private Integer fixCnt;
@ExcelColumn(value = "报名项目数", col = 4)
private Integer projectCnt;
@ExcelColumn(value = "报名人数", col = 5)
private Integer studentCnt;
// 构造、get、set
public ProjectSummaryVO(String xueyuan, int num1, int num2) {
this.xueyuan = xueyuan;
this.projectCnt = num1;
this.studentCnt = num2;
}
}
......@@ -49,6 +49,10 @@ public class ProjectMemberVO {
private String email;
private String studyNo;
private String education;
/**
* 团队成员
*/
......
......@@ -15,21 +15,21 @@ public class ProjectJudgeVO {
@ExcelColumn(col = 3, value = "负责人")
private String leader;
@ExcelColumn(col = 4, value = "组别")
@ExcelColumn(col = 4, value = "赛道")
private String projectTrack;
@ExcelColumn(col = 5, value = "组别")
private String projectGroup;
@ExcelColumn(col = 5, value = "项目类型")
@ExcelColumn(col = 6, value = "项目类型")
private String projectType;
// @ExcelColumn(col = 6, value = "单元赛道")
// private String unitTrack;
@ExcelColumn(col = 6, value = "学院")
@ExcelColumn(col = 7, value = "学院")
private String xueyuan;
@ExcelColumn(col = 7, value = "专业")
@ExcelColumn(col = 8, value = "专业")
private String major;
@ExcelColumn(col = 8, value = "阶段")
@ExcelColumn(col = 9, value = "阶段")
private String projectSchedule;
}
......@@ -51,6 +51,8 @@ public class SeedTrackProjectDetailVO extends ProjectMemberVO {
*/
private Long matchId;
private String xueyuan;
/**
* 申报项目时所在院校
*/
......
......@@ -15,4 +15,9 @@ public class VocationalNumVO {
*/
private Integer registerNum;
/**
* 复赛
*/
private Integer fusaiNum;
}
......@@ -25,4 +25,13 @@ public class VocationalProjectNum {
* 待评审项目数量
*/
private Long notReviewedNum;
/**
* 中职复赛项目数量
*/
private Long vocRematchNum;
/**
* 中职决赛项目数量
*/
private Long vocFinalNum;
}
......@@ -3,7 +3,8 @@
server.port=23511
server.tomcat.connection-timeout=600000
# 数据源配置
spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/lixin?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
#spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/lixin?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://rm-uf62202s176hufw8x0o.mysql.rds.aliyuncs.com:3306/lixin?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=ykadmin_new
......
......@@ -9,6 +9,7 @@ c.code-message[10022]=输入的手机号和接收验证码手机号不一致
c.code-message[10023]=该身份证号已注册
c.code-message[10024]=手机号未注册
c.code-message[10026]=密码错误
c.code-message[10028]=账号已存在
# 项目
c.code-message[10040]=项目已申请
c.code-message[10041]=项目负责人已存在
......
......@@ -113,7 +113,7 @@ FROM
</if>
and t.member_type != '车'
GROUP BY
t.college_id
t.college_id,t3.NAME
</select>
<select id="exportList" resultType="com.zhongzhi.vo.college.ExportListVO">
......
......@@ -31,7 +31,7 @@
<select id="getList" resultType="com.zhongzhi.model.MatchDictDO">
SELECT
p.*
distinct p.*
FROM project p
LEFT JOIN student s ON s.id = p.proposer_id
LEFT JOIN colleges_dict c ON c.`name` = s.college
......@@ -47,8 +47,32 @@
AND s.delete_time IS NULL
AND c.delete_time IS NULL
</where>
</select>
<select id="projectSummary" resultType="com.zhongzhi.vo.match.ProjectSummaryVO">
SELECT
t2.xueyuan,
count(distinct(t.id)) projectCnt,
count(t3.id) studentCnt
FROM
project t
LEFT JOIN student t2 ON t.proposer_id = t2.id
LEFT JOIN project_member t3 ON t.id = t3.project_id
AND t3.type != '指导教师'
WHERE
t.delete_time IS NULL
AND t2.delete_time IS NULL
and t3.delete_time is null
AND t.project_status != '填写中'
and t.match_id = #{matchId}
<if test="startDate != null and startDate != ''">
AND DATE_FORMAT( t.create_time, '%Y/%m/%d' ) >= DATE_FORMAT( #{startDate}, '%Y/%m/%d' )
</if>
<if test="endDate != null and endDate != ''">
AND DATE_FORMAT(t.create_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
</if>
GROUP BY
c.id
t2.xueyuan
</select>
</mapper>
......@@ -21,14 +21,7 @@
SELECT distinct
t2.*
FROM
administer_permission t
left join permissions t2 on t.permission_id = t2.id
WHERE
t.delete_time IS NULL
and t2.delete_time is null
<if test="id != null and id != ''">
and t.administer_id = #{id}
</if>
permissions t2
</select>
</mapper>
......@@ -2,6 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectDAO">
<update id="updateProjectStatus">
update project t
set
<if test="projectSchedule != null and projectSchedule != ''">
t.project_schedule = #{projectSchedule},
</if>
<if test="projectReview != null and projectReview != ''">
t.project_review = #{projectReview},
</if>
<if test="projectAssigned != null and projectAssigned != ''">
project_assigned = #{projectAssigned},
</if>
t.project_status = #{status}
where t.id = #{id}
</update>
<select id="getListPage" resultType="com.zhongzhi.vo.project.ProjectPageVO">
select
p.id,
......@@ -192,6 +208,7 @@
and p.delete_time is null
and pr.delete_time is null
</where>
order by pr.id
</select>
<select id="getProjectReviewList" resultType="com.zhongzhi.model.ProjectDO">
......@@ -429,8 +446,7 @@
WHERE
p.delete_time is null
and p.match_id = #{matchId}
AND p.project_schedule != '填写中'
AND p.project_status != '填写中'
</select>
<select id="getDateList" resultType="com.zhongzhi.vo.project.GetDataDListVO">
......
......@@ -43,7 +43,7 @@
<select id="projectJudgesAssigned" resultType="com.zhongzhi.vo.judge.ProjectJudgePageVO">
select
pj.*
distinct pj.*
from project_judge pj
left join project_review pr on pr.judge_id = pj.id
left join project p on p.id = pr.project_id
......@@ -60,7 +60,6 @@
and pj.delete_time is null
and pr.delete_time is null
</where>
group by pj.id
</select>
</mapper>
......@@ -27,7 +27,7 @@
<select id="getProjectScheduleRecord" resultType="com.zhongzhi.vo.scheduleRecord.ProjectScheduleRecordVO">
select
p.id,
min(p.id) id,
s.college as collegeName
from project p
left join student s on s.id = p.proposer_id
......
<?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.zhongzhi.dao.RolePermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.RolePermissionDO">
<id column="id" property="id"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
<result column="role" property="role"/>
<result column="permission_id" property="permissionId"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_time,
update_time,
delete_time,
id, role, permission_id
</sql>
<select id="getPermission" resultType="com.zhongzhi.vo.permission.PermissionVO">
SELECT distinct
t2.*
FROM
role_permission t
left join permissions t2 on t.permission_id = t2.id
WHERE
t.delete_time IS NULL
and t2.delete_time is null
and t.role = #{role}
</select>
</mapper>
......@@ -6,7 +6,7 @@ setParent=com.zhongzhi
# mapper.xml文件生成路径
mapperPath=/src/main/resources/mapper/
# 数据库地址
url=jdbc:mysql://139.224.253.21:3306/gtja?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
url=jdbc:mysql://116.62.57.92:3306/lixin?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
driverName=com.mysql.cj.jdbc.Driver
userName=root
password=ykhladmin302
\ No newline at end of file
userName=devloper
password=dev@1553$
\ No newline at end of file
......@@ -3,7 +3,8 @@
server.port=23511
server.tomcat.connection-timeout=600000
# 数据源配置
spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/lixin?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
#spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/lixin?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://rm-uf62202s176hufw8x0o.mysql.rds.aliyuncs.com:3306/lixin?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=ykadmin_new
......
......@@ -9,6 +9,7 @@ c.code-message[10022]=输入的手机号和接收验证码手机号不一致
c.code-message[10023]=该身份证号已注册
c.code-message[10024]=手机号未注册
c.code-message[10026]=密码错误
c.code-message[10028]=账号已存在
# 项目
c.code-message[10040]=项目已申请
c.code-message[10041]=项目负责人已存在
......
......@@ -113,7 +113,7 @@ FROM
</if>
and t.member_type != '车'
GROUP BY
t.college_id
t.college_id,t3.NAME
</select>
<select id="exportList" resultType="com.zhongzhi.vo.college.ExportListVO">
......
......@@ -31,7 +31,7 @@
<select id="getList" resultType="com.zhongzhi.model.MatchDictDO">
SELECT
p.*
distinct p.*
FROM project p
LEFT JOIN student s ON s.id = p.proposer_id
LEFT JOIN colleges_dict c ON c.`name` = s.college
......@@ -47,8 +47,32 @@
AND s.delete_time IS NULL
AND c.delete_time IS NULL
</where>
</select>
<select id="projectSummary" resultType="com.zhongzhi.vo.match.ProjectSummaryVO">
SELECT
t2.xueyuan,
count(distinct(t.id)) projectCnt,
count(t3.id) studentCnt
FROM
project t
LEFT JOIN student t2 ON t.proposer_id = t2.id
LEFT JOIN project_member t3 ON t.id = t3.project_id
AND t3.type != '指导教师'
WHERE
t.delete_time IS NULL
AND t2.delete_time IS NULL
and t3.delete_time is null
AND t.project_status != '填写中'
and t.match_id = #{matchId}
<if test="startDate != null and startDate != ''">
AND DATE_FORMAT( t.create_time, '%Y/%m/%d' ) >= DATE_FORMAT( #{startDate}, '%Y/%m/%d' )
</if>
<if test="endDate != null and endDate != ''">
AND DATE_FORMAT(t.create_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
</if>
GROUP BY
c.id
t2.xueyuan
</select>
</mapper>
......@@ -21,14 +21,7 @@
SELECT distinct
t2.*
FROM
administer_permission t
left join permissions t2 on t.permission_id = t2.id
WHERE
t.delete_time IS NULL
and t2.delete_time is null
<if test="id != null and id != ''">
and t.administer_id = #{id}
</if>
permissions t2
</select>
</mapper>
......@@ -2,6 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectDAO">
<update id="updateProjectStatus">
update project t
set
<if test="projectSchedule != null and projectSchedule != ''">
t.project_schedule = #{projectSchedule},
</if>
<if test="projectReview != null and projectReview != ''">
t.project_review = #{projectReview},
</if>
<if test="projectAssigned != null and projectAssigned != ''">
project_assigned = #{projectAssigned},
</if>
t.project_status = #{status}
where t.id = #{id}
</update>
<select id="getListPage" resultType="com.zhongzhi.vo.project.ProjectPageVO">
select
p.id,
......@@ -192,6 +208,7 @@
and p.delete_time is null
and pr.delete_time is null
</where>
order by pr.id
</select>
<select id="getProjectReviewList" resultType="com.zhongzhi.model.ProjectDO">
......@@ -429,8 +446,7 @@
WHERE
p.delete_time is null
and p.match_id = #{matchId}
AND p.project_schedule != '填写中'
AND p.project_status != '填写中'
</select>
<select id="getDateList" resultType="com.zhongzhi.vo.project.GetDataDListVO">
......
......@@ -43,7 +43,7 @@
<select id="projectJudgesAssigned" resultType="com.zhongzhi.vo.judge.ProjectJudgePageVO">
select
pj.*
distinct pj.*
from project_judge pj
left join project_review pr on pr.judge_id = pj.id
left join project p on p.id = pr.project_id
......@@ -60,7 +60,6 @@
and pj.delete_time is null
and pr.delete_time is null
</where>
group by pj.id
</select>
</mapper>
......@@ -27,7 +27,7 @@
<select id="getProjectScheduleRecord" resultType="com.zhongzhi.vo.scheduleRecord.ProjectScheduleRecordVO">
select
p.id,
min(p.id) id,
s.college as collegeName
from project p
left join student s on s.id = p.proposer_id
......
......@@ -6,7 +6,7 @@ setParent=com.zhongzhi
# mapper.xml文件生成路径
mapperPath=/src/main/resources/mapper/
# 数据库地址
url=jdbc:mysql://139.224.253.21:3306/gtja?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
url=jdbc:mysql://116.62.57.92:3306/lixin?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
driverName=com.mysql.cj.jdbc.Driver
userName=root
password=ykhladmin302
\ No newline at end of file
userName=devloper
password=dev@1553$
\ No newline at end of file
......@@ -84,6 +84,7 @@ D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\SmsCodeDAO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\review\SetReviewDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\project\VocationalNumVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\MatchCollegePdfMapper.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\administer\AddRolePermissionDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\project\VocationalProjectVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\MajorDictDAO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\administer\GetAdministerPageVO.java
......@@ -134,6 +135,7 @@ D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\scheduleRecord\ProjectSc
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\common\generator\CodeGenerator.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\ProjectAwardMapper.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\controller\ProjectOwnershipStructureController.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\match\ProjectSummaryVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\common\constant\Code.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\project\GetDataDListVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\ProjectCopyrightMapper.java
......@@ -270,6 +272,7 @@ D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\ProjectPatentDO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\project\EditStatusDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\project\ProjectJudgeVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\judge\ProjectJudgePageDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\service\RolePermissionService.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\service\SmsNoticeService.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\permission\PermissionVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\college\CollegesPageDTO.java
......@@ -286,6 +289,7 @@ D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\student\RegisterDTO.jav
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\project\ProjectListPageDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\ProjectOwnershipStructureDAO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\AdministerTrackMappingDAO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\project\ProjectSummaryDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\controller\ProjectTrackController.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\projectJudge\ImportJudge.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\YearDictDO.java
......@@ -310,10 +314,13 @@ D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\member\CreateProjectMem
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\project\CreateSeedTrackProjectDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\ProjectPaperDO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\AdministerPermissionDAO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\RolePermissionDO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\service\impl\RolePermissionServiceImpl.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\service\FinalMatchMemberService.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\service\ProjectService.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\SmsNoticeMapper.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\base\BaseModel.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\controller\RolePermissionController.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\scheduleRecord\ProjectScheduleRecordDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\service\ProjectReviewService.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\review\ProjectReviewScoreDTO.java
......@@ -321,5 +328,6 @@ D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\student\LoginDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\MatchDictDAO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dto\review\SubmittedDTO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\VodDictDO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\dao\RolePermissionMapper.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\vo\member\ProjectMemberVO.java
D:\code\lixinshuangchuang\src\main\java\com\zhongzhi\model\AdministerTrackMappingDO.java
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!