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
Ext.define("wms.app.store.users.WareKeeperStore", {
extend : 'wms.app.store.AbstractStore',
model : 'wms.app.model.users.WareKeeperModel'
});
\ No newline at end of file
Ext.define("wms.app.view.UpdatePasswordView",{
extend : 'Ext.panel.Panel',
alias : 'widget.updatepasswordview',
margins : '100 0 0 200',
border : 0,
title : '密码修改',
closable : true,
width: 430,
height :250,
layout : 'hbox',
align : 'center',
items :[{
xtype : 'panel',
bodyPadding : 10,
title : '密码修改',
width: 420,
items :[{
xtype : 'form',
frame:true,
bodyStyle:'padding:5px 5px 0',
width: 400,
height :250,
items :[{
xtype : 'textfield',
inputType:'password',
margin : '50 0 0 50',
name: 'pwd',
fieldLabel : '原密码'
}, {
xtype : 'textfield',
inputType:'password',
margin : '20 0 0 50',
name: 'newpwd',
fieldLabel : '新密码'
}, {
xtype : 'textfield',
inputType:'password',
margin : '20 0 0 50',
name: 'newpwdagain',
fieldLabel : '确认密码'
}, {
xtype : 'button',
margin : '30 0 0 80',
itemId : 'updatepassword_btn',
action : 'updatepassword',
text : '修改',
width : 70,
height : 25
},{
xtype : 'button',
margin : '30 0 0 60',
itemId : 'cancel_btn',
action : 'cancel',
text : '取消',
width : 70,
height : 25
}]
}]
}]
});
\ No newline at end of file
Ext.define('wms.app.view.users.LeaderView', {
extend : 'Ext.panel.Panel',
alias : 'widget.leaderview',
margins : '0 0 0 0',
border : 0,
title : '<center height=40>系统管理员</center>',
autoScroll : true,
closable : true,
layout : {
type : 'border'
},
initComponent : function() {
var me = this;
var selModel = Ext.create('Ext.selection.CheckboxModel', {
listeners : {
selectionchange : function(sm, selections) {
me.down('#deleteLeader_itemId').setDisabled(selections.length == 0);
}
}
});
Ext.applyIf(me, {
items : [{
xtype : 'panel',
region : 'north',
title : '查询',
collapsible : true,
items : [{
xtype : 'form',
items : [{
xtype : 'fieldcontainer',
layout : 'column',
items : [{
xtype : 'textfield',
labelWidth: 60,
margin : '5 0 0 10',
itemId : 'name_filter',
fieldLabel : '姓名'
}, {
xtype : 'textfield',
labelWidth: 60,
margin : '5 0 0 15',
itemId : 'code_filter',
fieldLabel : '编号'
}, {
xtype : 'textfield',
labelWidth: 60,
margin : '5 0 0 15',
itemId : 'phone_filter',
fieldLabel : '电话号码'
}]
}, {
xtype : 'fieldcontainer',
layout : 'column',
items : [{
xtype : 'textfield',
labelWidth: 60,
margin : '5 0 0 10',
itemId : 'email_filter',
fieldLabel : 'Email'
}, {
xtype : 'combobox',
labelWidth: 60,
margin : '5 0 0 15',
itemId : 'gender_filter',
fieldLabel : '性别',
displayField : 'name',
valueField : 'value',
store : Ext.create('Ext.data.Store', {
fields : ['value', 'name'],
data : [{
"value" : "MALE",
"name" : ""
}, {
"value" : "FEMALE",
"name" : ""
}]
})
}, {
xtype : 'combobox',
labelWidth: 60,
margin : '5 0 0 15',
itemId : 'status_filter',
fieldLabel : '状态',
displayField : 'name',
valueField : 'value',
store : Ext.create('Ext.data.Store', {
fields : ['value', 'name'],
data : [{
"value" : "ACTIVE",
"name" : "可用"
}, {
"value" : "INACTIVE",
"name" : "不可用"
}, {
"value" : "DESTORYED",
"name" : "已注销"
}]
})
}, {
xtype : 'button',
margin : '5 0 0 20',
action : 'searchLeader',
icon : 'resources/images/icons/search.png',
text : '查询'
}, {
xtype : 'button',
margin : '5 0 0 20',
icon : 'resources/images/icons/refresh.gif',
text : '清空',
listeners : {
click : function(btn){
btn.up('form').getForm().reset();
}
}
}]
}]
}]
}, {
xtype : 'gridpanel',
region : 'center',
autoScroll : true,
columnLines : true,
selModel : selModel,
store : "wms.app.store.users.LeaderStore",
columns : [{
xtype : 'gridcolumn',
flex : 1,
dataIndex : 'status',
text : '状态',
renderer : function(value) {
if (value === 'ACTIVE') {
return '可用';
} else if (value === 'INACTIVE') {
return '不可用';
} else if(value === 'DESTORYED'){
return '已注销';
}
}
}, {
xtype : 'gridcolumn',
flex : 1,
dataIndex : 'code',
text : '编号'
}, {
xtype : 'gridcolumn',
flex : 1,
dataIndex : 'name',
text : '姓名'
}, {
xtype : 'gridcolumn',
flex : 1,
dataIndex : 'gender',
text : '性别',
renderer : function(value) {
if (value === 'MALE') {
return '';
} else if (value === 'FEMALE') {
return '';
} else {
return '-';
}
}
}, {
xtype : 'gridcolumn',
flex : 2,
dataIndex : 'phone',
text : '联系电话'
}, {
xtype : 'gridcolumn',
flex : 2,
dataIndex : 'address',
text : '地址'
}, {
xtype : 'gridcolumn',
flex : 2,
dataIndex : 'email',
text : '电子邮件'
}, {
xtype : 'gridcolumn',
dataIndex : 'createOn',
flex : 2,
text : '创建时间'
}, {
xtype : 'gridcolumn',
dataIndex : 'updateOn',
flex : 2,
text : '更新时间'
}],
dockedItems : [{
xtype : 'toolbar',
dock : 'top',
items : [{
xtype : 'button',
icon : 'resources/images/icons/add.png',
action : 'addLeader',
text : '新增'
}, '-', {
xtype : 'button',
icon : 'resources/images/icons/delete.png',
action : 'deleteLeader',
itemId : 'deleteLeader_itemId',
disabled : true,
text : '注销'
}]
}, {
xtype : 'pagingtoolbar',
dock : 'bottom',
displayInfo : true,
store : "wms.app.store.users.LeaderStore",
emptyMsg : "没有数据"
}]
}]
});
me.callParent(arguments);
}
});
\ No newline at end of file
Ext.define("wms.app.view.users.LeaderViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.leaderviewform',
author : '100%',
autoScroll : true,
items : [{
xtype : 'form',
items : [{
xtype : 'textfield',
hidden : true,
name : 'id'
}, {
xtype : 'textfield',
anchor : '60%',
margin : '5 0 0 5',
name : 'name',
allowBlank : false,
fieldLabel : '名称<font color="red">*</font>'
}, {
xtype : 'textfield',
anchor : '60%',
margin : '5 0 0 5',
name : 'code',
allowBlank : false,
fieldLabel : '编号<font color="red">*</font>'
}, {
xtype : 'radiogroup',
anchor : '75%',
margin : '5 0 0 5',
allowBlank : false,
fieldLabel : '性别<font color="red">*</font>',
items : [{
xtype: 'radiofield',
name : 'gender',
inputValue: 'MALE',
itemId : 'genderMale_leader_rf',
boxLabel: ''
}, {
xtype: 'radiofield',
name : 'gender',
inputValue: 'FEMALE',
boxLabel: ''
}],
listeners : {
afterrender : function(radiogroup){
if(radiogroup.getChecked().length==0){
radiogroup.down('#genderMale_leader_rf').setValue('MALE');
}
}
}
}, {
xtype : 'textfield',
anchor : '75%',
margin : '5 0 0 5',
name : 'phone',
allowBlank : false,
fieldLabel : '联系电话<font color="red">*</font>'
}, {
xtype : 'textfield',
anchor : '75%',
margin : '5 0 0 5',
name : 'address',
fieldLabel : '地址'
}, {
xtype : 'textfield',
anchor : '75%',
margin : '5 0 0 5',
name : 'email',
fieldLabel : '电子邮件'
}, {
xtype : 'radiogroup',
anchor : '75%',
margin : '5 0 0 5',
allowBlank : false,
fieldLabel : '状态<font color="red">*</font>',
items : [{
xtype: 'radiofield',
name : 'status',
inputValue: 'ACTIVE',
boxLabel: '可用'
}, {
xtype: 'radiofield',
name : 'status',
inputValue: 'INACTIVE',
boxLabel: '不可用'
}]
}, {
xtype : 'fieldcontainer',
height : 30,
anchor : '95%',
margin : '5 0 10 5',
style : 'text-align:center',
items : [{
xtype : 'button',
margin : '5 0 0 5',
action : 'submitLeaderForm',
width: 80,
text : '确认'
}, {
xtype : 'button',
margin : '5 0 0 5',
action : 'closeLeaderForm',
width: 80,
text : '取消'
}]
}]
}]
});
Ext.define('wms.base.view.CenterView', {
extend : 'Ext.tab.Panel',
alias : 'widget.centerview',
border : 0,
bodyStyle : 'padding:0px',
items : [{
xtype : 'panel',
title : '<center height=40>首页</center>',
layout : 'border',
items :[{
xtype : 'image',
region : "north",
height : "80%",
src : ctx+"/resources/images/back.png"
},{
xtype : 'panel',
region : "south",
height : "20%",
bodyStyle : {
background : '#E8E3DB'
},
html : '<div id="box_footer" style="background: url('+ctx+'/resources/images/footer/copgbg.gif);">'+
'<div style="margin-left:210px;">'+
'<div style="line-height: 23px;"> '+
'<table width="1180" border="0" cellspacing="0" cellpadding="0" margin="10 0 10 30"><tbody><tr> '+
'<td width="170" height="100"> '+
'&nbsp; <img src="'+ctx+'/resources/images/footer/company.gif"></td> '+
'<td> '+
'地址(ADD):济南市二环东路7151号港澳花园综合楼<br> '+
'电话(TEL):(0531) 85599617 85599618 传真(FAX):(0531) 85599615 E-MAIL: wavetek@sdwavetek.com<br> '+
'页面版权所有&nbsp; 山东华埠特克智能机电工程有限公司&nbsp;</td> '+
'</tr></tbody></table></div></div></div>'
}]
}]
});
\ No newline at end of file
Ext.define("wms.base.view.WestView", {
extend : 'Ext.panel.Panel',
alias : 'widget.westview',
collapsible : true,
split : true,
border : 0,
margins : '0 2 0 0',
width : 180,
titleAlign: 'center',
title : "业务导航",
align: 'center',
layout : 'accordion',
layoutConfig : {
titleCollapse : false,
animate : true,
activeOnTop : true
},
initComponent: function() {
var me = this;
me.callParent(arguments);
Ext.Ajax.request({
url : ctx+"/menu/login",
method : "GET",
success : function(response, opts){
var resp = Ext.decode(response.responseText);
me.add(resp.data);
},
failure : function(resp, opts) {
}
});
}
});
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
<link href="resources/ext411/resources/css/ext-all.css" rel="stylesheet" type="text/css" media="screen"> <link href="resources/ext411/resources/css/ext-all.css" rel="stylesheet" type="text/css" media="screen">
<script src="resources/ext411/ext-all-debug.js" charset="UTF-8" type="text/javascript"></script> <script src="resources/ext411/ext-all-debug.js" charset="UTF-8" type="text/javascript"></script>
<script src="resources/ext411/local/ext-lang-zh_CN.js" charset="UTF-8" type="text/javascript"></script> <script src="resources/ext411/local/ext-lang-zh_CN.js" charset="UTF-8" type="text/javascript"></script>
<script src="app/app.js" charset="UTF-8" type="text/javascript"></script> <script src="drp/bootstrap.js" charset="UTF-8" type="text/javascript"></script>
<%@page import="com.originspark.drp.models.users.AbstractUser,com.originspark.drp.util.json.Jackson"%> <%@page import="com.originspark.drp.models.User,com.originspark.drp.util.enums.UserType,com.originspark.drp.util.json.Jackson"%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*,org.apache.commons.lang3.StringUtils,org.apache.commons.lang3.ObjectUtils" %> <%@ page import="java.util.*,org.apache.commons.lang3.StringUtils,org.apache.commons.lang3.ObjectUtils" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...@@ -6,25 +6,21 @@ ...@@ -6,25 +6,21 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/> <c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script type="text/javascript"> <script type="text/javascript">
var ctx = '<%=request.getContextPath() %>';
<% <%
String displayUserType = ""; String displayUserType = "";
String urlUserType = ""; String urlUserType = "";
AbstractUser user = (AbstractUser)request.getSession().getAttribute("user"); User user = (User)request.getSession().getAttribute("user");
if(user!=null){ if(user!=null){
String type=user.getType(); UserType type = user.getType();
if(type.equals("Leader")){ if(type.name().equals("MANAGER")){
displayUserType="管理员"; displayUserType="负责人";
urlUserType="leader"; urlUserType="manager";
}else if(type.equals("ProjectManager")){ }else if(type.name().equals("WAREKEEPER")){
displayUserType="项目经理";
urlUserType="projectManager";
}else if(type.equals("WareKeeper")){
displayUserType="库管员"; displayUserType="库管员";
urlUserType="wareKeeper"; urlUserType="wareKeeper";
}else if(type.equals("MaterialKeeper")){ }else if(type.name().equals("REGULATOR")){
displayUserType="材料员"; displayUserType="经手人";
urlUserType="materialKeeper"; urlUserType="regulator";
}else{ }else{
displayUserType="身份未知"; displayUserType="身份未知";
urlUserType=null; urlUserType=null;
......
Ext.define("wms.app.controller.AbstractController", { Ext.define("drp.app.controller.AbstractController", {
extend : "Ext.app.Controller", extend : "Ext.app.Controller",
me : null, me : null,
...@@ -53,7 +53,7 @@ Ext.define("wms.app.controller.AbstractController", { ...@@ -53,7 +53,7 @@ Ext.define("wms.app.controller.AbstractController", {
Ext.MessageBox.confirm("标题", "确定删除所选的" + name + "吗?", function(btn) { Ext.MessageBox.confirm("标题", "确定删除所选的" + name + "吗?", function(btn) {
if (btn == 'yes') { if (btn == 'yes') {
Ext.Ajax.request({ Ext.Ajax.request({
url : ctx+actionUrl, url : actionUrl,
method : "GET", method : "GET",
params : { params : {
data : Ext.encode(data) data : Ext.encode(data)
......
Ext.define("drp.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 : 'profile/password/update',
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 :["drp.app.view.UpdatePasswordView"]
})
\ No newline at end of file
/** /**
* @author allenjin * @author allenjin
*/ */
Ext.define("wms.app.controller.projects.ProjectController", { Ext.define("drp.app.controller.projects.ProjectController", {
extend : "wms.app.controller.AbstractController", extend : "drp.app.controller.AbstractController",
projectTreePanel : null, projectTreePanel : null,
me : null, me : null,
...@@ -128,21 +128,21 @@ Ext.define("wms.app.controller.projects.ProjectController", { ...@@ -128,21 +128,21 @@ Ext.define("wms.app.controller.projects.ProjectController", {
projectForm.down('form').loadRecord(record); projectForm.down('form').loadRecord(record);
//1.设置项目经理 //1.设置项目经理
var projectManagerRecord = Ext.create("wms.app.model.users.ProjectManagerModel", { var projectManagerRecord = Ext.create("drp.app.model.users.ProjectManagerModel", {
id : record.data.projectManager.id, id : record.data.projectManager.id,
name : record.data.projectManager.name name : record.data.projectManager.name
}); });
projectForm.down('#projectManager_cb').setValue(projectManagerRecord); projectForm.down('#projectManager_cb').setValue(projectManagerRecord);
//2.设置库管员 //2.设置库管员
var WareKeeperRecord = Ext.create("wms.app.model.users.WareKeeperModel", { var WareKeeperRecord = Ext.create("drp.app.model.users.WareKeeperModel", {
id : record.data.wareKeeper.id, id : record.data.wareKeeper.id,
name : record.data.wareKeeper.name name : record.data.wareKeeper.name
}); });
projectForm.down('#wareKeeper_cb').setValue(WareKeeperRecord); projectForm.down('#wareKeeper_cb').setValue(WareKeeperRecord);
//3.设置材料员 //3.设置材料员
var MaterialKeeperRecord = Ext.create("wms.app.model.users.MaterialKeeperModel", { var MaterialKeeperRecord = Ext.create("drp.app.model.users.MaterialKeeperModel", {
id : record.data.materialKeeper.id, id : record.data.materialKeeper.id,
name : record.data.materialKeeper.name name : record.data.materialKeeper.name
}); });
...@@ -178,7 +178,7 @@ Ext.define("wms.app.controller.projects.ProjectController", { ...@@ -178,7 +178,7 @@ Ext.define("wms.app.controller.projects.ProjectController", {
}, },
submitProjectForm : function(btn) { submitProjectForm : function(btn) {
var modelName = "wms.app.model.projects.ProjectModel"; var modelName = "drp.app.model.projects.ProjectModel";
var form = btn.up('form').getForm(); var form = btn.up('form').getForm();
if (form.isValid()) { if (form.isValid()) {
var formBean = form.getValues(); var formBean = form.getValues();
...@@ -219,11 +219,11 @@ Ext.define("wms.app.controller.projects.ProjectController", { ...@@ -219,11 +219,11 @@ Ext.define("wms.app.controller.projects.ProjectController", {
} ]); } ]);
}, },
models : [ "wms.app.model.projects.ProjectModel","wms.app.model.users.ProjectManagerModel", models : [ "drp.app.model.projects.ProjectModel","drp.app.model.users.ProjectManagerModel",
"wms.app.model.users.WareKeeperModel","wms.app.model.users.MaterialKeeperModel" ], "drp.app.model.users.WareKeeperModel","drp.app.model.users.MaterialKeeperModel" ],
stores : [ "wms.app.store.projects.ProjectStore", "wms.app.store.users.ProjectManagerStore", stores : [ "drp.app.store.projects.ProjectStore", "drp.app.store.users.ProjectManagerStore",
"wms.app.store.users.MaterialKeeperStore","wms.app.store.users.WareKeeperStore"], "drp.app.store.users.MaterialKeeperStore","drp.app.store.users.WareKeeperStore"],
views : [ "wms.app.view.projects.ProjectView", views : [ "drp.app.view.projects.ProjectView",
"wms.app.view.projects.ProjectViewForm", "drp.app.view.projects.ProjectViewForm",
"wms.app.view.projects.SystemViewForm" ] "drp.app.view.projects.SystemViewForm" ]
}); });
\ No newline at end of file
Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController', { Ext.define('drp.app.controller.projects.inventories.CurrentInventoryController', {
extend : 'Ext.app.Controller', extend : 'Ext.app.Controller',
currentInventoryGrid : null, currentInventoryGrid : null,
...@@ -16,7 +16,7 @@ Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController', ...@@ -16,7 +16,7 @@ Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController',
'currentinventoryview > treepanel' : { 'currentinventoryview > treepanel' : {
select : function(treepanel, record){ select : function(treepanel, record){
var id = record.data.id; var id = record.data.id;
var _url = ctx + "/project/"+id+"/inventories/current"; var _url = "project/"+id+"/inventories/current";
currentInventoryGrid.getStore().getProxy().url = _url; currentInventoryGrid.getStore().getProxy().url = _url;
currentInventoryGrid.getStore().reload(); currentInventoryGrid.getStore().reload();
}, },
...@@ -35,7 +35,7 @@ Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController', ...@@ -35,7 +35,7 @@ Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController',
}); });
}, },
views : ['wms.app.view.projects.inventories.CurrentInventoryView'], views : ['drp.app.view.projects.inventories.CurrentInventoryView'],
models :['wms.app.model.projects.ProjectModel','wms.app.model.projects.inventories.CurrentInventoryModel'], models :['drp.app.model.projects.ProjectModel','drp.app.model.projects.inventories.CurrentInventoryModel'],
stores : ['wms.app.store.projects.inventories.CurrentInventoryStore'] stores : ['drp.app.store.projects.inventories.CurrentInventoryStore']
}); });
\ No newline at end of file
Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController', { Ext.define('drp.app.controller.projects.inventories.MonthendInventoryController', {
extend : 'Ext.app.Controller', extend : 'Ext.app.Controller',
monthendInventoryGrid : null, monthendInventoryGrid : null,
...@@ -34,7 +34,7 @@ Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController' ...@@ -34,7 +34,7 @@ Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController'
} }
projectId = record.data.id; projectId = record.data.id;
var _url = ctx + "/project/"+projectId+"/inventories/monthend"; var _url = "project/"+projectId+"/inventories/monthend";
var store = monthendInventoryGrid.getStore(); var store = monthendInventoryGrid.getStore();
store.getProxy().url = _url; store.getProxy().url = _url;
Ext.apply(store.proxy.extraParams, { Ext.apply(store.proxy.extraParams, {
...@@ -77,13 +77,13 @@ Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController' ...@@ -77,13 +77,13 @@ Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController'
return; return;
} }
var formonth = btn.up('monthendinventoryview').down('monthfield').getSubmitValue(); var formonth = btn.up('monthendinventoryview').down('monthfield').getSubmitValue();
document.location = ctx+"/project/"+projectId+"/inventories/monthend/export?formonth="+formonth; document.location = "project/"+projectId+"/inventories/monthend/export?formonth="+formonth;
} }
} }
}); });
}, },
views : ['wms.app.view.projects.inventories.MonthendInventoryView','wms.widget.MonthField'], views : ['drp.app.view.projects.inventories.MonthendInventoryView','drp.widget.MonthField'],
models :['wms.app.model.projects.ProjectModel','wms.app.model.projects.inventories.MonthEndInventoryModel'], models :['drp.app.model.projects.ProjectModel','drp.app.model.projects.inventories.MonthEndInventoryModel'],
stores : ['wms.app.store.projects.inventories.MonthEndInventoryStore'] stores : ['drp.app.store.projects.inventories.MonthEndInventoryStore']
}); });
\ No newline at end of file
/** /**
* @author Yestin * @author Yestin
*/ */
Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { Ext.define("drp.app.controller.projects.invoices.StockInInvoiceController", {
extend : "wms.app.controller.AbstractController", extend : "drp.app.controller.AbstractController",
inInvoiceController : null, inInvoiceController : null,
invoiceGrid : null, invoiceGrid : null,
...@@ -24,14 +24,14 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -24,14 +24,14 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
currentInvoice = null; currentInvoice = null;
wareWindow= false; wareWindow= false;
invoiceGrid = panel.down('gridpanel'); invoiceGrid = panel.down('gridpanel');
//只有材料员可以新建删除出库单 // //只有材料员可以新建删除出库单
if(user.type != "MaterialKeeper"){ // if(user.type != "MaterialKeeper"){
invoiceGrid.down('#addInInvoice_btn').setVisible(false); // invoiceGrid.down('#addInInvoice_btn').setVisible(false);
invoiceGrid.down('#deleteInInvoice_btn').setVisible(false); // invoiceGrid.down('#deleteInInvoice_btn').setVisible(false);
} // }
if(user.type == "Leader"){ // if(user.type == "Leader"){
invoiceGrid.down('#operationInInvoice_tb').setVisible(false); // invoiceGrid.down('#operationInInvoice_tb').setVisible(false);
} // }
} }
}, },
...@@ -97,9 +97,9 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -97,9 +97,9 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
// 加载弹窗相关的controller // 加载弹窗相关的controller
if(!wareWindow){ if(!wareWindow){
wareWindow = Ext.widget('warewindow'); wareWindow = Ext.widget('warewindow');
var WareControllerName = "wms.app.controller.resources.WareController"; var WareControllerName = "drp.app.controller.resources.WareController";
if (!Ext.ClassManager.isCreated(WareControllerName)) { if (!Ext.ClassManager.isCreated(WareControllerName)) {
var mainController = this.application.getController("wms.base.controller.MainController"); var mainController = this.application.getController("drp.base.controller.MainController");
mainController.application.getController(WareControllerName).init(); mainController.application.getController(WareControllerName).init();
} }
} }
...@@ -244,7 +244,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -244,7 +244,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
//入库商品-提交保存 //入库商品-提交保存
saveStockInCost : function(btn) { saveStockInCost : function(btn) {
var modelName = "wms.app.model.projects.costs.StockInCostModel"; var modelName = "drp.app.model.projects.costs.StockInCostModel";
var form = btn.up("form").getForm(); var form = btn.up("form").getForm();
if (form.isValid()) { if (form.isValid()) {
var formBean = form.getValues(); var formBean = form.getValues();
...@@ -423,7 +423,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -423,7 +423,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
}); });
Ext.Ajax.request({ Ext.Ajax.request({
url : ctx+"/stockInInvoice/updateAuditState", url : "stockInInvoice/updateAuditState",
method : "GET", method : "GET",
params : { params : {
data : Ext.encode(data) data : Ext.encode(data)
...@@ -444,7 +444,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -444,7 +444,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
}, },
addSystemInfo : function(btn){ addSystemInfo : function(btn){
var modelName = "wms.app.model.projects.invoices.StockInInvoiceModel"; var modelName = "drp.app.model.projects.invoices.StockInInvoiceModel";
var form = btn.up("form").getForm(); var form = btn.up("form").getForm();
if (form.isValid()) { if (form.isValid()) {
var formBean = form.getValues(); var formBean = form.getValues();
...@@ -487,7 +487,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -487,7 +487,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
}); });
Ext.Ajax.request({ Ext.Ajax.request({
url : ctx+"/stockInInvoice/updateAuditState", url : "stockInInvoice/updateAuditState",
method : "GET", method : "GET",
params : { params : {
data : Ext.encode(data) data : Ext.encode(data)
...@@ -503,18 +503,18 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", { ...@@ -503,18 +503,18 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
}); });
}, },
models : ["wms.app.model.projects.invoices.StockInInvoiceModel", models : ["drp.app.model.projects.invoices.StockInInvoiceModel",
"wms.app.model.projects.costs.StockInCostModel", "drp.app.model.projects.costs.StockInCostModel",
"wms.app.model.resources.WareModel"], "drp.app.model.resources.WareModel"],
stores : ["wms.app.store.projects.invoices.StockInInvoiceStore", stores : ["drp.app.store.projects.invoices.StockInInvoiceStore",
"wms.app.store.projects.costs.StockInCostStore", "drp.app.store.projects.costs.StockInCostStore",
"wms.app.store.projects.ProjectDataStore", "drp.app.store.projects.ProjectDataStore",
"wms.app.store.resources.WareStore", "drp.app.store.resources.WareStore",
"wms.app.store.resources.VendorStore"], "drp.app.store.resources.VendorStore"],
views : ["wms.app.view.projects.invoices.StockInInvoiceView", views : ["drp.app.view.projects.invoices.StockInInvoiceView",
"wms.app.view.projects.costs.StockInCostView", "drp.app.view.projects.costs.StockInCostView",
"wms.app.view.projects.costs.StockInCostShowView", "drp.app.view.projects.costs.StockInCostShowView",
"wms.app.view.resources.WareView", "drp.app.view.resources.WareView",
"wms.app.view.resources.WareWindow", "drp.app.view.resources.WareWindow",
"wms.app.view.resources.WareViewForm" ] "drp.app.view.resources.WareViewForm" ]
}); });
\ No newline at end of file
/** /**
* @author ReedMi * @author ReedMi
*/ */
Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { Ext.define("drp.app.controller.projects.invoices.StockOutInvoiceController", {
extend : "wms.app.controller.AbstractController", extend : "drp.app.controller.AbstractController",
me : null, me : null,
invoiceGrid : null, invoiceGrid : null,
...@@ -25,13 +25,13 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -25,13 +25,13 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
wareWindow= false; wareWindow= false;
invoiceGrid = panel.down('gridpanel'); invoiceGrid = panel.down('gridpanel');
//只有材料员可以新建删除出库单 //只有材料员可以新建删除出库单
if(user.type != "MaterialKeeper"){ /*if(user.type != "MaterialKeeper"){
invoiceGrid.down('#addOutInvoice_btn').setVisible(false); invoiceGrid.down('#addOutInvoice_btn').setVisible(false);
invoiceGrid.down('#deleteOutInvoice_btn').setVisible(false); invoiceGrid.down('#deleteOutInvoice_btn').setVisible(false);
} }
if(user.type == "Leader"){ if(user.type == "Leader"){
invoiceGrid.down('#operationOutInvoice_tb').setVisible(false); invoiceGrid.down('#operationOutInvoice_tb').setVisible(false);
} }*/
} }
}, },
...@@ -97,9 +97,9 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -97,9 +97,9 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
// 加载弹窗相关的controller // 加载弹窗相关的controller
if(!wareWindow){ if(!wareWindow){
wareWindow = Ext.widget('warewindow'); wareWindow = Ext.widget('warewindow');
var WareControllerName = "wms.app.controller.resources.WareController"; var WareControllerName = "drp.app.controller.resources.WareController";
if (!Ext.ClassManager.isCreated(WareControllerName)) { if (!Ext.ClassManager.isCreated(WareControllerName)) {
var mainController = this.application.getController("wms.base.controller.MainController"); var mainController = this.application.getController("drp.base.controller.MainController");
mainController.application.getController(WareControllerName).init(); mainController.application.getController(WareControllerName).init();
} }
} }
...@@ -253,7 +253,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -253,7 +253,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
//入库商品-提交保存 //入库商品-提交保存
saveStockOutCost : function(btn) { saveStockOutCost : function(btn) {
var modelName = "wms.app.model.projects.costs.StockOutCostModel"; var modelName = "drp.app.model.projects.costs.StockOutCostModel";
var form = btn.up("form").getForm(); var form = btn.up("form").getForm();
if (form.isValid()) { if (form.isValid()) {
var formBean = form.getValues(); var formBean = form.getValues();
...@@ -436,7 +436,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -436,7 +436,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
}); });
Ext.Ajax.request({ Ext.Ajax.request({
url : ctx+"/stockOutInvoice/updateAuditState", url : "stockOutInvoice/updateAuditState",
method : "GET", method : "GET",
params : { params : {
data : Ext.encode(data) data : Ext.encode(data)
...@@ -469,7 +469,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -469,7 +469,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
}); });
Ext.Ajax.request({ Ext.Ajax.request({
url : ctx+"/stockOutInvoice/updateAuditState", url : "stockOutInvoice/updateAuditState",
method : "GET", method : "GET",
params : { params : {
data : Ext.encode(data) data : Ext.encode(data)
...@@ -486,7 +486,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -486,7 +486,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
}, },
addSystemInfo : function(btn){ addSystemInfo : function(btn){
var modelName = "wms.app.model.projects.invoices.StockOutInvoiceModel"; var modelName = "drp.app.model.projects.invoices.StockOutInvoiceModel";
var form = btn.up("form").getForm(); var form = btn.up("form").getForm();
if (form.isValid()) { if (form.isValid()) {
var formBean = form.getValues(); var formBean = form.getValues();
...@@ -515,18 +515,18 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", { ...@@ -515,18 +515,18 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
} }
}, },
models : ["wms.app.model.projects.invoices.StockOutInvoiceModel", models : ["drp.app.model.projects.invoices.StockOutInvoiceModel",
"wms.app.model.projects.costs.StockOutCostModel", "drp.app.model.projects.costs.StockOutCostModel",
"wms.app.model.resources.WareModel"], "drp.app.model.resources.WareModel"],
stores : ["wms.app.store.projects.invoices.StockOutInvoiceStore", stores : ["drp.app.store.projects.invoices.StockOutInvoiceStore",
"wms.app.store.projects.costs.StockOutCostStore", "drp.app.store.projects.costs.StockOutCostStore",
"wms.app.store.projects.ProjectDataStore", "drp.app.store.projects.ProjectDataStore",
"wms.app.store.resources.WareStore", "drp.app.store.resources.WareStore",
"wms.app.store.resources.VendorStore"], "drp.app.store.resources.VendorStore"],
views : ["wms.app.view.projects.invoices.StockOutInvoiceView", views : ["drp.app.view.projects.invoices.StockOutInvoiceView",
"wms.app.view.projects.costs.StockOutCostView", "drp.app.view.projects.costs.StockOutCostView",
"wms.app.view.projects.costs.StockOutCostShowView", "drp.app.view.projects.costs.StockOutCostShowView",
"wms.app.view.resources.WareView", "drp.app.view.resources.WareView",
"wms.app.view.resources.WareWindow", "drp.app.view.resources.WareWindow",
"wms.app.view.resources.WareViewForm" ] "drp.app.view.resources.WareViewForm" ]
}); });
\ No newline at end of file
Ext.define("drp.app.controller.resources.VendorController", {
extend : "drp.app.controller.AbstractController",
vendorGrid : null,
me : null,
init : function() {
me = this;
this.control({
'vendorview' : {
afterrender : function(panel) {
vendorGrid = panel.down('gridpanel');
vendorGrid.getStore().load();
}
},
// 查询
'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 : "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 = "drp.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 : [ "drp.app.model.resources.VendorModel" ],
stores : [ "drp.app.store.resources.VendorStore" ],
views : [ "drp.app.view.resources.VendorView",
"drp.app.view.resources.VendorViewForm" ]
});
\ No newline at end of file
Ext.define("drp.app.controller.resources.WareCategoryController", {
extend : "drp.app.controller.AbstractController",
wareCategoryTreePanel : null,
me : null,
init : function() {
me = this;
this.control({
'warecategoryview' : {
afterrender : function(panel) {
wareCategoryTreePanel = panel.down('treepanel');
var store = wareCategoryTreePanel.getStore();
store.load({
node : store.getRootNode()
});
}
},
// 查询类别
'warecategoryview button[action=searchWareCategory]' : {
click : this.searchWareCategory
},
// 增加类别
'warecategoryview button[action=addWareCategory]' : {
click : this.showCreateWareCategoryForm
},
// 更新类别
'warecategoryview > treepanel' : {
itemdblclick : this.showUpdateWareCategoryOrSystemForm,
itemclick : function(tree, record, item, index, e, eOpts) {
tree.toggleOnDblClick = false;
}
},
// 删除类别
'warecategoryview button[action=deleteWareCategory]' : {
click : this.deleteWareCategory
},
'warecategoryviewform button[action=submitWareCategoryForm]' : {
click : this.submitWareCategoryForm
},
'warecategoryviewform button[action=closeWareCategoryForm]' : {
click : this.closeWareCategoryForm
}
});
},
showCreateWareCategoryForm : function(btn) {
var projectForm = Ext.widget("warecategoryviewform");
AlertWin.alert('新增类别', null, projectForm, 450, 120);
},
showUpdateWareCategoryOrSystemForm : function(grid, record, item, index, e, eopts) {
if (!record) {
me.showPromptsOnUpdate("数据");
return;
} else {
var wareCategoryForm = Ext.widget("warecategoryviewform");
if (!record) {
me.showPromptsOnUpdate("类别");
return;
} else {
//在弹出更新类别的form前,需要设置下面三部分内容
wareCategoryForm.down('form').loadRecord(record);
AlertWin.alert('修改类别', null, wareCategoryForm, 450, 120);
}
}
},
deleteWareCategory : function(btn) {
var record = wareCategoryTreePanel.getSelectionModel().getSelection()[0];
if (!record) {
me.showPromptsOnDelete(name);
return;
} else {
Ext.MessageBox.confirm("标题", "你要删除这个类别吗?", function(btn) {
if (btn == 'yes') {
me.destroyTreeNode(record, {
success : function(records, operation) {
wareCategoryTreePanel.getSelectionModel().deselectAll();
wareCategoryTreePanel.getStore().load();
Ext.Msg.alert("成功!", operation.request.scope.reader.jsonData["message"]);
},
failure : function(records, operation) {
Ext.Msg.alert("失败!", operation.request.scope.reader.jsonData["message"]);
}
});
}
});
}
},
submitWareCategoryForm : function(btn) {
var modelName = "drp.app.model.resources.WareCategoryModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
me.saveModel(model, wareCategoryTreePanel);
}
},
closeWareCategoryForm : function(btn) {
me.closeForm();
},
searchWareCategory : function(btn) {
var store = wareCategoryTreePanel.getStore();
store.filters.clear();
store.filter([ {
property : "name",
value : Ext.getCmp("wareCategoryName_filter").getValue()
}, {
property : "code",
value : Ext.getCmp("wareCategoryCode_filter").getValue()
}]);
},
models : [ "drp.app.model.resources.WareCategoryModel"],
stores : [ "drp.app.store.resources.WareCategoryStore"],
views : [ "drp.app.view.resources.WareCategoryView", "drp.app.view.resources.WareCategoryViewForm"]
});
\ No newline at end of file
Ext.define("drp.app.controller.resources.WareController", {
extend : "drp.app.controller.AbstractController",
wareGrid : null,
me : null,
init : function() {
me = this;
this.control({
'wareview' : {
afterrender : function(panel) {
wareGrid = panel.down('gridpanel');
wareGrid.getStore().load();
}
},
// 查询商品
'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 = "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 : '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 : "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 = "drp.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 : [ "drp.app.model.resources.WareModel" ],
stores : [ "drp.app.store.resources.WareStore", "drp.app.store.resources.VendorStore"],
views : [ "drp.app.view.resources.WareView",
"drp.app.view.resources.WareViewForm","drp.widget.UploadFileForm" ]
});
\ No newline at end of file
Ext.define("drp.app.controller.users.ManagerController", {
extend : "drp.app.controller.AbstractController",
managerGrid : null,
me : null,
init : function() {
me = this;
this.control({
'managerview' : {
afterrender : function(panel) {
managerGrid = panel.down('gridpanel');
managerGrid.getStore().load();
}
},
// 查询
'managerview button[action=searchManager]' : {
click : this.searchManager
},
// 增加
'managerview button[action=addManager]' : {
click : this.showCreateManagerForm
},
// 更新
'managerview gridpanel' : {
itemdblclick : this.showUpdateManagerForm
},
// 注销
'managerview button[action=deleteManager]' : {
click : this.deleteManager
},
'managerviewform button[action=submitManagerForm]' : {
click : this.submitManagerForm
},
'managerviewform button[action=closeManagerForm]' : {
click : this.closeManagerForm
}
});
},
searchManager : function(btn){
var store = managerGrid.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()
}]);
},
showCreateManagerForm : function(btn) {
var wareForm = Ext.widget("managerviewform");
AlertWin.alert('新增负责人', null, wareForm, 500, 220);
},
showUpdateManagerForm : function(grid, record, item, index, e, eopts) {
var wareForm = Ext.widget("managerviewform");
if (!record) {
me.showPromptsOnUpdate("负责人");
return;
} else {
wareForm.down('form').loadRecord(record);
AlertWin.alert('修改负责人', null, wareForm, 500, 220);
}
},
deleteManager : function(btn) {
//me.deleteModel(btn, managerGrid, "负责人");
me.deleteBatchModel(btn,managerGrid,"负责人","/projectManager/deleteBatch");
},
submitManagerForm : function(btn) {
var modelName = "drp.app.model.users.ManagerModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
me.saveModel(model, managerGrid);
}
},
closeManagerForm : function(btn) {
me.closeForm();
},
models : [ "drp.app.model.users.ManagerModel" ],
stores : [ "drp.app.store.users.ManagerStore" ],
views : [ "drp.app.view.users.ManagerView","drp.app.view.users.ManagerViewForm" ]
});
\ No newline at end of file
Ext.define("drp.app.controller.users.RegulatorController", {
extend : "drp.app.controller.AbstractController",
regulatorGrid : null,
me : null,
init : function() {
me = this;
this.control({
'regulatorview' : {
afterrender : function(panel) {
regulatorGrid = panel.down('gridpanel');
regulatorGrid.getStore().load();
}
},
// 查询
'regulatorview button[action=searchRegulator]' : {
click : this.searchRegulator
},
// 增加
'regulatorview button[action=addRegulator]' : {
click : this.showCreateRegulatorForm
},
// 更新
'regulatorview gridpanel' : {
itemdblclick : this.showUpdateRegulatorForm
},
// 注销
'regulatorview button[action=deleteRegulator]' : {
click : this.deleteRegulator
},
'regulatorviewform button[action=submitRegulatorForm]' : {
click : this.submitRegulatorForm
},
'regulatorviewform button[action=closeRegulatorForm]' : {
click : this.closeRegulatorForm
}
});
},
searchRegulator : function(btn){
var store = regulatorGrid.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()
}]);
},
showCreateRegulatorForm : function(btn) {
var wareForm = Ext.widget("regulatorviewform");
AlertWin.alert('新增经手人', null, wareForm, 500, 220);
},
showUpdateRegulatorForm : function(grid, record, item, index, e, eopts) {
var wareForm = Ext.widget("regulatorviewform");
if (!record) {
me.showPromptsOnUpdate("经手人");
return;
} else {
wareForm.down('form').loadRecord(record);
AlertWin.alert('修改经手人', null, wareForm, 500, 220);
}
},
deleteRegulator : function(btn) {
me.deleteBatchModel(btn,regulatorGrid,"经手人","/materialKeeper/deleteBatch");
},
submitRegulatorForm : function(btn) {
var modelName = "drp.app.model.users.RegulatorModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
var model = Ext.create(modelName, formBean);
me.saveModel(model, regulatorGrid);
}
},
closeRegulatorForm : function(btn) {
me.closeForm();
},
models : [ "drp.app.model.users.RegulatorModel" ],
stores : [ "drp.app.store.users.RegulatorStore" ],
views : [ "drp.app.view.users.RegulatorView","drp.app.view.users.RegulatorViewForm" ]
});
\ No newline at end of file
Ext.define("wms.app.controller.users.WareKeeperController", { Ext.define("drp.app.controller.users.WareKeeperController", {
extend : "wms.app.controller.AbstractController", extend : "drp.app.controller.AbstractController",
wareKeeperGrid : null, wareKeeperGrid : null,
me : null, me : null,
...@@ -95,7 +95,7 @@ Ext.define("wms.app.controller.users.WareKeeperController", { ...@@ -95,7 +95,7 @@ Ext.define("wms.app.controller.users.WareKeeperController", {
}, },
submitWareKeeperForm : function(btn) { submitWareKeeperForm : function(btn) {
var modelName = "wms.app.model.users.WareKeeperModel"; var modelName = "drp.app.model.users.WareKeeperModel";
var form = btn.up('form').getForm(); var form = btn.up('form').getForm();
if (form.isValid()) { if (form.isValid()) {
var formBean = form.getValues(); var formBean = form.getValues();
...@@ -108,7 +108,7 @@ Ext.define("wms.app.controller.users.WareKeeperController", { ...@@ -108,7 +108,7 @@ Ext.define("wms.app.controller.users.WareKeeperController", {
me.closeForm(); me.closeForm();
}, },
models : [ "wms.app.model.users.WareKeeperModel" , "wms.app.model.projects.ProjectModel"], models : [ "drp.app.model.users.WareKeeperModel" , "drp.app.model.projects.ProjectModel"],
stores : [ "wms.app.store.users.WareKeeperStore"], stores : [ "drp.app.store.users.WareKeeperStore"],
views : [ "wms.app.view.users.WareKeeperView","wms.app.view.users.WareKeeperViewForm" ] views : [ "drp.app.view.users.WareKeeperView","drp.app.view.users.WareKeeperViewForm" ]
}); });
\ No newline at end of file
Ext.define("wms.app.model.AbstractModel", { Ext.define("drp.app.model.AbstractModel", {
extend : "Ext.data.Model", extend : "Ext.data.Model",
fields : [{ fields : [{
name : "id" name : "id"
...@@ -9,10 +9,13 @@ Ext.define("wms.app.model.AbstractModel", { ...@@ -9,10 +9,13 @@ Ext.define("wms.app.model.AbstractModel", {
name : 'updateOn', name : 'updateOn',
persist : false persist : false
}, { }, {
name : 'createdByUserName', name : 'createdBy',
persist : false persist : false
}, { }, {
name : 'updatedByUserName', name : 'updatedBy',
persist : false
}, {
name : 'status',
persist : false persist : false
}] }]
}); });
\ No newline at end of file
/** /**
* @author allenjin * @author allenjin
*/ */
Ext.define("wms.app.model.projects.ProjectModel", { Ext.define("drp.app.model.projects.ProjectModel", {
extend : "wms.app.model.AbstractModel", extend : "drp.app.model.AbstractModel",
fields : [{ fields : [{
name : "name"// 项目名称 name : "name"// 项目名称
}, { }, {
...@@ -28,7 +28,7 @@ Ext.define("wms.app.model.projects.ProjectModel", { ...@@ -28,7 +28,7 @@ Ext.define("wms.app.model.projects.ProjectModel", {
}], }],
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/project', url : 'project',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.projects.costs.AbstractCostModel", { Ext.define("drp.app.model.projects.costs.AbstractCostModel", {
extend : "wms.app.model.AbstractModel", extend : "drp.app.model.AbstractModel",
fields : [{ fields : [{
name : "ware" name : "ware"
}, { }, {
......
Ext.define("wms.app.model.projects.costs.StockInCostModel", { Ext.define("drp.app.model.projects.costs.StockInCostModel", {
extend : "wms.app.model.projects.costs.AbstractCostModel", extend : "drp.app.model.projects.costs.AbstractCostModel",
fields : [{ fields : [{
name : "invoice" name : "invoice"
}], }],
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/stockInCost', url : 'stockInCost',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.projects.costs.StockOutCostModel", { Ext.define("drp.app.model.projects.costs.StockOutCostModel", {
extend : "wms.app.model.projects.costs.AbstractCostModel", extend : "drp.app.model.projects.costs.AbstractCostModel",
fields : [{ fields : [{
name : "invoice" name : "invoice"
}], }],
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/stockOutCost', url : 'stockOutCost',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.projects.inventories.CurrentInventoryModel", { Ext.define("drp.app.model.projects.inventories.CurrentInventoryModel", {
extend : "Ext.data.Model", extend : "Ext.data.Model",
fields : [{ fields : [{
name : "wareName" name : "wareName"
......
Ext.define("wms.app.model.projects.inventories.MonthEndInventoryModel", { Ext.define("drp.app.model.projects.inventories.MonthEndInventoryModel", {
extend : "Ext.data.Model", extend : "Ext.data.Model",
fields : [{ fields : [{
name : "wareName" name : "wareName"
......
Ext.define("wms.app.model.projects.invoices.AbstractInvoiceModel", { Ext.define("drp.app.model.projects.invoices.AbstractInvoiceModel", {
extend : "wms.app.model.AbstractModel", extend : "drp.app.model.AbstractModel",
fields : [{ fields : [{
name : "code" name : "code"
}, { }, {
......
Ext.define("wms.app.model.projects.invoices.StockInInvoiceModel", { Ext.define("drp.app.model.projects.invoices.StockInInvoiceModel", {
extend : "wms.app.model.projects.invoices.AbstractInvoiceModel", extend : "drp.app.model.projects.invoices.AbstractInvoiceModel",
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/stockInInvoice', url : 'stockInInvoice',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.projects.invoices.StockOutInvoiceModel", { Ext.define("drp.app.model.projects.invoices.StockOutInvoiceModel", {
extend : "wms.app.model.projects.invoices.AbstractInvoiceModel", extend : "drp.app.model.projects.invoices.AbstractInvoiceModel",
fields : [{ fields : [{
name : "receiveMan" name : "receiveMan"
} ], } ],
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/stockOutInvoice', url : 'stockOutInvoice',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.resources.VendorModel", { Ext.define("drp.app.model.resources.VendorModel", {
extend : "wms.app.model.AbstractModel", extend : "drp.app.model.AbstractModel",
fields : [ { fields : [ {
name : "name",// 名称 name : "name",// 名称
type : "string" type : "string"
...@@ -37,7 +37,7 @@ Ext.define("wms.app.model.resources.VendorModel", { ...@@ -37,7 +37,7 @@ Ext.define("wms.app.model.resources.VendorModel", {
} ], } ],
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/vendor', url : 'vendor',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("drp.app.model.resources.WareCategoryModel", {
extend : "drp.app.model.AbstractModel",
fields : [{
name : "name"
}, {
name : "code"
}],
proxy : {
type : 'rest',
url : 'wares/categories',
reader : {
type : "json",
root : "data",
successProperty : 'success'
},
writer : {
type : "json"
},
listeners : {
exception : function(proxy, response, operation) {
Ext.MessageBox.show({
title : '错误',
msg : "数据加载错误,请尝试刷新页面",
icon : Ext.MessageBox.ERROR,
buttons : Ext.Msg.OK
});
}
}
}
});
\ No newline at end of file
Ext.define("wms.app.model.resources.WareCostModel", { Ext.define("drp.app.model.resources.WareCostModel", {
extend : "wms.app.model.resources.WareModel", extend : "drp.app.model.resources.WareModel",
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/ware', url : 'ware',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.resources.WareModel", { Ext.define("drp.app.model.resources.WareModel", {
extend : "wms.app.model.AbstractModel", extend : "drp.app.model.AbstractModel",
fields : [{ fields : [{
name : "name"// 名称 name : "name"// 品名
}, { }, {
name : "brand"// 品牌 name : "brand"// 品牌
}, { }, {
name : "model"//规格 name : "model"//规格
}, { }, {
name : "unit"// 单位 name : "unit"// 单位
}, {
name : 'produceOn'// 生产日期
}, {
name : 'storage'// 保质期
}, { }, {
name : "vendor.id", name : "vendor.id",
persist : false persist : false
...@@ -31,7 +35,7 @@ Ext.define("wms.app.model.resources.WareModel", { ...@@ -31,7 +35,7 @@ Ext.define("wms.app.model.resources.WareModel", {
}], }],
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/ware', url : 'ware',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.users.AbstractUserModel", { Ext.define("drp.app.model.users.AbstractUserModel", {
extend : "wms.app.model.AbstractModel", extend : "drp.app.model.AbstractModel",
fields : [{ fields : [{
name : "name" name : "name"
}, { }, {
......
Ext.define("wms.app.model.users.LeaderModel", { Ext.define("drp.app.model.users.ManagerModel", {
extend : "wms.app.model.users.AbstractUserModel", extend : "drp.app.model.users.AbstractUserModel",
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/leader', url : 'manager',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.users.MaterialKeeperModel", { Ext.define("drp.app.model.users.RegulatorModel", {
extend : "wms.app.model.users.AbstractUserModel", extend : "drp.app.model.users.AbstractUserModel",
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/materialKeeper', url : 'regulator',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.model.users.WareKeeperModel", { Ext.define("drp.app.model.users.WareKeeperModel", {
extend : "wms.app.model.users.AbstractUserModel", extend : "drp.app.model.users.AbstractUserModel",
proxy : { proxy : {
type : 'rest', type : 'rest',
url : ctx+'/wareKeeper', url : 'wareKeeper',
reader : { reader : {
type : "json", type : "json",
root : "data", root : "data",
......
Ext.define("wms.app.store.AbstractStore", { Ext.define("drp.app.store.AbstractStore", {
extend : 'Ext.data.Store', extend : 'Ext.data.Store',
model : 'wms.app.model.AbstractModel', model : 'drp.app.model.AbstractModel',
pageSize : 50, pageSize : 50,
autoLoad : false, autoLoad : false,
remoteFilter : true, remoteFilter : true,
......
Ext.define("drp.app.store.projects.ProjectDataStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.projects.ProjectModel'
});
\ No newline at end of file
/** /**
* @author reed mi * @author reed mi
*/ */
Ext.define("wms.app.store.projects.ProjectStore", { Ext.define("drp.app.store.projects.ProjectStore", {
extend : 'Ext.data.TreeStore', extend : 'Ext.data.TreeStore',
model : 'wms.app.model.projects.ProjectModel', model : 'drp.app.model.projects.ProjectModel',
defaultRootId : '', defaultRootId : '',
root : {data : []} root : {data : []}
}); });
\ No newline at end of file
Ext.define("drp.app.store.projects.costs.StockInCostStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.projects.costs.StockInCostModel'
});
\ No newline at end of file
Ext.define("drp.app.store.projects.costs.StockOutCostStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.projects.costs.StockOutCostModel'
});
\ No newline at end of file
Ext.define("wms.app.store.projects.inventories.CurrentInventoryStore", { Ext.define("drp.app.store.projects.inventories.CurrentInventoryStore", {
extend : 'Ext.data.Store', extend : 'Ext.data.Store',
model : 'wms.app.model.projects.inventories.CurrentInventoryModel', model : 'drp.app.model.projects.inventories.CurrentInventoryModel',
pageSize : 50 pageSize : 50
}); });
\ No newline at end of file
Ext.define("wms.app.store.projects.inventories.MonthEndInventoryStore", { Ext.define("drp.app.store.projects.inventories.MonthEndInventoryStore", {
extend : 'Ext.data.Store', extend : 'Ext.data.Store',
model : 'wms.app.model.projects.inventories.MonthEndInventoryModel', model : 'drp.app.model.projects.inventories.MonthEndInventoryModel',
pageSize : 50 pageSize : 50
}); });
\ No newline at end of file
Ext.define("drp.app.store.projects.invoices.StockInInvoiceStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.projects.invoices.StockInInvoiceModel'
});
\ No newline at end of file
Ext.define("drp.app.store.projects.invoices.StockOutInvoiceStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.projects.invoices.StockOutInvoiceModel'
});
\ No newline at end of file
Ext.define("drp.app.store.resources.VendorStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.resources.VendorModel'
});
\ No newline at end of file
Ext.define("drp.app.store.resources.WareCategoryStore", {
extend : 'Ext.data.TreeStore',
model : 'drp.app.model.resources.WareCategoryModel',
defaultRootId : '',
root : {data : []}
});
\ No newline at end of file
Ext.define("drp.app.store.resources.WareStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.resources.WareModel'
});
\ No newline at end of file
Ext.define("drp.app.store.users.ManagerStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.users.ManagerModel'
});
\ No newline at end of file
Ext.define("drp.app.store.users.RegulatorStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.users.RegulatorModel'
});
\ No newline at end of file
Ext.define("drp.app.store.users.WareKeeperStore", {
extend : 'drp.app.store.AbstractStore',
model : 'drp.app.model.users.WareKeeperModel'
});
\ No newline at end of file
Ext.define("drp.app.view.UpdatePasswordView",{
extend : 'Ext.panel.Panel',
alias : 'widget.updatepasswordview',
margins : '100 0 0 200',
border : 0,
title : '密码修改',
closable : true,
width: 430,
height :250,
layout : 'hbox',
align : 'center',
items :[{
xtype : 'panel',
bodyPadding : 10,
title : '密码修改',
width: 420,
items :[{
xtype : 'form',
frame:true,
bodyStyle:'padding:5px 5px 0',
width: 400,
height :250,
items :[{
xtype : 'textfield',
inputType:'password',
margin : '50 0 0 50',
name: 'pwd',
fieldLabel : '原密码'
}, {
xtype : 'textfield',
inputType:'password',
margin : '20 0 0 50',
name: 'newpwd',
fieldLabel : '新密码'
}, {
xtype : 'textfield',
inputType:'password',
margin : '20 0 0 50',
name: 'newpwdagain',
fieldLabel : '确认密码'
}, {
xtype : 'button',
margin : '30 0 0 80',
itemId : 'updatepassword_btn',
action : 'updatepassword',
text : '修改',
width : 70,
height : 25
},{
xtype : 'button',
margin : '30 0 0 60',
itemId : 'cancel_btn',
action : 'cancel',
text : '取消',
width : 70,
height : 25
}]
}]
}]
});
\ No newline at end of file
/** /**
* @author allenjin * @author allenjin
*/ */
Ext.define('wms.app.view.projects.ProjectView', { Ext.define('drp.app.view.projects.ProjectView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.projectview', alias : 'widget.projectview',
margins : '0 0 0 0', margins : '0 0 0 0',
...@@ -88,7 +88,7 @@ Ext.define('wms.app.view.projects.ProjectView', { ...@@ -88,7 +88,7 @@ Ext.define('wms.app.view.projects.ProjectView', {
// 防止在刷新节点后默认回到最top // 防止在刷新节点后默认回到最top
preserveScrollOnRefresh : false preserveScrollOnRefresh : false
}, },
store : "wms.app.store.projects.ProjectStore", store : "drp.app.store.projects.ProjectStore",
columns : [{ columns : [{
xtype : 'treecolumn', xtype : 'treecolumn',
width : 200, width : 200,
......
/** /**
* @author allenjin * @author allenjin
*/ */
Ext.define("wms.app.view.projects.ProjectViewForm", { Ext.define("drp.app.view.projects.ProjectViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.projectviewform', alias : 'widget.projectviewform',
author : '100%', author : '100%',
...@@ -38,7 +38,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", { ...@@ -38,7 +38,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", {
valueField :"id", valueField :"id",
fieldLabel : '项目经理<font color="red">*</font>', fieldLabel : '项目经理<font color="red">*</font>',
store : Ext.create("Ext.data.Store",{ store : Ext.create("Ext.data.Store",{
model : 'wms.app.model.users.ProjectManagerModel', model : 'drp.app.model.users.ProjectManagerModel',
autoLoad : false autoLoad : false
}), }),
listeners : { listeners : {
...@@ -63,7 +63,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", { ...@@ -63,7 +63,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", {
valueField :"id", valueField :"id",
fieldLabel : '库管员<font color="red">*</font>', fieldLabel : '库管员<font color="red">*</font>',
store : Ext.create("Ext.data.Store",{ store : Ext.create("Ext.data.Store",{
model : 'wms.app.model.users.WareKeeperModel', model : 'drp.app.model.users.WareKeeperModel',
autoLoad : false autoLoad : false
}), }),
listeners : { listeners : {
...@@ -88,7 +88,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", { ...@@ -88,7 +88,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", {
valueField :"id", valueField :"id",
fieldLabel : '材料员<font color="red">*</font>', fieldLabel : '材料员<font color="red">*</font>',
store : Ext.create("Ext.data.Store",{ store : Ext.create("Ext.data.Store",{
model : 'wms.app.model.users.MaterialKeeperModel', model : 'drp.app.model.users.MaterialKeeperModel',
autoLoad : false autoLoad : false
}), }),
listeners : { listeners : {
......
/** /**
* @author reed mi * @author reed mi
*/ */
Ext.define("wms.app.view.projects.SystemViewForm", { Ext.define("drp.app.view.projects.SystemViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.systemviewform', alias : 'widget.systemviewform',
author : '100%', author : '100%',
......
Ext.define('wms.app.view.projects.resources.StockInCostShowView', { Ext.define('drp.app.view.projects.resources.StockInCostShowView', {
extend : 'Ext.window.Window', extend : 'Ext.window.Window',
alias : 'widget.stockincostshowview', alias : 'widget.stockincostshowview',
height: 345, height: 345,
...@@ -64,7 +64,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostShowView', { ...@@ -64,7 +64,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostShowView', {
height : 260, height : 260,
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
store : "wms.app.store.projects.costs.StockInCostStore", store : "drp.app.store.projects.costs.StockInCostStore",
columns : [ columns : [
Ext.create('Ext.grid.RowNumberer'), Ext.create('Ext.grid.RowNumberer'),
{ {
......
Ext.define('wms.app.view.projects.resources.StockInCostView', { Ext.define('drp.app.view.projects.resources.StockInCostView', {
extend : 'Ext.window.Window', extend : 'Ext.window.Window',
alias : 'widget.stockincostview', alias : 'widget.stockincostview',
height: 510, height: 510,
...@@ -51,7 +51,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', { ...@@ -51,7 +51,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', {
displayField :"name", displayField :"name",
valueField :"id", valueField :"id",
fieldLabel : '项目<font color="red">*</font>', fieldLabel : '项目<font color="red">*</font>',
store : 'wms.app.store.projects.ProjectDataStore', store : 'drp.app.store.projects.ProjectDataStore',
listeners : { listeners : {
afterrender : function(combo){ afterrender : function(combo){
//显示人员所属项目 //显示人员所属项目
...@@ -71,7 +71,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', { ...@@ -71,7 +71,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', {
stockincostview.down("#wareKeeperName_df").setValue(project.wareKeeper.name); stockincostview.down("#wareKeeperName_df").setValue(project.wareKeeper.name);
stockincostview.down("#projectManagerName_df").setValue(project.projectManager.name); stockincostview.down("#projectManagerName_df").setValue(project.projectManager.name);
//根据项目动态加载下属系统 //根据项目动态加载下属系统
var _url = ctx + "/project/" + project.id; var _url = "project/" + project.id;
var system = stockincostview.down("#systemName_stockInInvoice_cb"); var system = stockincostview.down("#systemName_stockInInvoice_cb");
system.getStore().getProxy().url = _url; system.getStore().getProxy().url = _url;
system.setValue(""); system.setValue("");
...@@ -154,7 +154,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', { ...@@ -154,7 +154,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : 'wms.app.store.projects.costs.StockInCostStore', store : 'drp.app.store.projects.costs.StockInCostStore',
columns : [ columns : [
Ext.create('Ext.grid.RowNumberer'), Ext.create('Ext.grid.RowNumberer'),
{ {
......
Ext.define('wms.app.view.projects.resources.StockOutCostShowView', { Ext.define('drp.app.view.projects.resources.StockOutCostShowView', {
extend : 'Ext.window.Window', extend : 'Ext.window.Window',
alias : 'widget.stockoutcostshowview', alias : 'widget.stockoutcostshowview',
height: 345, height: 345,
...@@ -64,7 +64,7 @@ Ext.define('wms.app.view.projects.resources.StockOutCostShowView', { ...@@ -64,7 +64,7 @@ Ext.define('wms.app.view.projects.resources.StockOutCostShowView', {
height : 260, height : 260,
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
store : "wms.app.store.projects.costs.StockOutCostStore", store : "drp.app.store.projects.costs.StockOutCostStore",
columns : [ columns : [
Ext.create('Ext.grid.RowNumberer'), Ext.create('Ext.grid.RowNumberer'),
{ {
......
Ext.define('wms.app.view.projects.costs.StockOutCostView', { Ext.define('drp.app.view.projects.costs.StockOutCostView', {
extend : 'Ext.window.Window', extend : 'Ext.window.Window',
alias : 'widget.stockoutcostview', alias : 'widget.stockoutcostview',
height: 510, height: 510,
...@@ -51,7 +51,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', { ...@@ -51,7 +51,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', {
displayField :"name", displayField :"name",
valueField :"id", valueField :"id",
fieldLabel : '项目<font color="red">*</font>', fieldLabel : '项目<font color="red">*</font>',
store : 'wms.app.store.projects.ProjectDataStore', store : 'drp.app.store.projects.ProjectDataStore',
listeners : { listeners : {
afterrender : function(combo){ afterrender : function(combo){
//显示人员所属项目 //显示人员所属项目
...@@ -73,7 +73,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', { ...@@ -73,7 +73,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', {
stockoutcostview.down("#wareKeeperName_df").setValue(project.wareKeeper.name); stockoutcostview.down("#wareKeeperName_df").setValue(project.wareKeeper.name);
stockoutcostview.down("#projectManagerName_df").setValue(project.projectManager.name); stockoutcostview.down("#projectManagerName_df").setValue(project.projectManager.name);
//根据项目动态加载下属系统 //根据项目动态加载下属系统
var _url = ctx + "/project/" + project.id; var _url = "project/" + project.id;
var system = stockoutcostview.down("#systemName_stockOutInvoice_cb"); var system = stockoutcostview.down("#systemName_stockOutInvoice_cb");
system.getStore().getProxy().url = _url; system.getStore().getProxy().url = _url;
system.setValue(""); system.setValue("");
...@@ -170,7 +170,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', { ...@@ -170,7 +170,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : 'wms.app.store.projects.costs.StockOutCostStore', store : 'drp.app.store.projects.costs.StockOutCostStore',
columns : [ columns : [
Ext.create('Ext.grid.RowNumberer'), Ext.create('Ext.grid.RowNumberer'),
{ {
......
Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', { Ext.define('drp.app.view.projects.inventories.CurrentInventoryView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.currentinventoryview', alias : 'widget.currentinventoryview',
autoScroll : true, autoScroll : true,
...@@ -24,7 +24,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', { ...@@ -24,7 +24,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', {
root : { root : {
data : [] data : []
}, },
model : 'wms.app.model.projects.ProjectModel' model : 'drp.app.model.projects.ProjectModel'
}), }),
columns : [{ columns : [{
xtype : 'treecolumn', xtype : 'treecolumn',
...@@ -37,7 +37,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', { ...@@ -37,7 +37,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', {
region : 'center', region : 'center',
title : '库存量', title : '库存量',
columnLines : true, columnLines : true,
store : 'wms.app.store.projects.inventories.CurrentInventoryStore', store : 'drp.app.store.projects.inventories.CurrentInventoryStore',
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
dataIndex : 'wareName', dataIndex : 'wareName',
...@@ -77,7 +77,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', { ...@@ -77,7 +77,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', {
dockedItems : [{ dockedItems : [{
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
store : 'wms.app.store.projects.inventories.CurrentInventoryStore', store : 'drp.app.store.projects.inventories.CurrentInventoryStore',
displayInfo : true displayInfo : true
}] }]
}] }]
......
Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', { Ext.define('drp.app.view.projects.inventories.MonthendInventoryView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.monthendinventoryview', alias : 'widget.monthendinventoryview',
autoScroll : true, autoScroll : true,
...@@ -25,7 +25,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', { ...@@ -25,7 +25,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
root : { root : {
data : [] data : []
}, },
model : 'wms.app.model.projects.ProjectModel' model : 'drp.app.model.projects.ProjectModel'
}), }),
columns : [{ columns : [{
xtype : 'treecolumn', xtype : 'treecolumn',
...@@ -38,7 +38,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', { ...@@ -38,7 +38,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
region : 'center', region : 'center',
title : '库存量', title : '库存量',
columnLines : true, columnLines : true,
store : 'wms.app.store.projects.inventories.MonthEndInventoryStore', store : 'drp.app.store.projects.inventories.MonthEndInventoryStore',
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
dataIndex : 'wareName', dataIndex : 'wareName',
...@@ -83,7 +83,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', { ...@@ -83,7 +83,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
dockedItems : [{ dockedItems : [{
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
store : 'wms.app.store.projects.inventories.MonthEndInventoryStore', store : 'drp.app.store.projects.inventories.MonthEndInventoryStore',
displayInfo : true displayInfo : true
}, { }, {
xtype: 'toolbar', xtype: 'toolbar',
......
/** /**
* author Reedmi * author Reedmi
*/ */
Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', { Ext.define('drp.app.view.projects.invoices.StockInInvoiceView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.stockininvoiceview', alias : 'widget.stockininvoiceview',
autoScroll : true, autoScroll : true,
...@@ -148,7 +148,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', { ...@@ -148,7 +148,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : 'wms.app.store.projects.invoices.StockInInvoiceStore', store : 'drp.app.store.projects.invoices.StockInInvoiceStore',
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
flex : 1, flex : 1,
...@@ -205,7 +205,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', { ...@@ -205,7 +205,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
dockedItems : [{ dockedItems : [{
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
store : 'wms.app.store.projects.invoices.StockInInvoiceStore', store : 'drp.app.store.projects.invoices.StockInInvoiceStore',
displayInfo : true displayInfo : true
}, { }, {
xtype : 'toolbar', xtype : 'toolbar',
...@@ -224,7 +224,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', { ...@@ -224,7 +224,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
itemId : 'deleteInInvoice_btn', itemId : 'deleteInInvoice_btn',
disabled : true, disabled : true,
text : '删除' text : '删除'
}, { }/*, {
itemId : 'submitInInvoice_btn', itemId : 'submitInInvoice_btn',
disabled : true, disabled : true,
text : '提交审核', text : '提交审核',
...@@ -232,7 +232,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', { ...@@ -232,7 +232,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
menu : { menu : {
items : menuItems items : menuItems
} }
}] }*/]
}] }]
}] }]
......
/** /**
* author Reedmi * author Reedmi
*/ */
Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', { Ext.define('drp.app.view.projects.invoices.StockOutInvoiceView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.stockoutinvoiceview', alias : 'widget.stockoutinvoiceview',
autoScroll : true, autoScroll : true,
...@@ -154,7 +154,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', { ...@@ -154,7 +154,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : 'wms.app.store.projects.invoices.StockOutInvoiceStore', store : 'drp.app.store.projects.invoices.StockOutInvoiceStore',
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
flex : 1, flex : 1,
...@@ -216,7 +216,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', { ...@@ -216,7 +216,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
dockedItems : [{ dockedItems : [{
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
store : 'wms.app.store.projects.invoices.StockOutInvoiceStore', store : 'drp.app.store.projects.invoices.StockOutInvoiceStore',
displayInfo : true displayInfo : true
}, { }, {
xtype : 'toolbar', xtype : 'toolbar',
...@@ -235,7 +235,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', { ...@@ -235,7 +235,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
itemId : 'deleteOutInvoice_btn', itemId : 'deleteOutInvoice_btn',
disabled : true, disabled : true,
text : '删除' text : '删除'
}, { }/*, {
itemId : 'submitOutInvoice_btn', itemId : 'submitOutInvoice_btn',
disabled : true, disabled : true,
text : '提交审核', text : '提交审核',
...@@ -243,7 +243,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', { ...@@ -243,7 +243,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
menu : { menu : {
items : menuItems items : menuItems
} }
}] }*/]
}] }]
}] }]
......
Ext.define('wms.app.view.resources.VendorView', { Ext.define('drp.app.view.resources.VendorView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.vendorview', alias : 'widget.vendorview',
margins : '0 0 0 0', margins : '0 0 0 0',
...@@ -77,7 +77,7 @@ Ext.define('wms.app.view.resources.VendorView', { ...@@ -77,7 +77,7 @@ Ext.define('wms.app.view.resources.VendorView', {
xtype : 'gridpanel', xtype : 'gridpanel',
region : 'center', region : 'center',
selModel : selModel, selModel : selModel,
store : "wms.app.store.resources.VendorStore", store : "drp.app.store.resources.VendorStore",
columnLines : true, columnLines : true,
stripeRows : true, stripeRows : true,
autoScroll : true, autoScroll : true,
...@@ -176,7 +176,7 @@ Ext.define('wms.app.view.resources.VendorView', { ...@@ -176,7 +176,7 @@ Ext.define('wms.app.view.resources.VendorView', {
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
displayInfo : true, displayInfo : true,
store : "wms.app.store.resources.VendorStore", store : "drp.app.store.resources.VendorStore",
emptyMsg : "没有数据" emptyMsg : "没有数据"
}] }]
}] }]
......
Ext.define("wms.app.view.resources.VendorViewForm", { Ext.define("drp.app.view.resources.VendorViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.vendorviewform', alias : 'widget.vendorviewform',
author : '100%', author : '100%',
......
Ext.define('drp.app.view.resources.WareCategoryView', {
extend : 'Ext.panel.Panel',
alias : 'widget.warecategoryview',
margins : '0 0 0 0',
border : 0,
title : '<center height=40>类别列表</center>',
autoScroll : true,
closable : true,
layout : {
type : 'border'
},
initComponent : function() {
var me = this;
Ext.applyIf(me, {
items : [{
xtype : 'treepanel',
region : 'center',
rootVisible : false,
autoScroll : true,
columnLines : true,
rowLines : true,
viewConfig : {
// 防止在刷新节点后默认回到最top
preserveScrollOnRefresh : false
},
store : "drp.app.store.resources.WareCategoryStore",
columns : [{
xtype : 'treecolumn',
flex : 2,
dataIndex : 'name',
text : '名称'
}, {
xtype : 'gridcolumn',
flex : 1,
dataIndex : 'code',
text : '编号'
}, {
xtype : 'gridcolumn',
flex : 1,
dataIndex : 'status',
text : '状态',
renderer : function(value) {
if (value === 'ACTIVE') {
return '可用';
} else if (value === 'INACTIVE') {
return '不可用';
} else if(value === 'DESTORYED'){
return '已注销';
}
}
}],
listeners : {
'selectionchange' : function(model, selected){
me.down('#deleteWareCategory_btn').setDisabled(selected.length == 0);
}
},
dockedItems : [{
xtype : 'toolbar',
dock : 'top',
items : [{
xtype : 'button',
icon : 'resources/images/icons/add.png',
action : 'addWareCategory',
text : '新增类别'
}, '-', {
xtype : 'button',
icon : 'resources/images/icons/delete.png',
action : 'deleteWareCategory',
itemId : "deleteWareCategory_btn",
disabled : true,
text : '删除'
}]
}]
}]
});
me.callParent(arguments);
}
});
\ No newline at end of file
Ext.define("drp.app.view.resources.WareCategoryForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.warecategoryviewform',
author : '100%',
autoScroll : true,
items : [{
xtype : 'form',
items : [{
xtype : 'textfield',
hidden : true,
name : 'id'
}, {
xtype : 'textfield',
anchor : '95%',
margin : '5 0 0 5',
name : 'name',
allowBlank : false,
fieldLabel : '名称<font color="red">*</font>'
}, {
xtype : 'textfield',
anchor : '95%',
margin : '5 0 0 5',
name : 'code',
fieldLabel : '编号'
}, {
xtype : 'fieldcontainer',
height : 30,
anchor : '95%',
margin : '5 0 10 5',
style : 'text-align:center',
items : [{
xtype : 'button',
margin : '5 0 0 5',
action : 'submitWareCategoryForm',
width: 80,
formBind : true,
text : '确认'
}, {
xtype : 'button',
margin : '5 0 0 5',
action : 'closeWareCategoryForm',
width: 80,
text : '取消'
}]
}]
}]
});
Ext.define('wms.app.view.resources.WareView', { Ext.define('drp.app.view.resources.WareView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.wareview', alias : 'widget.wareview',
margins : '0 0 0 0', margins : '0 0 0 0',
...@@ -89,17 +89,12 @@ Ext.define('wms.app.view.resources.WareView', { ...@@ -89,17 +89,12 @@ Ext.define('wms.app.view.resources.WareView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : "wms.app.store.resources.WareStore", store : "drp.app.store.resources.WareStore",
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
width : 160, width : 160,
dataIndex : 'name', dataIndex : 'name',
text : '名称' text : '品名'
}, {
xtype : 'gridcolumn',
width : 90,
dataIndex : 'brand',
text : '品牌'
}, { }, {
xtype : 'gridcolumn', xtype : 'gridcolumn',
width : 160, width : 160,
...@@ -110,6 +105,21 @@ Ext.define('wms.app.view.resources.WareView', { ...@@ -110,6 +105,21 @@ Ext.define('wms.app.view.resources.WareView', {
width : 60, width : 60,
dataIndex : 'unit', dataIndex : 'unit',
text : '单位' text : '单位'
}, {
xtype : 'gridcolumn',
width : 120,
dataIndex : 'produceOn',
text : '生产日期'
}, {
xtype : 'gridcolumn',
width : 60,
dataIndex : 'storage',
text : '保质期'
}, {
xtype : 'gridcolumn',
width : 90,
dataIndex : 'brand',
text : '品牌'
}, { }, {
xtype : 'gridcolumn', xtype : 'gridcolumn',
width : 100, width : 100,
...@@ -189,7 +199,7 @@ Ext.define('wms.app.view.resources.WareView', { ...@@ -189,7 +199,7 @@ Ext.define('wms.app.view.resources.WareView', {
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
displayInfo : true, displayInfo : true,
store : "wms.app.store.resources.WareStore", store : "drp.app.store.resources.WareStore",
emptyMsg : "没有数据" emptyMsg : "没有数据"
}] }]
}] }]
......
/** /**
* author :Reed Mi * author :Reed Mi
*/ */
Ext.define("wms.app.view.resources.WareViewForm", { Ext.define("drp.app.view.resources.WareViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.wareviewform', alias : 'widget.wareviewform',
author : '100%', author : '100%',
...@@ -18,13 +18,7 @@ Ext.define("wms.app.view.resources.WareViewForm", { ...@@ -18,13 +18,7 @@ Ext.define("wms.app.view.resources.WareViewForm", {
margin : '5 0 0 5', margin : '5 0 0 5',
name : 'name', name : 'name',
allowBlank : false, allowBlank : false,
fieldLabel : '名称<font color="red">*</font>' fieldLabel : '品名<font color="red">*</font>'
}, {
xtype : 'textfield',
anchor : '60%',
margin : '5 0 0 5',
name : 'brand',
fieldLabel : '品牌'
}, { }, {
xtype : 'textfield', xtype : 'textfield',
anchor : '60%', anchor : '60%',
...@@ -33,16 +27,18 @@ Ext.define("wms.app.view.resources.WareViewForm", { ...@@ -33,16 +27,18 @@ Ext.define("wms.app.view.resources.WareViewForm", {
fieldLabel : '规格' fieldLabel : '规格'
}, { }, {
xtype : 'combobox', xtype : 'combobox',
fieldLabel : '单位<font color="red">*</font>', fieldLabel : '单位',
anchor : '60%', anchor : '60%',
margin : '5 0 0 5', margin : '5 0 0 5',
name : 'unit', name : 'unit',
allowBlank : false,
displayField : 'name', displayField : 'name',
valueField : 'value', valueField : 'value',
store : Ext.create('Ext.data.Store', { store : Ext.create('Ext.data.Store', {
fields : ['value', 'name'], fields : ['value', 'name'],
data : [{ data : [{
"value" : "",
"name" : "吨/T"
}, {
"value" : "", "value" : "",
"name" : "" "name" : ""
}, { }, {
...@@ -65,6 +61,44 @@ Ext.define("wms.app.view.resources.WareViewForm", { ...@@ -65,6 +61,44 @@ Ext.define("wms.app.view.resources.WareViewForm", {
"name" : "" "name" : ""
}] }]
}) })
}, {
xtype : 'datefield',
anchor : '60%',
margin : '5 0 0 5',
name : 'produceOn',
format:'Y-m-d',
editable : false,
fieldLabel : '生产日期'
}, {
xtype : 'combobox',
fieldLabel : '保质期',
anchor : '60%',
margin : '5 0 0 5',
name : 'storage',
displayField : 'name',
valueField : 'value',
store : Ext.create('Ext.data.Store', {
fields : ['value', 'name'],
data : [{
"value" : "三年",
"name" : "三年"
}, {
"value" : "两年",
"name" : "两年"
}, {
"value" : "一年",
"name" : "一年"
}, {
"value" : "6个月",
"name" : "6个月"
}]
})
}, {
xtype : 'textfield',
anchor : '60%',
margin : '5 0 0 5',
name : 'brand',
fieldLabel : '品牌'
}, { }, {
xtype : 'combobox', xtype : 'combobox',
anchor : '75%', anchor : '75%',
...@@ -73,7 +107,7 @@ Ext.define("wms.app.view.resources.WareViewForm", { ...@@ -73,7 +107,7 @@ Ext.define("wms.app.view.resources.WareViewForm", {
valueField : 'id', valueField : 'id',
displayField : 'name', displayField : 'name',
editable : false, editable : false,
store : 'wms.app.store.resources.VendorStore', store : 'drp.app.store.resources.VendorStore',
fieldLabel : '供应商' fieldLabel : '供应商'
}, { }, {
xtype : 'textarea', xtype : 'textarea',
......
Ext.define('wms.app.view.resources.WareWindow', { Ext.define('drp.app.view.resources.WareWindow', {
extend : 'Ext.window.Window', extend : 'Ext.window.Window',
alias : 'widget.warewindow', alias : 'widget.warewindow',
height: 520, height: 520,
......
Ext.define('wms.app.view.users.ProjectManagerView', { Ext.define('drp.app.view.users.ManagerView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.projectmanagerview', alias : 'widget.managerview',
margins : '0 0 0 0', margins : '0 0 0 0',
border : 0, border : 0,
title : '<center height=40>项目经理</center>', title : '<center height=40>负责人</center>',
autoScroll : true, autoScroll : true,
closable : true, closable : true,
layout : { layout : {
...@@ -15,7 +15,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', { ...@@ -15,7 +15,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
var selModel = Ext.create('Ext.selection.CheckboxModel', { var selModel = Ext.create('Ext.selection.CheckboxModel', {
listeners : { listeners : {
selectionchange : function(sm, selections) { selectionchange : function(sm, selections) {
me.down('#deleteProjectManager_itemId').setDisabled(selections.length == 0); me.down('#deleteManager_itemId').setDisabled(selections.length == 0);
} }
} }
}); });
...@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', { ...@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : "wms.app.store.users.ProjectManagerStore", store : "drp.app.store.users.ManagerStore",
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
flex : 1, flex : 1,
...@@ -193,13 +193,13 @@ Ext.define('wms.app.view.users.ProjectManagerView', { ...@@ -193,13 +193,13 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
items : [{ items : [{
xtype : 'button', xtype : 'button',
icon : 'resources/images/icons/add.png', icon : 'resources/images/icons/add.png',
action : 'addProjectManager', action : 'addManager',
text : '新增' text : '新增'
}, '-', { }, '-', {
xtype : 'button', xtype : 'button',
icon : 'resources/images/icons/delete.png', icon : 'resources/images/icons/delete.png',
action : 'deleteProjectManager', action : 'deleteManager',
itemId : 'deleteProjectManager_itemId', itemId : 'deleteManager_itemId',
disabled : true, disabled : true,
text : '注销' text : '注销'
}] }]
...@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', { ...@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
displayInfo : true, displayInfo : true,
store : "wms.app.store.users.ProjectManagerStore", store : "drp.app.store.users.ManagerStore",
emptyMsg : "没有数据" emptyMsg : "没有数据"
}] }]
}] }]
......
Ext.define("wms.app.view.users.ProjectManagerViewForm", { Ext.define("drp.app.view.users.ManagerViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.projectmanagerviewform', alias : 'widget.managerviewform',
author : '100%', author : '100%',
autoScroll : true, autoScroll : true,
items : [{ items : [{
...@@ -85,13 +85,13 @@ Ext.define("wms.app.view.users.ProjectManagerViewForm", { ...@@ -85,13 +85,13 @@ Ext.define("wms.app.view.users.ProjectManagerViewForm", {
items : [{ items : [{
xtype : 'button', xtype : 'button',
margin : '5 0 0 5', margin : '5 0 0 5',
action : 'submitProjectManagerForm', action : 'submitManagerForm',
width: 80, width: 80,
text : '确认' text : '确认'
}, { }, {
xtype : 'button', xtype : 'button',
margin : '5 0 0 5', margin : '5 0 0 5',
action : 'closeProjectManagerForm', action : 'closeManagerForm',
width: 80, width: 80,
text : '取消' text : '取消'
}] }]
......
Ext.define('wms.app.view.users.MaterialKeeperView', { Ext.define('drp.app.view.users.RegulatorView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.materialkeeperview', alias : 'widget.regulatorview',
margins : '0 0 0 0', margins : '0 0 0 0',
border : 0, border : 0,
title : '<center height=40>材料员</center>', title : '<center height=40>材料员</center>',
...@@ -15,7 +15,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', { ...@@ -15,7 +15,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
var selModel = Ext.create('Ext.selection.CheckboxModel', { var selModel = Ext.create('Ext.selection.CheckboxModel', {
listeners : { listeners : {
selectionchange : function(sm, selections) { selectionchange : function(sm, selections) {
me.down('#deleteMaterialKeeper_itemId').setDisabled(selections.length == 0); me.down('#deleteRegulator_itemId').setDisabled(selections.length == 0);
} }
} }
}); });
...@@ -100,7 +100,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', { ...@@ -100,7 +100,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
}, { }, {
xtype : 'button', xtype : 'button',
margin : '5 0 0 20', margin : '5 0 0 20',
action : 'searchMaterialKeeper', action : 'searchRegulator',
icon : 'resources/images/icons/search.png', icon : 'resources/images/icons/search.png',
text : '查询' text : '查询'
}, { }, {
...@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', { ...@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : "wms.app.store.users.MaterialKeeperStore", store : "drp.app.store.users.RegulatorStore",
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
flex : 1, flex : 1,
...@@ -193,13 +193,13 @@ Ext.define('wms.app.view.users.MaterialKeeperView', { ...@@ -193,13 +193,13 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
items : [{ items : [{
xtype : 'button', xtype : 'button',
icon : 'resources/images/icons/add.png', icon : 'resources/images/icons/add.png',
action : 'addMaterialKeeper', action : 'addRegulator',
text : '新增' text : '新增'
}, '-', { }, '-', {
xtype : 'button', xtype : 'button',
icon : 'resources/images/icons/delete.png', icon : 'resources/images/icons/delete.png',
action : 'deleteMaterialKeeper', action : 'deleteRegulator',
itemId : 'deleteMaterialKeeper_itemId', itemId : 'deleteRegulator_itemId',
disabled : true, disabled : true,
text : '注销' text : '注销'
}] }]
...@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', { ...@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
displayInfo : true, displayInfo : true,
store : "wms.app.store.users.MaterialKeeperStore", store : "drp.app.store.users.RegulatorStore",
emptyMsg : "没有数据" emptyMsg : "没有数据"
}] }]
}] }]
......
Ext.define("wms.app.view.users.MaterialKeeperViewForm", { Ext.define("drp.app.view.users.MaterialKeeperViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.materialkeeperviewform', alias : 'widget.materialkeeperviewform',
author : '100%', author : '100%',
......
Ext.define('wms.app.view.users.WareKeeperView', { Ext.define('drp.app.view.users.WareKeeperView', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.warekeeperview', alias : 'widget.warekeeperview',
margins : '0 0 0 0', margins : '0 0 0 0',
...@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.WareKeeperView', { ...@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.WareKeeperView', {
autoScroll : true, autoScroll : true,
columnLines : true, columnLines : true,
selModel : selModel, selModel : selModel,
store : "wms.app.store.users.WareKeeperStore", store : "drp.app.store.users.WareKeeperStore",
columns : [{ columns : [{
xtype : 'gridcolumn', xtype : 'gridcolumn',
flex : 1, flex : 1,
...@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.WareKeeperView', { ...@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.WareKeeperView', {
xtype : 'pagingtoolbar', xtype : 'pagingtoolbar',
dock : 'bottom', dock : 'bottom',
displayInfo : true, displayInfo : true,
store : "wms.app.store.users.WareKeeperStore", store : "drp.app.store.users.WareKeeperStore",
emptyMsg : "没有数据" emptyMsg : "没有数据"
}] }]
}] }]
......
Ext.define("wms.app.view.users.WareKeeperViewForm", { Ext.define("drp.app.view.users.WareKeeperViewForm", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.warekeeperviewform', alias : 'widget.warekeeperviewform',
author : '100%', author : '100%',
......
Ext.define("drp.base.controller.MainController", {
extend : 'Ext.app.Controller',
uses : ['drp.base.controller.MenuItemController'],
_self : null,
menuItemController : null,
init : function() {
_self = this;
menuItemController = Ext.create("drp.base.controller.MenuItemController");
this.control({
'westview treepanel' : {
itemclick : function(tree, record, item, index, e, eOpts) {
_self.itemSelect(tree, record, item, index, e, eOpts, this);
}
}
});
},
itemSelect : function(tree, record, item, index, e, eOpts, self) {
//获得centerview
var mainView = tree.up("mainview").down("centerview");
var itemViewXtype = null;
var itemViewController = null;
var itemViewName = null;
//==========================库存管理========================================
if(record.data["id"] == "menu_current_inventory"){
itemViewXtype = "currentinventoryview";
itemViewController = "drp.app.controller.projects.inventories.CurrentInventoryController";
itemViewName = "drp.app.view.projects.inventories.CurrentInventoryView";
}else if(record.data["id"] == "menu_monthend_inventory"){
itemViewXtype = "monthendinventoryview";
itemViewController = "drp.app.controller.projects.inventories.MonthendInventoryController";
itemViewName = "drp.app.view.projects.inventories.MonthendInventoryView";
}
//==========================出入库管理=======================================
else if(record.data["id"] == "menu_stockin"){//入库单
itemViewXtype = "stockininvoiceview";
itemViewController = "drp.app.controller.projects.invoices.StockInInvoiceController";
itemViewName = "drp.app.view.projects.invoices.StockInInvoiceView";
}else if(record.data["id"] == "menu_stockout"){//入库单
itemViewXtype = "stockoutinvoiceview";
itemViewController = "drp.app.controller.projects.invoices.StockOutInvoiceController";
itemViewName = "drp.app.view.projects.invoices.StockOutInvoiceView";
}
//==============================用户管理====================================
else if(record.data["id"] == "menu_manager"){//库管员
itemViewXtype = "managerview";
itemViewController = "drp.app.controller.users.ManagerController";
itemViewName = "drp.app.view.users.MaterialKeeperView";
}else if(record.data["id"] == "menu_warekeeper"){//负责人
itemViewXtype = "warekeeperview";
itemViewController = "drp.app.controller.users.WareKeeperController";
itemViewName = "drp.app.view.users.WareKeeperView";
}else if(record.data["id"] == "menu_regulator"){//经手人
itemViewXtype = "regulatorview";
itemViewController = "drp.app.controller.users.RegulatorController";
itemViewName = "drp.app.view.users.RegulatorView";
}
//===============================项目管理=======================================
else if(record.data["id"] == "menu_project"){
itemViewXtype = "projectview";
itemViewController = "drp.app.controller.projects.ProjectController";
itemViewName = "drp.app.view.projects.ProjectView";
}
//================================商品管理======================================
else if(record.data['id'] == 'menu_ware_category') {
itemViewXtype = "warecategoryview";
itemViewController = "drp.app.controller.resources.WareCategoryController";
itemViewName = "drp.app.view.resources.WareCategoryView";
}else if(record.data["id"] == "menu_ware") {//商品列表
itemViewXtype = "wareview";
itemViewController = "drp.app.controller.resources.WareController";
itemViewName = "drp.app.view.resources.WareView";
}else if(record.data["id"] == "menu_vendor"){//供应商
itemViewXtype = "vendorview";
itemViewController = "drp.app.controller.resources.VendorController";
itemViewName = "drp.app.view.resources.VendorView";
}
//=================================个人信息设置======================================
else if(record.data["id"] == "menu_update_password"){//修改密码
itemViewXtype = "updatepasswordview";
itemViewController = "drp.app.controller.UpdatePasswordController";
itemViewName = "drp.app.view.UpdatePasswordView";
}
else{
return;
}
_self.showNewItem(mainView, itemViewXtype, itemViewController, itemViewName, self);
},
showNewItem : function(mainView, itemViewXtype, itemViewController, itemViewName, which) {
menuItemController.addFunItem({
mainView : mainView,
funViewXtype : itemViewXtype,
funController : itemViewController,
funViewName : itemViewName
}, which);
},
views : ["drp.base.view.MainView", "drp.base.view.CenterView",
"drp.base.view.WestView", "drp.base.view.NorthView",
"drp.widget.AlertWin","drp.widget.TreeComboBox"]
});
\ No newline at end of file
Ext.define("wms.base.controller.MenuItemController", { Ext.define("drp.base.controller.MenuItemController", {
tabs : new Array(0, 0, 0, 0, 0), tabs : new Array(0, 0, 0, 0, 0),
addFunItem : function(funInfo, self, custom) { addFunItem : function(funInfo, self, custom) {
if (funInfo) { if (funInfo) {
......
Ext.define('drp.base.view.CenterView', {
extend : 'Ext.tab.Panel',
alias : 'widget.centerview',
border : 0,
bodyStyle : 'padding:0px',
items : [{
xtype : 'panel',
title : '<center height=40>首页</center>',
layout : 'border',
items :[{
xtype : 'image',
region : "north",
height : "80%",
src : "resources/images/back.png"
},{
xtype : 'panel',
region : "south",
height : "20%",
bodyStyle : {
background : '#E8E3DB'
},
html : '<div id="box_footer" style="background: url('+'resources/images/footer/copgbg.gif);">'+
'<div style="margin-left:210px;">'+
'<div style="line-height: 23px;"> '+
'<table width="1180" border="0" cellspacing="0" cellpadding="0" margin="10 0 10 30"><tbody><tr> '+
'<td width="170" height="100"> '+
'&nbsp; <img src="'+'resources/images/footer/company.gif"></td> '+
'<td> '+
'地址(ADD):济南市二环东路7151号港澳花园综合楼<br> '+
'电话(TEL):(0531) 85599617 85599618 传真(FAX):(0531) 85599615 E-MAIL: wavetek@sdwavetek.com<br> '+
'页面版权所有&nbsp; 山东华埠特克智能机电工程有限公司&nbsp;</td> '+
'</tr></tbody></table></div></div></div>'
}]
}]
});
\ No newline at end of file
var width = document.documentElement.clientWidth; var width = document.documentElement.clientWidth;
var height = document.documentElement.clientHeight; var height = document.documentElement.clientHeight;
Ext.define("wms.base.view.MainView", { Ext.define("drp.base.view.MainView", {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
border : 0, border : 0,
layout : 'border', layout : 'border',
......
Ext.define("wms.base.view.NorthView", { Ext.define("drp.base.view.NorthView", {
extend : "Ext.panel.Panel", extend : "Ext.panel.Panel",
alias : 'widget.northview', alias : 'widget.northview',
height : 60, height : 60,
...@@ -17,7 +17,7 @@ Ext.define("wms.base.view.NorthView", { ...@@ -17,7 +17,7 @@ Ext.define("wms.base.view.NorthView", {
region : 'west', region : 'west',
height : 75, height : 75,
width : 1360, width : 1360,
src : ctx+"/resources/images/banner.png" src : "resources/images/banner.png"
},{ },{
xtype : 'fieldcontainer', xtype : 'fieldcontainer',
region : 'east', region : 'east',
......
Ext.define("drp.base.view.WestView", {
extend : 'Ext.panel.Panel',
alias : 'widget.westview',
collapsible : true,
split : true,
border : 0,
margins : '0 2 0 0',
width : 180,
titleAlign: 'center',
title : "业务导航",
align: 'center',
layout : 'accordion',
layoutConfig : {
titleCollapse : false,
animate : true,
activeOnTop : true
},
items : [{
title : "库存查看",
titleAlign: 'center',
autoScroll : true,
items:[{
xtype : "treepanel",
rootVisible : false,// 不展示根节点
displayField : "text",
margin : '0 0 5 0',
border : 0,
root : {
expanded : true,
children : [{
text : "<span style='font-weight:bold'>实时库存</span>",
id : 'menu_current_inventory',
leaf : true
}, {
text : "<span style='font-weight:bold'>月末盘点</span>",
id : 'menu_monthend_inventory',
leaf : true
}]
}
}]
}, {
title : "出入库管理",
titleAlign: 'center',
autoScroll : true,
items:[{
xtype : "treepanel",
rootVisible : false,// 不展示根节点
displayField : "text",
margin : '0 0 5 0',
border : 0,
root : {
expanded : true,
children : [{
text : "<span style='font-weight:bold'>入库单管理</span>",
id : 'menu_stockin',
leaf : true
}, {
text : "<span style='font-weight:bold'>出库单管理</span>",
id : 'menu_stockout',
leaf : true
}]
}
}]
}, {
title : "系统管理",
titleAlign: 'center',
autoScroll : true,
items:[{
xtype : "treepanel",
rootVisible : false,
displayField : "text",
margin : '0 0 0 0',
border : 0,
root : {
expanded : true,
children : [ {
text : "商品管理",
leaf : false,
children : [{
text : "<span style='font-weight:bold'>商品类别</span>",
id : 'menu_ware_category',
leaf : true
}, {
text : "<span style='font-weight:bold'>商品</span>",
id : 'menu_ware',
leaf : true
}, {
text : "<span style='font-weight:bold'>供应商</span>",
id : 'menu_vendor',
leaf : true
}]
}, {
text : "用户管理",
leaf : false,
children : [{
text : "<span style='font-weight:bold'>负责人</span>",
id : 'menu_manager',//对于菜单项,再分配id时都要加menu前缀
leaf : true
}, {
text : "<span style='font-weight:bold'>库管员</span>",
id : 'menu_warekeeper',
leaf : true
}, {
text : "<span style='font-weight:bold'>经手人</span>",
id : 'menu_regulator',
leaf : true
}]
}]
}
}]
}, {
title : "个人中心",
titleAlign: 'center',
autoScroll : true,
items:[{
xtype : "treepanel",
rootVisible : false,// 不展示根节点
displayField : "text",
margin : '0 0 5 0',
border : 0,
root : {
expanded : true,
children : [{
text : "<span style='font-weight:bold'>修改密码</span>",
id : 'menu_update_password',
leaf : true
}]
}
}]
}]
});
...@@ -7,8 +7,8 @@ Ext.onReady(function() { ...@@ -7,8 +7,8 @@ Ext.onReady(function() {
Ext.application({ Ext.application({
requires: ['Ext.container.Viewport'], requires: ['Ext.container.Viewport'],
name: 'wms', name: 'drp',
appFolder: 'wms', appFolder: 'drp',
launch: function() { launch: function() {
Ext.create("Ext.container.Viewport", { Ext.create("Ext.container.Viewport", {
layout : "fit", layout : "fit",
...@@ -18,6 +18,6 @@ Ext.onReady(function() { ...@@ -18,6 +18,6 @@ Ext.onReady(function() {
}] }]
}); });
}, },
controllers : ["wms.base.controller.MainController"] controllers : ["drp.base.controller.MainController"]
}); });
}); });
\ No newline at end of file
Ext.define('wms.util.CommonMethod', { Ext.define('drp.util.CommonMethod', {
callBackMsg : function(operation) { callBackMsg : function(operation) {
return operation.request.scope.reader.jsonData["message"]; return operation.request.scope.reader.jsonData["message"];
} }
}); });
\ No newline at end of file
Ext.define('wms.widget.AlertWin', { Ext.define('drp.widget.AlertWin', {
extend : 'Ext.window.Window', extend : 'Ext.window.Window',
alias : 'widget.alertwin', alias : 'widget.alertwin',
closeAction : 'hide', closeAction : 'hide',
......
Ext.define('wms.widget.MonthField', { Ext.define('drp.widget.MonthField', {
extend:'Ext.form.field.Date', extend:'Ext.form.field.Date',
alias: 'widget.monthfield', alias: 'widget.monthfield',
requires: ['Ext.picker.Month'], requires: ['Ext.picker.Month'],
......
Ext.define('wms.widget.TreeComboBox', { Ext.define('drp.widget.TreeComboBox', {
extend : 'Ext.form.field.ComboBox', extend : 'Ext.form.field.ComboBox',
alias : 'widget.treecombobox', alias : 'widget.treecombobox',
id : 'treecomboboxid', id : 'treecomboboxid',
......
Ext.define('wms.widget.UploadFileForm', { Ext.define('drp.widget.UploadFileForm', {
extend : 'Ext.panel.Panel', extend : 'Ext.panel.Panel',
alias : 'widget.uploadfileformview', alias : 'widget.uploadfileformview',
layout : 'fit', layout : 'fit',
......
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