Commit b5928951 authored by reedmi's avatar reedmi

稳定项目结构

parent 1c97167c
package com.originspark.drp.authority;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* @author ReedMi
* 1.类上标记AuthRoleType.*,则表明该类的所有方法都可以被访问
* 2.方法上标记AuthRoleType.*,则表明该方法可以被访问
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface AuthRoleGroup {
public RoleEnum[] type();
}
package com.originspark.drp.authority;
public enum RoleEnum {
LEADER,//超级管理员
MATERIALKEEPER,//材料员
WAREKEEPER,//库管员
PROJECTMANAGER//项目经理
}
...@@ -4,17 +4,22 @@ import java.util.HashMap; ...@@ -4,17 +4,22 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.originspark.drp.service.projects.ProjectService;
import com.originspark.drp.service.projects.invoices.StockInInvoiceService; import com.originspark.drp.service.projects.invoices.StockInInvoiceService;
import com.originspark.drp.service.projects.invoices.StockOutInvoiceService; import com.originspark.drp.service.projects.invoices.StockOutInvoiceService;
import com.originspark.drp.service.resources.VendorService; import com.originspark.drp.service.resources.VendorService;
import com.originspark.drp.service.resources.WareCategoryService;
import com.originspark.drp.service.resources.WareService; import com.originspark.drp.service.resources.WareService;
import com.originspark.drp.service.users.UserService; import com.originspark.drp.service.users.UserService;
import com.originspark.drp.util.json.Jackson; import com.originspark.drp.util.json.Jackson;
public abstract class AbstractController { public class BaseController extends HandlerInterceptorAdapter {
@Autowired @Autowired
protected UserService userService; protected UserService userService;
...@@ -23,10 +28,10 @@ public abstract class AbstractController { ...@@ -23,10 +28,10 @@ public abstract class AbstractController {
protected WareService wareService; protected WareService wareService;
@Autowired @Autowired
protected VendorService vendorService; protected WareCategoryService wareCategoryService;
@Autowired @Autowired
protected ProjectService projectService; protected VendorService vendorService;
@Autowired @Autowired
protected StockInInvoiceService stockInInvoiceService; protected StockInInvoiceService stockInInvoiceService;
...@@ -34,15 +39,48 @@ public abstract class AbstractController { ...@@ -34,15 +39,48 @@ public abstract class AbstractController {
@Autowired @Autowired
protected StockOutInvoiceService stockOutInvoiceService; protected StockOutInvoiceService stockOutInvoiceService;
//一般用于create、update、delete的返回值 private static final ThreadLocal<HttpServletRequest> REQUEST = new ThreadLocal<HttpServletRequest>();
protected final static String ok(String message){
private static final ThreadLocal<HttpServletResponse> RESPONSE = new ThreadLocal<HttpServletResponse>();
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
REQUEST.set(request);
RESPONSE.set(response);
return super.preHandle(request, response, handler);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
REQUEST.remove();
RESPONSE.remove();
if (ex != null) {
response.sendError(500);
}
super.afterCompletion(request, response, handler, ex);
}
public HttpServletRequest request() {
return REQUEST.get();
}
public HttpServletResponse response() {
return RESPONSE.get();
}
public HttpSession session() {
return request().getSession();
}
// 一般用于create、update、delete的返回值
protected final static String ok(String message) {
Map<String, Object> modelMap = new HashMap<String, Object>(2); Map<String, Object> modelMap = new HashMap<String, Object>(2);
modelMap.put("success", "true"); modelMap.put("success", "true");
modelMap.put("message", message); modelMap.put("message", message);
return Jackson.toJson(modelMap); return Jackson.toJson(modelMap);
} }
protected final static String ok(String message,Object object){ protected final static String ok(String message, Object object) {
Map<String, Object> modelMap = new HashMap<String, Object>(3); Map<String, Object> modelMap = new HashMap<String, Object>(3);
modelMap.put("success", "true"); modelMap.put("success", "true");
modelMap.put("message", message); modelMap.put("message", message);
...@@ -50,9 +88,9 @@ public abstract class AbstractController { ...@@ -50,9 +88,9 @@ public abstract class AbstractController {
return Jackson.toJson(modelMap); return Jackson.toJson(modelMap);
} }
//一般用于list分页数据的返回值 // 一般用于list分页数据的返回值
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
protected final static String ok(List items, Long total){ protected final static String ok(List items, Long total) {
Map<String, Object> modelMap = new HashMap<String, Object>(3); Map<String, Object> modelMap = new HashMap<String, Object>(3);
modelMap.put("success", "true"); modelMap.put("success", "true");
modelMap.put("data", items); modelMap.put("data", items);
...@@ -60,17 +98,17 @@ public abstract class AbstractController { ...@@ -60,17 +98,17 @@ public abstract class AbstractController {
return Jackson.toJson(modelMap); return Jackson.toJson(modelMap);
} }
//一般用于list不分页的返回值 // 一般用于list不分页的返回值
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
protected final static String ok(List items){ protected final static String ok(List items) {
Map<String, Object> modelMap = new HashMap<String, Object>(2); Map<String, Object> modelMap = new HashMap<String, Object>(2);
modelMap.put("success", "true"); modelMap.put("success", "true");
modelMap.put("data", items); modelMap.put("data", items);
return Jackson.toJson(modelMap); return Jackson.toJson(modelMap);
} }
//失败信息的处理 // 失败信息的处理
protected final static String failure(String message){ protected final static String failure(String message) {
Map<String, Object> modelMap = new HashMap<String, Object>(2); Map<String, Object> modelMap = new HashMap<String, Object>(2);
modelMap.put("success", "false"); modelMap.put("success", "false");
modelMap.put("message", message); modelMap.put("message", message);
......
package com.originspark.drp.controllers;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class InitSystemServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("------------------------系统正在初始化...-----------------------------");
// final String controllerPackageName = "com.originspark.drp.controllers";
// Map<RoleEnum,Set<String>> auths = AuthUtil.initAuth(controllerPackageName);
// System.out.println(auths);
// this.getServletContext().setAttribute("auths", auths);
System.out.println("------------------------系统初始化成功-----------------------------");
}
}
...@@ -4,11 +4,7 @@ import org.springframework.stereotype.Controller; ...@@ -4,11 +4,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
@Controller @Controller
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public class MainController { public class MainController {
@RequestMapping("index") @RequestMapping("index")
......
package com.originspark.drp.controllers; package com.originspark.drp.controllers;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.AuthRoleGroup; import com.originspark.drp.models.User;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.util.Blowfish; import com.originspark.drp.util.Blowfish;
import com.originspark.drp.util.SessionUtil; import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.json.PasswordJson; import com.originspark.drp.util.json.PasswordJson;
@Controller @Controller
@RequestMapping("profile") @RequestMapping("profile")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER}) public class ProfileController extends BaseController {
public class ProfileController extends AbstractController {
@RequestMapping(value="/updatepassword",method = RequestMethod.GET) @RequestMapping(value="/password/update",method = RequestMethod.GET)
@ResponseBody @ResponseBody
public String updatePassword(@RequestParam String data,HttpServletRequest request){ public String updatePassword(@RequestParam String data){
System.out.println(request().getSession());
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
try { try {
PasswordJson json = mapper.readValue(data,PasswordJson.class); PasswordJson json = mapper.readValue(data, PasswordJson.class);
if(!json.getNewpwd().equals(json.getNewpwdagain())){ if(!json.getNewpwd().equals(json.getNewpwdagain())){
return failure("修改失败,密码两次输入不一致"); return failure("修改失败,密码两次输入不一致");
} }
AbstractUser user = SessionUtil.getCurrentUser(request); User user = SessionUtil.getCurrentUser(request());
Blowfish bf=new Blowfish();
if(!json.getPwd().equals(bf.decryptString(user.getPassword()))){ Blowfish bf = new Blowfish();
String pwd = bf.decryptString(user.getPassword());
if(!json.getPwd().equals(pwd)){
return failure("修改失败,请输入正确的原始密码"); return failure("修改失败,请输入正确的原始密码");
} }
......
package com.originspark.drp.controllers.users; package com.originspark.drp.controllers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -14,37 +14,33 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -14,37 +14,33 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.RoleEnum; import com.originspark.drp.models.User;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.users.Leader;
import com.originspark.drp.util.enums.Status; import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.json.IdsJson;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.util.json.IdsJson;
import com.originspark.drp.util.json.JsonUtils; import com.originspark.drp.util.json.JsonUtils;
@Controller @Controller
@RequestMapping("leader") @RequestMapping("users")
@AuthRoleGroup(type={RoleEnum.LEADER}) public class UserController extends BaseController {
public class LeaderController extends AbstractController {
@RequestMapping(method = RequestMethod.POST) @RequestMapping(method = RequestMethod.POST)
@ResponseBody @ResponseBody
public String create(@RequestBody Leader leader) { public String create(@RequestBody User user) {
leader.setPassword("123456"); user.setPassword("123456");
userService.save(leader); userService.save(user);
return ok("创建成功"); return ok("创建成功");
} }
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody @ResponseBody
public String delete(@PathVariable Long id) { public String delete(@PathVariable Long id) {
AbstractUser leader = userService.findById(AbstractUser.class, id); User leader = userService.findById(User.class, id);
leader.setStatus(Status.DESTORYED); leader.setStatus(Status.DESTORYED);
userService.update(leader); userService.update(leader);
return ok("注销成功"); return ok("注销成功");
} }
@RequestMapping(value= "/deleteBatch",method = RequestMethod.GET) @RequestMapping(value= "/deleteBatch",method = RequestMethod.GET)
@ResponseBody @ResponseBody
public String deleteBatch(HttpServletRequest request){ public String deleteBatch(HttpServletRequest request){
...@@ -60,29 +56,29 @@ public class LeaderController extends AbstractController { ...@@ -60,29 +56,29 @@ public class LeaderController extends AbstractController {
return failure("没有需要审核的数据"); return failure("没有需要审核的数据");
} }
for(long id:json.getIds()){ for(long id:json.getIds()){
AbstractUser leader = userService.findById(AbstractUser.class, id); User leader = userService.findById(User.class, id);
leader.setStatus(Status.DESTORYED); leader.setStatus(Status.DESTORYED);
userService.update(leader); userService.update(leader);
} }
return ok("注销成功"); return ok("注销成功");
} }
@RequestMapping(value = "/{id}", method = RequestMethod.PUT) @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody @ResponseBody
public String update(@PathVariable Long id, @RequestBody Leader leader) { public String update(@PathVariable Long id, @RequestBody User user) {
AbstractUser existingLeader = userService.findById(AbstractUser.class, id); User existingLeader = userService.findById(User.class, id);
if (existingLeader == null) { if (existingLeader == null) {
return failure("您要更新的领导不存在"); return failure("您要更新的领导不存在");
} }
existingLeader.setName(leader.getName()); existingLeader.setName(user.getName());
existingLeader.setCode(leader.getCode()); existingLeader.setCode(user.getCode());
existingLeader.setGender(leader.getGender()); existingLeader.setGender(user.getGender());
existingLeader.setPhone(leader.getPhone()); existingLeader.setPhone(user.getPhone());
existingLeader.setAddress(leader.getAddress()); existingLeader.setAddress(user.getAddress());
existingLeader.setEmail(leader.getEmail()); existingLeader.setEmail(user.getEmail());
existingLeader.setStatus(leader.getStatus()); existingLeader.setStatus(user.getStatus());
userService.update(existingLeader); userService.update(existingLeader);
return ok("更新成功"); return ok("更新成功");
...@@ -100,10 +96,9 @@ public class LeaderController extends AbstractController { ...@@ -100,10 +96,9 @@ public class LeaderController extends AbstractController {
filters.addAll(JsonUtils.getListFromJsonArray(filter)); filters.addAll(JsonUtils.getListFromJsonArray(filter));
} }
List<AbstractUser> data = userService.pagedDataSet(start, limit,filters); List<User> data = userService.pagedDataSet(start, limit,filters);
Long count = userService.pagedDataCount(filters); Long count = userService.pagedDataCount(filters);
return ok(data, count); return ok(data, count);
} }
} }
...@@ -2,11 +2,9 @@ package com.originspark.drp.controllers.account; ...@@ -2,11 +2,9 @@ package com.originspark.drp.controllers.account;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession; // import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
...@@ -17,16 +15,14 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -17,16 +15,14 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import com.originspark.drp.authority.AuthRoleGroup; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.authority.RoleEnum; import com.originspark.drp.models.User;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.service.account.AccountService; import com.originspark.drp.service.account.AccountService;
import com.originspark.drp.util.Blowfish; import com.originspark.drp.util.Blowfish;
@Controller @Controller
@RequestMapping("account") @RequestMapping("account")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER}) public class AccountController extends BaseController {
public class AccountController {
@Autowired @Autowired
private AccountService service; private AccountService service;
...@@ -34,10 +30,10 @@ public class AccountController { ...@@ -34,10 +30,10 @@ public class AccountController {
private Logger logger = Logger.getLogger(AccountController.class); private Logger logger = Logger.getLogger(AccountController.class);
@RequestMapping(value = "login", method = RequestMethod.POST) @RequestMapping(value = "login", method = RequestMethod.POST)
public ModelAndView login(@RequestParam("username") String username, @RequestParam("password") String password,HttpSession session) { public ModelAndView login(@RequestParam("username") String username, @RequestParam("password") String password, HttpSession session) {
ModelAndView mav = new ModelAndView(); ModelAndView mav = new ModelAndView();
Blowfish bf = new Blowfish(); Blowfish bf = new Blowfish();
List<AbstractUser> users = service.validate(username, password); List<User> users = service.validate(username, password);
if (users.size() == 0) { if (users.size() == 0) {
mav.setViewName("index"); mav.setViewName("index");
mav.addObject("msg", "该用户不存在!"); mav.addObject("msg", "该用户不存在!");
...@@ -45,17 +41,11 @@ public class AccountController { ...@@ -45,17 +41,11 @@ public class AccountController {
int i; int i;
for (i = 0; i < users.size(); i++) { for (i = 0; i < users.size(); i++) {
if (bf.decryptString(users.get(i).getPassword()).equals(password)) { if (bf.decryptString(users.get(i).getPassword()).equals(password)) {
AbstractUser user = users.get(i); User user = users.get(i);
//将当前登录用户的信息存入session // 将当前登录用户的信息存入session
session.setAttribute("user", user); session.setAttribute("user", user);
//将该用户对应的权限信息存入session
Map<RoleEnum,Set<String>> auths = (Map<RoleEnum,Set<String>>)session.getServletContext().getAttribute("auths");
RoleEnum role = RoleEnum.valueOf(RoleEnum.class, user.getType().toUpperCase());
session.setAttribute("actions", auths.get(role));
mav.setViewName("redirect:/main"); mav.setViewName("redirect:/main");
logger.info("用户 " + user.getName() + " 登录系统,时间:" + new Date());
logger.info("用户 "+user.getName()+" 登录系统,时间:"+new Date());
return mav; return mav;
} }
} }
......
package com.originspark.drp.controllers.account;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.originspark.drp.models.users.AbstractUser;
public class AuthInterceptor extends HandlerInterceptorAdapter {
@SuppressWarnings("unchecked")
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
HandlerMethod hm = null;
try {
hm = (HandlerMethod)handler;
} catch (Exception e) {
response.sendRedirect(request.getContextPath()+"/index");
return false;
}
String mn = hm.getMethod().getName();
if(mn.equals("index") || mn.equals("login")){
return true;
}
AbstractUser user = (AbstractUser)session.getAttribute("user");
if(user == null) {
response.sendRedirect(request.getContextPath()+"/index");
return false;
} else {
Set<String> actions = (Set<String>)session.getAttribute("actions");
String name = hm.getBean().getClass().getName()+"."+hm.getMethod().getName();
if(!actions.contains(name)){
response.sendRedirect(request.getContextPath()+"/index");
return false;
}
}
return true;
}
}
package com.originspark.drp.controllers.account;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.extjs.menu.controllers.ExtMenuController;
@Controller
@RequestMapping("menu")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public class MainMenuController extends AbstractController{
@RequestMapping(value="/login",method = RequestMethod.GET)
@ResponseBody
public String createMenusByUserType(HttpServletRequest request){
String userType = SessionUtil.getCurrentUser(request).getType();
return ok(ExtMenuController.getMenusByUserType(userType));
}
}
package com.originspark.drp.controllers.projects;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.users.MaterialKeeper;
import com.originspark.drp.models.users.ProjectManager;
import com.originspark.drp.models.users.WareKeeper;
import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.util.mapper.projects.ProjectMapper;
import com.originspark.drp.web.models.projects.ProjectUI;
@Controller
@RequestMapping("project")
@AuthRoleGroup(type={RoleEnum.LEADER})
public class ProjectController extends AbstractController {
private Logger logger = Logger.getLogger(ProjectController.class);
private ProjectMapper mapper = new ProjectMapper();
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody ProjectUI data,HttpServletRequest request) {
/**
* TODO 表单数据验证
*/
Project system = mapper.toPersistenceBean(data);
if(system == null){
return failure("创建失败");
}
//如果添加的是系统,则不添加项目经理,库管和材管
if(data.getParentId() != null){
Project project = projectService.getReferance(Project.class, data.getParentId());
if(project == null){
return failure("所属项目不能为空!");
}
system.setProject(project);
projectService.save(system);
return ok("创建成功");
}else{
if(data.getProjectManager() != null){
ProjectManager projectManager = (ProjectManager) userService.findById(AbstractUser.class, data.getProjectManager());
if(projectManager == null){
return failure("项目经理不能为空!");
}
system.setProjectManager(projectManager);;
}
if(data.getWareKeeper() != null){
WareKeeper wareKeeper = (WareKeeper) userService.findById(AbstractUser.class, data.getWareKeeper());
if(wareKeeper == null){
return failure("库管员不能为空不能为空!");
}
system.setWareKeeper(wareKeeper);;
}
if(data.getMaterialKeeper() != null){
MaterialKeeper materialKeeper = (MaterialKeeper) userService.findById(AbstractUser.class, data.getMaterialKeeper());
if(materialKeeper == null){
return failure("材料员不能为空!");
}
system.setMaterialKeeper(materialKeeper);;
}
system.setCreatedByUserName(SessionUtil.getCurrentUserName(request));
projectService.save(system);
return ok("添加成功");
}
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Long id) {
Project project = projectService.findById(Project.class, id);
if(!project.getSystems().isEmpty()){
return failure("请先删除该项目下属的系统!");
}
if(!project.getInInvoices().isEmpty()){
return failure("请先删除该系统下属的入库单!");
}
if(!project.getOutInvoices().isEmpty()){
return failure("请先删除该系统下属的出库单!");
}
projectService.delete(project);
return ok("删除成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public String update(@PathVariable Long id, @RequestBody ProjectUI data,HttpServletRequest request) {
Project existingProject = projectService.findById(Project.class, id);
if (existingProject == null) {
return failure("您要修改的项目不存在");
}
if(data.getId() != id){
return failure("数据错误,修改失败");
}
//修改的是system
if(data.getParentId() != null){
Project project = projectService.getReferance(Project.class, data.getParentId());
if(project == null){
return failure("所属项目不能为空!");
}
existingProject.setProject(project);
}else{
if(data.getProjectManager() != null){
ProjectManager projectManager = (ProjectManager) userService.findById(AbstractUser.class, data.getProjectManager());
if(projectManager == null){
return failure("项目经理不能为空!");
}
existingProject.setProjectManager(projectManager);;
}
if(data.getWareKeeper() != null){
WareKeeper wareKeeper = (WareKeeper) userService.findById(AbstractUser.class, data.getWareKeeper());
if(wareKeeper == null){
return failure("库管员不能为空不能为空!");
}
existingProject.setWareKeeper(wareKeeper);;
}
if(data.getMaterialKeeper() != null){
MaterialKeeper materialKeeper = (MaterialKeeper) userService.findById(AbstractUser.class, data.getMaterialKeeper());
if(materialKeeper == null){
return failure("材料员不能为空!");
}
existingProject.setMaterialKeeper(materialKeeper);;
}
}
existingProject.setName(data.getName());
existingProject.setCode(data.getCode());
existingProject.setCity(data.getCity());
existingProject.setStartDate(data.getStartDate());
existingProject.setEndDate(data.getEndDate());
existingProject.setUpdatedByUserName(SessionUtil.getCurrentUserName(request));
projectService.update(existingProject);
return ok("修改成功");
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER})
public String list(@RequestParam(required = false) String userType,@RequestParam(required = false)String userId) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
if(userType != null && userId != null){
FilterRequest filter = new FilterRequest(userType,userId);
filters.add(filter);
}
List<Project> data = projectService.treeViewData(filters);
return ok(data);
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER})
public String view(@PathVariable Long id){
Project project = projectService.findById(Project.class, id);
return ok(project.getSystems());
}
}
...@@ -3,9 +3,9 @@ package com.originspark.drp.controllers.projects.costs; ...@@ -3,9 +3,9 @@ package com.originspark.drp.controllers.projects.costs;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -14,9 +14,7 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -14,9 +14,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.originspark.drp.authority.AuthRoleGroup; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.projects.costs.StockInCost; import com.originspark.drp.models.projects.costs.StockInCost;
import com.originspark.drp.models.projects.invoices.StockInInvoice; import com.originspark.drp.models.projects.invoices.StockInInvoice;
import com.originspark.drp.service.projects.costs.StockInCostService; import com.originspark.drp.service.projects.costs.StockInCostService;
...@@ -26,10 +24,9 @@ import com.originspark.drp.util.json.JsonUtils; ...@@ -26,10 +24,9 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller @Controller
@RequestMapping("stockInCost") @RequestMapping("stockInCost")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER}) public class StockInCostController extends BaseController{
public class StockInCostController extends AbstractController{
@Autowired @Resource
private StockInCostService service; private StockInCostService service;
@RequestMapping(method = RequestMethod.POST) @RequestMapping(method = RequestMethod.POST)
...@@ -59,7 +56,7 @@ public class StockInCostController extends AbstractController{ ...@@ -59,7 +56,7 @@ public class StockInCostController extends AbstractController{
return failure("抱歉,不能重复添加商品"); return failure("抱歉,不能重复添加商品");
} }
stockInCost.setCreatedByUserName(SessionUtil.getCurrentUserName(request)); stockInCost.setCreatedBy(SessionUtil.getCurrentUserName(request));
service.save(stockInCost); service.save(stockInCost);
return ok("创建成功"); return ok("创建成功");
...@@ -85,7 +82,7 @@ public class StockInCostController extends AbstractController{ ...@@ -85,7 +82,7 @@ public class StockInCostController extends AbstractController{
existingStockInCost.setUnitPrice(stockInCost.getUnitPrice()); existingStockInCost.setUnitPrice(stockInCost.getUnitPrice());
existingStockInCost.setQuantity(stockInCost.getQuantity()); existingStockInCost.setQuantity(stockInCost.getQuantity());
existingStockInCost.setUpdatedByUserName(SessionUtil.getCurrentUserName(request)); existingStockInCost.setUpdatedBy(SessionUtil.getCurrentUserName(request));
service.update(existingStockInCost); service.update(existingStockInCost);
return ok("更新成功"); return ok("更新成功");
...@@ -93,7 +90,6 @@ public class StockInCostController extends AbstractController{ ...@@ -93,7 +90,6 @@ public class StockInCostController extends AbstractController{
@RequestMapping(method = RequestMethod.GET) @RequestMapping(method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) { public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>(); List<FilterRequest> filters = new ArrayList<FilterRequest>();
......
...@@ -3,9 +3,9 @@ package com.originspark.drp.controllers.projects.costs; ...@@ -3,9 +3,9 @@ package com.originspark.drp.controllers.projects.costs;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -14,9 +14,7 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -14,9 +14,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.originspark.drp.authority.AuthRoleGroup; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.projects.costs.StockOutCost; import com.originspark.drp.models.projects.costs.StockOutCost;
import com.originspark.drp.models.projects.invoices.StockOutInvoice; import com.originspark.drp.models.projects.invoices.StockOutInvoice;
import com.originspark.drp.service.projects.costs.StockOutCostService; import com.originspark.drp.service.projects.costs.StockOutCostService;
...@@ -26,10 +24,9 @@ import com.originspark.drp.util.json.JsonUtils; ...@@ -26,10 +24,9 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller @Controller
@RequestMapping("stockOutCost") @RequestMapping("stockOutCost")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER}) public class StockOutCostController extends BaseController{
public class StockOutCostController extends AbstractController{
@Autowired @Resource
private StockOutCostService service; private StockOutCostService service;
@RequestMapping(method = RequestMethod.POST) @RequestMapping(method = RequestMethod.POST)
...@@ -59,7 +56,7 @@ public class StockOutCostController extends AbstractController{ ...@@ -59,7 +56,7 @@ public class StockOutCostController extends AbstractController{
return failure("抱歉,不能重复添加商品"); return failure("抱歉,不能重复添加商品");
} }
stockOutCost.setCreatedByUserName(SessionUtil.getCurrentUserName(request)); stockOutCost.setCreatedBy(SessionUtil.getCurrentUserName(request));
service.save(stockOutCost); service.save(stockOutCost);
return ok("创建成功"); return ok("创建成功");
...@@ -85,7 +82,7 @@ public class StockOutCostController extends AbstractController{ ...@@ -85,7 +82,7 @@ public class StockOutCostController extends AbstractController{
existingStockOutCost.setQuantity(stockOutCost.getQuantity()); existingStockOutCost.setQuantity(stockOutCost.getQuantity());
existingStockOutCost.setUnitPrice(stockOutCost.getUnitPrice()); existingStockOutCost.setUnitPrice(stockOutCost.getUnitPrice());
existingStockOutCost.setUpdatedByUserName(SessionUtil.getCurrentUserName(request)); existingStockOutCost.setUpdatedBy(SessionUtil.getCurrentUserName(request));
service.update(existingStockOutCost); service.update(existingStockOutCost);
return ok("更新成功"); return ok("更新成功");
...@@ -93,7 +90,6 @@ public class StockOutCostController extends AbstractController{ ...@@ -93,7 +90,6 @@ public class StockOutCostController extends AbstractController{
@RequestMapping(method = RequestMethod.GET) @RequestMapping(method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) { public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>(); List<FilterRequest> filters = new ArrayList<FilterRequest>();
......
...@@ -18,10 +18,7 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -18,10 +18,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.originspark.drp.authority.AuthRoleGroup; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.util.FileUtil; import com.originspark.drp.util.FileUtil;
import com.originspark.drp.util.poi.exporter.MonthendInventoryGenerator; import com.originspark.drp.util.poi.exporter.MonthendInventoryGenerator;
import com.originspark.drp.web.models.projects.inventories.CurrentInventoryUI; import com.originspark.drp.web.models.projects.inventories.CurrentInventoryUI;
...@@ -29,10 +26,9 @@ import com.originspark.drp.web.models.projects.inventories.Ware; ...@@ -29,10 +26,9 @@ import com.originspark.drp.web.models.projects.inventories.Ware;
@Controller @Controller
@RequestMapping("project") @RequestMapping("project")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER}) public class InventoryController extends BaseController {
public class InventoryController extends AbstractController {
@RequestMapping(value = "/{id}/inventories/current", method = RequestMethod.GET) /*@RequestMapping(value = "/{id}/inventories/current", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER}) @AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String currentInventories(@PathVariable Long id){ public String currentInventories(@PathVariable Long id){
...@@ -105,5 +101,5 @@ public class InventoryController extends AbstractController { ...@@ -105,5 +101,5 @@ public class InventoryController extends AbstractController {
throw new RuntimeException("IOError writing file to output stream"); throw new RuntimeException("IOError writing file to output stream");
} }
} }
} }*/
} }
package com.originspark.drp.controllers.projects.invoices; package com.originspark.drp.controllers.projects.invoices;
import com.originspark.drp.controllers.AbstractController; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.models.projects.invoices.AbstractInvoice; import com.originspark.drp.models.projects.invoices.AbstractInvoice;
import com.originspark.drp.util.enums.AuditState; import com.originspark.drp.util.enums.AuditState;
public class AbstractInvoiceController extends AbstractController { public class AbstractInvoiceController extends BaseController {
protected void updateState(AbstractInvoice invoice,String userType,AuditState state) {
if(invoice.getPass() == true){
return;
}
if (userType.equals("MaterialKeeper")) {
invoice.setMaterialKeeperAuditState(state);
invoice.setWareKeeperAuditState(AuditState.UNAUDITED);
invoice.setProjectManagerAuditState(AuditState.UNAUDITED);
} else if (userType.equals("WareKeeper")) {
if (invoice.getMaterialKeeperAuditState() == AuditState.APPROVED) {
invoice.setWareKeeperAuditState(state);
if(state == AuditState.UNAPPROVED){
invoice.setMaterialKeeperAuditState(state);
}
}
}else if (userType.equals("ProjectManager")) {
if (invoice.getMaterialKeeperAuditState() == AuditState.APPROVED &&
invoice.getWareKeeperAuditState() == AuditState.APPROVED) {
invoice.setProjectManagerAuditState(state);
if(state == AuditState.UNAPPROVED){
invoice.setMaterialKeeperAuditState(state);
}else{
invoice.setPass(true);
}
}
}
}
} }
...@@ -15,11 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -15,11 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.models.projects.invoices.StockInInvoice; import com.originspark.drp.models.projects.invoices.StockInInvoice;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.util.SessionUtil; import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.enums.AuditState; import com.originspark.drp.util.enums.AuditState;
import com.originspark.drp.util.json.AuditStateUpdateJson; import com.originspark.drp.util.json.AuditStateUpdateJson;
...@@ -29,12 +25,11 @@ import com.originspark.drp.util.json.JsonUtils; ...@@ -29,12 +25,11 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller @Controller
@RequestMapping("stockInInvoice") @RequestMapping("stockInInvoice")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class StockInInvoiceController extends AbstractInvoiceController { public class StockInInvoiceController extends AbstractInvoiceController {
private Logger logger = Logger.getLogger(StockInInvoiceController.class); private Logger logger = Logger.getLogger(StockInInvoiceController.class);
@RequestMapping(method = RequestMethod.POST) /*@RequestMapping(method = RequestMethod.POST)
@ResponseBody @ResponseBody
public String create(@RequestBody StockInInvoice invoice,HttpServletRequest request) { public String create(@RequestBody StockInInvoice invoice,HttpServletRequest request) {
...@@ -85,11 +80,10 @@ public class StockInInvoiceController extends AbstractInvoiceController { ...@@ -85,11 +80,10 @@ public class StockInInvoiceController extends AbstractInvoiceController {
stockInInvoiceService.update(existingInvoice); stockInInvoiceService.update(existingInvoice);
return ok("更新成功",existingInvoice.getId()); return ok("更新成功",existingInvoice.getId());
} }*/
@RequestMapping(method = RequestMethod.GET) @RequestMapping(method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) { public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>(); List<FilterRequest> filters = new ArrayList<FilterRequest>();
...@@ -136,9 +130,8 @@ public class StockInInvoiceController extends AbstractInvoiceController { ...@@ -136,9 +130,8 @@ public class StockInInvoiceController extends AbstractInvoiceController {
return ok("删除成功(注释:部分合价不为0的入库单已忽略)"); return ok("删除成功(注释:部分合价不为0的入库单已忽略)");
} }
@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET) /*@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER})
public String updateAuditStateByUser(HttpServletRequest request) { public String updateAuditStateByUser(HttpServletRequest request) {
String data = request.getParameter("data"); String data = request.getParameter("data");
...@@ -176,7 +169,7 @@ public class StockInInvoiceController extends AbstractInvoiceController { ...@@ -176,7 +169,7 @@ public class StockInInvoiceController extends AbstractInvoiceController {
} }
return ok("提交成功"); return ok("提交成功");
} }*/
} }
...@@ -15,11 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -15,11 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.models.projects.invoices.StockOutInvoice; import com.originspark.drp.models.projects.invoices.StockOutInvoice;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.util.SessionUtil; import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.enums.AuditState; import com.originspark.drp.util.enums.AuditState;
import com.originspark.drp.util.json.AuditStateUpdateJson; import com.originspark.drp.util.json.AuditStateUpdateJson;
...@@ -29,12 +25,11 @@ import com.originspark.drp.util.json.JsonUtils; ...@@ -29,12 +25,11 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller @Controller
@RequestMapping("stockOutInvoice") @RequestMapping("stockOutInvoice")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class StockOutInvoiceController extends AbstractInvoiceController { public class StockOutInvoiceController extends AbstractInvoiceController {
private Logger logger = Logger.getLogger(StockOutInvoiceController.class); private Logger logger = Logger.getLogger(StockOutInvoiceController.class);
@RequestMapping(method = RequestMethod.POST) /* @RequestMapping(method = RequestMethod.POST)
@ResponseBody @ResponseBody
public String create(@RequestBody StockOutInvoice invoice,HttpServletRequest request) { public String create(@RequestBody StockOutInvoice invoice,HttpServletRequest request) {
...@@ -114,11 +109,10 @@ public class StockOutInvoiceController extends AbstractInvoiceController { ...@@ -114,11 +109,10 @@ public class StockOutInvoiceController extends AbstractInvoiceController {
stockOutInvoiceService.update(existingInvoice); stockOutInvoiceService.update(existingInvoice);
return ok("更新成功", existingInvoice.getId()); return ok("更新成功", existingInvoice.getId());
} }*/
@RequestMapping(method = RequestMethod.GET) @RequestMapping(method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) { public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>(); List<FilterRequest> filters = new ArrayList<FilterRequest>();
...@@ -133,9 +127,8 @@ public class StockOutInvoiceController extends AbstractInvoiceController { ...@@ -133,9 +127,8 @@ public class StockOutInvoiceController extends AbstractInvoiceController {
return ok(data, count); return ok(data, count);
} }
@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET) /*@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER})
public String updateAuditStateByUser(HttpServletRequest request) { public String updateAuditStateByUser(HttpServletRequest request) {
String data = request.getParameter("data"); String data = request.getParameter("data");
...@@ -173,5 +166,5 @@ public class StockOutInvoiceController extends AbstractInvoiceController { ...@@ -173,5 +166,5 @@ public class StockOutInvoiceController extends AbstractInvoiceController {
} }
return ok("提交成功"); return ok("提交成功");
} }*/
} }
...@@ -15,9 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -15,9 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.RoleEnum; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.resources.Vendor; import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.util.SessionUtil; import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.json.IdsJson; import com.originspark.drp.util.json.IdsJson;
...@@ -26,8 +24,7 @@ import com.originspark.drp.util.json.JsonUtils; ...@@ -26,8 +24,7 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller @Controller
@RequestMapping("vendor") @RequestMapping("vendor")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER}) public class VendorController extends BaseController {
public class VendorController extends AbstractController {
private Logger logger = Logger.getLogger(VendorController.class); private Logger logger = Logger.getLogger(VendorController.class);
...@@ -46,7 +43,7 @@ public class VendorController extends AbstractController { ...@@ -46,7 +43,7 @@ public class VendorController extends AbstractController {
return failure("该供应商已经存在,不可重复添加"); return failure("该供应商已经存在,不可重复添加");
} }
vendor.setCreatedByUserName(SessionUtil.getCurrentUserName(request)); vendor.setCreatedBy(SessionUtil.getCurrentUserName(request));
vendorService.save(vendor); vendorService.save(vendor);
logger.info(">添加成功:"+vendor.toString()); logger.info(">添加成功:"+vendor.toString());
...@@ -102,13 +99,9 @@ public class VendorController extends AbstractController { ...@@ -102,13 +99,9 @@ public class VendorController extends AbstractController {
existingVendor.setContactMan(vendor.getContactMan()); existingVendor.setContactMan(vendor.getContactMan());
existingVendor.setAddress(vendor.getAddress()); existingVendor.setAddress(vendor.getAddress());
existingVendor.setPhone(vendor.getPhone()); existingVendor.setPhone(vendor.getPhone());
existingVendor.setRegistrationNumber(vendor.getRegistrationNumber());
existingVendor.setRegistrationRange(vendor.getRegistrationRange());
existingVendor.setTaxNumber(vendor.getTaxNumber());
existingVendor.setOrgCodeCertificate(vendor.getOrgCodeCertificate());
existingVendor.setNote(vendor.getNote()); existingVendor.setNote(vendor.getNote());
existingVendor.setUpdatedByUserName(SessionUtil.getCurrentUserName(request)); existingVendor.setUpdatedBy(SessionUtil.getCurrentUserName(request));
vendorService.update(existingVendor); vendorService.update(existingVendor);
logger.info(">更新成功:"+existingVendor.toString()); logger.info(">更新成功:"+existingVendor.toString());
...@@ -117,7 +110,6 @@ public class VendorController extends AbstractController { ...@@ -117,7 +110,6 @@ public class VendorController extends AbstractController {
@RequestMapping(method = RequestMethod.GET) @RequestMapping(method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) { public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>(); List<FilterRequest> filters = new ArrayList<FilterRequest>();
......
package com.originspark.drp.controllers.resources;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.models.User;
import com.originspark.drp.models.resources.WareCategory;
import com.originspark.drp.util.enums.Status;
import com.originspark.drp.web.models.resources.WareCategoryForm;
@Controller
@RequestMapping("wares/categories")
public class WareCategoryController extends BaseController {
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String list() {
List<WareCategory> data = wareCategoryService.treeViewData();
return ok(data);
}
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody WareCategoryForm categoryForm) {
if(StringUtils.isEmpty(categoryForm.getName())) {
return failure("分类名称不能为空");
}
WareCategory category = new WareCategory();
category.setName(categoryForm.getName());
category.setCode(categoryForm.getCode());
wareCategoryService.save(category);
return ok("创建成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public String update(@PathVariable Long id, @RequestBody WareCategoryForm form) {
WareCategory existingCategory = wareCategoryService.findById(WareCategory.class, id);
if (existingCategory == null) {
return failure("您要更新的分类不存在");
}
existingCategory.setName(form.getName());
existingCategory.setCode(form.getCode());
wareCategoryService.update(existingCategory);
return ok("更新成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Long id) {
WareCategory existingCategory = wareCategoryService.findById(WareCategory.class, id);
if (existingCategory == null) {
return failure("您要删除的分类不存在");
}
existingCategory.setStatus(Status.DESTORYED);
wareCategoryService.update(existingCategory);
return ok("删除成功");
}
}
...@@ -25,9 +25,7 @@ import org.springframework.web.bind.annotation.ResponseBody; ...@@ -25,9 +25,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.AuthRoleGroup; import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.resources.Vendor; import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.models.resources.Ware; import com.originspark.drp.models.resources.Ware;
import com.originspark.drp.util.FileUtil; import com.originspark.drp.util.FileUtil;
...@@ -40,8 +38,7 @@ import com.originspark.drp.util.poi.importer.WareImporter; ...@@ -40,8 +38,7 @@ import com.originspark.drp.util.poi.importer.WareImporter;
@Controller @Controller
@RequestMapping("ware") @RequestMapping("ware")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER}) public class WareController extends BaseController {
public class WareController extends AbstractController {
private Logger logger = Logger.getLogger(WareController.class); private Logger logger = Logger.getLogger(WareController.class);
...@@ -68,7 +65,7 @@ public class WareController extends AbstractController { ...@@ -68,7 +65,7 @@ public class WareController extends AbstractController {
} }
//save //save
ware.setCreatedByUserName(SessionUtil.getCurrentUserName(request)); ware.setCreatedBy(SessionUtil.getCurrentUserName(request));
Ware savedWare = wareService.save(ware); Ware savedWare = wareService.save(ware);
logger.info(">添加成功:"+savedWare.toString()); logger.info(">添加成功:"+savedWare.toString());
...@@ -135,7 +132,7 @@ public class WareController extends AbstractController { ...@@ -135,7 +132,7 @@ public class WareController extends AbstractController {
existingWare.setNote(ware.getNote()); existingWare.setNote(ware.getNote());
existingWare.setVendor(ware.getVendor()); existingWare.setVendor(ware.getVendor());
existingWare.setUpdatedByUserName(SessionUtil.getCurrentUserName(request)); existingWare.setUpdatedBy(SessionUtil.getCurrentUserName(request));
wareService.update(existingWare); wareService.update(existingWare);
logger.info(">更新成功:"+existingWare.toString()); logger.info(">更新成功:"+existingWare.toString());
...@@ -144,7 +141,6 @@ public class WareController extends AbstractController { ...@@ -144,7 +141,6 @@ public class WareController extends AbstractController {
@RequestMapping(method = RequestMethod.GET) @RequestMapping(method = RequestMethod.GET)
@ResponseBody @ResponseBody
@AuthRoleGroup(type={RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter, HttpServletRequest request) { public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter, HttpServletRequest request) {
List<FilterRequest> filters = new ArrayList<FilterRequest>(); List<FilterRequest> filters = new ArrayList<FilterRequest>();
......
package com.originspark.drp.controllers.users;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.users.MaterialKeeper;
import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.json.IdsJson;
import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("materialKeeper")
@AuthRoleGroup(type={RoleEnum.LEADER})
public class MaterialKeeperController extends AbstractController {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody MaterialKeeper materialKeeper) {
materialKeeper.setPassword("123456");
userService.save(materialKeeper);
return ok("创建成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Long id) {
MaterialKeeper materialKeeper = (MaterialKeeper)userService.findById(AbstractUser.class, id);
materialKeeper.setStatus(Status.DESTORYED);
userService.update(materialKeeper);
return ok("注销成功");
}
@RequestMapping(value= "/deleteBatch",method = RequestMethod.GET)
@ResponseBody
public String deleteBatch(HttpServletRequest request){
String data = request.getParameter("data");
ObjectMapper mapper = new ObjectMapper();
IdsJson json=null;
try {
json = mapper.readValue(data, IdsJson.class);
} catch (Exception e) {
return failure("提交数据有误");
}
if(json == null){
return failure("没有需要审核的数据");
}
for(long id:json.getIds()){
MaterialKeeper materialKeeper = (MaterialKeeper)userService.findById(AbstractUser.class, id);
materialKeeper.setStatus(Status.DESTORYED);
userService.update(materialKeeper);
}
return ok("注销成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public String update(@PathVariable Long id, @RequestBody MaterialKeeper materialKeeper) {
MaterialKeeper existingMaterialKeeper = (MaterialKeeper)userService.findById(AbstractUser.class, id);
if (existingMaterialKeeper == null) {
return failure("您要更新的领导不存在");
}
existingMaterialKeeper.setName(materialKeeper.getName());
existingMaterialKeeper.setCode(materialKeeper.getCode());
existingMaterialKeeper.setGender(materialKeeper.getGender());
existingMaterialKeeper.setPhone(materialKeeper.getPhone());
existingMaterialKeeper.setAddress(materialKeeper.getAddress());
existingMaterialKeeper.setEmail(materialKeeper.getEmail());
existingMaterialKeeper.setStatus(materialKeeper.getStatus());
userService.update(existingMaterialKeeper);
return ok("更新成功");
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
filters.add(new FilterRequest("type", "MaterialKeeper"));
if (filter != null) {
filters.addAll(JsonUtils.getListFromJsonArray(filter));
}
List<AbstractUser> data = userService.pagedDataSet(start, limit,filters);
Long count = userService.pagedDataCount(filters);
return ok(data, count);
}
}
package com.originspark.drp.controllers.users;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.users.ProjectManager;
import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.json.IdsJson;
import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("projectManager")
@AuthRoleGroup(type={RoleEnum.LEADER})
public class ProjectManagerController extends AbstractController{
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody ProjectManager projectManager) {
projectManager.setPassword("123456");
userService.save(projectManager);
return ok("创建成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Long id) {
AbstractUser projectManager = userService.findById(AbstractUser.class, id);
projectManager.setStatus(Status.DESTORYED);
userService.update(projectManager);
return ok("注销成功");
}
@RequestMapping(value= "/deleteBatch",method = RequestMethod.GET)
@ResponseBody
public String deleteBatch(HttpServletRequest request){
String data = request.getParameter("data");
ObjectMapper mapper = new ObjectMapper();
IdsJson json=null;
try {
json = mapper.readValue(data, IdsJson.class);
} catch (Exception e) {
return failure("提交数据有误");
}
if(json == null){
return failure("没有需要审核的数据");
}
for(long id:json.getIds()){
AbstractUser projectManager = userService.findById(AbstractUser.class, id);
projectManager.setStatus(Status.DESTORYED);
userService.update(projectManager);
}
return ok("注销成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public String update(@PathVariable Long id, @RequestBody ProjectManager projectManager) {
ProjectManager existingProjectManager = (ProjectManager)userService.findById(AbstractUser.class, id);
if (existingProjectManager == null) {
return failure("您要更新的项目经理不存在");
}
existingProjectManager.setName(projectManager.getName());
existingProjectManager.setCode(projectManager.getCode());
existingProjectManager.setGender(projectManager.getGender());
existingProjectManager.setPhone(projectManager.getPhone());
existingProjectManager.setAddress(projectManager.getAddress());
existingProjectManager.setEmail(projectManager.getEmail());
existingProjectManager.setStatus(projectManager.getStatus());
userService.update(existingProjectManager);
return ok("更新成功");
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
filters.add(new FilterRequest("type", "ProjectManager"));
if (filter != null) {
filters.addAll(JsonUtils.getListFromJsonArray(filter));
}
List<AbstractUser> data = userService.pagedDataSet(start, limit,filters);
Long count = userService.pagedDataCount(filters);
return ok(data, count);
}
}
package com.originspark.drp.controllers.users;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.users.WareKeeper;
import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.json.IdsJson;
import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("wareKeeper")
@AuthRoleGroup(type={RoleEnum.LEADER})
public class WareKeeperController extends AbstractController{
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody WareKeeper wareKeeper) {
wareKeeper.setPassword("123456");
userService.save(wareKeeper);
return ok("创建成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Long id) {
AbstractUser wareKeeper = userService.findById(AbstractUser.class, id);
wareKeeper.setStatus(Status.DESTORYED);
userService.update(wareKeeper);
return ok("注销成功");
}
@RequestMapping(value= "/deleteBatch",method = RequestMethod.GET)
@ResponseBody
public String deleteBatch(HttpServletRequest request){
String data = request.getParameter("data");
ObjectMapper mapper = new ObjectMapper();
IdsJson json=null;
try {
json = mapper.readValue(data, IdsJson.class);
} catch (Exception e) {
return failure("提交数据有误");
}
if(json == null){
return failure("没有需要审核的数据");
}
for(long id:json.getIds()){
AbstractUser wareKeeper = userService.findById(AbstractUser.class, id);
wareKeeper.setStatus(Status.DESTORYED);
userService.update(wareKeeper);
}
return ok("注销成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public String update(@PathVariable Long id, @RequestBody WareKeeper wareKeeper) {
WareKeeper existingWareKeeper = (WareKeeper)userService.findById(AbstractUser.class, id);
if (existingWareKeeper == null) {
return failure("您要更新的库管不存在");
}
existingWareKeeper.setName(wareKeeper.getName());
existingWareKeeper.setCode(wareKeeper.getCode());
existingWareKeeper.setGender(wareKeeper.getGender());
existingWareKeeper.setPhone(wareKeeper.getPhone());
existingWareKeeper.setAddress(wareKeeper.getAddress());
existingWareKeeper.setEmail(wareKeeper.getEmail());
existingWareKeeper.setStatus(wareKeeper.getStatus());
userService.update(existingWareKeeper);
return ok("更新成功");
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
filters.add(new FilterRequest("type", "WareKeeper"));
if (filter != null) {
filters.addAll(JsonUtils.getListFromJsonArray(filter));
}
List<AbstractUser> data = userService.pagedDataSet(start, limit,filters);
Long count = userService.pagedDataCount(filters);
return ok(data, count);
}
@RequestMapping(value = "/{id}/projects", method = RequestMethod.GET)
@ResponseBody
public String listProjects(@PathVariable Long id){
WareKeeper wareKeeper = (WareKeeper)userService.findById(AbstractUser.class, id);
return ok(wareKeeper.getProjects());
}
}
...@@ -3,12 +3,17 @@ package com.originspark.drp.models; ...@@ -3,12 +3,17 @@ package com.originspark.drp.models;
import java.util.Date; import java.util.Date;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.MappedSuperclass; import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist; import javax.persistence.PrePersist;
import javax.persistence.PreUpdate; import javax.persistence.PreUpdate;
import com.originspark.drp.util.enums.Status;
import com.sun.istack.internal.NotNull;
@MappedSuperclass @MappedSuperclass
public abstract class AbstractModel { public abstract class AbstractModel {
...@@ -19,26 +24,34 @@ public abstract class AbstractModel { ...@@ -19,26 +24,34 @@ public abstract class AbstractModel {
/** /**
* 维护信息:记录创建日期 * 维护信息:记录创建日期
*/ */
@NotNull
@Column(name="createOn") @Column(name="createOn")
private Date createOn; private Date createOn;
/** /**
* 维护信息:记录创建者 * 维护信息:记录创建者
*/ */
@Column(name="createdByUserName",length=10) @Column(name="createdBy",length=10)
private String createdByUserName; private String createdBy;
/** /**
* 维护信息:记录更新日期 * 维护信息:记录更新日期
*/ */
@NotNull
@Column(name="updateOn") @Column(name="updateOn")
private Date updateOn; private Date updateOn;
/** /**
* 维护信息:记录更新者 * 维护信息:记录更新者
*/ */
@Column(name="updatedByUserName",length=10) @Column(name="updatedBy",length=10)
private String updatedByUserName; private String updatedBy;
/**
* 状态
*/
@Enumerated(EnumType.STRING)
private Status status;
public Long getId() { public Long getId() {
return id; return id;
...@@ -56,12 +69,12 @@ public abstract class AbstractModel { ...@@ -56,12 +69,12 @@ public abstract class AbstractModel {
this.createOn = createOn; this.createOn = createOn;
} }
public String getCreatedByUserName() { public String getCreatedBy() {
return createdByUserName; return createdBy;
} }
public void setCreatedByUserName(String createdByUserName) { public void setCreatedBy(String createdBy) {
this.createdByUserName = createdByUserName; this.createdBy = createdBy;
} }
public Date getUpdateOn() { public Date getUpdateOn() {
...@@ -72,12 +85,20 @@ public abstract class AbstractModel { ...@@ -72,12 +85,20 @@ public abstract class AbstractModel {
this.updateOn = updateOn; this.updateOn = updateOn;
} }
public String getUpdatedByUserName() { public String getUpdatedBy() {
return updatedByUserName; return updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
public Status getStatus() {
return status;
} }
public void setUpdatedByUserName(String updatedByUserName) { public void setStatus(Status status) {
this.updatedByUserName = updatedByUserName; this.status = status;
} }
@PrePersist @PrePersist
......
package com.originspark.drp.models.users; package com.originspark.drp.models;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.EnumType; import javax.persistence.EnumType;
import javax.persistence.Enumerated; import javax.persistence.Enumerated;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table; import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.AbstractModel;
import com.originspark.drp.util.Blowfish; import com.originspark.drp.util.Blowfish;
import com.originspark.drp.util.enums.Gender; import com.originspark.drp.util.enums.Gender;
import com.originspark.drp.util.enums.Status; import com.originspark.drp.util.enums.UserType;
@Entity @Entity
@Table(name = "users") @Table(name="users")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) public class User extends AbstractModel {
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
public class AbstractUser extends AbstractModel{
@Column(name = "type", updatable = false, insertable = false) @Enumerated(EnumType.STRING)
private String type; private UserType type;
/** /**
* 编号 * 编号
...@@ -35,6 +27,11 @@ public class AbstractUser extends AbstractModel{ ...@@ -35,6 +27,11 @@ public class AbstractUser extends AbstractModel{
*/ */
private String name; private String name;
/**
* 登录账号
*/
private String username;
/** /**
* 密码 * 密码
*/ */
...@@ -62,14 +59,12 @@ public class AbstractUser extends AbstractModel{ ...@@ -62,14 +59,12 @@ public class AbstractUser extends AbstractModel{
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private Gender gender; private Gender gender;
/** public UserType getType() {
* 状态 return type;
*/ }
@Enumerated(EnumType.STRING)
private Status status;
public static enum COLUMNS { public void setType(UserType type) {
TYPE,CODE,NAME,PHONE,ADDRESS,EMAIL,GENDER,STATUS this.type = type;
} }
public String getCode() { public String getCode() {
...@@ -88,13 +83,21 @@ public class AbstractUser extends AbstractModel{ ...@@ -88,13 +83,21 @@ public class AbstractUser extends AbstractModel{
this.name = name; this.name = name;
} }
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() { public String getPassword() {
return password; return password;
} }
public void setPassword(String password) { public void setPassword(String password) {
Blowfish bf=new Blowfish(); Blowfish bf = new Blowfish();
String pwd=bf.encryptString(password); String pwd = bf.encryptString(password);
this.password = pwd; this.password = pwd;
} }
...@@ -130,25 +133,7 @@ public class AbstractUser extends AbstractModel{ ...@@ -130,25 +133,7 @@ public class AbstractUser extends AbstractModel{
this.gender = gender; this.gender = gender;
} }
public String getType() { public static enum COLUMNS {
return type; TYPE, CODE, NAME, PHONE, ADDRESS, EMAIL, GENDER, STATUS
}
public void setType(String type) {
this.type = type;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
@Override
public String toString() {
return super.toString()+", code="+code+", name="+name+", phone="+phone+", address="+address+", email="+email
+", gender="+gender+", status"+status;
} }
} }
package com.originspark.drp.models.projects;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.AbstractModel;
import com.originspark.drp.models.projects.invoices.StockInInvoice;
import com.originspark.drp.models.projects.invoices.StockOutInvoice;
import com.originspark.drp.models.users.MaterialKeeper;
import com.originspark.drp.models.users.ProjectManager;
import com.originspark.drp.models.users.WareKeeper;
@Entity
@Table(name = "projects")
public class Project extends AbstractModel {
/**
* 项目名称
*/
private String name;
/**
* 项目编号
*/
private String code;
/**
* 项目所在城市
*/
private String city;
/**
* 开工时间
*/
@Temporal(TemporalType.DATE)
@Column(name = "startDate")
private Date startDate;
/**
* 竣工时间
*/
@Temporal(TemporalType.DATE)
@Column(name = "endDate")
private Date endDate;
@JsonIgnore
@ManyToOne
private Project project;
@JsonIgnore
@OneToMany(mappedBy = "project")
private List<Project> systems;
@ManyToOne
private ProjectManager projectManager;
@ManyToOne
private WareKeeper wareKeeper;
@ManyToOne
private MaterialKeeper materialKeeper;
@JsonIgnore
@OneToMany(mappedBy = "system")
private List<StockInInvoice> inInvoices;
@JsonIgnore
@OneToMany(mappedBy = "system")
private List<StockOutInvoice> outInvoices;
public static enum COLUMNS {
PROJECTMANAGER, WAREKEEPER, MATERIALKEEPER,LEADER
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
public List<Project> getSystems() {
return systems;
}
public void setSystems(List<Project> systems) {
this.systems = systems;
}
public ProjectManager getProjectManager() {
return projectManager;
}
public void setProjectManager(ProjectManager projectManager) {
this.projectManager = projectManager;
}
public WareKeeper getWareKeeper() {
return wareKeeper;
}
public void setWareKeeper(WareKeeper wareKeeper) {
this.wareKeeper = wareKeeper;
}
public MaterialKeeper getMaterialKeeper() {
return materialKeeper;
}
public void setMaterialKeeper(MaterialKeeper materialKeeper) {
this.materialKeeper = materialKeeper;
}
public List<StockInInvoice> getInInvoices() {
return inInvoices;
}
public void setInInvoices(List<StockInInvoice> inInvoices) {
this.inInvoices = inInvoices;
}
public List<StockOutInvoice> getOutInvoices() {
return outInvoices;
}
public void setOutInvoices(List<StockOutInvoice> outInvoices) {
this.outInvoices = outInvoices;
}
@Override
public String toString() {
return "Project(项目) => [" + super.toString() + ", code=" + code + ", name=" + name + ", materialKeeper.id=" + materialKeeper.getId()
+ ", wareKeeper.id=" + wareKeeper.getId() + ", projectManager.id=" + projectManager.getId() + "]";
}
public String getMaterialKeeperName(){
if(getProject() == null){
return null;
}
return getProject().getMaterialKeeper().getName();
}
public String getWareKeeperName(){
if(getProject() == null){
return null;
}
return getProject().getWareKeeper().getName();
}
public String getProjectManagerName(){
if(getProject() == null){
return null;
}
return getProject().getProjectManager().getName();
}
// json util getters
public boolean getLeaf() {
if (getProject() == null) {
return false;
}
return true;
}
public boolean getLoaded() {
if (getSystems().isEmpty()) {
return true;
}
return false;
}
public String getProjectName() {
Project project = getProject();
if (project == null) {
return null;
}
return project.getName();
}
}
...@@ -9,7 +9,6 @@ import javax.persistence.Id; ...@@ -9,7 +9,6 @@ import javax.persistence.Id;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.Table; import javax.persistence.Table;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.models.resources.Ware; import com.originspark.drp.models.resources.Ware;
@Entity @Entity
...@@ -20,12 +19,6 @@ public class MonthendInventory { ...@@ -20,12 +19,6 @@ public class MonthendInventory {
@GeneratedValue @GeneratedValue
private Long id; private Long id;
/**
* 所属系统
*/
@ManyToOne
private Project system;
/** /**
* 年月 * 年月
*/ */
...@@ -70,14 +63,6 @@ public class MonthendInventory { ...@@ -70,14 +63,6 @@ public class MonthendInventory {
this.id = id; this.id = id;
} }
public Project getSystem() {
return system;
}
public void setSystem(Project system) {
this.system = system;
}
public String getForYearMonth() { public String getForYearMonth() {
return forYearMonth; return forYearMonth;
} }
......
...@@ -5,18 +5,13 @@ import java.text.SimpleDateFormat; ...@@ -5,18 +5,13 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass; import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.Temporal; import javax.persistence.Temporal;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.AbstractModel; import com.originspark.drp.models.AbstractModel;
import com.originspark.drp.models.projects.Project; import com.sun.istack.internal.NotNull;
import com.originspark.drp.util.enums.AuditState;
/** /**
* 单据 * 单据
...@@ -31,12 +26,6 @@ public abstract class AbstractInvoice extends AbstractModel{ ...@@ -31,12 +26,6 @@ public abstract class AbstractInvoice extends AbstractModel{
*/ */
private String code; private String code;
/**
* 所属系统
*/
@ManyToOne
private Project system;
/** /**
* 日期 * 日期
*/ */
...@@ -44,6 +33,7 @@ public abstract class AbstractInvoice extends AbstractModel{ ...@@ -44,6 +33,7 @@ public abstract class AbstractInvoice extends AbstractModel{
private Date forDate; private Date forDate;
@JsonIgnore @JsonIgnore
@NotNull
@Column(columnDefinition = "char(7)", nullable = false) @Column(columnDefinition = "char(7)", nullable = false)
private String forYearMonth; private String forYearMonth;
...@@ -54,50 +44,25 @@ public abstract class AbstractInvoice extends AbstractModel{ ...@@ -54,50 +44,25 @@ public abstract class AbstractInvoice extends AbstractModel{
private BigDecimal totalPrice = BigDecimal.ZERO; private BigDecimal totalPrice = BigDecimal.ZERO;
/** /**
* 材料员姓名 * 负责人
*/ */
private String materialKeeperName; private String manager;
/** /**
* 库管员姓名 * 库管
*/ */
private String wareKeeperName; private String wareKeeper;
/** /**
* 项目经理姓名 * 经手人
*/ */
private String projectManagerName; private String regulator;
/**
* 库管审核状态
*/
@Enumerated(EnumType.STRING)
private AuditState wareKeeperAuditState;
/**
* 材料管理员审核状态
*/
@Enumerated(EnumType.STRING)
private AuditState materialKeeperAuditState;
/**
* 项目经理审核状态
*/
@Enumerated(EnumType.STRING)
private AuditState projectManagerAuditState;
/**
* 单据的状态,当项目经理通过之后,就设置为pass=true
*/
private Boolean pass;
public static enum COLUMNS { public static enum COLUMNS {
STARTDATE,ENDDATE,CODE, STARTDATE,ENDDATE,CODE,
MINTOTAL,MAXTOTAL,PROJECT,SYSTEM, MINTOTAL,MAXTOTAL,PROJECT,SYSTEM,
WARENAME,RECEIVEMANNAME, WARENAME,RECEIVEMANNAME,
MATERIALKEEPERNAME,WAREKEEPERNAME,PROJECTMANAGERNAME, REGULATORNAME,WAREKEEPERNAME,MANAGERNAME
MATERIALKEEPERID,WAREKEEPERID,PROJECTMANAGERID,
MATERIALKEEPERAUDITSTATE,WAREKEEPERAUDITSTATE,PROJECTMANAGERAUDITSTATE
} }
public String getCode() { public String getCode() {
...@@ -108,47 +73,39 @@ public abstract class AbstractInvoice extends AbstractModel{ ...@@ -108,47 +73,39 @@ public abstract class AbstractInvoice extends AbstractModel{
this.code = code; this.code = code;
} }
public Project getSystem() { public String getManager() {
return system; return manager;
}
public void setSystem(Project system) {
this.system = system;
} }
public Date getForDate() { public void setManager(String manager) {
return forDate; this.manager = manager;
} }
public void setForDate(Date forDate) { public String getWareKeeper() {
this.forDate = forDate; return wareKeeper;
if (forDate != null) {
setForYearMonth(forYearMonthFormatter.format(forDate));
}
} }
public String getMaterialKeeperName() { public void setWareKeeper(String wareKeeper) {
return materialKeeperName; this.wareKeeper = wareKeeper;
} }
public void setMaterialKeeperName(String materialKeeperName) { public String getRegulator() {
this.materialKeeperName = materialKeeperName; return regulator;
} }
public String getWareKeeperName() { public void setRegulator(String regulator) {
return wareKeeperName; this.regulator = regulator;
} }
public void setWareKeeperName(String wareKeeperName) { public Date getForDate() {
this.wareKeeperName = wareKeeperName; return forDate;
} }
public String getProjectManagerName() { public void setForDate(Date forDate) {
return projectManagerName; this.forDate = forDate;
if (forDate != null) {
setForYearMonth(forYearMonthFormatter.format(forDate));
} }
public void setProjectManagerName(String projectManagerName) {
this.projectManagerName = projectManagerName;
} }
public String getForYearMonth() { public String getForYearMonth() {
...@@ -167,51 +124,8 @@ public abstract class AbstractInvoice extends AbstractModel{ ...@@ -167,51 +124,8 @@ public abstract class AbstractInvoice extends AbstractModel{
this.totalPrice = totalPrice; this.totalPrice = totalPrice;
} }
public AuditState getWareKeeperAuditState() {
return wareKeeperAuditState;
}
public void setWareKeeperAuditState(AuditState wareKeeperAuditState) {
this.wareKeeperAuditState = wareKeeperAuditState;
}
public AuditState getMaterialKeeperAuditState() {
return materialKeeperAuditState;
}
public void setMaterialKeeperAuditState(AuditState materialKeeperAuditState) {
this.materialKeeperAuditState = materialKeeperAuditState;
}
public AuditState getProjectManagerAuditState() {
return projectManagerAuditState;
}
public void setProjectManagerAuditState(AuditState projectManagerAuditState) {
this.projectManagerAuditState = projectManagerAuditState;
}
public Boolean getPass() {
return pass;
}
public void setPass(Boolean pass) {
if(pass == null){
this.pass = false;
}else{
this.pass = pass;
}
}
@PrePersist
private void prePersist() {
setWareKeeperAuditState(AuditState.UNAUDITED);
setMaterialKeeperAuditState(AuditState.UNAUDITED);
setProjectManagerAuditState(AuditState.UNAUDITED);
}
@Override @Override
public String toString() { public String toString() {
return super.toString()+", code="+code+", forDate="+forDate+", totalPrice="+totalPrice+", system.name="+system.getName(); return super.toString()+", code="+code+", forDate="+forDate+", totalPrice="+totalPrice;
} }
} }
\ No newline at end of file
package com.originspark.drp.models.resources;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.originspark.drp.models.AbstractModel;
/**
* 销售商
*/
@Entity
@Table(name="traders")
public class Trader extends AbstractModel {
/**
* 名称
*/
private String name;
/**
* 联系电话
*/
private String phone;
/**
* 地址
*/
private String address;
/**
* 联系人
*/
@Column(name="contactMan")
private String contactMan;
/**
* 备注
*/
private String note;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getContactMan() {
return contactMan;
}
public void setContactMan(String contactMan) {
this.contactMan = contactMan;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}
...@@ -24,14 +24,14 @@ public class Vendor extends AbstractModel{ ...@@ -24,14 +24,14 @@ public class Vendor extends AbstractModel{
private String name; private String name;
/** /**
* 地址 * 联系电话
*/ */
private String address; private String phone;
/** /**
* 联系电话 * 地址
*/ */
private String phone; private String address;
/** /**
* 联系人 * 联系人
...@@ -39,36 +39,6 @@ public class Vendor extends AbstractModel{ ...@@ -39,36 +39,6 @@ public class Vendor extends AbstractModel{
@Column(name="contactMan") @Column(name="contactMan")
private String contactMan; private String contactMan;
/**
* 营业执照:注册编号
*/
@Column(name="registrationNumber")
private String registrationNumber;
/**
* 营业执照:承包范围
*/
@Column(name="registrationRange")
private String registrationRange;
/**
* 营业执照:开户行
*/
@Column(name="registrationBank")
private String registrationBank;
/**
* 营业执照:税号
*/
@Column(name="taxNumber")
private String taxNumber;
/**
* 营业执照:组织机构代码证
*/
@Column(name="orgCodeCertificate")
private String orgCodeCertificate;
/** /**
* 备注 * 备注
*/ */
...@@ -117,46 +87,6 @@ public class Vendor extends AbstractModel{ ...@@ -117,46 +87,6 @@ public class Vendor extends AbstractModel{
this.contactMan = contactMan; this.contactMan = contactMan;
} }
public String getRegistrationNumber() {
return registrationNumber;
}
public void setRegistrationNumber(String registrationNumber) {
this.registrationNumber = registrationNumber;
}
public String getRegistrationRange() {
return registrationRange;
}
public void setRegistrationRange(String registrationRange) {
this.registrationRange = registrationRange;
}
public String getRegistrationBank() {
return registrationBank;
}
public void setRegistrationBank(String registrationBank) {
this.registrationBank = registrationBank;
}
public String getTaxNumber() {
return taxNumber;
}
public void setTaxNumber(String taxNumber) {
this.taxNumber = taxNumber;
}
public String getOrgCodeCertificate() {
return orgCodeCertificate;
}
public void setOrgCodeCertificate(String orgCodeCertificate) {
this.orgCodeCertificate = orgCodeCertificate;
}
public String getNote() { public String getNote() {
return note; return note;
} }
......
package com.originspark.drp.models.resources; package com.originspark.drp.models.resources;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -8,6 +9,8 @@ import javax.persistence.Entity; ...@@ -8,6 +9,8 @@ import javax.persistence.Entity;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
...@@ -24,7 +27,7 @@ import com.originspark.drp.models.projects.inventories.MonthendInventory; ...@@ -24,7 +27,7 @@ import com.originspark.drp.models.projects.inventories.MonthendInventory;
public class Ware extends AbstractModel { public class Ware extends AbstractModel {
/** /**
* 名称 * 品名
*/ */
private String name; private String name;
...@@ -43,6 +46,17 @@ public class Ware extends AbstractModel { ...@@ -43,6 +46,17 @@ public class Ware extends AbstractModel {
*/ */
private String unit; private String unit;
/**
* 生产日期
*/
@Temporal(TemporalType.DATE)
private Date produceOn;
/**
* 保质期
*/
private String storage;
/** /**
* 备注 * 备注
*/ */
...@@ -102,6 +116,22 @@ public class Ware extends AbstractModel { ...@@ -102,6 +116,22 @@ public class Ware extends AbstractModel {
this.unit = unit; this.unit = unit;
} }
public Date getProduceOn() {
return produceOn;
}
public void setProduceOn(Date produceOn) {
this.produceOn = produceOn;
}
public String getStorage() {
return storage;
}
public void setStorage(String storage) {
this.storage = storage;
}
public String getNote() { public String getNote() {
return note; return note;
} }
......
package com.originspark.drp.models.resources;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import com.originspark.drp.models.AbstractModel;
/**
* 商品类别
* @author ReedMi
*/
@Entity
@Table(name = "ware_categories")
public class WareCategory extends AbstractModel {
private String name;
private String code;
@ManyToOne
private WareCategory parent;
@OneToMany(mappedBy = "parent")
private List<WareCategory> chidren;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public WareCategory getParent() {
return parent;
}
public void setParent(WareCategory parent) {
this.parent = parent;
}
public List<WareCategory> getChidren() {
return chidren;
}
public void setChidren(List<WareCategory> chidren) {
this.chidren = chidren;
}
public boolean getLoaded() {
if (getChidren().isEmpty()) {
return true;
}
return false;
}
}
package com.originspark.drp.models.users;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
/**
* 领导,即系统管理员
*/
@Entity
@Inheritance
@DiscriminatorValue("Leader")
public class Leader extends AbstractUser{
@Override
public String toString() {
return "Leader(系统管理员) => ["+super.toString()+"]";
}
}
package com.originspark.drp.models.users;
import java.util.List;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.OneToMany;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.projects.Project;
/**
* 材料员
*/
@Entity
@Inheritance
@DiscriminatorValue("MaterialKeeper")
public class MaterialKeeper extends AbstractUser{
@JsonIgnore
@OneToMany(mappedBy="materialKeeper")
private List<Project> projects;
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
@Override
public String toString() {
return "MaterialKeeper(材料员) => ["+super.toString()+"]";
}
}
package com.originspark.drp.models.users;
import java.util.List;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.OneToMany;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.projects.Project;
/**
* 项目经理
*/
@Entity
@Inheritance
@DiscriminatorValue("ProjectManager")
public class ProjectManager extends AbstractUser{
@JsonIgnore
@OneToMany(mappedBy="projectManager")
private List<Project> projects;
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
@Override
public String toString() {
return "ProjectManager(项目经理) => ["+super.toString()+"]";
}
}
package com.originspark.drp.models.users;
import java.util.List;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.OneToMany;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.projects.Project;
/**
* 仓库管理员
*/
@Entity
@Inheritance
@DiscriminatorValue("WareKeeper")
public class WareKeeper extends AbstractUser {
@JsonIgnore
@OneToMany(mappedBy="wareKeeper")
private List<Project> projects;
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
@Override
public String toString() {
return "WareKeeper(库管员) => ["+super.toString()+"]";
}
}
...@@ -2,7 +2,6 @@ package com.originspark.drp.processor; ...@@ -2,7 +2,6 @@ package com.originspark.drp.processor;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -28,5 +27,4 @@ public class UTF8StringBeanPostProcessor implements BeanPostProcessor { ...@@ -28,5 +27,4 @@ public class UTF8StringBeanPostProcessor implements BeanPostProcessor {
// do nothing // do nothing
return bean; return bean;
} }
} }
\ No newline at end of file
...@@ -2,9 +2,8 @@ package com.originspark.drp.service.account; ...@@ -2,9 +2,8 @@ package com.originspark.drp.service.account;
import java.util.List; import java.util.List;
import com.originspark.drp.models.users.AbstractUser; import com.originspark.drp.models.User;
public interface AccountService{ public interface AccountService{
public List<User> validate(String username,String password);
public List<AbstractUser> validate(String username,String password);
} }
...@@ -13,21 +13,21 @@ import javax.persistence.criteria.Root; ...@@ -13,21 +13,21 @@ import javax.persistence.criteria.Root;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.originspark.drp.models.users.AbstractUser; import com.originspark.drp.models.User;
import com.originspark.drp.util.enums.Status; import com.originspark.drp.util.enums.Status;
@Transactional @Transactional
@Service @Service("AccountService")
public class AccountServiceBean implements AccountService { public class AccountServiceBean implements AccountService {
@PersistenceContext @PersistenceContext
protected EntityManager em; protected EntityManager em;
@Override @Override
public List<AbstractUser> validate(String username, String password) { public List<User> validate(String username, String password) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<AbstractUser> dataQuery = cb.createQuery(AbstractUser.class); CriteriaQuery<User> dataQuery = cb.createQuery(User.class);
Root<AbstractUser> user = dataQuery.from(AbstractUser.class); Root<User> user = dataQuery.from(User.class);
dataQuery.select(user); dataQuery.select(user);
List<Predicate> criteria = new ArrayList<Predicate>(); List<Predicate> criteria = new ArrayList<Predicate>();
criteria.add(cb.equal(user.get("name"), username)); criteria.add(cb.equal(user.get("name"), username));
......
package com.originspark.drp.service.projects;
import java.util.List;
import java.util.Map;
import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.web.models.projects.inventories.CurrentInventoryUI;
import com.originspark.drp.web.models.projects.inventories.Ware;
public interface ProjectService extends BaseDAO<Project>{
List<Project> treeViewData(List<FilterRequest> filters);
Map<String, String> validate();
Project findById(Long id);
List<CurrentInventoryUI> getCurrentInventories(Long systemId);
List<Ware> getMonthEndInventories(Long systemId,String formonth);
}
package com.originspark.drp.service.projects;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.originspark.drp.dao.BaseDAOSupport;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.models.projects.Project.COLUMNS;
import com.originspark.drp.util.StringUtil;
import com.originspark.drp.util.json.FilterRequest;
import com.originspark.drp.web.models.projects.inventories.CurrentInventoryUI;
import com.originspark.drp.web.models.projects.inventories.Ware;
@Transactional
@Service
public class ProjectServiceBean extends BaseDAOSupport<Project> implements ProjectService {
@Override
public Map<String, String> validate() {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Project> treeViewData(List<FilterRequest> filters) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Project> dataQuery = cb.createQuery(Project.class);
Root<Project> project = dataQuery.from(Project.class);
dataQuery.select(project);
Predicate[] predicates = toPredicates(cb, project, filters);
if (predicates != null) {
dataQuery.where(cb.and(predicates));
}else{
dataQuery.where(cb.isNull(project.get("project")));
}
return em.createQuery(dataQuery).getResultList();
}
public static Predicate[] toPredicates(CriteriaBuilder cb, Root<Project> project,
List<FilterRequest> filters) {
List<Predicate> criteria = new ArrayList<Predicate>();
try {
for (FilterRequest filter : filters) {
COLUMNS column = COLUMNS.valueOf(filter.getProperty()
.toUpperCase());
String value = filter.getValue();
switch (column) {
case PROJECTMANAGER:
if (value != null && !value.equals("")) {
criteria.add(cb.equal(project.get("projectManager").<Long>get("id"),Long.parseLong(value)));
}
break;
case WAREKEEPER:
if (value != null && !value.equals("")) {
criteria.add(cb.equal(project.get("wareKeeper").<Long>get("id"),Long.parseLong(value)));
}
break;
case MATERIALKEEPER:
if (value != null && !value.equals("")) {
criteria.add(cb.equal(project.get("materialKeeper").<Long>get("id"),Long.parseLong(value)));
}
break;
case LEADER:
break;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
if (criteria.size() == 0) {
return null;
} else {
Predicate[] predicates = new Predicate[criteria.size()];
predicates = criteria.toArray(predicates);
return predicates;
}
}
public Project getReferance(Long id){
return getReferance(Project.class, id);
}
@Override
public Project findById(Long id){
return findById(Project.class, id);
}
@SuppressWarnings("unchecked")
@Override
public List<CurrentInventoryUI> getCurrentInventories(Long systemId) {
String sql = "SELECT w.name,w.brand,w.model,w.unit,"
+ " cin.incount,cin.outcount"
+ " FROM wares as w,view_currentinventory cin"
+ " WHERE w.id = cin.ware AND cin.system = ?";
Query query = em.createNativeQuery(sql);
query.setParameter(1, systemId);
List<Object[]> res = query.getResultList();
List<CurrentInventoryUI> currentInventories = new ArrayList<CurrentInventoryUI>();
Object[] objAry;
for (int i = 0, length = res.size(); i < length; i++) {
CurrentInventoryUI inventory = new CurrentInventoryUI();
objAry = res.get(i);
inventory.setWareName(objAry[0]+"");
inventory.setWareBrand(objAry[1]+"");
inventory.setWareModel(objAry[2]+"");
inventory.setWareUnit(objAry[3]+"");
inventory.setCurrentStockIn(objAry[4]==null?BigDecimal.ZERO:(BigDecimal)objAry[4]);
inventory.setCurrentStockOut(objAry[5]==null?BigDecimal.ZERO:(BigDecimal)objAry[5]);
currentInventories.add(inventory);
}
return currentInventories;
}
@SuppressWarnings("unchecked")
public List<Ware> getMonthEndInventories(Long systemId,String formonth){
String sql = "SELECT w.name,w.brand,w.model,w.unit,t1.incount-IFNULL(t1.outcount,0) as lastMonthLeft,t2.incount,t2.outcount"
+ " FROM wares w,"
+ " (SELECT * FROM view_monthendinventory WHERE formonth= ?) as t1"
+ " RIGHT JOIN"
+ " (SELECT * FROM view_monthendinventory WHERE formonth= ?) as t2"
+ " ON t1.system=t2.system AND t1.ware=t2.ware"
+ " WHERE w.id = t2.ware and t2.system = ?";
Query query = em.createNativeQuery(sql);
query.setParameter(1, StringUtil.getPreMonth(formonth));
query.setParameter(2, formonth);
query.setParameter(3, systemId);
List<Object[]> res = query.getResultList();
List<Ware> monthEndInventories = new ArrayList<Ware>();
Object[] objAry;
for (int i = 0, length = res.size(); i < length; i++) {
Ware inventory = new Ware();
objAry = res.get(i);
inventory.setWareName(objAry[0]+"");
inventory.setWareBrand(objAry[1]+"");
inventory.setWareModel(objAry[2]+"");
inventory.setWareUnit(objAry[3]+"");
inventory.setLastMonthLeft(objAry[4]==null?BigDecimal.ZERO:(BigDecimal)objAry[4]);
inventory.setMonthIn(objAry[5]==null?BigDecimal.ZERO:(BigDecimal)objAry[5]);
inventory.setMonthOut(objAry[6]==null?BigDecimal.ZERO:(BigDecimal)objAry[6]);
monthEndInventories.add(inventory);
}
return monthEndInventories;
}
}
...@@ -24,7 +24,7 @@ import com.originspark.drp.util.enums.AuditState; ...@@ -24,7 +24,7 @@ import com.originspark.drp.util.enums.AuditState;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Transactional @Transactional
@Service @Service("stockInInvoiceService")
public class StockInInvoiceServiceBean extends BaseDAOSupport<StockInInvoice> implements public class StockInInvoiceServiceBean extends BaseDAOSupport<StockInInvoice> implements
StockInInvoiceService { StockInInvoiceService {
...@@ -141,49 +141,19 @@ public class StockInInvoiceServiceBean extends BaseDAOSupport<StockInInvoice> im ...@@ -141,49 +141,19 @@ public class StockInInvoiceServiceBean extends BaseDAOSupport<StockInInvoice> im
andCriteria.add(cb.lessThanOrEqualTo(stockin.<BigDecimal>get("totalPrice"), maxTotal)); andCriteria.add(cb.lessThanOrEqualTo(stockin.<BigDecimal>get("totalPrice"), maxTotal));
} }
break; break;
case MATERIALKEEPERNAME: case REGULATORNAME:
if (value != null && !value.equals("")) { if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockin.<String>get("materialKeeperName"), "%" + value + "%")); andCriteria.add(cb.like(stockin.<String>get("regulator"), "%" + value + "%"));
} }
break; break;
case WAREKEEPERNAME: case WAREKEEPERNAME:
if (value != null && !value.equals("")) { if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockin.<String>get("wareKeeperName"), "%" + value + "%")); andCriteria.add(cb.like(stockin.<String>get("wareKeeper"), "%" + value + "%"));
} }
break; break;
case PROJECTMANAGERNAME: case MANAGERNAME:
if (value != null && !value.equals("")) { if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockin.<String>get("projectManagerName"), "%" + value + "%")); andCriteria.add(cb.like(stockin.<String>get("manager"), "%" + value + "%"));
}
break;
case MATERIALKEEPERID:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockin.get("system").get("project").get("materialKeeper").<Long>get("id"), Long.valueOf(value)));
}
break;
case WAREKEEPERID:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockin.get("system").get("project").get("wareKeeper").<Long>get("id"), Long.valueOf(value)));
}
break;
case PROJECTMANAGERID:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockin.get("system").get("project").get("projectManager").<Long>get("id"), Long.valueOf(value)));
}
break;
case MATERIALKEEPERAUDITSTATE:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockin.get("materialKeeperAuditState"),AuditState.valueOf(value)));
}
break;
case WAREKEEPERAUDITSTATE:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockin.get("wareKeeperAuditState"),AuditState.valueOf(value)));
}
break;
case PROJECTMANAGERAUDITSTATE:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockin.get("projectManagerAuditState"),AuditState.valueOf(value)));
} }
break; break;
case WARENAME: case WARENAME:
......
...@@ -24,7 +24,7 @@ import com.originspark.drp.util.enums.AuditState; ...@@ -24,7 +24,7 @@ import com.originspark.drp.util.enums.AuditState;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Transactional @Transactional
@Service @Service("stockOutInvoiceService")
public class StockOutInvoiceServiceBean extends BaseDAOSupport<StockOutInvoice> implements public class StockOutInvoiceServiceBean extends BaseDAOSupport<StockOutInvoice> implements
StockOutInvoiceService { StockOutInvoiceService {
...@@ -141,49 +141,19 @@ public class StockOutInvoiceServiceBean extends BaseDAOSupport<StockOutInvoice> ...@@ -141,49 +141,19 @@ public class StockOutInvoiceServiceBean extends BaseDAOSupport<StockOutInvoice>
andCriteria.add(cb.lessThanOrEqualTo(stockout.<BigDecimal>get("totalPrice"), maxTotal)); andCriteria.add(cb.lessThanOrEqualTo(stockout.<BigDecimal>get("totalPrice"), maxTotal));
} }
break; break;
case MATERIALKEEPERNAME: case REGULATORNAME:
if (value != null && !value.equals("")) { if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockout.<String>get("materialKeeperName"), "%" + value + "%")); andCriteria.add(cb.like(stockout.<String>get("regulator"), "%" + value + "%"));
} }
break; break;
case WAREKEEPERNAME: case WAREKEEPERNAME:
if (value != null && !value.equals("")) { if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockout.<String>get("wareKeeperName"), "%" + value + "%")); andCriteria.add(cb.like(stockout.<String>get("wareKeeper"), "%" + value + "%"));
} }
break; break;
case PROJECTMANAGERNAME: case MANAGERNAME:
if (value != null && !value.equals("")) { if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockout.<String>get("projectManagerName"), "%" + value + "%")); andCriteria.add(cb.like(stockout.<String>get("manager"), "%" + value + "%"));
}
break;
case MATERIALKEEPERID:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockout.get("system").get("project").get("materialKeeper").<Long>get("id"), Long.valueOf(value)));
}
break;
case WAREKEEPERID:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockout.get("system").get("project").get("wareKeeper").<Long>get("id"), Long.valueOf(value)));
}
break;
case PROJECTMANAGERID:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockout.get("system").get("project").get("projectManager").<Long>get("id"), Long.valueOf(value)));
}
break;
case MATERIALKEEPERAUDITSTATE:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockout.get("materialKeeperAuditState"),AuditState.valueOf(value)));
}
break;
case WAREKEEPERAUDITSTATE:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockout.get("wareKeeperAuditState"),AuditState.valueOf(value)));
}
break;
case PROJECTMANAGERAUDITSTATE:
if (value != null && !value.equals("")) {
andCriteria.add(cb.equal(stockout.get("projectManagerAuditState"),AuditState.valueOf(value)));
} }
break; break;
case RECEIVEMANNAME : case RECEIVEMANNAME :
......
...@@ -3,10 +3,13 @@ package com.originspark.drp.service.resources; ...@@ -3,10 +3,13 @@ package com.originspark.drp.service.resources;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.stereotype.Service;
import com.originspark.drp.dao.BaseDAO; import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.resources.Vendor; import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Service
public interface VendorService extends BaseDAO<Vendor>{ public interface VendorService extends BaseDAO<Vendor>{
List<Vendor> pagedDataSet(int start, int limit, List<FilterRequest> filters); List<Vendor> pagedDataSet(int start, int limit, List<FilterRequest> filters);
......
...@@ -17,7 +17,7 @@ import com.originspark.drp.models.resources.Vendor; ...@@ -17,7 +17,7 @@ import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.models.resources.Vendor.COLUMNS; import com.originspark.drp.models.resources.Vendor.COLUMNS;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Service @Service("vendorService")
public class VendorServiceBean extends BaseDAOSupport<Vendor> implements VendorService { public class VendorServiceBean extends BaseDAOSupport<Vendor> implements VendorService {
@Override @Override
......
package com.originspark.drp.service.resources;
import java.util.List;
import org.springframework.stereotype.Service;
import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.resources.WareCategory;
@Service
public interface WareCategoryService extends BaseDAO<WareCategory>{
List<WareCategory> treeViewData();
}
package com.originspark.drp.service.resources;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.originspark.drp.dao.BaseDAOSupport;
import com.originspark.drp.models.resources.WareCategory;
@Transactional
@Service("wareCategoryService")
public class WareCategoryServiceBean extends BaseDAOSupport<WareCategory> implements
WareCategoryService {
@Override
public List<WareCategory> treeViewData() {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<WareCategory> dataQuery = cb.createQuery(WareCategory.class);
Root<WareCategory> category = dataQuery.from(WareCategory.class);
dataQuery.select(category);
dataQuery.where(cb.isNull(category.get("parent")));
return em.createQuery(dataQuery).getResultList();
}
}
...@@ -4,10 +4,13 @@ package com.originspark.drp.service.resources; ...@@ -4,10 +4,13 @@ package com.originspark.drp.service.resources;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.stereotype.Service;
import com.originspark.drp.dao.BaseDAO; import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.resources.Ware; import com.originspark.drp.models.resources.Ware;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Service
public interface WareService extends BaseDAO<Ware>{ public interface WareService extends BaseDAO<Ware>{
List<Ware> pagedDataSet(int start, int limit, List<FilterRequest> filters); List<Ware> pagedDataSet(int start, int limit, List<FilterRequest> filters);
......
...@@ -23,7 +23,7 @@ import com.originspark.drp.models.resources.Ware.COLUMNS; ...@@ -23,7 +23,7 @@ import com.originspark.drp.models.resources.Ware.COLUMNS;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Transactional @Transactional
@Service @Service("wareService")
public class WareServiceBean extends BaseDAOSupport<Ware> implements public class WareServiceBean extends BaseDAOSupport<Ware> implements
WareService { WareService {
......
...@@ -2,13 +2,17 @@ package com.originspark.drp.service.users; ...@@ -2,13 +2,17 @@ package com.originspark.drp.service.users;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.stereotype.Service;
import com.originspark.drp.dao.BaseDAO; import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.users.AbstractUser; import com.originspark.drp.models.User;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
public interface UserService extends BaseDAO<AbstractUser>{ @Service
public interface UserService extends BaseDAO<User>{
List<AbstractUser> pagedDataSet(int start, int limit,List<FilterRequest> filters); List<User> pagedDataSet(int start, int limit,List<FilterRequest> filters);
Long pagedDataCount(List<FilterRequest> filters); Long pagedDataCount(List<FilterRequest> filters);
......
...@@ -13,23 +13,23 @@ import org.springframework.stereotype.Service; ...@@ -13,23 +13,23 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.originspark.drp.dao.BaseDAOSupport; import com.originspark.drp.dao.BaseDAOSupport;
import com.originspark.drp.models.users.AbstractUser; import com.originspark.drp.models.User;
import com.originspark.drp.models.users.AbstractUser.COLUMNS; import com.originspark.drp.models.User.COLUMNS;
import com.originspark.drp.util.enums.Gender; import com.originspark.drp.util.enums.Gender;
import com.originspark.drp.util.enums.Status; import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.json.FilterRequest; import com.originspark.drp.util.json.FilterRequest;
@Transactional @Transactional
@Service @Service("userService")
public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements UserService { public class UserServiceBean extends BaseDAOSupport<User> implements UserService {
@Override @Override
public List<AbstractUser> pagedDataSet(int start, int limit,List<FilterRequest> filters) { public List<User> pagedDataSet(int start, int limit,List<FilterRequest> filters) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<AbstractUser> dataQuery = cb.createQuery(AbstractUser.class); CriteriaQuery<User> dataQuery = cb.createQuery(User.class);
Root<AbstractUser> user = dataQuery.from(AbstractUser.class); Root<User> user = dataQuery.from(User.class);
dataQuery.select(user); dataQuery.select(user);
...@@ -47,7 +47,7 @@ public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements Use ...@@ -47,7 +47,7 @@ public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements Use
public Long pagedDataCount(List<FilterRequest> filters) { public Long pagedDataCount(List<FilterRequest> filters) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Long> countQuery = cb.createQuery(Long.class); CriteriaQuery<Long> countQuery = cb.createQuery(Long.class);
Root<AbstractUser> user = countQuery.from(AbstractUser.class); Root<User> user = countQuery.from(User.class);
countQuery.select(cb.count(user)); countQuery.select(cb.count(user));
Predicate[] predicates = toPredicates(cb, user, filters); Predicate[] predicates = toPredicates(cb, user, filters);
...@@ -65,7 +65,7 @@ public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements Use ...@@ -65,7 +65,7 @@ public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements Use
return null; return null;
} }
public static Predicate[] toPredicates(CriteriaBuilder cb, Root<AbstractUser> user, public static Predicate[] toPredicates(CriteriaBuilder cb, Root<User> user,
List<FilterRequest> filters) { List<FilterRequest> filters) {
List<Predicate> criteria = new ArrayList<Predicate>(); List<Predicate> criteria = new ArrayList<Predicate>();
......
package com.originspark.drp.util;
import java.io.File;
import java.io.FilenameFilter;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
public class AuthUtil {
private static Set<String> classNames = new HashSet<String>();
@SuppressWarnings({"rawtypes", "unchecked"})
public static Map<RoleEnum,Set<String>> initAuth(final String packageName) {
//初始化获取所有的controller.class
getClassNamesByPackage(packageName);
try {
Map<RoleEnum,Set<String>> auths = new HashMap<RoleEnum, Set<String>>();
for(String className : classNames){
Class clazz = Class.forName(className);
//先检查类是否被标记了annotation=AuthRoleGroup
if(clazz.isAnnotationPresent(AuthRoleGroup.class)){
AuthRoleGroup roleGroup = (AuthRoleGroup) clazz.getAnnotation(AuthRoleGroup.class);
RoleEnum[] types = roleGroup.type();
for(RoleEnum role : types){
Set<String> actions = auths.get(role);
if(actions==null) {
actions = new HashSet<String>();
auths.put(role, actions);
}
//检查该类的每个方法
Method[] methods = clazz.getDeclaredMethods();
for(Method method : methods){
actions.add(className+"."+method.getName());
//判断该方法上是否有额外的权限限制说明
if(method.isAnnotationPresent(AuthRoleGroup.class)){
AuthRoleGroup roleGroup2 = method.getAnnotation(AuthRoleGroup.class);
RoleEnum[] types2 = roleGroup2.type();
for(RoleEnum role2 : types2){
Set<String> actions2 = auths.get(role2);
if(actions2 == null) {
actions2 = new HashSet<String>();
auths.put(role2, actions2);
}
actions2.add(className+"."+method.getName());
}
}
}
}
}
}
return auths;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据所给的包名遍历获取下属的所有class
* @param packageName
*/
private static void getClassNamesByPackage(final String packageName) {
String packageRealName = packageName.replace(".", "/");
String packagePath = AuthUtil.class.getClassLoader().getResource(packageRealName).getPath();
File file = new File(packagePath);
file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if(name.endsWith(".class")){
String className = name.substring(0,name.lastIndexOf(".class"));
classNames.add(packageName + "." + className);
return true;
}else{
getClassNamesByPackage(packageName+"."+name);
return false;
}
}
});
}
}
package com.originspark.drp.util; package com.originspark.drp.util;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.originspark.drp.models.users.AbstractUser; import com.originspark.drp.models.User;
public class SessionUtil { public class SessionUtil {
//返回当前登陆的用户信息 //返回当前登陆的用户信息
public static AbstractUser getCurrentUser(HttpServletRequest request){ public static User getCurrentUser(HttpServletRequest request){
AbstractUser user=(AbstractUser) request.getSession().getAttribute("user"); User user=(User) request.getSession().getAttribute("user");
return user; return user;
} }
......
package com.originspark.drp.util.enums;
public enum UserType {
MANAGER,// 负责人
WAREKEEPER,// 库管员
REGULATOR// 经手人
}
package com.originspark.drp.util.extjs.menu.controllers;
import java.util.ArrayList;
import java.util.List;
import com.originspark.drp.util.extjs.menu.models.Children;
import com.originspark.drp.util.extjs.menu.models.Item;
import com.originspark.drp.util.extjs.menu.models.SubItems;
import com.originspark.drp.util.extjs.menu.models.TreeRoot;
public class ExtMenuController {
// 实时库存
static final Children menu_current_inventory = new Children(fontBlod("实时库存"), "menu_current_inventory");
// 月末盘点
static final Children menu_monthend_inventory = new Children(fontBlod("月末盘点"), "menu_monthend_inventory");
// 入库
static final Children menu_stockin = new Children(fontBlod("入库单管理"), "menu_stockin");
// 出库
static final Children menu_stockout = new Children(fontBlod("出库单管理"), "menu_stockout");
// 项目
static final Children menu_project = new Children(fontBlod("项目管理"), "menu_project");
// 材料员
static final Children menu_materialkeeper = new Children(fontBlod("材料员"), "menu_materialkeeper");
// 库管员
static final Children menu_warekeeper = new Children(fontBlod("库管员"), "menu_warekeeper");
// 项目经理
static final Children menu_projectmanager = new Children(fontBlod("项目经理"), "menu_projectmanager");
// 领导
static final Children menu_leader = new Children(fontBlod("系统管理员"), "menu_leader");
// 商品
static final Children menu_ware = new Children(fontBlod("商品"), "menu_ware");
// 供应商
static final Children menu_vendor = new Children(fontBlod("供应商"), "menu_vendor");
// 修改密码
static final Children menu_update_password = new Children(fontBlod("修改密码"), "menu_update_password");
public static List<Item> getMenusByUserType(String type) {
if (type.equals("Leader")) {
return createLeaderMenus();
} else if (type.equals("ProjectManager")) {
return createProjectManagerMenus();
} else if (type.equals("WareKeeper")) {
return createWareKeeperMenus();
} else if (type.equals("MaterialKeeper")) {
return createMaterialKeeperMenus();
} else {
return null;
}
}
private static List<Item> createMaterialKeeperMenus() {
return createProjectManagerMenus();
}
private static List<Item> createWareKeeperMenus() {
List<Item> items = new ArrayList<Item>();
items.add(buildInventories(menu_current_inventory));
items.add(buildDefaultInvoices());
items.add(buildDefaultDetails());
return items;
}
private static List<Item> createProjectManagerMenus() {
List<Item> items = new ArrayList<Item>();
items.add(buildDefaultInventories());
items.add(buildDefaultInvoices());
items.add(buildSystems(menu_ware,menu_vendor));
items.add(buildDefaultDetails());
return items;
}
private static List<Item> createLeaderMenus() {
List<Item> items = new ArrayList<Item>();
items.add(buildDefaultInventories());
items.add(buildDefaultInvoices());
items.add(buildDefaultSystems());
items.add(buildDefaultDetails());
return items;
}
// =====库存查看
private static Item buildDefaultInventories() {
return buildInventories(menu_current_inventory,menu_monthend_inventory);
}
private static Item buildInventories(Children... children) {
TreeRoot root_inventories = new TreeRoot(children);
SubItems items_inventories = new SubItems(root_inventories);
Item item_inventories = new Item(fontBlod("库存查看"), new SubItems[] {
items_inventories
});
return item_inventories;
}
// =====出入库管理
private static Item buildDefaultInvoices(){
return buildInvoices(menu_stockin,menu_stockout);
}
private static Item buildInvoices(Children... children) {
TreeRoot root_invoices = new TreeRoot(children);
SubItems items_invoices = new SubItems(root_invoices);
Item item_invoices = new Item(fontBlod("出入库管理"), new SubItems[] {
items_invoices
});
return item_invoices;
}
//=====系统管理
private static Item buildDefaultSystems(){
return buildSystems(menu_project,buildDefaultUsers(),buildDefaultWares());
}
private static Item buildSystems(Children... children) {
TreeRoot root_system = new TreeRoot(children);
SubItems items_system = new SubItems(root_system);
Item item_system = new Item(fontBlod("系统管理"), new SubItems[]{items_system});
return item_system;
}
private static Children buildDefaultUsers() {
return buildUsers(menu_materialkeeper,menu_warekeeper,menu_projectmanager,menu_leader);
}
private static Children buildUsers(Children... children) {
return new Children(fontBlod("用户管理"), children);
}
private static final Children buildDefaultWares(Children... children) {
return buildWares(menu_ware,menu_vendor);
}
private static final Children buildWares(Children... children) {
return new Children(fontBlod("商品管理"), children);
}
//=====个人信息设置
private static Item buildDetails(Children... children) {
TreeRoot root_detail = new TreeRoot(children);
SubItems items_detail = new SubItems(root_detail);
Item item_detail = new Item(fontBlod("个人信息设置"), new SubItems[]{items_detail});
return item_detail;
}
private static Item buildDefaultDetails(){
return buildDetails(menu_update_password);
}
private static String fontBlod(String text) {
return "<span style='font-weight:bold'>" + text + "</span>";
}
}
package com.originspark.drp.util.extjs.menu.models;
public class Children {
private String text;
private String id;
private boolean leaf;
private Children[] children;
public Children(String text, String id, boolean leaf) {
super();
this.text = text;
this.id = id;
this.leaf = leaf;
}
public Children(String text, String id) {
super();
this.text = text;
this.id = id;
this.leaf = true;
}
public Children(String text) {
super();
this.text = text;
this.id = null;
this.leaf = false;
}
public Children(String text,Children[] children) {
super();
this.text = text;
this.id = null;
this.leaf = false;
this.children = children;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public boolean isLeaf() {
return leaf;
}
public void setLeaf(boolean leaf) {
this.leaf = leaf;
}
public Children[] getChildren() {
return children;
}
public void setChildren(Children[] children) {
this.children = children;
}
}
package com.originspark.drp.util.extjs.menu.models;
public class Item {
private String title;
private String titleAlign="center";
private boolean autoScroll=true;
private SubItems[] items;
public Item(String title, SubItems[] items) {
super();
this.title = title;
this.items = items;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTitleAlign() {
return titleAlign;
}
public void setTitleAlign(String titleAlign) {
this.titleAlign = titleAlign;
}
public boolean isAutoScroll() {
return autoScroll;
}
public void setAutoScroll(boolean autoScroll) {
this.autoScroll = autoScroll;
}
public SubItems[] getItems() {
return items;
}
public void setItems(SubItems[] items) {
this.items = items;
}
}
package com.originspark.drp.util.extjs.menu.models;
public class SubItems {
private String xtype="treepanel";
private boolean rootVisible = false;
private String displayField = "text";
private String margin = "0 0 0 0";
private int border = 0;
private TreeRoot root;
public SubItems(TreeRoot root) {
super();
this.root = root;
}
public String getXtype() {
return xtype;
}
public void setXtype(String xtype) {
this.xtype = xtype;
}
public boolean isRootVisible() {
return rootVisible;
}
public void setRootVisible(boolean rootVisible) {
this.rootVisible = rootVisible;
}
public String getDisplayField() {
return displayField;
}
public void setDisplayField(String displayField) {
this.displayField = displayField;
}
public String getMargin() {
return margin;
}
public void setMargin(String margin) {
this.margin = margin;
}
public int getBorder() {
return border;
}
public void setBorder(int border) {
this.border = border;
}
public TreeRoot getRoot() {
return root;
}
public void setRoot(TreeRoot root) {
this.root = root;
}
}
package com.originspark.drp.util.extjs.menu.models;
public class TreeRoot {
private boolean expanded = true;
private Children[] children;
public TreeRoot(Children[] children) {
super();
this.children = children;
}
public boolean isExpanded() {
return expanded;
}
public void setExpanded(boolean expanded) {
this.expanded = expanded;
}
public Children[] getChildren() {
return children;
}
public void setChildren(Children[] children) {
this.children = children;
}
}
package com.originspark.drp.util.mapper.projects;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.web.models.projects.ProjectUI;
public class ProjectMapper {
public Project toPersistenceBean(ProjectUI uiBean) {
Project project = null;
if(uiBean != null){
project = new Project();
project.setId(uiBean.getId());
project.setName(uiBean.getName());
project.setCode(uiBean.getCode());
project.setCity(uiBean.getCity());
project.setStartDate(uiBean.getStartDate());
project.setEndDate(uiBean.getEndDate());
}
return project;
}
}
package com.originspark.drp.web.models.resources;
public class WareCategoryForm {
private Long id;
private String name;
private String code;
private Long parentId;
private boolean leaf;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public boolean isLeaf() {
return leaf;
}
public void setLeaf(boolean leaf) {
this.leaf = leaf;
}
}
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/> <property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/> <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="packagesToScan" value="com.originspark.drp.models.*"/> <property name="packagesToScan" value="com.originspark.drp.models.**"/>
<property name="jpaProperties"> <property name="jpaProperties">
<props> <props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.dialect">${hibernate.dialect}</prop>
......
...@@ -11,7 +11,7 @@ sql.type=mysql ...@@ -11,7 +11,7 @@ sql.type=mysql
jdbc.driver=com.mysql.jdbc.Driver jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/drp?useUnicode=true&characterEncoding=UTF-8 jdbc.url=jdbc:mysql://localhost:3306/drp?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root jdbc.username=root
jdbc.password=root jdbc.password=
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#hibernate settings #hibernate settings
......
...@@ -11,10 +11,6 @@ ...@@ -11,10 +11,6 @@
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan> </context:component-scan>
<!-- <mvc:interceptors>
<bean class = "com.originspark.drp.controllers.account.AuthInterceptor"></bean>
</mvc:interceptors> -->
<mvc:annotation-driven /> <mvc:annotation-driven />
<context:annotation-config /> <context:annotation-config />
...@@ -35,6 +31,9 @@ ...@@ -35,6 +31,9 @@
<property name="defaultEncoding" value="utf-8" /> <property name="defaultEncoding" value="utf-8" />
</bean> </bean>
<bean class="com.originspark.drp.processor.UTF8StringBeanPostProcessor" /> <bean class="com.originspark.drp.processor.UTF8StringBeanPostProcessor" />
<mvc:interceptors>
<bean class="com.originspark.drp.controllers.BaseController"/>
</mvc:interceptors>
</beans> </beans>
\ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>后台管理首页</title> <title>后台管理首页</title>
<base href="<%=basePath%>">
<%@ include file="/common/meta.jsp"%> <%@ include file="/common/meta.jsp"%>
<%@ include file="/common/Ext.jsp"%> <%@ include file="/common/Ext.jsp"%>
<%@ include file="/common/global.jsp"%> <%@ include file="/common/global.jsp"%>
......
...@@ -32,12 +32,6 @@ ...@@ -32,12 +32,6 @@
<filter-name>openEntityManagerInViewFilter</filter-name> <filter-name>openEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping> </filter-mapping>
<servlet>
<description>初始化系统</description>
<servlet-name>InitSystemServlet</servlet-name>
<servlet-class>com.originspark.drp.controllers.InitSystemServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet> <servlet>
<servlet-name>springServlet</servlet-name> <servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
......
Ext.define("wms.app.controller.UpdatePasswordController",{
extend : "Ext.app.Controller",
init : function() {
this.control({
//修改密码
'updatepasswordview button[action=updatepassword]':{
click : this.updatepassword
},
'updatepasswordview button[action=cancel]':{
click : this.cancel
}
});
},
updatepassword : function (btn , e){
var panel = btn.up('updatepasswordview');
var updatepwdform = panel.down('form');
var updatepwdvalues = updatepwdform.getForm().getValues();
if(updatepwdvalues.newpwd != updatepwdvalues.newpwdagain){
Ext.MessageBox.alert('提示','两次输入的密码不一致!');
return false;
}
Ext.Ajax.request({
url : ctx + '/profile/updatepassword',
method : 'GET',
params : {
data : Ext.encode(updatepwdvalues)
},
success : function(response) {
var msg = Ext.decode(response.responseText);
Ext.Msg.alert("提示",msg.message);
}
});
},
cancel : function(btn,e){
var panel = btn.up('updatepasswordview').close();
},
views :["wms.app.view.UpdatePasswordView"]
})
\ No newline at end of file
Ext.define("wms.app.controller.resources.VendorController", {
extend : "wms.app.controller.AbstractController",
vendorGrid : null,
me : null,
init : function() {
me = this;
this.control({
'vendorview' : {
afterrender : function(panel) {
vendorGrid = panel.down('gridpanel');
vendorGrid.getStore().load();
//只有材料员可以创建删除供应商
if(user.type != "MaterialKeeper"){
vendorGrid.down('toolbar').setVisible(false);
vendorGrid.on("itemdblclick",function(){
return false;
})
}
}
},
// 查询
'vendorview button[action=searchVendor]' : {
click : this.searchVendor
},
// 增加
'vendorview button[action=addVendor]' : {
click : this.showCreateVendorForm
},
// 更新
'vendorview gridpanel' : {
itemdblclick : this.showUpdateVendorForm
},
// 删除
'vendorview button[action=deleteVendor]' : {
click : this.deleteVendor
},
'vendorviewform button[action=submitVendorForm]' : {
click : this.submitVendorForm
},
'vendorviewform button[action=closeVendorForm]' : {
click : this.closeVendorForm
}
});
},
showCreateVendorForm : function(btn) {
var vendorForm = Ext.widget("vendorviewform");
AlertWin.alert('新增供应商', null, vendorForm, 500, 370);
},
showUpdateVendorForm : function(grid, record, item, index, e, eopts) {
var vendorForm = Ext.widget("vendorviewform");
if (!record) {
me.showPromptsOnUpdate("供应商");
return;
} else {
vendorForm.down('form').loadRecord(record);
AlertWin.alert('修改供应商', null, vendorForm, 500, 370);
}
},
deleteVendor : function(btn) {
var count = 0;//记录关联的商品数量不为0的供应商数目
var records = vendorGrid.getSelectionModel().getSelection();
var ids = [];
for(var i = 0,len = records.length;i<len;i++){
var record = records[i].data;
if(record.countOfWares==0){
ids[i] = record.id;
}else{
count++;
}
}
if(ids.length == 0){
Ext.MessageBox.alert("提示","只允许删除供应商品数量为0的供应商");
return;
}
var msg = "确定删除所选的供应商吗?";
if(count > 0){
msg += "(其中有<font color='red'>"+count+"</font>条数据将跳过,只允许删除供应商品数量为0的供应商)";
}
var data = new Object({ids : ids});
Ext.MessageBox.confirm("提示", msg , function(btn) {
if (btn == 'yes') {
Ext.Ajax.request({
url : ctx+"/vendor/deleteBatch",
method : "GET",
params : {
data : Ext.encode(data)
},
success : function(response, operation){
var resp = Ext.decode(response.responseText);
Ext.Msg.alert("成功!", resp.message);
vendorGrid.getStore().load();
},
failure : function(response, operation) {
Ext.Msg.alert("失败!", operation.request.scope.reader.jsonData["message"]);
}
});
}
});
},
submitVendorForm : function(btn) {
var modelName = "wms.app.model.resources.VendorModel";
me.submitForm(btn, vendorGrid, modelName);
},
// 关闭表单窗口
closeVendorForm : function(btn) {
me.closeForm();
},
searchVendor : function(btn) {
var store = vendorGrid.getStore();
store.filters.clear();
var form = btn.up("form");
store.filter([ {
property : "name",
value : form.down("#vendorName_filter").getValue()
}, {
property : "address",
value : form.down("#vendorAddress_filter").getValue()
}, {
property : "phone",
value : form.down("#vendorPhone_filter").getValue()
}, {
property : "contactMan",
value : form.down("#vendorContactMan_filter").getValue()
} ]);
},
models : [ "wms.app.model.resources.VendorModel" ],
stores : [ "wms.app.store.resources.VendorStore" ],
views : [ "wms.app.view.resources.VendorView",
"wms.app.view.resources.VendorViewForm" ]
});
\ No newline at end of file
Ext.define("wms.app.controller.resources.WareController", {
extend : "wms.app.controller.AbstractController",
wareGrid : null,
me : null,
init : function() {
me = this;
this.control({
'wareview' : {
afterrender : function(panel) {
wareGrid = panel.down('gridpanel');
wareGrid.getStore().load();
//只有材料员可以创建删除商品
if(user.type != "MaterialKeeper"){
wareGrid.down('toolbar').setVisible(false);
wareGrid.on("itemdblclick",function(){
return false;
})
}
}
},
// 查询商品
'wareview button[action=searchWare]' : {
click : this.searchWare
},
// 新增商品
'wareview button[action=addWare]' : {
click : this.showCreateWareForm
},
// 更新商品
'wareview gridpanel' : {
itemdblclick : this.showUpdateWareForm
},
// 删除商品
'wareview button[action=deleteWare]' : {
click : this.deleteWare
},
'wareviewform button[action=submitWareForm]' : {
click : this.submitWareForm
},
'wareviewform button[action=closeWareForm]' : {
click : this.closeWareForm
},
// excel导入
'wareview button[action=importExcel]' : {
click : function(btn){
var uploadFileform = Ext.widget("uploadfileformview");
AlertWin.alert('导入商品', null, uploadFileform, 500, 120);
}
},
// excel导出
'wareview button[action=exportExcel]' : {
click : function(btn){
var records = wareGrid.getSelectionModel().getSelection();
var count = records.length;
if(count == 0){
Ext.MessageBox.alert("提示","请先选择要导出的商品");
return false;
}
var ids = "";
for(var i = 0;i<count-1;i++){
var wareId = records[i].data.id;
ids += wareId+",";
}
ids += records[count-1].data.id;
var msg = "你确定要导出已选择的"+count+"个商品吗?";
Ext.MessageBox.confirm("提示", msg , function(btn) {
if (btn == 'yes') {
document.location = ctx+"/ware/export?ids="+ids;
}
});
}
},
'uploadfileformview button[action=submitExcel]' :{
click : function(btn){
var view = btn.up('uploadfileformview');
var waitMsg = new Ext.LoadMask(view, {
msg : "数据导入中,请不要关闭刷新窗口..."
});
waitMsg.show();
btn.up('form').getForm().submit({
url : ctx+'/ware/uploadExcel',
method : "POST",
success : function(form, action){
waitMsg.hide();
AlertWin.hide();
Ext.MessageBox.alert('成功', '导入成功,请刷新查看');
},
failure : function(form, action){
waitMsg.hide();
Ext.MessageBox.alert('失败', '网络连接错误,请尝试重新上传');
}
});
}
},
'uploadfileformview button[action=cancelExcel]' : {
click : function(){
AlertWin.hide();
}
}
});
},
showCreateWareForm : function(btn) {
var wareForm = Ext.widget("wareviewform");
AlertWin.alert('新增商品', null, wareForm, 500, 280);
},
showUpdateWareForm : function(grid, record, item, index, e, eopts) {
var wareForm = Ext.widget("wareviewform");
if (!record) {
me.showPromptsOnUpdate("商品");
return;
} else {
wareForm.down('form').loadRecord(record);
AlertWin.alert('修改商品', null, wareForm, 500, 280);
}
},
deleteWare : function(btn) {
var count = 0;//记录关联的单据数量不为0的商品数目
var records = wareGrid.getSelectionModel().getSelection();
var ids = [];
for(var i = 0,len = records.length;i<len;i++){
var record = records[i].data;
if(record.countOfInCosts==0 && record.countOfOutCosts==0 && record.countOfInventories==0){
ids[i] = record.id;
}else{
count++;
}
}
if(ids.length == 0){
Ext.MessageBox.alert("提示","只允许删除关联单据数量均为0的商品");
return;
}
var msg = "确定删除所选的商品吗?";
if(count > 0){
msg += "(其中有<font color='red'>"+count+"</font>条数据将跳过,只允许删除关联库单数量均为0的商品)";
}
var data = new Object({ids : ids});
Ext.MessageBox.confirm("提示", msg , function(btn) {
if (btn == 'yes') {
Ext.Ajax.request({
url : ctx+"/ware/deleteBatch",
method : "GET",
params : {
data : Ext.encode(data)
},
success : function(response, operation){
var resp = Ext.decode(response.responseText);
Ext.Msg.alert("成功!", resp.message);
wareGrid.getStore().load();
},
failure : function(response, operation) {
Ext.Msg.alert("失败!", operation.request.scope.reader.jsonData["message"]);
}
});
}
});
},
submitWareForm : function(btn) {
var modelName = "wms.app.model.resources.WareModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
//add extra field
var vendorField = null;
if(formBean['vendor.id']){
vendorField = new Ext.data.Field({name:'vendor'});
model.fields.add(vendorField);
model.set("vendor",{
id : formBean['vendor.id']
});
}
//save model
me.saveModel(model, wareGrid);
//remove extra field
if(vendorField != null){
model.fields.remove(vendorField);
}
}
},
closeWareForm : function(btn) {
me.closeForm();
},
searchWare : function(btn) {
var store = wareGrid.getStore();
store.filters.clear();
var form = btn.up("form");
store.filter([ {
property : "name",
value : form.down("#wareName_filter").getValue()
}, {
property : "vendor",
value : form.down("#wareVendor_filter").getValue()
}, {
property : "brand",
value : form.down("#wareBrand_filter").getValue()
}, {
property : "model",
value : form.down("#wareModel_filter").getValue()
}, {
property : "unit",
value : form.down("#wareUnit_filter").getValue()
}]);
},
models : [ "wms.app.model.resources.WareModel" ],
stores : [ "wms.app.store.resources.WareStore", "wms.app.store.resources.VendorStore"],
views : [ "wms.app.view.resources.WareView",
"wms.app.view.resources.WareViewForm","wms.widget.UploadFileForm" ]
});
\ No newline at end of file
Ext.define("wms.app.controller.users.LeaderController", {
extend : "wms.app.controller.AbstractController",
leaderGrid : null,
me : null,
init : function() {
me = this;
this.control({
'leaderview' : {
afterrender : function(panel) {
leaderGrid = panel.down('gridpanel');
leaderGrid.getStore().load();
}
},
// 查询
'leaderview button[action=searchLeader]' : {
click : this.searchLeader
},
// 增加
'leaderview button[action=addLeader]' : {
click : this.showCreateLeaderForm
},
// 更新
'leaderview gridpanel' : {
itemdblclick : this.showUpdateLeaderForm
},
// 注销
'leaderview button[action=deleteLeader]' : {
click : this.deleteLeader
},
'leaderviewform button[action=submitLeaderForm]' : {
click : this.submitLeaderForm
},
'leaderviewform button[action=closeLeaderForm]' : {
click : this.closeLeaderForm
}
});
},
searchLeader : function(btn){
var store = leaderGrid.getStore();
store.filters.clear();
var form = btn.up("form");
store.filter([ {
property : "name",
value : form.down("#name_filter").getValue()
}, {
property : "code",
value : form.down("#code_filter").getValue()
}, {
property : "phone",
value : form.down("#phone_filter").getValue()
}, {
property : "email",
value : form.down("#email_filter").getValue()
}, {
property : "gender",
value : form.down("#gender_filter").getValue()
}, {
property : "status",
value : form.down("#status_filter").getValue()
}]);
},
showCreateLeaderForm : function(btn) {
var wareForm = Ext.widget("leaderviewform");
AlertWin.alert('新增管理员', null, wareForm, 500, 220);
},
showUpdateLeaderForm : function(grid, record, item, index, e, eopts) {
var wareForm = Ext.widget("leaderviewform");
if (!record) {
me.showPromptsOnUpdate("管理员");
return;
} else {
wareForm.down('form').loadRecord(record);
AlertWin.alert('修改管理员', null, wareForm, 500, 220);
}
},
deleteLeader : function(btn) {
me.deleteBatchModel(btn,leaderGrid,"管理员","/leader/deleteBatch");
},
submitLeaderForm : function(btn) {
var modelName = "wms.app.model.users.LeaderModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
me.saveModel(model, leaderGrid);
}
},
closeLeaderForm : function(btn) {
me.closeForm();
},
models : [ "wms.app.model.users.LeaderModel" ],
stores : [ "wms.app.store.users.LeaderStore" ],
views : [ "wms.app.view.users.LeaderView","wms.app.view.users.LeaderViewForm" ]
});
\ No newline at end of file
Ext.define("wms.app.controller.users.MaterialKeeperController", {
extend : "wms.app.controller.AbstractController",
materialKeeperGrid : null,
me : null,
init : function() {
me = this;
this.control({
'materialkeeperview' : {
afterrender : function(panel) {
materialKeeperGrid = panel.down('gridpanel');
materialKeeperGrid.getStore().load();
}
},
// 查询
'materialkeeperview button[action=searchMaterialKeeper]' : {
click : this.searchMaterialKeeper
},
// 增加
'materialkeeperview button[action=addMaterialKeeper]' : {
click : this.showCreateMaterialKeeperForm
},
// 更新
'materialkeeperview gridpanel' : {
itemdblclick : this.showUpdateMaterialKeeperForm
},
// 注销
'materialkeeperview button[action=deleteMaterialKeeper]' : {
click : this.deleteMaterialKeeper
},
'materialkeeperviewform button[action=submitMaterialKeeperForm]' : {
click : this.submitMaterialKeeperForm
},
'materialkeeperviewform button[action=closeMaterialKeeperForm]' : {
click : this.closeMaterialKeeperForm
}
});
},
searchMaterialKeeper : function(btn){
var store = materialKeeperGrid.getStore();
store.filters.clear();
var form = btn.up("form");
store.filter([ {
property : "name",
value : form.down("#name_filter").getValue()
}, {
property : "code",
value : form.down("#code_filter").getValue()
}, {
property : "phone",
value : form.down("#phone_filter").getValue()
}, {
property : "email",
value : form.down("#email_filter").getValue()
}, {
property : "gender",
value : form.down("#gender_filter").getValue()
}, {
property : "status",
value : form.down("#status_filter").getValue()
}]);
},
showCreateMaterialKeeperForm : function(btn) {
var wareForm = Ext.widget("materialkeeperviewform");
AlertWin.alert('新增材料管理员', null, wareForm, 500, 220);
},
showUpdateMaterialKeeperForm : function(grid, record, item, index, e, eopts) {
var wareForm = Ext.widget("materialkeeperviewform");
if (!record) {
me.showPromptsOnUpdate("材料管理员");
return;
} else {
wareForm.down('form').loadRecord(record);
AlertWin.alert('修改材料管理员', null, wareForm, 500, 220);
}
},
deleteMaterialKeeper : function(btn) {
// me.deleteModel(btn, materialKeeperGrid, "材料管理员");
me.deleteBatchModel(btn,materialKeeperGrid,"材料管理员","/materialKeeper/deleteBatch");
},
submitMaterialKeeperForm : function(btn) {
var modelName = "wms.app.model.users.MaterialKeeperModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
me.saveModel(model, materialKeeperGrid);
}
},
closeMaterialKeeperForm : function(btn) {
me.closeForm();
},
models : [ "wms.app.model.users.MaterialKeeperModel" ],
stores : [ "wms.app.store.users.MaterialKeeperStore" ],
views : [ "wms.app.view.users.MaterialKeeperView","wms.app.view.users.MaterialKeeperViewForm" ]
});
\ No newline at end of file
Ext.define("wms.app.controller.users.ProjectManagerController", {
extend : "wms.app.controller.AbstractController",
projectManagerGrid : null,
me : null,
init : function() {
me = this;
this.control({
'projectmanagerview' : {
afterrender : function(panel) {
projectManagerGrid = panel.down('gridpanel');
projectManagerGrid.getStore().load();
}
},
// 查询
'projectmanagerview button[action=searchProjectManager]' : {
click : this.searchProjectManager
},
// 增加
'projectmanagerview button[action=addProjectManager]' : {
click : this.showCreateProjectManagerForm
},
// 更新
'projectmanagerview gridpanel' : {
itemdblclick : this.showUpdateProjectManagerForm
},
// 注销
'projectmanagerview button[action=deleteProjectManager]' : {
click : this.deleteProjectManager
},
'projectmanagerviewform button[action=submitProjectManagerForm]' : {
click : this.submitProjectManagerForm
},
'projectmanagerviewform button[action=closeProjectManagerForm]' : {
click : this.closeProjectManagerForm
}
});
},
searchProjectManager : function(btn){
var store = projectManagerGrid.getStore();
store.filters.clear();
var form = btn.up("form");
store.filter([ {
property : "name",
value : form.down("#name_filter").getValue()
}, {
property : "code",
value : form.down("#code_filter").getValue()
}, {
property : "phone",
value : form.down("#phone_filter").getValue()
}, {
property : "email",
value : form.down("#email_filter").getValue()
}, {
property : "gender",
value : form.down("#gender_filter").getValue()
}, {
property : "status",
value : form.down("#status_filter").getValue()
}]);
},
showCreateProjectManagerForm : function(btn) {
var wareForm = Ext.widget("projectmanagerviewform");
AlertWin.alert('新增项目经理', null, wareForm, 500, 220);
},
showUpdateProjectManagerForm : function(grid, record, item, index, e, eopts) {
var wareForm = Ext.widget("projectmanagerviewform");
if (!record) {
me.showPromptsOnUpdate("项目经理");
return;
} else {
wareForm.down('form').loadRecord(record);
AlertWin.alert('修改项目经理', null, wareForm, 500, 220);
}
},
deleteProjectManager : function(btn) {
//me.deleteModel(btn, projectManagerGrid, "项目经理");
me.deleteBatchModel(btn,projectManagerGrid,"项目经理","/projectManager/deleteBatch");
},
submitProjectManagerForm : function(btn) {
var modelName = "wms.app.model.users.ProjectManagerModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
me.saveModel(model, projectManagerGrid);
}
},
closeProjectManagerForm : function(btn) {
me.closeForm();
},
models : [ "wms.app.model.users.ProjectManagerModel" ],
stores : [ "wms.app.store.users.ProjectManagerStore" ],
views : [ "wms.app.view.users.ProjectManagerView","wms.app.view.users.ProjectManagerViewForm" ]
});
\ No newline at end of file
Ext.define("wms.app.model.users.ProjectManagerModel", {
extend : "wms.app.model.users.AbstractUserModel",
proxy : {
type : 'rest',
url : ctx+'/projectManager',
reader : {
type : "json",
root : "data",
successProperty : 'success',
totalProperty : 'total'
},
writer : {
type : "json"
},
listeners : {
exception : function(proxy, response, operation) {
Ext.MessageBox.show({
title : '系统出现异常',
msg : operation.getError(),
icon : Ext.MessageBox.ERROR,
buttons : Ext.Msg.OK
});
}
}
}
});
\ No newline at end of file
Ext.define("wms.app.store.projects.ProjectDataStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.projects.ProjectModel'
});
\ No newline at end of file
Ext.define("wms.app.store.projects.costs.StockInCostStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.projects.costs.StockInCostModel'
});
\ No newline at end of file
Ext.define("wms.app.store.projects.costs.StockOutCostStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.projects.costs.StockOutCostModel'
});
\ No newline at end of file
Ext.define("wms.app.store.projects.invoices.StockInInvoiceStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.projects.invoices.StockInInvoiceModel'
});
\ No newline at end of file
Ext.define("wms.app.store.projects.invoices.StockOutInvoiceStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.projects.invoices.StockOutInvoiceModel'
});
\ No newline at end of file
Ext.define("wms.app.store.resources.VendorStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.resources.VendorModel'
});
\ No newline at end of file
Ext.define("wms.app.store.resources.WareStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.resources.WareModel'
});
\ No newline at end of file
Ext.define("wms.app.store.users.LeaderStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.users.LeaderModel'
});
\ No newline at end of file
Ext.define("wms.app.store.users.MaterialKeeperStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.users.MaterialKeeperModel'
});
\ No newline at end of file
Ext.define("wms.app.store.users.ProjectManagerStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.users.ProjectManagerModel'
});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment