Parcourir la source

1、完善订单查询
2、完成订单Execl导出功能

binguoc il y a 4 ans
Parent
commit
052694a364
33 fichiers modifiés avec 1103 ajouts et 248 suppressions
  1. 32 25
      pom.xml
  2. 2 0
      src/main/java/com/chuanghai/repair/RepairsApplication.java
  3. 41 0
      src/main/java/com/chuanghai/repair/auth/LoginConfig.java
  4. 70 0
      src/main/java/com/chuanghai/repair/auth/LoginInterceptor.java
  5. 67 0
      src/main/java/com/chuanghai/repair/auth/TokenAuthorFilter.java
  6. 58 58
      src/main/java/com/chuanghai/repair/auth/WebSecurityConfig.java
  7. 5 0
      src/main/java/com/chuanghai/repair/config/WeixiaoConfig.java
  8. 5 4
      src/main/java/com/chuanghai/repair/controller/LoginController.java
  9. 51 19
      src/main/java/com/chuanghai/repair/controller/NoticeController.java
  10. 251 76
      src/main/java/com/chuanghai/repair/controller/OrderController.java
  11. 70 0
      src/main/java/com/chuanghai/repair/entity/BackOrderExecl.java
  12. 87 0
      src/main/java/com/chuanghai/repair/entity/QueryOrderExecl.java
  13. 2 0
      src/main/java/com/chuanghai/repair/entity/RepairsFault.java
  14. 4 2
      src/main/java/com/chuanghai/repair/entity/RepairsNotice.java
  15. 9 2
      src/main/java/com/chuanghai/repair/entity/RepairsOrder.java
  16. 2 0
      src/main/java/com/chuanghai/repair/entity/RepairsStudent.java
  17. 2 0
      src/main/java/com/chuanghai/repair/entity/RepairsWork.java
  18. 60 0
      src/main/java/com/chuanghai/repair/entity/SendOrderExecl.java
  19. 2 2
      src/main/java/com/chuanghai/repair/mapper/RepairsAdminMapper.java
  20. 10 7
      src/main/java/com/chuanghai/repair/mapper/RepairsNoticeMapper.java
  21. 1 1
      src/main/java/com/chuanghai/repair/service/RepairsAdminService.java
  22. 11 7
      src/main/java/com/chuanghai/repair/service/RepairsNoticeService.java
  23. 1 0
      src/main/java/com/chuanghai/repair/service/RepairsOrderService.java
  24. 2 2
      src/main/java/com/chuanghai/repair/service/ServiceImpl/RepairsAdminServiceImpl.java
  25. 19 10
      src/main/java/com/chuanghai/repair/service/ServiceImpl/RepairsNoticeServiceImpl.java
  26. 7 0
      src/main/java/com/chuanghai/repair/service/ServiceImpl/RepairsOrderServiceImpl.java
  27. 2 1
      src/main/java/com/chuanghai/repair/utils/CreateTokenUtil.java
  28. 49 0
      src/main/java/com/chuanghai/repair/utils/DateUtils.java
  29. 100 0
      src/main/java/com/chuanghai/repair/utils/ExcelUtil.java
  30. 12 10
      src/main/resources/application.yml
  31. 2 2
      src/main/resources/mapper/RepairsAdminMapper.xml
  32. 52 13
      src/main/resources/mapper/RepairsNoticeMapper.xml
  33. 15 7
      src/main/resources/mapper/RepairsOrderMapper.xml

+ 32 - 25
pom.xml

@@ -17,18 +17,24 @@
         <java.version>1.8</java.version>
     </properties>
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-security</artifactId>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-security</artifactId>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.thymeleaf.extras</groupId>-->
+<!--            <artifactId>thymeleaf-extras-springsecurity5</artifactId>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.security</groupId>-->
+<!--            <artifactId>spring-security-test</artifactId>-->
+<!--            <scope>test</scope>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-thymeleaf</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.thymeleaf.extras</groupId>
-            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
-        </dependency>
+
         <!--web -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -84,11 +90,7 @@
             <artifactId>lombok</artifactId>
             <optional>true</optional>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.security</groupId>
-            <artifactId>spring-security-test</artifactId>
-            <scope>test</scope>
-        </dependency>
+
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -202,19 +204,24 @@
             <version>1.2.10</version>
         </dependency>
 
-<!--&lt;!&ndash;    mybatis-plus 依赖&ndash;&gt;-->
-<!--        <dependency>-->
-<!--            <groupId>com.baomidou</groupId>-->
-<!--            <artifactId>mybatis-plus-boot-starter</artifactId>-->
-<!--            <version>3.5.1</version>-->
-<!--        </dependency>-->
-<!--        <dependency>-->
-<!--            <groupId>com.baomidou</groupId>-->
-<!--            <artifactId>mybatis-plus-boot-starter-test</artifactId>-->
-<!--            <version>3.5.1</version>-->
-<!--        </dependency>-->
+        <!-- 集成easypoi组件 .导出excel http://easypoi.mydoc.io/ -->
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-base</artifactId>
+            <version>3.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-web</artifactId>
+            <version>3.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-annotation</artifactId>
+            <version>3.2.0</version>
+        </dependency>
 
-<!--    jackjson依赖-->
+        <!--    jackjson依赖-->
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>

+ 2 - 0
src/main/java/com/chuanghai/repair/RepairsApplication.java

@@ -4,6 +4,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -11,6 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 
 
 @SpringBootApplication
+@ServletComponentScan
 @EnableScheduling //设置定时任务
 @EnableCaching
 @MapperScan("com.chuanghai.repair.mapper")//扫描mapper文件夹

+ 41 - 0
src/main/java/com/chuanghai/repair/auth/LoginConfig.java

@@ -0,0 +1,41 @@
+//package com.chuanghai.repair.auth;
+//
+//import com.chuanghai.repair.config.WeixiaoConfig;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
+//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+//
+//import javax.annotation.Resource;
+//
+///**
+// * @Author: bingo
+// * @Date: 2022/3/26 星期六 15:13
+// * @Description: com.chuanghai.repair.auth
+// * @version: 1.0
+// */
+//@Configuration
+//public class LoginConfig implements WebMvcConfigurer {
+//
+//    @Resource
+//    private LoginInterceptor loginInterceptor;
+//
+//    @Override
+//    public void addInterceptors(InterceptorRegistry registry) {
+//        //注册TestInterceptor拦截器
+//        InterceptorRegistration registration = registry.addInterceptor(loginInterceptor);
+//        registration.addPathPatterns(
+//                "/index/**"
+//
+//        );                      //所有路径都被拦截
+//        registration.excludePathPatterns(                         //添加不拦截路径
+//                "/login/**",              //登录
+//                "/**/*.html",            //html静态资源
+//                "/**/*.js",              //js静态资源
+//                "/**/*.css",             //css静态资源
+//                "/**/*.woff",
+//                "/**/*.ttf"
+//        );
+//    }
+//}

+ 70 - 0
src/main/java/com/chuanghai/repair/auth/LoginInterceptor.java

@@ -0,0 +1,70 @@
+//package com.chuanghai.repair.auth;
+//
+//import com.chuanghai.repair.config.WeixiaoConfig;
+//import com.chuanghai.repair.utils.CreateTokenUtil;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.servlet.HandlerInterceptor;
+//import org.springframework.web.servlet.ModelAndView;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//
+///**
+// * @Author: bingo
+// * @Date: 2022/3/26 星期六 14:56
+// * @Description: com.chuanghai.repair.auth
+// * @version: 1.0
+// */
+//@Component
+//public class LoginInterceptor implements HandlerInterceptor {
+//    @Autowired
+//    private WeixiaoConfig weixiaoConfig;
+//
+//    private static final Logger LOG = LoggerFactory.getLogger(LoginInterceptor.class);
+//    /**
+//     * 在请求处理之前进行调用(Controller方法调用之前)
+//     */
+//    @Override
+//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+//
+//        LOG.info("统一拦截(通过获取请求头中的access_token信息,为null则需跳转登录)");
+//        try {
+//            //统一拦截(通过获取请求头中的access_token信息,为null则需跳转登录)
+//            String access_token = request.getHeader("access_token");
+//            LOG.info(access_token);
+//            if(access_token==null){
+//                response.sendRedirect(request.getContextPath()+weixiaoConfig.getRequestUrl());
+//                return false;
+//            }
+//
+//
+//
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+//        return true;//如果设置为false时,被请求时,拦截器执行到此处将不会继续操作
+//        //如果设置为true时,请求将会继续执行后面的操作
+//    }
+//
+//    /**
+//     * 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
+//     */
+//    @Override
+//    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
+////         System.out.println("执行了TestInterceptor的postHandle方法");
+//    }
+//
+//    /**
+//     * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
+//     */
+//    @Override
+//    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
+////        System.out.println("执行了TestInterceptor的afterCompletion方法");
+//    }
+//
+//
+//}

+ 67 - 0
src/main/java/com/chuanghai/repair/auth/TokenAuthorFilter.java

