diff --git a/pom.xml b/pom.xml index c1696bc8..467e10b3 100644 --- a/pom.xml +++ b/pom.xml @@ -94,6 +94,12 @@ provided + + com.belerweb + pinyin4j + 2.5.1 + + junit junit diff --git a/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java b/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java index b30fe213..a1f59091 100644 --- a/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java +++ b/src/main/java/com/dreamchaser/depository_manage/config/WebMvcConfig.java @@ -16,21 +16,7 @@ public class WebMvcConfig implements WebMvcConfigurer { .excludePathPatterns("/static/**"); } - // private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { -// "classpath:/META-INF/resources/", "classpath:/resources/", -// "classpath:/static/", "classpath:/public/" }; -// @Override -// public void addResourceHandlers(ResourceHandlerRegistry registry) { -// if (!registry.hasMappingForPattern("/webjars/**")) { -// registry.addResourceHandler("/webjars/**").addResourceLocations( -// "classpath:/META-INF/resources/webjars/"); -// } -// if (!registry.hasMappingForPattern("/**")) { -// registry.addResourceHandler("/**").addResourceLocations( -// CLASSPATH_RESOURCE_LOCATIONS); -// } -// -// } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java b/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java index bb75ef3a..8746c6d5 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java @@ -6,6 +6,7 @@ import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.pojo.*; import com.dreamchaser.depository_manage.service.CompanyService; +import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.service.impl.CompanyServiceImpl; import com.dreamchaser.depository_manage.utils.CrudUtil; @@ -31,6 +32,9 @@ public class CompanyController { @Autowired RoleService roleService; + @Autowired + DepositoryService depositoryService; + /** * 查询组织架构 * @param @@ -39,6 +43,7 @@ public class CompanyController { @PostMapping("/allCompanyByParent") public RestResponse findCompanyByNoParent(@RequestParam Mapmap){ String url = "http://172.20.2.87:39168/org/govlist"; +// String url = "http://127.0.0.1:39168/org/govlist"; Object page = map.get("page"); Object pagesize = map.get("pagesize"); String superior = (String) map.get("superior"); @@ -60,6 +65,9 @@ public class CompanyController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List administrationPList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { @@ -78,6 +86,7 @@ public class CompanyController { @PostMapping("/companyByCondition") public RestResponse findcompanyByCondition(@RequestParam Map map){ String url = "http://172.20.2.87:39168/org/govlist"; +// String url = "http://127.0.0.1:39168/org/govlist"; if(map.containsKey("state")){ Object state = map.get("state"); map.put("state",ObjectFormatUtil.toInteger(state)); @@ -97,6 +106,9 @@ public class CompanyController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List administrationPList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { @@ -110,6 +122,7 @@ public class CompanyController { @PostMapping("/allPostByOrganization") public RestResponse allPostByParent(@RequestParam Map map) { String url = "http://172.20.2.87:39168/org/positionlist"; +// String url = "http://127.0.0.1:39168/org/positionlist"; Object page = map.get("page"); Object pagesize = map.get("pagesize"); map.put("page",ObjectFormatUtil.toInteger(page)); @@ -125,15 +138,32 @@ public class CompanyController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List postList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { Post object = JSONObject.toJavaObject((JSONObject)list.get(i), Post.class); PostP postP = new PostP(object); - RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(postP.getId()); + List depositoryAndRole = roleService.findDepositoryAndRole(postP.getId()); if(depositoryAndRole != null) { - postP.setRolename(depositoryAndRole.getRoleName()); - postP.setDepositoryName(depositoryAndRole.getDepositoryName()); + StringBuilder RoleName = new StringBuilder(); + StringBuilder Depository = new StringBuilder(); + for (int j = 0; j < depositoryAndRole.size(); j++) { + String roleName = depositoryAndRole.get(i).getRoleName(); + String depositoryName = depositoryAndRole.get(i).getDepositoryName(); + if(roleName == null){ + roleName = ""; + } + if(depositoryName == null){ + depositoryName = ""; + } + RoleName.append(roleName + " "); + Depository.append(depositoryName + " "); + } + postP.setRolename(RoleName.toString()); + postP.setDepositoryName(Depository.toString()); }else{ postP.setRolename(""); postP.setDepositoryName(""); @@ -143,15 +173,138 @@ public class CompanyController { return new RestResponse(postList,total,200); } - @PostMapping("post_role") + @PostMapping("/post_role") public RestResponse addUser(@RequestBody Map map) { - map.put("classes",2); - RoleAndDepository userid = roleService.findDepositoryAndRole(ObjectFormatUtil.toInteger(map.get("userid"))); - if(userid!=null){ - return CrudUtil.postHandle(roleService.updateUserOrPostRoleAndDepository(map), 1); - }else { - return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); + Map userParam = new HashMap<>(); + userParam.put("position",ObjectFormatUtil.toInteger(map.get("userid"))); + List userByPortList = PageController.FindUserByMap(userParam); + Integer success = 0; + if(map.containsKey("depositoryId")) { + for (int i = 0; i < userByPortList.size(); i++) { + Map param = new HashMap<>(); + param.put("userId", userByPortList.get(i).getId()); + param.put("depositoryId", map.get("depositoryId")); + param.put("classes", 2); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + if (roleAndDepositoryByCondition.size() > 0) { + continue; + } else { + Map insert = new HashMap<>(); + insert.put("classes", 2); + insert.put("authority", 0); + insert.put("depositoryId", map.get("depositoryId")); + insert.put("userid", userByPortList.get(i).getId()); + success += roleService.addUserOrPostRoleAndDepository(insert); + } + } + }else{ + List depositoryAll = depositoryService.findDepositoryAll(); + for (int i = 0; i < depositoryAll.size(); i++) { + for (int j = 0; j < userByPortList.size(); j++) { + Map param = new HashMap<>(); + param.put("userId", userByPortList.get(j).getId()); + param.put("depositoryId", depositoryAll.get(i).getId()); + param.put("classes", 2); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + if (roleAndDepositoryByCondition.size() > 0) { + continue; + } else { + Map insert = new HashMap<>(); + insert.put("classes", 2); + insert.put("authority", 0); + insert.put("depositoryId",depositoryAll.get(i).getId()); + insert.put("userid", userByPortList.get(j).getId()); + success += roleService.addUserOrPostRoleAndDepository(insert); + } + } + } + } + return CrudUtil.postHandle(success,success); + } + + @PostMapping("/postRole_edit") + public RestResponse editPostRole(@RequestBody Map map) { + Map userParam = new HashMap<>(); + Integer oldDepository = ObjectFormatUtil.toInteger(map.get("oldDepository")); + Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); + userParam.put("position",ObjectFormatUtil.toInteger(map.get("userid"))); + Map param = new HashMap<>(); + param.put("depositoryId",oldDepository); + param.put("classes",2); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + Integer success = 0; + for (int i = 0; i < roleAndDepositoryByCondition.size(); i++) { + RoleAndDepository roleAndDepository = roleAndDepositoryByCondition.get(i); + Map update = new HashMap<>(); + update.put("roleId",roleAndDepository.getId()); + update.put("depositoryId",depositoryId); + update.put("classes",2); + success += roleService.UpdateRoleAndDepositoryById(update); + } + return CrudUtil.postHandle(success,roleAndDepositoryByCondition.size()); + } + /** + * 根据主键删除权限类型 + * @param map + * @return + */ + @PostMapping("/postRole_del") + public RestResponse deleteRoleAndDepository(@RequestBody Map map){ + if(map.containsKey("depositoryId")) { + Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); + Map param = new HashMap<>(); + param.put("depositoryId", depositoryId); + param.put("classes", 2); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + Integer success = 0; + for (int i = 0; i < roleAndDepositoryByCondition.size(); i++) { + success += roleService.deleteRoleAndDepositoryById(roleAndDepositoryByCondition.get(i).getId()); + } + return CrudUtil.postHandle(success, roleAndDepositoryByCondition.size()); + }else if(map.containsKey("depositoryIds")){ + Integer num = 0; + List depositoryIds =(List) map.get("depositoryIds"); + Integer success = 0; + Integer total = 0; + for (int i = 0; i < depositoryIds.size(); i++) { + Integer depositoryId = depositoryIds.get(i); + Map param = new HashMap<>(); + param.put("depositoryId", depositoryId); + param.put("classes", 2); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + total += roleAndDepositoryByCondition.size(); + for (int j = 0; j < roleAndDepositoryByCondition.size(); j++) { + success += roleService.deleteRoleAndDepositoryById(roleAndDepositoryByCondition.get(j).getId()); + } + } + return CrudUtil.postHandle(success, total); + } + else{ + throw new MyException("所需请求参数缺失!"); + } + } + + @GetMapping("/findPostRole") + public RestResponse findPostRole(@RequestParam("postId") Integer postId){ + Map userParam = new HashMap<>(); + userParam.put("position",postId); + List userByPortList = PageController.FindUserByMap(userParam); + Post postById = PageController.findPostById(postId); + List roleAndDepositoryByCondition = new ArrayList<>(); + if(userByPortList.size() != 0){ + Map param = new HashMap<>(); + param.put("classes",2); + param.put("userId",userByPortList.get(0).getId()); + roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + } + List postPS = new ArrayList<>(); + for (int i = 0; i < roleAndDepositoryByCondition.size(); i++) { + PostP pp = new PostP(postById); + pp.setDepositoryName(roleAndDepositoryByCondition.get(i).getDepositoryName()); + pp.setDepositoryId(roleAndDepositoryByCondition.get(i).getDepositoryId()); + postPS.add(pp); } + return new RestResponse(postPS, postPS.size(), 200); } } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java index eac497fa..3a28a601 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java @@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.exception.MyException; -import com.dreamchaser.depository_manage.pojo.AdministrationP; -import com.dreamchaser.depository_manage.pojo.DepositoryRecordP; -import com.dreamchaser.depository_manage.pojo.MaterialP; -import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.pojo.*; import com.dreamchaser.depository_manage.service.*; import com.dreamchaser.depository_manage.service.impl.DepositoryRecordServiceImpl; import com.dreamchaser.depository_manage.service.impl.DepositoryServiceImpl; @@ -164,6 +161,7 @@ public class DepositoryController { int now = instance.get(Calendar.DAY_OF_WEEK) - 1; List days = new ArrayList<>(); days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); + Boolean flag = false; while (now - 1 > 0) { now--; instance.add(Calendar.DATE, -1); @@ -177,19 +175,39 @@ public class DepositoryController { // 获取今天容量 Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); result.add(toDayInventoryByDName); + // 判断当天是否有出入口记录 + Calendar IsInOut = Calendar.getInstance(); + Long start = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(IsInOut.getTime())); + IsInOut.add(Calendar.DATE,1); + Long end = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(IsInOut.getTime())); + Double inCount = depositoryRecordService.findApplicationInRecordByDate(end, start, null); + Double OutCount = depositoryRecordService.findApplicationOutRecordByDate(end, start, null); + if(inCount >0 || OutCount > 0){ + flag = true; + } for (i = 0;i 0; i--) { @@ -363,6 +381,11 @@ public class DepositoryController { @GetMapping("/warehouseRecord") public RestResponse findDepositoryRecordByCondition(@RequestParam Map map) { List list = depositoryService.findDepositoryRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + Depository depository = list.get(i); + Administration company = PageController.getCompany(depository.getCid()); + list.get(i).setCname(company.getName()); + } return new RestResponse(list, depositoryService.findCountByCondition(map), 200); } @@ -402,6 +425,7 @@ public class DepositoryController { public static Map findAdministration(){ Map map = new HashMap<>(); String url = "http://172.20.2.87:39168/org/govlist"; +// String url = "http://127.0.0.1:39168/org/govlist"; String superior = "313"; map.put("superior",superior); map.put("state",1); @@ -416,6 +440,9 @@ public class DepositoryController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); Map result = new HashMap(); List administrationPList = new ArrayList<>(); @@ -1029,8 +1056,13 @@ public class DepositoryController { // 构造树选择框 @GetMapping("/treeMenus") - public RestResponse InitTreeMenus(){ - List list = depositoryService.InitTreeMenus(); + public RestResponse InitTreeMenus(@RequestParam(value = "adminorg",required = false) Integer adminorg){ + List list = new ArrayList<>(); + if(Integer.compare(0,adminorg) == 0){ + list = depositoryService.InitTreeMenus(); + }else { + list = depositoryService.InitTreeMenus(adminorg.toString()); + } return new RestResponse(list); } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index 6c027f3d..abef435b 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -55,16 +55,20 @@ public class DepositoryRecordController { UserByPort userToken= (UserByPort) request.getAttribute("userToken"); map.put("applicantId",userToken.getId()); List applicationInRecordPlist = depositoryRecordService.findApplicationInRecordPByCondition(map); + Integer InCount = depositoryRecordService.findApplicationInRecordPCountByCondition(map); for (int i = 0; i < applicationInRecordPlist.size(); i++) { applicationInRecordPlist.get(i).setPrice(applicationInRecordPlist.get(i).getPrice() / 100); } List applicationOutRecordPlist = depositoryRecordService.findApplicationOutRecordPByCondition(map); + Integer OutCount = depositoryRecordService.findApplicationOutRecordPCountByCondition(map); for (int i = 0; i < applicationOutRecordPlist.size(); i++) { applicationOutRecordPlist.get(i).setPrice(applicationOutRecordPlist.get(i).getPrice() / 100); } Map result = new HashMap<>(); result.put("applicationIn",applicationInRecordPlist); + result.put("InCount",InCount); result.put("applicationOut",applicationOutRecordPlist); + result.put("OutCount",OutCount); return new RestResponse(result,result.size(),200); } /*@GetMapping("/myApply") @@ -99,7 +103,12 @@ public class DepositoryRecordController { public RestResponse insertApplicationInRecord(@RequestBody Map map, HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); map.put("applicantId",userToken.getId()); - return CrudUtil.postHandle(depositoryRecordService.applicationIn(map),1); + Integer integer = depositoryRecordService.applicationIn(map); + if (integer != 0) { + return CrudUtil.postHandle(integer, 1); + }else{ + return new RestResponse("",666,new StatusInfo("存储失败","超出最大存储量,请重新选择存储位")); + } } @@ -137,7 +146,12 @@ public class DepositoryRecordController { @PutMapping("/review") public RestResponse review(@RequestBody Map map, HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); - return CrudUtil.postHandle(depositoryRecordService.review(map,userToken.getId()),1); + Integer review = depositoryRecordService.review(map, userToken.getId()); + if(review != -1) { + return CrudUtil.postHandle(review, 1); + }else{ + return new RestResponse("",666,new StatusInfo("出库失败","当前存储位库存不足,请重新选择")); + } } @PutMapping("/transfer") public RestResponse transfer(@RequestBody Map map, HttpServletRequest request){ @@ -145,7 +159,8 @@ public class DepositoryRecordController { UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); map.put("departmenthead",departmentHeadByUser.getId()); map.put("applicantId",userToken.getId()); - + map.put("toId",map.get("depositoryId")); + map.remove("depositoryId"); return CrudUtil.postHandle(depositoryRecordService.transferApply(map),1); } @@ -192,6 +207,7 @@ public class DepositoryRecordController { */ public static UserByPort findDepartmentHeadByUser(UserByPort user){ String url = "http://172.20.2.87:39168/org/positionlist"; +// String url = "http://127.0.0.1:39168/org/positionlist"; Integer maindeparment = user.getMaindeparment(); Map map = new HashMap<>(); map.put("organization",maindeparment.toString()); @@ -207,6 +223,9 @@ public class DepositoryRecordController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Post userPost = JSONObject.toJavaObject((JSONObject) list.get(0), Post.class); Map param = new HashMap<>(); param.put("position",userPost.getId()); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index 856e2f3f..dcf3f11b 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -1,15 +1,22 @@ package com.dreamchaser.depository_manage.controller; +import com.dreamchaser.depository_manage.entity.Material; import com.dreamchaser.depository_manage.entity.MaterialType; +import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.pojo.MaterialP; import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.security.bean.UserToken; import com.dreamchaser.depository_manage.service.MaterialService; import com.dreamchaser.depository_manage.utils.CrudUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import com.sun.mail.imap.protocol.ID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -86,4 +93,55 @@ public class MaterialController { throw new MyException("所需请求参数缺失!"); } } + @PostMapping("/treeMenus") + public RestResponse InitTreeMenus(@RequestBody Map map, HttpServletRequest request){ + String mname = (String) map.get("mname"); + String type = (String) map.get("type"); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + Integer maindeparment = userToken.getMaindeparment(); + List list = new ArrayList<>(); + if("1".equals(type)){ + list = materialService.InitTreeMenus(mname); + }else{ + list = materialService.InitTreeMenus(mname, String.valueOf(maindeparment)); + } + + + return new RestResponse(list); + } + + /** + * 根据id获取材料 + * @param mid + * @return + */ + @GetMapping("/findMatrialById") + public RestResponse findMatrialById(@RequestParam(value = "mid",required = false) String mid){ + if("".equals(mid)){ + return new RestResponse("",0,200); + } + Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(mid)); + return new RestResponse(materialById,1,200); + } + + @GetMapping("/findMatrialByCode") + public RestResponse findMatrialByCode(@RequestParam(value = "code") String code){ + Map param = new HashMap<>(); + if("".equals(code)){ + return new RestResponse(null,1,200); + } + param.put("code",code); + List materialPByCondition = materialService.findMaterialPByCondition(param); + MaterialP mp = null; + if(materialPByCondition.size() > 0){ + mp = materialPByCondition.get(0); + } + return new RestResponse(mp,1,200); + } + + @PostMapping("/findMaterialByCondition") + public RestResponse findMaterialByCondition(@RequestBody Map map){ + List materialPByCondition = materialService.findMaterialPByCondition(map); + return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java index 797ab33c..510d9e7f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java @@ -171,7 +171,7 @@ public class MaterialTypeController { public RestResponse findMaterialByMaterialTypeId(@RequestBody Map map){ Boolean allSonDepository = false; if(map.containsKey("id")){ - Integer materialTypeId = (Integer) map.get("id"); + Integer materialTypeId = ObjectFormatUtil.toInteger(map.get("id")); allSonDepository = findAllSonMaterialType(materialTypeId.toString()); }else if(map.containsKey("ids")){ List ids = (List) map.get("ids"); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index 078fd2be..c72dd028 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -7,20 +7,26 @@ import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.pojo.*; import com.dreamchaser.depository_manage.security.bean.UserToken; +import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; import com.dreamchaser.depository_manage.service.*; import com.dreamchaser.depository_manage.utils.DateUtil; import com.dreamchaser.depository_manage.utils.HttpUtils; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import com.dreamchaser.depository_manage.utils.WordUtil; +import javafx.geometry.Pos; import org.apache.http.protocol.HTTP; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.TimeUnit; /** * 专门用来展示页面的controller @@ -53,10 +59,12 @@ public class PageController { @Autowired private RoleService roleService; - @GetMapping("/login") - public ModelAndView login() { + + + + public static JSONObject Captcha(){ String url = "http://172.20.2.87:6666/base/captcha"; - ModelAndView mv = new ModelAndView(); +// String url = "http://127.0.0.1:6666/base/captcha"; JSONObject param = new JSONObject(); String post = null; try { @@ -66,8 +74,26 @@ public class PageController { } JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); - String picPath = (String) data.get("picPath"); - String captchaid = (String) data.get("captchaid"); + return data; + } + + + @GetMapping("/") + public ModelAndView Init(HttpServletRequest request){ + ModelAndView mv = new ModelAndView(); + mv.setViewName("index"); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + mv.addObject("user", userToken); + return mv; + } + + + @GetMapping("/login") + public ModelAndView login() { + ModelAndView mv = new ModelAndView(); + JSONObject captcha = Captcha(); + String picPath = (String) captcha.get("picPath"); + String captchaid = (String) captcha.get("captchaid"); mv.addObject("picPath", picPath); mv.addObject("captchaid", captchaid); mv.setViewName("pages/user/login"); @@ -75,6 +101,8 @@ public class PageController { } + + @GetMapping("/index") public ModelAndView index(HttpServletRequest request) { ModelAndView mv = new ModelAndView(); @@ -95,6 +123,7 @@ public class PageController { public Map index_menus(@RequestParam("uid") String uid) { //定义链接地址 String url = "http://172.20.2.87:6666/system_authorizing/obtain_authorization"; +// String url = "http://127.0.0.1:6666/system_authorizing/obtain_authorization"; Map param = new HashMap<>(); param.put("system", "cangchu"); String jsonString = JSONObject.toJSONString(param); @@ -108,6 +137,9 @@ public class PageController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray powerid = (JSONArray) data.get("powerid"); + if(powerid == null){ + powerid = new JSONArray(); + } List stringList = JSONObject.parseArray(powerid.toJSONString(), String.class); List accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList); // 获取顶级菜单 @@ -303,7 +335,11 @@ public class PageController { map.put("parentId", 0); List depositoryAll = depositoryService.findDepositoryRecordPByCondition(map); UserByPort userToken = (UserByPort) request.getAttribute("userToken"); - Integer role = roleService.findRoleByUid(userToken.getId().toString()); +// Integer role = roleService.findRoleByUid(userToken.getId().toString()); + Integer role = userToken.getRole(); + if(role == null){ + role = 0; + } if (role == 1) { mv.addObject("display", "inline-block"); } else { @@ -352,8 +388,24 @@ public class PageController { @GetMapping("/selectDepository") - public String selectDepository(){ - return "pages/material/selectDepository"; + public ModelAndView selectDepository(Integer type,HttpServletRequest request){ + ModelAndView mv = new ModelAndView(); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + if(type == 1) { + Integer maindeparment = userToken.getMaindeparment(); + mv.addObject("adminorg", maindeparment); + } + mv.setViewName("pages/material/selectDepository"); + return mv; + } + + @GetMapping("/selectMaterial") + public ModelAndView selectMaterial(String mname,String type){ + ModelAndView mv = new ModelAndView(); + mv.addObject("mname",mname); + mv.addObject("type",type); + mv.setViewName("pages/material/selectMaterial"); + return mv; } @GetMapping("material_view") @@ -385,7 +437,11 @@ public class PageController { Map map = new HashMap<>(); map.put("parentId", 0); UserByPort userToken = (UserByPort) request.getAttribute("userToken"); - Integer role = roleService.findRoleByUid(userToken.getId().toString()); +// Integer role = roleService.findRoleByUid(userToken.getId().toString()); + Integer role = userToken.getRole(); + if(role == null){ + role = 0; + } List materialTypeAll = materialTypeService.findMaterialTypeByCondition(map); mv.addObject("materialTypes", materialTypeAll); if (role == 1) { @@ -406,6 +462,17 @@ public class PageController { return mv; } + @GetMapping("/application_in_back") + public ModelAndView applicationIn(Integer mid,Integer depositoryId){ + ModelAndView mv = new ModelAndView(); + Material materialById = materialService.findMaterialById(mid); + Depository depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId); + mv.addObject("materialById",materialById); + mv.addObject("depository",depositoryRecordById); + mv.setViewName("pages/application/application-in_back"); + return mv; + } + @GetMapping("/application_out") public ModelAndView application_out() { ModelAndView mv = new ModelAndView(); @@ -563,6 +630,7 @@ public class PageController { */ public static List FindUserByMap(Map map) { String url = "http://172.20.2.87:39168/staff/archiveslist"; +// String url = "http://127.0.0.1:39168/staff/archiveslist"; String jsonString = JSONObject.toJSONString(map); JSONObject paramObject = JSONObject.parseObject(jsonString); String post = null; @@ -575,6 +643,9 @@ public class PageController { JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); List result = new ArrayList<>(); + if(list == null){ + list = new JSONArray(); + } for (int i = 0; i < list.size(); i++) { UserByPort userByPort = JSONObject.toJavaObject((JSONObject) list.get(i), UserByPort.class); result.add(userByPort); @@ -584,6 +655,7 @@ public class PageController { public static UserByPort FindUserById(Integer id) { String url = "http://172.20.2.87:39168/staff/archivescont"; +// String url = "http://127.0.0.1:39168/staff/archivescont"; Map map = new HashMap<>(); map.put("id", id); String jsonString = JSONObject.toJSONString(map); @@ -602,20 +674,56 @@ public class PageController { @GetMapping("/user_add") - public ModelAndView user_add(Integer id) { + public ModelAndView user_add(Integer userId) { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/user/user-add"); - Map map = new HashMap<>(); - map.put("number",id.toString()); - UserByPortP userByPortP = new UserByPortP(FindUserByMap(map).get(0)); - RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(userByPortP.getId()); - if (depositoryAndRole != null) { - userByPortP.setRolename(depositoryAndRole.getRoleName()); - userByPortP.setDepositoryName(depositoryAndRole.getDepositoryName()); + UserByPort userByPort = FindUserById(userId); + UserByPortP userByPortP = new UserByPortP(userByPort); + mv.addObject("userByPort", userByPortP); + mv.addObject("roles", roleService.findAllRole()); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + return mv; + } + + @GetMapping("/user_role_edit") + public ModelAndView user_role_edit(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/user/user-role-edit"); + RoleAndDepository roleAndDepositoryById = roleService.findRoleAndDepositoryById(id); + UserByPortP userByPortP = null; + if (roleAndDepositoryById != null) { + UserByPort userByPort = FindUserById(roleAndDepositoryById.getUserId()); + userByPortP = new UserByPortP(userByPort); + userByPortP.setRolename(roleAndDepositoryById.getRoleName()); + userByPortP.setDepositoryName(roleAndDepositoryById.getDepositoryName()); } mv.addObject("userByPort", userByPortP); + mv.addObject("roleId", roleAndDepositoryById.getId()); + mv.addObject("roles", roleService.findAllRole()); + mv.addObject("depositoryId",roleAndDepositoryById.getDepositoryId()); + mv.addObject("depositories", depositoryService.findDepositoryAll()); + return mv; + } + + @GetMapping("/post_role_edit") + public ModelAndView post_role_edit(Integer id,Integer depositoryId) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/post/postRole_edit"); + Map userParam = new HashMap<>(); + userParam.put("position",id); + List userByPortList = PageController.FindUserByMap(userParam); + Post postById = findPostById(id); + PostP pp = new PostP(postById); + Map param = new HashMap<>(); + param.put("depositoryId",depositoryId); + param.put("userId",userByPortList.get(0).getId()); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + pp.setDepositoryName(roleAndDepositoryByCondition.get(0).getDepositoryName()); + pp.setDepositoryId(roleAndDepositoryByCondition.get(0).getDepositoryId()); + mv.addObject("post", pp); mv.addObject("roles", roleService.findAllRole()); mv.addObject("depositories", depositoryService.findDepositoryAll()); + mv.addObject("record", roleAndDepositoryByCondition); return mv; } @@ -637,8 +745,14 @@ public class PageController { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/warehouse/warehouse_view"); if (id != null) { - mv.addObject("record", depositoryService.findDepositoryRecordById(id)); + Depository depositoryRecordById = depositoryService.findDepositoryRecordById(id); + mv.addObject("record", depositoryRecordById); + Integer cid = depositoryRecordById.getCid(); + List postList = findCompanyBySuperior(cid.toString()); List administrationPList = findAllCompany(); + // 部门列表 + mv.addObject("postList", postList); + // 公司列表 mv.addObject("administrationPList", administrationPList); mv.addObject("depositories", depositoryService.findDepositoryAll()); } else { @@ -682,7 +796,7 @@ public class PageController { return mv; } - @GetMapping("ManagerView") + @GetMapping("/ManagerView") public ModelAndView findManagerView(Integer id) { ModelAndView mv = new ModelAndView(); mv.addObject("did", id); @@ -690,7 +804,22 @@ public class PageController { return mv; } - @GetMapping("ManagerViewByMid") + @GetMapping("/userRoleView") + public ModelAndView finduserRoleView(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.addObject("userId", id); + mv.setViewName("pages/user/userRole"); + return mv; + } + @GetMapping("/postRoleView") + public ModelAndView findPostRoleView(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.addObject("postId", id); + mv.setViewName("pages/post/postRole"); + return mv; + } + + @GetMapping("/ManagerViewByMid") public ModelAndView findManagerViewByMid(Integer id) { ModelAndView mv = new ModelAndView(); Material materialById = materialService.findMaterialById(id); @@ -826,8 +955,25 @@ public class PageController { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/user/account-look"); UserByPort userToken = (UserByPort) request.getAttribute("userToken"); - RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); + List depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); + StringBuilder RoleName = new StringBuilder(); + StringBuilder DepositoryName = new StringBuilder(); + for (int i = 0; i < depositoryAndRole.size(); i++) { + String roleName = depositoryAndRole.get(i).getRoleName(); + if(roleName == null){ + roleName = ""; + } + String depositoryName = depositoryAndRole.get(i).getDepositoryName(); + if(depositoryName == null){ + depositoryName = ""; + } + RoleName.append(roleName + " "); + DepositoryName.append(depositoryName + " "); + } mv.addObject("roleAndDepository", depositoryAndRole); + mv.addObject("RoleName", RoleName.toString()); + mv.addObject("DepositoryName", DepositoryName.toString()); + mv.addObject("user", userToken); return mv; } @@ -844,6 +990,7 @@ public class PageController { public List findAllCompany() { String url = "http://172.20.2.87:39168/org/govlist"; +// String url = "http://127.0.0.1:39168/org/govlist"; Map map = new HashMap<>(); map.put("superior", "313"); String jsonString = JSONObject.toJSONString(map); @@ -857,6 +1004,9 @@ public class PageController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List administrationPList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { @@ -890,6 +1040,7 @@ public class PageController { @GetMapping("/company_detail") public ModelAndView company_detail(Integer id) { String url = "http://172.20.2.87:39168/org/getgovcont"; +// String url = "http://127.0.0.1:39168/org/getgovcont"; Map map = new HashMap<>(); ModelAndView mv = new ModelAndView(); mv.setViewName("pages/company/company_edit"); @@ -916,8 +1067,9 @@ public class PageController { return mv; } - public Administration getCompany(Integer id) { + public static Administration getCompany(Integer id) { String url = "http://172.20.2.87:39168/org/getgovcont"; +// String url = "http://127.0.0.1:39168/org/getgovcont"; Map map = new HashMap<>(); map.put("id", id); map.put("idstr", id.toString()); @@ -939,6 +1091,7 @@ public class PageController { public static List findCompanyBySuperior(String superior) { String url = "http://172.20.2.87:39168/org/govlist"; +// String url = "http://127.0.0.1:39168/org/govlist"; Map map = new HashMap<>(); map.put("superior", superior); String jsonString = JSONObject.toJSONString(map); @@ -952,6 +1105,9 @@ public class PageController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List administrationPList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { @@ -966,6 +1122,7 @@ public class PageController { public ModelAndView findCompanyByParentId(Integer parentId) { ModelAndView mv = new ModelAndView(); String url = "http://172.20.2.87:39168/org/govlist"; +// String url = "http://127.0.0.1:39168/org/govlist"; if (parentId != null) { mv.addObject("parentId", parentId); List administrationPList = findCompanyBySuperior(parentId.toString()); @@ -984,6 +1141,7 @@ public class PageController { @GetMapping("/findPostByOrganization") public ModelAndView findPostByOrganization(Integer organization) { String url = "http://172.20.2.87:39168/org/positionlist"; +// String url = "http://127.0.0.1:39168/org/positionlist"; ModelAndView mv = new ModelAndView(); mv.setViewName("pages/post/post-out"); mv.addObject("parentId", organization); @@ -1001,12 +1159,16 @@ public class PageController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } List postList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { Post object = JSONObject.toJavaObject((JSONObject) list.get(i), Post.class); postList.add(object); } mv.addObject("postList", postList); + mv.addObject("organization", organization); mv.setViewName("pages/post/post-out"); } else { throw new MyException("缺少必要参数!"); @@ -1027,8 +1189,9 @@ public class PageController { return mv; } - public Post findPostById(Integer id) { + public static Post findPostById(Integer id) { String url = "http://172.20.2.87:39168/org/getpositioncont"; +// String url = "http://127.0.0.1:39168/org/getpositioncont"; Map map = new HashMap<>(); map.put("id", id); map.put("idstr", id.toString()); @@ -1050,6 +1213,7 @@ public class PageController { @GetMapping("/findPostByParentId") public ModelAndView findPostByParentId(Integer parentId) { String url = "http://172.20.2.87:39168/org/positionlist"; +// String url = "http://127.0.0.1:39168/org/positionlist"; ModelAndView mv = new ModelAndView(); if (parentId != null) { Map map = new HashMap<>(); @@ -1066,6 +1230,9 @@ public class PageController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List postList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { @@ -1095,4 +1262,5 @@ public class PageController { mv.addObject("depositories", depositoryService.findDepositoryAll()); return mv; } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java index d4300758..41c4159f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java @@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.entity.Depository; import com.dreamchaser.depository_manage.entity.User; import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.exception.MyException; @@ -16,6 +17,7 @@ import com.dreamchaser.depository_manage.security.bean.UserToken; import com.dreamchaser.depository_manage.security.bean.VerificationCode; import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; import com.dreamchaser.depository_manage.security.pool.VerificationCodePool; +import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.service.UserService; import com.dreamchaser.depository_manage.utils.CrudUtil; @@ -33,7 +35,9 @@ import org.springframework.mail.javamail.JavaMailSender; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -62,6 +66,9 @@ public class UserController { @Value("${spring.mail.username}") private String fromEmail; + @Autowired + private DepositoryService depositoryService; + /** * 注册用户(通常为手机或者邮箱注册) * @@ -145,6 +152,7 @@ public class UserController { @PostMapping("/login") public RestResponse login(@RequestBody Map map, HttpServletRequest request) { String url = "http://172.20.2.87:6666/base/login"; +// String url = "http://127.0.0.1:6666/base/login"; String jsonString = JSONObject.toJSONString(map); JSONObject paramObject = JSONObject.parseObject(jsonString); String post = null; @@ -155,13 +163,18 @@ public class UserController { } JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); - if(data != null) { - String userkey = (String) data.get("key"); + String userkey = (String) data.get("key"); + if(userkey != null) { String usertoken = (String) data.get("token"); HttpUtils.setUserKey(userkey); HttpUtils.setUserToken(usertoken); UserByPort userinfo = JSONObject.toJavaObject((JSONObject) data.get("userinfo"), UserByPort.class); AuthenticationTokenPool.addToken(usertoken,userinfo); + HttpSession session = request.getSession(); + session.setAttribute("token",usertoken); + session.setMaxInactiveInterval(1800); + // 设置放入时间 +// userinfo.setInstant(Instant.now()); return new RestResponse(usertoken); }else{ return CrudUtil.NOT_EXIST_USER_OR_ERROR_PWD_RESPONSE; @@ -184,6 +197,15 @@ public class UserController { return CrudUtil.NOT_EXIST_USER_OR_ERROR_PWD_RESPONSE; } } + @GetMapping("/loginOut") + public RestResponse loginOut(HttpServletRequest request){ + HttpSession session = request.getSession(); + String token = (String) session.getAttribute("token"); + session.invalidate(); + request.removeAttribute("userToken"); + AuthenticationTokenPool.removeToken(token); + return new RestResponse("",200,new StatusInfo("退出成功","退出成功")); + } /** @@ -209,6 +231,7 @@ public class UserController { @PostMapping("/sys/findUsers") public RestResponse findUsersByPort(@RequestParam Map map) { String url = "http://172.20.2.87:39168/staff/archiveslist"; +// String url = "http://127.0.0.1:39168/staff/archiveslist"; if(map.containsKey("company")){ map.put("company",ObjectFormatUtil.toInteger(map.get("company"))); } @@ -230,13 +253,23 @@ public class UserController { JSONObject jsonObject = JSONObject.parseObject(post); JSONObject data = (JSONObject) jsonObject.get("data"); JSONArray list = (JSONArray) data.get("list"); + if(list == null){ + list = new JSONArray(); + } Integer total = ObjectFormatUtil.toInteger(data.get("total")); List userByPortList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { UserByPort userByPort = JSONObject.toJavaObject((JSONObject)list.get(i), UserByPort.class); UserByPortP user = new UserByPortP(userByPort); - RoleAndDepository depositoryAndRole = roleService.findDepositoryAndRole(userByPort.getId()); - if(depositoryAndRole != null) { + Map param = new HashMap<>(); + param.put("userId",userByPort.getId()); + param.put("classes",1); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + RoleAndDepository depositoryAndRole = null; + if(roleAndDepositoryByCondition.size() > 0){ + depositoryAndRole = roleAndDepositoryByCondition.get(0); + } + if(depositoryAndRole != null && depositoryAndRole.getClasses() != 2) { user.setRolename(depositoryAndRole.getRoleName()); user.setDepositoryName(depositoryAndRole.getDepositoryName()); }else{ @@ -261,13 +294,40 @@ public class UserController { @PostMapping("/sys/user_role") public RestResponse addUser(@RequestBody Map map) { map.put("classes",1); - RoleAndDepository userid = roleService.findDepositoryAndRole(ObjectFormatUtil.toInteger(map.get("userid"))); - if(userid!=null){ - return CrudUtil.postHandle(roleService.updateUserOrPostRoleAndDepository(map), 1); - }else { - return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); + Map param = new HashMap<>(); + param.put("userId",map.get("userid")); + param.put("classes",1); + if(map.containsKey("depositoryId")){ + param.put("depositoryId",map.get("depositoryId")); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + if(roleAndDepositoryByCondition.size() > 0){ + return CrudUtil.postHandle(-1,-1); + }else{ + return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); + } + }else{ + List depositoryAll = depositoryService.findDepositoryAll(); + Integer success = 0; + for (int i = 0; i < depositoryAll.size(); i++) { + param.put("depositoryId",depositoryAll.get(i).getId()); + map.put("depositoryId",depositoryAll.get(i).getId()); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + if(roleAndDepositoryByCondition.size() > 0){ + continue; + }else{ + success += roleService.addUserOrPostRoleAndDepository(map); + } + } + return CrudUtil.postHandle(success,depositoryAll.size()); } -// return CrudUtil.postHandle(userService.insertUser(map), 1); + + } + + @PostMapping("/sys/userRole_edit") + public RestResponse editUserRole(@RequestBody Map map) { + RoleAndDepository roleId = roleService.findRoleAndDepositoryById(ObjectFormatUtil.toInteger(map.get("roleId"))); + map.put("classes",1); + return CrudUtil.postHandle(roleService.UpdateRoleAndDepositoryById(map),1); } @PostMapping("/sys/user_detail") @@ -299,6 +359,30 @@ public class UserController { } } + /** + * 根据主键删除权限类型 + * @param map + * @return + */ + @PostMapping("/sys/userRole_del") + public RestResponse deleteRoleAndDepository(@RequestBody Map map){ + if(map.containsKey("id")) { + Integer id = ObjectFormatUtil.toInteger(map.get("id")); + return CrudUtil.deleteHandle(roleService.deleteRoleAndDepositoryById(id), 1); + } + else if(map.containsKey("ids")){ + Integer num = 0; + List ids=(List) map.get("ids"); + for (int i = 0; i < ids.size(); i++) { + Integer id = ids.get(i); + num += roleService.deleteRoleAndDepositoryById(id); + } + return CrudUtil.deleteHandle(num, ids.size()); + }else { + throw new MyException("所需请求参数缺失!"); + } + } + @PutMapping("/user") public RestResponse updateSelf(@RequestBody Map map, HttpServletRequest request) { UserToken userToken = (UserToken) request.getAttribute("userToken"); @@ -409,6 +493,33 @@ public class UserController { return CrudUtil.postHandle(userService.updateUserPasswordById(map), 1); } + /** + * 获取验证码 + * @return + */ + @GetMapping("/getCaptchaid") + public JSONObject getCaptchaid(){ + JSONObject captcha = PageController.Captcha(); + return captcha; + } + + @GetMapping("/findUserRole") + public RestResponse findUserRole(@RequestParam("userId") Integer userId){ + Map param = new HashMap<>(); + param.put("classes",1); + param.put("userId",userId); + List userByPortPList = new ArrayList<>(); + List roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(param); + for (int i = 0; i < roleAndDepositoryByCondition.size(); i++) { + UserByPort userByPort = PageController.FindUserById(roleAndDepositoryByCondition.get(i).getUserId()); + UserByPortP up = new UserByPortP(userByPort); + up.setId(roleAndDepositoryByCondition.get(i).getId()); + up.setDepositoryName(roleAndDepositoryByCondition.get(i).getDepositoryName()); + userByPortPList.add(up); + } + return new RestResponse(userByPortPList, userByPortPList.size(), 200); + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java index c3cc5427..e20229b0 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationInRecord.java @@ -38,4 +38,9 @@ public class ApplicationInRecord { * 仓库编号 */ private Integer depository_id; + + /** + * 入库编码 + */ + private String aircode; } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java b/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java index 7f2efd3b..df70bb98 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Depository.java @@ -38,6 +38,30 @@ public class Depository { * 公司名称 */ private String cname; + + /** + * 仓库编码 + */ + private String code; + + /** + * 所属部门 + */ + private String adminorg; + + /** + * 所属部门名称 + */ + private String adminorgName; + + /** + * 当前仓库最大存储量 + */ + private Integer maxNumber; + /** + * 当前仓库最小存储量 + */ + private Integer minNumber; /** * 获取id * @@ -161,13 +185,99 @@ public class Depository { this.cid = cid; } + /** + * 获取公司名称 + * @return + */ public String getCname() { return cname; } + /** + * 设置公司名称 + * @param cname + */ public void setCname(String cname) { this.cname = cname; } + /** + * 获取仓库编码 + * @return + */ + public String getCode() { + return code; + } + + /** + * 设置仓库编码 + * @param code + */ + public void setCode(String code) { + this.code = code; + } + + /** + * 获取所属部门 + * @return + */ + public String getAdminorg() { + return adminorg; + } + + /** + * 设置所属部门 + * @param adminorg + */ + public void setAdminorg(String adminorg) { + this.adminorg = adminorg; + } + + /** + * 获取部门名称 + * @return + */ + public String getAdminorgName() { + return adminorgName; + } + + /** + * 设置部门名称 + * @param adminorgName + */ + public void setAdminorgName(String adminorgName) { + this.adminorgName = adminorgName; + } + + /** + * 获取当前仓库存储最大值 + * @return + */ + public Integer getMaxNumber() { + return maxNumber; + } + /** + * 设置当前仓库存储最大值 + * @return + */ + public void setMaxNumber(Integer maxNumber) { + this.maxNumber = maxNumber; + } + /** + * 获取当前仓库存储最小值 + * @return + */ + public Integer getMinNumber() { + return minNumber; + } + + /** + * 设置当前仓库存储最小值 + * @return + */ + public void setMinNumber(Integer minNumber) { + this.minNumber = minNumber; + } + /* This code was generated by TableGo tools, mark 2 end. */ } \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java index 23e57b3f..01d077ec 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java @@ -47,7 +47,7 @@ public class ExcelInfo { private Integer state; /** 存货编码 */ - @ExcelProperty("存货编码(用友U8)") + @ExcelProperty("存货编码") private Long code; /** 规格型号 */ diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Material.java b/src/main/java/com/dreamchaser/depository_manage/entity/Material.java index 9f8e9692..72aa4810 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/Material.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Material.java @@ -17,7 +17,7 @@ public class Material { /** 存储id */ private Integer id; - /** 仓库名称 */ + /** 仓库id */ private Integer depositoryId; /** 材料名称 */ diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java b/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java index 5b044534..40e2c710 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java @@ -6,6 +6,10 @@ import java.time.Instant; @Data public class UserByPort { + + private static Integer term = 1800; // 登录有效时间 + + /** * id */ @@ -283,5 +287,19 @@ public class UserByPort { */ private String keystr; + /** + * 放入的时间 + */ + private Instant instant; + + /** + * 根据时间判断是否有效 + * @return 有效则返回true,否则返回false + */ + /* public boolean isValid(){ + return Instant.now().getEpochSecond()-instant.getEpochSecond()<=term; + }*/ + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java b/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java index 27b4e2c7..0c0c4755 100644 --- a/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java +++ b/src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java @@ -9,6 +9,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.io.IOException; /** @@ -25,18 +26,15 @@ public class UserInterceptor extends HandlerInterceptorAdapter { //拿到requset中的head String token =null; - Cookie[] cookies=request.getCookies(); - if (cookies!=null){ - for (Cookie c:cookies){ - if (c.getName().equals("token")){ - token=c.getValue(); - break; - } - } - } + HttpSession session = request.getSession(); + token = (String) session.getAttribute("token"); //如果是访问logout则删除对应的令牌 if ("/logout".equals(request.getServletPath())){ AuthenticationTokenPool.removeToken(token); + session.invalidate(); + return true; + } + if("/getCaptchaid".equals(request.getServletPath())){ return true; } if (token!=null&&AuthenticationTokenPool.getToken(token)!=null){ diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java index 850f2450..80671d08 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java @@ -109,11 +109,11 @@ public interface DepositoryMapper { /** - * 根据仓库名称获取当前仓库库存容量 - * @param dname + * 根据仓库名称或仓库编码获取当前仓库库存容量 + * @param map * @return */ - Double getToDayInventoryByDName(String dname); + Double getToDayInventoryByDName(Map map); /** @@ -136,4 +136,10 @@ public interface DepositoryMapper { * @return */ List getParentByDepository(Integer parentId); + /** + * 获取当前部门以及公共仓库 + * @param adminorg + * @return + */ + List findDepositoryByAdminorg(String adminorg); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index effd09d2..0e77f636 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -12,17 +12,21 @@ + + + + - d.id, d.dname, d.address, d.introduce,d.state,d.parentId,d.cid + d.id, d.dname, d.address, d.introduce,d.state,d.parentId,d.cid,d.code,d.adminorg,d.maxNumber,d.minNumber - id,dname,address,introduce,state,parentId,cid,cname + id,dname,address,introduce,state,parentId,cid,cname,code,adminorg,minNumber,maxNumber @@ -49,6 +53,17 @@ Where dc.state != 3 + + + - - + @@ -161,14 +154,18 @@ INSERT INTO depository ( - id, dname, address, introduce,parentId,cid + id, dname, address, introduce,parentId,cid,code,adminorg,maxNumber,minNumber ) VALUES ( #{id}, #{dname}, #{address}, #{introduce}, #{parentId}, - #{cid} + #{cid}, + #{code}, + #{adminorg}, + #{maxNumber}, + #{minNumber} ) @@ -208,7 +205,19 @@ parentId = #{parentId}, - cid = #{cid} + cid = #{cid}, + + + adminorg = #{adminorg}, + + + code = #{code}, + + + minNumber = #{minNumber}, + + + maxNumber = #{maxNumber} WHERE id = #{id} @@ -291,10 +300,16 @@ where d.state != 3 - select ifnull(sum(quantity),0.0) from depositoryAndmaterial - where dname = #{dname} + where 1 = 1 + + and dname = #{dname} + + + and dcode = #{dcode} + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml index 3397ece3..fe88463f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml @@ -55,6 +55,13 @@ + + + + + + + @@ -81,6 +88,7 @@ + @@ -110,12 +118,12 @@ - airid,mname,quantity,price,tname,applicant_time,aircode,dname,applicant_id,applyRemark + airid,mname,quantity,price,tname,applicant_time,aircode,dname,applicant_id,applyRemark,mcode,mversion,munit,mtexture,mkingdeecode,mdepositoryCode aorid,mid,mname,depositoryId,dname,applicantId,applicantTime,applyRemark,aorcode,aorpirce,aorquantity,departmenthead,departmentheadPass,departmentHeadTime,departmentheadMessage, - depositoryManager,depositoryManagerPass,depositoryManagerTime,depositoryManagerMessage,aorstate,istransfer,transferId + depositoryManager,depositoryManagerPass,depositoryManagerTime,depositoryManagerMessage,aorstate,istransfer,transferId,mcode @@ -463,9 +468,6 @@ and istransfer = #{istransfer} - - LIMIT #{begin},#{size} - diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java index 5d018f0b..d960b167 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java @@ -122,6 +122,11 @@ public interface MaterialMapper { */ Integer updateStateByParam(Map map); - + /** + * 根据仓库查询物品 + * @param ids + * @return + */ + List findMaterialByDepositorys(List ids); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml index 1c10363c..5eb7a250 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -55,12 +55,12 @@ - m.id,m.depository_id,m.mname,m.quantity,m.price,m.type_id,m.state,m.code ,m.version ,m.amounts ,m.unit ,m.texture,mt.tname,m.depositoryCode,d.dname + id,depository_id,mname,quantity,price,type_id,state,code ,version ,amounts ,unit ,texture,tname,depositoryCode,dname - id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode + id,depository_id,mname,quantity,price,type_id,state,tname,dname,version,amounts ,unit ,texture,code,depositoryCode,depository_id + + + + select - from material m ,material_type mt,depository d - where m.id = #{id} - and m.depository_id = d.id - and m.type_id = mt.id + from materialAndType + where id = #{id} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java index 96be1c54..fb5f4630 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java @@ -1,5 +1,6 @@ package com.dreamchaser.depository_manage.mapper; +import com.dreamchaser.depository_manage.entity.Material; import com.dreamchaser.depository_manage.entity.MaterialType; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -110,4 +111,5 @@ public interface MaterialTypeMapper { * @return 所有记录 */ List findMaterialTypeNoParent(); + } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java index 649f77d0..b0b3ed09 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java @@ -30,7 +30,7 @@ public interface RoleMapper { * @param userid * @return */ - RoleAndDepository findDepositoryAndRole(Integer userid); + List findDepositoryAndRole(Integer userid); /** * 修改用户或者岗位权限及管理的仓库 @@ -55,6 +55,34 @@ public interface RoleMapper { */ List findUserIdByDid(Integer did); + /** + * 根据条件获取权限 + * @param map + * @return + */ + List findRoleAndDepositoryByCondition(Map map); + + + + /** + * 根据id获取权限 + * @param id + * @return + */ + RoleAndDepository findRoleAndDepositoryById(Integer id); + /** + * 修改权限列表 + * @param map + * @return + */ + Integer UpdateRoleAndDepositoryById(Map map); + + /** + * 根据id删除 + * @param id + * @return + */ + Integer deleteRoleAndDepositoryById(Integer id); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml index 8090e3a2..05be432f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml @@ -19,12 +19,15 @@ + + + @@ -32,7 +35,7 @@ - userid as userId,name as roleName,dname as depositoryName,address as depositoryAddress ,introduce as depositoryIntroduce,state as depositoryState + prid,userid as userId,name as roleName,dname as depositoryName,address as depositoryAddress ,introduce as depositoryIntroduce,state as depositoryState,did,classes + + + + + + + + + delete from postoruserrole WHERE id = #{id} + diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java index 20aaf8e2..5e37a9a1 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationInRecordP.java @@ -19,7 +19,7 @@ public class ApplicationInRecordP { /** * 入库金额 */ - private int price; + private Double price; /** * 入库物品类型 */ @@ -55,5 +55,34 @@ public class ApplicationInRecordP { */ private String applyRemark; + /** + * 入库编码 + */ + private String aircode; + + /** + * 物品编码 + */ + private String mcode; + /** + * 物品规格型号 + */ + private String mversion; + /** + * 物品计量单位 + */ + private String munit; + /** + * 物品材质 + */ + private String mtexture; + /** + * 物品金蝶编码 + */ + private String mkingdeecode; + /** + * 物品仓库编码 + */ + private String mdepositoryCode; } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java index 6d87a788..3826366f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java @@ -58,7 +58,7 @@ public class ApplicationOutRecordP { /** * 金额 */ - private Integer price; + private Double price; /** * 数量 @@ -128,4 +128,9 @@ public class ApplicationOutRecordP { * 转移申请编号 */ private Integer transferId; + + /** + * 材料存货编码 + */ + private String mcode; } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java index 886a890a..6bed8f4d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java @@ -22,6 +22,11 @@ public class MaterialP { */ private String depositoryName; + /** + * 仓库id + */ + private Integer depositoryId; + /** * 材料名称 */ @@ -110,6 +115,7 @@ public class MaterialP { this.texture = material.getTexture(); // 材质 this.code = material.getCode(); // 存货编码 this.version = material.getVersion(); // 规格型号 - this.depositoryCode = material.getDepositoryCode(); // 仓库编号 + this.depositoryCode = material.getDepositoryCode(); // 仓库编码 + this.depositoryId = material.getDepositoryId(); // 仓库id } } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java index a477abf2..b53c8db2 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/PostP.java @@ -74,6 +74,15 @@ public class PostP { * 管理仓库 */ private String depositoryName; + /** + * 管理仓库编号 + */ + private Integer depositoryId; + + /** + * 归属行政组织 + */ + private Integer administrativeorganization; public PostP(Post post){ this.id = post.getId(); @@ -87,6 +96,7 @@ public class PostP { this.superiorname = post.getSuperiorname(); this.superiornumber = post.getSuperiornumber(); this.departmentname = post.getDepartmentname(); + this.administrativeorganization = post.getAdministrativeorganization(); } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java b/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java index b938f44d..82c7e1fb 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/RoleAndDepository.java @@ -5,17 +5,27 @@ import lombok.Data; @Data public class RoleAndDepository { + /** + * 权限列表编号 + */ + private Integer id; + /** * 归属人/岗位编号 */ private Integer userId; + /** * 权限名称 */ private String roleName; + /** + * 仓库编号 + */ + private Integer depositoryId; /** * 仓库名称 @@ -36,4 +46,9 @@ public class RoleAndDepository { * 仓库状态 */ private Integer depositoryState; + + /** + * 权限类型(1个人2岗位) + */ + private Integer classes; } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java index c773edf1..ebbda934 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/UserByPortP.java @@ -75,6 +75,8 @@ public class UserByPortP { private String depositoryName; + + public UserByPortP(UserByPort userByPort) { this.id = userByPort.getId(); this.number = userByPort.getNumber(); diff --git a/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java b/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java index 0993a166..37ae4271 100644 --- a/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java +++ b/src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java @@ -9,14 +9,13 @@ import java.util.concurrent.ConcurrentHashMap; /** * 认证后的令牌连接池(由于获取全局的session比较麻烦,所以自己维护一个类似session的令牌池) - * @author 金昊霖 */ public class AuthenticationTokenPool { /** * 认证后的令牌连接池 */ // private static Map pool=new ConcurrentHashMap<>(10); - private static Map pool = new ConcurrentHashMap<>(10); + private static Map pool = new ConcurrentHashMap<>(100); public static void addToken(String token,UserByPort userToken){ pool.put(token, userToken); @@ -47,7 +46,7 @@ public class AuthenticationTokenPool { return null; } } - /*public static UserToken getToken(String token){ + /* public static UserToken getToken(String token){ UserToken userToken=pool.get(token); //如果没有相应令牌则直接返回null @@ -63,8 +62,7 @@ public class AuthenticationTokenPool { pool.remove(token); return null; } - } -*/ + }*/ /** * 根据凭证删除对应的令牌 * @param token 凭证 diff --git a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java index dcebdb1b..91d89436 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java @@ -133,4 +133,17 @@ public interface DepositoryService { */ List InitTreeMenus(); + /** + * 根据部门构造树形选择框 + * @param adminorg + * @return + */ + List InitTreeMenus(String adminorg); + /** + * 获取当前部门以及公共仓库 + * @param adminorg + * @return + */ + List findDepositoryByAdminorg(String adminorg); + } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java index c72105b5..272f1ff5 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java @@ -117,4 +117,23 @@ public interface MaterialService { * @return */ Integer updateStateByParam(Map map); + + /** + * 构造树形选择框 + * @return + */ + List InitTreeMenus(String mname,String adminorg); + + /** + * 构造树形选择框 + * @return + */ + List InitTreeMenus(String mname); + + /** + * 根据仓库查询物品 + * @param dids + * @return + */ + List findMaterialByDepositorys(List dids); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java b/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java index 5b8ee96b..41c6de63 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/RoleService.java @@ -28,7 +28,7 @@ public interface RoleService { * @param userid * @return */ - RoleAndDepository findDepositoryAndRole(Integer userid); + List findDepositoryAndRole(Integer userid); /** * 修改用户或者岗位权限及管理的仓库 @@ -52,6 +52,39 @@ public interface RoleService { */ List findUserIdByDid(Integer did); + /** + * 根据条件获取权限 + * @param map + * @return + */ + List findRoleAndDepositoryByCondition(Map map); + /** + * 根据id获取权限 + * @param id + * @return + */ + RoleAndDepository findRoleAndDepositoryById(Integer id); + + /** + * 修改权限列表 + * @param map + * @return + */ + Integer UpdateRoleAndDepositoryById(Map map); + + /** + * 根据id删除 + * @param id + * @return + */ + Integer deleteRoleAndDepositoryById(Integer id); + + /** + * 根据仓库编号查询权限记录 + * @param did + * @return + */ + List findRoleAndDepositoryByDid(Integer did); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 1d5ff053..fefc2718 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -1,6 +1,7 @@ package com.dreamchaser.depository_manage.service.impl; import cn.hutool.core.util.IdUtil; +import cn.hutool.log.Log; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.controller.PageController; @@ -13,15 +14,19 @@ import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.utils.DateUtil; import com.dreamchaser.depository_manage.utils.HttpUtils; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import com.dreamchaser.depository_manage.utils.WordUtil; import org.apache.http.protocol.HTTP; import org.springframework.beans.Mergeable; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.hutool.core.lang.Snowflake; import java.io.IOException; +import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.TimeUnit; /** * @author Dreamchaser @@ -40,6 +45,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { private MaterialMapper materialMapper; @Autowired private RoleService roleService; + @Autowired + private RedisTemplate redisTemplate; /** * 提交申请,插入一条仓库调度记录 @@ -69,21 +76,52 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Override public Integer applicationIn(Map map) { + Integer depositoryId =ObjectFormatUtil.toInteger(map.get("depositoryId")); + Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(depositoryId); + Map temp = new HashMap<>(); + temp.put("dname",depositoryRecordById.getDname()); + Double Inventory = depositoryMapper.getToDayInventoryByDName(temp); + String code = createCode(depositoryRecordById.getDname(),"InOrderNumber"); Double quantity = Double.parseDouble((String) map.get("quantity")); Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); - // 获取当前材料 Material material = materialMapper.findMaterialById(mid); + // 判断剩余容量是否可以存入 + if(depositoryRecordById.getMaxNumber() - Inventory param = new HashMap<>(); + param.put("depositoryId",depositoryId); + param.put("mname",material.getMname()); + List materialByCondition = materialMapper.findMaterialByCondition(param); // 计算当前入库材料金额 int amounts = (int) ((material.getPrice() / 100) * quantity * 100); map.put("price", amounts); String simpleTime = DateUtil.getSimpleTime(new Date()); map.put("applicant_time",DateUtil.DateTimeToTimeStamp(simpleTime)); - material.setAmounts(material.getAmounts() + amounts); - material.setQuantity((int) (material.getQuantity() + quantity)); - materialMapper.updateMaterial(material); + map.put("code",code); + // 获取当前材料 + if(materialByCondition.size() > 0){ // 如果当前存在 + material.setAmounts(material.getAmounts() + amounts); + material.setQuantity((int) (material.getQuantity() + quantity)); + materialMapper.updateMaterial(material); + }else{ + Map insert = new HashMap<>(); + Material materialById = materialMapper.findMaterialById(mid); + insert.put("depositoryId",depositoryId); + insert.put("price",materialById.getPrice()); + insert.put("mname",materialById.getMname()); + insert.put("quantity",quantity); + insert.put("materialTypeId",materialById.getTypeId()); + insert.put("code",materialById.getCode()); + insert.put("unit",materialById.getUnit()); + insert.put("version",materialById.getVersion()); + insert.put("texture",materialById.getTexture()); + insert.put("amounts",quantity * materialById.getPrice()); + insert.put("depositoryCode",materialById.getDepositoryCode()); + materialMapper.insertMaterial(insert); + } return depositoryRecordMapper.insertApplicationInRecord(map); } - /** * 插入一条出库记录 * @param map @@ -103,6 +141,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("depositoryId",materialById.getDepositoryId()); map.put("state","待部门负责人审核"); map.put("istransfer",2); + Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(materialById.getDepositoryId()); + String code = createCode(depositoryRecordById.getDname(),"outOrderNumber"); + map.put("code",code); return depositoryRecordMapper.insertApplicationOutRecord(map); } @@ -179,6 +220,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { transferRecordMapper.addTransferRecord(map); TransferRecord transferRecordByCondition = transferRecordMapper.findTransferRecordByCondition(map).get(0); map.put("transferId",transferRecordByCondition.getId()); + Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(material.getDepositoryId()); + map.put("code",createCode(depositoryRecordById.getDname(),"outOrderNumber")); //清除主键 return depositoryRecordMapper.insertApplicationOutRecord(map); } @@ -200,16 +243,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Integer departmentheadPass = (Integer) map.get("departmentheadPass"); if (departmentheadPass == 1) { map.put("state", "待仓库管理员审核"); + String depositoryManager = ""; + List userIdByDidList = roleService.findUserIdByDid(record.getDepositoryId()); + for (int i = 0; i < userIdByDidList.size(); i++) { + UserByPort userByPort = PageController.FindUserById(userIdByDidList.get(i)); + depositoryManager += userByPort.getId().toString() + ","; + } + map.put("depositoryManager",depositoryManager); } else { map.put("state", "部门负责人审核未通过"); } - String depositoryManager = ""; - List userIdByDidList = roleService.findUserIdByDid(record.getDepositoryId()); - for (int i = 0; i < userIdByDidList.size(); i++) { - UserByPort userByPort = PageController.FindUserById(userIdByDidList.get(i)); - depositoryManager += userByPort.getId().toString() + ","; - } - map.put("depositoryManager",depositoryManager); } else { String simpleTime = DateUtil.getSimpleTime(new Date()); @@ -233,7 +276,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { transferMaterial(map); } } else { - throw new MyException("库存不足于该出库请求"); + map.put("state","未出库"); + map.put("depositoryManagerMessage","当前仓位库存量不足"); + depositoryRecordMapper.updateApplicationOutRecord(map); + return -1; } map.put("state", "已出库"); } else { @@ -570,17 +616,19 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Double sum = 0.0; if (state.isEmpty()) { for (int i = 0; i < depositoryRecordAll.size(); i++) { - if (depositoryRecordAll.get(i).getType() == type) { + if (Integer.compare(depositoryRecordAll.get(i).getType(),type) == 0) { sum += depositoryRecordAll.get(i).getQuantity(); } } } else { for (int i = 0; i < depositoryRecordAll.size(); i++) { - if (depositoryRecordAll.get(i).getType() == type && state.equals(depositoryRecordAll.get(i).getState())) { + if (Integer.compare(depositoryRecordAll.get(i).getType(),type) == 0 && state.equals(depositoryRecordAll.get(i).getState())) { sum += depositoryRecordAll.get(i).getQuantity(); } } } + BigDecimal bg = new BigDecimal(sum); + sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return sum; } @@ -596,17 +644,19 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Double sum = 0.0; if (state.isEmpty()) { for (int i = 0; i < depositoryRecordAll.size(); i++) { - if (depositoryRecordAll.get(i).getType() == type) { + if (Integer.compare(depositoryRecordAll.get(i).getType(),type) == 0) { sum += (depositoryRecordAll.get(i).getPrice() / 100); } } } else { for (int i = 0; i < depositoryRecordAll.size(); i++) { - if (depositoryRecordAll.get(i).getType() == type && state.equals(depositoryRecordAll.get(i).getState())) { + if (Integer.compare(depositoryRecordAll.get(i).getType(),type) == 0 && state.equals(depositoryRecordAll.get(i).getState())) { sum += (depositoryRecordAll.get(i).getPrice() / 100); } } } + BigDecimal bg = new BigDecimal(sum); + sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return sum; } @@ -619,9 +669,11 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List applicationInRecordPAll = depositoryRecordMapper.findApplicationInRecordPAll(); Double sum = 0.0; for (int i = 0; i < applicationInRecordPAll.size(); i++) { - int price = applicationInRecordPAll.get(i).getPrice(); - sum += (double) price/100; + double price = applicationInRecordPAll.get(i).getPrice(); + sum += price/100; } + BigDecimal bg = new BigDecimal(sum); + sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return sum; } @@ -636,18 +688,20 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Double sum = 0.0; if (state.isEmpty()) { for (int i = 0; i < applicationOutRecordPAll.size(); i++) { - Integer price = applicationOutRecordPAll.get(i).getPrice(); + Double price = applicationOutRecordPAll.get(i).getPrice(); sum += (double)( price/ 100); } } else { for (int i = 0; i < applicationOutRecordPAll.size(); i++) { if ( state.equals(applicationOutRecordPAll.get(i).getState())) { - Integer price = applicationOutRecordPAll.get(i).getPrice(); + Double price = applicationOutRecordPAll.get(i).getPrice(); sum += (double)( price/ 100); } } } + BigDecimal bg = new BigDecimal(sum); + sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return sum; } @@ -869,8 +923,14 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { return d; } + /** + * 根据id获取对应用户 + * @param id + * @return + */ private UserByPort findUserByPortById(Integer id) { String url = "http://172.20.2.87:39168/staff/archivescont"; +// String url = "http://127.0.0.1:39168/staff/archivescont"; Map map = new HashMap<>(); map.put("id", id); String jsonString = JSONObject.toJSONString(map); @@ -887,4 +947,27 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { return userByPort; } + /** + * 生成单号 + * @param depositoryName + * @return + */ + private String createCode(String depositoryName,String key){ +// 单号(公司简称+仓库简称+年月日+数字(位数设置>=9)) + String code = "GK"; + String nowTime = DateUtil.getNowTime(); + depositoryName = WordUtil.getPinYinHeadChar(depositoryName); + String orderNumber = redisTemplate.opsForValue().get(key); + if(orderNumber == null){ + redisTemplate.opsForValue().set(key,"1",DateUtil.getSecondsNextEarlyMorning(), TimeUnit.SECONDS); + orderNumber = "1"; + } + int newNumber = ObjectFormatUtil.toInteger(orderNumber) + 1; + redisTemplate.boundValueOps(key).set(String.valueOf(newNumber),DateUtil.getSecondsNextEarlyMorning(), TimeUnit.SECONDS); + orderNumber = String.format("%09d", ObjectFormatUtil.toInteger(orderNumber)); + code = code + depositoryName + nowTime + orderNumber; + return code; + } + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java index fcfd4907..701b413e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java @@ -1,9 +1,16 @@ package com.dreamchaser.depository_manage.service.impl; +import cn.hutool.db.Page; +import com.dreamchaser.depository_manage.controller.PageController; +import com.dreamchaser.depository_manage.entity.Administration; import com.dreamchaser.depository_manage.entity.Depository; import com.dreamchaser.depository_manage.entity.MaterialType; import com.dreamchaser.depository_manage.mapper.DepositoryMapper; +import com.dreamchaser.depository_manage.mapper.RoleMapper; +import com.dreamchaser.depository_manage.pojo.RoleAndDepository; import com.dreamchaser.depository_manage.service.DepositoryService; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import com.dreamchaser.depository_manage.utils.WordUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,6 +24,9 @@ public class DepositoryServiceImpl implements DepositoryService { @Autowired DepositoryMapper depositoryMapper; + @Autowired + RoleMapper roleMapper; + /** * 根据条件插入数据 * @param map 参数map @@ -24,9 +34,74 @@ public class DepositoryServiceImpl implements DepositoryService { */ @Override public Integer insertDepository(Map map) { - if("".equals(map.get("parentId"))){ + // 获取当前仓库拼音首字母 + String dname = (String) map.get("dname"); + String dnamePinYin = WordUtil.getPinYinHeadChar(dname); + String code = ""; + if("".equals(map.get("depositoryId"))){ // 如果是顶级仓库 map.put("parentId",0); + Map temp = new HashMap<>(); + temp.put("dname",dname); + temp.put("parentId",0); + // 当前名称是否有重复 + List condition = depositoryMapper.findDepositoryRecordPByCondition(temp); + // 公司编号 + Integer cid = ObjectFormatUtil.toInteger(map.get("cid")); + String companyName = PageController.getCompany(cid).getName(); + String adminorgName = ""; + // 部门编号 + if(!"".equals(map.get("adminorg"))){ + Integer adminorg = ObjectFormatUtil.toInteger(map.get("adminorg")); + adminorgName = PageController.getCompany(adminorg).getName(); + } + // 公司简称 + companyName = WordUtil.getPinYinHeadChar(companyName); + // 部门简称 + adminorgName = WordUtil.getPinYinHeadChar(adminorgName); + if(condition.size() > 0){ + // 设置编码 + if(adminorgName.isEmpty()){ + code = "GK" + dnamePinYin +"-"+ String.format("%02d", condition.size() + 1); + }else { + code = "GK" + adminorgName.substring(0, 2) + dnamePinYin + "-" + String.format("%02d", condition.size() + 1); + } + }else{ + // 设置编码 + if(adminorgName.isEmpty()){ + code = "GK" + dnamePinYin + "-01"; + }else { + code = "GK" + adminorgName.substring(0,2) + dnamePinYin+"-01"; + } + } + }else { + map.put("parentId",map.get("depositoryId")); + map.remove("depositoryId"); + // 获取当前仓库父仓库 + Integer parentId = ObjectFormatUtil.toInteger(map.get("parentId")); + Depository depositoryId = depositoryMapper.findDepositoryRecordById(parentId); + // 获取当前选择部门 + String adminorgName = ""; + // 部门编号 + if(!"".equals(map.get("adminorg"))){ + Integer adminorg = ObjectFormatUtil.toInteger(map.get("adminorg")); + adminorgName = PageController.getCompany(adminorg).getName(); + adminorgName = WordUtil.getPinYinHeadChar(adminorgName).substring(0,2); + } + // 获取父仓库编码 + String parentCode = depositoryId.getCode(); + if(!parentCode.contains(adminorgName)){ + StringBuffer sb = new StringBuffer(parentCode); + sb.insert(2,adminorgName); + parentCode = sb.toString(); + } + // 获取当前仓库简称 + Map param = new HashMap<>(); + param.put("parentId",parentId); + // 获取父仓库所有子仓库 + Integer sonDepositoryNum = depositoryMapper.findCountByCondition(param); + code = parentCode +String.format("%02d",sonDepositoryNum + 1); } + map.put("code",code); return depositoryMapper.insertDepository(map); } @@ -37,7 +112,15 @@ public class DepositoryServiceImpl implements DepositoryService { */ @Override public List findDepositoryRecordPByCondition(Map map) { - return depositoryMapper.findDepositoryRecordPByCondition(map); + List list = depositoryMapper.findDepositoryRecordPByCondition(map); + for (int i = 0; i < list.size(); i++) { + Depository depository = list.get(i); + if(!depository.getAdminorg().isEmpty()){ + Administration company = PageController.getCompany(ObjectFormatUtil.toInteger(depository.getAdminorg())); + depository.setAdminorgName(company.getName()); + } + } + return list; } /** @@ -57,6 +140,13 @@ public class DepositoryServiceImpl implements DepositoryService { */ @Override public Integer deleteDepositoryRecordById(Integer id) { + // 删除权限记录 + Map map = new HashMap<>(); + map.put("depositoryId",id); + List roleAndDepositoryByDid = roleMapper.findRoleAndDepositoryByCondition(map); + for (int j = 0; j < roleAndDepositoryByDid.size(); j++) { + roleMapper.deleteRoleAndDepositoryById(roleAndDepositoryByDid.get(j).getId()); + } return depositoryMapper.deleteDepositoryRecordById(id); } @@ -143,7 +233,9 @@ public class DepositoryServiceImpl implements DepositoryService { List depositoryAll = depositoryMapper.findDepositoryAll(); Map map = new HashMap<>(); for (int i = 0; i < depositoryAll.size(); i++) { - map.put(depositoryAll.get(i).getDname(),depositoryAll.get(i).getId()); + if(depositoryAll.get(i).getParentId() != 0) { + map.put(depositoryAll.get(i).getDname() + "," + depositoryAll.get(i).getCode(), depositoryAll.get(i).getId()); + } } return map; } @@ -155,7 +247,14 @@ public class DepositoryServiceImpl implements DepositoryService { */ @Override public Double getToDayInventoryByDName(String dname) { - return depositoryMapper.getToDayInventoryByDName(dname); + String[] split = dname.split(","); + Map map = new HashMap<>(); + if(split.length > 1){ + map.put("dcode",split[1]); + }else { + map.put("dname", split[0]); + } + return depositoryMapper.getToDayInventoryByDName(map); } @@ -194,13 +293,45 @@ public class DepositoryServiceImpl implements DepositoryService { List list = new ArrayList<>(); for (int i = 0; i < depositories.size(); i++) { Depository d = depositories.get(i); - List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId()); + List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(),""); Map stringObjectMap = InitTreeMenus2(d,childForMaterialTypeByParent); list.add(stringObjectMap); } return list; } + /** + * 根据部门构造树形选择框 + * @param adminorg + * @return + */ + @Override + public List InitTreeMenus(String adminorg) { + Map param = new HashMap<>(); + param.put("parentId",0); + param.put("adminorg",adminorg); + List depositories = depositoryMapper.findDepositoryRecordPByCondition(param); + List list = new ArrayList<>(); + for (int i = 0; i < depositories.size(); i++) { + Depository d = depositories.get(i); + List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(),adminorg); + Map stringObjectMap = InitTreeMenus2(d,childForMaterialTypeByParent); + list.add(stringObjectMap); + } + return list; + } + + /** + * 获取当前部门以及公共仓库 + * @param adminorg + * @return + */ + @Override + public List findDepositoryByAdminorg(String adminorg) { + List depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(adminorg); + return depositoryByAdminorg; + } + //判断是否有子类 public boolean isChildForDepository(Integer parentId){ boolean flag = false; @@ -211,16 +342,20 @@ public class DepositoryServiceImpl implements DepositoryService { return flag; } // 根据id获取子类 - public List findChildForDepositoryByParent(Integer id){ + public List findChildForDepositoryByParent(Integer id,String adminorg){ Map param = new HashMap<>(); List result = new ArrayList<>(); param.put("parentId",id); + if(!"".equals(adminorg)){ + param.put("adminorg",adminorg); + } // 获取当前父类的子类 - List parentByDepository = depositoryMapper.getParentByDepository(id); +// List parentByDepository = depositoryMapper.getParentByDepository(id); + List parentByDepository = depositoryMapper.findDepositoryRecordPByCondition(param); if(parentByDepository.size() > 0){ for (int i = 0; i < parentByDepository.size(); i++) { Depository d = parentByDepository.get(i); - List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId()); + List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(),adminorg); result.add(InitTreeMenus2(d,childForMaterialTypeByParent)); } return result; diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java index 0dd0e1a0..4542bba1 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java @@ -53,8 +53,8 @@ public class ExcelServiceImpl implements ExcelService { List excelVos = (List) readResult.get("dataList"); List errMsg =(List) readResult.get("errMsg"); - - if (CollectionUtil.isEmpty(excelVos) || excelVos.size() < 2) { + boolean empty = CollectionUtil.isEmpty(excelVos); + if ((CollectionUtil.isEmpty(excelVos) && errMsg.size() < 1) || (excelVos.size() < 2 && errMsg.size() < 1) ) { log.error("【导入Excel文件】上传Excel文件{}为空", file.getOriginalFilename()); return ResultVoUtil.error("上传Excel文件为空"); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java index 5b540f60..0bc60cf1 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -45,15 +46,6 @@ public class MaterialServiceImpl implements MaterialService { public Integer insertMaterial(Map map) { int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString())); int price = (int) (Double.parseDouble( map.get("price").toString()) * 100); - String tname = (String) map.get("tname"); - String dname = (String) map.get("dname"); - Map param = new HashMap<>(); - param.put("tname",tname); - param.put("dname",dname); - List d = depositoryMapper.findDepositoryRecordPByCondition(param); - List mt = materialTypeMapper.findMaterialTypeByCondition(param); - map.put("materialTypeId",mt.get(0).getId()); - map.put("depositoryId",d.get(0).getId()); map.put("price",price); map.put("amounts",quantity * price); return materialMapper.insertMaterial(map); @@ -83,6 +75,8 @@ public class MaterialServiceImpl implements MaterialService { map.put("amounts",price * quantity); map.put("price",price); } + Object materialTypeId = map.get("materialTypeId"); + map.put("typeId",materialTypeId); return materialMapper.updateMaterial(map); } @@ -116,6 +110,10 @@ public class MaterialServiceImpl implements MaterialService { for (int i = 0; i < list.size(); i++) { list.get(i).setPrice(list.get(i).getPrice() / 100); list.get(i).setAmounts(list.get(i).getAmounts() / 100); + // 获取当前材料所处仓库 + Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(list.get(i).getDepositoryId()); + String code = depositoryRecordById.getCode() + "-" +list.get(i).getDepositoryCode(); + list.get(i).setDepositoryCode(code); } return pack(list); } @@ -223,6 +221,8 @@ public class MaterialServiceImpl implements MaterialService { for (int i = 0; i < materialAll.size(); i++) { sum += materialAll.get(i).getAmounts() / 100; } + BigDecimal bg = new BigDecimal(sum); + sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return sum; } @@ -256,6 +256,7 @@ public class MaterialServiceImpl implements MaterialService { private UserByPort findUserByPortById(Integer id) { String url = "http://172.20.2.87:39168/staff/archivescont"; +// String url = "http://127.0.0.1:39168/staff/archivescont"; Map map = new HashMap<>(); map.put("id", id); String jsonString = JSONObject.toJSONString(map); @@ -271,4 +272,149 @@ public class MaterialServiceImpl implements MaterialService { UserByPort userByPort = JSONObject.toJavaObject( data, UserByPort.class); return userByPort; } + + + /** + * 根据仓库查询物品 + * @param dids + * @return + */ + @Override + public List findMaterialByDepositorys(List dids) { + return materialMapper.findMaterialByDepositorys(dids); + } + + /** + * 构造树形选择框 + * @return + */ + public List InitTreeMenus(String mname,String adminorg) { + List materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); + List list = new ArrayList<>(); + for (int i = 0; i < materialTypeNoParent.size(); i++) { + MaterialType mt = materialTypeNoParent.get(i); + List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,adminorg); + Map stringObjectMap = InitTreeMenus(mt,childForMaterialTypeByParent); + list.add(stringObjectMap); + } + return list; + } + + /** + * 构造树形选择框 + * @return + */ + public List InitTreeMenus(String mname){ + List materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); + List list = new ArrayList<>(); + for (int i = 0; i < materialTypeNoParent.size(); i++) { + MaterialType mt = materialTypeNoParent.get(i); + List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,""); + Map stringObjectMap = InitTreeMenus(mt,childForMaterialTypeByParent); + list.add(stringObjectMap); + } + return list; + } + + // 构造树形组件数据模板 + public Map InitTreeMenus(MaterialType mt,List children){ + if(mt != null) { + Map map = new HashMap<>(); + map.put("title", mt.getTname()); + map.put("id", mt.getId()); + map.put("children",children); + return map; + } + else{ + return null; + } + } + + // 在类别后添加材料名称 + public List AddMaterialByType(MaterialType mt,String mname,String adminorg){ + if(mt != null) { + Map param = new HashMap<>(); + param.put("materialTypeId", mt.getId()); + List depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(adminorg); + List dids = new ArrayList<>(); + for (Depository depository : depositoryByAdminorg) { + dids.add(depository.getId()); + } + List materialPByCondition = new ArrayList<>(); + List materialByDepositorys = materialMapper.findMaterialByDepositorys(dids); + for (int i = 0; i < materialByDepositorys.size(); i++) { + if (Integer.compare(materialByDepositorys.get(i).getTypeId(), mt.getId()) == 0){ + materialPByCondition.add(materialByDepositorys.get(i)); + } + } + List result = new ArrayList<>(); + if("".equals(mname)) { + for (Material material : materialPByCondition) { + Map map = new HashMap<>(); + String version = material.getVersion(); + if(version == null){ + version = ""; + } + map.put("title", material.getMname() + " 规格型号: "+version); + map.put("id", material.getId()); + result.add(map); + } + }else{ + for (Material material : materialPByCondition) { + Map map = new HashMap<>(); + if(material.getMname().contains(mname)) { + String version = material.getVersion(); + if(version == null){ + version = ""; + } + map.put("title", material.getMname() + " 规格型号: "+version); + map.put("id", material.getId()); + result.add(map); + } + } + } + return result; + } + else { + return null; + } + } + + // 判断是否有子类 + public boolean isChildForMaterialType(Integer id){ + boolean flag = false; + Map param = new HashMap<>(); + param.put("parentId",id); + Integer count = materialTypeMapper.findMaterialTypeCountByCondition(param); + if(count > 0){ + flag = true; + } + return flag; + } + + // 根据id获取子类 + public List findChildForMaterialTypeByParent(Integer id,String mname,String adminorg){ + Map param = new HashMap<>(); + List result = new ArrayList<>(); + Map children = new HashMap<>(); + param.put("parentId",id); + // 获取当前父类的子类 + List materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param); + if(materialTypeByCondition.size() > 0){ + for (MaterialType mt : materialTypeByCondition) { + List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId(),mname,adminorg); + Map stringObjectMap = null; + if(childForMaterialTypeByParent == null) { + List list = AddMaterialByType(mt,mname,adminorg); + stringObjectMap = InitTreeMenus(mt, list); + }else{ + stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent); + } + result.add(stringObjectMap); + } + return result; + }else{ + return null; + } + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java index 70450771..35afe6b5 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java @@ -26,8 +26,11 @@ public class MaterialTypeServiceImpl implements MaterialTypeService { */ @Override public Integer insertMaterialType(Map map) { - if("".equals(map.get("parentId"))){ + if("".equals(map.get("materialTypeId"))){ map.put("parentId",0); + }else{ + map.put("parentId",map.get("materialTypeId")); + map.remove("materialTypeId"); } return materialTypeMapper.insertMaterialType(map); } @@ -98,6 +101,12 @@ public class MaterialTypeServiceImpl implements MaterialTypeService { */ @Override public Integer updateMaterialType(Map map) { + if(map.containsKey("parentId")) { + String parentId = (String) map.get("parentId"); + if (parentId.isEmpty()) { + map.put("parentId", 0); + } + } return materialTypeMapper.updateMaterialType(map); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java index 540774c4..46c0db4d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/RedisServiceImpl.java @@ -1,11 +1,220 @@ package com.dreamchaser.depository_manage.service.impl; +import com.alibaba.excel.util.StringUtils; import com.dreamchaser.depository_manage.service.RedisService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import java.util.Collection; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * 操作redis + * @author shy + * @date 2020/12/10 10:01 + */ @Service public class RedisServiceImpl implements RedisService { + @Autowired + private StringRedisTemplate stringRedisTemplate; + + @Autowired + private RedisTemplate redisTemplate; + + /** + * 判断String类型key是否存在 + * + * @param key + * @return + * @author shy + * @date 2018年11月13日 下午1:40:37 + */ + public boolean hasStringKey(String key) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + return stringRedisTemplate.opsForValue().getOperations().hasKey(key); + } + + /** + * 判断String类型key是否存在 + * + * @param key + * @return + * @author shy + * @date 2018年11月13日 下午1:43:51 + */ + public boolean nonStringKey(String key) { + return !hasStringKey(key); + } + + /** + * 设置String类型key,String类型value,过期时间timeout,TimeUnit + * + * @param key + * @param value + * @param timeout + * @param timeUnit + * @author shy + * @date 2018年12月10日13:53:38 + */ + public void setStringKey(String key, String value, Long timeout, TimeUnit timeUnit) { + if (StringUtils.isBlank(key) || Objects.isNull(timeout)) { + throw new RuntimeException(); + } + stringRedisTemplate.opsForValue().set(key, value, timeout, timeUnit); + } + + public void setStringKey(String key, String value) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + stringRedisTemplate.opsForValue().set(key, value); + } + + /** + * 获取String类型value + * + * @param key + * @return + * @author shy + * @date 2018年11月12日 下午7:09:31 + */ + public String getStringValue(String key) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + return stringRedisTemplate.opsForValue().get(key); + } + + /** + * 获取Key的过期时间 + * + * @param key + * @return + * @author shy + * @date 2019年4月25日17:28:36 + */ + public Long getExpire(String key) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + return stringRedisTemplate.getExpire(key); + } + + /** + * 设置Key的过期时间 + * + * @param key + * @return + * @author shy + * @date 2019年4月25日17:28:36 + */ + public Boolean setExpire(String key,Long timeout, TimeUnit timeUnit) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + return stringRedisTemplate.expire(key, timeout, timeUnit); + } + + + /** + * value自增+n + * @param key + * @return + * @author shy + * @date 2019年4月8日15:54:30 + */ + public Long setIncrementValue(String key) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + return stringRedisTemplate.opsForValue().increment(key, 1L); + } + + /** + * 设置String类型key,Object类型value,过期时间timeout + * + * @param key + * @param value + * @param timeout + * @author shy + * @date 2018年12月10日13:54:07 + */ + public void setObjectKey(String key, String value, Long timeout,TimeUnit time) { + if (StringUtils.isBlank(key) || Objects.isNull(timeout)) { + throw new RuntimeException(); + } + redisTemplate.opsForValue().set(key, value, timeout, time); + } + + public void setObjectKey(String key, String value) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + redisTemplate.opsForValue().set(key, value); + } + + /** + * 获取Object类型value + * + * @param key + * @param clazz + * @return + * @author shy + * @date 2019年11月6日10:01:30 + */ + @SuppressWarnings("unchecked") + public T getObjectValue(String key, Class clazz) { + if (StringUtils.isBlank(key)) { + return null; + } + return (T) redisTemplate.opsForValue().get(key); + } + + /** + * 移除单个String类型key + * + * @param key + * @author shy + * @date 2018年11月13日 上午10:42:01 + */ + public void removeSingleStringKey(String key) { + if (StringUtils.isBlank(key)) { + throw new RuntimeException(); + } + stringRedisTemplate.opsForValue().getOperations().delete(key); + } + + /** + * 移除Collection类型keys + * + * @param keys + * @author shy + * @date 2018年11月13日 下午3:15:16 + */ + public void removeMultiStringKey(Collection keys) { + if (CollectionUtils.isNotEmpty(keys)) { + stringRedisTemplate.opsForValue().getOperations().delete(keys); + } + } + + /** + * redis key 模糊查询 + * @author shy + * @date 2021年1月4日 上午11:21:45 + * @param key + * @return + */ + public Set queryStringKeys(String key) { + return redisTemplate.keys(key + "*"); + } } + diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java index 0a52a4e6..f369f8ed 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java @@ -8,6 +8,7 @@ import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -33,6 +34,7 @@ public class RoleServiceImpl implements RoleService { */ @Override public Integer addUserOrPostRoleAndDepository(Map map){ + map.put("authority",0); return roleMapper.addUserOrPostRoleAndDepository(map); } /** @@ -41,7 +43,7 @@ public class RoleServiceImpl implements RoleService { * @return */ @Override - public RoleAndDepository findDepositoryAndRole(Integer userid) { + public List findDepositoryAndRole(Integer userid) { return roleMapper.findDepositoryAndRole(userid); } /** @@ -68,4 +70,55 @@ public class RoleServiceImpl implements RoleService { public List findUserIdByDid(Integer did) { return roleMapper.findUserIdByDid(did); } + + /** + * 根据条件获取权限 + * @param map + * @return + */ + @Override + public List findRoleAndDepositoryByCondition(Map map) { + return roleMapper.findRoleAndDepositoryByCondition(map); + } + + /** + * 根据id获取权限 + * @param id + * @return + */ + @Override + public RoleAndDepository findRoleAndDepositoryById(Integer id) { + return roleMapper.findRoleAndDepositoryById(id); + } + + /** + * 修改权限列表 + * @param map + * @return + */ + @Override + public Integer UpdateRoleAndDepositoryById(Map map) { + return roleMapper.UpdateRoleAndDepositoryById(map); + } + /** + * 根据id删除 + * @param id + * @return + */ + @Override + public Integer deleteRoleAndDepositoryById(Integer id) { + return roleMapper.deleteRoleAndDepositoryById(id); + } + + /** + * 根据仓库编号查询权限记录 + * @param did + * @return + */ + @Override + public List findRoleAndDepositoryByDid(Integer did) { + Map map = new HashMap<>(); + map.put("depositoryId",did); + return roleMapper.findRoleAndDepositoryByCondition(map); + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java index e3895f2e..c4e4593e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/CrudUtil.java @@ -19,6 +19,7 @@ public class CrudUtil { public static final RestResponse NOT_EXIST_USER_OR_ERROR_PWD_RESPONSE =new RestResponse("",402,new StatusInfo("登录失败,账号或者密码错误!","错误码402,账号或者密码错误")); public static final RestResponse USER_FROZEN_RESPONSE=new RestResponse("",406,new StatusInfo("账户已冻结,请稍后登录!","错误码406,账户已冻结,请稍后登录!")); public static final RestResponse CODE_ERROR=new RestResponse("",408,new StatusInfo("验证码错误!","错误码408,验证码错误请重新输入!")); + public static final RestResponse Insert_ERR=new RestResponse("",6666,new StatusInfo("添加失败,该数据已经存在请不要重复插入","请重新输入!")); public static final RestResponse SYSTEM_ERROR_RESPONSE =new RestResponse("",500,new StatusInfo("服务器系统错误!bug常有,请多多包含,请及时联系相关管理员,我们会尽快修复!","服务器错误!")); @@ -29,9 +30,12 @@ public class CrudUtil { * @return 处理后的RestResponse */ public static RestResponse postHandle(Integer result,Integer standard){ - if (result.equals(standard)){ + if (result.equals(standard) && result != -1){ return RESPONSE201; - }else{ + }else if(result == -1 && standard == -1){ + return Insert_ERR; + } + else{ return RESPONSE304; } } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java index 41a08e56..59588c4c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/DateUtil.java @@ -11,7 +11,6 @@ import java.util.Date; /** * 用于处理时间类型的工具类 - * @author 金昊霖 */ public class DateUtil { private static final SimpleDateFormat TIME_FORMAT =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -115,4 +114,20 @@ public class DateUtil { String dataStr = sdf.format(cal.getTime()); return dataStr + " 00:00:00"; } + + /** + * 判断当前时间距离第二天凌晨的秒数 + * + * @return 返回值单位为[s:秒] + */ + public static Long getSecondsNextEarlyMorning() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DAY_OF_YEAR, 1); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.MILLISECOND, 0); + return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000; + } + } diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 9d910a58..1e0cac29 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -55,17 +55,6 @@ spring: removeAbandoned: true removeAbandonedTimeout: 1800 logAbandoned: true - redis: - host: 127.0.0.1 - port: 6379 - lettuce: - shutdown-timeout: 1000 - pool: - max-active: 0 - max-wait: -1 - max-idle: 8 - min-idle: 0 - timeout: 500 banner: location: banner.txt thymeleaf: @@ -79,6 +68,18 @@ spring: prefix: /templates/ suffix: .html static-path-pattern: /static/** + redis: + port: 6379 + host: 127.0.0.1 + database: 0 + jedis: + pool: + max-active: 8 + max-wait: 50ms + max-idle: 8 + min-idle: 0 + timeout: 2000ms + # resources: # static-locations: classpath:/static/ server: diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index b8edffeb..ab4417a1 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -167,9 +167,22 @@ }); $('.login-out').on("click", function () { - layer.msg('退出登录成功', function () { - window.location = '/login'; + $.ajax({ + url:"/loginOut", + type: 'get', + dataType: 'json', + contentType: "application/json;charset=utf-8", + beforeSend: function () { + this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); + }, + success: function (data) { + layer.close(this.layerIndex); + layer.msg(data.statusInfo.message, function () { + window.location = '/login'; + }); + } }); + }); }); diff --git a/src/main/resources/templates/pages/application/application-in.html b/src/main/resources/templates/pages/application/application-in.html index 5396e056..be33f148 100644 --- a/src/main/resources/templates/pages/application/application-in.html +++ b/src/main/resources/templates/pages/application/application-in.html @@ -16,37 +16,51 @@
+ @@ -54,6 +66,18 @@ form = layui.form, table = layui.table; + $('#openSonByDepository').on('click', function(){ + layer.open({ + type: 2, + title: '弹窗内容', + skin: 'layui-layer-rim', + maxmin: true, + shadeClose: true, //点击遮罩关闭层 + area : ['800px' , '500px'], + content: '/selectDepository?type=2', + }); + }); + table.render({ elem: "#currentTableId", url: '/material/material', @@ -77,19 +101,24 @@ ,dataName: 'data' //规定数据列表的字段名称,默认:data }, toolbar: ['filter', 'exports', 'print'], - cols: [ [ + cols: [ + [ + {type: "checkbox", width: 50}, {field: 'id', width: '10%', title: '材料编号'}, {field: 'mname', width: '10%', title: '材料名称'}, {field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'code',width: 200,title: '存货编码',sort: true}, {field: 'typeName', width: '10%', title: '材料类型'}, {field: 'depositoryName', width: '12%', title: '仓库名称', sort: true}, + {field: 'depositoryCode', width: '12%', title: '仓库编号', sort: true}, {field: 'quantity', width: '10%', title: '数量', sort: true}, {field: 'price', title: '单价', width: '8%', sort: true}, {field: 'amounts', title: '总金额', minWidth: 150, sort: true}, {field: 'unit',width: '10%',title: '计量单位',sort: true}, {field: 'texture',width: '8%',title: '材质',sort: true}, - ]], + {title: '操作', minWidth: 250, toolbar: '#currentTableBar', align: "center"} + ] + ], limits: [10, 15, 20, 25, 50], limit: 10, page: true, @@ -99,6 +128,11 @@ } }); + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + // 监听搜索操作 form.on('submit(data-search-btn)', function (data) { var req={}; @@ -109,7 +143,9 @@ if (data.depositoryId!==''){ req.depositoryId=data.depositoryId; } - + if(data.code !==''){ + req.code =data.code; + } //执行搜索重载 table.reload('currentTableId', { url: '/material/material', @@ -120,6 +156,29 @@ }, 'data'); return false; }); + + table.on('tool(currentTableFilter)', function (obj) { + let data = obj.data; + if (obj.event === 'applicationIn') { + // 入库申请 + var index = layer.open({ + title: '入库申请', + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: true, + area: ['100%', '100%'], + content: '/application_in_back?mid='+data.id+"&depositoryId="+data.depositoryId + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + }else{ + // 出库申请 + console.log(data) + } + }); }); diff --git a/src/main/resources/templates/pages/material/material-add.html b/src/main/resources/templates/pages/material/material-add.html index 7d1b9cde..a14cfa87 100644 --- a/src/main/resources/templates/pages/material/material-add.html +++ b/src/main/resources/templates/pages/material/material-add.html @@ -48,8 +48,9 @@ --> - +
@@ -59,8 +60,10 @@ - + + +
@@ -148,7 +151,7 @@ maxmin: true, shadeClose: true, //点击遮罩关闭层 area : ['800px' , '500px'], - content: '/selectDepository', + content: '/selectDepository?type=2', }); }); @@ -171,9 +174,12 @@ } else { layer.msg("添加成功!", { icon: 6,//成功的表情 - time: 1000 //1秒关闭(如果不配置,默认是3秒) - }); - window.location="/material_add" + time: 1000 + }, //1秒关闭(如果不配置,默认是3秒) + function(){ + //do something + window.location="/material_add" + }); } }, complete: function () { diff --git a/src/main/resources/templates/pages/material/material-out.html b/src/main/resources/templates/pages/material/material-out.html index a195bed6..a33d7fc4 100644 --- a/src/main/resources/templates/pages/material/material-out.html +++ b/src/main/resources/templates/pages/material/material-out.html @@ -21,19 +21,23 @@
- +
- +
@@ -97,6 +101,30 @@ table = layui.table, upload = layui.upload; + $('#openSonByMateralType').on('click', function(){ + layer.open({ + type: 2, + title: '弹窗内容', + skin: 'layui-layer-rim', + maxmin: true, + shadeClose: true, //点击遮罩关闭层 + area : ['800px' , '500px'], + content: '/selectType', + }); + }); + + $('#openSonByDepository').on('click', function(){ + layer.open({ + type: 2, + title: '弹窗内容', + skin: 'layui-layer-rim', + maxmin: true, + shadeClose: true, //点击遮罩关闭层 + area : ['800px' , '500px'], + content: '/selectDepository?type=2', + }); + }); + table.render({ elem: "#currentTableId", url: '/material/material', @@ -126,14 +154,14 @@ defaultToolbar: ['filter', 'exports', 'print'], cols: [ [ {type: "checkbox", width: 50}, - {field: 'code',width: 150,title: '存货编码(用友U8)',sort: true}, - {field: 'id', width: 100, title: 'EAS编号', sort: false}, + {field: 'code',width: 150,title: '存货编码',sort: true}, + {field: 'id', width: 100, title: 'EAS编号', sort: false,hidden:true}, {field: 'mname', width: 120, title: '材料名称', sort: false}, {field: 'typeName',width: 150,title: '材料种类',sort: true}, {field: 'version',width: 200,title: '规格型号',sort: false}, {field: 'texture',width: 100,title: '材质',sort: true}, {field: 'unit',width: 150,title: '计量单位',sort: true}, - {field: 'depositoryCode',width: 150,title: '仓库编码',sort: true}, + {field: 'depositoryCode',width: 250,title: '仓库编码',sort: true}, {field: "depositoryName",width: 120,title: "仓库名称",sort: true}, {field: 'quantity',width: 120,title:'数量',sort: true}, {field: 'price',width: 150,title: '单价',sort: true}, @@ -145,10 +173,11 @@ limits: [10, 15, 20, 25, 50], limit: 10, page: true, - skin: 'line' - // done:function () { - // $("[data-field='id']").css('display','none'); - // } + skin: 'line', + done:function () { + $("[data-field='id']").css('display','none'); + + } }); // 监听搜索操作 diff --git a/src/main/resources/templates/pages/material/material-view.html b/src/main/resources/templates/pages/material/material-view.html index ca64937a..e39a5e3c 100644 --- a/src/main/resources/templates/pages/material/material-view.html +++ b/src/main/resources/templates/pages/material/material-view.html @@ -13,7 +13,7 @@ -
+