From d0ec8e18a4e78984e84656fe212d6d4b85276b14 Mon Sep 17 00:00:00 2001 From: erdanergou Date: Fri, 14 Oct 2022 15:24:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DepositoryRecordController.java | 15 +- .../controller/MaterialController.java | 244 +++++++++++------- .../controller/MaterialTypeController.java | 8 +- .../controller/PageController.java | 26 ++ .../mapper/MaterialMapper.java | 13 +- .../mapper/MaterialMapper.xml | 18 +- .../mapper/MaterialTypeMapper.xml | 4 + .../mapper/TransferRecordMapper.xml | 2 +- .../depository_manage/pojo/RestResponse.java | 4 + .../pojo/SimpleApplicationOutMinRecordP.java | 4 + .../service/MaterialService.java | 20 +- .../service/PlaceService.java | 7 + .../impl/DepositoryRecordServiceImpl.java | 28 +- .../service/impl/ExcelServiceImpl.java | 2 +- .../service/impl/MaterialServiceImpl.java | 101 +++++++- .../service/impl/MaterialTypeServiceImpl.java | 10 + .../service/impl/PlaceServiceImpl.java | 10 + .../utils/TaskCenterUtil.java | 5 +- .../pages/application/application-out.html | 4 +- .../application/application-out_min.html | 13 +- .../application/application-transfer.html | 13 +- .../application/form-step-look_back.html | 7 - .../pages/material/material-out.html | 52 ++-- .../material/selectDepositoryByCard.html | 2 +- .../pages/materialtype/materialType_view.html | 5 +- .../pages/scanQrCode/ScanQrCode.html | 2 +- .../pages/scanQrCode/scanQrCodeOut.html | 8 +- .../mapper/MaterialMapper.xml | 18 +- .../mapper/MaterialTypeMapper.xml | 4 + .../mapper/TransferRecordMapper.xml | 2 +- .../pages/application/application-out.html | 4 +- .../application/application-out_min.html | 13 +- .../application/application-transfer.html | 13 +- .../application/form-step-look_back.html | 7 - .../pages/material/material-out.html | 52 ++-- .../material/selectDepositoryByCard.html | 2 +- .../pages/materialtype/materialType_view.html | 5 +- .../pages/scanQrCode/ScanQrCode.html | 2 +- .../pages/scanQrCode/scanQrCodeOut.html | 8 +- 39 files changed, 548 insertions(+), 209 deletions(-) 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 88bfc1da..80fef45e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -175,6 +175,7 @@ public class DepositoryRecordController { } + // 入库申请 @PostMapping("/applicationIn") public RestResponse insertApplicationInRecord(@RequestBody Map map, HttpServletRequest request){ @@ -373,6 +374,7 @@ public class DepositoryRecordController { if(Integer.compare(applicationOutMinById.getDepositoryId(),depositoryId) == 0){ // 获取子订单对应主订单 ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(applicationOutMinById.getParentId()); + // 获取申请人 UserByPort userByPort = PageController.FindUserById(applicationOutRecordPById.getApplicantId()); // 创建展示对象 @@ -381,6 +383,15 @@ public class DepositoryRecordController { Material materialById = materialService.findMaterialById(applicationOutMinById.getMid()); // 获取当前出库库位 Place placeByDid = placeService.findPlaceById(applicationOutMinById.getPlaceId()); + // 获取当前子订单处理人编号 + Integer checkId = applicationOutMinById.getCheckId(); + if(checkId != null){ + // 如果该订单已经处理 + // 获取处理人 + UserByPort checker = PageController.FindUserById(checkId); + simpleApplicationOutMinRecordP.setCheckerName(checker.getName()); + } + simpleApplicationOutMinRecordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getApplicantTime()))); simpleApplicationOutMinRecordP.setApplyRemark(applicationOutRecordPById.getApplyRemark()); simpleApplicationOutMinRecordP.setDepositoryId(depositoryRecordById.getId()); @@ -638,7 +649,7 @@ public class DepositoryRecordController { String type = (String) map.get("type"); Integer success = 0; if("in".equals(type)){ - success += depositoryRecordService.applicationIn(map); + success += depositoryRecordService.applicationInPlace(map); }else if("out".equals(type)){ // 获取部门负责人 // UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); @@ -720,7 +731,7 @@ public class DepositoryRecordController { inRecord.put("quantity",quantity); inRecord.put("price",price); inRecord.put("applyRemark",applyRemark); - success += depositoryRecordService.applicationIn(inRecord); + success += depositoryRecordService.applicationInPlace(inRecord); } }else if("out".equals(type)){ Map mainRecord = new HashMap<>(); 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 913b491f..b7644318 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -41,109 +41,155 @@ public class MaterialController { PlaceService placeService; @Autowired - private RedisTemplate redisTemplate; + private RedisTemplate redisTemplate; /** * 根据物料进行查询 - * @param map + * + * @param map * @return */ @GetMapping("/material") - public RestResponse findMaterial(@RequestParam Map map){ + public RestResponse findMaterial(@RequestParam Map map) { List materialPByCondition = materialService.findMaterialPByCondition(map); - return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); + return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200); } /** * 查询库存 + * * @param map * @param request * @return */ @GetMapping("/findInventory") - public RestResponse findInventory(@RequestParam Map map,HttpServletRequest request){ - UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + public RestResponse findInventory(@RequestParam Map map, HttpServletRequest request) { + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + // 查询当前用户管理的仓库 List depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); + // 查询当前用户部门拥有的仓库 List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); + // 定义仓库编号列表 + List didList = new ArrayList<>(); + List list = new ArrayList<>(); Integer total = 0; - for (int i = 0; i < depositoryByAdminorg.size(); i++) { - map.put("depositoryId",depositoryByAdminorg.get(i).getId()); + Integer size = 10,page = 1; // 定义每页展示数量 + if(!(map.containsKey("depositoryId")||map.containsKey("code")||map.containsKey("mname"))){ + for (int i = 0; i < depositoryByAdminorg.size(); i++) { + Integer did = depositoryByAdminorg.get(i).getId(); + didList.add(did); + map.put("depositoryId", did); + List inventory = materialService.findInventory(map); + list.addAll(inventory); + total += materialService.findInventoryCount(map); + } + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + } + for (RoleAndDepository roleAndDepository : depositoryAndRole) { + Integer depositoryId = roleAndDepository.getDepositoryId(); + if(didList.contains(depositoryId)){ + // 如果当前仓库编号存在 + continue; // 跳过本次循环 + } + map.put("depositoryId", depositoryId); + if(list.size() < size){ + // 如果当前数目不足 + if (map.containsKey("page")){ + // 当前页 + page=ObjectFormatUtil.toInteger(map.get("page")); + } + // 计算所有页数 + Double pageAll = Math.ceil(total / size); + // 判断当前是在全新一页还是包含上述内容 + if(size - list.size() != size){ + // 如果当前不是崭新一页 + map.put("begin",0); + }else{ + map.put("begin",(page-1)*size-total); + } + map.put("size",size - list.size()); + List materialByDepository = materialService.findMaterialByDepository(map); + list.addAll(materialByDepository); + } + total += materialService.findMaterialByDepositoryCount(map); + } + } + else{ List inventory = materialService.findInventory(map); list.addAll(inventory); total += materialService.findInventoryCount(map); } - - for (RoleAndDepository roleAndDepository : depositoryAndRole) { - List materialByDepository = materialService.findMaterialByDepository(roleAndDepository.getDepositoryId()); - list.addAll(materialByDepository); - total += list.size(); - } - return new RestResponse(list,total,200); + return new RestResponse(list, total, 200); } /** * 添加一条物料记录 + * * @param map * @return */ @PostMapping("/material_add") - public RestResponse materialAdd(@RequestBody Map map){ + public RestResponse materialAdd(@RequestBody Map map) { return CrudUtil.postHandle(materialService.insertMaterial(map), 1); } /** * 执行删除操作,将状态改为删除 + * * @param map * @return */ @PostMapping("/material_del") - public RestResponse deletematerial(@RequestBody Map map){ - if (map.containsKey("id")){ - Integer id= ObjectFormatUtil.toInteger(map.get("id")); - return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id),1); - }else if (map.containsKey("ids")){ - List ids=(List) map.get("ids"); - return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids),ids.size()); - }else { + public RestResponse deletematerial(@RequestBody Map map) { + if (map.containsKey("id")) { + Integer id = ObjectFormatUtil.toInteger(map.get("id")); + return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id), 1); + } else if (map.containsKey("ids")) { + List ids = (List) map.get("ids"); + return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids), ids.size()); + } else { throw new MyException("所需请求参数缺失!"); } } /** * 修改物料信息 + * * @param map * @return */ @PostMapping("/material_edit") - public RestResponse updateDepository(@RequestBody Map map){ - if(map.containsKey("state")){ - map.put("state",1); - }else{ - map.put("state",2); + public RestResponse updateDepository(@RequestBody Map map) { + if (map.containsKey("state")) { + map.put("state", 1); + } else { + map.put("state", 2); } - return CrudUtil.postHandle(materialService.updateMaterial(map),1); + return CrudUtil.postHandle(materialService.updateMaterial(map), 1); } @PostMapping("realDeleteMaterial") - public RestResponse RealDeleteMaterial(@RequestBody Map map){ - if(map.containsKey("id")){ + public RestResponse RealDeleteMaterial(@RequestBody Map map) { + if (map.containsKey("id")) { Integer id = (Integer) map.get("id"); - return CrudUtil.deleteHandle(materialService.deleteMaterialById(id),1); - }else{ + return CrudUtil.deleteHandle(materialService.deleteMaterialById(id), 1); + } else { throw new MyException("所需请求参数缺失!"); } } + @PostMapping("/treeMenus") - public RestResponse InitTreeMenus(@RequestBody Map map, HttpServletRequest request){ + 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)){ + if ("1".equals(type)) { list = materialService.InitTreeMenus(mname); - }else{ + } else { list = materialService.InitTreeMenus(mname, String.valueOf(maindeparment)); } @@ -153,14 +199,15 @@ public class MaterialController { /** * 根据id获取物料 + * * @param mid * @return */ @GetMapping("/findMatrialById") - public RestResponse findMatrialById(@RequestParam(value = "mid",required = false) String mid,HttpServletRequest request){ - UserByPort userToken= (UserByPort) request.getAttribute("userToken"); - if("".equals(mid)){ - return new RestResponse("",0,200); + public RestResponse findMatrialById(@RequestParam(value = "mid", required = false) String mid, HttpServletRequest request) { + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); + if ("".equals(mid)) { + return new RestResponse("", 0, 200); } Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(mid)); List placePList = new ArrayList<>(); @@ -169,32 +216,33 @@ public class MaterialController { List placeByMidAndDid = placeService.findPlaceByMidAndDid(ObjectFormatUtil.toInteger(mid), depositoryByAdminorg.get(i).getId()); placePList.addAll(placeByMidAndDid); } - Map map = new HashMap<>(); - map.put("materialById",materialById); - map.put("placeList",placePList); - return new RestResponse(map,1,200); + Map map = new HashMap<>(); + map.put("materialById", materialById); + map.put("placeList", placePList); + return new RestResponse(map, 1, 200); } /** * 根据物料编码获取物料 + * * @param map * @param request * @return */ @GetMapping("/findMatrialByCode") - public RestResponse findMatrialByCode(@RequestParam Map map,HttpServletRequest request){ - UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + public RestResponse findMatrialByCode(@RequestParam Map map, HttpServletRequest request) { + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); // 获取当前部门仓库 List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); - Map param = new HashMap<>(); + Map param = new HashMap<>(); String code = map.get("code").toString(); String type = map.get("type").toString(); - if("".equals(code)){ - return new RestResponse(null,1,200); + if ("".equals(code)) { + return new RestResponse(null, 1, 200); } - param.put("code",code); + param.put("code", code); List materialPByCondition = new ArrayList<>(); - if("out".equals(type)) { + if ("out".equals(type)) { // 如果是出库 for (int i = 0; i < depositoryByAdminorg.size(); i++) { param.put("depositoryId", depositoryByAdminorg.get(i).getId()); @@ -204,20 +252,20 @@ public class MaterialController { break; } } - }else{ // 如果是入库 + } else { // 如果是入库 materialPByCondition = materialService.findMaterialPByCondition(param); } MaterialP mp = null; - if(materialPByCondition.size() > 0){ + if (materialPByCondition.size() > 0) { mp = materialPByCondition.get(0); } - return new RestResponse(mp,1,200); + return new RestResponse(mp, 1, 200); } @PostMapping("/findMaterialByCondition") - public RestResponse findMaterialByCondition(@RequestBody Map map){ + public RestResponse findMaterialByCondition(@RequestBody Map map) { List materialPByCondition = materialService.findMaterialPByCondition(map); - return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); + return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200); } @@ -226,82 +274,92 @@ public class MaterialController { public RestResponse createQrCode(@RequestParam("mid") Integer mid) { Material materialById = materialService.findMaterialById(mid); // 二维码保存信息 - Map code = new HashMap<>(); - code.put("mname",materialById.getMname()); - code.put("mcode",materialById.getCode()); - code.put("verison",materialById.getVersion()); - code.put("quantity",materialById.getQuantity()); + Map code = new HashMap<>(); + code.put("mname", materialById.getMname()); + code.put("mcode", materialById.getCode()); + code.put("verison", materialById.getVersion()); + code.put("quantity", materialById.getQuantity()); try { return RestResponse.CreateQrCode(code); } catch (IOException e) { - return new RestResponse("err: "+e.getMessage(),678,new StatusInfo("失败","请联系开发人员")); + return new RestResponse("err: " + e.getMessage(), 678, new StatusInfo("失败", "请联系开发人员")); } } - // 将数据暂存到redis中 + // 将扫描结果数据暂存到redis中 @PostMapping("/temporaryValue") - public RestResponse temporaryValue(@RequestBody Map map,HttpServletRequest request){ + public RestResponse temporaryValue(@RequestBody Map map, HttpServletRequest request) { UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); ArrayList arrayList = (ArrayList) map.get("materialList"); ArrayList materailList = new ArrayList(); for (int i = 0; i < arrayList.size(); i++) { - if(materailList.indexOf(arrayList.get(i)) == -1){ + if (materailList.indexOf(arrayList.get(i)) == -1) { materailList.add(arrayList.get(i)); } } - map.put("materialList",materailList); - redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); + map.put("materialList", materailList); + redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map)); return new RestResponse(); } + // 将入库物料数据暂存到redis中 + @PostMapping("/temporaryValueForMaterial") + public RestResponse temporaryValueForMaterial(@RequestBody Map map, HttpServletRequest request) { + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + // 存入mids + redisTemplate.opsForValue().set("temporaryValueForMaterial" + userByPort.getNumber(), JSONObject.toJSONString(map)); + return new RestResponse(200); + } + // 判断当前扫描的物料是否存在 @GetMapping("/IsMaterialExist") - public RestResponse IsMaterialExist(HttpServletRequest request){ + public RestResponse IsMaterialExist(HttpServletRequest request) { UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); - String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); - redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); + String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); + redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); JSONObject depository = (JSONObject) jsonObject.get("depository"); // 扫描的仓库 JSONObject place = (JSONObject) jsonObject.get("place"); // 扫描的库位 JSONArray materialList = (JSONArray) jsonObject.get("materialList"); // 扫描的物料集合 ArrayList newMaterialList = new ArrayList(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); for (int i = 0; i < materialList.size(); i++) { - JSONObject obj = (JSONObject) materialList.get(i);; - map.put("code",obj.get("code")); - if(depository != null){ - map.put("depositoryId",depository.get("did")); + JSONObject obj = (JSONObject) materialList.get(i); + ; + map.put("code", obj.get("code")); + if (depository != null) { + map.put("depositoryId", depository.get("did")); } - if(place != null){ - map.put("depositoryId",place.get("depositoryId")); + if (place != null) { + map.put("depositoryId", place.get("depositoryId")); } List inventory = materialService.findInventory(map); - if(inventory.size() > 0){ + if (inventory.size() > 0) { MaterialP materialP = inventory.get(0); - Map params = new HashMap<>(); + Map params = new HashMap<>(); // 有该物料 // 重新缓存到redis中 - params.put("mid",materialP.getId()); - params.put("mname",materialP.getMname()); - params.put("code",materialP.getCode()); - params.put("version",materialP.getVersion()); + params.put("mid", materialP.getId()); + params.put("mname", materialP.getMname()); + params.put("code", materialP.getCode()); + params.put("version", materialP.getVersion()); newMaterialList.add(params); - }else{ + } else { // 没有该物料 continue; } } - map.put("depository",depository); - map.put("place",place); - map.put("materialList",newMaterialList); - redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); + map.put("depository", depository); + map.put("place", place); + map.put("materialList", newMaterialList); + redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map)); return new RestResponse(); } //用于判断当前出库数量是否合适 @PostMapping("/MaterialQuantityIsTrue") - public RestResponse MaterialQuantityIsTrue(@RequestBody Map map,HttpServletRequest request){ + public RestResponse MaterialQuantityIsTrue(@RequestBody Map map, HttpServletRequest request) { UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); // 当前出库数量 Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); @@ -311,12 +369,12 @@ public class MaterialController { // 获取当前用户所在部门关闭的仓库及公共仓库 List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); for (int i = 0; i < depositoryByAdminorg.size(); i++) { - map.put("depositoryId",depositoryByAdminorg.get(i).getId()); + map.put("depositoryId", depositoryByAdminorg.get(i).getId()); List inventory = materialService.findInventory(map); - if(inventory.size() > 0){ // 如果有库存 + if (inventory.size() > 0) { // 如果有库存 for (int j = 0; j < inventory.size(); j++) { MaterialP materialP = inventory.get(j); - if(quantity <= materialP.getQuantity()){ // 如果当前数量合适则跳出循环 + if (quantity <= materialP.getQuantity()) { // 如果当前数量合适则跳出循环 flag = true; break; } 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 b88c329f..7bd51b59 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java @@ -50,13 +50,13 @@ public class MaterialTypeController { /** * 根据父级查询所有物料类型 - * @param parentId + * @param param * @return */ @GetMapping("/allMaterialTypeByParent") - public RestResponse findMaterialTypeByNoParent(@RequestParam(value = "parentId",required = false) String parentId){ - Map param = new HashMap<>(); - if (parentId == null) { + public RestResponse findMaterialTypeByNoParent(@RequestParam Map param){ + String parentId = (String) param.get("parentId"); + if ("".equals(parentId)) { parentId = "0"; } param.put("parentId",parentId); 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 35389885..09417faa 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -1554,6 +1554,32 @@ public class PageController { return mv; } + @GetMapping("/applicationInByMaterial") + public ModelAndView applicationInByMaterial(HttpServletRequest request){ + ModelAndView mv = new ModelAndView(); + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + String scanQrCodeValue = redisTemplate.opsForValue().get("temporaryValueForMaterial"+userByPort.getNumber()).toString(); + redisTemplate.delete("temporaryValueForMaterial"+userByPort.getNumber()); + JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); + JSONArray mids = (JSONArray) jsonObject.get("mids"); + List materialList = new ArrayList<>(); + for (int i = 0; i < mids.size(); i++) { + Map param = new HashMap<>(); + Integer o = ObjectFormatUtil.toInteger(mids.get(i)); + Material materialById = materialService.findMaterialById(o); + param.put("mid",materialById.getId()); + param.put("mname",materialById.getMname()); + param.put("code",materialById.getCode()); + param.put("version",materialById.getVersion()); + String context = JSONObject.toJSONString(param); + materialList.add(context); + } + + mv.addObject("materialList",materialList); + mv.setViewName("pages/application/application-in_scanQrCode"); + return mv; + } + // 获取扫描结果并跳转到出库 @GetMapping("/application_Out_scanQrCode") public ModelAndView applicationOutScanQrCode(HttpServletRequest request){ 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 7cb3a584..db381305 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java @@ -143,11 +143,20 @@ public interface MaterialMapper { */ List findMaterialByDepositorys(List ids); + + /** * 根据仓库查询物品 - * @param depositoryId + * @param map + * @return + */ + List findMaterialByDepository(Map map); + + /** + * 根据仓库查询物品数目 + * @param map * @return */ - List findMaterialByDepository(Integer depositoryId); + Integer findMaterialByDepositoryCount(Map map); } 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 4e4beaa5..cf078e80 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -90,7 +90,7 @@ AND m.type_id = #{typeId} - and state != 3 + and state != 3 and m.depository_id is null @@ -209,12 +209,26 @@ #{item} + + + - SELECT from material m where m.depository_id = #{depositoryId} + + LIMIT #{begin},#{size} + + + + + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml index fbf6e4d0..59bb6df4 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -65,7 +65,11 @@ and mt.parentId = #{parentId} + and mt.state != 3 and mt.state != 4 + + LIMIT #{begin},#{size} + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml index eb1e794d..f1610c01 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml @@ -73,7 +73,7 @@ FROM transfer_record tr WHERE tr.id = #{id} - + INSERT INTO transfer_record ( id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id ) VALUES ( diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java b/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java index 4abf5f60..69da0cbd 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java @@ -43,6 +43,10 @@ public class RestResponse implements Serializable { public RestResponse() { } + public RestResponse(int status){ + this.status = status; + } + public RestResponse(Object data) { this.data = data; } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutMinRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutMinRecordP.java index c34e3e21..bb8fa6f8 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutMinRecordP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/SimpleApplicationOutMinRecordP.java @@ -66,6 +66,10 @@ public class SimpleApplicationOutMinRecordP { * 子订单状态 */ private String state; + /** + * 处理人姓名 + */ + private String checkerName; public SimpleApplicationOutMinRecordP(ApplicationOutRecordMin applicationOutRecordMin) { this.id = applicationOutRecordMin.getId(); 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 6a075109..4137f94d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java @@ -159,8 +159,24 @@ public interface MaterialService { /** * 根据仓库查询物品 - * @param depositoryId + * @param map * @return */ - List findMaterialByDepository(Integer depositoryId); + List findMaterialByDepository(Map map); + + /** + * 根据仓库查询物品数目 + * @param map + * @return + */ + Integer findMaterialByDepositoryCount(Map map); + + + /** + * 增加一条库存记录 + * + * @param map 参数map + * @return 受影响的行数 + */ + Integer insertMaterialForImport(Map map); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java b/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java index 78f736b8..5fe0114e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java @@ -117,4 +117,11 @@ public interface PlaceService { * @return */ Integer findQuantityByMidAndPid(Integer mid,Integer pid); + + /** + * 修改当前库位存放物料 + * @param mp + * @return + */ + Integer updateMaterialAndPlace(MaterialAndPlace mp); } 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 dea4895b..ec527b19 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 @@ -541,6 +541,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("quantity", record.getQuantity().toString()); map.put("applicantId", record.getApplicantId()); map.put("transferId", record.getTransferId()); + map.put("recordId",record.getId()); // 出库订单编号 transferMaterial(map); } @@ -579,20 +580,29 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if ("".equals(toPlaceId) || "0".equals(toPlaceId)) { map.put("toPlaceId", 0); } - //清除主键 + // depositoryRecordMapper.insertApplicationInRecord(map); - transferRecordMapper.addTransferRecord(map); - TransferRecord transferRecordByCondition = transferRecordMapper.findTransferRecordByCondition(map).get(0); - map.put("transferId", transferRecordByCondition.getId()); + transferRecordMapper.addTransferRecord(map);// 插入转移记录 + Integer transferId = ObjectFormatUtil.toInteger(map.get("id")); + //清除主键 + map.remove("id"); + map.put("transferId", transferId); + // 获取当前转移物料仓库 Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(material.getDepositoryId()); Administration company = PageController.getCompany(userByPort.getMaindeparment()); + // 生成出库订单 map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber", "out", company.getName())); - String placeId = (String) map.get("placeId"); - if ("".equals(placeId)) { + String placeId = map.get("fromPlaceId").toString(); + if ("".equals(placeId) || "0".equals(placeId)) { map.put("placeId", 0); } - //清除主键 - return depositoryRecordMapper.insertApplicationOutRecord(map); + // 插入主表 + depositoryRecordMapper.insertApplicationOutRecord(map); + Object id = map.get("id"); + // 清除主键 + map.remove("id"); + map.put("parentId",id); + return depositoryRecordMapper.insertApplicationOutRecordMin(map); } /** @@ -712,8 +722,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("price", material.getPrice().toString()); map.put("depositoryId", transferRecor.getToId()); map.put("placeId", transferRecor.getToPlaceId()); + map.put("mid",mid); applicationInPlace(map); - map.put("mid", materiallist.get(0).getId()); } else { // 如果不在该仓库,插入一条新记录 Map insert = new HashMap<>(); 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 15f8f934..9a3c5a7c 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 @@ -312,7 +312,7 @@ public class ExcelServiceImpl implements ExcelService { } insert.put("depositoryId", depositoryId); insert.put("depositoryCode", excelVos.get(i).getDepositoryCode()); - materialService.insertMaterial(insert); + materialService.insertMaterialForImport(insert); // 将该物料同时放入默认库位中 Map param = new HashMap<>(); 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 77499935..91798046 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 @@ -377,19 +377,79 @@ public class MaterialServiceImpl implements MaterialService { } @Override - public List findMaterialByDepository(Integer depositoryId) { - List materialByDepository = materialMapper.findMaterialByDepository(depositoryId); + public List findMaterialByDepository(Map map) { + Integer size = 10,page=1; + if (map.containsKey("size")){ + size= ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + List materialByDepository = materialMapper.findMaterialByDepository(map); return pack(materialByDepository); } + @Override + public Integer findMaterialByDepositoryCount(Map map) { + return materialMapper.findMaterialByDepositoryCount(map); + } + + /** + * 增加一条库存记录 + * + * @param map 参数map + * @return 受影响的行数 + */ + @Override + public Integer insertMaterialForImport(Map map) { + if(map.containsKey("quantity") && map.containsKey("price")) { + int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString())); + int price = (int) (Double.parseDouble(map.get("price").toString()) * 100); + map.put("price",price); + map.put("amounts",quantity * price); + } + Map params = new HashMap<>(); + params.put("code",map.get("code")); + params.put("depositoryId",map.get("depositoryId")); + List inventory = materialMapper.findInventory(params); + if(inventory.size() >= 1){ + // 如果该物料存在 + Material material = inventory.get(0); + Double price = (Double.parseDouble(map.get("price").toString())) / 100; + int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString())); + // 获取当前入库金额 + Double amounts = (quantity * price * 100); + // 获取平均价格 + Double avgPrice = (material.getAmounts() + amounts) / (material.getQuantity() + quantity); + material.setPrice(avgPrice); + material.setAmounts(material.getAmounts() + amounts); + material.setQuantity(material.getQuantity() + quantity); + + // 获取当前物料在当前仓库的库位 + MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, material.getId()); + // 修改当前库位数目 + placeAndMaterialByMidAndPid.setQuantity(placeAndMaterialByMidAndPid.getQuantity() + quantity); + placeService.updateMaterialAndPlace(placeAndMaterialByMidAndPid); + + // 修改库位存放数量 + Place placeById = placeService.findPlaceById(0); + placeById.setQuantity(placeById.getQuantity() + quantity); + placeService.UpdatePlace(placeById); + + return materialMapper.updateMaterial(material); + }else { + return materialMapper.insertMaterial(map); + } + } + /** * 构造树形选择框 * @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 = new HashMap<>(); @@ -445,9 +505,11 @@ public class MaterialServiceImpl implements MaterialService { 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<>(); @@ -455,32 +517,42 @@ public class MaterialServiceImpl implements MaterialService { if("".equals(adminorg)){ materialByDepositorys = materialMapper.findMaterialByCondition(new HashMap()); }else{ + // 获取当前仓库下的所有物料库存 materialByDepositorys = materialMapper.findMaterialByDepositorys(dids); } for (int i = 0; i < materialByDepositorys.size(); i++) { + // 循环便利物料 if (Integer.compare(materialByDepositorys.get(i).getTypeId(), mt.getId()) == 0){ + // 如果该物料是当前类别下的物料 boolean flag = false; for (int j = 0; j < materialPByCondition.size(); j++) { + // 判断当前物料是否在最终结果中 if(materialByDepositorys.get(i).getCode().equals(materialPByCondition.get(j).getCode())){ - flag = true; - continue; + flag = true; // 设置标志位为true + break; // 跳出本循环 } } - if(flag){ + if(flag){ // 如果当前物料存在 continue; } materialPByCondition.add(materialByDepositorys.get(i)); } } List result = new ArrayList<>(); - if("".equals(mname)) { + 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); + + String title = material.getMname() + ",规格型号: "+version; + if(material.getDepositoryId() != null){ + // 如果当前是库存 + title += ",当前库存为:"+material.getQuantity(); + } + map.put("title", title); map.put("id", material.getId()); result.add(map); } @@ -492,7 +564,12 @@ public class MaterialServiceImpl implements MaterialService { if(version == null){ version = ""; } - map.put("title", material.getMname() + " 规格型号: "+version); + String title = material.getMname() + ",规格型号: "+version; + if(material.getDepositoryId() != null){ + // 如果当前是库存 + title += ",当前库存为:"+material.getQuantity(); + } + map.put("title", title); map.put("id", material.getId()); result.add(map); } @@ -517,7 +594,7 @@ public class MaterialServiceImpl implements MaterialService { return flag; } - // 根据id获取子类 + // 根据类别id获取子类 public List findChildForMaterialTypeByParent(Integer id,String mname,String adminorg){ Map param = new HashMap<>(); List result = new ArrayList<>(); @@ -526,11 +603,14 @@ public class MaterialServiceImpl implements MaterialService { // 获取当前父类的子类 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); + // 如果当前类别没有子类 + List list = AddMaterialByType(mt,mname,adminorg); // 添加当前类别下的物料 stringObjectMap = InitTreeMenus(mt, list); }else{ stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent); @@ -539,6 +619,7 @@ public class MaterialServiceImpl implements MaterialService { } 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 0c6f3987..dbcab274 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 @@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage.service.impl; import com.dreamchaser.depository_manage.entity.MaterialType; import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; import com.dreamchaser.depository_manage.service.MaterialTypeService; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,6 +53,15 @@ public class MaterialTypeServiceImpl implements MaterialTypeService { */ @Override public List findMaterialTypeByCondition(Map map) { + Integer size = 10,page=1; + if (map.containsKey("size")){ + size= ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")){ + page=ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin",(page-1)*size); + } return materialTypeMapper.findMaterialTypeByCondition(map); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java index 8fa1fe5d..15bf763f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java @@ -234,5 +234,15 @@ public class PlaceServiceImpl implements PlaceService { return placeMapper.findQuantityByMidAndPid(map); } + /** + * 修改当前库位存放物料 + * @param mp + * @return + */ + @Override + public Integer updateMaterialAndPlace(MaterialAndPlace mp) { + return placeMapper.updateMaterialAndPlace(mp); + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java index 6c6612c7..25e9a47c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/TaskCenterUtil.java @@ -1,10 +1,7 @@ package com.dreamchaser.depository_manage.utils; -import java.util.concurrent.Callable; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; // 线程池工具类 public class TaskCenterUtil { diff --git a/src/main/resources/templates/pages/application/application-out.html b/src/main/resources/templates/pages/application/application-out.html index a1a0a4fc..b6d10058 100644 --- a/src/main/resources/templates/pages/application/application-out.html +++ b/src/main/resources/templates/pages/application/application-out.html @@ -400,7 +400,7 @@ var id = obj.id.split("quantity")[1]; var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码 if(mcode === "" || mcode ===undefined || mcode === null){ - layer.msg("请输入物料的正确编码!",{icon:1,time:500},function () { + layer.msg("请输入物料的正确编码!",{icon:0,time:500},function () { $("#quantity"+id).val("") }); }else{ @@ -416,7 +416,7 @@ success:function (res) { var flag = res.data; if(!flag){ // 如果当前数目不合适 - layer.msg("当前物料数量不足",{icon:1,time:500},function () { + layer.msg("当前物料数量不足",{icon:0,time:500},function () { $("#quantity"+id).val(""); // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode; diff --git a/src/main/resources/templates/pages/application/application-out_min.html b/src/main/resources/templates/pages/application/application-out_min.html index fa1152f2..08052e24 100644 --- a/src/main/resources/templates/pages/application/application-out_min.html +++ b/src/main/resources/templates/pages/application/application-out_min.html @@ -77,15 +77,24 @@ {field: 'applicantName', width: 150, title: '申请人'}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applyRemark', width: 200, title: '备注'}, - {field: 'state', width: 200, title: '状态'} + {field: 'state', width: 200, title: '状态'}, + {field: 'checkerName', width: 200, title: '处理人'} ]], limits: [10, 15, 20, 25, 50], limit: 10, page: true, skin: 'line', - done:function () { + done:function (res, curr, count) { $("[data-field='id']").css('display','none'); + var data = res.data; + if(data.length > 0){ + if(data[0].state === "进行中"){ + $("[data-field='id']").css('display','none'); + } + } + + } }); diff --git a/src/main/resources/templates/pages/application/application-transfer.html b/src/main/resources/templates/pages/application/application-transfer.html index 067e4bba..3aa03e40 100644 --- a/src/main/resources/templates/pages/application/application-transfer.html +++ b/src/main/resources/templates/pages/application/application-transfer.html @@ -247,7 +247,7 @@
- +
@@ -265,6 +265,8 @@ lay-verify="required"/> +
@@ -279,7 +281,7 @@ // 获取当前高度 var height = parseInt(($("#stepForm").css('height')).split("px")[0]); params.push(NewIdNumber) - $("#stepForm").css("height",height+430 +'px'); + $("#stepForm").css("height",height+455 +'px'); $("#"+parentId).after(materialItem); }; @@ -292,7 +294,7 @@ // 获取祖父节点 var reparent = parent.parentNode; var height = parseInt(($("#stepForm").css('height')).split("px")[0]); - $("#stepForm").css("height",height-430 +'px'); + $("#stepForm").css("height",height-455 +'px'); params = remove(params,parentId); reparent.removeChild(parent); }; @@ -315,6 +317,7 @@ selectCode = function(obj){ // 输入code var code = obj.value; + var id = obj.name.split("code")[1]; // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode; var children = parent.childNodes[5]; @@ -346,9 +349,9 @@ data:JSON.stringify(req), contentType: "application/json;charset=utf-8", success:function (res) { - $('#place').empty(); + $('#place'+id).empty(); $.each(res.data, function (index, item) { - $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + $('#place'+id).append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 }); form.render(); materialName.value = d.mname; diff --git a/src/main/resources/templates/pages/application/form-step-look_back.html b/src/main/resources/templates/pages/application/form-step-look_back.html index 45ccab5b..798f650c 100644 --- a/src/main/resources/templates/pages/application/form-step-look_back.html +++ b/src/main/resources/templates/pages/application/form-step-look_back.html @@ -99,13 +99,6 @@
-
-
-