@@ -0,0 +1,67 @@
+//package com.chuanghai.repair.auth;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.chuanghai.repair.utils.ReturnValueUtil;
+//import org.mybatis.logging.Logger;
+//import org.mybatis.logging.LoggerFactory;
+//import org.springframework.stereotype.Component;
+//
+//import javax.servlet.*;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.io.OutputStreamWriter;
+//import java.io.PrintWriter;
+//import java.io.UnsupportedEncodingException;
+//
+///**
+// * @Author: bingo
+// * @Date: 2022/3/27 星期日 13:42
+// * @Description: com.chuanghai.repair.auth
+// * @version: 1.0
+// */
+//@Component
+//public class TokenAuthorFilter implements Filter {
+//
+//    private static Logger logger = LoggerFactory
+//            .getLogger(TokenAuthorFilter.class);
+//
+//    @Override
+//    public void destroy() {
+//
+//    }
+//
+//    @Override
+//    public void doFilter(ServletRequest request, ServletResponse response,
+//                         FilterChain chain) throws IOException, ServletException {
+//        HttpServletRequest req = (HttpServletRequest) request;
+//        HttpServletResponse rep = (HttpServletResponse) response;
+//
+//        response.setCharacterEncoding("UTF-8");
+//        response.setContentType("application/json; charset=utf-8");
+//
+//
+//        String uri = req.getRequestURI();
+//        String access_token = req.getHeader("access_token");//header方式
+//        if(access_token != null){
+//            chain.doFilter(request, response);
+//        } else {
+//            if((uri.contains("login") || uri.contains("tetsapi"))) {//登录与UserServlet放行
+//                chain.doFilter(request, response);//放行方法){
+//            }
+//
+//
+//        }
+//
+//
+//
+//
+//
+//    }
+//
+//    @Override
+//    public void init(FilterConfig arg0) throws ServletException {
+//
+//    }
+//
+//}

+ 58 - 58
src/main/java/com/chuanghai/repair/auth/WebSecurityConfig.java

@@ -1,59 +1,59 @@
 package com.chuanghai.repair.auth;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-
-/**
- * @Author: bingo
- * @Date: 2022/2/23 星期三 21:36
- * @Description: com.chuanghai.repair.auth
- * @version: 1.0
- */
-@Configuration
-public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
-
-    @Bean
-    public PasswordEncoder passwordEncoder(){
-        return new BCryptPasswordEncoder();
-    }
-
-    @Override
-    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-        super.configure(auth);
-    }
-
-    @Override
-    public void configure(WebSecurity web) throws Exception {
-        super.configure(web);
-    }
-
-    @Override
-    protected void configure(HttpSecurity http) throws Exception {
-      //所有请求都会被拦截
-//      http.authorizeRequests()
-//              //放行login操作
-//              .antMatchers("/login","/login.html").permitAll()
-//              .anyRequest()
-//              .authenticated()
-//              .and()
-//              //设置表单验证放行登录页面  /login.html
-//              .formLogin().loginPage("/login.html")
-//              //设置form表单的登录控制器,默认是login  表单的action
-//              .loginProcessingUrl("/login")
-//              .usernameParameter("phone")
-//              .loginProcessingUrl("password")
-//              //设置登录成功后的页面
-//              .defaultSuccessUrl("/home").permitAll()
-//              //登录失败页面
-//              .failureUrl("/error.html");
-      //关闭跨域攻击
-        http.csrf().disable();
-
-    }
-}
+//
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+//import org.springframework.security.config.annotation.web.builders.WebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+//import org.springframework.security.crypto.password.PasswordEncoder;
+//
+///**
+// * @Author: bingo
+// * @Date: 2022/2/23 星期三 21:36
+// * @Description: com.chuanghai.repair.auth
+// * @version: 1.0
+// */
+////@Configuration
+//public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+//
+//    @Bean
+//    public PasswordEncoder passwordEncoder(){
+//        return new BCryptPasswordEncoder();
+//    }
+//
+//    @Override
+//    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+//        super.configure(auth);
+//    }
+//
+//    @Override
+//    public void configure(WebSecurity web) throws Exception {
+//        super.configure(web);
+//    }
+//
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//      //所有请求都会被拦截
+////      http.authorizeRequests()
+////              //放行login操作
+////              .antMatchers("/login","/login.html").permitAll()
+////              .anyRequest()
+////              .authenticated()
+////              .and()
+////              //设置表单验证放行登录页面  /login.html
+////              .formLogin().loginPage("/login.html")
+////              //设置form表单的登录控制器,默认是login  表单的action
+////              .loginProcessingUrl("/login")
+////              .usernameParameter("phone")
+////              .loginProcessingUrl("password")
+////              //设置登录成功后的页面
+////              .defaultSuccessUrl("/home").permitAll()
+////              //登录失败页面
+////              .failureUrl("/error.html");
+//      //关闭跨域攻击
+//        http.csrf().disable();
+//
+//    }
+//}

+ 5 - 0
src/main/java/com/chuanghai/repair/config/WeixiaoConfig.java

@@ -49,4 +49,9 @@ public class WeixiaoConfig {
      * 服务器url
      */
     private String serverUrl;
+
+    /**
+     * 管理端后台请求地址
+     */
+    private String requestUrl;
 }

+ 5 - 4
src/main/java/com/chuanghai/repair/controller/LoginController.java

