diff --git a/src/main/java/com/jsh/erp/controller/MaterialController.java b/src/main/java/com/jsh/erp/controller/MaterialController.java index b2c59a47..d2085027 100644 --- a/src/main/java/com/jsh/erp/controller/MaterialController.java +++ b/src/main/java/com/jsh/erp/controller/MaterialController.java @@ -152,7 +152,8 @@ public class MaterialController { * @return */ @GetMapping(value = "/findBySelect") - public JSONObject findBySelect(@RequestParam(value = "q", required = false) String q, + public JSONObject findBySelect(@RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "q", required = false) String q, @RequestParam("mpList") String mpList, @RequestParam(value = "depotId", required = false) Long depotId, @RequestParam("page") Integer currentPage, @@ -161,9 +162,9 @@ public class MaterialController { JSONObject object = new JSONObject(); try { Long tenantId = Long.parseLong(request.getSession().getAttribute("tenantId").toString()); - List dataList = materialService.findBySelectWithBarCode(q, (currentPage-1)*pageSize, pageSize); + List dataList = materialService.findBySelectWithBarCode(categoryId, q, (currentPage-1)*pageSize, pageSize); String[] mpArr = mpList.split(","); - int total = materialService.findBySelectWithBarCodeCount(q); + int total = materialService.findBySelectWithBarCodeCount(categoryId, q); object.put("total", total); JSONArray dataArray = new JSONArray(); //存放数据json数组 diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialCategoryMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialCategoryMapperEx.java index 063b3634..91f9f4ea 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialCategoryMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialCategoryMapperEx.java @@ -37,4 +37,6 @@ public interface MaterialCategoryMapperEx { List getMaterialCategoryBySerialNo(@Param("serialNo") String serialNo, @Param("id") Long id); List getMaterialCategoryListByCategoryIds(@Param("parentIds") String[] categoryIds); + + List getListByParentId(Long parentId); } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java index b272c8b9..786a8e77 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java @@ -41,11 +41,13 @@ public interface MaterialMapperEx { List findByIdWithBarCode(@Param("meId") Long meId); - List findBySelectWithBarCode(@Param("q") String q, + List findBySelectWithBarCode(@Param("idList") List idList, + @Param("q") String q, @Param("offset") Integer offset, @Param("rows") Integer rows); - int findBySelectWithBarCodeCount(@Param("q") String q); + int findBySelectWithBarCodeCount(@Param("idList") List idList, + @Param("q") String q); List findByAll( @Param("name") String name, diff --git a/src/main/java/com/jsh/erp/service/material/MaterialService.java b/src/main/java/com/jsh/erp/service/material/MaterialService.java index 7f51c84b..f0697214 100644 --- a/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -46,6 +46,8 @@ public class MaterialService { @Resource private MaterialExtendMapperEx materialExtendMapperEx; @Resource + private MaterialCategoryMapperEx materialCategoryMapperEx; + @Resource private LogService logService; @Resource private UserService userService; @@ -338,26 +340,57 @@ public class MaterialService { return list; } - public List findBySelectWithBarCode(String q,Integer offset, Integer rows)throws Exception{ + public List getListByParentId(Long parentId) { + List idList = new ArrayList(); + List list = materialCategoryMapperEx.getListByParentId(parentId); + idList.add(parentId); + if(list!=null && list.size()>0) { + getIdListByParentId(idList, parentId); + } + return idList; + } + + public List getIdListByParentId(List idList, Long parentId){ + List list = materialCategoryMapperEx.getListByParentId(parentId); + if(list!=null && list.size()>0) { + for(MaterialCategory mc : list){ + idList.add(mc.getId()); + getIdListByParentId(idList, mc.getId()); + } + } + return idList; + } + + public List findBySelectWithBarCode(Long categoryId, String q, Integer offset, Integer rows)throws Exception{ List list =null; try{ + List idList = new ArrayList<>(); + if(categoryId!=null){ + Long parentId = categoryId; + idList = getListByParentId(parentId); + } if(StringUtil.isNotEmpty(q)) { q = q.replace("'", ""); } - list= materialMapperEx.findBySelectWithBarCode(q, offset, rows); + list= materialMapperEx.findBySelectWithBarCode(idList, q, offset, rows); }catch(Exception e){ JshException.readFail(logger, e); } return list; } - public int findBySelectWithBarCodeCount(String q)throws Exception{ + public int findBySelectWithBarCodeCount(Long categoryId, String q)throws Exception{ int result=0; try{ + List idList = new ArrayList<>(); + if(categoryId!=null){ + Long parentId = categoryId; + idList = getListByParentId(parentId); + } if(StringUtil.isNotEmpty(q)) { q = q.replace("'", ""); } - result = materialMapperEx.findBySelectWithBarCodeCount(q); + result = materialMapperEx.findBySelectWithBarCodeCount(idList, q); }catch(Exception e){ logger.error("异常码[{}],异常提示[{}],异常[{}]", ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e); diff --git a/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml b/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml index 83a8258b..f225dfed 100644 --- a/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml +++ b/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml @@ -46,6 +46,10 @@ ofType="com.jsh.erp.datasource.vo.TreeNode" select="getNextNodeTree"/> + + + + id, name @@ -123,4 +127,12 @@ and ifnull(status,'0') !='2' + + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/MaterialMapperEx.xml b/src/main/resources/mapper_xml/MaterialMapperEx.xml index e8b98af2..932244db 100644 --- a/src/main/resources/mapper_xml/MaterialMapperEx.xml +++ b/src/main/resources/mapper_xml/MaterialMapperEx.xml @@ -106,6 +106,12 @@ and (m.name like '%${q}%' or me.bar_code like '%${q}%') + + and m.category_id in + + #{item} + + and ifnull(m.delete_flag,'0') !='1' ORDER BY id desc @@ -121,6 +127,12 @@ and (m.name like '%${q}%' or me.bar_code like '%${q}%') + + and m.category_id in + + #{item} + + and ifnull(m.delete_flag,'0') !='1'