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 36e043e0..c991a433 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java @@ -1064,4 +1064,10 @@ public class DepositoryController { return new RestResponse(list); } + // 根据id获取仓库信息 + @GetMapping("/findDepositoryByDid") + public RestResponse findDepositoryByDid(@RequestParam(value = "depositoryId")Integer depositoryId){ + Depository depositoryRecordById = depositoryService.findDepositoryRecordById(depositoryId); + return new RestResponse(depositoryRecordById); + } } 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 db7c65a5..9c600c49 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -104,29 +104,101 @@ public class DepositoryRecordController { List params = (List) map.get("params"); Integer integer = 0; map.put("applicantId", userToken.getId()); + Map result = new HashMap<>(); if(params.size() < 1 && map.size() > 3) { - integer += depositoryRecordService.applicationIn(map); + // 获取库位id + Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId")); + if(placeId == -1) {// 如果插入到仓库 + integer += depositoryRecordService.applicationIn(map); + }else{ // 如果具体到库位 + Integer flag = depositoryRecordService.applicationIn(map); + if(flag != 1){ + return new RestResponse("",666,new StatusInfo("存储失败","请重新选择存储位")); + }else{ + Integer applicationInPlace = depositoryRecordService.applicationInPlace(map); + if(applicationInPlace == 1){ + integer += flag; + }else{ + map.put("delete","in"); + depositoryRecordService.deleteApplicaionInPlace(map); + return new RestResponse("",666,new StatusInfo("存储失败","超出最大存储量或该库位已有物品,请重新选择存储位")); + } + } + + } }else{ + List errMsg = new ArrayList<>(); + List successMsg = new ArrayList<>(); for (int i = 0; i < params.size(); i++) { Integer temp = params.get(i); Map insert = new HashMap<>(); + Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId"+temp)); insert.put("applicantId",userToken.getId()); insert.put("mid",map.get("mid"+temp)); insert.put("quantity",map.get("quantity"+temp)); insert.put("depositoryId",map.get("depositoryId"+temp)); insert.put("applyRemark",map.get("applyRemark"+temp)); insert.put("code",map.get("code"+temp)); - integer += depositoryRecordService.applicationIn(insert); + insert.put("price",map.get("price").toString()); + if(placeId == -1) { // 如果插入到仓库 + integer += depositoryRecordService.applicationIn(insert); + successMsg.add(insert); + }else{// 如果具体到库位 + Integer flag = depositoryRecordService.applicationIn(insert); + if(flag != 1){ + insert.put("err","存储失败,请重新选择存储位"); + errMsg.add(insert); + }else{ + insert.put("placeId",map.get("placeId"+temp)); + Integer applicationInPlace = depositoryRecordService.applicationInPlace(insert); + if(applicationInPlace == 1){ + integer += flag; + successMsg.add(insert); + }else{ + map.put("delete","in"); + depositoryRecordService.deleteApplicaionInPlace(insert); + insert.put("err","存储失败,超出最大存储量或该库位已有物品"); + errMsg.add(insert); + } + } + } + } + Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId")); + if(placeId == -1) {// 如果插入到仓库 + integer += depositoryRecordService.applicationIn(map); + successMsg.add(map); + }else{ // 如果具体到库位 + Integer flag = depositoryRecordService.applicationIn(map); + if(flag != 1){ + map.put("err","存储失败,请重新选择存储位"); + errMsg.add(map); + }else{ + Integer applicationInPlace = depositoryRecordService.applicationInPlace(map); + if(applicationInPlace == 1){ + integer += flag; + successMsg.add(map); + }else{ + map.put("delete","in"); + depositoryRecordService.deleteApplicaionInPlace(map); + map.put("err","存储失败,超出最大存储量或该库位已有物品"); + errMsg.add(map); + } + } } - integer += depositoryRecordService.applicationIn(map); + result.put("err",errMsg); + result.put("success",successMsg); } if (integer != 0 && params.size() < 1) { return CrudUtil.postHandle(integer, 1); }else if(integer != 0 && params.size() > 0){ - return CrudUtil.postHandle(integer,params.size() + 1); + if(integer == params.size() + 1){ + return CrudUtil.postHandle(integer,params.size() + 1); + }else{ + return new RestResponse(result,666,new StatusInfo("错误","含有错误信息")); + } } else{ - return new RestResponse("",666,new StatusInfo("存储失败","超出最大存储量,请重新选择存储位")); + return new RestResponse("",666,new StatusInfo("存储失败","请重新选择存储位")); } } @@ -136,8 +208,8 @@ public class DepositoryRecordController { public RestResponse insertApplicationOutRecord(@RequestBody Map map, HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); map.put("applicantId",userToken.getId()); - UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); - map.put("departmenthead",departmentHeadByUser.getId()); +// UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); +// map.put("departmenthead",departmentHeadByUser.getId()); List params = (List) map.get("params"); Integer integer = 0; if(params.size() < 1 && map.size() > 3){ @@ -147,11 +219,12 @@ public class DepositoryRecordController { Integer temp = params.get(i); Map insert = new HashMap<>(); insert.put("applicantId",userToken.getId()); - insert.put("departmenthead",departmentHeadByUser.getId()); +// insert.put("departmenthead",departmentHeadByUser.getId()); insert.put("mid",map.get("mid"+temp)); insert.put("quantity",map.get("quantity"+temp)); insert.put("applyRemark",map.get("applyRemark"+temp)); insert.put("code",map.get("code"+temp)); + insert.put("placeId",map.get("placeId"+temp)); integer += depositoryRecordService.insertApplicationOutRecord(insert); } integer += depositoryRecordService.insertApplicationOutRecord(map); 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 7369de21..f022df23 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -1,17 +1,12 @@ package com.dreamchaser.depository_manage.controller; -import com.dreamchaser.depository_manage.entity.Depository; -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.entity.*; 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.pojo.RoleAndDepository; -import com.dreamchaser.depository_manage.pojo.StatusInfo; +import com.dreamchaser.depository_manage.pojo.*; import com.dreamchaser.depository_manage.security.bean.UserToken; import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.service.PlaceService; import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.utils.CrudUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; @@ -39,6 +34,9 @@ public class MaterialController { @Autowired DepositoryService depositoryService; + @Autowired + PlaceService placeService; + /** * 根据物料进行查询 * @param map @@ -54,7 +52,7 @@ public class MaterialController { public RestResponse findInventory(@RequestParam Map map,HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); List depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); - List materialPByCondition = materialService.findMaterialPByCondition(map); + List materialPByCondition = materialService.findInventory(map); List list = new ArrayList<>(); for (RoleAndDepository roleAndDepository : depositoryAndRole) { for (MaterialP materialP : materialPByCondition) { @@ -141,30 +139,46 @@ public class MaterialController { * @return */ @GetMapping("/findMatrialById") - public RestResponse findMatrialById(@RequestParam(value = "mid",required = false) String mid){ + 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)); - return new RestResponse(materialById,1,200); + List placePList = new ArrayList<>(); + List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); + for (int i = 0; i < depositoryByAdminorg.size(); i++) { + 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); } @GetMapping("/findMatrialByCode") - public RestResponse findMatrialByCode(@RequestParam(value = "code") String code,HttpServletRequest request){ + 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<>(); + String code = map.get("code").toString(); + String type = map.get("type").toString(); if("".equals(code)){ return new RestResponse(null,1,200); } param.put("code",code); List materialPByCondition = new ArrayList<>(); - for (int i = 0; i < depositoryByAdminorg.size(); i++) { - param.put("depositoryId",depositoryByAdminorg.get(i).getId()); - materialPByCondition = materialService.findMaterialPByCondition(param); - if(materialPByCondition.size() > 0){ - break; + if("out".equals(type)) { + for (int i = 0; i < depositoryByAdminorg.size(); i++) { + param.put("depositoryId", depositoryByAdminorg.get(i).getId()); + materialPByCondition = materialService.findMaterialPByCondition(param); + if (materialPByCondition.size() > 0) { + break; + } } + }else{ + materialPByCondition = materialService.findMaterialPByCondition(param); } MaterialP mp = null; if(materialPByCondition.size() > 0){ 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 22a64348..cda43a40 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -14,6 +14,7 @@ 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 com.sun.org.apache.xpath.internal.operations.Mod; import javafx.geometry.Pos; import org.apache.http.protocol.HTTP; import org.springframework.beans.factory.annotation.Autowired; @@ -864,6 +865,18 @@ public class PageController { return mv; } + @GetMapping("/insertListPlace") + public ModelAndView insertListPlace(Integer depositoryId){ + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/place/place_list_add"); + if(depositoryId != null){ + mv.addObject("depositoryId",depositoryId); + }else{ + throw new MyException("缺少必要参数!"); + } + return mv; + } + @GetMapping("findWareHouseByParentId") public ModelAndView findWareHouseByParentId(Integer parentId) { ModelAndView mv = new ModelAndView(); @@ -975,6 +988,8 @@ public class PageController { depositoryManager.add(user); depositoryManagerNames += user.getName() +","; } + Place placeById = placeService.findPlaceById(recordP.getPlaceId()); + recordP.setPCode(placeById.getCode()); recordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime()))); recordP.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getDepartmentheadTime()))); recordP.setDepositoryManagerName(depositoryManagerNames); @@ -995,6 +1010,7 @@ public class PageController { applicationInRecordPById.setApplicantName(userByPort.getName()); applicationInRecordPById.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationInRecordPById.getApplicantTime()))); applicationInRecordPById.setPrice(applicationInRecordPById.getPrice() / 100); + mv.addObject("record", applicationInRecordPById); } else { throw new MyException("缺少必要参数!"); @@ -1033,6 +1049,8 @@ public class PageController { applicationOutRecordPById.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getDepartmentheadTime()))); applicationOutRecordPById.setDepositoryManagerTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getDepositoryManagerTime()))); applicationOutRecordPById.setPrice(applicationOutRecordPById.getPrice() / 100); + Place placeById = placeService.findPlaceById(applicationOutRecordPById.getPlaceId()); + applicationOutRecordPById.setPCode(placeById.getCode()); mv.addObject("record", applicationOutRecordPById); } else { throw new MyException("缺少必要参数!"); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java index 9f8ed9ff..74b1bcc3 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java @@ -1,8 +1,7 @@ package com.dreamchaser.depository_manage.controller; -import com.dreamchaser.depository_manage.entity.Depository; -import com.dreamchaser.depository_manage.entity.Material; -import com.dreamchaser.depository_manage.entity.Place; +import com.baomidou.mybatisplus.extension.api.R; +import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.pojo.MaterialP; import com.dreamchaser.depository_manage.pojo.PlaceP; @@ -10,11 +9,13 @@ import com.dreamchaser.depository_manage.pojo.RestResponse; import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.MaterialService; import com.dreamchaser.depository_manage.service.PlaceService; +import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.utils.CrudUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; 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; @@ -32,6 +33,9 @@ public class PlaceController { @Autowired DepositoryService depositoryService; + @Autowired + RoleService roleService; + /** * 根据条件查询库位 * @@ -46,12 +50,19 @@ public class PlaceController { Place place = placeByCondition.get(i); PlaceP placeP = new PlaceP(place); Integer depositoryId = place.getDid(); - Integer mid = place.getMid(); Depository depositoryById = depositoryService.findDepositoryRecordById(depositoryId); - if(mid != null) { + // 获取当前库位所有的物料信息 + List placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(place.getId()); + if(placeAndMaterialByPid == null){ + placeAndMaterialByPid = new ArrayList<>(); + } + StringBuilder mname = new StringBuilder(); + for (int j = 0; j < placeAndMaterialByPid.size(); j++) { + Integer mid = placeAndMaterialByPid.get(j).getMid(); Material materialById = materialService.findMaterialById(mid); - placeP.setMname(materialById.getMname()); + mname.append(materialById.getMname()+","); } + placeP.setMname(mname.toString()); placeP.setDepositoryName(depositoryById.getDname()); placeP.setDepositoryCode(depositoryById.getCode()); placePList.add(placeP); @@ -64,15 +75,17 @@ public class PlaceController { String type = (String) map.get("type"); Map insert = new HashMap<>(); Integer success = 0; + Integer total = 0; if ("one".equals(type)) { Integer place_x = ObjectFormatUtil.toInteger(map.get("place_x")); - Integer place_y = ObjectFormatUtil.toInteger(map.get("place_y")); +// Integer place_y = ObjectFormatUtil.toInteger(map.get("place_y")); Integer place_z = ObjectFormatUtil.toInteger(map.get("place_z")); String min = (String) map.get("min"); String max = (String) map.get("max"); - String code = String.format("%02d", place_x) + String.format("%02d", place_y) + String.format("%02d", place_z); +// String code = String.format("%02d", place_x) + String.format("%02d", place_y) + String.format("%02d", place_z); + String code = String.format("%02d", place_x) + String.format("%02d", place_z); insert.put("x", place_x); - insert.put("y", place_y); +// insert.put("y", place_y); insert.put("z", place_z); insert.put("code", code); insert.put("did", map.get("depositoryId")); @@ -87,14 +100,52 @@ public class PlaceController { insert.put("max", 0); } insert.put("state",1); + insert.put("quantity",0); success += placeService.InsertPlace(insert); - } else { - + } + else if("list".equals(type)){ + //获取起始、终止行 + Integer place_start_x = ObjectFormatUtil.toInteger(map.get("place_start_x")); + Integer place_end_x = ObjectFormatUtil.toInteger(map.get("place_end_x")); + //获取起始、终止列 +// Integer place_start_y = ObjectFormatUtil.toInteger(map.get("place_start_y")); +// Integer place_end_y = ObjectFormatUtil.toInteger(map.get("place_end_y")); + //获取起始、终止层 + Integer place_start_z = ObjectFormatUtil.toInteger(map.get("place_start_z")); + Integer place_end_z = ObjectFormatUtil.toInteger(map.get("place_end_z")); + // 计算所需库位数目 +// total = (place_end_x - place_start_x) * (place_end_y - place_start_y) * (place_end_z - place_start_z); + total = (place_end_x - place_start_x) * (place_end_z - place_start_z); + String min = (String) map.get("min"); + String max = (String) map.get("max"); + for (int i = place_start_x; i < place_end_x; i++) { +// for (int j = place_start_y; j < place_end_y; j++) { + for (int k = place_start_z; k < place_end_z; k++) { +// String code = String.format("%02d", i) + String.format("%02d", j) + String.format("%02d", k); + String code = String.format("%02d", i) + String.format("%02d", k); + insert.put("x",i); +// insert.put("y",j); + insert.put("z",k); + insert.put("code",code); + insert.put("min",min); + insert.put("max",max); + insert.put("did", map.get("depositoryId")); + insert.put("state",1); + insert.put("quantity",0); + success += placeService.InsertPlace(insert); + } +// } + } + } + else{ + throw new MyException("所需请求参数缺失!"); } if ("one".equals(type)) { return CrudUtil.postHandle(success, 1); - } else { - return new RestResponse(); + } else if("list".equals(type)){ + return CrudUtil.postHandle(success,total); + }else{ + throw new MyException("请求参数错误!"); } } @@ -128,13 +179,14 @@ public class PlaceController { } Map update = new HashMap<>(); Integer place_x = ObjectFormatUtil.toInteger(map.get("place_x")); - Integer place_y = ObjectFormatUtil.toInteger(map.get("place_y")); +// Integer place_y = ObjectFormatUtil.toInteger(map.get("place_y")); Integer place_z = ObjectFormatUtil.toInteger(map.get("place_z")); String min = (String) map.get("min"); String max = (String) map.get("max"); - String code = String.format("%02d", place_x) + String.format("%02d", place_y) + String.format("%02d", place_z); +// String code = String.format("%02d", place_x) + String.format("%02d", place_y) + String.format("%02d", place_z); + String code = String.format("%02d", place_x) + String.format("%02d", place_z); update.put("x", place_x); - update.put("y", place_y); +// update.put("y", place_y); update.put("z", place_z); update.put("code", code); update.put("did", map.get("depositoryId")); @@ -151,4 +203,19 @@ public class PlaceController { update.put("id",map.get("id")); return CrudUtil.postHandle(placeService.UpdatePlace(update),1); } + + @PostMapping("/findPlaceByMid") + public RestResponse findPlaceByMid(@RequestBody Map map, HttpServletRequest request){ + UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); + Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + List placeList = new ArrayList<>(); + for (int i = 0; i < depositoryByAdminorg.size(); i++) { + Depository depository = depositoryByAdminorg.get(i); + List placeByMidAndDid = placeService.findPlaceByMidAndDid(mid, depository.getId()); + placeList.addAll(placeByMidAndDid); + } + return new RestResponse(placeList); + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java index a36863b1..07b1b926 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecord.java @@ -105,4 +105,9 @@ public class ApplicationOutRecord { */ private Integer transferId; + /** + * 对应库位id + */ + private Integer placeId; + } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfoByInventory.java b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfoByInventory.java index ecfc3ec1..86357459 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfoByInventory.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfoByInventory.java @@ -45,6 +45,6 @@ public class ExcelInfoByInventory { private String price; /** 仓库编码 */ - @ExcelProperty("库位码") + @ExcelProperty(value = "库位码") private String depositoryCode; } 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 5753818a..fcd4219f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/Material.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Material.java @@ -57,10 +57,16 @@ public class Material { private String texture; /** - * 仓库编号 + * 仓库编码 */ private String depositoryCode; + /** + * 库位编码 + */ + private String placeCode; + + /** * 暂存额度 */ diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/Place.java b/src/main/java/com/dreamchaser/depository_manage/entity/Place.java index 79eecedd..5a3b0094 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/Place.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/Place.java @@ -54,4 +54,9 @@ public class Place { * 当前库位状态 */ private Integer state; + + /** + * 当前库位数目 + */ + private Integer quantity; } diff --git a/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java b/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java index a9eaa7c8..06ad7098 100644 --- a/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java +++ b/src/main/java/com/dreamchaser/depository_manage/listener/ExcelListener.java @@ -23,6 +23,9 @@ public class ExcelListener extends AnalysisEventListener { // 获取错误信息 List errMsg = new ArrayList<>(); + // 返回读取到的数据所在行列 + List dataIndex = new ArrayList<>(); + public ExcelListener() { } @@ -30,8 +33,10 @@ public class ExcelListener extends AnalysisEventListener { @Override public void invoke(T t, AnalysisContext analysisContext) { ExcelInValid.valid(t,analysisContext); + String index = "第"+analysisContext.readSheetHolder().getRowIndex()+"行"; log.info("【Excel文件】解析到一条数据{}:", JSON.toJSONString(t)); dataList.add(t); + dataIndex.add(index); } @@ -45,6 +50,10 @@ public class ExcelListener extends AnalysisEventListener { return dataList; } + public List getDataIndex() { + return dataIndex; + } + /** * 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。 * @@ -89,4 +98,5 @@ public class ExcelListener extends AnalysisEventListener { public List retrunErrMsg(){ return errMsg; } + } 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 849f29f7..20735aa5 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -57,11 +57,11 @@ @@ -353,6 +354,9 @@ and istransfer = #{istransfer} + + and placeId = #{placeId} + LIMIT #{begin},#{size} @@ -377,6 +381,13 @@ where aorid = #{id} + + + + + + + + + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.java index 21458fcf..1fa60aab 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.java @@ -1,5 +1,6 @@ package com.dreamchaser.depository_manage.mapper; +import com.dreamchaser.depository_manage.entity.MaterialAndPlace; import com.dreamchaser.depository_manage.entity.Place; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -85,4 +86,64 @@ public interface PlaceMapper { * @return */ Integer changeStateToDeletedByIds(List ids); + + /** + * 获取当前仓库下的所有行(倒序) + * @param did + * @return + */ + List findPlaceXByDid(Integer did); + /** + * 获取当前仓库下该排的所有列(倒序) + * @param map + * @return + */ + List findPlaceYByDid(Map map); + /** + * 获取当前仓库该排下的所有层(倒序) + * @param map + * @return + */ + List findPlaceZByDid(Map map); + + List findPlaceByMid(Integer mid); + + /** + * 将物料添加到库位 + * @param map + * @return + */ + Integer addMaterialOnPlace(Map map); + + /** + * 将物料从库位删除 + * @param id + * @return + */ + Integer delMaterialOnPlace(Integer id); + + + /** + * 根据mid与did查询库位 + * @param map + * @return + */ + List findPlaceByMidAndDid(Map map); + + /** + * 根据库位获取当前库位所存储的物料 + */ + List findPlaceAndMaterialByPid(Integer id); + /** + * 根据当前库位编号及物料编号获取具体库位 + */ + MaterialAndPlace findPlaceAndMaterialByMidAndPid(Map map); + + /** + * 修改当前库位存放物料信息 + * @param map + * @return + */ + Integer updateMaterialAndPlace(Map map); + Integer updateMaterialAndPlace(MaterialAndPlace mp); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml index 88de9854..d9175c41 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml @@ -16,13 +16,30 @@ + + + + + + + + + + + + - p.id,p.x,p.y,p.z,p.code,p.mid,p.did,p.min,p.max,p.state + p.id,p.x,p.y,p.z,p.code,p.mid,p.did,p.min,p.max,p.state,p.quantity + + mp.id,mp.mid,mp.pid,mp.quantity,p.code,p.max,p.min,p.did + + + + + + + + + + + INSERT INTO place ( - id,x,y,z,code, mid,did,min,max,state + id,x,y,z,code, mid,did,min,max,state,quantity ) VALUES ( #{id}, #{x}, @@ -133,10 +191,25 @@ #{did}, #{min}, #{max}, - #{state} + #{state}, + #{quantity} ) + + insert into materialandplace(id,mid,pid,quantity) + values ( + #{id}, + #{mid}, + #{pid}, + #{quantity} + ) + + + + DELETE FROM materialandplace WHERE id = #{id} + + UPDATE place @@ -166,12 +239,30 @@ max = #{max}, - state = #{state} + state = #{state}, + + + quantity = #{quantity} WHERE id = #{id} + + update materialandplace + + + mid = #{mid}, + + + quantity = #{quantity}, + + + pid = #{pid} + + + where id = #{id} + @@ -201,4 +292,17 @@ WHERE id = #{id} + + + + + + + \ No newline at end of file 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 09b94a4e..0b84e0d7 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java @@ -133,4 +133,14 @@ public class ApplicationOutRecordP { * 物料存货编码 */ private String mcode; + + /** + * 对应库位id + */ + private Integer placeId; + + /** + * 对应库位编码 + */ + private String pCode; } 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 7bd4d5a5..4848e251 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java @@ -95,6 +95,12 @@ public class MaterialP { private String warehouseManager; + /** + * 库位编码 + */ + private String placeCode; + + public MaterialP(Integer id, Integer depositoryId, String mname, Integer quantity, Double price, String typeName) { @@ -119,5 +125,6 @@ public class MaterialP { this.version = material.getVersion(); // 规格型号 this.depositoryCode = material.getDepositoryCode(); // 仓库编码 this.depositoryId = material.getDepositoryId(); // 仓库id + this.placeCode = material.getPlaceCode(); // 库位编码 } } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java index 4327674f..1f501651 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java @@ -284,4 +284,19 @@ public interface DepositoryRecordService { * @return */ Double CalculateAllApplicationOutCount(String state); + + + /** + * 将物料入库到库位 + * @param map + * @return + */ + Integer applicationInPlace(Map map); + + /** + * 将刚入库的记录删除 + * @param map + * @return + */ + Integer deleteApplicaionInPlace(Map map); } 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 294a3b59..420ef586 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java @@ -51,6 +51,12 @@ public interface MaterialService { */ List findMaterialPByCondition(Map map); + /** + * 根据条件查询符合条件的库存 + * @param map + * @return + */ + List findInventory(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 944473f1..69f3dd30 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java @@ -1,6 +1,8 @@ package com.dreamchaser.depository_manage.service; +import com.dreamchaser.depository_manage.entity.MaterialAndPlace; import com.dreamchaser.depository_manage.entity.Place; +import com.dreamchaser.depository_manage.pojo.PlaceP; import java.util.List; import java.util.Map; @@ -83,5 +85,22 @@ public interface PlaceService { */ Integer changeStateToDeletedByIds(List ids); + /** + * 根据物料与仓库获取库位 + * @param mid + * @return + */ + List findPlaceByMidAndDid(Integer mid, Integer depositoryId); + + /** + * 根据库位获取当前库位所存储的物料 + */ + List findPlaceAndMaterialByPid(Integer id); + + /** + * 根据当前库位编号及物料编号获取具体库位 + */ + MaterialAndPlace findPlaceAndMaterialByMidAndPid(Integer pid,Integer mid); + } 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 e5e6eca6..ea42a018 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 @@ -53,8 +53,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { private RedisTemplate redisTemplate; @Autowired - private RedissonClient redissonClient; + private PlaceMapper placeMapper; + @Autowired + private RedissonClient redissonClient; @@ -92,12 +94,12 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Map temp = new HashMap<>(); temp.put("dname", depositoryRecordById.getDname()); temp.put("dcode", depositoryRecordById.getCode()); + // 获取当前仓库库存 Double Inventory = depositoryMapper.getToDayInventoryByDName(temp); - String code = createCode(depositoryRecordById.getDname(), "InOrderNumber"); + String code = createCode(depositoryRecordById.getDname(), "InOrderNumber");//构造单号 Double quantity = Double.parseDouble((String) map.get("quantity")); - Double price = Double.parseDouble((String)map.get("price")); + Double price = Double.parseDouble((String) map.get("price")); Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); - Material material = materialMapper.findMaterialById(mid); // 判断剩余容量是否可以存入 if (depositoryRecordById.getMaxNumber() - Inventory < quantity) { @@ -108,17 +110,18 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { param.put("mname", material.getMname()); List materialByCondition = materialMapper.findMaterialByCondition(param); // 获取当前入库金额 - Double amounts = (quantity * price * 100); + Double amounts = (quantity * price * 100); // 获取平均价格 Double avgPrice = (material.getAmounts() + amounts) / (material.getQuantity() + quantity); map.put("amounts", amounts); - map.put("price",price * 100); + map.put("price", price * 100); String simpleTime = DateUtil.getSimpleTime(new Date()); map.put("applicant_time", DateUtil.DateTimeToTimeStamp(simpleTime)); map.put("code", code); // 获取当前物料 if (materialByCondition.size() > 0) { // 如果当前存在 Material mt = materialByCondition.get(0); + map.put("oldPrice",mt.getPrice()); mt.setAmounts(mt.getAmounts() + amounts); mt.setQuantity((int) (mt.getQuantity() + quantity)); mt.setPrice(avgPrice); @@ -150,6 +153,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ @Override public Integer insertApplicationOutRecord(Map map) { + String placeId = (String) map.get("placeId"); + if("".equals(placeId)){ + map.put("placeId",0); + } Double quantity = Double.parseDouble((String) map.get("quantity")); Long time = DateUtil.DateTimeToTimeStamp(DateUtil.getSimpleTime(new Date())); map.put("applicantTime", time); @@ -165,7 +172,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Map update = new HashMap<>(); update.put("id", materialById.getId()); Integer numberOfTemporary = materialById.getNumberOfTemporary(); - if(numberOfTemporary == null){ + if (numberOfTemporary == null) { numberOfTemporary = 0; } update.put("numberOfTemporary", numberOfTemporary + quantity); @@ -226,6 +233,114 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { return sum; } + /** + * 将物料入库到库位 + * + * @param map + * @return + */ + @Override + public Integer applicationInPlace(Map map) { + Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId")); + Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); + Place placeById = placeMapper.findPlaceById(placeId); + // 获取当前物料基本信息 + Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + Material materialById = materialMapper.findMaterialById(mid); + // 获取当前物料在当前仓库是否有库存记录 + Map param = new HashMap<>(); + param.put("code", materialById.getCode()); + param.put("mname", materialById.getMname()); + param.put("depositoryId", placeById.getDid()); + List inventory = materialMapper.findInventory(param); + if (inventory.size() == 0) { + throw new MyException("未知错误,联系开发人员"); + } + Material material = inventory.get(0); + if (placeById.getMid() != null) { + // 如果当前库位有物品 + if (quantity > placeById.getMax() - placeById.getQuantity()) { + return -1; + }else { + // 添加库存 + Map insert = new HashMap<>(); + insert.put("mid",material.getId()); + insert.put("pid", placeById.getId()); + insert.put("quantity", quantity); + // 修改该库位容量 + Map update = new HashMap<>(); + update.put("id", placeById.getId()); + update.put("quantity", quantity + placeById.getQuantity()); + placeMapper.UpdatePlace(update); + return placeMapper.addMaterialOnPlace(insert); + } + + } else { + if (quantity > placeById.getMax() - placeById.getQuantity()) { + return -1; + } else { + Map update = new HashMap<>(); + update.put("id", placeById.getId()); + update.put("quantity", quantity + placeById.getQuantity()); + placeMapper.UpdatePlace(update); + // 添加库存 + Map insert = new HashMap<>(); + insert.put("mid",material.getId()); + insert.put("pid", placeById.getId()); + insert.put("quantity", quantity); + return placeMapper.addMaterialOnPlace(insert); + } + } + } + + /** + * 将刚入库的记录删除 + * @param map + * @return + */ + @Override + public Integer deleteApplicaionInPlace(Map map) { + String code = map.get("code").toString(); + Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); + Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); + // 获取材料基本信息 + Material materialById = materialMapper.findMaterialById(mid); + Object oldPrice1 = map.get("oldPrice"); + Double oldPrice = 0.0; + if(oldPrice1 != null) { + oldPrice = Double.parseDouble(oldPrice1.toString()); + } + Double price = Double.parseDouble(map.get("price").toString()); + Integer id = ObjectFormatUtil.toInteger(map.get("id")); + String deleteType = map.get("delete").toString(); + Map params = new HashMap<>(); + params.put("code",materialById.getCode()); + params.put("depositoryId",depositoryId); + List materialByCondition = materialMapper.findMaterialByCondition(params); + if(materialByCondition.size() < 1){ + throw new MyException("出现未知错误,联系开发人员"); + } + if("in".equals(deleteType)){ + // 删除入库记录 + depositoryRecordMapper.deleteApplicationInRecordById(id); + // 将库存还原 + Material material = materialByCondition.get(0); + Map update = new HashMap<>(); + update.put("quantity",material.getQuantity() - quantity); + update.put("price",oldPrice); + update.put("amounts",material.getAmounts() - quantity * price); + update.put("id",material.getId()); + return materialMapper.updateMaterial(update); + + }else if("out".equals(deleteType)){ + return null; + }else { + throw new MyException("请求参数错误"); + } + + } + /** * 转移申请 * @@ -293,13 +408,39 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Material material = materialMapper.findMaterialById(record.getMid()); Integer depositoryManagerPass = (Integer) map.get("depositoryManagerPass"); if (depositoryManagerPass == 1) { - if (material.getQuantity() >= record.getQuantity()) { + boolean flag = true; + Integer placeId = record.getPlaceId(); + MaterialAndPlace placeAndMaterialByMidAndPid = null; + if(placeId != 0){ + Map params = new HashMap<>(); + params.put("mid",material.getId()); + params.put("pid",placeId); + // 获取当前物料所存放库位的数量 + placeAndMaterialByMidAndPid = placeMapper.findPlaceAndMaterialByMidAndPid(params); + if(placeAndMaterialByMidAndPid.getQuantity() < record.getQuantity()){ + // 如果当前库位数量不足 + flag = false; + } + } + if (material.getQuantity() >= record.getQuantity() && flag) { // 当前出库金额 Double sum = material.getPrice() * record.getQuantity(); material.setAmounts(material.getAmounts() - sum); material.setQuantity(material.getQuantity() - record.getQuantity()); material.setNumberOfTemporary(material.getNumberOfTemporary() - record.getQuantity()); materialMapper.updateMaterial(material); + + if(placeAndMaterialByMidAndPid != null){ + // 修改当前库位存放物料的数量 + placeAndMaterialByMidAndPid.setQuantity(placeAndMaterialByMidAndPid.getQuantity() - record.getQuantity()); + placeMapper.updateMaterialAndPlace(placeAndMaterialByMidAndPid); + } + + // 修改库位数量 + Place placeById = placeMapper.findPlaceById(placeId); + placeById.setQuantity(placeById.getQuantity() - record.getQuantity()); + placeMapper.UpdatePlace(placeById); + if (record.getIstransfer() == 1) { map.put("quantity", record.getQuantity().toString()); map.put("applicantId", record.getApplicantId()); @@ -956,21 +1097,21 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { private String createCode(String depositoryName, String key) { RLock lock = redissonClient.getLock(key); // 单号(公司简称+仓库简称+年月日+数字(位数设置>=9)) - String code = "GK"; - String nowTime = DateUtil.getNowTime(); - depositoryName = WordUtil.getPinYinHeadChar(depositoryName); - lock.lock(5,TimeUnit.SECONDS); - 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); - lock.unlock(); - orderNumber = String.format("%09d", ObjectFormatUtil.toInteger(orderNumber)); - code = code + depositoryName + nowTime + orderNumber; - return code; + String code = "GK"; + String nowTime = DateUtil.getNowTime(); + depositoryName = WordUtil.getPinYinHeadChar(depositoryName); + lock.lock(5, TimeUnit.SECONDS); + 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); + lock.unlock(); + 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 c69e49e1..49d436b8 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 @@ -2,10 +2,9 @@ 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.entity.*; import com.dreamchaser.depository_manage.mapper.DepositoryMapper; +import com.dreamchaser.depository_manage.mapper.PlaceMapper; import com.dreamchaser.depository_manage.mapper.RoleMapper; import com.dreamchaser.depository_manage.pojo.RoleAndDepository; import com.dreamchaser.depository_manage.service.DepositoryService; @@ -27,6 +26,9 @@ public class DepositoryServiceImpl implements DepositoryService { @Autowired RoleMapper roleMapper; + @Autowired + PlaceMapper placeMapper; + /** * 根据条件插入数据 * @param map 参数map @@ -324,12 +326,14 @@ public class DepositoryServiceImpl implements DepositoryService { for (int i = 0; i < depositories.size(); i++) { Depository d = depositories.get(i); List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(),adminorg); - Map stringObjectMap = InitTreeMenus2(d,childForMaterialTypeByParent); + Map stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent); list.add(stringObjectMap); } return list; } + + /** * 获取当前部门以及公共仓库 * @param adminorg @@ -350,6 +354,9 @@ public class DepositoryServiceImpl implements DepositoryService { } return flag; } + + + // 根据id获取子类 public List findChildForDepositoryByParent(Integer id,String adminorg){ Map param = new HashMap<>(); @@ -359,20 +366,88 @@ public class DepositoryServiceImpl implements DepositoryService { param.put("adminorg",adminorg); } // 获取当前父类的子类 -// List parentByDepository = depositoryMapper.getParentByDepository(id); -// List parentByDepository = depositoryMapper.findDepositoryRecordPByCondition(param); List parentByDepository = depositoryMapper.findDepositoryByAdminorgAndParent(param); if(parentByDepository.size() > 0){ for (int i = 0; i < parentByDepository.size(); i++) { Depository d = parentByDepository.get(i); List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(),adminorg); - result.add(InitTreeMenus2(d,childForMaterialTypeByParent)); + if(childForMaterialTypeByParent != null) { + result.add(InitTreeMenus2(d, childForMaterialTypeByParent)); + }else{ + List placeList = AddPlaceByDid(d); + result.add(InitTreeMenus2(d, placeList)); + } } return result; }else{ return null; } } + + + // 在仓库后添加库位信息 + public List AddPlaceByDid(Depository d){ + if(d != null) { + // 获取当前仓库下的所有库位 + List result = new ArrayList<>(); + // 获取该仓库的排 + List placeXByDid = placeMapper.findPlaceXByDid(d.getId()); + if(placeXByDid.size() > 0) { + for (int i = 1; i <= placeXByDid.get(0); i++) { + Map placeX = new HashMap<>(); + placeX.put("title","第"+i+"排货架"); + placeX.put("id",-1); + Map param = new HashMap<>(); + param.put("did",d.getId()); + param.put("x",i); + List placeByCondition = placeMapper.findPlaceByCondition(param); + if(placeByCondition.size() > 0) { + List children = new ArrayList<>(); + for (int k = 1; k <= placeByCondition.size(); k++) { + Map map = new HashMap<>(); + map.put("title", placeByCondition.get(k - 1).getCode()); + map.put("id", d.getId()+"-"+placeByCondition.get(k - 1).getId()); + children.add(map); + } + placeX.put("children", children); + } + // 获取该仓库该排的列数 + /* + List placeYByDid = placeMapper.findPlaceYByDid(param); + if(placeYByDid.size() > 0) { + List childrenY = new ArrayList<>(); + for (int j = 1; j <= placeYByDid.get(0); j++) { + Map placeY = new HashMap<>(); + placeY.put("title","第"+j+"列"); + placeY.put("id",-1); + childrenY.add(placeY); + param.put("y",j); + // 获取该仓库该排该列的库位 + List placeByCondition = placeMapper.findPlaceByCondition(param); + List children= new ArrayList<>(); + if(placeByCondition.size() > 0) { + for (int k = 1; k <= placeByCondition.size(); k++) { + Map map = new HashMap<>(); + map.put("title", placeByCondition.get(k - 1).getCode()); + map.put("id", d.getId()+"-"+placeByCondition.get(k - 1).getId()); + children.add(map); + } + placeY.put("children", children); + } + } + placeX.put("children",childrenY); + }*/ + result.add(placeX); + } + } + return result; + } + else { + return null; + } + } + + // 构造树形组件数据模板 public Map InitTreeMenus2(Depository d,List children){ if(d != null) { 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 1a5c0e6a..8649418c 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 @@ -1,13 +1,11 @@ package com.dreamchaser.depository_manage.service.impl; import com.alibaba.fastjson.JSON; -import com.dreamchaser.depository_manage.entity.ExcelInfo; -import com.dreamchaser.depository_manage.entity.ExcelInfoByInventory; -import com.dreamchaser.depository_manage.entity.ExcelInfoByMT; -import com.dreamchaser.depository_manage.entity.Material; +import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.service.ExcelService; import com.dreamchaser.depository_manage.service.MaterialService; import com.dreamchaser.depository_manage.service.MaterialTypeService; +import com.dreamchaser.depository_manage.service.PlaceService; import com.dreamchaser.depository_manage.utils.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -16,10 +14,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.util.*; import static com.dreamchaser.depository_manage.utils.FileUtil.uploadFile; @@ -37,6 +33,9 @@ public class ExcelServiceImpl implements ExcelService { @Autowired MaterialTypeService materialTypeService; + + @Autowired + PlaceService placeService; /** * 用于导入物料名称 * @param file @@ -206,41 +205,108 @@ public class ExcelServiceImpl implements ExcelService { } // 3.读取excel文件 Map readResult = excelutil.simpleExcelRead(filePath, ExcelInfoByInventory.class); - List excelVos = (List) readResult.get("dataList"); + List excelInfoByInventories = (List) readResult.get("dataList"); List errMsg =(List) readResult.get("errMsg"); - boolean empty = CollectionUtil.isEmpty(excelVos); - if ((CollectionUtil.isEmpty(excelVos) && errMsg.size() < 1) || (excelVos.size() < 2 && errMsg.size() < 1) ) { + List dataIndex =(List) readResult.get("dataIndex"); + boolean empty = CollectionUtil.isEmpty(excelInfoByInventories); + if ((CollectionUtil.isEmpty(excelInfoByInventories) && errMsg.size() < 1) || (excelInfoByInventories.size() < 2 && errMsg.size() < 1) ) { log.error("【导入Excel文件】上传Excel文件{}为空", file.getOriginalFilename()); return ResultVoUtil.error("上传Excel文件为空"); } - if ((CollectionUtil.isEmpty(excelVos) && errMsg.size() < 1) || (excelVos.size() < 2 && errMsg.size() < 1) ) { + if ((CollectionUtil.isEmpty(excelInfoByInventories) && errMsg.size() < 1) || (excelInfoByInventories.size() < 2 && errMsg.size() < 1) ) { log.error("【导入Excel文件】上传Excel文件{}为空", file.getOriginalFilename()); return ResultVoUtil.error("上传Excel文件为空"); } + + List excelVos = new ArrayList<>(); + // 判断当前库位码是否正确,并存入库位中 + for (int i = 0; i < excelInfoByInventories.size(); i++) { + Material materialByCode = materialService.findMaterialByCode(excelInfoByInventories.get(i).getCode()); + String placeCode = excelInfoByInventories.get(i).getDepositoryCode(); + Integer depositoryId = excelInfoByInventories.get(i).getDepositoryId(); + // 如果导入时输入库位信息 + if(!placeCode.isEmpty()) { + Map placeMap = new HashMap<>(); + placeMap.put("did",depositoryId); + placeMap.put("code",placeCode); + // 根据仓库及库位码获取库位 + List placeByCondition = placeService.findPlaceByCondition(placeMap); + if(placeByCondition.size()>0){ + // 如果有库位 + Place place = placeByCondition.get(0); + // 如果库位有物料 + if(!Objects.equals(place.getMid(), materialByCode.getId())) { + // 如果该库位的物料不是当前物料 + String s = dataIndex.get(i); + String msg = s + "出现异常:" + excelInfoByInventories.get(i).getDepositoryCode() + " 该库位已有物料"; + errMsg.add(msg); + continue; + }else { + // 如果当前库位没有物料或该库位存放的物料为当前物料 + Integer quantity = ObjectFormatUtil.toInteger(excelInfoByInventories.get(i).getQuantity()); + if(quantity > place.getMax() - place.getQuantity()){ + // 如果当前库位无法放下 + String s = dataIndex.get(i); + String msg = s + "出现异常:" + excelInfoByInventories.get(i).getDepositoryCode() + " 该库位无法存放当前数目的物料"; + errMsg.add(msg); + continue; + }else { + Map updatePlace = new HashMap<>(); + updatePlace.put("mid", materialByCode.getId()); + updatePlace.put("id", place.getId()); + updatePlace.put("quantity",quantity + place.getQuantity()); + excelVos.add(excelInfoByInventories.get(i)); + placeService.UpdatePlace(updatePlace); + } + } + }else{ + String s = dataIndex.get(i); + String msg = s + "出现异常:" + excelInfoByInventories.get(i).getDepositoryCode() + " 该仓库没有该库位"; + errMsg.add(msg); + continue; + } + } + } + + readResult.put("dataList",excelVos); // 4.通过线程池开启一个线程去执行数据库操作,主线程继续往下执行 // 4.1开启一个线程 TaskCenterUtil taskCenterUtil = TaskCenterUtil.getTaskCenterUtil(); taskCenterUtil.submitTask(() -> { List success = new ArrayList<>(); Map returnResult = new HashMap<>(); - for (int i = 0; i < excelVos.size(); i++) { + // 获取对应物料 + Material materialByCode = materialService.findMaterialByCode(excelVos.get(i).getCode()); Map update = new HashMap<>(); - update.put("price",excelVos.get(i).getPrice()); - update.put("quantity",excelVos.get(i).getQuantity()); + Integer depositoryId = excelVos.get(i).getDepositoryId(); + update.put("quantity",String.valueOf(ObjectFormatUtil.toInteger(excelVos.get(i).getQuantity()) + materialByCode.getQuantity())); + // 如果模板中总金额未填写 if(excelVos.get(i).getAmounts() == null || "".equals(excelVos.get(i).getAmounts())){ - update.put("amounts",Double.parseDouble(excelVos.get(i).getPrice())*100 * Double.parseDouble(excelVos.get(i).getQuantity())); + // 求均值 + // 总金额 + Double amounts = Double.parseDouble(excelVos.get(i).getPrice())*100 * Double.parseDouble(excelVos.get(i).getQuantity()); + update.put("amounts",String.valueOf(materialByCode.getAmounts()+amounts)); + // 保留两位 + Double avgPrice = (materialByCode.getAmounts()+amounts) / (Double.parseDouble(excelVos.get(i).getQuantity()) + materialByCode.getQuantity() ); + BigDecimal bg = new BigDecimal(avgPrice); + avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + update.put("price",String.valueOf(avgPrice)); }else { - update.put("amounts", Double.parseDouble(excelVos.get(i).getAmounts()) * 100); + // 求均值 + update.put("amounts", String.valueOf(materialByCode.getAmounts()+Double.parseDouble(excelVos.get(i).getAmounts()) * 100)); + Double avgPrice = (materialByCode.getAmounts()+Double.parseDouble(excelVos.get(i).getAmounts()) * 100) / ((Double.parseDouble(excelVos.get(i).getQuantity()) + materialByCode.getQuantity() )); + // 保留两位 + BigDecimal bg = new BigDecimal(avgPrice); + avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + update.put("price",String.valueOf(avgPrice)); } - update.put("depositoryId",excelVos.get(i).getDepositoryId()); + update.put("depositoryId", depositoryId); update.put("depositoryCode",excelVos.get(i).getDepositoryCode()); - Material materialByCode = materialService.findMaterialByCode(excelVos.get(i).getCode()); update.put("id",materialByCode.getId()); materialService.updateMaterial(update); success.add(excelVos.get(i)); } - log.info("【批量添加】批量添加数据:{}", JSON.toJSONString(excelVos)); returnResult.put("success",success); returnResult.put("errMsg",errMsg); 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 2db3d4d9..7b7a4888 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 @@ -8,7 +8,9 @@ import com.dreamchaser.depository_manage.mapper.MaterialMapper; import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; import com.dreamchaser.depository_manage.pojo.DepositoryRecordP; import com.dreamchaser.depository_manage.pojo.MaterialP; +import com.dreamchaser.depository_manage.pojo.PlaceP; import com.dreamchaser.depository_manage.service.MaterialService; +import com.dreamchaser.depository_manage.service.PlaceService; import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.utils.HttpUtils; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; @@ -37,6 +39,9 @@ public class MaterialServiceImpl implements MaterialService { @Autowired RoleService roleService; + @Autowired + PlaceService placeService; + /** * 增加一条库存记录 * @@ -121,11 +126,58 @@ public class MaterialServiceImpl implements MaterialService { list.get(i).setAmounts(list.get(i).getAmounts() / 100); // 获取当前物料所处仓库 Integer depositoryId = list.get(i).getDepositoryId(); + // 获取当前物料所处库位 + Integer mid = list.get(i).getId(); + List placeByMidAndDid = placeService.findPlaceByMidAndDid(mid, depositoryId); + StringBuilder placeCode = new StringBuilder(); + for (int j = 0; j < placeByMidAndDid.size(); j++) { + placeCode.append(placeByMidAndDid.get(j).getCode()).append(" "); + } + if(depositoryId != null){ + Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(depositoryId); + String code = depositoryRecordById.getCode(); + list.get(i).setDepositoryCode(code); + } + list.get(i).setPlaceCode(placeCode.toString()); + } + return pack(list); + } + + /** + * 根据条件查询符合条件的库存信息 + * @param map 条件map + * @return 符合条件的库存信息 + */ + @Override + public List findInventory(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); + } + List list=materialMapper.findInventory(map); + 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); + // 获取当前物料所处仓库 + Integer depositoryId = list.get(i).getDepositoryId(); + // 获取当前物料所处库位 + Integer mid = list.get(i).getId(); + List placeByMidAndDid = placeService.findPlaceByMidAndDid(mid, depositoryId); + StringBuilder placeCode = new StringBuilder(); + for (int j = 0; j < placeByMidAndDid.size(); j++) { + placeCode.append(placeByMidAndDid.get(j).getCode()).append(" "); + } if(depositoryId != null){ Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(depositoryId); - String code = depositoryRecordById.getCode() + "-" +list.get(i).getDepositoryCode(); + String code = depositoryRecordById.getCode(); list.get(i).setDepositoryCode(code); } + list.get(i).setPlaceCode(placeCode.toString()); } return pack(list); } @@ -324,7 +376,7 @@ public class MaterialServiceImpl implements MaterialService { if(childForMaterialTypeByParent != null) { stringObjectMap = InitTreeMenus(mt, childForMaterialTypeByParent); }else{ - List materialByType = AddMaterialByType(mt,mname,""); + List materialByType = AddMaterialByType(mt,mname,adminorg); stringObjectMap = InitTreeMenus(mt, materialByType); } list.add(stringObjectMap); @@ -387,6 +439,16 @@ public class MaterialServiceImpl implements MaterialService { } 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; + } + } + if(flag){ + continue; + } materialPByCondition.add(materialByDepositorys.get(i)); } } 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 0107042e..abfb8a85 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 @@ -1,11 +1,17 @@ package com.dreamchaser.depository_manage.service.impl; +import com.dreamchaser.depository_manage.entity.Depository; +import com.dreamchaser.depository_manage.entity.MaterialAndPlace; import com.dreamchaser.depository_manage.entity.Place; import com.dreamchaser.depository_manage.mapper.PlaceMapper; +import com.dreamchaser.depository_manage.pojo.PlaceP; +import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.PlaceService; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -16,6 +22,9 @@ public class PlaceServiceImpl implements PlaceService { @Autowired PlaceMapper placeMapper; + @Autowired + DepositoryService depositoryService; + /** * 查找所有库位 * @return @@ -31,23 +40,28 @@ public class PlaceServiceImpl implements PlaceService { */ @Override public List findPlaceByCondition(Map map) { - Map condition = new HashMap<>(); if(map.containsKey("place_x")){ - condition.put("x",map.get("place_x")); + map.put("x",map.get("place_x")); + map.remove("place_x"); } if(map.containsKey("place_y")){ - condition.put("y",map.get("place_y")); + map.put("y",map.get("place_y")); + map.remove("place_y"); } if(map.containsKey("place_z")){ - condition.put("z",map.get("place_z")); + map.put("z",map.get("place_z")); + map.remove("place_z"); } - if(map.containsKey("code")){ - condition.put("code",map.get("code")); + Integer size = 10, page = 1; + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); } - if(map.containsKey("state")){ - condition.put("state",map.get("state")); + if (map.containsKey("page")) { + page = ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin", (page - 1) * size); } - return placeMapper.findPlaceByCondition(condition); + return placeMapper.findPlaceByCondition(map); } /** * 查找符合条件的库位数 @@ -56,6 +70,15 @@ public class PlaceServiceImpl implements PlaceService { */ @Override public Integer findPlaceCountByCondition(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 placeMapper.findPlaceCountByCondition(map); } @@ -93,6 +116,13 @@ public class PlaceServiceImpl implements PlaceService { */ @Override public Integer InsertPlace(Map map) { + Map param = new HashMap<>(); + param.put("did",map.get("did")); + param.put("code",map.get("code")); + List placeByCondition = placeMapper.findPlaceByCondition(param); + if(placeByCondition.size() > 0){ + return 1; + } return placeMapper.InsertPlace(map); } /** @@ -133,4 +163,46 @@ public class PlaceServiceImpl implements PlaceService { public Integer changeStateToDeletedByIds(List ids) { return placeMapper.changeStateToDeletedByIds(ids); } + + /** + * 根据物料与所处仓库获取库位 + * @param mid + * @return + */ + @Override + public List findPlaceByMidAndDid(Integer mid,Integer depositoryId) { + Map map = new HashMap<>(); + map.put("mid",mid); + map.put("did",depositoryId); + List placeByCondition = placeMapper.findPlaceByMidAndDid(map); + List placePList = new ArrayList<>(); + for (int i = 0; i < placeByCondition.size(); i++) { + Place place = placeByCondition.get(i); + PlaceP pp = new PlaceP(place); + Depository depositoryRecordById = depositoryService.findDepositoryRecordById(place.getDid()); + pp.setDepositoryName(depositoryRecordById.getDname()); + placePList.add(pp); + } + return placePList; + } + + /** + * 根据库位获取当前库位所存储的物料 + */ + @Override + public List findPlaceAndMaterialByPid(Integer id) { + return placeMapper.findPlaceAndMaterialByPid(id); + } + + /** + * 根据当前库位编号及物料编号获取具体库位 + */ + @Override + public MaterialAndPlace findPlaceAndMaterialByMidAndPid(Integer pid, Integer mid) { + Map map = new HashMap<>(); + map.put("mid",mid); + map.put("pid",pid); + return placeMapper.findPlaceAndMaterialByMidAndPid(map); + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java index 79df33c9..14512ff9 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/excelUtil.java @@ -52,10 +52,12 @@ public class excelUtil { log.error("有"+errNum +"行出错"); } List dataList = excelListener.getDataList(); + List dataIndex = excelListener.getDataIndex(); List errMsg = excelListener.retrunErrMsg(); Map result = new HashMap<>(); result.put("dataList",dataList); result.put("errMsg",errMsg); + result.put("dataIndex",dataIndex); return result; } diff --git a/src/main/resources/templates/pages/application/application-in.html b/src/main/resources/templates/pages/application/application-in.html index 88b46f9f..4f50dba8 100644 --- a/src/main/resources/templates/pages/application/application-in.html +++ b/src/main/resources/templates/pages/application/application-in.html @@ -83,6 +83,8 @@ lay-verify="required"/> +
@@ -184,8 +186,22 @@ success: function (data) { layer.close(this.layerIndex); if (data.status >= 300) { - layer.msg(data.statusInfo.detail);//失败的表情 - return; + // layer.msg(data.statusInfo.detail);//失败的表情 + var d = data.data; + var err = d["err"]; + var success = d["success"]; + var errMsg = ""; + for (let i = 0; i < err.length; i++) { + errMsg += "物料编码: " + errMsg += err[i]["code"]; + } + errMsg += "添加失败,请选择新仓库或库位"; + layer.msg(errMsg,{ + icon:1, + time:500 + },function () { + step.next('#stepForm'); + }); } else { layer.msg("申请提交成功", { icon: 6,//成功的表情 @@ -267,6 +283,9 @@ lay-verify="required"/> + +
@@ -281,7 +300,7 @@ // 获取当前高度 var height = parseInt(($("#stepForm").css('height')).split("px")[0]); params.push(NewIdNumber) - $("#stepForm").css("height",height+430 +'px'); + $("#stepForm").css("height",height+475 +'px'); $("#"+parentId).after(materialItem); }; @@ -294,7 +313,7 @@ // 获取祖父节点 var reparent = parent.parentNode; var height = parseInt(($("#stepForm").css('height')).split("px")[0]); - $("#stepForm").css("height",height-430 +'px'); + $("#stepForm").css("height",height-475 +'px'); params = remove(params,parentId); reparent.removeChild(parent); }; @@ -323,10 +342,14 @@ var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + var req = {}; + req.code = code; + req.type = "in"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:req, contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; @@ -373,7 +396,8 @@ dataType: 'json', contentType: "application/json;charset=utf-8", success: function (d) { - var code = d.data.code; + var material = d.data.materialById; + var code = material.code; if(code === undefined){ code = ""; } diff --git a/src/main/resources/templates/pages/application/application-in_back.html b/src/main/resources/templates/pages/application/application-in_back.html index 83f8b1d7..72d5f339 100644 --- a/src/main/resources/templates/pages/application/application-in_back.html +++ b/src/main/resources/templates/pages/application/application-in_back.html @@ -117,10 +117,14 @@ $("#code").blur(function () { var code = $(this).val(); + var req = {}; + req.code = code; + req.type = "in"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:(req), contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; diff --git a/src/main/resources/templates/pages/application/application-out.html b/src/main/resources/templates/pages/application/application-out.html index 5d856ac2..3dad98cb 100644 --- a/src/main/resources/templates/pages/application/application-out.html +++ b/src/main/resources/templates/pages/application/application-out.html @@ -56,6 +56,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -131,8 +137,6 @@ var $ = layui.$, form = layui.form, step = layui.step; - - // 用于分步表单加载 step.render({ elem: '#stepForm', @@ -222,6 +226,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -281,10 +291,14 @@ var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + var req = {}; + req.code = code; + req.type = "out"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:(req), contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; @@ -293,9 +307,26 @@ materialName.value = ""; materialId.value = ""; obj.value = ""; + $('#place').empty(); }else{ - materialName.value = d.mname; - materialId.value = d.id; + req.mid = d.id; + $.ajax({ + url: "/place/findPlaceByMid", + type: "post", + dataType: 'json', + data:JSON.stringify(req), + contentType: "application/json;charset=utf-8", + success:function (res) { + $('#place').empty(); + $.each(res.data, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); + materialName.value = d.mname; + materialId.value = d.id; + } + }); + } } }); @@ -331,11 +362,18 @@ dataType: 'json', contentType: "application/json;charset=utf-8", success: function (d) { - var code = d.data.code; + var material = d.data.materialById; + var placeList = d.data.placeList; + var code = material.code; if(code === undefined){ code = ""; } codeValue.value = code; + $('#place').empty(); + $.each(placeList, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); } }); @@ -382,6 +420,7 @@ materialName.value = material.mname; materialId.value = material.id; codeValue.value = material.code; + } } }); diff --git a/src/main/resources/templates/pages/application/application-out_back.html b/src/main/resources/templates/pages/application/application-out_back.html index 1ef9201a..6a5008f9 100644 --- a/src/main/resources/templates/pages/application/application-out_back.html +++ b/src/main/resources/templates/pages/application/application-out_back.html @@ -96,10 +96,14 @@ step = layui.step; $("#code").blur(function () { var code = $(this).val(); + var req = {}; + req.code = code; + req.type = "out"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:(req), contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; diff --git a/src/main/resources/templates/pages/application/application-review.html b/src/main/resources/templates/pages/application/application-review.html index 3efaf17c..8ba12cd6 100644 --- a/src/main/resources/templates/pages/application/application-review.html +++ b/src/main/resources/templates/pages/application/application-review.html @@ -39,6 +39,10 @@ 仓库名称 外芯仓库 + + 所处库位 + + 数量 数量 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 1a10557e..a570d70a 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 @@ -38,6 +38,10 @@ 仓库名称 外芯仓库 + + 所处库位 + 0000 + 数量 409 diff --git a/src/main/resources/templates/pages/depository/table-stock.html b/src/main/resources/templates/pages/depository/table-stock.html index b527acaa..4426328d 100644 --- a/src/main/resources/templates/pages/depository/table-stock.html +++ b/src/main/resources/templates/pages/depository/table-stock.html @@ -121,7 +121,8 @@ {field: 'code',width: 200,title: '存货编码',sort: true}, {field: 'typeName', width: '10%', title: '物料类型'}, {field: 'depositoryName', width: '12%', title: '仓库名称'}, - {field: 'depositoryCode', width: '12%', title: '仓库编号'}, + {field: 'depositoryCode', width: '12%', title: '仓库编码'}, + {field: 'placeCode', width: '12%', title: '库位编码'}, {field: 'quantity', width: '10%', title: '数量', sort: true}, {field: 'price', title: '单价', width: '8%', sort: true}, {field: 'amounts', title: '总金额', minWidth: 150, sort: true}, @@ -293,6 +294,7 @@ //如果上传成功 if(res.code == 200){ var re = ""; + console.log(res) for (let i = 0; i < res.data.errMsg.length; i++) { var show = "

"+res.data.errMsg[i] + ":错误"+"

" re += show diff --git a/src/main/resources/templates/pages/material/selectDepositoryByCard.html b/src/main/resources/templates/pages/material/selectDepositoryByCard.html index f8763cf5..f871243d 100644 --- a/src/main/resources/templates/pages/material/selectDepositoryByCard.html +++ b/src/main/resources/templates/pages/material/selectDepositoryByCard.html @@ -28,6 +28,16 @@ , data: [] , onlyIconControl: true //是否仅允许节点左侧图标控制展开收缩 , click: function (obj) { + var data = obj.data; + if(data.id === -1 ){ + return false; + } + // 用于判断是库位还是仓库 + var flag = false; + var dataId = data.id; + if(typeof dataId === "string"){ + flag = true; + } var windowParent = $("#" + clickObj, window.parent.document)[0]; var depositoryChildren = null; if (windowParent.childNodes.length === 17) { @@ -38,8 +48,25 @@ var depositoryItem = depositoryChildren.childNodes[3].childNodes; var depositoryName = depositoryItem[1]; var depositoryId = depositoryItem[3]; - depositoryName.value = obj.data.title; - depositoryId.value = obj.data.id; + var placeId = depositoryItem[5]; + if(!flag) { + depositoryName.value = obj.data.title; + depositoryId.value = obj.data.id; + placeId.value = -1; + }else{ + var did = dataId.split("-"); + $.ajax({ + url: "/repository/findDepositoryByDid?depositoryId=0" + did[0], + type: 'get', + dataType: 'json', + contentType: "application/json;charset=utf-8", + success:function (d) { + depositoryName.value = d.data.dname +"-"+ obj.data.title; + } + }); + depositoryId.value = did[0]; + placeId.value = did[1]; + } var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); } diff --git a/src/main/resources/templates/pages/place/place_add.html b/src/main/resources/templates/pages/place/place_add.html index dc681427..513f9422 100644 --- a/src/main/resources/templates/pages/place/place_add.html +++ b/src/main/resources/templates/pages/place/place_add.html @@ -28,13 +28,13 @@ name="place_x" lay-verify="required"/>
-
+
@@ -84,7 +84,7 @@ form = layui.form, layer = layui.layer; - var depositoryId = $("#depositoryId").val(); + var depositoryId = $("#depositoryID").val(); form.on('submit(formStep)', function (data) { var req = data.field; req.type = "one"; diff --git a/src/main/resources/templates/pages/place/place_edit.html b/src/main/resources/templates/pages/place/place_edit.html index 3718bfa0..9076486f 100644 --- a/src/main/resources/templates/pages/place/place_edit.html +++ b/src/main/resources/templates/pages/place/place_edit.html @@ -86,6 +86,7 @@ layer = layui.layer; var depositoryId = $("#depositoryId").val(); + console.log(depositoryId); form.on('submit(formStep)', function (data) { var req = data.field; req.type = "one"; diff --git a/src/main/resources/templates/pages/warehouse/warehouseByParentId.html b/src/main/resources/templates/pages/warehouse/warehouseByParentId.html index fd0af77c..7b1a97fe 100644 --- a/src/main/resources/templates/pages/warehouse/warehouseByParentId.html +++ b/src/main/resources/templates/pages/warehouse/warehouseByParentId.html @@ -170,7 +170,7 @@ table.on('toolbar(currentTableFilter)', function (obj) { if (obj.event === 'add') { // 监听添加操作 var index = layer.open({ - title: '申请提交', + title: '库位增加', type: 2, shade: 0.2, maxmin: true, @@ -185,44 +185,60 @@ else if (obj.event === 'delete') { // 监听删除操作 var checkStatus = table.checkStatus('currentTableId') , data = checkStatus.data; - var req={}; - req.ids=[]; - for (i=0,len=data.length;i= 300){ - layer.msg(data.statusInfo.message);//失败的表情 - return; - }else{ - layer.msg("删除成功", { - icon: 6,//成功的表情 - time: 500 //1秒关闭(如果不配置,默认是3秒) - }); - //执行搜索重载 - table.reload('currentTableId', { - url: '/place/findPlace', - page: { - curr: 1 - } - }, 'data'); - return false; + if (req.ids.length > 0) { + $.ajax({ + url: '/place/deletePlace', + dataType: 'json', + type: 'POST', + contentType: "application/json;charset=utf-8", + data: JSON.stringify(req), + beforeSend: function () { + this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); + }, + success: function (data) { + layer.close(this.layerIndex); + if (data.status >= 300) { + layer.msg(data.statusInfo.message);//失败的表情 + return; + } else { + layer.msg("删除成功", { + icon: 6,//成功的表情 + time: 500 //1秒关闭(如果不配置,默认是3秒) + }); + //执行搜索重载 + table.reload('currentTableId', { + url: '/place/findPlace', + page: { + curr: 1 + } + }, 'data'); + return false; + } } - } - }) + }) + }else{ + layer.msg("未选中记录,请确认!"); + return false; + } } else if(obj.event === 'addList'){ - + var index = layer.open({ + title: '批量增加', + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: true, + area: ['100%', '100%'], + content: '/insertListPlace?depositoryId='+parentId, + }); + $(window).on("resize", function () { + layer.full(index); + }); } }); @@ -245,7 +261,7 @@ content: '/placeView?id='+data.id, end:function () { req = {}; - req.parentId = parentId; + req.did = parentId; //执行搜索重载 table.reload('currentTableId', { url: '/place/findPlace', diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index 849f29f7..20735aa5 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -57,11 +57,11 @@ @@ -353,6 +354,9 @@ and istransfer = #{istransfer} + + and placeId = #{placeId} + LIMIT #{begin},#{size} @@ -377,6 +381,13 @@ where aorid = #{id} + + + + + + + + + diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml index 88de9854..d9175c41 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml @@ -16,13 +16,30 @@ + + + + + + + + + + + + - p.id,p.x,p.y,p.z,p.code,p.mid,p.did,p.min,p.max,p.state + p.id,p.x,p.y,p.z,p.code,p.mid,p.did,p.min,p.max,p.state,p.quantity + + mp.id,mp.mid,mp.pid,mp.quantity,p.code,p.max,p.min,p.did + + + + + + + + + + + INSERT INTO place ( - id,x,y,z,code, mid,did,min,max,state + id,x,y,z,code, mid,did,min,max,state,quantity ) VALUES ( #{id}, #{x}, @@ -133,10 +191,25 @@ #{did}, #{min}, #{max}, - #{state} + #{state}, + #{quantity} ) + + insert into materialandplace(id,mid,pid,quantity) + values ( + #{id}, + #{mid}, + #{pid}, + #{quantity} + ) + + + + DELETE FROM materialandplace WHERE id = #{id} + + UPDATE place @@ -166,12 +239,30 @@ max = #{max}, - state = #{state} + state = #{state}, + + + quantity = #{quantity} WHERE id = #{id} + + update materialandplace + + + mid = #{mid}, + + + quantity = #{quantity}, + + + pid = #{pid} + + + where id = #{id} + @@ -201,4 +292,17 @@ WHERE id = #{id} + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/application/application-in.html b/target/classes/templates/pages/application/application-in.html index 88b46f9f..4f50dba8 100644 --- a/target/classes/templates/pages/application/application-in.html +++ b/target/classes/templates/pages/application/application-in.html @@ -83,6 +83,8 @@ lay-verify="required"/> +
@@ -184,8 +186,22 @@ success: function (data) { layer.close(this.layerIndex); if (data.status >= 300) { - layer.msg(data.statusInfo.detail);//失败的表情 - return; + // layer.msg(data.statusInfo.detail);//失败的表情 + var d = data.data; + var err = d["err"]; + var success = d["success"]; + var errMsg = ""; + for (let i = 0; i < err.length; i++) { + errMsg += "物料编码: " + errMsg += err[i]["code"]; + } + errMsg += "添加失败,请选择新仓库或库位"; + layer.msg(errMsg,{ + icon:1, + time:500 + },function () { + step.next('#stepForm'); + }); } else { layer.msg("申请提交成功", { icon: 6,//成功的表情 @@ -267,6 +283,9 @@ lay-verify="required"/> + +
@@ -281,7 +300,7 @@ // 获取当前高度 var height = parseInt(($("#stepForm").css('height')).split("px")[0]); params.push(NewIdNumber) - $("#stepForm").css("height",height+430 +'px'); + $("#stepForm").css("height",height+475 +'px'); $("#"+parentId).after(materialItem); }; @@ -294,7 +313,7 @@ // 获取祖父节点 var reparent = parent.parentNode; var height = parseInt(($("#stepForm").css('height')).split("px")[0]); - $("#stepForm").css("height",height-430 +'px'); + $("#stepForm").css("height",height-475 +'px'); params = remove(params,parentId); reparent.removeChild(parent); }; @@ -323,10 +342,14 @@ var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + var req = {}; + req.code = code; + req.type = "in"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:req, contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; @@ -373,7 +396,8 @@ dataType: 'json', contentType: "application/json;charset=utf-8", success: function (d) { - var code = d.data.code; + var material = d.data.materialById; + var code = material.code; if(code === undefined){ code = ""; } diff --git a/target/classes/templates/pages/application/application-in_back.html b/target/classes/templates/pages/application/application-in_back.html index 83f8b1d7..72d5f339 100644 --- a/target/classes/templates/pages/application/application-in_back.html +++ b/target/classes/templates/pages/application/application-in_back.html @@ -117,10 +117,14 @@ $("#code").blur(function () { var code = $(this).val(); + var req = {}; + req.code = code; + req.type = "in"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:(req), contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; diff --git a/target/classes/templates/pages/application/application-out.html b/target/classes/templates/pages/application/application-out.html index 5d856ac2..3dad98cb 100644 --- a/target/classes/templates/pages/application/application-out.html +++ b/target/classes/templates/pages/application/application-out.html @@ -56,6 +56,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -131,8 +137,6 @@ var $ = layui.$, form = layui.form, step = layui.step; - - // 用于分步表单加载 step.render({ elem: '#stepForm', @@ -222,6 +226,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -281,10 +291,14 @@ var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + var req = {}; + req.code = code; + req.type = "out"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:(req), contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; @@ -293,9 +307,26 @@ materialName.value = ""; materialId.value = ""; obj.value = ""; + $('#place').empty(); }else{ - materialName.value = d.mname; - materialId.value = d.id; + req.mid = d.id; + $.ajax({ + url: "/place/findPlaceByMid", + type: "post", + dataType: 'json', + data:JSON.stringify(req), + contentType: "application/json;charset=utf-8", + success:function (res) { + $('#place').empty(); + $.each(res.data, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); + materialName.value = d.mname; + materialId.value = d.id; + } + }); + } } }); @@ -331,11 +362,18 @@ dataType: 'json', contentType: "application/json;charset=utf-8", success: function (d) { - var code = d.data.code; + var material = d.data.materialById; + var placeList = d.data.placeList; + var code = material.code; if(code === undefined){ code = ""; } codeValue.value = code; + $('#place').empty(); + $.each(placeList, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); } }); @@ -382,6 +420,7 @@ materialName.value = material.mname; materialId.value = material.id; codeValue.value = material.code; + } } }); diff --git a/target/classes/templates/pages/application/application-out_back.html b/target/classes/templates/pages/application/application-out_back.html index 1ef9201a..6a5008f9 100644 --- a/target/classes/templates/pages/application/application-out_back.html +++ b/target/classes/templates/pages/application/application-out_back.html @@ -96,10 +96,14 @@ step = layui.step; $("#code").blur(function () { var code = $(this).val(); + var req = {}; + req.code = code; + req.type = "out"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:(req), contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; diff --git a/target/classes/templates/pages/depository/table-stock.html b/target/classes/templates/pages/depository/table-stock.html index b527acaa..4426328d 100644 --- a/target/classes/templates/pages/depository/table-stock.html +++ b/target/classes/templates/pages/depository/table-stock.html @@ -121,7 +121,8 @@ {field: 'code',width: 200,title: '存货编码',sort: true}, {field: 'typeName', width: '10%', title: '物料类型'}, {field: 'depositoryName', width: '12%', title: '仓库名称'}, - {field: 'depositoryCode', width: '12%', title: '仓库编号'}, + {field: 'depositoryCode', width: '12%', title: '仓库编码'}, + {field: 'placeCode', width: '12%', title: '库位编码'}, {field: 'quantity', width: '10%', title: '数量', sort: true}, {field: 'price', title: '单价', width: '8%', sort: true}, {field: 'amounts', title: '总金额', minWidth: 150, sort: true}, @@ -293,6 +294,7 @@ //如果上传成功 if(res.code == 200){ var re = ""; + console.log(res) for (let i = 0; i < res.data.errMsg.length; i++) { var show = "

"+res.data.errMsg[i] + ":错误"+"

" re += show diff --git a/target/classes/templates/pages/material/selectDepositoryByCard.html b/target/classes/templates/pages/material/selectDepositoryByCard.html index f8763cf5..f871243d 100644 --- a/target/classes/templates/pages/material/selectDepositoryByCard.html +++ b/target/classes/templates/pages/material/selectDepositoryByCard.html @@ -28,6 +28,16 @@ , data: [] , onlyIconControl: true //是否仅允许节点左侧图标控制展开收缩 , click: function (obj) { + var data = obj.data; + if(data.id === -1 ){ + return false; + } + // 用于判断是库位还是仓库 + var flag = false; + var dataId = data.id; + if(typeof dataId === "string"){ + flag = true; + } var windowParent = $("#" + clickObj, window.parent.document)[0]; var depositoryChildren = null; if (windowParent.childNodes.length === 17) { @@ -38,8 +48,25 @@ var depositoryItem = depositoryChildren.childNodes[3].childNodes; var depositoryName = depositoryItem[1]; var depositoryId = depositoryItem[3]; - depositoryName.value = obj.data.title; - depositoryId.value = obj.data.id; + var placeId = depositoryItem[5]; + if(!flag) { + depositoryName.value = obj.data.title; + depositoryId.value = obj.data.id; + placeId.value = -1; + }else{ + var did = dataId.split("-"); + $.ajax({ + url: "/repository/findDepositoryByDid?depositoryId=0" + did[0], + type: 'get', + dataType: 'json', + contentType: "application/json;charset=utf-8", + success:function (d) { + depositoryName.value = d.data.dname +"-"+ obj.data.title; + } + }); + depositoryId.value = did[0]; + placeId.value = did[1]; + } var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); } diff --git a/target/classes/templates/pages/place/place_add.html b/target/classes/templates/pages/place/place_add.html index dc681427..513f9422 100644 --- a/target/classes/templates/pages/place/place_add.html +++ b/target/classes/templates/pages/place/place_add.html @@ -28,13 +28,13 @@ name="place_x" lay-verify="required"/>
-
+
@@ -84,7 +84,7 @@ form = layui.form, layer = layui.layer; - var depositoryId = $("#depositoryId").val(); + var depositoryId = $("#depositoryID").val(); form.on('submit(formStep)', function (data) { var req = data.field; req.type = "one"; diff --git a/target/classes/templates/pages/place/place_edit.html b/target/classes/templates/pages/place/place_edit.html index 3718bfa0..9076486f 100644 --- a/target/classes/templates/pages/place/place_edit.html +++ b/target/classes/templates/pages/place/place_edit.html @@ -86,6 +86,7 @@ layer = layui.layer; var depositoryId = $("#depositoryId").val(); + console.log(depositoryId); form.on('submit(formStep)', function (data) { var req = data.field; req.type = "one"; diff --git a/target/classes/templates/pages/warehouse/warehouseByParentId.html b/target/classes/templates/pages/warehouse/warehouseByParentId.html index fd0af77c..7b1a97fe 100644 --- a/target/classes/templates/pages/warehouse/warehouseByParentId.html +++ b/target/classes/templates/pages/warehouse/warehouseByParentId.html @@ -170,7 +170,7 @@ table.on('toolbar(currentTableFilter)', function (obj) { if (obj.event === 'add') { // 监听添加操作 var index = layer.open({ - title: '申请提交', + title: '库位增加', type: 2, shade: 0.2, maxmin: true, @@ -185,44 +185,60 @@ else if (obj.event === 'delete') { // 监听删除操作 var checkStatus = table.checkStatus('currentTableId') , data = checkStatus.data; - var req={}; - req.ids=[]; - for (i=0,len=data.length;i= 300){ - layer.msg(data.statusInfo.message);//失败的表情 - return; - }else{ - layer.msg("删除成功", { - icon: 6,//成功的表情 - time: 500 //1秒关闭(如果不配置,默认是3秒) - }); - //执行搜索重载 - table.reload('currentTableId', { - url: '/place/findPlace', - page: { - curr: 1 - } - }, 'data'); - return false; + if (req.ids.length > 0) { + $.ajax({ + url: '/place/deletePlace', + dataType: 'json', + type: 'POST', + contentType: "application/json;charset=utf-8", + data: JSON.stringify(req), + beforeSend: function () { + this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']}); + }, + success: function (data) { + layer.close(this.layerIndex); + if (data.status >= 300) { + layer.msg(data.statusInfo.message);//失败的表情 + return; + } else { + layer.msg("删除成功", { + icon: 6,//成功的表情 + time: 500 //1秒关闭(如果不配置,默认是3秒) + }); + //执行搜索重载 + table.reload('currentTableId', { + url: '/place/findPlace', + page: { + curr: 1 + } + }, 'data'); + return false; + } } - } - }) + }) + }else{ + layer.msg("未选中记录,请确认!"); + return false; + } } else if(obj.event === 'addList'){ - + var index = layer.open({ + title: '批量增加', + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: true, + area: ['100%', '100%'], + content: '/insertListPlace?depositoryId='+parentId, + }); + $(window).on("resize", function () { + layer.full(index); + }); } }); @@ -245,7 +261,7 @@ content: '/placeView?id='+data.id, end:function () { req = {}; - req.parentId = parentId; + req.did = parentId; //执行搜索重载 table.reload('currentTableId', { url: '/place/findPlace',