说明


- 申请提交后,24小时内审核完毕 -
-
- diff --git a/src/main/resources/templates/pages/material/material-out.html b/src/main/resources/templates/pages/material/material-out.html index ddb2dd9b..55a954d4 100644 --- a/src/main/resources/templates/pages/material/material-out.html +++ b/src/main/resources/templates/pages/material/material-out.html @@ -72,13 +72,6 @@ -
- -
- - -
-
@@ -284,19 +278,46 @@ return false; } } - else if(obj.event === 'createQrCode'){ + else if(obj.event === 'applicationIn'){ + // 入库申请 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + var req={}; + req.mids=[]; + // 获取所有选中的id + for (i=0,len=data.length;i" diff --git a/src/main/resources/templates/pages/material/selectDepositoryByCard.html b/src/main/resources/templates/pages/material/selectDepositoryByCard.html index 855bef7c..4d8295c8 100644 --- a/src/main/resources/templates/pages/material/selectDepositoryByCard.html +++ b/src/main/resources/templates/pages/material/selectDepositoryByCard.html @@ -64,7 +64,7 @@ depositoryName.value = d.data.dname +"-"+ obj.data.title; } }); - console.log(did) + depositoryId.value = did[0]; placeId.value = did[1]; } diff --git a/src/main/resources/templates/pages/materialtype/materialType_view.html b/src/main/resources/templates/pages/materialtype/materialType_view.html index 4347ae10..1a881e1f 100644 --- a/src/main/resources/templates/pages/materialtype/materialType_view.html +++ b/src/main/resources/templates/pages/materialtype/materialType_view.html @@ -82,7 +82,7 @@ var parentId = document.getElementById("parentId").value; table.render({ elem: "#currentTableId", - url: '/materialType/allMaterialTypeByParent?parentId='+parentId, + url: '/materialType/allMaterialTypeByParent', parseData: function (res) { //res 即为原始返回的数据 return { "status": res.status, //解析接口状态 @@ -96,7 +96,8 @@ limitName: 'size' //每页数据量的参数名,默认:limit }, where: { - type:"0" + type:"0", + parentId:parentId }, response: { statusName: 'status' //规定数据状态的字段名称,默认:code diff --git a/src/main/resources/templates/pages/scanQrCode/ScanQrCode.html b/src/main/resources/templates/pages/scanQrCode/ScanQrCode.html index b4e934a6..05eff448 100644 --- a/src/main/resources/templates/pages/scanQrCode/ScanQrCode.html +++ b/src/main/resources/templates/pages/scanQrCode/ScanQrCode.html @@ -279,7 +279,7 @@ }, // 弹出入库|出库选择框 chooseInOrOut(){ - layer.confirm("请选择入库|出库", { + layer.confirm("是否入库", { btn: ["入库"] }, function () { // 选择入库 diff --git a/src/main/resources/templates/pages/scanQrCode/scanQrCodeOut.html b/src/main/resources/templates/pages/scanQrCode/scanQrCodeOut.html index 51ce9d06..8208f199 100644 --- a/src/main/resources/templates/pages/scanQrCode/scanQrCodeOut.html +++ b/src/main/resources/templates/pages/scanQrCode/scanQrCodeOut.html @@ -283,7 +283,7 @@ }, // 弹出出库确定弹出框 isOutTrue(req){ - layer.confirm("确定出库?", { + var confirmIndex = layer.confirm("确定出库?", { btn: ["确定", "取消"] }, function () { // 如果确定出库 @@ -302,9 +302,10 @@ } , function () { layer.close(layer.index); - }); - layer.close(layer.index) + var index=parent.layer.getFrameIndex(window.name); + parent.layer.close(index); + }); } else { // 如果出库失败 layer.msg(res.statusInfo.message+",请重试"); @@ -315,6 +316,7 @@ vue.turnCameraOn(); return } + } }) }, function () { diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml index 4e4beaa5..cf078e80 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -90,7 +90,7 @@ AND m.type_id = #{typeId} - and state != 3 + and state != 3 and m.depository_id is null @@ -209,12 +209,26 @@ #{item} + + + - SELECT from material m where m.depository_id = #{depositoryId} + + LIMIT #{begin},#{size} + + + + + diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml index fbf6e4d0..59bb6df4 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -65,7 +65,11 @@ and mt.parentId = #{parentId} + and mt.state != 3 and mt.state != 4 + + LIMIT #{begin},#{size} + diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml index eb1e794d..f1610c01 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml @@ -73,7 +73,7 @@ FROM transfer_record tr WHERE tr.id = #{id} - + INSERT INTO transfer_record ( id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id ) VALUES ( diff --git a/target/classes/templates/pages/application/application-out.html b/target/classes/templates/pages/application/application-out.html index a1a0a4fc..b6d10058 100644 --- a/target/classes/templates/pages/application/application-out.html +++ b/target/classes/templates/pages/application/application-out.html @@ -400,7 +400,7 @@ var id = obj.id.split("quantity")[1]; var mcode = $("#code"+id).val(); // 获取到当前输入的物料编码 if(mcode === "" || mcode ===undefined || mcode === null){ - layer.msg("请输入物料的正确编码!",{icon:1,time:500},function () { + layer.msg("请输入物料的正确编码!",{icon:0,time:500},function () { $("#quantity"+id).val("") }); }else{ @@ -416,7 +416,7 @@ success:function (res) { var flag = res.data; if(!flag){ // 如果当前数目不合适 - layer.msg("当前物料数量不足",{icon:1,time:500},function () { + layer.msg("当前物料数量不足",{icon:0,time:500},function () { $("#quantity"+id).val(""); // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode; diff --git a/target/classes/templates/pages/application/application-out_min.html b/target/classes/templates/pages/application/application-out_min.html index fa1152f2..08052e24 100644 --- a/target/classes/templates/pages/application/application-out_min.html +++ b/target/classes/templates/pages/application/application-out_min.html @@ -77,15 +77,24 @@ {field: 'applicantName', width: 150, title: '申请人'}, {field: 'applicantTime', width: 200, title: '申请时间', sort: true}, {field: 'applyRemark', width: 200, title: '备注'}, - {field: 'state', width: 200, title: '状态'} + {field: 'state', width: 200, title: '状态'}, + {field: 'checkerName', width: 200, title: '处理人'} ]], limits: [10, 15, 20, 25, 50], limit: 10, page: true, skin: 'line', - done:function () { + done:function (res, curr, count) { $("[data-field='id']").css('display','none'); + var data = res.data; + if(data.length > 0){ + if(data[0].state === "进行中"){ + $("[data-field='id']").css('display','none'); + } + } + + } }); diff --git a/target/classes/templates/pages/application/application-transfer.html b/target/classes/templates/pages/application/application-transfer.html index 067e4bba..3aa03e40 100644 --- a/target/classes/templates/pages/application/application-transfer.html +++ b/target/classes/templates/pages/application/application-transfer.html @@ -247,7 +247,7 @@
- +
@@ -265,6 +265,8 @@ lay-verify="required"/> +
@@ -279,7 +281,7 @@ // 获取当前高度 var height = parseInt(($("#stepForm").css('height')).split("px")[0]); params.push(NewIdNumber) - $("#stepForm").css("height",height+430 +'px'); + $("#stepForm").css("height",height+455 +'px'); $("#"+parentId).after(materialItem); }; @@ -292,7 +294,7 @@ // 获取祖父节点 var reparent = parent.parentNode; var height = parseInt(($("#stepForm").css('height')).split("px")[0]); - $("#stepForm").css("height",height-430 +'px'); + $("#stepForm").css("height",height-455 +'px'); params = remove(params,parentId); reparent.removeChild(parent); }; @@ -315,6 +317,7 @@ selectCode = function(obj){ // 输入code var code = obj.value; + var id = obj.name.split("code")[1]; // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode; var children = parent.childNodes[5]; @@ -346,9 +349,9 @@ data:JSON.stringify(req), contentType: "application/json;charset=utf-8", success:function (res) { - $('#place').empty(); + $('#place'+id).empty(); $.each(res.data, function (index, item) { - $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + $('#place'+id).append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 }); form.render(); materialName.value = d.mname; diff --git a/target/classes/templates/pages/application/form-step-look_back.html b/target/classes/templates/pages/application/form-step-look_back.html index 45ccab5b..798f650c 100644 --- a/target/classes/templates/pages/application/form-step-look_back.html +++ b/target/classes/templates/pages/application/form-step-look_back.html @@ -99,13 +99,6 @@
-
-
-

说明


- 申请提交后,24小时内审核完毕 -
-
- diff --git a/target/classes/templates/pages/material/material-out.html b/target/classes/templates/pages/material/material-out.html index ddb2dd9b..55a954d4 100644 --- a/target/classes/templates/pages/material/material-out.html +++ b/target/classes/templates/pages/material/material-out.html @@ -72,13 +72,6 @@ -
- -
- - -
-
@@ -284,19 +278,46 @@ return false; } } - else if(obj.event === 'createQrCode'){ + else if(obj.event === 'applicationIn'){ + // 入库申请 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + var req={}; + req.mids=[]; + // 获取所有选中的id + for (i=0,len=data.length;i" diff --git a/target/classes/templates/pages/material/selectDepositoryByCard.html b/target/classes/templates/pages/material/selectDepositoryByCard.html index 855bef7c..4d8295c8 100644 --- a/target/classes/templates/pages/material/selectDepositoryByCard.html +++ b/target/classes/templates/pages/material/selectDepositoryByCard.html @@ -64,7 +64,7 @@ depositoryName.value = d.data.dname +"-"+ obj.data.title; } }); - console.log(did) + depositoryId.value = did[0]; placeId.value = did[1]; } diff --git a/target/classes/templates/pages/materialtype/materialType_view.html b/target/classes/templates/pages/materialtype/materialType_view.html index 4347ae10..1a881e1f 100644 --- a/target/classes/templates/pages/materialtype/materialType_view.html +++ b/target/classes/templates/pages/materialtype/materialType_view.html @@ -82,7 +82,7 @@ var parentId = document.getElementById("parentId").value; table.render({ elem: "#currentTableId", - url: '/materialType/allMaterialTypeByParent?parentId='+parentId, + url: '/materialType/allMaterialTypeByParent', parseData: function (res) { //res 即为原始返回的数据 return { "status": res.status, //解析接口状态 @@ -96,7 +96,8 @@ limitName: 'size' //每页数据量的参数名,默认:limit }, where: { - type:"0" + type:"0", + parentId:parentId }, response: { statusName: 'status' //规定数据状态的字段名称,默认:code diff --git a/target/classes/templates/pages/scanQrCode/ScanQrCode.html b/target/classes/templates/pages/scanQrCode/ScanQrCode.html index b4e934a6..05eff448 100644 --- a/target/classes/templates/pages/scanQrCode/ScanQrCode.html +++ b/target/classes/templates/pages/scanQrCode/ScanQrCode.html @@ -279,7 +279,7 @@ }, // 弹出入库|出库选择框 chooseInOrOut(){ - layer.confirm("请选择入库|出库", { + layer.confirm("是否入库", { btn: ["入库"] }, function () { // 选择入库 diff --git a/target/classes/templates/pages/scanQrCode/scanQrCodeOut.html b/target/classes/templates/pages/scanQrCode/scanQrCodeOut.html index 51ce9d06..8208f199 100644 --- a/target/classes/templates/pages/scanQrCode/scanQrCodeOut.html +++ b/target/classes/templates/pages/scanQrCode/scanQrCodeOut.html @@ -283,7 +283,7 @@ }, // 弹出出库确定弹出框 isOutTrue(req){ - layer.confirm("确定出库?", { + var confirmIndex = layer.confirm("确定出库?", { btn: ["确定", "取消"] }, function () { // 如果确定出库 @@ -302,9 +302,10 @@ } , function () { layer.close(layer.index); - }); - layer.close(layer.index) + var index=parent.layer.getFrameIndex(window.name); + parent.layer.close(index); + }); } else { // 如果出库失败 layer.msg(res.statusInfo.message+",请重试"); @@ -315,6 +316,7 @@ vue.turnCameraOn(); return } + } }) }, function () {