@@ -59,12 +59,12 @@ public class LoginController {
      */
     @ApiOperation("管理员登录")
     @PostMapping(value = "/loginAdmin")
-    public ReturnValueUtil loginAdmin(@ApiParam(name = "管理员手机号码", required = true) String phone,
+    public ReturnValueUtil loginAdmin(@ApiParam(name = "管理员名称", required = true) String name,
                              @ApiParam(name = "管理员密码", required = true) String password) {
         String adminIdToken = "";
         try {
-            if(!phone.equals("") && !password.equals("")){
-                RepairsAdmin repairsAdmin = repairsAdminService.loginAdmin(phone, password);
+            if(!name.equals("") && !password.equals("")){
+                RepairsAdmin repairsAdmin = repairsAdminService.loginAdmin(name, password);
                 adminIdToken = CreateTokenUtil.getToken(String.valueOf(repairsAdmin.getAdminId()));
             }
         } catch (Exception e) {
@@ -97,6 +97,7 @@ public class LoginController {
         return ReturnValueUtil.returnString(workIdToken);
     }
 
+
     /**
      * 通过wxcode 获取对应的acces_token,再通过access_token的用户的具体信息,
      *    如果用户不存在数据库就将其添加到数据库中
@@ -106,7 +107,7 @@ public class LoginController {
      * @return
      */
     @ApiIgnore  //使该接口隐藏
-    @ApiOperation("获取CardNumber")
+    @ApiOperation("获取用户的CardNumber")
     @GetMapping("/getCardNumber")
     public String  getCardNumber(String wxcode, String state) {
         System.out.println(wxcode);

+ 51 - 19
src/main/java/com/chuanghai/repair/controller/NoticeController.java

@@ -1,9 +1,13 @@
 package com.chuanghai.repair.controller;
 
+import com.chuanghai.repair.entity.RepairsAdmin;
 import com.chuanghai.repair.entity.RepairsNotice;
+import com.chuanghai.repair.entity.RepairsOrder;
 import com.chuanghai.repair.service.RepairsNoticeService;
 import com.chuanghai.repair.utils.CreateTokenUtil;
+import com.chuanghai.repair.utils.DateUtils;
 import com.chuanghai.repair.utils.ReturnValueUtil;
+import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -16,6 +20,8 @@ import springfox.documentation.annotations.ApiIgnore;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
@@ -33,7 +39,7 @@ public class NoticeController {
     @Resource(name = "repairsNoticeService")
     private RepairsNoticeService repairsNoticeService;
 
-    @ApiOperation("发布公告")
+    @ApiOperation("添加公告")
     @PostMapping(value = "/addNotice")
     public ReturnValueUtil addNotice(HttpServletRequest request,
                                      @ApiParam(name = "公告内容", required = true) String noticeContent) {
@@ -42,9 +48,11 @@ public class NoticeController {
         try {
             Integer adminId = Integer.parseInt(CreateTokenUtil.getHeadersInfo(request));
             if (adminId != null) {
-                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                String noticeTime = df.format(new Date());
-                repairsNoticeService.addNotice(noticeContent, noticeTime, adminId);
+                Date noticeTime = Calendar.getInstance().getTime();
+                RepairsAdmin repairsAdmin = new RepairsAdmin();
+                repairsAdmin.setAdminId(adminId);
+                RepairsNotice repairsNotice = new RepairsNotice(null,noticeContent, noticeTime, "1",repairsAdmin);
+                repairsNoticeService.addNotice(repairsNotice);
                 flag = Boolean.TRUE;
             }
         } catch (Exception e) {
@@ -53,7 +61,7 @@ public class NoticeController {
         return ReturnValueUtil.returnBoolean(flag);
     }
 
-    @ApiOperation("查询公告")
+    @ApiOperation("发布公告")
     @PostMapping(value = "/releaseNotice")
     @CrossOrigin
     public ReturnValueUtil releaseNotice() {
@@ -66,15 +74,23 @@ public class NoticeController {
         return ReturnValueUtil.returnObject(repairsNotice);
     }
 
-    @ApiIgnore
+
     @ApiOperation("删除公告")
     @PostMapping(value = "/updateNotice")
-    public ReturnValueUtil updateNotice(@ApiParam(name = "公告Id", required = true) String noticeId) {
+    public ReturnValueUtil updateNotice(HttpServletRequest request,
+                                        @ApiParam(name = "公告Id", required = true) Integer noticeId) {
         Boolean flag = Boolean.FALSE;
         try {
-            if (repairsNoticeService.updateNotice(noticeId) == null) {
-                flag = Boolean.TRUE;
-            }
+            Integer adminId = Integer.parseInt(CreateTokenUtil.getHeadersInfo(request));
+
+            RepairsAdmin repairsAdmin = new RepairsAdmin();
+            repairsAdmin.setAdminId(adminId);
+            RepairsNotice repairsNotice = new RepairsNotice(noticeId,null,null,"0",repairsAdmin);
+            ArrayList<RepairsNotice> noticeList = new ArrayList<>();
+            noticeList.add(repairsNotice);
+            repairsNoticeService.updateNotice(noticeList);
+            flag = Boolean.TRUE;
+
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -85,15 +101,24 @@ public class NoticeController {
     @ApiIgnore
     @ApiOperation("修改公告")
     @PostMapping(value = "/alterNotice")
-    public ReturnValueUtil alterNotice(@ApiParam(name = "公告内容", required = true) String noticeContent,
+    public ReturnValueUtil alterNotice(HttpServletRequest request,
+                                       @ApiParam(name = "公告内容", required = true) String noticeContent,
                                        @ApiParam(name = "公告Id", required = true) Integer noticeId) {
         //flag false 修改失败  true 修改成功
         Boolean flag = Boolean.FALSE;
         try {
+            Integer adminId = Integer.parseInt(CreateTokenUtil.getHeadersInfo(request));
             if (noticeId != null) {
-                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                String noticeTime = df.format(new Date());
-                repairsNoticeService.alterNotice(noticeContent, noticeTime, noticeId);
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String time = sdf.format(new Date());
+                Date noticeTime = sdf.parse(time);
+                RepairsAdmin repairsAdmin = new RepairsAdmin();
+                repairsAdmin.setAdminId(adminId);
+                RepairsNotice repairsNotice = new RepairsNotice(noticeId,noticeContent,noticeTime,null,repairsAdmin);
+                ArrayList<RepairsNotice> noticeList = new ArrayList<>();
+                noticeList.add(repairsNotice);
+                repairsNoticeService.updateNotice(noticeList);
+
                 flag = Boolean.TRUE;
             }
         } catch (Exception e) {
@@ -102,16 +127,23 @@ public class NoticeController {
         return ReturnValueUtil.returnBoolean(flag);
     }
 
-    @ApiIgnore
+
     @ApiOperation("查询全部公告")
     @PostMapping(value = "/queryAllNotice")
-    public ReturnValueUtil queryAllNotice() {
-        List<RepairsNotice> noticeList = null;
+    public ReturnValueUtil queryAllNotice(@ApiParam(name = "查询日期") String time,
+                                          @ApiParam(name = "当前页码") Integer pageNum,
+                                          @ApiParam(name = "每页记录数") Integer pageSize) {
+        PageInfo<RepairsNotice> pageInfoNoticeList = null;
+        pageNum = pageNum == null ? 1 : pageNum;
+        pageSize = pageSize == null ? 5 : pageSize;
         try {
-            noticeList = repairsNoticeService.queryAllNotice();
+            //通过传入的时间参数 获取当天-明天 时间
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            pageInfoNoticeList = repairsNoticeService.queryAllNotice(dateUtils.getTody(),dateUtils.getTomorrow(),pageNum, pageSize);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return ReturnValueUtil.returnObject(noticeList);
+        return ReturnValueUtil.returnObject(pageInfoNoticeList);
     }
 }

+ 251 - 76
src/main/java/com/chuanghai/repair/controller/OrderController.java

@@ -1,30 +1,36 @@
 package com.chuanghai.repair.controller;
 
+import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
 import com.chuanghai.repair.config.ImgConfig;
-import com.chuanghai.repair.entity.RepairsFault;
-import com.chuanghai.repair.entity.RepairsOrder;
-import com.chuanghai.repair.entity.RepairsStudent;
-import com.chuanghai.repair.entity.RepairsWork;
+import com.chuanghai.repair.entity.*;
 import com.chuanghai.repair.service.RepairsOrderService;
 import com.chuanghai.repair.service.RepairsStudentService;
 import com.chuanghai.repair.service.RepairsWorkService;
 import com.chuanghai.repair.utils.CreateTokenUtil;
+import com.chuanghai.repair.utils.DateUtils;
 import com.chuanghai.repair.utils.ReturnValueUtil;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
-import java.text.DateFormat;
-import java.time.format.DateTimeFormatter;
+import java.io.OutputStream;
+import java.net.URLEncoder;
 import java.util.*;
 import java.text.SimpleDateFormat;
 
@@ -61,30 +67,17 @@ public class OrderController {
     @ApiOperation("PC端:查询订单")
     @PostMapping(value = "/queryAllOrderByDate")
     public ReturnValueUtil queryAllOrderByDate(@ApiParam(name = "查询日期") String time,
-                                               @ApiParam(name = "订单状态 0(派单查询) 2(已接单查询) 3(已完成查询) 23(订单查询)" ,required = true) String orderStatus,
+                                               @ApiParam(name = "订单状态 0(派单查询)1(待接单查询) 2(已接单查询) 3(已完成查询)4(已退单查询) 23(订单查询)", required = true) String orderStatus,
                                                @ApiParam(name = "当前页码") Integer pageNum,
                                                @ApiParam(name = "每页记录数") Integer pageSize) {
         pageNum = pageNum == null ? 1 : pageNum;
         pageSize = pageSize == null ? 5 : pageSize;
         PageInfo<RepairsOrder> pageInfoOrder = null;
         try {
-            String tody = "";
-            String tomorrow = "";
-            if (time != null && !time.equals("")) {
-                //前端日期数据由 String转Date
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                Calendar calendar = Calendar.getInstance();
-                //传入时间就设置为当天时间
-                Date date = sdf.parse(time);
-                calendar.setTime(date);
-                //获取当天的0时0分0秒
-                calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH),
-                        0, 0, 0);
-                tody = sdf.format(calendar.getTime());
-                calendar.add(Calendar.DATE, 1); //增加一天
-                tomorrow = sdf.format(calendar.getTime());
-            }
-            pageInfoOrder = repairsOrderService.queryAllOrderByDate(pageNum, pageSize, tody, tomorrow,orderStatus);
+            //通过传入的时间参数 获取当天-明天 时间
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            pageInfoOrder = repairsOrderService.queryAllOrderByDate(pageNum, pageSize, dateUtils.getTody(), dateUtils.getTomorrow(), orderStatus);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -93,7 +86,6 @@ public class OrderController {
     }
 
 
-
     /**
      * 通过请求中的 当前页码及每页记录数分页查询意见投诉
      *
@@ -109,7 +101,7 @@ public class OrderController {
         PageInfo<RepairsOrder> pageInfoOrder = null;
         try {
             String workID = CreateTokenUtil.getHeadersInfo(request);
-            pageInfoOrder = repairsOrderService.queryAllOrderByAdvice("","",workID,pageNum, pageSize);
+            pageInfoOrder = repairsOrderService.queryAllOrderByAdvice("", "", workID, pageNum, pageSize);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -123,7 +115,7 @@ public class OrderController {
      */
     @ApiOperation("PC端:查询指定维修工评价")
     @PostMapping(value = "/queryOrderByWorkIDAdvice")
-    public ReturnValueUtil queryOrderByWorkIDAdvice(@ApiParam(name = "维修工ID" ,required = true)String workId,
+    public ReturnValueUtil queryOrderByWorkIDAdvice(@ApiParam(name = "维修工ID", required = true) String workId,
                                                     @ApiParam(name = "查询日期") String time,
                                                     @ApiParam(name = "当前页码") Integer pageNum,
                                                     @ApiParam(name = "每页记录数") Integer pageSize) {
@@ -131,23 +123,10 @@ public class OrderController {
         pageSize = pageSize == null ? 5 : pageSize;
         PageInfo<RepairsOrder> pageInfoOrder = null;
         try {
-            String tody = "";
-            String tomorrow = "";
-            if (time != null && !time.equals("")) {
-                //前端日期数据由 String转Date
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                Calendar calendar = Calendar.getInstance();
-                //传入时间就设置为当天时间
-                Date date = sdf.parse(time);
-                calendar.setTime(date);
-                //获取当天的0时0分0秒
-                calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH),
-                        0, 0, 0);
-                tody = sdf.format(calendar.getTime());
-                calendar.add(Calendar.DATE, 1); //增加一天
-                tomorrow = sdf.format(calendar.getTime());
-            }
-            pageInfoOrder = repairsOrderService.queryAllOrderByAdvice(tody,tomorrow,workId,pageNum, pageSize);
+            //通过传入的时间参数 获取当天-明天 时间
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            pageInfoOrder = repairsOrderService.queryAllOrderByAdvice(dateUtils.getTody(), dateUtils.getTomorrow(), workId, pageNum, pageSize);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -168,24 +147,11 @@ public class OrderController {
         pageNum = pageNum == null ? 1 : pageNum;
         pageSize = pageSize == null ? 5 : pageSize;
         PageInfo<RepairsOrder> pageInfoOrder = null;
-        String tody = "";
-        String tomorrow = "";
         try {
-            if (time != null && !time.equals("")) {
-                //前端日期数据由 String转Date
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                Calendar calendar = Calendar.getInstance();
-                //传入时间就设置为当天时间
-                Date date = sdf.parse(time);
-                calendar.setTime(date);
-                //获取当天的0时0分0秒
-                calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH),
-                        0, 0, 0);
-                tody = sdf.format(calendar.getTime());
-                calendar.add(Calendar.DATE, 1); //增加一天
-                tomorrow = sdf.format(calendar.getTime());
-            }
-            pageInfoOrder = repairsOrderService.queryAllOrderByAdvice(tody,tomorrow,null,pageNum, pageSize);
+            //通过传入的时间参数 获取当天-明天 时间
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            pageInfoOrder = repairsOrderService.queryAllOrderByAdvice(dateUtils.getTody(), dateUtils.getTomorrow(), null, pageNum, pageSize);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -249,13 +215,14 @@ public class OrderController {
         try {
             if (!orderId.equals("")) {
                 //当workId不为null时 数据库不会执行更新workId的sql
-                RepairsWork repairsWork = new RepairsWork();
+
                 RepairsOrder repairsOrder = new RepairsOrder();
                 repairsOrder.setOrderId(orderId);
                 repairsOrder.setOrderStatus("4");
                 repairsOrder.setOrderBack(orderBack);
+                RepairsWork repairsWork = new RepairsWork();
+                repairsWork.setWorkId(1);
                 repairsOrder.setRepairsWork(repairsWork);
-
                 ArrayList<RepairsOrder> orderArrayList = new ArrayList<>();
                 orderArrayList.add(repairsOrder);
                 repairsOrderService.updateOrderStatus(orderArrayList);
@@ -277,8 +244,8 @@ public class OrderController {
     @ApiOperation("学生:订单查询")
     @PostMapping(value = "/queryAllOrderByStudentId")
     public ReturnValueUtil queryAllOrderByStudentId(HttpServletRequest request,
-                                                           @ApiParam(name = "当前页码") Integer pageNum,
-                                                           @ApiParam(name = "每页记录数") Integer pageSize) {
+                                                    @ApiParam(name = "当前页码") Integer pageNum,
+                                                    @ApiParam(name = "每页记录数") Integer pageSize) {
         PageInfo<RepairsOrder> pageInfoOrder = null;
         pageNum = pageNum == null ? 1 : pageNum;
         pageSize = pageSize == null ? 5 : pageSize;
@@ -302,8 +269,8 @@ public class OrderController {
     @ApiOperation("维修工:订单查询")
     @PostMapping(value = "/queryAllOrderByWorkId")
     public ReturnValueUtil queryAllOrderByWorkId(HttpServletRequest request,
-                                                        @ApiParam(name = "当前页码") Integer pageNum,
-                                                        @ApiParam(name = "每页记录数") Integer pageSize) {
+                                                 @ApiParam(name = "当前页码") Integer pageNum,
+                                                 @ApiParam(name = "每页记录数") Integer pageSize) {
         PageInfo<RepairsOrder> pageInfoOrder = null;
         pageNum = pageNum == null ? 1 : pageNum;
         pageSize = pageSize == null ? 5 : pageSize;
@@ -333,7 +300,7 @@ public class OrderController {
                                              @ApiParam(name = "订单评价", required = true) String orderAdvice) {
 
         Boolean flag = Boolean.FALSE;
-        System.out.println(orderId+"   "+orderAdvice);
+        System.out.println(orderId + "   " + orderAdvice);
         try {
             if (!orderAdvice.equals("")) {
                 repairsOrderService.updateOrderAdvice(orderId, orderAdvice);
@@ -358,10 +325,15 @@ public class OrderController {
         try {
             if (!orderId.equals("")) {
                 repairsOrder = repairsOrderService.queryByOrderId(orderId);
-                if(repairsOrder.getOrderImages()!=null){
+                if (repairsOrder.getOrderImages() != null) {
                     String imageName = repairsOrder.getOrderImages();
+                    String imageUrl = "";
                     if (StringUtils.hasText(imageName)) {
-                        repairsOrder.setOrderImages(imgConfig.getShowHost() + imageName);
+                        String[] imageUrls = imageName.split(";");
+                        for (String s : imageUrls) {
+                            imageUrl += imgConfig.getShowHost() + s + ";";
+                        }
+                        repairsOrder.setOrderImages(imageUrl.substring(0, imageUrl.lastIndexOf(";")));
                     }
                 }
 
@@ -386,10 +358,15 @@ public class OrderController {
         try {
             if (!orderId.equals("")) {
                 repairsOrder = repairsOrderService.queryByOrderIdNotWork(orderId);
-                if(repairsOrder.getOrderImages()!=null){
+                if (repairsOrder.getOrderImages() != null) {
                     String imageName = repairsOrder.getOrderImages();
+                    String imageUrl = "";
                     if (StringUtils.hasText(imageName)) {
-                        repairsOrder.setOrderImages(imgConfig.getShowHost() + imageName);
+                        String[] imageUrls = imageName.split(";");
+                        for (String s : imageUrls) {
+                            imageUrl += imgConfig.getShowHost() + s + ";";
+                        }
+                        repairsOrder.setOrderImages(imageUrl.substring(0, imageUrl.lastIndexOf(";")));
                     }
                 }
 
@@ -443,17 +420,17 @@ public class OrderController {
             String orderId = "D";
             orderId += String.valueOf(ts);
             RepairsWork repairsWork = null;
-            RepairsFault repairsFault = new RepairsFault(faultId, null, null, null,null);
+            RepairsFault repairsFault = new RepairsFault(faultId, null, null, null, null);
             //获取原始图片的拓展名
             String fileNameSaveUrl = "";
             String type = "";
             RepairsOrder repairsOrder = new RepairsOrder(orderId, null, orderNote, orderExpectedTime,
                     null, date, null, "0", null, "0",
                     null, repairsStudent, repairsWork, repairsFault);
-            if(file == null){
+            if (file == null) {
                 repairsOrderService.insertOrder(repairsOrder);
                 flag = Boolean.TRUE;
-            }else {
+            } else {
                 for (MultipartFile imageFile : file) {
                     String originalFilename = imageFile.getOriginalFilename();
                     int index = originalFilename.lastIndexOf('.') + 1;//获取地址.的前面的数字,从0开始
@@ -573,7 +550,6 @@ public class OrderController {
                 //传入时间就设置为当天时间
                 Date timeDate = sdf.parse(completeTime);
                 String time = sdf.format(timeDate);
-                System.out.println(time);
                 RepairsOrder repairsOrder = new RepairsOrder(orderId, null, null, null,
                         timeDate, null, null, "2", null,
                         null, null, null, repairsWork, null);
@@ -587,4 +563,203 @@ public class OrderController {
         }
         return ReturnValueUtil.returnBoolean(flag);
     }
+
+    @ApiOperation("导出派单Excel")
+    @PostMapping(value = "/sendOrderExecl")
+    public void sendOrderExecl(HttpServletResponse response,
+                               @ApiParam(name = "查询时间段", required = true) String time) {
+        try {
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            List<SendOrderExecl> execlList = new ArrayList<>();
+            List<RepairsOrder> orderList = repairsOrderService.queryAllOrderExcel(dateUtils.getTody(), dateUtils.getTomorrow(), "0");
+            orderList.forEach(RepairsOrder -> {
+                SendOrderExecl sendOrderExecl = new SendOrderExecl();
+                sendOrderExecl.setOrderId(RepairsOrder.getOrderId());
+                sendOrderExecl.setFaultName(RepairsOrder.getRepairsFault().getFaultName());
+                sendOrderExecl.setDormNumber(RepairsOrder.getRepairsStudent().getDormNumber());
+                sendOrderExecl.setOrderExpectedTime(RepairsOrder.getOrderExpectedTime());
+                execlList.add(sendOrderExecl);
+            });
+
+            //生成Execl表
+            Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("派送订单信息表", "派送订单"), SendOrderExecl.class, execlList);
+            response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("派送订单信息.xls", "UTF-8"));
+            ServletOutputStream outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.close();
+            workbook.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @ApiOperation("导出退单Excel")
+    @PostMapping(value = "/backOrderExecl")
+    public void backOrderExecl(HttpServletResponse response,
+                               @ApiParam(name = "查询时间段", required = true) String time) {
+        try {
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            List<BackOrderExecl> execlList = new ArrayList<>();
+
+            List<RepairsOrder> orderList = repairsOrderService.queryAllOrderExcel(dateUtils.getTody(), dateUtils.getTomorrow(), "4");
+            orderList.forEach(RepairsOrder -> {
+                BackOrderExecl backOrderExecl = new BackOrderExecl();
+                backOrderExecl.setOrderId(RepairsOrder.getOrderId());
+                backOrderExecl.setFaultName(RepairsOrder.getRepairsFault().getFaultName());
+                backOrderExecl.setDormNumber(RepairsOrder.getRepairsStudent().getDormNumber());
+                backOrderExecl.setOrderBack(RepairsOrder.getOrderBack());
+                if(RepairsOrder.getOrderStatus().equals("4")){
+                    RepairsOrder.setOrderStatus("已退回");
+                }
+                backOrderExecl.setOrderStatus(RepairsOrder.getOrderStatus());
+                execlList.add(backOrderExecl);
+            });
+            //生成Execl表
+            Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("退回订单信息表", "退回订单信息"), BackOrderExecl.class, execlList);
+            response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("退回订单信息.xls", "UTF-8"));
+            ServletOutputStream outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.close();
+            workbook.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @ApiOperation("导出查询订单Excel")
+    @PostMapping(value = "/queryOrderExecl")
+    public void queryOrderExecl(HttpServletResponse response,
+                                @ApiParam(name = "订单类型1(待接单)2(已接单)3(已完成)", required = true) String orderType,
+                                @ApiParam(name = "查询时间段", required = true) String time) {
+        try {
+            DateUtils dateUtils = new DateUtils();
+            dateUtils.addOneDay(time);
+            List<QueryOrderExecl> execlList = new ArrayList<>();
+
+            List<RepairsOrder> orderList = repairsOrderService.queryAllOrderExcel(dateUtils.getTody(), dateUtils.getTomorrow(), orderType);
+            orderList.forEach(RepairsOrder -> {
+                QueryOrderExecl queryOrderExecl = new QueryOrderExecl();
+                queryOrderExecl.setOrderId(RepairsOrder.getOrderId());
+                queryOrderExecl.setFaultName(RepairsOrder.getRepairsFault().getFaultName());
+                queryOrderExecl.setDormNumber(RepairsOrder.getRepairsStudent().getDormNumber());
+                queryOrderExecl.setOrderCompleteTime(RepairsOrder.getOrderCompleteTime());
+                queryOrderExecl.setWorkName(RepairsOrder.getRepairsWork().getWorkName());
+                if(RepairsOrder.getOrderStatus().equals("1")){
+                    RepairsOrder.setOrderStatus("待接单");
+                }
+                if(RepairsOrder.getOrderStatus().equals("2")){
+                    RepairsOrder.setOrderStatus("已接单");
+                }
+                if(RepairsOrder.getOrderStatus().equals("3")){
+                    RepairsOrder.setOrderStatus("已完成");
+                }
+                queryOrderExecl.setOrderStatus(RepairsOrder.getOrderStatus());
+                execlList.add(queryOrderExecl);
+            });
+            Workbook workbook = null;
+            //生成Execl表
+            if(orderType.equals("1")){
+                workbook = ExcelExportUtil.exportExcel(new ExportParams("待接单信息表", "待接订单"), QueryOrderExecl.class, execlList);
+            }
+            if(orderType.equals("2")){
+                workbook = ExcelExportUtil.exportExcel(new ExportParams("已接单信息表", "已接订单"), QueryOrderExecl.class, execlList);
+            }
+            if(orderType.equals("3")){
+                workbook = ExcelExportUtil.exportExcel(new ExportParams("完成订单信息表", "已完成订单"), QueryOrderExecl.class, execlList);
+            }
+
+            response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("订单信息.xls", "UTF-8"));
+            ServletOutputStream outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.close();
+            workbook.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+//    @ApiOperation("queryAllOrderExcel")
+//    @RequestMapping(value = "/queryAllOrderExcel")
+//    public List<RepairsOrder> queryAllOrderExcel() {
+//        List<RepairsOrder> orderList = null;
+//        try {
+//            String orderStatus = "0";
+//            orderList = repairsOrderService.queryAllOrderExcel(null, null, orderStatus);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        return orderList;
+//    }
+
+
+    @ApiIgnore
+    @PostMapping(value = "/exportSsTj")
+    public void exportSsTj(HttpServletResponse response) throws Exception {
+        //退回订单信息
+        final List<RepairsOrder> backOrder = repairsOrderService.queryAllOrderExcel(null, null, "4");
+        List<BackOrderExecl> backExeclList = new ArrayList<>();
+        backOrder.forEach(RepairsOrder -> {
+            BackOrderExecl backOrderExecl = new BackOrderExecl();
+            backOrderExecl.setOrderId(RepairsOrder.getOrderId());
+            backOrderExecl.setFaultName(RepairsOrder.getRepairsFault().getFaultName());
+            backOrderExecl.setDormNumber(RepairsOrder.getRepairsStudent().getDormNumber());
+            backOrderExecl.setOrderBack(RepairsOrder.getOrderBack());
+            backOrderExecl.setOrderStatus(RepairsOrder.getOrderStatus());
+            backExeclList.add(backOrderExecl);
+        });
+        // 创建参数对象(用来设定excel得sheet得内容等信息)
+        ExportParams params1 = new ExportParams() ;
+        // 设置sheet1得名称
+        params1.setSheetName("退回订单表"); ;
+        params1.setTitle("退回订单信息");
+        // 创建sheet1使用得map
+        Map dataMap1 = new HashMap<>();
+        // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName
+        dataMap1.put("title",params1) ;
+        dataMap1.put(NormalExcelConstants.PARAMS, params1);
+        // 模版导出对应得实体类型
+        dataMap1.put("entity",BackOrderExecl.class) ;
+        // sheet中要填充得数据
+        dataMap1.put("data",backExeclList) ;
+
+        //派送订单信息
+        List<RepairsOrder> sendOrder=  repairsOrderService.queryAllOrderExcel(null, null, "0");
+        List<SendOrderExecl> sendExeclList = new ArrayList<>();
+        sendOrder.forEach(RepairsOrder -> {
+            SendOrderExecl sendOrderExecl = new SendOrderExecl();
+            sendOrderExecl.setOrderId(RepairsOrder.getOrderId());
+            sendOrderExecl.setFaultName(RepairsOrder.getRepairsFault().getFaultName());
+            sendOrderExecl.setDormNumber(RepairsOrder.getRepairsStudent().getDormNumber());
+            sendOrderExecl.setOrderExpectedTime(RepairsOrder.getOrderExpectedTime());
+            sendExeclList.add(sendOrderExecl);
+        });
+        // 创建sheet2使用得map
+        ExportParams params2 = new ExportParams() ;
+        params2.setSheetName("派送订单表") ;
+        params2.setTitle("派送订单信息");
+        Map dataMap2 = new HashMap<>();
+        dataMap2.put("title",params2) ;
+        dataMap2.put("entity",SendOrderExecl.class) ;
+        dataMap2.put("data",sendExeclList);
+
+
+        // 将sheet1和sheet2使用得map进行包装
+        List sheetsList = new ArrayList<>() ;
+        sheetsList.add(dataMap1);
+        sheetsList.add(dataMap2);
+
+        Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF) ;
+        response.setContentType("applicationnd.ms-excel"); // 改成输出excel文件
+        String fileName = java.net.URLEncoder.encode("报修订单情况表", "UTF-8");
+        response.setHeader("Content-disposition",
+                "attachment; filename=" + fileName + ".xls");// 03版本后缀xls,之后的xlsx
+        OutputStream out = response.getOutputStream();
+        workbook.write(out);
+        out.close();
+        workbook.close();
+    }
 }

+ 70 - 0
src/main/java/com/chuanghai/repair/entity/BackOrderExecl.java

@@ -0,0 +1,70 @@
+package com.chuanghai.repair.entity;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+
+/**
+ * @Author: bingo
+ * @Date: 2022/3/28 星期一 12:24
+ * @Description: com.chuanghai.repair.entity
+ * @version: 1.0
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+@Setter
+@Getter
+@ToString
+public class BackOrderExecl {
+    /**
+     * 订单ID
+     */
+    @Excel(name="订单号", width = 25)
+    @ApiModelProperty(value = "订单ID")
+    @Id
+    @Column(name = "order_id")
+    private String orderId;
+
+    /**
+     * 故障类型名称
+     */
+    @Excel(name="故障类型", width = 15)
+    @ApiModelProperty(value = "故障名称")
+    @Column(name = "fault_name")
+    private String faultName;
+
+
+    /**
+     * 学生宿舍
+     */
+    @Excel(name="宿舍楼栋", width = 15)
+    @ApiModelProperty(value = "学生宿舍")
+    @Column(name = "dorm_number")
+    private String dormNumber;
+
+    /**
+     * 退单理由
+     */
+    @Excel(name="退回理由",width = 15)
+    @ApiModelProperty(value = "退单理由")
+    @Column(name = "order_back")
+    private String orderBack;
+
+
+    /**
+     * 订单状态 0(待接单)1(已接单)2(维修完成)3(退单)
+     */
+    @Excel(name="状态",width = 15)
+    @ApiModelProperty(value = "订单状态 0(新订单)1(待接单)2(已接单)3(维修完成)4(退单)")
+    @Column(name = "order_status")
+    private String orderStatus;
+
+
+
+}

+ 87 - 0
src/main/java/com/chuanghai/repair/entity/QueryOrderExecl.java

@@ -0,0 +1,87 @@
+package com.chuanghai.repair.entity;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+
+/**
+ * @Author: bingo
+ * @Date: 2022/3/28 星期一 12:24
+ * @Description: com.chuanghai.repair.entity
+ * @version: 1.0
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+@Setter
+@Getter
+@ToString
+public class QueryOrderExecl {
+    /**
+     * 订单ID
+     */
+    @Excel(name="订单号", width = 25 )
+    @ApiModelProperty(value = "订单ID")
+    @Id
+    @Column(name = "order_id")
+    private String orderId;
+
+
+    /**
+     * 故障类型名称
+     */
+    @Excel(name="故障类型", width = 15)
+    @ApiModelProperty(value = "故障名称")
+    @Column(name = "fault_name")
+    private String faultName;
+
+
+
+    /**
+     * 学生宿舍
+     */
+    @Excel(name="宿舍楼栋", width = 15)
+    @ApiModelProperty(value = "学生宿舍")
+    @Column(name = "dorm_number")
+    private String dormNumber;
+
+
+
+    /**
+     * 订单完成维修时间
+     */
+    @Excel(name="维修时间",width = 25, format ="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "订单完成维修时间")
+    @Column(name = "order_complete_time")
+    private Date orderCompleteTime;
+
+    /**
+     * 维修工名称
+     */
+    @Excel(name="维修人员",width = 15)
+    @NotEmpty
+    @ApiModelProperty(value = "维修工名称")
+    @Column(name = "work_name")
+    private String workName;
+
+    /**
+     * 订单状态 0(待接单)1(已接单)2(维修完成)3(退单)
+     */
+    @Excel(name="状态",width = 15)
+    @ApiModelProperty(value = "订单状态 0(新订单)1(待接单)2(已接单)3(维修完成)4(退单)")
+    @Column(name = "order_status")
+    private String orderStatus;
+
+
+
+
+
+
+
+}

+ 2 - 0
src/main/java/com/chuanghai/repair/entity/RepairsFault.java

@@ -1,5 +1,6 @@
 package com.chuanghai.repair.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
@@ -24,6 +25,7 @@ public class RepairsFault {
     /**
      * 故障类型名称
      */
+    @Excel(name="故障类型")
     @ApiModelProperty(value = "故障名称")
     @Column(name = "fault_name")
     private String faultName;

+ 4 - 2
src/main/java/com/chuanghai/repair/entity/RepairsNotice.java

@@ -1,10 +1,11 @@
 package com.chuanghai.repair.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
 import javax.persistence.*;
-import javax.validation.constraints.Pattern;
+import java.util.Date;
 
 @NoArgsConstructor
 @AllArgsConstructor
@@ -31,9 +32,10 @@ public class RepairsNotice {
     /**
      * 发布时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "添加公告时间")
     @Column(name = "notice_time")
-    private String noticeTime;
+    private Date noticeTime;
 
     /**
      * 公告状态 0(删除)1(启用)

+ 9 - 2
src/main/java/com/chuanghai/repair/entity/RepairsOrder.java

@@ -1,5 +1,6 @@
 package com.chuanghai.repair.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
@@ -20,6 +21,7 @@ public class RepairsOrder {
     /**
      * 订单ID
      */
+    @Excel(name="订单号")
     @ApiModelProperty(value = "订单ID")
     @Id
     @Column(name = "order_id")
@@ -42,6 +44,8 @@ public class RepairsOrder {
     /**
      * 订单预期维修时间
      */
+    @Excel(name="订单预期维修时间", width = 20 ,format ="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @ApiModelProperty(value = "订单预期维修时间")
     @Column(name = "order_expected_time")
     private String orderExpectedTime;
@@ -49,7 +53,8 @@ public class RepairsOrder {
     /**
      * 订单完成维修时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name="订单维修时间",width = 20)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "订单完成维修时间")
     @Column(name = "order_complete_time")
     private Date orderCompleteTime;
@@ -57,7 +62,7 @@ public class RepairsOrder {
     /**
      * 订单提交时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "订单提交时间")
     @Column(name = "order_commit_time")
     private Date orderCommitTime;
@@ -72,6 +77,7 @@ public class RepairsOrder {
     /**
      * 订单状态 0(待接单)1(已接单)2(维修完成)3(退单)
      */
+    @Excel(name="维修状态",width = 15)
     @ApiModelProperty(value = "订单状态 0(新订单)1(待接单)2(已接单)3(维修完成)4(退单)")
     @Column(name = "order_status")
     private String orderStatus;
@@ -94,6 +100,7 @@ public class RepairsOrder {
     /**
      * 退单理由
      */
+    @Excel(name="退回理由",width = 15)
     @ApiModelProperty(value = "退单理由")
     @Column(name = "order_back")
     private String orderBack;

+ 2 - 0
src/main/java/com/chuanghai/repair/entity/RepairsStudent.java

@@ -1,5 +1,6 @@
 package com.chuanghai.repair.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
@@ -61,6 +62,7 @@ public class RepairsStudent {
     /**
      * 学生宿舍
      */
+    @Excel(name="学生宿舍")
     @ApiModelProperty(value = "学生宿舍")    // key:dorm_number,value:15栋413
     @Column(name = "dorm_number")
     private String dormNumber;

+ 2 - 0
src/main/java/com/chuanghai/repair/entity/RepairsWork.java

@@ -1,5 +1,6 @@
 package com.chuanghai.repair.entity;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
@@ -29,6 +30,7 @@ public class RepairsWork {
     /**
      * 维修工名称
      */
+    @Excel(name="维修人员",width = 15)
     @NotEmpty
     @ApiModelProperty(value = "维修工名称")
     @Column(name = "work_name")

+ 60 - 0
src/main/java/com/chuanghai/repair/entity/SendOrderExecl.java

@@ -0,0 +1,60 @@
+package com.chuanghai.repair.entity;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+
+/**
+ * @Author: bingo
+ * @Date: 2022/3/28 星期一 12:24
+ * @Description: 标识0 状态的新订单execl实体类
+ * @version: 1.0
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+@Setter
+@Getter
+@ToString
+public class SendOrderExecl {
+    /**
+     * 订单ID
+     */
+    @Excel(name="订单号",width = 25)
+    @ApiModelProperty(value = "订单ID")
+    @Id
+    @Column(name = "order_id")
+    private String orderId;
+
+    /**
+     * 故障类型名称
+     */
+    @Excel(name="故障类型", width = 15)
+    @ApiModelProperty(value = "故障名称")
+    @Column(name = "fault_name")
+    private String faultName;
+
+
+    /**
+     * 学生宿舍
+     */
+    @Excel(name="宿舍楼栋", width = 15)
+    @ApiModelProperty(value = "学生宿舍")
+    @Column(name = "dorm_number")
+    private String dormNumber;
+
+    /**
+     * 订单预期维修时间
+     */
+    @Excel(name="预期时间", width = 25)
+    @ApiModelProperty(value = "订单预期维修时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @Column(name = "order_expected_time")
+    private String orderExpectedTime;
+
+}

+ 2 - 2
src/main/java/com/chuanghai/repair/mapper/RepairsAdminMapper.java

@@ -8,9 +8,9 @@ public interface RepairsAdminMapper {
 
     /**
      * 管理员登录
-     * @param phone
+     * @param name
      * @param password
      * @return
      */
-    RepairsAdmin loginAdmin(String phone, String password);
+    RepairsAdmin loginAdmin(String name, String password);
 }

+ 10 - 7
src/main/java/com/chuanghai/repair/mapper/RepairsNoticeMapper.java

@@ -9,13 +9,13 @@ import java.util.List;
 public interface RepairsNoticeMapper  {
     /**
      * 添加公告
-     * @param noticeContent
-     * @param noticeTime
-     * @param adminId
+     * @param
+     * @param
+     * @param
      * @return
      * @throws Exception
      */
-    Boolean addNotice(String noticeContent, String noticeTime, Integer adminId) throws Exception;
+    void addNotice(RepairsNotice repairsNotice) throws Exception;
 
     /**
      * 发布公告
@@ -27,11 +27,11 @@ public interface RepairsNoticeMapper  {
 
     /**
      * 逻辑删除公告
-     * @param noticeId
+     * @param
      * @return
      * @throws Exception
      */
-    Integer updateNotice(String noticeId) throws Exception;
+    void updateNotice(List<RepairsNotice> noticeList) throws Exception;
 
     /**
      * 修改公告
@@ -48,5 +48,8 @@ public interface RepairsNoticeMapper  {
      * @return
      * @throws Exception
      */
-    List<RepairsNotice> queryAllNotice() throws Exception;
+    List<RepairsNotice> queryAllNotice(String tody, String tomorrow) throws Exception;
+
+
+
 }

+ 1 - 1
src/main/java/com/chuanghai/repair/service/RepairsAdminService.java

@@ -11,5 +11,5 @@ import com.chuanghai.repair.entity.RepairsAdmin;
  */
 public interface RepairsAdminService {
 
-    RepairsAdmin loginAdmin(String phone, String password);
+    RepairsAdmin loginAdmin(String name, String password);
 }

+ 11 - 7
src/main/java/com/chuanghai/repair/service/RepairsNoticeService.java

@@ -1,6 +1,8 @@
 package com.chuanghai.repair.service;
 
 import com.chuanghai.repair.entity.RepairsNotice;
+import com.github.pagehelper.PageInfo;
+import io.swagger.models.auth.In;
 
 import java.util.List;
 
@@ -14,13 +16,13 @@ public interface RepairsNoticeService {
     /**
      * 添加公告
      *
-     * @param noticeContent
-     * @param noticeTime
-     * @param adminId
+     * @param
+     * @param
+     * @param
      * @return
      * @throws Exception
      */
-    Boolean addNotice(String noticeContent, String noticeTime, Integer adminId) throws Exception;
+    void addNotice(RepairsNotice repairsNotice) throws Exception;
 
     /**
      * 发布公告
@@ -33,11 +35,11 @@ public interface RepairsNoticeService {
     /**
      * 逻辑删除公告
      *
-     * @param noticeId
+     * @param
      * @return
      * @throws Exception
      */
-    Integer updateNotice(String noticeId) throws Exception;
+    void updateNotice(List<RepairsNotice> noticeList) throws Exception;
 
     /**
      * 修改公告
@@ -56,5 +58,7 @@ public interface RepairsNoticeService {
      * @return
      * @throws Exception
      */
-    List<RepairsNotice> queryAllNotice() throws Exception;
+    PageInfo<RepairsNotice> queryAllNotice(String tody, String tomorrow, Integer pageNum, Integer pageSize) throws Exception;
+
+
 }

+ 1 - 0
src/main/java/com/chuanghai/repair/service/RepairsOrderService.java

@@ -112,5 +112,6 @@ public interface RepairsOrderService {
     PageInfo<RepairsOrder> queryAllOrderByAdvice(String tody, String tomorrow,String workID, Integer pageNum, Integer pageSize)throws Exception;
 
 
+    List<RepairsOrder> queryAllOrderExcel(String tody, String tomorrow,String orderStatus) throws Exception;
 
 }

+ 2 - 2
src/main/java/com/chuanghai/repair/service/ServiceImpl/RepairsAdminServiceImpl.java

@@ -20,7 +20,7 @@ public class RepairsAdminServiceImpl implements RepairsAdminService {
     private RepairsAdminMapper repairsAdminMapper;
 
     @Override
-     public RepairsAdmin loginAdmin(String phone, String password){
-        return repairsAdminMapper.loginAdmin(phone,password);
+     public RepairsAdmin loginAdmin(String name, String password){
+        return repairsAdminMapper.loginAdmin(name,password);
      }
 }

+ 19 - 10
src/main/java/com/chuanghai/repair/service/ServiceImpl/RepairsNoticeServiceImpl.java

@@ -1,8 +1,12 @@
 package com.chuanghai.repair.service.ServiceImpl;
 
 import com.chuanghai.repair.entity.RepairsNotice;
+import com.chuanghai.repair.entity.RepairsOrder;
 import com.chuanghai.repair.mapper.RepairsNoticeMapper;
 import com.chuanghai.repair.service.RepairsNoticeService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import io.swagger.models.auth.In;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -24,15 +28,15 @@ public class RepairsNoticeServiceImpl implements RepairsNoticeService {
     /**
      * 添加公告
      *
-     * @param noticeContent
-     * @param noticeTime
-     * @param adminId
+     * @param
+     * @param
+     * @param
      * @return
      * @throws Exception
      */
     @Override
-    public Boolean addNotice(String noticeContent, String noticeTime, Integer adminId) throws Exception {
-        return repairsNoticeMapper.addNotice(noticeContent, noticeTime, adminId);
+    public void addNotice(RepairsNotice repairsNotice) throws Exception {
+         repairsNoticeMapper.addNotice(repairsNotice);
     }
 
     /**
@@ -48,13 +52,13 @@ public class RepairsNoticeServiceImpl implements RepairsNoticeService {
 
     /**
      * 逻辑删除公告
-     * @param noticeId
+     * @param
      * @return
      * @throws Exception
      */
     @Override
-    public Integer updateNotice(String noticeId) throws Exception {
-        return repairsNoticeMapper.updateNotice(noticeId);
+    public void updateNotice(List<RepairsNotice> noticeList) throws Exception {
+         repairsNoticeMapper.updateNotice(noticeList);
     }
 
     /**
@@ -76,7 +80,12 @@ public class RepairsNoticeServiceImpl implements RepairsNoticeService {
      * @throws Exception
      */
     @Override
-    public List<RepairsNotice> queryAllNotice() throws Exception{
-        return repairsNoticeMapper.queryAllNotice();
+    public PageInfo<RepairsNotice> queryAllNotice(String tody, String tomorrow,Integer pageNum, Integer pageSize) throws Exception{
+        PageHelper.startPage(pageNum, pageSize);//分页插件,专门用于myBatis分页
+        List<RepairsNotice> noticeList = repairsNoticeMapper.queryAllNotice(tody, tomorrow);
+        PageInfo<RepairsNotice> pageInfo = new PageInfo<>(noticeList);
+        return pageInfo;
     }
+
+
 }

+ 7 - 0
src/main/java/com/chuanghai/repair/service/ServiceImpl/RepairsOrderServiceImpl.java

@@ -37,6 +37,13 @@ public class RepairsOrderServiceImpl implements RepairsOrderService {
         return pageInfo;
     }
 
+    @Override
+    public List<RepairsOrder> queryAllOrderExcel( String tody, String tomorrow,String orderStatus) throws Exception{
+        List<RepairsOrder> orderList = repairsOrderMapper.queryAllOrderByDate(tody, tomorrow,orderStatus);
+        return orderList;
+    }
+
+
     /**
      * 通过订单ID修改订单评价
      *

+ 2 - 1
src/main/java/com/chuanghai/repair/utils/CreateTokenUtil.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
-import com.sun.deploy.net.URLEncoder;
+//import com.sun.deploy.net.URLEncoder;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpEntity;
@@ -18,6 +18,7 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
 import java.net.URI;
+import java.net.URLEncoder;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.HashMap;

+ 49 - 0
src/main/java/com/chuanghai/repair/utils/DateUtils.java

@@ -0,0 +1,49 @@
+package com.chuanghai.repair.utils;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @Author: bingo
+ * @Date: 2022/3/25 星期五 11:18
+ * @Description: com.chuanghai.repair.utils
+ * @version: 1.0
+ */
+@Setter
+@Getter
+public class DateUtils {
+    private  String tody;
+    private  String tomorrow;
+
+    public  void addOneDay(String time){
+
+        try {
+            if (time != null && !time.equals("")) {
+                //前端日期数据由 String转Date
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                Calendar calendar = Calendar.getInstance();
+                //传入时间就设置为当天时间
+                Date date = sdf.parse(time);
+                calendar.setTime(date);
+                //获取当天的0时0分0秒
+                calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH),
+                        0, 0, 0);
+                tody = sdf.format(calendar.getTime());
+                calendar.add(Calendar.DATE, 1); //增加一天
+                tomorrow = sdf.format(calendar.getTime());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    public static void main(String[] args) {
+        DateUtils dateUtils = new DateUtils();
+        dateUtils.addOneDay("2022-03-17");
+        System.out.println(dateUtils.tody+"------"+dateUtils.tomorrow);
+    }
+}

+ 100 - 0
src/main/java/com/chuanghai/repair/utils/ExcelUtil.java

@@ -0,0 +1,100 @@
+package com.chuanghai.repair.utils;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.List;
+
+/**
+ * @Author: bingo
+ * @Date: 2022/3/28 星期一 11:16
+ * @Description: com.chuanghai.repair.utils
+ * @version: 1.0
+ */
+public class ExcelUtil {
+    /**
+     * 用户信息导出类
+     * @param response 响应
+     * @param fileName 文件名
+     * @param columnList 每列的标题名
+     * @param dataList 导出的数据
+     */
+    public static void uploadExcelAboutUser(HttpServletResponse response, String fileName,String sheet, List<String> columnList,List<List<String>> dataList){
+        //声明输出流
+        OutputStream os = null;
+        //设置响应头
+        setResponseHeader(response,fileName);
+        try {
+            //获取输出流
+            os = response.getOutputStream();
+            //内存中保留1000条数据,以免内存溢出,其余写入硬盘
+            SXSSFWorkbook wb = new SXSSFWorkbook(1000);
+            //获取该工作区的第一个sheet
+            Sheet sheet1 = wb.createSheet(sheet);//"sheet1"
+            int excelRow = 0;
+            //创建标题行
+            Row titleRow = sheet1.createRow(excelRow++);
+            for(int i = 0;i<columnList.size();i++){
+                //创建该行下的每一列,并写入标题数据
+                Cell cell = titleRow.createCell(i);
+                cell.setCellValue(columnList.get(i));
+            }
+            //设置内容行
+            if(dataList!=null && dataList.size()>0){
+                //序号是从1开始的
+                int count = 1;
+                //外层for循环创建行
+                for(int i = 0;i<dataList.size();i++){
+                    Row dataRow = sheet1.createRow(excelRow++);
+                    //内层for循环创建每行对应的列,并赋值
+                    for(int j = -1;j<dataList.get(0).size();j++){//由于多了一列序号列所以内层循环从-1开始
+                        Cell cell = dataRow.createCell(j+1);
+                        if(j==-1){//第一列是序号列,不是在数据库中读取的数据,因此手动递增赋值
+                            cell.setCellValue(count++);
+                        }else{//其余列是数据列,将数据库中读取到的数据依次赋值
+                            cell.setCellValue(dataList.get(i).get(j));
+                        }
+                    }
+                }
+            }
+            //将整理好的excel数据写入流中
+            wb.write(os);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                // 关闭输出流
+                if (os != null) {
+                    os.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /*
+        设置浏览器下载响应头
+     */
+    private static void setResponseHeader(HttpServletResponse response, String fileName) {
+        try {
+            try {
+                fileName = new String(fileName.getBytes(),"ISO8859-1");
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+            response.setContentType("application/octet-stream;charset=UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
+            response.addHeader("Pargam", "no-cache");
+            response.addHeader("Cache-Control", "no-cache");
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+}

+ 12 - 10
src/main/resources/application.yml

@@ -3,20 +3,20 @@ server:
 
 #数据源配置
 spring:
+  jackson:
+    #日期格式化
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/repairs?characterEncoding=utf-8&serverTimezone=UTC&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true
-   # url: jdbc:mysql://192.168.1.41:3306/repairs?characterEncoding=utf-8&serverTimezone=UTC&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true
+    url: jdbc:mysql://127.0.0.1:3306/repairs?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+    #url: jdbc:mysql://192.168.1.41:3306/repairs?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
 
     driver-class-name: com.mysql.jdbc.Driver
 #    mysql6以上需要使用下面的连接配置
 #    driver-class-name: com.mysql.cj.jdbc.Driver
     username: root
     password: root
-#spring security 安全框架
-  security:
-    user:
-      name: admin
-      password: 123456
+
 
 
 #数据库方言
@@ -38,8 +38,9 @@ img:
 
   # 图片预览地址
   showHost: http://10.244.137.3/dev-img/
+  #showHost: https://jtishfw.ncjti.edu.cn/baoxiu/dev-img/
   #show-host: http://192.168.31.115/dev-img/
-  #show-host: http://192.168.1.41/dev-img/
+  # show-host: http://192.168.1.41/dev-img/
 
 
 #微校相关配置
@@ -48,8 +49,9 @@ weixiao:
   app_secret: 5071958561AA629530AAA31503088330
   ocode: 1015730314
   serverUrl: http://10.244.137.3:8084
- # serverUrl: http://192.168.1.41:8084
-# serverUrl: http://87hhvi.natappfree.cc
+  requestUrl: https://jtishfw.ncjti.edu.cn/baoxiu/repair-manage/
+  #serverUrl: https://jtishfw.ncjti.edu.cn/baoxiu/
+
   title: 寝室维修通知
   content: 同学你好,你的寝室报修单已被维修师傅接单,维修师傅将于半小时后上门维修;请合理安排时间,谢谢合作。
   sender: 寝室管理办公室

+ 2 - 2
src/main/resources/mapper/RepairsAdminMapper.xml

@@ -25,8 +25,8 @@
     <select id="loginAdmin" parameterType="java.lang.String" resultMap="loginMap">
         select ad.* from repairs_admin as ad
             <trim prefix="where" prefixOverrides="and" suffix="" suffixOverrides="">
-                <if test="phone!='' and phone!=null">
-                    and admin_phone = #{phone}
+                <if test="name!='' and name!=null">
+                    and admin_name = #{name}
                 </if>
                 <if test=" password!='' and  password!=null">
                     and admin_password = #{password}

+ 52 - 13
src/main/resources/mapper/RepairsNoticeMapper.xml

@@ -18,26 +18,54 @@
 
 
     <!--    添加公告-->
-    <select id="addNotice" parameterType="com.chuanghai.repair.entity.RepairsNotice"
-            resultType="Boolean">
+    <select id="addNotice" parameterType="com.chuanghai.repair.entity.RepairsNotice" >
         insert into repairs_notice(notice_content,notice_time,notice_status,admin_id)
-        values(#{noticeContent},#{noticeTime},1,#{adminId});
+        values(#{noticeContent},#{noticeTime},#{noticeStatus},#{repairsAdmin.adminId})
     </select>
 
     <!--    发布公告-->
     <select id="releaseNotice" resultMap="BaseResultMap">
         select notice_content,notice_time,no.admin_id,admin_name from repairs_notice no ,repairs_admin ad
-        where no.admin_id = ad.admin_id and notice_id = (select max(notice_id) from repairs_notice);
+        where no.admin_id = ad.admin_id and notice_id = (select max(notice_id) from repairs_notice)
     </select>
 
-    <!--    逻辑删除公告-->
-    <select id="updateNotice" parameterType="java.lang.String" resultType="Integer">
-        update repairs_notice no set no.notice_status = 0
-        <trim prefix="where" prefixOverrides="and" suffix="" suffixOverrides="">
-            <if test="noticeId!='' and noticeId!=null">
-                and no.notice_id = #{noticeId}
-            </if>
+
+
+    <select id="updateNotice" parameterType="java.util.List" >
+        update repairs_notice
+        <trim prefix="set" suffixOverrides=",">
+            <trim prefix="notice_status=case" suffix="end,">
+                <foreach collection="list" item="item" index="index">
+                    <if test="item.noticeStatus != null ">
+                         when notice_id = #{item.noticeId} then #{item.noticeStatus}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="notice_content=case" suffix="end,">
+                <foreach collection="list" item="item" index="index">
+                    <if test="item.noticeContent != null ">
+                        when notice_id = #{item.noticeId} then #{item.noticeContent}
+                    </if>
+                </foreach>
+            </trim><trim prefix="notice_time=case" suffix="end,">
+                <foreach collection="list" item="item" index="index">
+                    <if test="item.noticeTime != null ">
+                     when notice_id = #{item.noticeId} then #{item.noticeTime}
+                    </if>
+                </foreach>
+            </trim>
+            <trim prefix="admin_id=case" suffix="end,">
+                <foreach collection="list" item="item" index="index">
+                    when notice_id = #{item.noticeId} then #{item.repairsAdmin.adminId}
+                </foreach>
+            </trim>
+
         </trim>
+        where notice_id in
+        <foreach collection="list" index="index" item="item"
+                 separator="," open="(" close=")">
+            #{item.noticeId,jdbcType=INTEGER}
+        </foreach>
     </select>
 
     <!--    修改公告-->
@@ -52,7 +80,18 @@
     </select>
 
     <!--    查询全部公告-->
-    <select id="queryAllNotice" resultMap="BaseResultMap">
-        select * from repairs_notice where notice_status = 1;
+    <select id="queryAllNotice" parameterType="java.lang.String" resultMap="BaseResultMap">
+        select nt.* ,ad.admin_name from repairs_notice nt ,repairs_admin ad
+        <trim prefix="where" prefixOverrides="and" suffix="" suffixOverrides="">
+             nt.admin_id = ad.admin_id
+             and notice_status = 1
+            <if test="tody!='' and tody!=null">
+                and notice_time BETWEEN #{tody} and #{tomorrow}
+            </if>
+        </trim>
+        order by notice_time desc
     </select>
+
+
+
 </mapper>

+ 15 - 7
src/main/resources/mapper/RepairsOrderMapper.xml

@@ -53,7 +53,7 @@
         <select id="queryAllOrderByDate" parameterType="java.lang.String" resultMap="OrderFaultStudentMap">
 
             select od.order_id, od.order_status,od.order_commit_time, fa.fault_name,st.dorm_number,
-                od.order_complete_time,od.order_expected_time,wo.work_name
+                od.order_complete_time,od.order_expected_time,wo.work_name,od.order_back
             from
             repairs_order od left join repairs_student st on od.student_id = st.student_id
             left join repairs_fault fa on od.fault_id = fa.fault_id
@@ -65,6 +65,10 @@
                 <if test = "orderStatus == '0'.toString()">
                     and od.order_status = #{orderStatus}
                 </if>
+                <if test = "orderStatus == '1'.toString()">
+                    and od.work_id = wo.work_id
+                    and od.order_status =#{orderStatus}
+                </if>
                 <if test = "orderStatus == '2'.toString()">
                     and od.work_id = wo.work_id
                     and od.order_status =#{orderStatus}
@@ -73,17 +77,20 @@
                     and od.work_id = wo.work_id
                     and od.order_status =#{orderStatus}
                 </if>
-                <if test = "orderStatus == '23'.toString()">
-                    and od.work_id = wo.work_id
-                    and od.order_status in (2,3)
+                <if test = "orderStatus == '4'.toString()">
+                    and od.order_status =#{orderStatus}
+                </if>
+                <if test = "orderStatus == '123'.toString()">
+                    and od.order_status not in ("0","4")
                 </if>
+
             </trim>
             order by od.order_commit_time desc, fa.fault_level desc
         </select>
 
     <!--    通过ID查询订单信息-->
     <select id="queryAllOrderById" parameterType="java.lang.String" resultMap="OrderFaultStudentMap">
-        select od.order_id, od.order_status,od.order_commit_time, fa.fault_name,st.dorm_number, od.order_expected_time
+        select od.order_id, od.order_status,od.order_commit_time, fa.fault_name,st.dorm_number, od.order_expected_time, od.order_back
         from repairs_order od ,repairs_student st ,repairs_fault fa
         <trim prefix="where" prefixOverrides="and" suffix="" suffixOverrides="">
             od.student_id = st.student_id
@@ -128,6 +135,7 @@
         <result column="order_advice" property="orderAdvice" jdbcType="VARCHAR"/>
         <result column="order_status" property="orderStatus" jdbcType="VARCHAR"/>
         <result column="order_expected_time" property="orderExpectedTime" jdbcType="VARCHAR"/>
+        <result column="order_back" property="orderBack" jdbcType="VARCHAR"/>
         <!--        订单与学生之间是  N:1 关系-->
         <association  property="repairsStudent"  javaType="com.chuanghai.repair.entity.RepairsStudent">
             <id column="student_id" property="studentId"></id>
@@ -151,7 +159,7 @@
 
 <!--    查询指定订单ID 的订单-->
     <select id="queryByOrderId"  parameterType="java.lang.String" resultMap="queryByOrderIdMap">
-        select od.order_id, od.order_commit_time, fa.fault_name,st.dorm_number, od.order_complete_time,od.order_expected_time,
+        select od.order_id, od.order_commit_time, fa.fault_name,st.dorm_number, od.order_complete_time,od.order_expected_time,od.order_back,
             st.student_phone,st.student_other_phone, od.order_images, wo.work_name,od.order_status
         from repairs_order od ,repairs_student st ,repairs_fault fa, repairs_work wo
         <trim prefix="where" prefixOverrides="and" suffix="" suffixOverrides="">
@@ -167,7 +175,7 @@
 
     <!--    查询指定订单ID 的订单-->
     <select id="queryByOrderIdNotWork"  parameterType="java.lang.String" resultMap="queryByOrderIdMap">
-        select od.order_id, od.order_commit_time, fa.fault_name,st.dorm_number, od.order_complete_time,od.order_expected_time,
+        select od.order_id, od.order_commit_time, fa.fault_name,st.dorm_number, od.order_complete_time,od.order_expected_time,od.order_back,
         st.student_phone,st.student_other_phone, od.order_images,od.order_status
         from repairs_order od ,repairs_student st ,repairs_fault fa
         <trim prefix="where" prefixOverrides="and" suffix="" suffixOverrides="">