├── README.md ├── src ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ ├── entity │ │ │ ├── materialManager │ │ │ │ ├── MaterialType.java │ │ │ │ └── Materials.java │ │ │ ├── peopleManager │ │ │ │ ├── Dept.java │ │ │ │ ├── Job.java │ │ │ │ └── User.java │ │ │ └── needPlanManager │ │ │ │ └── NeedPlan.java │ │ │ ├── auth │ │ │ └── UserPermission.java │ │ │ ├── result │ │ │ ├── ResultCode.java │ │ │ ├── ResultFactory.java │ │ │ └── Result.java │ │ │ ├── service │ │ │ ├── DeptService.java │ │ │ ├── NeedPlanService.java │ │ │ ├── UserService.java │ │ │ ├── MaterialService.java │ │ │ ├── serviceImpl │ │ │ │ ├── DeptServiceImpl.java │ │ │ │ ├── MaterialServiceImpl.java │ │ │ │ ├── NeedPlanServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── redisService │ │ │ │ └── RedisService.java │ │ │ ├── config │ │ │ ├── ConfigAdapter.java │ │ │ └── RedisConfig.java │ │ │ ├── MaterilsApplication.java │ │ │ ├── mapper │ │ │ ├── DeptMapper.java │ │ │ ├── NeedPlanMapper.java │ │ │ ├── MaterialMapper.java │ │ │ └── UserMapper.java │ │ │ ├── interceptor │ │ │ └── LoginInterceptor.java │ │ │ ├── util │ │ │ └── RedisKeyUtil.java │ │ │ └── controller │ │ │ ├── LoginController.java │ │ │ ├── peopleManager │ │ │ ├── UserController.java │ │ │ └── DeptController.java │ │ │ ├── materialsManager │ │ │ └── MaterialsController.java │ │ │ └── needplanController │ │ │ └── NeedPLanController.java │ └── resources │ │ └── application.yml └── test │ └── java │ └── com │ └── example │ └── MaterilsApplicationTests.java ├── .gitignore └── pom.xml /README.md: -------------------------------------------------------------------------------- 1 | # MATERIALS 2 | 物资采购管理系统后台代码 3 | 这是物资管理系统前后端分离架构的后端代码的初始代码,目前实现了系统管理和物资管理、采购流程。还在完善。@.@ 4 | -------------------------------------------------------------------------------- /src/main/java/com/example/entity/materialManager/MaterialType.java: -------------------------------------------------------------------------------- 1 | package com.example.entity.materialManager; 2 | 3 | /** 4 | * @program: materils_v2.0 5 | * @description: tbl_materialType表 6 | * @author: aYuan 7 | * @create: 2019-08-20 09:39 8 | */ 9 | public class MaterialType { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/example/auth/UserPermission.java: -------------------------------------------------------------------------------- 1 | package com.example.auth; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Inherited//子类自动继承 6 | @Target({ElementType.METHOD, ElementType.TYPE})//注解存放位置 7 | @Retention(RetentionPolicy.RUNTIME)//注解生命周期 8 | @Documented//生成注解文档 9 | public @interface UserPermission { 10 | String user() default ""; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/example/result/ResultCode.java: -------------------------------------------------------------------------------- 1 | package com.example.result; 2 | 3 | public enum ResultCode { 4 | SUCCESS(200), 5 | FAIL(400), 6 | UNAUTHORIZED(401), 7 | NOT_FOUND(404), 8 | INTERNAL_SERVER_ERROR(500); 9 | 10 | 11 | public Integer code; 12 | 13 | ResultCode(Integer code) { 14 | this.code = code; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | -------------------------------------------------------------------------------- /src/test/java/com/example/MaterilsApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class MaterilsApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/DeptService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | import com.example.entity.peopleManager.Dept; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @program: materils_v2.0 9 | * @description: 10 | * @author: aYuan 11 | * @create: 2019-08-18 10:55 12 | */ 13 | public interface DeptService { 14 | 15 | List findAllDept(); 16 | 17 | boolean addDept(Dept dept); 18 | 19 | boolean updateDept(Dept dept); 20 | 21 | boolean deleteDept(String deptNum); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/NeedPlanService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | 4 | import com.example.entity.needPlanManager.NeedPlan; 5 | import com.example.entity.peopleManager.User; 6 | 7 | import java.util.List; 8 | 9 | public interface NeedPlanService { 10 | 11 | List findAllNeedPlan(); 12 | 13 | void addNeedplan(NeedPlan needPlan); 14 | 15 | public void submitNeedplan(NeedPlan needPlan); 16 | 17 | public void updateNeedplan(NeedPlan needPlan); 18 | 19 | public List findNeedplanBystate(NeedPlan needPlan); 20 | 21 | public List getAllPruchase(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | import com.example.entity.peopleManager.User; 4 | 5 | import java.util.List; 6 | 7 | public interface UserService { 8 | 9 | public User selectUserByJobNum(String jobNum); 10 | 11 | public List findAllUser(); 12 | 13 | public boolean addUser(User user); 14 | 15 | public boolean updateUser(User user); 16 | 17 | public boolean deleteUser(String jobNum); 18 | 19 | public void updateJob(User user); 20 | 21 | public User selectUserByDept(String deptNum); 22 | 23 | public User selectUserByName(String userName); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/example/config/ConfigAdapter.java: -------------------------------------------------------------------------------- 1 | package com.example.config; 2 | 3 | import com.example.interceptor.LoginInterceptor; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 6 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 7 | 8 | 9 | @Configuration 10 | public class ConfigAdapter implements WebMvcConfigurer { 11 | 12 | 13 | @Override 14 | public void addInterceptors(InterceptorRegistry registry) { 15 | registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/*").excludePathPatterns("materils_v2.0/index.html"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/example/result/ResultFactory.java: -------------------------------------------------------------------------------- 1 | package com.example.result; 2 | 3 | public class ResultFactory { 4 | 5 | public static Result bulidSuccessResult(Object data){ 6 | return buildResult(ResultCode.SUCCESS,"成功",data); 7 | } 8 | 9 | public static Result bulidFailResult(String message){ 10 | return buildResult(ResultCode.FAIL,message,null); 11 | } 12 | 13 | public static Result buildResult(ResultCode resultCode,String msg,Object data){ 14 | return new Result(resultCode.code,msg,data); 15 | } 16 | 17 | public static Result buildResult(Integer code,String msg,Object data){ 18 | return new Result(code,msg,data); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/MaterialService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | import com.example.entity.materialManager.Materials; 4 | import com.example.entity.needPlanManager.NeedPlan; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @program: materils_v2.0 10 | * @description: 11 | * @author: aYuan 12 | * @create: 2019-08-21 18:13 13 | */ 14 | public interface MaterialService { 15 | 16 | public List findAllMaterials(); 17 | public List findMaterials(); 18 | public List findPassMaterials(); 19 | 20 | public void addMaterial(Materials materials); 21 | 22 | public void updateMaterial(Materials materials); 23 | 24 | public void updateState(Materials materials); 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /materils_v2.0/ 5 | mybatis: 6 | type-aliases-package: com.example.entity 7 | mapper-locations: classpath:mapper/*.xml 8 | spring: 9 | datasource: 10 | url: jdbc:mysql://localhost:3306/materialsV2.0 11 | #url: jdbc:mysql://localhost:3306/materials 12 | username: root 13 | password: 123456 14 | driver-class-name: com.mysql.cj.jdbc.Driver 15 | redis: 16 | database: 0 17 | host: localhost 18 | port: 6379 19 | password: 20 | jedis: 21 | pool: 22 | #最大空闲连接 23 | max-idle: 8 24 | #最大阻塞等待时间(负值表示无限制) 25 | max-wait: -1 26 | #最大连接数 27 | max-active: 8 28 | min-idle: 0 29 | #连接超时时间 30 | timeout: 5000 31 | -------------------------------------------------------------------------------- /src/main/java/com/example/MaterilsApplication.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.boot.builder.SpringApplicationBuilder; 7 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 8 | 9 | @SpringBootApplication 10 | @MapperScan("com.example.mapper") 11 | public class MaterilsApplication extends SpringBootServletInitializer { 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(MaterilsApplication.class, args); 15 | } 16 | 17 | @Override 18 | protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 19 | return builder.sources(MaterilsApplication.class); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/example/mapper/DeptMapper.java: -------------------------------------------------------------------------------- 1 | package com.example.mapper; 2 | 3 | import com.example.entity.peopleManager.Dept; 4 | import org.apache.ibatis.annotations.*; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @program: materils_v2.0 11 | * @description: 12 | * @author: aYuan 13 | * @create: 2019-08-18 10:56 14 | */ 15 | @Mapper 16 | @Repository 17 | public interface DeptMapper { 18 | 19 | @Select("SELECT * FROM tbl_dept") 20 | List findAllDept(); 21 | 22 | @Delete("DELETE FROM tbl_dept WHERE deptNum = #{deptNum}") 23 | boolean deleteDept(@Param("deptNum") String deptNum); 24 | 25 | @Update("UPDATE tbl_dept SET jobNum = #{jobNum},deptAdmin = #{deptAdmin} WHERE deptNum = #{deptNum}") 26 | boolean updateDept(Dept dept); 27 | 28 | @Insert("INSEST INTO tbl_dept(id,deptNum,deptName,jobNum,deptAdmin) VALUES (#{id},#{deptNum},#{deptName},#{jobNum},#{deptAdmin})") 29 | boolean addDept(Dept dept); 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/example/result/Result.java: -------------------------------------------------------------------------------- 1 | package com.example.result; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Result implements Serializable { 6 | 7 | private static final long serialVersionUID = -4762928619495260423L; 8 | 9 | private Integer code; 10 | 11 | private String message; 12 | 13 | private Object data; 14 | 15 | 16 | public Result(Integer code, String message, Object data) { 17 | this.code = code; 18 | this.message = message; 19 | this.data = data; 20 | } 21 | 22 | public Integer getCode() { 23 | return code; 24 | } 25 | 26 | public void setCode(Integer code) { 27 | this.code = code; 28 | } 29 | 30 | public String getMessage() { 31 | return message; 32 | } 33 | 34 | public void setMessage(String message) { 35 | this.message = message; 36 | } 37 | 38 | public Object getData() { 39 | return data; 40 | } 41 | 42 | public void setData(Object data) { 43 | this.data = data; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/example/interceptor/LoginInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.example.interceptor; 2 | 3 | import org.springframework.web.servlet.HandlerInterceptor; 4 | import org.springframework.web.servlet.ModelAndView; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | public class LoginInterceptor implements HandlerInterceptor { 10 | 11 | @Override 12 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 13 | Object userSession = request.getSession().getAttribute("user"); 14 | if(userSession == null && request.getRequestURI().equals("materils_v2.0/index.html")){ 15 | System.out.println("尚未登录,跳转到登录页面"); 16 | response.sendRedirect("materils_v2.0/index.html"); 17 | return false; 18 | } 19 | return true; 20 | } 21 | 22 | @Override 23 | public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { 24 | 25 | } 26 | 27 | @Override 28 | public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/example/util/RedisKeyUtil.java: -------------------------------------------------------------------------------- 1 | package com.example.util; 2 | 3 | /** 4 | * reidsKey设计 5 | */ 6 | public class RedisKeyUtil { 7 | /** 8 | * redis的key 9 | * 形式为: 10 | * 表名:主键名:主键值:列名 11 | * 12 | * @param tableName 表名 13 | * @param majorKey 主键名 14 | * @param majorKeyValue 主键值 15 | * @param column 列名 16 | * @return 17 | */ 18 | 19 | public static String getKeyWithColumn(String tableName,String majorKey,String majorKeyValue,String column){ 20 | StringBuffer buffer = new StringBuffer(); 21 | buffer.append(tableName).append(":"); 22 | buffer.append(majorKey).append(":"); 23 | buffer.append(majorKeyValue).append(":"); 24 | buffer.append(column); 25 | return buffer.toString(); 26 | } 27 | 28 | /** 29 | * redis的key 30 | * 形式为: 31 | * 表名:主键名:主键值 32 | * 33 | * @param tableName 表名 34 | * @param majorKey 主键名 35 | * @param majorKeyValue 主键值 36 | * @return 37 | */ 38 | public static String getKey(String tableName,String majorKey,String majorKeyValue){ 39 | StringBuffer buffer = new StringBuffer(); 40 | buffer.append(tableName).append(":"); 41 | buffer.append(majorKey).append(":"); 42 | buffer.append(majorKeyValue).append(":"); 43 | return buffer.toString(); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/example/mapper/NeedPlanMapper.java: -------------------------------------------------------------------------------- 1 | package com.example.mapper; 2 | 3 | import com.example.entity.needPlanManager.NeedPlan; 4 | import org.apache.ibatis.annotations.Insert; 5 | import org.apache.ibatis.annotations.Select; 6 | import org.apache.ibatis.annotations.Update; 7 | import org.springframework.stereotype.Repository; 8 | 9 | import java.util.List; 10 | 11 | @Repository 12 | public interface NeedPlanMapper { 13 | 14 | @Select("select * from tbl_needplan") 15 | List findAllNeedPlan(); 16 | 17 | @Select("select * from tbl_needplan where needPlanState = #{needPlanState}") 18 | List findNeedplanBystate(NeedPlan needPlan); 19 | 20 | @Insert("insert into tbl_needplan(materialNum,materialName,num,price,num_price,needPlanState,poster,remark)values(#{materialNum},#{materialName},#{num},#{price},#{num_price},#{needPlanState},#{poster},#{remark})") 21 | void addNeedplan(NeedPlan needPlan); 22 | 23 | @Update("update tbl_needplan set needPlanNum = #{needPlanNum} , rejectRemark= #{rejectRemark},buyer=#{buyer},needplanState = #{needPlanState} , poster =#{poster} where id = #{id} ") 24 | void submitNeedplan(NeedPlan needPlan); 25 | 26 | @Update("update tbl_needplan set materialName = #{materialName},materialNum = #{materialNum},num=#{num},price=#{price},num_price=#{num_price} where id =#{id}") 27 | void updateNeedPlan(NeedPlan needPlan); 28 | 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/example/mapper/MaterialMapper.java: -------------------------------------------------------------------------------- 1 | package com.example.mapper; 2 | 3 | import com.example.entity.materialManager.Materials; 4 | import org.apache.ibatis.annotations.Insert; 5 | import org.apache.ibatis.annotations.Select; 6 | import org.apache.ibatis.annotations.Update; 7 | import org.springframework.stereotype.Repository; 8 | 9 | import java.util.List; 10 | 11 | @Repository 12 | public interface MaterialMapper { 13 | 14 | @Select("select * from tbl_materials") 15 | public List findAllMaterials(); 16 | 17 | @Select("select * from tbl_materials where materialstate = '待审核'") 18 | public List findMaterials(); 19 | 20 | @Select("select * from tbl_materials where materialstate = '审批通过'") 21 | public List findPassMaterials(); 22 | 23 | @Insert("insert into tbl_materials(materialName,price,materialState,materialTypeName,poster,remark) values(#{materialName},#{price},#{materialState},#{materialTypeName},#{poster},#{remark})") 24 | public void addMaterials(Materials materials); 25 | 26 | @Update("update tbl_materials set materialName = #{materialName},price = #{price},materialTypeName = #{materialTypeName},remark=#{remark} where id = #{id}") 27 | public void updateMaterials(Materials materials); 28 | 29 | @Update("update tbl_materials set materialState = #{materialState},rejectRemark = #{rejectRemark},materialNum =#{materialNum} where id = #{id}") 30 | public void updateState(Materials materials); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/serviceImpl/DeptServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.service.serviceImpl; 2 | 3 | import com.example.entity.peopleManager.Dept; 4 | import com.example.entity.peopleManager.User; 5 | import com.example.mapper.DeptMapper; 6 | import com.example.service.DeptService; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.stereotype.Service; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @program: materils_v2.0 14 | * @description: 15 | * @author: aYuan 16 | * @create: 2019-08-18 11:05 17 | */ 18 | @Service 19 | public class DeptServiceImpl implements DeptService { 20 | 21 | @Autowired 22 | private DeptMapper deptMapper; 23 | 24 | @Override 25 | public boolean addDept(Dept dept) { 26 | try { 27 | deptMapper.addDept(dept); 28 | }catch (Exception e){ 29 | return false; 30 | } 31 | return true; 32 | } 33 | 34 | @Override 35 | public boolean updateDept(Dept dept) { 36 | try { 37 | deptMapper.updateDept(dept); 38 | }catch (Exception e){ 39 | return false; 40 | } 41 | return true; 42 | } 43 | 44 | @Override 45 | public List findAllDept() { 46 | return deptMapper.findAllDept(); 47 | } 48 | 49 | @Override 50 | public boolean deleteDept(String deptNum) { 51 | try { 52 | 53 | }catch (Exception e){ 54 | return false; 55 | } 56 | return true; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/serviceImpl/MaterialServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.service.serviceImpl; 2 | 3 | import com.example.entity.materialManager.Materials; 4 | import com.example.mapper.MaterialMapper; 5 | import com.example.service.MaterialService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @program: materils_v2.0 13 | * @description: 14 | * @author: aYuan 15 | * @create: 2019-08-21 18:14 16 | */ 17 | @Service 18 | public class MaterialServiceImpl implements MaterialService { 19 | 20 | @Autowired 21 | private MaterialMapper materialMapper; 22 | 23 | @Override 24 | public List findAllMaterials() { 25 | return materialMapper.findAllMaterials(); 26 | } 27 | 28 | @Override 29 | public List findMaterials(){ 30 | return materialMapper.findMaterials(); 31 | } 32 | 33 | @Override 34 | public void addMaterial(Materials materials) { 35 | materialMapper.addMaterials(materials); 36 | } 37 | 38 | @Override 39 | public void updateMaterial(Materials materials) { 40 | materialMapper.updateMaterials(materials); 41 | } 42 | 43 | @Override 44 | public void updateState(Materials materials) { 45 | materialMapper.updateState(materials); 46 | } 47 | 48 | @Override 49 | public List findPassMaterials() { 50 | return materialMapper.findPassMaterials(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/example/controller/LoginController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller; 2 | 3 | import com.example.entity.peopleManager.User; 4 | import com.example.result.Result; 5 | import com.example.result.ResultFactory; 6 | import com.example.service.serviceImpl.UserServiceImpl; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | import org.springframework.web.util.HtmlUtils; 10 | 11 | import javax.servlet.http.HttpSession; 12 | 13 | @RestController 14 | public class LoginController { 15 | 16 | @Autowired 17 | private UserServiceImpl userService; 18 | 19 | @CrossOrigin//支持跨域 20 | @PostMapping("/login") 21 | @ResponseBody 22 | public Result login(@RequestBody User requestUser,HttpSession session){ 23 | String jobNum = requestUser.getJobNum(); 24 | jobNum = HtmlUtils.htmlEscape(jobNum);//将数据转义 25 | User user = userService.selectUserByJobNum(jobNum); 26 | if(null == user){ 27 | String message = "工号&密码错误!"; 28 | System.out.println(message); 29 | return ResultFactory.bulidFailResult(message); 30 | 31 | }else { 32 | session.setAttribute("user",user); 33 | return ResultFactory.bulidSuccessResult(user); 34 | } 35 | 36 | } 37 | 38 | @CrossOrigin 39 | @PostMapping("/logout") 40 | @ResponseBody 41 | public Result logout(HttpSession httpSession){ 42 | httpSession.removeAttribute("user"); 43 | return ResultFactory.bulidSuccessResult("请重新登录"); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/serviceImpl/NeedPlanServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.service.serviceImpl; 2 | 3 | import com.example.entity.needPlanManager.NeedPlan; 4 | import com.example.entity.peopleManager.User; 5 | import com.example.mapper.NeedPlanMapper; 6 | import com.example.mapper.UserMapper; 7 | import com.example.service.NeedPlanService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @program: materils_v2.0 15 | * @description: 16 | * @author: aYuan 17 | * @create: 2019-08-22 09:53 18 | */ 19 | @Service 20 | public class NeedPlanServiceImpl implements NeedPlanService { 21 | 22 | @Autowired 23 | private NeedPlanMapper needPlanMapper; 24 | 25 | @Autowired 26 | private UserMapper userMapper; 27 | 28 | @Override 29 | public List findAllNeedPlan() { 30 | return needPlanMapper.findAllNeedPlan(); 31 | } 32 | 33 | @Override 34 | public void addNeedplan(NeedPlan needPlan) { 35 | needPlanMapper.addNeedplan(needPlan); 36 | } 37 | 38 | @Override 39 | public void updateNeedplan(NeedPlan needPlan) { 40 | needPlanMapper.updateNeedPlan(needPlan); 41 | } 42 | 43 | @Override 44 | public void submitNeedplan(NeedPlan needPlan) { 45 | needPlanMapper.submitNeedplan(needPlan); 46 | } 47 | 48 | @Override 49 | public List findNeedplanBystate(NeedPlan needPlan) { 50 | return needPlanMapper.findNeedplanBystate(needPlan); 51 | } 52 | 53 | @Override 54 | public List getAllPruchase() { 55 | return userMapper.getAllPruchase(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/example/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.example.mapper; 2 | 3 | import com.example.entity.peopleManager.User; 4 | import org.apache.ibatis.annotations.*; 5 | import org.springframework.stereotype.Repository; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | 10 | @Mapper 11 | @Repository 12 | public interface UserMapper { 13 | 14 | //登录,根据工号查找user 15 | @Select("SELECT * FROM tbl_user WHERE jobNum = #{jobNum}") 16 | User findUserByJobNum(@Param("jobNum") String jobNum); 17 | 18 | //获取所有用户 19 | @Select("SELECT * FROM tbl_user") 20 | List findAllUser(); 21 | 22 | //新增用户 23 | @Insert("INSERT INTO tbl_user(id,jobNum,passWord,userName,userTel,userSex,deptNum,deptName,job) VALUES (#{id},#{jobNum},#{passWord},#{userName},#{userTel},#{userSex},#{deptNum},#{deptName},#{job})") 24 | void addUser(User user); 25 | 26 | //修改一个用户 27 | @Update("UPDATE tbl_user SET passWord = #{passWord}, userName=#{userName}, userTel=#{userTel}, userSex=#{userSex}, deptName =#{deptName} WHERE jobNum = #{jobNum} ") 28 | void updateUser(User user); 29 | 30 | //删除一个用户 31 | @Delete("DELETE FROM tbl_user WHERE jobNum = #{jobNum}") 32 | void deleteUser(@Param("jobNum") String jobNum); 33 | 34 | @Update("UPDATE tbl_user SET job = #{job} WHERE jobNum = #{jobNum}") 35 | void updateJob(User user); 36 | 37 | @Select("SELECT * FROM tbl_user WHERE job = '2' AND deptNum = #{deptNum}") 38 | User selectUserByDept(String deptNum); 39 | 40 | @Select("SELECT * FROM tbl_user WHERE userName = #{userName}") 41 | User selectUserByName(String userName); 42 | 43 | @Select("Select * from tbl_user where job = '3' and deptName = '采购部'") 44 | List getAllPruchase(); 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/example/entity/peopleManager/Dept.java: -------------------------------------------------------------------------------- 1 | package com.example.entity.peopleManager; 2 | 3 | public class Dept { 4 | 5 | private Integer id; 6 | 7 | private String deptNum; 8 | 9 | private String deptName; 10 | 11 | private String jobNum; 12 | 13 | private String deptAdmin; 14 | 15 | public Dept() { 16 | } 17 | 18 | public Dept(Integer id, String deptNum, String deptName, String jobNum, String deptAdmin) { 19 | this.id = id; 20 | this.deptNum = deptNum; 21 | this.deptName = deptName; 22 | this.jobNum = jobNum; 23 | this.deptAdmin = deptAdmin; 24 | } 25 | 26 | @Override 27 | public String toString() { 28 | return "Dept{" + 29 | "id=" + id + 30 | ", deptNum='" + deptNum + '\'' + 31 | ", deptName='" + deptName + '\'' + 32 | ", jobNum='" + jobNum + '\'' + 33 | ", deptAdmin='" + deptAdmin + '\'' + 34 | '}'; 35 | } 36 | 37 | public Integer getId() { 38 | return id; 39 | } 40 | 41 | public void setId(Integer id) { 42 | this.id = id; 43 | } 44 | 45 | public String getDeptNum() { 46 | return deptNum; 47 | } 48 | 49 | public void setDeptNum(String deptNum) { 50 | this.deptNum = deptNum; 51 | } 52 | 53 | public String getDeptName() { 54 | return deptName; 55 | } 56 | 57 | public void setDeptName(String deptName) { 58 | this.deptName = deptName; 59 | } 60 | 61 | public String getJobNum() { 62 | return jobNum; 63 | } 64 | 65 | public void setJobNum(String jobNum) { 66 | this.jobNum = jobNum; 67 | } 68 | 69 | public String getDeptAdmin() { 70 | return deptAdmin; 71 | } 72 | 73 | public void setDeptAdmin(String deptAdmin) { 74 | this.deptAdmin = deptAdmin; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/com/example/entity/peopleManager/Job.java: -------------------------------------------------------------------------------- 1 | package com.example.entity.peopleManager; 2 | 3 | /** 4 | * @program: materils_v2.0 5 | * @description: 职位表tbl_job 6 | * @author: aYuan 7 | * @create: 2019-08-20 08:15 8 | */ 9 | public class Job { 10 | 11 | private Integer id; 12 | 13 | private String jobNum; 14 | 15 | private String jobName; 16 | 17 | private String jobLev; 18 | 19 | private String deptNum; 20 | 21 | private String deptName; 22 | 23 | public Job() { 24 | } 25 | 26 | public Job(Integer id, String jobNum, String jobName, String jobLev, String deptNum, String deptName) { 27 | this.id = id; 28 | this.jobNum = jobNum; 29 | this.jobName = jobName; 30 | this.jobLev = jobLev; 31 | this.deptNum = deptNum; 32 | this.deptName = deptName; 33 | } 34 | 35 | @Override 36 | public String toString() { 37 | return "Job{" + 38 | "id=" + id + 39 | ", jobNum='" + jobNum + '\'' + 40 | ", jobName='" + jobName + '\'' + 41 | ", jobLev='" + jobLev + '\'' + 42 | ", deptNum='" + deptNum + '\'' + 43 | ", deptName='" + deptName + '\'' + 44 | '}'; 45 | } 46 | 47 | public Integer getId() { 48 | return id; 49 | } 50 | 51 | public void setId(Integer id) { 52 | this.id = id; 53 | } 54 | 55 | public String getJobNum() { 56 | return jobNum; 57 | } 58 | 59 | public void setJobNum(String jobNum) { 60 | this.jobNum = jobNum; 61 | } 62 | 63 | public String getJobName() { 64 | return jobName; 65 | } 66 | 67 | public void setJobName(String jobName) { 68 | this.jobName = jobName; 69 | } 70 | 71 | public String getJobLev() { 72 | return jobLev; 73 | } 74 | 75 | public void setJobLev(String jobLev) { 76 | this.jobLev = jobLev; 77 | } 78 | 79 | public String getDeptNum() { 80 | return deptNum; 81 | } 82 | 83 | public void setDeptNum(String deptNum) { 84 | this.deptNum = deptNum; 85 | } 86 | 87 | public String getDeptName() { 88 | return deptName; 89 | } 90 | 91 | public void setDeptName(String deptName) { 92 | this.deptName = deptName; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /src/main/java/com/example/controller/peopleManager/UserController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller.peopleManager; 2 | 3 | import com.example.entity.peopleManager.User; 4 | import com.example.result.Result; 5 | import com.example.result.ResultFactory; 6 | import com.example.service.serviceImpl.UserServiceImpl; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | import javax.servlet.http.HttpSession; 11 | import java.util.List; 12 | 13 | /** 14 | * @program: materils_v2.0 15 | * @description: 16 | * @author: aYuan 17 | * @create: 2019-08-17 12:37 18 | */ 19 | @RestController 20 | public class UserController { 21 | 22 | @Autowired 23 | private UserServiceImpl userService; 24 | 25 | @CrossOrigin 26 | @GetMapping("/user") 27 | @ResponseBody 28 | public List getAllUser(HttpSession httpSession){ 29 | 30 | //System.out.println(httpSession.getAttribute("user").toString()); 31 | return userService.findAllUser(); 32 | } 33 | 34 | @CrossOrigin 35 | @PostMapping("/user") 36 | @ResponseBody 37 | public Result addUser(@RequestBody User requestUser){ 38 | boolean flag = userService.addUser(requestUser); 39 | if(flag){ 40 | return ResultFactory.bulidSuccessResult(requestUser); 41 | }else { 42 | return ResultFactory.bulidFailResult("添加失败"); 43 | } 44 | 45 | } 46 | 47 | @CrossOrigin 48 | @PutMapping("/user") 49 | @ResponseBody 50 | public Result updateUser(@RequestBody User requestUser){ 51 | boolean flag = userService.updateUser(requestUser); 52 | if(flag){ 53 | return ResultFactory.bulidSuccessResult(requestUser); 54 | }else { 55 | return ResultFactory.bulidFailResult("添加失败"); 56 | } 57 | } 58 | 59 | //get和delete方式不支持@RequestBody!!! 60 | @CrossOrigin 61 | @DeleteMapping("/user") 62 | @ResponseBody 63 | public Result deleteUser(@RequestBody User user){ 64 | System.out.println(user.getJobNum()); 65 | boolean flag = userService.deleteUser(user.getJobNum()); 66 | 67 | if(flag){ 68 | return ResultFactory.bulidSuccessResult("success"); 69 | }else { 70 | return ResultFactory.bulidFailResult("添加失败"); 71 | } 72 | } 73 | 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/redisService/RedisService.java: -------------------------------------------------------------------------------- 1 | package com.example.service.redisService; 2 | 3 | import javafx.print.Collation; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.data.redis.core.RedisTemplate; 6 | import org.springframework.stereotype.Component; 7 | 8 | import java.util.Collection; 9 | import java.util.Date; 10 | import java.util.Set; 11 | import java.util.concurrent.TimeUnit; 12 | import java.util.stream.Collectors; 13 | import java.util.stream.Stream; 14 | 15 | @Component//注入容器 16 | public class RedisService { 17 | 18 | @Autowired 19 | private RedisTemplate redisTemplate; 20 | 21 | //默认过期时长,秒 22 | public static final long DEFAULT_EXPIRE = 60 * 60 * 24; 23 | 24 | //不设置过期时长 25 | public static final long NOT_EXPIRE = -1; 26 | 27 | public boolean existsKey(String key){ 28 | return redisTemplate.hasKey(key); 29 | } 30 | /** 31 | * 32 | * 重命名key,如果已存在,直接覆盖 33 | *@Description: 34 | *@Param: oldKey,newKey 35 | *@Author: aYuan 36 | */ 37 | public void renameKey(String oldKey,String newkey){ 38 | redisTemplate.rename(oldKey,newkey); 39 | } 40 | 41 | /** 42 | newkey不存在时才重命名 43 | */ 44 | public boolean renameKeyNotExist(String oldKey,String newKey){ 45 | return redisTemplate.renameIfAbsent(oldKey,newKey); 46 | } 47 | 48 | public void deleteKey(String key){ 49 | redisTemplate.delete(key); 50 | } 51 | 52 | public void deleteKey(String... keys){ 53 | Set kSet = Stream.of(keys).map(k -> k).collect(Collectors.toSet()); 54 | redisTemplate.delete(kSet); 55 | } 56 | 57 | public void deletKey(Collection keys){ 58 | Set kSet = keys.stream().map(k -> k).collect(Collectors.toSet()); 59 | redisTemplate.delete(keys); 60 | } 61 | 62 | /** 63 | 设置key 的生命周期 64 | */ 65 | public void expireKey(String key, long time, TimeUnit timeUnit){ 66 | redisTemplate.expire(key,time,timeUnit); 67 | } 68 | 69 | /** 70 | 指定Key的过期时间 71 | */ 72 | public void expireKeyAt(String key, Date date){ 73 | redisTemplate.expireAt(key, date); 74 | } 75 | 76 | 77 | /** 78 | 查询key的生命周期 79 | *@Author: aYuan 80 | *@date: 81 | */ 82 | public long getKeyExpire(String key,TimeUnit timeUnit){ 83 | return redisTemplate.getExpire(key,timeUnit); 84 | } 85 | 86 | /** 87 | 将key设置为永久有效 88 | */ 89 | public void presistKey(String key){ 90 | redisTemplate.persist(key); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/main/java/com/example/controller/peopleManager/DeptController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller.peopleManager; 2 | 3 | import com.example.entity.peopleManager.Dept; 4 | import com.example.entity.peopleManager.User; 5 | import com.example.result.Result; 6 | import com.example.result.ResultFactory; 7 | import com.example.service.serviceImpl.DeptServiceImpl; 8 | import com.example.service.serviceImpl.UserServiceImpl; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.web.bind.annotation.*; 11 | 12 | import java.util.List; 13 | 14 | 15 | /** 16 | * @program: materils_v2.0 17 | * @description: 部门管理页面 18 | * @author: aYuan 19 | * @create: 2019-08-18 11:09 20 | */ 21 | @RestController 22 | public class DeptController { 23 | 24 | 25 | @Autowired 26 | private DeptServiceImpl deptService; 27 | 28 | @Autowired 29 | private UserServiceImpl userService; 30 | 31 | @CrossOrigin 32 | @GetMapping("/dept") 33 | @ResponseBody 34 | public Result findAllDept(){ 35 | List deptList = deptService.findAllDept(); 36 | return ResultFactory.bulidSuccessResult(deptList); 37 | } 38 | 39 | @CrossOrigin 40 | @DeleteMapping("/dept") 41 | @ResponseBody 42 | public Result deleteDept(@PathVariable String deptNum){ 43 | return ResultFactory.bulidSuccessResult(""); 44 | } 45 | 46 | @CrossOrigin 47 | @PutMapping("/dept") 48 | @ResponseBody 49 | public Result updateDept(@RequestBody Dept dept){//修改部门负责人时,用户表的职位字段也需要变化 50 | System.out.println(dept.toString()); 51 | 52 | User oldUser = userService.selectUserByDept(dept.getDeptNum()); 53 | System.out.println(oldUser.toString()+"before"); 54 | oldUser.setJob("3"); 55 | userService.updateJob(oldUser); 56 | System.out.println(oldUser.toString()+"after"); 57 | // User oldUser = userService.selectUserByDept(dept.getDeptNum()); 58 | // System.out.println(oldUser.toString()); 59 | // oldUser.setJob("3"); 60 | // oldUser.setDeptNum(dept.getDeptNum()); 61 | // userService.updateJob(oldUser); 62 | User newUser = userService.selectUserByName(dept.getDeptAdmin()); 63 | newUser.setJob("2"); 64 | dept.setJobNum(newUser.getJobNum()); 65 | System.out.println(newUser.toString()+"defore"); 66 | userService.updateJob(newUser); 67 | System.out.println(newUser.toString()+"after"); 68 | // System.out.println("oldUser"+oldUser.toString()); 69 | // System.out.println("newUser"+newUser.toString()); 70 | deptService.updateDept(dept); 71 | return ResultFactory.bulidSuccessResult(""); 72 | } 73 | 74 | public Result addDept(){//新增部门时,不选择部门负责人 75 | return ResultFactory.bulidSuccessResult(""); 76 | } 77 | 78 | } 79 | -------------------------------------------------------------------------------- /src/main/java/com/example/controller/materialsManager/MaterialsController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller.materialsManager; 2 | 3 | import com.example.entity.materialManager.Materials; 4 | import com.example.result.Result; 5 | import com.example.result.ResultFactory; 6 | import com.example.service.serviceImpl.MaterialServiceImpl; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.context.annotation.Configuration; 9 | import org.springframework.web.bind.annotation.*; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @program: materils_v2.0 15 | * @description: 16 | * @author: aYuan 17 | * @create: 2019-08-21 18:17 18 | */ 19 | @RestController 20 | public class MaterialsController { 21 | 22 | @Autowired 23 | private MaterialServiceImpl materialService; 24 | 25 | @CrossOrigin 26 | @GetMapping("/materials") 27 | @ResponseBody 28 | public List getAllMaterials(){ 29 | return materialService.findAllMaterials(); 30 | } 31 | 32 | @CrossOrigin 33 | @PostMapping("/materials") 34 | @ResponseBody 35 | public Result addMaterials(@RequestBody Materials materials){ 36 | materials.setMaterialState("未提交"); 37 | materialService.addMaterial(materials); 38 | return ResultFactory.bulidSuccessResult("添加成功"); 39 | } 40 | 41 | @CrossOrigin 42 | @PutMapping("/materials") 43 | @ResponseBody 44 | public Result updateMaterials(@RequestBody Materials materials){ 45 | materialService.updateMaterial(materials); 46 | return ResultFactory.bulidSuccessResult("修改成功"); 47 | } 48 | 49 | @CrossOrigin 50 | @GetMapping("/waitMaterials") 51 | @ResponseBody 52 | public List getwaitMaterials(){ 53 | return materialService.findMaterials(); 54 | } 55 | 56 | @CrossOrigin 57 | @PutMapping("/materialState") 58 | @ResponseBody 59 | public Result updateState(@RequestBody Materials materials){ 60 | String materialNum = "pn-"+materials.getId(); 61 | if(materials.getMaterialState().equals("未提交")||materials.getMaterialState().equals("驳回")){ 62 | materials.setMaterialState("待审核"); 63 | materialService.updateState(materials); 64 | }else if(materials.getMaterialState().equals("待审核")&&materials.getRejectRemark()==null){ 65 | materials.setMaterialState("审批通过"); 66 | materials.setMaterialNum(materialNum); 67 | }else { 68 | materials.setMaterialState("驳回"); 69 | } 70 | materialService.updateState(materials); 71 | System.out.println(materials.toString()); 72 | return ResultFactory.bulidSuccessResult("success"); 73 | } 74 | 75 | @CrossOrigin 76 | @GetMapping("/passMaterials") 77 | @ResponseBody 78 | public List getPassMaterials(){ 79 | 80 | return materialService.findPassMaterials(); 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/main/java/com/example/service/serviceImpl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.service.serviceImpl; 2 | 3 | import com.example.entity.peopleManager.User; 4 | import com.example.mapper.UserMapper; 5 | import com.example.service.UserService; 6 | import com.example.service.redisService.RedisService; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.data.redis.core.ListOperations; 9 | import org.springframework.data.redis.core.RedisTemplate; 10 | import org.springframework.stereotype.Service; 11 | 12 | import java.util.List; 13 | 14 | @Service 15 | public class UserServiceImpl implements UserService { 16 | 17 | @Autowired 18 | private UserMapper userMapper; 19 | 20 | @Autowired 21 | private RedisTemplate redisTemplate; 22 | 23 | @Autowired 24 | private ListOperations listOperations; 25 | 26 | @Autowired 27 | private RedisService redisService; 28 | 29 | @Override 30 | public User selectUserByJobNum(String jobNum) { 31 | return userMapper.findUserByJobNum(jobNum); 32 | } 33 | 34 | @Override 35 | public List findAllUser() { 36 | 37 | return userMapper.findAllUser(); 38 | // String key = "userList"; 39 | // 40 | // boolean hashKey = redisTemplate.hasKey(key); 41 | // if(hashKey){ 42 | // System.out.println("查询到缓存"); 43 | // listOperations = redisTemplate.opsForList(); 44 | // List list = listOperations.range(key,0,-1); 45 | // return list; 46 | // } 47 | // 48 | // List list; 49 | // 50 | // list = userMapper.findAllUser(); 51 | // if(list != null){ 52 | // System.out.println("插入缓存"); 53 | // listOperations.rightPushAll(key,list,30,TimeUnit.SECONDS); 54 | // 55 | // } 56 | //// listOperations.leftPush("user",) 57 | // return list; 58 | } 59 | 60 | @Override 61 | public boolean addUser(User user){ 62 | try { 63 | userMapper.addUser(user); 64 | }catch (Exception e){ 65 | return false; 66 | } 67 | return true; 68 | } 69 | 70 | @Override 71 | public boolean updateUser(User user) { 72 | try { 73 | userMapper.updateUser(user); 74 | }catch (Exception e){ 75 | return false; 76 | } 77 | return true; 78 | } 79 | 80 | @Override 81 | public boolean deleteUser(String jobNum) { 82 | try { 83 | userMapper.deleteUser(jobNum); 84 | }catch (Exception e){ 85 | return false; 86 | } 87 | return true; 88 | } 89 | 90 | @Override 91 | public void updateJob(User user) { 92 | userMapper.updateJob(user); 93 | } 94 | 95 | @Override 96 | public User selectUserByDept(String deptNum) { 97 | return userMapper.selectUserByDept(deptNum); 98 | } 99 | 100 | @Override 101 | public User selectUserByName(String userName) { 102 | return userMapper.selectUserByName(userName); 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /src/main/java/com/example/entity/peopleManager/User.java: -------------------------------------------------------------------------------- 1 | package com.example.entity.peopleManager; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | 5 | import java.util.UUID; 6 | 7 | public class User { 8 | 9 | private Integer id; 10 | 11 | private String jobNum; 12 | 13 | private String passWord; 14 | 15 | private String userName; 16 | 17 | private String userTel; 18 | 19 | private String userSex; 20 | 21 | private String deptNum; 22 | 23 | private String deptName; 24 | 25 | private String job; 26 | 27 | public User() { 28 | } 29 | 30 | public User(Integer id, String jobNum, String passWord, String userName, String userTel, String userSex, String deptNum, String deptName, String job) { 31 | this.id = id; 32 | this.jobNum = jobNum; 33 | this.passWord = passWord; 34 | this.userName = userName; 35 | this.userTel = userTel; 36 | this.userSex = userSex; 37 | this.deptNum = deptNum; 38 | this.deptName = deptName; 39 | this.job = job; 40 | } 41 | 42 | @Override 43 | public String toString() { 44 | return "User{" + 45 | "id=" + id + 46 | ", jobNum='" + jobNum + '\'' + 47 | ", passWord='" + passWord + '\'' + 48 | ", userName='" + userName + '\'' + 49 | ", userTel='" + userTel + '\'' + 50 | ", userSex='" + userSex + '\'' + 51 | ", deptNum='" + deptNum + '\'' + 52 | ", deptName='" + deptName + '\'' + 53 | ", job='" + job + '\'' + 54 | '}'; 55 | } 56 | 57 | public Integer getId() { 58 | return id; 59 | } 60 | 61 | public void setId(Integer id) { 62 | this.id = id; 63 | } 64 | 65 | public String getJobNum() { 66 | return jobNum; 67 | } 68 | 69 | public void setJobNum(String jobNum) { 70 | this.jobNum = jobNum; 71 | } 72 | 73 | public String getPassWord() { 74 | return passWord; 75 | } 76 | 77 | public void setPassWord(String passWord) { 78 | this.passWord = passWord; 79 | } 80 | 81 | public String getUserName() { 82 | return userName; 83 | } 84 | 85 | public void setUserName(String userName) { 86 | this.userName = userName; 87 | } 88 | 89 | public String getUserTel() { 90 | return userTel; 91 | } 92 | 93 | public void setUserTel(String userTel) { 94 | this.userTel = userTel; 95 | } 96 | 97 | public String getUserSex() { 98 | return userSex; 99 | } 100 | 101 | public void setUserSex(String userSex) { 102 | this.userSex = userSex; 103 | } 104 | 105 | public String getDeptNum() { 106 | return deptNum; 107 | } 108 | 109 | public void setDeptNum(String deptNum) { 110 | this.deptNum = deptNum; 111 | } 112 | 113 | public String getDeptName() { 114 | return deptName; 115 | } 116 | 117 | public void setDeptName(String deptName) { 118 | this.deptName = deptName; 119 | } 120 | 121 | public String getJob() { 122 | return job; 123 | } 124 | 125 | public void setJob(String job) { 126 | this.job = job; 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /src/main/java/com/example/controller/needplanController/NeedPLanController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller.needplanController; 2 | 3 | import com.example.entity.needPlanManager.NeedPlan; 4 | import com.example.entity.peopleManager.User; 5 | import com.example.result.Result; 6 | import com.example.result.ResultFactory; 7 | import com.example.service.NeedPlanService; 8 | import com.example.service.serviceImpl.NeedPlanServiceImpl; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.web.bind.annotation.*; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * @program: materils_v2.0 16 | * @description: 17 | * @author: aYuan 18 | * @create: 2019-08-22 09:55 19 | */ 20 | @RestController 21 | public class NeedPLanController { 22 | 23 | @Autowired 24 | private NeedPlanServiceImpl needPlanService; 25 | 26 | @CrossOrigin 27 | @GetMapping("/needplans") 28 | @ResponseBody 29 | public List getNeedPlan(){ 30 | return needPlanService.findAllNeedPlan(); 31 | } 32 | 33 | @CrossOrigin 34 | @GetMapping("/passNeedplans") 35 | @ResponseBody 36 | public List getPassNeedplans(){ 37 | NeedPlan needPlan = new NeedPlan(); 38 | needPlan.setNeedPlanState("待审核"); 39 | return needPlanService.findNeedplanBystate(needPlan); 40 | } 41 | 42 | 43 | @CrossOrigin 44 | @PostMapping("/needplans") 45 | @ResponseBody 46 | public Result addNeedPlan(@RequestBody NeedPlan needPlan){ 47 | needPlan.setNeedPlanState("未提交"); 48 | needPlan.setNum_price(); 49 | needPlanService.addNeedplan(needPlan); 50 | return ResultFactory.bulidSuccessResult("添加成功"); 51 | } 52 | 53 | @CrossOrigin 54 | @PutMapping("/needplanState") 55 | @ResponseBody 56 | public Result submitNeedplan(@RequestBody NeedPlan needPlan){ 57 | 58 | System.out.println(needPlan.toString()); 59 | if (needPlan.getNeedPlanState().equals("未提交")){ 60 | needPlan.setNeedPlanState("待审核"); 61 | }else if(needPlan.getNeedPlanState().equals("待审核")&&needPlan.getRejectRemark()==null){ 62 | needPlan.setNeedPlanState("审批通过"); 63 | needPlan.setNeedPlanNum("plan-"+needPlan.getId()); 64 | }else if(needPlan.getNeedPlanState().equals("待审核")&&needPlan.getRejectRemark()!=null){ 65 | needPlan.setNeedPlanState("驳回"); 66 | }else if(needPlan.getNeedPlanState().equals("审批通过")){ 67 | needPlan.setNeedPlanState("请购中"); 68 | }else if(needPlan.getNeedPlanState().equals("请购中")){ 69 | needPlan.setNeedPlanState("请购通过"); 70 | } 71 | needPlanService.submitNeedplan(needPlan); 72 | 73 | return ResultFactory.bulidSuccessResult("提交成功"); 74 | } 75 | 76 | @CrossOrigin 77 | @PutMapping("/needplans") 78 | @ResponseBody 79 | public Result updateNeedplan(@RequestBody NeedPlan needPlan){ 80 | 81 | System.out.println(needPlan.toString()); 82 | needPlan.setNum_price(needPlan.getPrice()*needPlan.getNum()); 83 | needPlanService.updateNeedplan(needPlan); 84 | 85 | return ResultFactory.bulidSuccessResult("提交成功"); 86 | } 87 | 88 | @CrossOrigin 89 | @GetMapping("/pruchase") 90 | @ResponseBody 91 | public List getAllPruchase(){ 92 | return needPlanService.getAllPruchase(); 93 | } 94 | @CrossOrigin 95 | @GetMapping("/pruchaseNeedplan") 96 | @ResponseBody 97 | public List getPruchaseNeedplan(){ 98 | NeedPlan needPlan = new NeedPlan(); 99 | needPlan.setNeedPlanState("审批通过"); 100 | return needPlanService.findNeedplanBystate(needPlan); 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src/main/java/com/example/config/RedisConfig.java: -------------------------------------------------------------------------------- 1 | package com.example.config; 2 | 3 | 4 | import com.fasterxml.jackson.annotation.JacksonAnnotation; 5 | import com.fasterxml.jackson.annotation.JsonAutoDetect; 6 | import com.fasterxml.jackson.annotation.PropertyAccessor; 7 | import com.fasterxml.jackson.databind.ObjectMapper; 8 | import org.springframework.cache.CacheManager; 9 | import org.springframework.cache.annotation.CachingConfigurerSupport; 10 | import org.springframework.cache.annotation.EnableCaching; 11 | import org.springframework.context.annotation.Bean; 12 | import org.springframework.context.annotation.Configuration; 13 | import org.springframework.data.redis.cache.RedisCacheManager; 14 | import org.springframework.data.redis.connection.RedisConnectionFactory; 15 | import org.springframework.data.redis.core.*; 16 | import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; 17 | import org.springframework.data.redis.serializer.StringRedisSerializer; 18 | 19 | /** 20 | * @program: materils_v2.0 21 | * @description: 22 | * @author: aYuan 23 | * @create: 2019-08-17 12:26 24 | */ 25 | @EnableCaching 26 | @Configuration 27 | public class RedisConfig extends CachingConfigurerSupport { 28 | 29 | /** 30 | *选择redis作为默认缓存工具 31 | *@Author: aYuan 32 | */ 33 | @Bean 34 | public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { 35 | RedisCacheManager redisCacheManager =RedisCacheManager.create(redisConnectionFactory); 36 | return redisCacheManager; 37 | } 38 | /* 39 | retemplaate相关配置 40 | */ 41 | @Bean 42 | public RedisTemplate redisTemplate(RedisConnectionFactory factory){ 43 | RedisTemplate template = new RedisTemplate<>(); 44 | //配置连接工厂 45 | template.setConnectionFactory(factory); 46 | 47 | //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式) 48 | Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); 49 | 50 | ObjectMapper objectMapper = new ObjectMapper(); 51 | //指定要序列化的域,field,get,set以及修饰范围,any是都有包括private和public 52 | objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); 53 | 54 | //指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer会报异常 55 | objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 56 | jackson2JsonRedisSerializer.setObjectMapper(objectMapper); 57 | 58 | //值采用json序列化 59 | template.setValueSerializer(jackson2JsonRedisSerializer); 60 | //使用StringRedisSerializer来序列化和反序列话redis的key值 61 | template.setKeySerializer(new StringRedisSerializer()); 62 | 63 | //设置hash key和vlue序列化模式 64 | template.setHashKeySerializer(new StringRedisSerializer()); 65 | template.setHashValueSerializer(jackson2JsonRedisSerializer); 66 | template.afterPropertiesSet(); 67 | 68 | return template; 69 | 70 | } 71 | 72 | //对hash类型的数据操作 73 | @Bean 74 | public HashOperations hashOperations(RedisTemplate redisTemplate){ 75 | return redisTemplate.opsForHash(); 76 | } 77 | 78 | //对redis字符串数据操作 79 | @Bean 80 | public ValueOperations valueOperations(RedisTemplate redisTemplate){ 81 | return redisTemplate.opsForValue(); 82 | } 83 | 84 | //对链表类型进行操作 85 | @Bean 86 | public ListOperations listOperations(RedisTemplate redisTemplate){ 87 | return redisTemplate.opsForList(); 88 | } 89 | 90 | //对无序集合类型的数据操作 91 | @Bean 92 | public SetOperations stringObjectSetOperations(RedisTemplate redisTemplate){ 93 | return redisTemplate.opsForSet(); 94 | } 95 | 96 | //对有序集合类型数据操作 97 | @Bean 98 | public ZSetOperations zSetOperations(RedisTemplate redisTemplate){ 99 | return redisTemplate.opsForZSet(); 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.1.7.RELEASE 9 | 10 | 11 | com.example 12 | materils 13 | 0.0.1-SNAPSHOT 14 | war 15 | materils 16 | Demo project for Spring Boot 17 | 18 | 19 | 1.8 20 | 21 | 22 | 23 | 24 | 25 | 26 | org.springframework.boot 27 | spring-boot-starter-tomcat 28 | provided 29 | 30 | 31 | org.apache.tomcat.embed 32 | tomcat-embed-jasper 33 | provided 34 | 35 | 41 | 42 | 43 | 44 | org.springframework.boot 45 | spring-boot-starter-data-redis 46 | 47 | 48 | org.springframework.boot 49 | spring-boot-starter-jdbc 50 | 51 | 52 | org.springframework.boot 53 | spring-boot-starter-thymeleaf 54 | 55 | 56 | org.springframework.boot 57 | spring-boot-starter-web 58 | 59 | 60 | 61 | 62 | org.springframework.boot 63 | spring-boot-starter-tomcat 64 | 65 | 66 | 67 | 68 | 69 | org.mybatis.spring.boot 70 | mybatis-spring-boot-starter 71 | 2.1.0 72 | 73 | 74 | 75 | org.springframework.boot 76 | spring-boot-devtools 77 | runtime 78 | true 79 | 80 | 81 | mysql 82 | mysql-connector-java 83 | 84 | 85 | 86 | org.springframework.boot 87 | spring-boot-starter-test 88 | test 89 | 90 | 91 | org.springframework.boot 92 | spring-boot-starter-thymeleaf 93 | 94 | 95 | 96 | 97 | 98 | 99 | materils_v2.0 100 | 101 | 102 | org.springframework.boot 103 | spring-boot-maven-plugin 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /src/main/java/com/example/entity/materialManager/Materials.java: -------------------------------------------------------------------------------- 1 | package com.example.entity.materialManager; 2 | 3 | /** 4 | * @program: materils_v2.0 5 | * @description: tbl_material表 6 | * @author: aYuan 7 | * @create: 2019-08-20 09:12 8 | */ 9 | public class Materials { 10 | 11 | private Integer id; 12 | private String materialNum; 13 | private String materialName; 14 | private String materialPostTime; 15 | private String materialPassTime; 16 | private Integer price; 17 | private String materialState; 18 | private String materialTypeNum; 19 | private String materialTypeName; 20 | private String poster; 21 | private String rejectRemark; 22 | private String remark; 23 | 24 | @Override 25 | public String toString() { 26 | return "Materials{" + 27 | "id=" + id + 28 | ", materialNum='" + materialNum + '\'' + 29 | ", materialName='" + materialName + '\'' + 30 | ", materialPostTime='" + materialPostTime + '\'' + 31 | ", materialPassTime='" + materialPassTime + '\'' + 32 | ", price=" + price + 33 | ", materialState='" + materialState + '\'' + 34 | ", materialTypeNum='" + materialTypeNum + '\'' + 35 | ", materialTypeName='" + materialTypeName + '\'' + 36 | ", poster='" + poster + '\'' + 37 | ", rejectRemark='" + rejectRemark + '\'' + 38 | ", remark='" + remark + '\'' + 39 | '}'; 40 | } 41 | 42 | public Integer getId() { 43 | return id; 44 | } 45 | 46 | public void setId(Integer id) { 47 | this.id = id; 48 | } 49 | 50 | public String getMaterialNum() { 51 | return materialNum; 52 | } 53 | 54 | public void setMaterialNum(String materialNum) { 55 | this.materialNum = materialNum; 56 | } 57 | 58 | public String getMaterialName() { 59 | return materialName; 60 | } 61 | 62 | public void setMaterialName(String materialName) { 63 | this.materialName = materialName; 64 | } 65 | 66 | public String getMaterialPostTime() { 67 | return materialPostTime; 68 | } 69 | 70 | public void setMaterialPostTime(String materialPostTime) { 71 | this.materialPostTime = materialPostTime; 72 | } 73 | 74 | public String getMaterialPassTime() { 75 | return materialPassTime; 76 | } 77 | 78 | public void setMaterialPassTime(String materialPassTime) { 79 | this.materialPassTime = materialPassTime; 80 | } 81 | 82 | public Integer getPrice() { 83 | return price; 84 | } 85 | 86 | public void setPrice(Integer price) { 87 | this.price = price; 88 | } 89 | 90 | public String getMaterialState() { 91 | return materialState; 92 | } 93 | 94 | public void setMaterialState(String materialState) { 95 | this.materialState = materialState; 96 | } 97 | 98 | public String getMaterialTypeNum() { 99 | return materialTypeNum; 100 | } 101 | 102 | public void setMaterialTypeNum(String materialTypeNum) { 103 | this.materialTypeNum = materialTypeNum; 104 | } 105 | 106 | public String getMaterialTypeName() { 107 | return materialTypeName; 108 | } 109 | 110 | public void setMaterialTypeName(String materialTypeName) { 111 | this.materialTypeName = materialTypeName; 112 | } 113 | 114 | public String getPoster() { 115 | return poster; 116 | } 117 | 118 | public void setPoster(String poster) { 119 | this.poster = poster; 120 | } 121 | 122 | public String getRejectRemark() { 123 | return rejectRemark; 124 | } 125 | 126 | public void setRejectRemark(String rejectRemark) { 127 | this.rejectRemark = rejectRemark; 128 | } 129 | 130 | public String getRemark() { 131 | return remark; 132 | } 133 | 134 | public void setRemark(String remark) { 135 | this.remark = remark; 136 | } 137 | 138 | public Materials(Integer id, String materialNum, String materialName, String materialPostTime, String materialPassTime, Integer price, String materialState, String materialTypeNum, String materialTypeName, String poster, String rejectRemark, String remark) { 139 | this.id = id; 140 | this.materialNum = materialNum; 141 | this.materialName = materialName; 142 | this.materialPostTime = materialPostTime; 143 | this.materialPassTime = materialPassTime; 144 | this.price = price; 145 | this.materialState = materialState; 146 | this.materialTypeNum = materialTypeNum; 147 | this.materialTypeName = materialTypeName; 148 | this.poster = poster; 149 | this.rejectRemark = rejectRemark; 150 | this.remark = remark; 151 | } 152 | 153 | public Materials() { 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /src/main/java/com/example/entity/needPlanManager/NeedPlan.java: -------------------------------------------------------------------------------- 1 | package com.example.entity.needPlanManager; 2 | 3 | /** 4 | * @program: materils_v2.0 5 | * @description: tbl_needplan 表 6 | * @author: aYuan 7 | * @create: 2019-08-22 09:46 8 | */ 9 | public class NeedPlan { 10 | private Integer id; 11 | private String needPlanNum; 12 | private String materialNum; 13 | private String materialName; 14 | private Integer num; 15 | private String materialPassTime; 16 | private Integer price; 17 | private Integer num_price; 18 | private String needPlanState; 19 | private String orderNum; 20 | private String dhOrderNum; 21 | private String poster; 22 | private String buyer; 23 | private String rejectRemark; 24 | private String remark; 25 | 26 | @Override 27 | public String toString() { 28 | return "NeedPlan{" + 29 | "id=" + id + 30 | ", needPlanNum='" + needPlanNum + '\'' + 31 | ", materialNum='" + materialNum + '\'' + 32 | ", materialName='" + materialName + '\'' + 33 | ", num=" + num + 34 | ", materialPassTime='" + materialPassTime + '\'' + 35 | ", price=" + price + 36 | ", num_price=" + num_price + 37 | ", needPlanState='" + needPlanState + '\'' + 38 | ", orderNum='" + orderNum + '\'' + 39 | ", dhOrderNum='" + dhOrderNum + '\'' + 40 | ", poster='" + poster + '\'' + 41 | ", buyer='" + buyer + '\'' + 42 | ", rejectRemark='" + rejectRemark + '\'' + 43 | ", remark='" + remark + '\'' + 44 | '}'; 45 | } 46 | 47 | public Integer getId() { 48 | return id; 49 | } 50 | 51 | public void setId(Integer id) { 52 | this.id = id; 53 | } 54 | 55 | public String getNeedPlanNum() { 56 | return needPlanNum; 57 | } 58 | 59 | public void setNeedPlanNum(String needPlanNum) { 60 | this.needPlanNum = needPlanNum; 61 | } 62 | 63 | public String getMaterialNum() { 64 | return materialNum; 65 | } 66 | 67 | public void setMaterialNum(String materialNum) { 68 | this.materialNum = materialNum; 69 | } 70 | 71 | public String getMaterialName() { 72 | return materialName; 73 | } 74 | 75 | public void setMaterialName(String materialName) { 76 | this.materialName = materialName; 77 | } 78 | 79 | public Integer getNum() { 80 | return num; 81 | } 82 | 83 | public void setNum(Integer num) { 84 | this.num = num; 85 | } 86 | 87 | public String getMaterialPassTime() { 88 | return materialPassTime; 89 | } 90 | 91 | public void setMaterialPassTime(String materialPassTime) { 92 | this.materialPassTime = materialPassTime; 93 | } 94 | 95 | public Integer getPrice() { 96 | return price; 97 | } 98 | 99 | public void setPrice(Integer price) { 100 | this.price = price; 101 | } 102 | 103 | public Integer getNum_price() { 104 | return num_price; 105 | } 106 | 107 | public void setNum_price() { 108 | this.num_price = this.num * this.price; 109 | } 110 | 111 | public void setNum_price(Integer num_price){ 112 | this.num_price = num_price; 113 | } 114 | 115 | public String getNeedPlanState() { 116 | return needPlanState; 117 | } 118 | 119 | public void setNeedPlanState(String needPlanState) { 120 | this.needPlanState = needPlanState; 121 | } 122 | 123 | public String getOrderNum() { 124 | return orderNum; 125 | } 126 | 127 | public void setOrderNum(String orderNum) { 128 | this.orderNum = orderNum; 129 | } 130 | 131 | public String getDhOrderNum() { 132 | return dhOrderNum; 133 | } 134 | 135 | public void setDhOrderNum(String dhOrderNum) { 136 | this.dhOrderNum = dhOrderNum; 137 | } 138 | 139 | public String getPoster() { 140 | return poster; 141 | } 142 | 143 | public void setPoster(String poster) { 144 | this.poster = poster; 145 | } 146 | 147 | public String getBuyer() { 148 | return buyer; 149 | } 150 | 151 | public void setBuyer(String buyer) { 152 | this.buyer = buyer; 153 | } 154 | 155 | public String getRejectRemark() { 156 | return rejectRemark; 157 | } 158 | 159 | public void setRejectRemark(String rejectRemark) { 160 | this.rejectRemark = rejectRemark; 161 | } 162 | 163 | public String getRemark() { 164 | return remark; 165 | } 166 | 167 | public void setRemark(String remark) { 168 | this.remark = remark; 169 | } 170 | 171 | public NeedPlan(Integer id, String needPlanNum, String materialNum, String materialName, Integer num, String materialPassTime, Integer price, Integer num_price, String needPlanState, String orderNum, String dhOrderNum, String poster, String buyer, String rejectRemark, String remark) { 172 | this.id = id; 173 | this.needPlanNum = needPlanNum; 174 | this.materialNum = materialNum; 175 | this.materialName = materialName; 176 | this.num = num; 177 | this.materialPassTime = materialPassTime; 178 | this.price = price; 179 | this.num_price = num_price; 180 | this.needPlanState = needPlanState; 181 | this.orderNum = orderNum; 182 | this.dhOrderNum = dhOrderNum; 183 | this.poster = poster; 184 | this.buyer = buyer; 185 | this.rejectRemark = rejectRemark; 186 | this.remark = remark; 187 | } 188 | 189 | public NeedPlan() { 190 | } 191 | } 192 | --------------------------------------------------------------------------------