diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java index 2d405b76..dfc330f3 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -61,28 +61,21 @@ public class DepotItemController { private RedisService redisService; /** - * 只根据商品id查询单据列表 + * 根据仓库和商品查询单据列表 * @param mId * @param request * @return */ - @GetMapping(value = "/findDetailByTypeAndMaterialId") - @ApiOperation(value = "只根据商品id查询单据列表") - public String findDetailByTypeAndMaterialId( + @GetMapping(value = "/findDetailByDepotIdsAndMaterialId") + @ApiOperation(value = "根据仓库和商品查询单据列表") + public String findDetailByDepotIdsAndMaterialId( @RequestParam(value = Constants.PAGE_SIZE, required = false) Integer pageSize, @RequestParam(value = Constants.CURRENT_PAGE, required = false) Integer currentPage, - @RequestParam("materialId") String mId, HttpServletRequest request)throws Exception { - Map parameterMap = ParamUtils.requestToMap(request); - parameterMap.put("mId", mId); - Map objectMap = new HashMap(); - if (pageSize != null && pageSize <= 0) { - pageSize = 10; - } - String offset = ParamUtils.getPageOffset(currentPage, pageSize); - if (StringUtil.isNotEmpty(offset)) { - parameterMap.put(Constants.OFFSET, offset); - } - List list = depotItemService.findDetailByTypeAndMaterialIdList(parameterMap); + @RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam("materialId") Long mId, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + List list = depotItemService.findDetailByDepotIdsAndMaterialIdList(depotIds, mId, (currentPage-1)*pageSize, pageSize); JSONArray dataArray = new JSONArray(); if (list != null) { for (DepotItemVo4DetailByTypeAndMId d: list) { @@ -109,7 +102,7 @@ public class DepotItemController { return returnJson(objectMap, "查找不到数据", ErpInfo.OK.code); } objectMap.put("rows", dataArray); - objectMap.put("total", depotItemService.findDetailByTypeAndMaterialIdCounts(parameterMap)); + objectMap.put("total", depotItemService.findDetailByDepotIdsAndMaterialIdCount(depotIds, mId)); return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index 581b7553..e5830bd2 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -29,12 +29,14 @@ public interface DepotItemMapperEx { @Param("type") Integer type, @Param("remark") String remark); - List findDetailByTypeAndMaterialIdList( + List findDetailByDepotIdsAndMaterialIdList( + @Param("depotIdArray") String[] depotIdArray, @Param("mId") Long mId, @Param("offset") Integer offset, @Param("rows") Integer rows); - Long findDetailByTypeAndMaterialIdCounts( + Long findDetailByDepotIdsAndMaterialIdCount( + @Param("depotIdArray") String[] depotIdArray, @Param("mId") Long mId); List getDetailList( diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index a1ee2052..1db37697 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -168,30 +168,28 @@ public class DepotItemService { return list==null?0:list.size(); } - public List findDetailByTypeAndMaterialIdList(Map map)throws Exception { - String mIdStr = map.get("mId"); - Long mId = null; - if(!StringUtil.isEmpty(mIdStr)) { - mId = Long.parseLong(mIdStr); + public List findDetailByDepotIdsAndMaterialIdList(String depotIds, Long mId, int offset, int rows)throws Exception { + String [] depotIdArray = null; + if(StringUtil.isNotEmpty(depotIds)) { + depotIdArray = depotIds.split(","); } List list =null; try{ - list = depotItemMapperEx.findDetailByTypeAndMaterialIdList(mId, QueryUtils.offset(map), QueryUtils.rows(map)); + list = depotItemMapperEx.findDetailByDepotIdsAndMaterialIdList(depotIdArray, mId, offset, rows); }catch(Exception e){ JshException.readFail(logger, e); } return list; } - public Long findDetailByTypeAndMaterialIdCounts(Map map)throws Exception { - String mIdStr = map.get("mId"); - Long mId = null; - if(!StringUtil.isEmpty(mIdStr)) { - mId = Long.parseLong(mIdStr); + public Long findDetailByDepotIdsAndMaterialIdCount(String depotIds, Long mId)throws Exception { + String [] depotIdArray = null; + if(StringUtil.isNotEmpty(depotIds)) { + depotIdArray = depotIds.split(","); } Long result =null; try{ - result = depotItemMapperEx.findDetailByTypeAndMaterialIdCounts(mId); + result = depotItemMapperEx.findDetailByDepotIdsAndMaterialIdCount(depotIdArray, mId); }catch(Exception e){ JshException.readFail(logger, e); } diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 5dc2b039..9aa29c09 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -136,8 +136,9 @@ and ifnull(delete_flag,'0') !='1' - + select tb.* from + (select dh.number,me.bar_code,m.name material_name,dh.type,dh.sub_type, case when type='入库' then ifnull(di.basic_number,0) when type='出库' then 0-di.basic_number @@ -155,28 +156,68 @@ left join jsh_depot_item di on dh.id=di.header_id and ifnull(di.delete_flag,'0') !='1' left join jsh_material m on di.material_id=m.id and ifnull(m.delete_flag,'0') !='1' left join jsh_material_extend me on me.id=di.material_extend_id and ifnull(me.delete_Flag,'0') !='1' - where ((dh.type!='其它' and dh.sub_type!='调拨') + where (dh.type!='其它' or (dh.type='其它' and dh.sub_type='组装单') or (dh.type='其它' and dh.sub_type='拆卸单') or (dh.type='其它' and dh.sub_type='盘点复盘')) + + and di.depot_id in ( + #{depotId} + ) + and di.material_id = #{mId} and ifnull(dh.delete_flag,'0') !='1' - ORDER BY oTime desc + union all + --单独构造记录:调拨入库 + select dh.number,me.bar_code,m.name material_name,dh.type,dh.sub_type, + ifnull(di.basic_number,0) as b_num, + (select concat(name,'[调入]') from jsh_depot d where d.id=di.another_depot_id and ifnull(d.delete_flag,'0') !='1') as depotName, + date_format(dh.oper_time,'%Y-%m-%d %H:%i:%S') as oTime + from jsh_depot_head dh + left join jsh_depot_item di on dh.id=di.header_id and ifnull(di.delete_flag,'0') !='1' + left join jsh_material m on di.material_id=m.id and ifnull(m.delete_flag,'0') !='1' + left join jsh_material_extend me on me.id=di.material_extend_id and ifnull(me.delete_Flag,'0') !='1' + where dh.type='出库' and dh.sub_type='调拨' + + and di.another_depot_id in ( + #{depotId} + ) + + and di.material_id = #{mId} + and ifnull(dh.delete_flag,'0') !='1') tb + order by tb.oTime desc limit #{offset},#{rows} - + select count(tb.number) from + (select dh.number from jsh_depot_head dh left JOIN jsh_depot_item di on dh.id=di.header_id and ifnull(di.delete_flag,'0') !='1' - where ((dh.type!='其它' and dh.sub_type!='调拨') + where (dh.type!='其它' or (dh.type='其它' and dh.sub_type='组装单') or (dh.type='其它' and dh.sub_type='拆卸单') or (dh.type='其它' and dh.sub_type='盘点复盘')) + + and di.depot_id in ( + #{depotId} + ) + and di.material_id =#{mId} and ifnull(dh.delete_flag,'0') !='1' + union all + --单独构造记录:调拨入库 + select dh.number from jsh_depot_head dh + left join jsh_depot_item di on dh.id=di.header_id and ifnull(di.delete_flag,'0') !='1' + where dh.type='出库' and dh.sub_type='调拨' + + and di.another_depot_id in ( + #{depotId} + ) + + and di.material_id = #{mId} + and ifnull(dh.delete_flag,'0') !='1') tb