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;
import java.util.List;
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.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.StockOutInvoiceService;
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.users.UserService;
import com.originspark.drp.util.json.Jackson;
public abstract class AbstractController {
public class BaseController extends HandlerInterceptorAdapter {
@Autowired
protected UserService userService;
......@@ -23,10 +28,10 @@ public abstract class AbstractController {
protected WareService wareService;
@Autowired
protected VendorService vendorService;
protected WareCategoryService wareCategoryService;
@Autowired
protected ProjectService projectService;
protected VendorService vendorService;
@Autowired
protected StockInInvoiceService stockInInvoiceService;
......@@ -34,15 +39,48 @@ public abstract class AbstractController {
@Autowired
protected StockOutInvoiceService stockOutInvoiceService;
//一般用于create、update、delete的返回值
protected final static String ok(String message){
private static final ThreadLocal<HttpServletRequest> REQUEST = new ThreadLocal<HttpServletRequest>();
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);
modelMap.put("success", "true");
modelMap.put("message", message);
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);
modelMap.put("success", "true");
modelMap.put("message", message);
......@@ -50,9 +88,9 @@ public abstract class AbstractController {
return Jackson.toJson(modelMap);
}
//一般用于list分页数据的返回值
// 一般用于list分页数据的返回值
@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);
modelMap.put("success", "true");
modelMap.put("data", items);
......@@ -60,17 +98,17 @@ public abstract class AbstractController {
return Jackson.toJson(modelMap);
}
//一般用于list不分页的返回值
// 一般用于list不分页的返回值
@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);
modelMap.put("success", "true");
modelMap.put("data", items);
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);
modelMap.put("success", "false");
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;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
@Controller
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public class MainController {
@RequestMapping("index")
......
package com.originspark.drp.controllers;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.User;
import com.originspark.drp.util.Blowfish;
import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.json.PasswordJson;
@Controller
@RequestMapping("profile")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public class ProfileController extends AbstractController {
public class ProfileController extends BaseController {
@RequestMapping(value="/updatepassword",method = RequestMethod.GET)
@RequestMapping(value="/password/update",method = RequestMethod.GET)
@ResponseBody
public String updatePassword(@RequestParam String data,HttpServletRequest request){
public String updatePassword(@RequestParam String data){
System.out.println(request().getSession());
ObjectMapper mapper = new ObjectMapper();
try {
PasswordJson json = mapper.readValue(data,PasswordJson.class);
PasswordJson json = mapper.readValue(data, PasswordJson.class);
if(!json.getNewpwd().equals(json.getNewpwdagain())){
return failure("修改失败,密码两次输入不一致");
}
AbstractUser user = SessionUtil.getCurrentUser(request);
Blowfish bf=new Blowfish();
if(!json.getPwd().equals(bf.decryptString(user.getPassword()))){
User user = SessionUtil.getCurrentUser(request());
Blowfish bf = new Blowfish();
String pwd = bf.decryptString(user.getPassword());
if(!json.getPwd().equals(pwd)){
return failure("修改失败,请输入正确的原始密码");
}
......
package com.originspark.drp.controllers.users;
package com.originspark.drp.controllers;
import java.util.ArrayList;
import java.util.List;
......@@ -14,37 +14,33 @@ 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.Leader;
import com.originspark.drp.models.User;
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.IdsJson;
import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("leader")
@AuthRoleGroup(type={RoleEnum.LEADER})
public class LeaderController extends AbstractController {
@RequestMapping("users")
public class UserController extends BaseController {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody Leader leader) {
leader.setPassword("123456");
userService.save(leader);
public String create(@RequestBody User user) {
user.setPassword("123456");
userService.save(user);
return ok("创建成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Long id) {
AbstractUser leader = userService.findById(AbstractUser.class, id);
User leader = userService.findById(User.class, id);
leader.setStatus(Status.DESTORYED);
userService.update(leader);
return ok("注销成功");
}
@RequestMapping(value= "/deleteBatch",method = RequestMethod.GET)
@ResponseBody
public String deleteBatch(HttpServletRequest request){
......@@ -60,29 +56,29 @@ public class LeaderController extends AbstractController {
return failure("没有需要审核的数据");
}
for(long id:json.getIds()){
AbstractUser leader = userService.findById(AbstractUser.class, id);
User leader = userService.findById(User.class, id);
leader.setStatus(Status.DESTORYED);
userService.update(leader);
}
return ok("注销成功");
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@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) {
return failure("您要更新的领导不存在");
}
existingLeader.setName(leader.getName());
existingLeader.setCode(leader.getCode());
existingLeader.setGender(leader.getGender());
existingLeader.setPhone(leader.getPhone());
existingLeader.setAddress(leader.getAddress());
existingLeader.setEmail(leader.getEmail());
existingLeader.setStatus(leader.getStatus());
existingLeader.setName(user.getName());
existingLeader.setCode(user.getCode());
existingLeader.setGender(user.getGender());
existingLeader.setPhone(user.getPhone());
existingLeader.setAddress(user.getAddress());
existingLeader.setEmail(user.getEmail());
existingLeader.setStatus(user.getStatus());
userService.update(existingLeader);
return ok("更新成功");
......@@ -100,10 +96,9 @@ public class LeaderController extends AbstractController {
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);
return ok(data, count);
}
}
......@@ -2,11 +2,9 @@ package com.originspark.drp.controllers.account;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession;
// import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
......@@ -17,16 +15,14 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.models.User;
import com.originspark.drp.service.account.AccountService;
import com.originspark.drp.util.Blowfish;
@Controller
@RequestMapping("account")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER,RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public class AccountController {
public class AccountController extends BaseController {
@Autowired
private AccountService service;
......@@ -34,10 +30,10 @@ public class AccountController {
private Logger logger = Logger.getLogger(AccountController.class);
@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();
Blowfish bf = new Blowfish();
List<AbstractUser> users = service.validate(username, password);
List<User> users = service.validate(username, password);
if (users.size() == 0) {
mav.setViewName("index");
mav.addObject("msg", "该用户不存在!");
......@@ -45,17 +41,11 @@ public class AccountController {
int i;
for (i = 0; i < users.size(); i++) {
if (bf.decryptString(users.get(i).getPassword()).equals(password)) {
AbstractUser user = users.get(i);
//将当前登录用户的信息存入session
User user = users.get(i);
// 将当前登录用户的信息存入session
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");
logger.info("用户 "+user.getName()+" 登录系统,时间:"+new Date());
logger.info("用户 " + user.getName() + " 登录系统,时间:" + new Date());
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;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -14,9 +14,7 @@ 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.controllers.BaseController;
import com.originspark.drp.models.projects.costs.StockInCost;
import com.originspark.drp.models.projects.invoices.StockInInvoice;
import com.originspark.drp.service.projects.costs.StockInCostService;
......@@ -26,10 +24,9 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("stockInCost")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class StockInCostController extends AbstractController{
public class StockInCostController extends BaseController{
@Autowired
@Resource
private StockInCostService service;
@RequestMapping(method = RequestMethod.POST)
......@@ -59,7 +56,7 @@ public class StockInCostController extends AbstractController{
return failure("抱歉,不能重复添加商品");
}
stockInCost.setCreatedByUserName(SessionUtil.getCurrentUserName(request));
stockInCost.setCreatedBy(SessionUtil.getCurrentUserName(request));
service.save(stockInCost);
return ok("创建成功");
......@@ -85,7 +82,7 @@ public class StockInCostController extends AbstractController{
existingStockInCost.setUnitPrice(stockInCost.getUnitPrice());
existingStockInCost.setQuantity(stockInCost.getQuantity());
existingStockInCost.setUpdatedByUserName(SessionUtil.getCurrentUserName(request));
existingStockInCost.setUpdatedBy(SessionUtil.getCurrentUserName(request));
service.update(existingStockInCost);
return ok("更新成功");
......@@ -93,7 +90,6 @@ public class StockInCostController extends AbstractController{
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
......
......@@ -3,9 +3,9 @@ package com.originspark.drp.controllers.projects.costs;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -14,9 +14,7 @@ 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.controllers.BaseController;
import com.originspark.drp.models.projects.costs.StockOutCost;
import com.originspark.drp.models.projects.invoices.StockOutInvoice;
import com.originspark.drp.service.projects.costs.StockOutCostService;
......@@ -26,10 +24,9 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("stockOutCost")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class StockOutCostController extends AbstractController{
public class StockOutCostController extends BaseController{
@Autowired
@Resource
private StockOutCostService service;
@RequestMapping(method = RequestMethod.POST)
......@@ -59,7 +56,7 @@ public class StockOutCostController extends AbstractController{
return failure("抱歉,不能重复添加商品");
}
stockOutCost.setCreatedByUserName(SessionUtil.getCurrentUserName(request));
stockOutCost.setCreatedBy(SessionUtil.getCurrentUserName(request));
service.save(stockOutCost);
return ok("创建成功");
......@@ -85,7 +82,7 @@ public class StockOutCostController extends AbstractController{
existingStockOutCost.setQuantity(stockOutCost.getQuantity());
existingStockOutCost.setUnitPrice(stockOutCost.getUnitPrice());
existingStockOutCost.setUpdatedByUserName(SessionUtil.getCurrentUserName(request));
existingStockOutCost.setUpdatedBy(SessionUtil.getCurrentUserName(request));
service.update(existingStockOutCost);
return ok("更新成功");
......@@ -93,7 +90,6 @@ public class StockOutCostController extends AbstractController{
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit,@RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
......
......@@ -18,10 +18,7 @@ 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.controllers.BaseController;
import com.originspark.drp.util.FileUtil;
import com.originspark.drp.util.poi.exporter.MonthendInventoryGenerator;
import com.originspark.drp.web.models.projects.inventories.CurrentInventoryUI;
......@@ -29,10 +26,9 @@ import com.originspark.drp.web.models.projects.inventories.Ware;
@Controller
@RequestMapping("project")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class InventoryController extends AbstractController {
public class InventoryController extends BaseController {
@RequestMapping(value = "/{id}/inventories/current", method = RequestMethod.GET)
/*@RequestMapping(value = "/{id}/inventories/current", method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String currentInventories(@PathVariable Long id){
......@@ -105,5 +101,5 @@ public class InventoryController extends AbstractController {
throw new RuntimeException("IOError writing file to output stream");
}
}
}
}*/
}
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.util.enums.AuditState;
public class AbstractInvoiceController extends AbstractController {
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);
}
}
}
}
public class AbstractInvoiceController extends BaseController {
}
......@@ -15,11 +15,7 @@ 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.models.projects.Project;
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.enums.AuditState;
import com.originspark.drp.util.json.AuditStateUpdateJson;
......@@ -29,12 +25,11 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("stockInInvoice")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class StockInInvoiceController extends AbstractInvoiceController {
private Logger logger = Logger.getLogger(StockInInvoiceController.class);
@RequestMapping(method = RequestMethod.POST)
/*@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody StockInInvoice invoice,HttpServletRequest request) {
......@@ -85,11 +80,10 @@ public class StockInInvoiceController extends AbstractInvoiceController {
stockInInvoiceService.update(existingInvoice);
return ok("更新成功",existingInvoice.getId());
}
}*/
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
......@@ -136,9 +130,8 @@ public class StockInInvoiceController extends AbstractInvoiceController {
return ok("删除成功(注释:部分合价不为0的入库单已忽略)");
}
@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET)
/*@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER})
public String updateAuditStateByUser(HttpServletRequest request) {
String data = request.getParameter("data");
......@@ -176,7 +169,7 @@ public class StockInInvoiceController extends AbstractInvoiceController {
}
return ok("提交成功");
}
}*/
}
......@@ -15,11 +15,7 @@ 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.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.users.AbstractUser;
import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.enums.AuditState;
import com.originspark.drp.util.json.AuditStateUpdateJson;
......@@ -29,12 +25,11 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("stockOutInvoice")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class StockOutInvoiceController extends AbstractInvoiceController {
private Logger logger = Logger.getLogger(StockOutInvoiceController.class);
@RequestMapping(method = RequestMethod.POST)
/* @RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String create(@RequestBody StockOutInvoice invoice,HttpServletRequest request) {
......@@ -114,11 +109,10 @@ public class StockOutInvoiceController extends AbstractInvoiceController {
stockOutInvoiceService.update(existingInvoice);
return ok("更新成功", existingInvoice.getId());
}
}*/
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) {
List<FilterRequest> filters = new ArrayList<FilterRequest>();
......@@ -133,9 +127,8 @@ public class StockOutInvoiceController extends AbstractInvoiceController {
return ok(data, count);
}
@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET)
/*@RequestMapping(value = "/updateAuditState", method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.WAREKEEPER,RoleEnum.PROJECTMANAGER})
public String updateAuditStateByUser(HttpServletRequest request) {
String data = request.getParameter("data");
......@@ -173,5 +166,5 @@ public class StockOutInvoiceController extends AbstractInvoiceController {
}
return ok("提交成功");
}
}*/
}
......@@ -15,9 +15,7 @@ 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.controllers.BaseController;
import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.util.SessionUtil;
import com.originspark.drp.util.json.IdsJson;
......@@ -26,8 +24,7 @@ import com.originspark.drp.util.json.JsonUtils;
@Controller
@RequestMapping("vendor")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class VendorController extends AbstractController {
public class VendorController extends BaseController {
private Logger logger = Logger.getLogger(VendorController.class);
......@@ -46,7 +43,7 @@ public class VendorController extends AbstractController {
return failure("该供应商已经存在,不可重复添加");
}
vendor.setCreatedByUserName(SessionUtil.getCurrentUserName(request));
vendor.setCreatedBy(SessionUtil.getCurrentUserName(request));
vendorService.save(vendor);
logger.info(">添加成功:"+vendor.toString());
......@@ -102,13 +99,9 @@ public class VendorController extends AbstractController {
existingVendor.setContactMan(vendor.getContactMan());
existingVendor.setAddress(vendor.getAddress());
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.setUpdatedByUserName(SessionUtil.getCurrentUserName(request));
existingVendor.setUpdatedBy(SessionUtil.getCurrentUserName(request));
vendorService.update(existingVendor);
logger.info(">更新成功:"+existingVendor.toString());
......@@ -117,7 +110,6 @@ public class VendorController extends AbstractController {
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter) {
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;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.originspark.drp.authority.AuthRoleGroup;
import com.originspark.drp.authority.RoleEnum;
import com.originspark.drp.controllers.AbstractController;
import com.originspark.drp.controllers.BaseController;
import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.models.resources.Ware;
import com.originspark.drp.util.FileUtil;
......@@ -40,8 +38,7 @@ import com.originspark.drp.util.poi.importer.WareImporter;
@Controller
@RequestMapping("ware")
@AuthRoleGroup(type={RoleEnum.MATERIALKEEPER})
public class WareController extends AbstractController {
public class WareController extends BaseController {
private Logger logger = Logger.getLogger(WareController.class);
......@@ -68,7 +65,7 @@ public class WareController extends AbstractController {
}
//save
ware.setCreatedByUserName(SessionUtil.getCurrentUserName(request));
ware.setCreatedBy(SessionUtil.getCurrentUserName(request));
Ware savedWare = wareService.save(ware);
logger.info(">添加成功:"+savedWare.toString());
......@@ -135,7 +132,7 @@ public class WareController extends AbstractController {
existingWare.setNote(ware.getNote());
existingWare.setVendor(ware.getVendor());
existingWare.setUpdatedByUserName(SessionUtil.getCurrentUserName(request));
existingWare.setUpdatedBy(SessionUtil.getCurrentUserName(request));
wareService.update(existingWare);
logger.info(">更新成功:"+existingWare.toString());
......@@ -144,7 +141,6 @@ public class WareController extends AbstractController {
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
@AuthRoleGroup(type={RoleEnum.PROJECTMANAGER,RoleEnum.LEADER})
public String list(@RequestParam int start, @RequestParam int limit, @RequestParam(required = false) Object filter, HttpServletRequest request) {
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;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import com.originspark.drp.util.enums.Status;
import com.sun.istack.internal.NotNull;
@MappedSuperclass
public abstract class AbstractModel {
......@@ -19,26 +24,34 @@ public abstract class AbstractModel {
/**
* 维护信息:记录创建日期
*/
@NotNull
@Column(name="createOn")
private Date createOn;
/**
* 维护信息:记录创建者
*/
@Column(name="createdByUserName",length=10)
private String createdByUserName;
@Column(name="createdBy",length=10)
private String createdBy;
/**
* 维护信息:记录更新日期
*/
@NotNull
@Column(name="updateOn")
private Date updateOn;
/**
* 维护信息:记录更新者
*/
@Column(name="updatedByUserName",length=10)
private String updatedByUserName;
@Column(name="updatedBy",length=10)
private String updatedBy;
/**
* 状态
*/
@Enumerated(EnumType.STRING)
private Status status;
public Long getId() {
return id;
......@@ -56,12 +69,12 @@ public abstract class AbstractModel {
this.createOn = createOn;
}
public String getCreatedByUserName() {
return createdByUserName;
public String getCreatedBy() {
return createdBy;
}
public void setCreatedByUserName(String createdByUserName) {
this.createdByUserName = createdByUserName;
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getUpdateOn() {
......@@ -72,12 +85,20 @@ public abstract class AbstractModel {
this.updateOn = updateOn;
}
public String getUpdatedByUserName() {
return updatedByUserName;
public String getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
public Status getStatus() {
return status;
}
public void setUpdatedByUserName(String updatedByUserName) {
this.updatedByUserName = updatedByUserName;
public void setStatus(Status status) {
this.status = status;
}
@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.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.originspark.drp.models.AbstractModel;
import com.originspark.drp.util.Blowfish;
import com.originspark.drp.util.enums.Gender;
import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.enums.UserType;
@Entity
@Table(name = "users")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
public class AbstractUser extends AbstractModel{
@Table(name="users")
public class User extends AbstractModel {
@Column(name = "type", updatable = false, insertable = false)
private String type;
@Enumerated(EnumType.STRING)
private UserType type;
/**
* 编号
......@@ -35,6 +27,11 @@ public class AbstractUser extends AbstractModel{
*/
private String name;
/**
* 登录账号
*/
private String username;
/**
* 密码
*/
......@@ -62,14 +59,12 @@ public class AbstractUser extends AbstractModel{
@Enumerated(EnumType.STRING)
private Gender gender;
/**
* 状态
*/
@Enumerated(EnumType.STRING)
private Status status;
public UserType getType() {
return type;
}
public static enum COLUMNS {
TYPE,CODE,NAME,PHONE,ADDRESS,EMAIL,GENDER,STATUS
public void setType(UserType type) {
this.type = type;
}
public String getCode() {
......@@ -88,13 +83,21 @@ public class AbstractUser extends AbstractModel{
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
Blowfish bf=new Blowfish();
String pwd=bf.encryptString(password);
Blowfish bf = new Blowfish();
String pwd = bf.encryptString(password);
this.password = pwd;
}
......@@ -130,25 +133,7 @@ public class AbstractUser extends AbstractModel{
this.gender = gender;
}
public String getType() {
return type;
}
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;
public static enum COLUMNS {
TYPE, CODE, NAME, PHONE, ADDRESS, EMAIL, GENDER, 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;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.originspark.drp.models.projects.Project;
import com.originspark.drp.models.resources.Ware;
@Entity
......@@ -20,12 +19,6 @@ public class MonthendInventory {
@GeneratedValue
private Long id;
/**
* 所属系统
*/
@ManyToOne
private Project system;
/**
* 年月
*/
......@@ -70,14 +63,6 @@ public class MonthendInventory {
this.id = id;
}
public Project getSystem() {
return system;
}
public void setSystem(Project system) {
this.system = system;
}
public String getForYearMonth() {
return forYearMonth;
}
......
......@@ -5,18 +5,13 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
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.Project;
import com.originspark.drp.util.enums.AuditState;
import com.sun.istack.internal.NotNull;
/**
* 单据
......@@ -31,12 +26,6 @@ public abstract class AbstractInvoice extends AbstractModel{
*/
private String code;
/**
* 所属系统
*/
@ManyToOne
private Project system;
/**
* 日期
*/
......@@ -44,6 +33,7 @@ public abstract class AbstractInvoice extends AbstractModel{
private Date forDate;
@JsonIgnore
@NotNull
@Column(columnDefinition = "char(7)", nullable = false)
private String forYearMonth;
......@@ -54,50 +44,25 @@ public abstract class AbstractInvoice extends AbstractModel{
private BigDecimal totalPrice = BigDecimal.ZERO;
/**
* 材料员姓名
* 负责人
*/
private String materialKeeperName;
private String manager;
/**
* 库管员姓名
* 库管
*/
private String wareKeeperName;
private String wareKeeper;
/**
* 项目经理姓名
* 经手人
*/
private String projectManagerName;
/**
* 库管审核状态
*/
@Enumerated(EnumType.STRING)
private AuditState wareKeeperAuditState;
/**
* 材料管理员审核状态
*/
@Enumerated(EnumType.STRING)
private AuditState materialKeeperAuditState;
/**
* 项目经理审核状态
*/
@Enumerated(EnumType.STRING)
private AuditState projectManagerAuditState;
/**
* 单据的状态,当项目经理通过之后,就设置为pass=true
*/
private Boolean pass;
private String regulator;
public static enum COLUMNS {
STARTDATE,ENDDATE,CODE,
MINTOTAL,MAXTOTAL,PROJECT,SYSTEM,
WARENAME,RECEIVEMANNAME,
MATERIALKEEPERNAME,WAREKEEPERNAME,PROJECTMANAGERNAME,
MATERIALKEEPERID,WAREKEEPERID,PROJECTMANAGERID,
MATERIALKEEPERAUDITSTATE,WAREKEEPERAUDITSTATE,PROJECTMANAGERAUDITSTATE
REGULATORNAME,WAREKEEPERNAME,MANAGERNAME
}
public String getCode() {
......@@ -108,47 +73,39 @@ public abstract class AbstractInvoice extends AbstractModel{
this.code = code;
}
public Project getSystem() {
return system;
}
public void setSystem(Project system) {
this.system = system;
public String getManager() {
return manager;
}
public Date getForDate() {
return forDate;
public void setManager(String manager) {
this.manager = manager;
}
public void setForDate(Date forDate) {
this.forDate = forDate;
if (forDate != null) {
setForYearMonth(forYearMonthFormatter.format(forDate));
}
public String getWareKeeper() {
return wareKeeper;
}
public String getMaterialKeeperName() {
return materialKeeperName;
public void setWareKeeper(String wareKeeper) {
this.wareKeeper = wareKeeper;
}
public void setMaterialKeeperName(String materialKeeperName) {
this.materialKeeperName = materialKeeperName;
public String getRegulator() {
return regulator;
}
public String getWareKeeperName() {
return wareKeeperName;
public void setRegulator(String regulator) {
this.regulator = regulator;
}
public void setWareKeeperName(String wareKeeperName) {
this.wareKeeperName = wareKeeperName;
public Date getForDate() {
return forDate;
}
public String getProjectManagerName() {
return projectManagerName;
public void setForDate(Date forDate) {
this.forDate = forDate;
if (forDate != null) {
setForYearMonth(forYearMonthFormatter.format(forDate));
}
public void setProjectManagerName(String projectManagerName) {
this.projectManagerName = projectManagerName;
}
public String getForYearMonth() {
......@@ -167,51 +124,8 @@ public abstract class AbstractInvoice extends AbstractModel{
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
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{
private String name;
/**
* 地址
* 联系电话
*/
private String address;
private String phone;
/**
* 联系电话
* 地址
*/
private String phone;
private String address;
/**
* 联系人
......@@ -39,36 +39,6 @@ public class Vendor extends AbstractModel{
@Column(name="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{
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() {
return note;
}
......
package com.originspark.drp.models.resources;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -8,6 +9,8 @@ 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.fasterxml.jackson.annotation.JsonProperty;
......@@ -24,7 +27,7 @@ import com.originspark.drp.models.projects.inventories.MonthendInventory;
public class Ware extends AbstractModel {
/**
* 名称
* 品名
*/
private String name;
......@@ -43,6 +46,17 @@ public class Ware extends AbstractModel {
*/
private String unit;
/**
* 生产日期
*/
@Temporal(TemporalType.DATE)
private Date produceOn;
/**
* 保质期
*/
private String storage;
/**
* 备注
*/
......@@ -102,6 +116,22 @@ public class Ware extends AbstractModel {
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() {
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;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.http.MediaType;
......@@ -28,5 +27,4 @@ public class UTF8StringBeanPostProcessor implements BeanPostProcessor {
// do nothing
return bean;
}
}
\ No newline at end of file
......@@ -2,9 +2,8 @@ package com.originspark.drp.service.account;
import java.util.List;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.User;
public interface AccountService{
public List<AbstractUser> validate(String username,String password);
public List<User> validate(String username,String password);
}
......@@ -13,21 +13,21 @@ import javax.persistence.criteria.Root;
import org.springframework.stereotype.Service;
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;
@Transactional
@Service
@Service("AccountService")
public class AccountServiceBean implements AccountService {
@PersistenceContext
protected EntityManager em;
@Override
public List<AbstractUser> validate(String username, String password) {
public List<User> validate(String username, String password) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<AbstractUser> dataQuery = cb.createQuery(AbstractUser.class);
Root<AbstractUser> user = dataQuery.from(AbstractUser.class);
CriteriaQuery<User> dataQuery = cb.createQuery(User.class);
Root<User> user = dataQuery.from(User.class);
dataQuery.select(user);
List<Predicate> criteria = new ArrayList<Predicate>();
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;
import com.originspark.drp.util.json.FilterRequest;
@Transactional
@Service
@Service("stockInInvoiceService")
public class StockInInvoiceServiceBean extends BaseDAOSupport<StockInInvoice> implements
StockInInvoiceService {
......@@ -141,49 +141,19 @@ public class StockInInvoiceServiceBean extends BaseDAOSupport<StockInInvoice> im
andCriteria.add(cb.lessThanOrEqualTo(stockin.<BigDecimal>get("totalPrice"), maxTotal));
}
break;
case MATERIALKEEPERNAME:
case REGULATORNAME:
if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockin.<String>get("materialKeeperName"), "%" + value + "%"));
andCriteria.add(cb.like(stockin.<String>get("regulator"), "%" + value + "%"));
}
break;
case WAREKEEPERNAME:
if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockin.<String>get("wareKeeperName"), "%" + value + "%"));
andCriteria.add(cb.like(stockin.<String>get("wareKeeper"), "%" + value + "%"));
}
break;
case PROJECTMANAGERNAME:
case MANAGERNAME:
if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockin.<String>get("projectManagerName"), "%" + 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)));
andCriteria.add(cb.like(stockin.<String>get("manager"), "%" + value + "%"));
}
break;
case WARENAME:
......
......@@ -24,7 +24,7 @@ import com.originspark.drp.util.enums.AuditState;
import com.originspark.drp.util.json.FilterRequest;
@Transactional
@Service
@Service("stockOutInvoiceService")
public class StockOutInvoiceServiceBean extends BaseDAOSupport<StockOutInvoice> implements
StockOutInvoiceService {
......@@ -141,49 +141,19 @@ public class StockOutInvoiceServiceBean extends BaseDAOSupport<StockOutInvoice>
andCriteria.add(cb.lessThanOrEqualTo(stockout.<BigDecimal>get("totalPrice"), maxTotal));
}
break;
case MATERIALKEEPERNAME:
case REGULATORNAME:
if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockout.<String>get("materialKeeperName"), "%" + value + "%"));
andCriteria.add(cb.like(stockout.<String>get("regulator"), "%" + value + "%"));
}
break;
case WAREKEEPERNAME:
if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockout.<String>get("wareKeeperName"), "%" + value + "%"));
andCriteria.add(cb.like(stockout.<String>get("wareKeeper"), "%" + value + "%"));
}
break;
case PROJECTMANAGERNAME:
case MANAGERNAME:
if (value != null && !value.equals("")) {
andCriteria.add(cb.like(stockout.<String>get("projectManagerName"), "%" + 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)));
andCriteria.add(cb.like(stockout.<String>get("manager"), "%" + value + "%"));
}
break;
case RECEIVEMANNAME :
......
......@@ -3,10 +3,13 @@ package com.originspark.drp.service.resources;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.util.json.FilterRequest;
@Service
public interface VendorService extends BaseDAO<Vendor>{
List<Vendor> pagedDataSet(int start, int limit, List<FilterRequest> filters);
......
......@@ -17,7 +17,7 @@ import com.originspark.drp.models.resources.Vendor;
import com.originspark.drp.models.resources.Vendor.COLUMNS;
import com.originspark.drp.util.json.FilterRequest;
@Service
@Service("vendorService")
public class VendorServiceBean extends BaseDAOSupport<Vendor> implements VendorService {
@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;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.originspark.drp.dao.BaseDAO;
import com.originspark.drp.models.resources.Ware;
import com.originspark.drp.util.json.FilterRequest;
@Service
public interface WareService extends BaseDAO<Ware>{
List<Ware> pagedDataSet(int start, int limit, List<FilterRequest> filters);
......
......@@ -23,7 +23,7 @@ import com.originspark.drp.models.resources.Ware.COLUMNS;
import com.originspark.drp.util.json.FilterRequest;
@Transactional
@Service
@Service("wareService")
public class WareServiceBean extends BaseDAOSupport<Ware> implements
WareService {
......
......@@ -2,13 +2,17 @@ package com.originspark.drp.service.users;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
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;
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);
......
......@@ -13,23 +13,23 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.originspark.drp.dao.BaseDAOSupport;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.users.AbstractUser.COLUMNS;
import com.originspark.drp.models.User;
import com.originspark.drp.models.User.COLUMNS;
import com.originspark.drp.util.enums.Gender;
import com.originspark.drp.util.enums.Status;
import com.originspark.drp.util.json.FilterRequest;
@Transactional
@Service
public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements UserService {
@Service("userService")
public class UserServiceBean extends BaseDAOSupport<User> implements UserService {
@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();
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);
......@@ -47,7 +47,7 @@ public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements Use
public Long pagedDataCount(List<FilterRequest> filters) {
CriteriaBuilder cb = em.getCriteriaBuilder();
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));
Predicate[] predicates = toPredicates(cb, user, filters);
......@@ -65,7 +65,7 @@ public class UserServiceBean extends BaseDAOSupport<AbstractUser> implements Use
return null;
}
public static Predicate[] toPredicates(CriteriaBuilder cb, Root<AbstractUser> user,
public static Predicate[] toPredicates(CriteriaBuilder cb, Root<User> user,
List<FilterRequest> filters) {
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;
import javax.servlet.http.HttpServletRequest;
import com.originspark.drp.models.users.AbstractUser;
import com.originspark.drp.models.User;
public class SessionUtil {
//返回当前登陆的用户信息
public static AbstractUser getCurrentUser(HttpServletRequest request){
AbstractUser user=(AbstractUser) request.getSession().getAttribute("user");
public static User getCurrentUser(HttpServletRequest request){
User user=(User) request.getSession().getAttribute("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 @@
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="packagesToScan" value="com.originspark.drp.models.*"/>
<property name="packagesToScan" value="com.originspark.drp.models.**"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
......
......@@ -11,7 +11,7 @@ sql.type=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/drp?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
jdbc.password=
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#hibernate settings
......
......@@ -11,10 +11,6 @@
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!-- <mvc:interceptors>
<bean class = "com.originspark.drp.controllers.account.AuthInterceptor"></bean>
</mvc:interceptors> -->
<mvc:annotation-driven />
<context:annotation-config />
......@@ -35,6 +31,9 @@
<property name="defaultEncoding" value="utf-8" />
</bean>
<bean class="com.originspark.drp.processor.UTF8StringBeanPostProcessor" />
<mvc:interceptors>
<bean class="com.originspark.drp.controllers.BaseController"/>
</mvc:interceptors>
</beans>
\ No newline at end of file
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>后台管理首页</title>
<meta charset="UTF-8">
<title>后台管理首页</title>
<base href="<%=basePath%>">
<%@ include file="/common/meta.jsp"%>
<%@ include file="/common/Ext.jsp"%>
<%@ include file="/common/global.jsp"%>
......
......@@ -32,12 +32,6 @@
<filter-name>openEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</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-name>springServlet</servlet-name>
<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 @@
<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/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 import="java.util.*,org.apache.commons.lang3.StringUtils,org.apache.commons.lang3.ObjectUtils" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
......@@ -6,25 +6,21 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script type="text/javascript">
var ctx = '<%=request.getContextPath() %>';
<%
String displayUserType = "";
String urlUserType = "";
AbstractUser user = (AbstractUser)request.getSession().getAttribute("user");
User user = (User)request.getSession().getAttribute("user");
if(user!=null){
String type=user.getType();
if(type.equals("Leader")){
displayUserType="管理员";
urlUserType="leader";
}else if(type.equals("ProjectManager")){
displayUserType="项目经理";
urlUserType="projectManager";
}else if(type.equals("WareKeeper")){
UserType type = user.getType();
if(type.name().equals("MANAGER")){
displayUserType="负责人";
urlUserType="manager";
}else if(type.name().equals("WAREKEEPER")){
displayUserType="库管员";
urlUserType="wareKeeper";
}else if(type.equals("MaterialKeeper")){
displayUserType="材料员";
urlUserType="materialKeeper";
}else if(type.name().equals("REGULATOR")){
displayUserType="经手人";
urlUserType="regulator";
}else{
displayUserType="身份未知";
urlUserType=null;
......
Ext.define("wms.app.controller.AbstractController", {
Ext.define("drp.app.controller.AbstractController", {
extend : "Ext.app.Controller",
me : null,
......@@ -53,7 +53,7 @@ Ext.define("wms.app.controller.AbstractController", {
Ext.MessageBox.confirm("标题", "确定删除所选的" + name + "吗?", function(btn) {
if (btn == 'yes') {
Ext.Ajax.request({
url : ctx+actionUrl,
url : actionUrl,
method : "GET",
params : {
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
*/
Ext.define("wms.app.controller.projects.ProjectController", {
extend : "wms.app.controller.AbstractController",
Ext.define("drp.app.controller.projects.ProjectController", {
extend : "drp.app.controller.AbstractController",
projectTreePanel : null,
me : null,
......@@ -128,21 +128,21 @@ Ext.define("wms.app.controller.projects.ProjectController", {
projectForm.down('form').loadRecord(record);
//1.设置项目经理
var projectManagerRecord = Ext.create("wms.app.model.users.ProjectManagerModel", {
var projectManagerRecord = Ext.create("drp.app.model.users.ProjectManagerModel", {
id : record.data.projectManager.id,
name : record.data.projectManager.name
});
projectForm.down('#projectManager_cb').setValue(projectManagerRecord);
//2.设置库管员
var WareKeeperRecord = Ext.create("wms.app.model.users.WareKeeperModel", {
var WareKeeperRecord = Ext.create("drp.app.model.users.WareKeeperModel", {
id : record.data.wareKeeper.id,
name : record.data.wareKeeper.name
});
projectForm.down('#wareKeeper_cb').setValue(WareKeeperRecord);
//3.设置材料员
var MaterialKeeperRecord = Ext.create("wms.app.model.users.MaterialKeeperModel", {
var MaterialKeeperRecord = Ext.create("drp.app.model.users.MaterialKeeperModel", {
id : record.data.materialKeeper.id,
name : record.data.materialKeeper.name
});
......@@ -178,7 +178,7 @@ Ext.define("wms.app.controller.projects.ProjectController", {
},
submitProjectForm : function(btn) {
var modelName = "wms.app.model.projects.ProjectModel";
var modelName = "drp.app.model.projects.ProjectModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
......@@ -219,11 +219,11 @@ Ext.define("wms.app.controller.projects.ProjectController", {
} ]);
},
models : [ "wms.app.model.projects.ProjectModel","wms.app.model.users.ProjectManagerModel",
"wms.app.model.users.WareKeeperModel","wms.app.model.users.MaterialKeeperModel" ],
stores : [ "wms.app.store.projects.ProjectStore", "wms.app.store.users.ProjectManagerStore",
"wms.app.store.users.MaterialKeeperStore","wms.app.store.users.WareKeeperStore"],
views : [ "wms.app.view.projects.ProjectView",
"wms.app.view.projects.ProjectViewForm",
"wms.app.view.projects.SystemViewForm" ]
models : [ "drp.app.model.projects.ProjectModel","drp.app.model.users.ProjectManagerModel",
"drp.app.model.users.WareKeeperModel","drp.app.model.users.MaterialKeeperModel" ],
stores : [ "drp.app.store.projects.ProjectStore", "drp.app.store.users.ProjectManagerStore",
"drp.app.store.users.MaterialKeeperStore","drp.app.store.users.WareKeeperStore"],
views : [ "drp.app.view.projects.ProjectView",
"drp.app.view.projects.ProjectViewForm",
"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',
currentInventoryGrid : null,
......@@ -16,7 +16,7 @@ Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController',
'currentinventoryview > treepanel' : {
select : function(treepanel, record){
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().reload();
},
......@@ -35,7 +35,7 @@ Ext.define('wms.app.controller.projects.inventories.CurrentInventoryController',
});
},
views : ['wms.app.view.projects.inventories.CurrentInventoryView'],
models :['wms.app.model.projects.ProjectModel','wms.app.model.projects.inventories.CurrentInventoryModel'],
stores : ['wms.app.store.projects.inventories.CurrentInventoryStore']
views : ['drp.app.view.projects.inventories.CurrentInventoryView'],
models :['drp.app.model.projects.ProjectModel','drp.app.model.projects.inventories.CurrentInventoryModel'],
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',
monthendInventoryGrid : null,
......@@ -34,7 +34,7 @@ Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController'
}
projectId = record.data.id;
var _url = ctx + "/project/"+projectId+"/inventories/monthend";
var _url = "project/"+projectId+"/inventories/monthend";
var store = monthendInventoryGrid.getStore();
store.getProxy().url = _url;
Ext.apply(store.proxy.extraParams, {
......@@ -77,13 +77,13 @@ Ext.define('wms.app.controller.projects.inventories.MonthendInventoryController'
return;
}
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'],
models :['wms.app.model.projects.ProjectModel','wms.app.model.projects.inventories.MonthEndInventoryModel'],
stores : ['wms.app.store.projects.inventories.MonthEndInventoryStore']
views : ['drp.app.view.projects.inventories.MonthendInventoryView','drp.widget.MonthField'],
models :['drp.app.model.projects.ProjectModel','drp.app.model.projects.inventories.MonthEndInventoryModel'],
stores : ['drp.app.store.projects.inventories.MonthEndInventoryStore']
});
\ No newline at end of file
/**
* @author Yestin
*/
Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
extend : "wms.app.controller.AbstractController",
Ext.define("drp.app.controller.projects.invoices.StockInInvoiceController", {
extend : "drp.app.controller.AbstractController",
inInvoiceController : null,
invoiceGrid : null,
......@@ -24,14 +24,14 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
currentInvoice = null;
wareWindow= false;
invoiceGrid = panel.down('gridpanel');
//只有材料员可以新建删除出库单
if(user.type != "MaterialKeeper"){
invoiceGrid.down('#addInInvoice_btn').setVisible(false);
invoiceGrid.down('#deleteInInvoice_btn').setVisible(false);
}
if(user.type == "Leader"){
invoiceGrid.down('#operationInInvoice_tb').setVisible(false);
}
// //只有材料员可以新建删除出库单
// if(user.type != "MaterialKeeper"){
// invoiceGrid.down('#addInInvoice_btn').setVisible(false);
// invoiceGrid.down('#deleteInInvoice_btn').setVisible(false);
// }
// if(user.type == "Leader"){
// invoiceGrid.down('#operationInInvoice_tb').setVisible(false);
// }
}
},
......@@ -97,9 +97,9 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
// 加载弹窗相关的controller
if(!wareWindow){
wareWindow = Ext.widget('warewindow');
var WareControllerName = "wms.app.controller.resources.WareController";
var WareControllerName = "drp.app.controller.resources.WareController";
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();
}
}
......@@ -244,7 +244,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
//入库商品-提交保存
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();
if (form.isValid()) {
var formBean = form.getValues();
......@@ -423,7 +423,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
});
Ext.Ajax.request({
url : ctx+"/stockInInvoice/updateAuditState",
url : "stockInInvoice/updateAuditState",
method : "GET",
params : {
data : Ext.encode(data)
......@@ -444,7 +444,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
},
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();
if (form.isValid()) {
var formBean = form.getValues();
......@@ -487,7 +487,7 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
});
Ext.Ajax.request({
url : ctx+"/stockInInvoice/updateAuditState",
url : "stockInInvoice/updateAuditState",
method : "GET",
params : {
data : Ext.encode(data)
......@@ -503,18 +503,18 @@ Ext.define("wms.app.controller.projects.invoices.StockInInvoiceController", {
});
},
models : ["wms.app.model.projects.invoices.StockInInvoiceModel",
"wms.app.model.projects.costs.StockInCostModel",
"wms.app.model.resources.WareModel"],
stores : ["wms.app.store.projects.invoices.StockInInvoiceStore",
"wms.app.store.projects.costs.StockInCostStore",
"wms.app.store.projects.ProjectDataStore",
"wms.app.store.resources.WareStore",
"wms.app.store.resources.VendorStore"],
views : ["wms.app.view.projects.invoices.StockInInvoiceView",
"wms.app.view.projects.costs.StockInCostView",
"wms.app.view.projects.costs.StockInCostShowView",
"wms.app.view.resources.WareView",
"wms.app.view.resources.WareWindow",
"wms.app.view.resources.WareViewForm" ]
models : ["drp.app.model.projects.invoices.StockInInvoiceModel",
"drp.app.model.projects.costs.StockInCostModel",
"drp.app.model.resources.WareModel"],
stores : ["drp.app.store.projects.invoices.StockInInvoiceStore",
"drp.app.store.projects.costs.StockInCostStore",
"drp.app.store.projects.ProjectDataStore",
"drp.app.store.resources.WareStore",
"drp.app.store.resources.VendorStore"],
views : ["drp.app.view.projects.invoices.StockInInvoiceView",
"drp.app.view.projects.costs.StockInCostView",
"drp.app.view.projects.costs.StockInCostShowView",
"drp.app.view.resources.WareView",
"drp.app.view.resources.WareWindow",
"drp.app.view.resources.WareViewForm" ]
});
\ No newline at end of file
/**
* @author ReedMi
*/
Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
extend : "wms.app.controller.AbstractController",
Ext.define("drp.app.controller.projects.invoices.StockOutInvoiceController", {
extend : "drp.app.controller.AbstractController",
me : null,
invoiceGrid : null,
......@@ -25,13 +25,13 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
wareWindow= false;
invoiceGrid = panel.down('gridpanel');
//只有材料员可以新建删除出库单
if(user.type != "MaterialKeeper"){
/*if(user.type != "MaterialKeeper"){
invoiceGrid.down('#addOutInvoice_btn').setVisible(false);
invoiceGrid.down('#deleteOutInvoice_btn').setVisible(false);
}
if(user.type == "Leader"){
invoiceGrid.down('#operationOutInvoice_tb').setVisible(false);
}
}*/
}
},
......@@ -97,9 +97,9 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
// 加载弹窗相关的controller
if(!wareWindow){
wareWindow = Ext.widget('warewindow');
var WareControllerName = "wms.app.controller.resources.WareController";
var WareControllerName = "drp.app.controller.resources.WareController";
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();
}
}
......@@ -253,7 +253,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
//入库商品-提交保存
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();
if (form.isValid()) {
var formBean = form.getValues();
......@@ -436,7 +436,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
});
Ext.Ajax.request({
url : ctx+"/stockOutInvoice/updateAuditState",
url : "stockOutInvoice/updateAuditState",
method : "GET",
params : {
data : Ext.encode(data)
......@@ -469,7 +469,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
});
Ext.Ajax.request({
url : ctx+"/stockOutInvoice/updateAuditState",
url : "stockOutInvoice/updateAuditState",
method : "GET",
params : {
data : Ext.encode(data)
......@@ -486,7 +486,7 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
},
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();
if (form.isValid()) {
var formBean = form.getValues();
......@@ -515,18 +515,18 @@ Ext.define("wms.app.controller.projects.invoices.StockOutInvoiceController", {
}
},
models : ["wms.app.model.projects.invoices.StockOutInvoiceModel",
"wms.app.model.projects.costs.StockOutCostModel",
"wms.app.model.resources.WareModel"],
stores : ["wms.app.store.projects.invoices.StockOutInvoiceStore",
"wms.app.store.projects.costs.StockOutCostStore",
"wms.app.store.projects.ProjectDataStore",
"wms.app.store.resources.WareStore",
"wms.app.store.resources.VendorStore"],
views : ["wms.app.view.projects.invoices.StockOutInvoiceView",
"wms.app.view.projects.costs.StockOutCostView",
"wms.app.view.projects.costs.StockOutCostShowView",
"wms.app.view.resources.WareView",
"wms.app.view.resources.WareWindow",
"wms.app.view.resources.WareViewForm" ]
models : ["drp.app.model.projects.invoices.StockOutInvoiceModel",
"drp.app.model.projects.costs.StockOutCostModel",
"drp.app.model.resources.WareModel"],
stores : ["drp.app.store.projects.invoices.StockOutInvoiceStore",
"drp.app.store.projects.costs.StockOutCostStore",
"drp.app.store.projects.ProjectDataStore",
"drp.app.store.resources.WareStore",
"drp.app.store.resources.VendorStore"],
views : ["drp.app.view.projects.invoices.StockOutInvoiceView",
"drp.app.view.projects.costs.StockOutCostView",
"drp.app.view.projects.costs.StockOutCostShowView",
"drp.app.view.resources.WareView",
"drp.app.view.resources.WareWindow",
"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", {
extend : "wms.app.controller.AbstractController",
Ext.define("drp.app.controller.users.WareKeeperController", {
extend : "drp.app.controller.AbstractController",
wareKeeperGrid : null,
me : null,
......@@ -95,7 +95,7 @@ Ext.define("wms.app.controller.users.WareKeeperController", {
},
submitWareKeeperForm : function(btn) {
var modelName = "wms.app.model.users.WareKeeperModel";
var modelName = "drp.app.model.users.WareKeeperModel";
var form = btn.up('form').getForm();
if (form.isValid()) {
var formBean = form.getValues();
......@@ -108,7 +108,7 @@ Ext.define("wms.app.controller.users.WareKeeperController", {
me.closeForm();
},
models : [ "wms.app.model.users.WareKeeperModel" , "wms.app.model.projects.ProjectModel"],
stores : [ "wms.app.store.users.WareKeeperStore"],
views : [ "wms.app.view.users.WareKeeperView","wms.app.view.users.WareKeeperViewForm" ]
models : [ "drp.app.model.users.WareKeeperModel" , "drp.app.model.projects.ProjectModel"],
stores : [ "drp.app.store.users.WareKeeperStore"],
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",
fields : [{
name : "id"
......@@ -9,10 +9,13 @@ Ext.define("wms.app.model.AbstractModel", {
name : 'updateOn',
persist : false
}, {
name : 'createdByUserName',
name : 'createdBy',
persist : false
}, {
name : 'updatedByUserName',
name : 'updatedBy',
persist : false
}, {
name : 'status',
persist : false
}]
});
\ No newline at end of file
/**
* @author allenjin
*/
Ext.define("wms.app.model.projects.ProjectModel", {
extend : "wms.app.model.AbstractModel",
Ext.define("drp.app.model.projects.ProjectModel", {
extend : "drp.app.model.AbstractModel",
fields : [{
name : "name"// 项目名称
}, {
......@@ -28,7 +28,7 @@ Ext.define("wms.app.model.projects.ProjectModel", {
}],
proxy : {
type : 'rest',
url : ctx+'/project',
url : 'project',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.projects.costs.AbstractCostModel", {
extend : "wms.app.model.AbstractModel",
Ext.define("drp.app.model.projects.costs.AbstractCostModel", {
extend : "drp.app.model.AbstractModel",
fields : [{
name : "ware"
}, {
......
Ext.define("wms.app.model.projects.costs.StockInCostModel", {
extend : "wms.app.model.projects.costs.AbstractCostModel",
Ext.define("drp.app.model.projects.costs.StockInCostModel", {
extend : "drp.app.model.projects.costs.AbstractCostModel",
fields : [{
name : "invoice"
}],
proxy : {
type : 'rest',
url : ctx+'/stockInCost',
url : 'stockInCost',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.projects.costs.StockOutCostModel", {
extend : "wms.app.model.projects.costs.AbstractCostModel",
Ext.define("drp.app.model.projects.costs.StockOutCostModel", {
extend : "drp.app.model.projects.costs.AbstractCostModel",
fields : [{
name : "invoice"
}],
proxy : {
type : 'rest',
url : ctx+'/stockOutCost',
url : 'stockOutCost',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.projects.inventories.CurrentInventoryModel", {
Ext.define("drp.app.model.projects.inventories.CurrentInventoryModel", {
extend : "Ext.data.Model",
fields : [{
name : "wareName"
......
Ext.define("wms.app.model.projects.inventories.MonthEndInventoryModel", {
Ext.define("drp.app.model.projects.inventories.MonthEndInventoryModel", {
extend : "Ext.data.Model",
fields : [{
name : "wareName"
......
Ext.define("wms.app.model.projects.invoices.AbstractInvoiceModel", {
extend : "wms.app.model.AbstractModel",
Ext.define("drp.app.model.projects.invoices.AbstractInvoiceModel", {
extend : "drp.app.model.AbstractModel",
fields : [{
name : "code"
}, {
......
Ext.define("wms.app.model.projects.invoices.StockInInvoiceModel", {
extend : "wms.app.model.projects.invoices.AbstractInvoiceModel",
Ext.define("drp.app.model.projects.invoices.StockInInvoiceModel", {
extend : "drp.app.model.projects.invoices.AbstractInvoiceModel",
proxy : {
type : 'rest',
url : ctx+'/stockInInvoice',
url : 'stockInInvoice',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.projects.invoices.StockOutInvoiceModel", {
extend : "wms.app.model.projects.invoices.AbstractInvoiceModel",
Ext.define("drp.app.model.projects.invoices.StockOutInvoiceModel", {
extend : "drp.app.model.projects.invoices.AbstractInvoiceModel",
fields : [{
name : "receiveMan"
} ],
proxy : {
type : 'rest',
url : ctx+'/stockOutInvoice',
url : 'stockOutInvoice',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.resources.VendorModel", {
extend : "wms.app.model.AbstractModel",
Ext.define("drp.app.model.resources.VendorModel", {
extend : "drp.app.model.AbstractModel",
fields : [ {
name : "name",// 名称
type : "string"
......@@ -37,7 +37,7 @@ Ext.define("wms.app.model.resources.VendorModel", {
} ],
proxy : {
type : 'rest',
url : ctx+'/vendor',
url : 'vendor',
reader : {
type : "json",
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", {
extend : "wms.app.model.resources.WareModel",
Ext.define("drp.app.model.resources.WareCostModel", {
extend : "drp.app.model.resources.WareModel",
proxy : {
type : 'rest',
url : ctx+'/ware',
url : 'ware',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.resources.WareModel", {
extend : "wms.app.model.AbstractModel",
Ext.define("drp.app.model.resources.WareModel", {
extend : "drp.app.model.AbstractModel",
fields : [{
name : "name"// 名称
name : "name"// 品名
}, {
name : "brand"// 品牌
}, {
name : "model"//规格
}, {
name : "unit"// 单位
}, {
name : 'produceOn'// 生产日期
}, {
name : 'storage'// 保质期
}, {
name : "vendor.id",
persist : false
......@@ -31,7 +35,7 @@ Ext.define("wms.app.model.resources.WareModel", {
}],
proxy : {
type : 'rest',
url : ctx+'/ware',
url : 'ware',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.users.AbstractUserModel", {
extend : "wms.app.model.AbstractModel",
Ext.define("drp.app.model.users.AbstractUserModel", {
extend : "drp.app.model.AbstractModel",
fields : [{
name : "name"
}, {
......
Ext.define("wms.app.model.users.LeaderModel", {
extend : "wms.app.model.users.AbstractUserModel",
Ext.define("drp.app.model.users.ManagerModel", {
extend : "drp.app.model.users.AbstractUserModel",
proxy : {
type : 'rest',
url : ctx+'/leader',
url : 'manager',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.users.MaterialKeeperModel", {
extend : "wms.app.model.users.AbstractUserModel",
Ext.define("drp.app.model.users.RegulatorModel", {
extend : "drp.app.model.users.AbstractUserModel",
proxy : {
type : 'rest',
url : ctx+'/materialKeeper',
url : 'regulator',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.model.users.WareKeeperModel", {
extend : "wms.app.model.users.AbstractUserModel",
Ext.define("drp.app.model.users.WareKeeperModel", {
extend : "drp.app.model.users.AbstractUserModel",
proxy : {
type : 'rest',
url : ctx+'/wareKeeper',
url : 'wareKeeper',
reader : {
type : "json",
root : "data",
......
Ext.define("wms.app.store.AbstractStore", {
Ext.define("drp.app.store.AbstractStore", {
extend : 'Ext.data.Store',
model : 'wms.app.model.AbstractModel',
model : 'drp.app.model.AbstractModel',
pageSize : 50,
autoLoad : false,
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
*/
Ext.define("wms.app.store.projects.ProjectStore", {
Ext.define("drp.app.store.projects.ProjectStore", {
extend : 'Ext.data.TreeStore',
model : 'wms.app.model.projects.ProjectModel',
model : 'drp.app.model.projects.ProjectModel',
defaultRootId : '',
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',
model : 'wms.app.model.projects.inventories.CurrentInventoryModel',
model : 'drp.app.model.projects.inventories.CurrentInventoryModel',
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',
model : 'wms.app.model.projects.inventories.MonthEndInventoryModel',
model : 'drp.app.model.projects.inventories.MonthEndInventoryModel',
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
*/
Ext.define('wms.app.view.projects.ProjectView', {
Ext.define('drp.app.view.projects.ProjectView', {
extend : 'Ext.panel.Panel',
alias : 'widget.projectview',
margins : '0 0 0 0',
......@@ -88,7 +88,7 @@ Ext.define('wms.app.view.projects.ProjectView', {
// 防止在刷新节点后默认回到最top
preserveScrollOnRefresh : false
},
store : "wms.app.store.projects.ProjectStore",
store : "drp.app.store.projects.ProjectStore",
columns : [{
xtype : 'treecolumn',
width : 200,
......
/**
* @author allenjin
*/
Ext.define("wms.app.view.projects.ProjectViewForm", {
Ext.define("drp.app.view.projects.ProjectViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.projectviewform',
author : '100%',
......@@ -38,7 +38,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", {
valueField :"id",
fieldLabel : '项目经理<font color="red">*</font>',
store : Ext.create("Ext.data.Store",{
model : 'wms.app.model.users.ProjectManagerModel',
model : 'drp.app.model.users.ProjectManagerModel',
autoLoad : false
}),
listeners : {
......@@ -63,7 +63,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", {
valueField :"id",
fieldLabel : '库管员<font color="red">*</font>',
store : Ext.create("Ext.data.Store",{
model : 'wms.app.model.users.WareKeeperModel',
model : 'drp.app.model.users.WareKeeperModel',
autoLoad : false
}),
listeners : {
......@@ -88,7 +88,7 @@ Ext.define("wms.app.view.projects.ProjectViewForm", {
valueField :"id",
fieldLabel : '材料员<font color="red">*</font>',
store : Ext.create("Ext.data.Store",{
model : 'wms.app.model.users.MaterialKeeperModel',
model : 'drp.app.model.users.MaterialKeeperModel',
autoLoad : false
}),
listeners : {
......
/**
* @author reed mi
*/
Ext.define("wms.app.view.projects.SystemViewForm", {
Ext.define("drp.app.view.projects.SystemViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.systemviewform',
author : '100%',
......
Ext.define('wms.app.view.projects.resources.StockInCostShowView', {
Ext.define('drp.app.view.projects.resources.StockInCostShowView', {
extend : 'Ext.window.Window',
alias : 'widget.stockincostshowview',
height: 345,
......@@ -64,7 +64,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostShowView', {
height : 260,
autoScroll : true,
columnLines : true,
store : "wms.app.store.projects.costs.StockInCostStore",
store : "drp.app.store.projects.costs.StockInCostStore",
columns : [
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',
alias : 'widget.stockincostview',
height: 510,
......@@ -51,7 +51,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', {
displayField :"name",
valueField :"id",
fieldLabel : '项目<font color="red">*</font>',
store : 'wms.app.store.projects.ProjectDataStore',
store : 'drp.app.store.projects.ProjectDataStore',
listeners : {
afterrender : function(combo){
//显示人员所属项目
......@@ -71,7 +71,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', {
stockincostview.down("#wareKeeperName_df").setValue(project.wareKeeper.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");
system.getStore().getProxy().url = _url;
system.setValue("");
......@@ -154,7 +154,7 @@ Ext.define('wms.app.view.projects.resources.StockInCostView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : 'wms.app.store.projects.costs.StockInCostStore',
store : 'drp.app.store.projects.costs.StockInCostStore',
columns : [
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',
alias : 'widget.stockoutcostshowview',
height: 345,
......@@ -64,7 +64,7 @@ Ext.define('wms.app.view.projects.resources.StockOutCostShowView', {
height : 260,
autoScroll : true,
columnLines : true,
store : "wms.app.store.projects.costs.StockOutCostStore",
store : "drp.app.store.projects.costs.StockOutCostStore",
columns : [
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',
alias : 'widget.stockoutcostview',
height: 510,
......@@ -51,7 +51,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', {
displayField :"name",
valueField :"id",
fieldLabel : '项目<font color="red">*</font>',
store : 'wms.app.store.projects.ProjectDataStore',
store : 'drp.app.store.projects.ProjectDataStore',
listeners : {
afterrender : function(combo){
//显示人员所属项目
......@@ -73,7 +73,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', {
stockoutcostview.down("#wareKeeperName_df").setValue(project.wareKeeper.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");
system.getStore().getProxy().url = _url;
system.setValue("");
......@@ -170,7 +170,7 @@ Ext.define('wms.app.view.projects.costs.StockOutCostView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : 'wms.app.store.projects.costs.StockOutCostStore',
store : 'drp.app.store.projects.costs.StockOutCostStore',
columns : [
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',
alias : 'widget.currentinventoryview',
autoScroll : true,
......@@ -24,7 +24,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', {
root : {
data : []
},
model : 'wms.app.model.projects.ProjectModel'
model : 'drp.app.model.projects.ProjectModel'
}),
columns : [{
xtype : 'treecolumn',
......@@ -37,7 +37,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', {
region : 'center',
title : '库存量',
columnLines : true,
store : 'wms.app.store.projects.inventories.CurrentInventoryStore',
store : 'drp.app.store.projects.inventories.CurrentInventoryStore',
columns : [{
xtype : 'gridcolumn',
dataIndex : 'wareName',
......@@ -77,7 +77,7 @@ Ext.define('wms.app.view.projects.inventories.CurrentInventoryView', {
dockedItems : [{
xtype : 'pagingtoolbar',
dock : 'bottom',
store : 'wms.app.store.projects.inventories.CurrentInventoryStore',
store : 'drp.app.store.projects.inventories.CurrentInventoryStore',
displayInfo : true
}]
}]
......
Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
Ext.define('drp.app.view.projects.inventories.MonthendInventoryView', {
extend : 'Ext.panel.Panel',
alias : 'widget.monthendinventoryview',
autoScroll : true,
......@@ -25,7 +25,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
root : {
data : []
},
model : 'wms.app.model.projects.ProjectModel'
model : 'drp.app.model.projects.ProjectModel'
}),
columns : [{
xtype : 'treecolumn',
......@@ -38,7 +38,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
region : 'center',
title : '库存量',
columnLines : true,
store : 'wms.app.store.projects.inventories.MonthEndInventoryStore',
store : 'drp.app.store.projects.inventories.MonthEndInventoryStore',
columns : [{
xtype : 'gridcolumn',
dataIndex : 'wareName',
......@@ -83,7 +83,7 @@ Ext.define('wms.app.view.projects.inventories.MonthendInventoryView', {
dockedItems : [{
xtype : 'pagingtoolbar',
dock : 'bottom',
store : 'wms.app.store.projects.inventories.MonthEndInventoryStore',
store : 'drp.app.store.projects.inventories.MonthEndInventoryStore',
displayInfo : true
}, {
xtype: 'toolbar',
......
/**
* author Reedmi
*/
Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
Ext.define('drp.app.view.projects.invoices.StockInInvoiceView', {
extend : 'Ext.panel.Panel',
alias : 'widget.stockininvoiceview',
autoScroll : true,
......@@ -148,7 +148,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : 'wms.app.store.projects.invoices.StockInInvoiceStore',
store : 'drp.app.store.projects.invoices.StockInInvoiceStore',
columns : [{
xtype : 'gridcolumn',
flex : 1,
......@@ -205,7 +205,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
dockedItems : [{
xtype : 'pagingtoolbar',
dock : 'bottom',
store : 'wms.app.store.projects.invoices.StockInInvoiceStore',
store : 'drp.app.store.projects.invoices.StockInInvoiceStore',
displayInfo : true
}, {
xtype : 'toolbar',
......@@ -224,7 +224,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
itemId : 'deleteInInvoice_btn',
disabled : true,
text : '删除'
}, {
}/*, {
itemId : 'submitInInvoice_btn',
disabled : true,
text : '提交审核',
......@@ -232,7 +232,7 @@ Ext.define('wms.app.view.projects.invoices.StockInInvoiceView', {
menu : {
items : menuItems
}
}]
}*/]
}]
}]
......
/**
* author Reedmi
*/
Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
Ext.define('drp.app.view.projects.invoices.StockOutInvoiceView', {
extend : 'Ext.panel.Panel',
alias : 'widget.stockoutinvoiceview',
autoScroll : true,
......@@ -154,7 +154,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : 'wms.app.store.projects.invoices.StockOutInvoiceStore',
store : 'drp.app.store.projects.invoices.StockOutInvoiceStore',
columns : [{
xtype : 'gridcolumn',
flex : 1,
......@@ -216,7 +216,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
dockedItems : [{
xtype : 'pagingtoolbar',
dock : 'bottom',
store : 'wms.app.store.projects.invoices.StockOutInvoiceStore',
store : 'drp.app.store.projects.invoices.StockOutInvoiceStore',
displayInfo : true
}, {
xtype : 'toolbar',
......@@ -235,7 +235,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
itemId : 'deleteOutInvoice_btn',
disabled : true,
text : '删除'
}, {
}/*, {
itemId : 'submitOutInvoice_btn',
disabled : true,
text : '提交审核',
......@@ -243,7 +243,7 @@ Ext.define('wms.app.view.projects.invoices.StockOutInvoiceView', {
menu : {
items : menuItems
}
}]
}*/]
}]
}]
......
Ext.define('wms.app.view.resources.VendorView', {
Ext.define('drp.app.view.resources.VendorView', {
extend : 'Ext.panel.Panel',
alias : 'widget.vendorview',
margins : '0 0 0 0',
......@@ -77,7 +77,7 @@ Ext.define('wms.app.view.resources.VendorView', {
xtype : 'gridpanel',
region : 'center',
selModel : selModel,
store : "wms.app.store.resources.VendorStore",
store : "drp.app.store.resources.VendorStore",
columnLines : true,
stripeRows : true,
autoScroll : true,
......@@ -176,7 +176,7 @@ Ext.define('wms.app.view.resources.VendorView', {
xtype : 'pagingtoolbar',
dock : 'bottom',
displayInfo : true,
store : "wms.app.store.resources.VendorStore",
store : "drp.app.store.resources.VendorStore",
emptyMsg : "没有数据"
}]
}]
......
Ext.define("wms.app.view.resources.VendorViewForm", {
Ext.define("drp.app.view.resources.VendorViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.vendorviewform',
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',
alias : 'widget.wareview',
margins : '0 0 0 0',
......@@ -89,17 +89,12 @@ Ext.define('wms.app.view.resources.WareView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : "wms.app.store.resources.WareStore",
store : "drp.app.store.resources.WareStore",
columns : [{
xtype : 'gridcolumn',
width : 160,
dataIndex : 'name',
text : '名称'
}, {
xtype : 'gridcolumn',
width : 90,
dataIndex : 'brand',
text : '品牌'
text : '品名'
}, {
xtype : 'gridcolumn',
width : 160,
......@@ -110,6 +105,21 @@ Ext.define('wms.app.view.resources.WareView', {
width : 60,
dataIndex : 'unit',
text : '单位'
}, {
xtype : 'gridcolumn',
width : 120,
dataIndex : 'produceOn',
text : '生产日期'
}, {
xtype : 'gridcolumn',
width : 60,
dataIndex : 'storage',
text : '保质期'
}, {
xtype : 'gridcolumn',
width : 90,
dataIndex : 'brand',
text : '品牌'
}, {
xtype : 'gridcolumn',
width : 100,
......@@ -189,7 +199,7 @@ Ext.define('wms.app.view.resources.WareView', {
xtype : 'pagingtoolbar',
dock : 'bottom',
displayInfo : true,
store : "wms.app.store.resources.WareStore",
store : "drp.app.store.resources.WareStore",
emptyMsg : "没有数据"
}]
}]
......
/**
* author :Reed Mi
*/
Ext.define("wms.app.view.resources.WareViewForm", {
Ext.define("drp.app.view.resources.WareViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.wareviewform',
author : '100%',
......@@ -18,13 +18,7 @@ Ext.define("wms.app.view.resources.WareViewForm", {
margin : '5 0 0 5',
name : 'name',
allowBlank : false,
fieldLabel : '名称<font color="red">*</font>'
}, {
xtype : 'textfield',
anchor : '60%',
margin : '5 0 0 5',
name : 'brand',
fieldLabel : '品牌'
fieldLabel : '品名<font color="red">*</font>'
}, {
xtype : 'textfield',
anchor : '60%',
......@@ -33,16 +27,18 @@ Ext.define("wms.app.view.resources.WareViewForm", {
fieldLabel : '规格'
}, {
xtype : 'combobox',
fieldLabel : '单位<font color="red">*</font>',
fieldLabel : '单位',
anchor : '60%',
margin : '5 0 0 5',
name : 'unit',
allowBlank : false,
displayField : 'name',
valueField : 'value',
store : Ext.create('Ext.data.Store', {
fields : ['value', 'name'],
data : [{
"value" : "",
"name" : "吨/T"
}, {
"value" : "",
"name" : ""
}, {
......@@ -65,6 +61,44 @@ Ext.define("wms.app.view.resources.WareViewForm", {
"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',
anchor : '75%',
......@@ -73,7 +107,7 @@ Ext.define("wms.app.view.resources.WareViewForm", {
valueField : 'id',
displayField : 'name',
editable : false,
store : 'wms.app.store.resources.VendorStore',
store : 'drp.app.store.resources.VendorStore',
fieldLabel : '供应商'
}, {
xtype : 'textarea',
......
Ext.define('wms.app.view.resources.WareWindow', {
Ext.define('drp.app.view.resources.WareWindow', {
extend : 'Ext.window.Window',
alias : 'widget.warewindow',
height: 520,
......
Ext.define('wms.app.view.users.ProjectManagerView', {
Ext.define('drp.app.view.users.ManagerView', {
extend : 'Ext.panel.Panel',
alias : 'widget.projectmanagerview',
alias : 'widget.managerview',
margins : '0 0 0 0',
border : 0,
title : '<center height=40>项目经理</center>',
title : '<center height=40>负责人</center>',
autoScroll : true,
closable : true,
layout : {
......@@ -15,7 +15,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
var selModel = Ext.create('Ext.selection.CheckboxModel', {
listeners : {
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', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : "wms.app.store.users.ProjectManagerStore",
store : "drp.app.store.users.ManagerStore",
columns : [{
xtype : 'gridcolumn',
flex : 1,
......@@ -193,13 +193,13 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
items : [{
xtype : 'button',
icon : 'resources/images/icons/add.png',
action : 'addProjectManager',
action : 'addManager',
text : '新增'
}, '-', {
xtype : 'button',
icon : 'resources/images/icons/delete.png',
action : 'deleteProjectManager',
itemId : 'deleteProjectManager_itemId',
action : 'deleteManager',
itemId : 'deleteManager_itemId',
disabled : true,
text : '注销'
}]
......@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.ProjectManagerView', {
xtype : 'pagingtoolbar',
dock : 'bottom',
displayInfo : true,
store : "wms.app.store.users.ProjectManagerStore",
store : "drp.app.store.users.ManagerStore",
emptyMsg : "没有数据"
}]
}]
......
Ext.define("wms.app.view.users.ProjectManagerViewForm", {
Ext.define("drp.app.view.users.ManagerViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.projectmanagerviewform',
alias : 'widget.managerviewform',
author : '100%',
autoScroll : true,
items : [{
......@@ -85,13 +85,13 @@ Ext.define("wms.app.view.users.ProjectManagerViewForm", {
items : [{
xtype : 'button',
margin : '5 0 0 5',
action : 'submitProjectManagerForm',
action : 'submitManagerForm',
width: 80,
text : '确认'
}, {
xtype : 'button',
margin : '5 0 0 5',
action : 'closeProjectManagerForm',
action : 'closeManagerForm',
width: 80,
text : '取消'
}]
......
Ext.define('wms.app.view.users.MaterialKeeperView', {
Ext.define('drp.app.view.users.RegulatorView', {
extend : 'Ext.panel.Panel',
alias : 'widget.materialkeeperview',
alias : 'widget.regulatorview',
margins : '0 0 0 0',
border : 0,
title : '<center height=40>材料员</center>',
......@@ -15,7 +15,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
var selModel = Ext.create('Ext.selection.CheckboxModel', {
listeners : {
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', {
}, {
xtype : 'button',
margin : '5 0 0 20',
action : 'searchMaterialKeeper',
action : 'searchRegulator',
icon : 'resources/images/icons/search.png',
text : '查询'
}, {
......@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : "wms.app.store.users.MaterialKeeperStore",
store : "drp.app.store.users.RegulatorStore",
columns : [{
xtype : 'gridcolumn',
flex : 1,
......@@ -193,13 +193,13 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
items : [{
xtype : 'button',
icon : 'resources/images/icons/add.png',
action : 'addMaterialKeeper',
action : 'addRegulator',
text : '新增'
}, '-', {
xtype : 'button',
icon : 'resources/images/icons/delete.png',
action : 'deleteMaterialKeeper',
itemId : 'deleteMaterialKeeper_itemId',
action : 'deleteRegulator',
itemId : 'deleteRegulator_itemId',
disabled : true,
text : '注销'
}]
......@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.MaterialKeeperView', {
xtype : 'pagingtoolbar',
dock : 'bottom',
displayInfo : true,
store : "wms.app.store.users.MaterialKeeperStore",
store : "drp.app.store.users.RegulatorStore",
emptyMsg : "没有数据"
}]
}]
......
Ext.define("wms.app.view.users.MaterialKeeperViewForm", {
Ext.define("drp.app.view.users.MaterialKeeperViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.materialkeeperviewform',
author : '100%',
......
Ext.define('wms.app.view.users.WareKeeperView', {
Ext.define('drp.app.view.users.WareKeeperView', {
extend : 'Ext.panel.Panel',
alias : 'widget.warekeeperview',
margins : '0 0 0 0',
......@@ -122,7 +122,7 @@ Ext.define('wms.app.view.users.WareKeeperView', {
autoScroll : true,
columnLines : true,
selModel : selModel,
store : "wms.app.store.users.WareKeeperStore",
store : "drp.app.store.users.WareKeeperStore",
columns : [{
xtype : 'gridcolumn',
flex : 1,
......@@ -207,7 +207,7 @@ Ext.define('wms.app.view.users.WareKeeperView', {
xtype : 'pagingtoolbar',
dock : 'bottom',
displayInfo : true,
store : "wms.app.store.users.WareKeeperStore",
store : "drp.app.store.users.WareKeeperStore",
emptyMsg : "没有数据"
}]
}]
......
Ext.define("wms.app.view.users.WareKeeperViewForm", {
Ext.define("drp.app.view.users.WareKeeperViewForm", {
extend : 'Ext.panel.Panel',
alias : 'widget.warekeeperviewform',
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),
addFunItem : function(funInfo, self, custom) {
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 height = document.documentElement.clientHeight;
Ext.define("wms.base.view.MainView", {
Ext.define("drp.base.view.MainView", {
extend : 'Ext.panel.Panel',
border : 0,
layout : 'border',
......
Ext.define("wms.base.view.NorthView", {
Ext.define("drp.base.view.NorthView", {
extend : "Ext.panel.Panel",
alias : 'widget.northview',
height : 60,
......@@ -17,7 +17,7 @@ Ext.define("wms.base.view.NorthView", {
region : 'west',
height : 75,
width : 1360,
src : ctx+"/resources/images/banner.png"
src : "resources/images/banner.png"
},{
xtype : 'fieldcontainer',
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() {
Ext.application({
requires: ['Ext.container.Viewport'],
name: 'wms',
appFolder: 'wms',
name: 'drp',
appFolder: 'drp',
launch: function() {
Ext.create("Ext.container.Viewport", {
layout : "fit",
......@@ -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) {
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',
alias : 'widget.alertwin',
closeAction : 'hide',
......
Ext.define('wms.widget.MonthField', {
Ext.define('drp.widget.MonthField', {
extend:'Ext.form.field.Date',
alias: 'widget.monthfield',
requires: ['Ext.picker.Month'],
......
Ext.define('wms.widget.TreeComboBox', {
Ext.define('drp.widget.TreeComboBox', {
extend : 'Ext.form.field.ComboBox',
alias : 'widget.treecombobox',
id : 'treecomboboxid',
......
Ext.define('wms.widget.UploadFileForm', {
Ext.define('drp.widget.UploadFileForm', {
extend : 'Ext.panel.Panel',
alias : 'widget.uploadfileformview',
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