From 69e82f500962f19074af5edb03146de683053096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Thu, 2 Nov 2017 00:12:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=BA=93=E5=AD=98=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsh/action/materials/DepotItemAction.java | 111 ++++++++++++++++++ .../com/jsh/dao/materials/DepotItemDAO.java | 39 +++++- .../com/jsh/dao/materials/DepotItemIDAO.java | 4 + .../service/materials/DepotItemIService.java | 4 + .../service/materials/DepotItemService.java | 12 ++ src/main/webapp/pages/materials/material.jsp | 2 +- 6 files changed, 169 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/jsh/action/materials/DepotItemAction.java b/src/main/java/com/jsh/action/materials/DepotItemAction.java index 98da1fa4..42aa84bc 100644 --- a/src/main/java/com/jsh/action/materials/DepotItemAction.java +++ b/src/main/java/com/jsh/action/materials/DepotItemAction.java @@ -431,6 +431,88 @@ public class DepotItemAction extends BaseAction } } + /** + * 只根据商品id查询库存数量 + * @return + */ + public void findStockNumByMaterialId() { + try { + PageUtil pageUtil = new PageUtil(); + pageUtil.setPageSize(model.getPageSize()); + pageUtil.setCurPage(model.getPageNo()); + pageUtil.setAdvSearch(getConditionById()); + depotItemService.find(pageUtil); + List dataList = pageUtil.getPageList(); + JSONObject outer = new JSONObject(); + outer.put("total", pageUtil.getTotalCount()); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if(null != dataList) { + for(DepotItem depotItem:dataList) { + JSONObject item = new JSONObject(); + Integer InSum = sumNumberByMaterialId("入库", depotItem.getMaterialId().getId()); + Integer OutSum = sumNumberByMaterialId("出库", depotItem.getMaterialId().getId()); + item.put("MaterialId", depotItem.getMaterialId()==null?"":depotItem.getMaterialId().getId()); + item.put("MaterialName", depotItem.getMaterialId().getName()); + item.put("MaterialModel", depotItem.getMaterialId().getModel()); + item.put("thisSum", InSum - OutSum); + dataArray.add(item); + } + } + outer.put("rows", dataArray); + //回写查询结果 + toClient(outer.toString()); + } + catch (DataAccessException e) + { + Log.errorFileSync(">>>>>>>>>>>>>>>>>>>查找信息异常", e); + } + catch (IOException e) + { + Log.errorFileSync(">>>>>>>>>>>>>>>>>>>回写查询信息结果异常", e); + } + } + + /** + * 只根据商品id查询单据列表 + * @return + */ + public void findDetailByTypeAndMaterialId() { + try { + PageUtil pageUtil = new PageUtil(); + pageUtil.setPageSize(model.getPageSize()); + pageUtil.setCurPage(model.getPageNo()); + Long mId = model.getMaterialId(); + depotItemService.findDetailByTypeAndMaterialId(pageUtil, mId); + List dataList = pageUtil.getPageList(); + JSONObject outer = new JSONObject(); + outer.put("total", pageUtil.getTotalCount()); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if(dataList!=null){ + for(Integer i=0; i>>>>>>>>>>>>>>>>>>回写查询信息结果异常", e); + } + catch (JshException e) { + e.printStackTrace(); + } + } + /** * 查找礼品卡信息 * @return @@ -728,6 +810,35 @@ public class DepotItemAction extends BaseAction return sumNumber; } + /** + * 仅根据商品Id进行数量合计 + * @param type + * @param MId + * @return + */ + @SuppressWarnings("unchecked") + public Integer sumNumberByMaterialId(String type,Long MId) { + Integer sumNumber = 0; + String allNumber = ""; + PageUtil pageUtil = new PageUtil(); + pageUtil.setPageSize(0); + pageUtil.setCurPage(0); + try { + depotItemService.findByTypeAndMaterialId(pageUtil, type, MId); + allNumber = pageUtil.getPageList().toString(); + allNumber = allNumber.substring(1,allNumber.length()-1); + if(allNumber.equals("null")){ + allNumber = "0"; + } + allNumber = allNumber.replace(".0", ""); + } catch (JshException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + sumNumber = Integer.parseInt(allNumber); + return sumNumber; + } + /** * 数量合计-礼品卡 * @param type diff --git a/src/main/java/com/jsh/dao/materials/DepotItemDAO.java b/src/main/java/com/jsh/dao/materials/DepotItemDAO.java index 16d806f0..4cb9903d 100644 --- a/src/main/java/com/jsh/dao/materials/DepotItemDAO.java +++ b/src/main/java/com/jsh/dao/materials/DepotItemDAO.java @@ -23,8 +23,7 @@ public class DepotItemDAO extends BaseDAO implements DepotItemIDAO @SuppressWarnings("unchecked") @Override - public void findByType(PageUtil pageUtil,String type,Integer ProjectId,Long MId,String MonthTime,Boolean isPrev) throws JshException - { + public void findByType(PageUtil pageUtil,String type,Integer ProjectId,Long MId,String MonthTime,Boolean isPrev) throws JshException { //多表联查,多表连查,此处用到了createSQLQuery,可以随便写sql语句,很方便 Query query; StringBuffer queryString = new StringBuffer(); @@ -48,6 +47,42 @@ public class DepotItemDAO extends BaseDAO implements DepotItemIDAO pageUtil.setPageList(query.list()); } + @SuppressWarnings("unchecked") + @Override + public void findByTypeAndMaterialId(PageUtil pageUtil,String type,Long MId) throws JshException { + //多表联查,多表连查,此处用到了createSQLQuery,可以随便写sql语句,很方便 + Query query; + StringBuffer queryString = new StringBuffer(); + if(type.equals("入库")) { + queryString.append("select sum(BasicNumber) as BasicNumber from jsh_depothead dh INNER JOIN jsh_depotitem di on dh.id=di.HeaderId where type='" + type +"'"); + queryString.append(" and MaterialId ="+ MId); + query = this.getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(queryString + SearchConditionUtil.getCondition(pageUtil.getAdvSearch())); + } + else { + queryString.append("select sum(BasicNumber) as BasicNumber from jsh_depothead dh INNER JOIN jsh_depotitem di on dh.id=di.HeaderId where type='" + type +"'"); + queryString.append(" and SubType!='调拨' and SubType!='礼品充值' and MaterialId ="+ MId); + query = this.getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(queryString + SearchConditionUtil.getCondition(pageUtil.getAdvSearch())); + } + pageUtil.setTotalCount(query.list().size()); + pageUtil.setPageList(query.list()); + } + + @SuppressWarnings("unchecked") + @Override + public void findDetailByTypeAndMaterialId(PageUtil pageUtil,Long MId) throws JshException { + //多表联查,多表连查,此处用到了createSQLQuery,可以随便写sql语句,很方便 + Query query; + StringBuffer queryString = new StringBuffer(); + queryString.append("select dh.Number,concat(dh.SubType,dh.Type) as newType,di.BasicNumber,date_format(dh.OperTime,'%Y-%m-%d %H:%i:%S') as oTime from jsh_depothead dh INNER JOIN jsh_depotitem di on dh.id=di.HeaderId where type='入库' "); + queryString.append(" and MaterialId ="+ MId); + queryString.append(" union all "); + queryString.append("select dh.Number,concat(dh.SubType,dh.Type) as newType,0-di.BasicNumber,date_format(dh.OperTime,'%Y-%m-%d %H:%i:%S') as oTime from jsh_depothead dh INNER JOIN jsh_depotitem di on dh.id=di.HeaderId where type='出库' "); + queryString.append(" and SubType!='调拨' and SubType!='礼品充值' and MaterialId ="+ MId); + query = this.getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(queryString + SearchConditionUtil.getCondition(pageUtil.getAdvSearch())); + pageUtil.setTotalCount(query.list().size()); + pageUtil.setPageList(query.list()); + } + @SuppressWarnings("unchecked") @Override public void findPriceByType(PageUtil pageUtil,String type,Integer ProjectId,Long MId,String MonthTime,Boolean isPrev) throws JshException diff --git a/src/main/java/com/jsh/dao/materials/DepotItemIDAO.java b/src/main/java/com/jsh/dao/materials/DepotItemIDAO.java index 061691c8..47725e32 100644 --- a/src/main/java/com/jsh/dao/materials/DepotItemIDAO.java +++ b/src/main/java/com/jsh/dao/materials/DepotItemIDAO.java @@ -10,6 +10,10 @@ public interface DepotItemIDAO extends BaseIDAO { public void findByType(PageUtil pageUtil,String type,Integer ProjectId,Long MId, String MonthTime,Boolean isPrev) throws JshException; + public void findByTypeAndMaterialId(PageUtil pageUtil,String type,Long MId) throws JshException; + + public void findDetailByTypeAndMaterialId(PageUtil pageUtil,Long MId) throws JshException; + public void findPriceByType(PageUtil pageUtil,String type,Integer ProjectId,Long MId, String MonthTime,Boolean isPrev) throws JshException; public void buyOrSale(PageUtil pageUtil,String type, String subType,Long MId, String MonthTime, String sumType) throws JshException; diff --git a/src/main/java/com/jsh/service/materials/DepotItemIService.java b/src/main/java/com/jsh/service/materials/DepotItemIService.java index 13499191..61f9a4f3 100644 --- a/src/main/java/com/jsh/service/materials/DepotItemIService.java +++ b/src/main/java/com/jsh/service/materials/DepotItemIService.java @@ -16,6 +16,10 @@ public interface DepotItemIService extends BaseIService { void findByType(PageUtil depotItem, String type,Integer ProjectId, Long MId, String MonthTime,Boolean isPrev)throws JshException; + void findByTypeAndMaterialId(PageUtil depotItem, String type, Long MId)throws JshException; + + void findDetailByTypeAndMaterialId(PageUtil depotItem, Long MId)throws JshException; + void findPriceByType(PageUtil depotItem, String type,Integer ProjectId, Long MId, String MonthTime,Boolean isPrev)throws JshException; void buyOrSale(PageUtil depotItem, String type, String subType, Long MId, String MonthTime, String sumType)throws JshException; diff --git a/src/main/java/com/jsh/service/materials/DepotItemService.java b/src/main/java/com/jsh/service/materials/DepotItemService.java index 6eb56c31..73062c47 100644 --- a/src/main/java/com/jsh/service/materials/DepotItemService.java +++ b/src/main/java/com/jsh/service/materials/DepotItemService.java @@ -50,6 +50,18 @@ public class DepotItemService extends BaseService implements DepotIte depotItemDao.findByType(pageUtil, type, ProjectId, MId, MonthTime,isPrev); } + @Override + public void findByTypeAndMaterialId(PageUtil pageUtil, String type,Long MId) throws JshException + { + depotItemDao.findByTypeAndMaterialId(pageUtil, type, MId); + } + + @Override + public void findDetailByTypeAndMaterialId(PageUtil pageUtil,Long MId) throws JshException + { + depotItemDao.findDetailByTypeAndMaterialId(pageUtil, MId); + } + @Override public void findPriceByType(PageUtil pageUtil, String type,Integer ProjectId,Long MId, String MonthTime,Boolean isPrev) throws JshException { diff --git a/src/main/webapp/pages/materials/material.jsp b/src/main/webapp/pages/materials/material.jsp index a7e5678b..0550099a 100644 --- a/src/main/webapp/pages/materials/material.jsp +++ b/src/main/webapp/pages/materials/material.jsp @@ -612,7 +612,7 @@ //查询库存 $.ajax({ type: "get", - url: '<%=path %>/depotItem/findStockNumById.action', + url: '<%=path %>/depotItem/findStockNumByMaterialId.action', data: { MaterialId: mId, MonthTime: monthTime