From 7154492a51a1383cd10b8e7a04a6cf6fbd736e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Wed, 28 Jul 2021 23:13:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BA=93=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=92=8C=E5=8D=95=E6=8D=AEsku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jshERP-boot/docs/jsh_erp.sql | 2 +- jshERP-boot/docs/华夏ERP数据库设计汇总.xlsx | Bin 157934 -> 158819 bytes .../docs/数据库更新记录-首次安装请勿使用.txt | 2 +- .../java/com/jsh/erp/config/TenantConfig.java | 3 +- .../erp/controller/DepotHeadController.java | 6 +- .../erp/controller/DepotItemController.java | 27 +++-- .../erp/controller/MaterialController.java | 7 +- .../datasource/mappers/DepotItemMapperEx.java | 9 +- .../erp/datasource/vo/DepotItemVo4Stock.java | 74 ++++++++++++-- .../service/depotHead/DepotHeadService.java | 11 +-- .../service/depotItem/DepotItemService.java | 93 ++++++++++++++---- .../erp/service/material/MaterialService.java | 13 +-- .../mapper_xml/DepotItemMapperEx.xml | 68 +++++++++---- .../resources/mapper_xml/MaterialMapperEx.xml | 2 +- 14 files changed, 222 insertions(+), 95 deletions(-) diff --git a/jshERP-boot/docs/jsh_erp.sql b/jshERP-boot/docs/jsh_erp.sql index 0ce09c08..88ead849 100644 --- a/jshERP-boot/docs/jsh_erp.sql +++ b/jshERP-boot/docs/jsh_erp.sql @@ -428,7 +428,7 @@ CREATE TABLE `jsh_material_attribute` ( `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='产品属性'; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='产品属性表'; -- ---------------------------- -- Records of jsh_material_attribute diff --git a/jshERP-boot/docs/华夏ERP数据库设计汇总.xlsx b/jshERP-boot/docs/华夏ERP数据库设计汇总.xlsx index 71732087b0a4d312c1f53a5bdea70488dab0f734..75cfdc9009dd4dc39f34982f46532a9143dc54f4 100644 GIT binary patch delta 63430 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

@R)etW(jQ_+S=fCU_zhryz%ezZ@yl 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 z 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 B3MT*n diff --git a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt index 681862c8..c28ec117 100644 --- a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt +++ b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt @@ -1141,7 +1141,7 @@ CREATE TABLE `jsh_material_attribute` ( `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记,0未删除,1删除', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='产品属性'; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='产品属性表'; INSERT INTO `jsh_material_attribute` VALUES ('1', 'manyColor', '颜色', '红色|橙色|黄色|绿色|蓝色|紫色', '63', '0'); INSERT INTO `jsh_material_attribute` VALUES ('2', 'manySize', '尺寸', 'S|M|L|XL|XXL|XXXL', '63', '0'); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/config/TenantConfig.java b/jshERP-boot/src/main/java/com/jsh/erp/config/TenantConfig.java index 0e51583c..6e55ff47 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/config/TenantConfig.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/config/TenantConfig.java @@ -73,8 +73,7 @@ public class TenantConfig { public boolean doFilter(MetaObject metaObject) { MappedStatement ms = SqlParserHelper.getMappedStatement(metaObject); // 过滤自定义查询此时无租户信息约束出现 - if ("com.jsh.erp.datasource.mappers.UserMapperEx.getUserListByUserNameOrLoginName".equals(ms.getId())|| - "com.jsh.erp.datasource.mappers.DepotItemMapperEx.getStockByParam".equals(ms.getId())) { + if ("com.jsh.erp.datasource.mappers.UserMapperEx.getUserListByUserNameOrLoginName".equals(ms.getId())) { return true; } return false; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java index 2bb2fd86..be7a4213 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java @@ -270,13 +270,12 @@ public class DepotHeadController { String beanJson = body.getInfo(); String rows = body.getRows(); Long billsNumLimit = Long.parseLong(redisService.getObjectFromSessionByKey(request,"billsNumLimit").toString()); - Long tenantId = redisService.getTenantId(request); Long count = depotHeadService.countDepotHead(null,null,null,null,null,null,null,null,null,null,null); if(count>= billsNumLimit) { throw new BusinessParamCheckingException(ExceptionConstants.DEPOT_HEAD_OVER_LIMIT_FAILED_CODE, ExceptionConstants.DEPOT_HEAD_OVER_LIMIT_FAILED_MSG); } else { - depotHeadService.addDepotHeadAndDetail(beanJson,rows,tenantId, request); + depotHeadService.addDepotHeadAndDetail(beanJson,rows, request); } return result; } @@ -290,11 +289,10 @@ public class DepotHeadController { */ @PutMapping(value = "/updateDepotHeadAndDetail") public Object updateDepotHeadAndDetail(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) throws Exception{ - Long tenantId = redisService.getTenantId(request); JSONObject result = ExceptionConstants.standardSuccess(); String beanJson = body.getInfo(); String rows = body.getRows(); - depotHeadService.updateDepotHeadAndDetail(beanJson,rows,tenantId,request); + depotHeadService.updateDepotHeadAndDetail(beanJson,rows,request); return result; } 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 16e7fc69..ddf5e2ec 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 @@ -118,11 +118,10 @@ public class DepotItemController { Map map = new HashMap(); try { BigDecimal stock = BigDecimal.ZERO; - Long tenantId = redisService.getTenantId(request); List list = materialService.getMaterialByBarCode(barCode); if(list!=null && list.size()>0) { MaterialVo4Unit materialVo4Unit = list.get(0); - stock = depotItemService.getStockByParam(depotId,materialVo4Unit.getId(),null,null,tenantId); + stock = depotItemService.getStockByParam(depotId,materialVo4Unit.getId(),null,null); String commodityUnit = materialVo4Unit.getCommodityUnit(); Long unitId = materialVo4Unit.getUnitId(); if(unitId!=null) { @@ -152,7 +151,6 @@ public class DepotItemController { @RequestParam("mpList") String mpList, HttpServletRequest request)throws Exception { BaseResponseInfo res = new BaseResponseInfo(); - Long tenantId = redisService.getTenantId(request); try { List dataList = new ArrayList(); if(headerId != 0) { @@ -173,7 +171,7 @@ public class DepotItemController { item.put("model", diEx.getMModel()); item.put("materialOther", getOtherInfo(mpArr, diEx)); Integer ratio = diEx.getRatio(); - BigDecimal stock = depotItemService.getStockByParam(diEx.getDepotId(),diEx.getMaterialId(),null,null,tenantId); + BigDecimal stock = depotItemService.getStockByParam(diEx.getDepotId(),diEx.getMaterialId(),null,null); if(ratio!=null){ BigDecimal ratioDecimal = new BigDecimal(ratio.toString()); if(ratioDecimal.compareTo(BigDecimal.ZERO)!=0){ @@ -262,7 +260,6 @@ public class DepotItemController { HttpServletRequest request)throws Exception { BaseResponseInfo res = new BaseResponseInfo(); Map map = new HashMap(); - Long tenantId = redisService.getTenantId(request); String timeA = Tools.firstDayOfMonth(monthTime) + BusinessConstants.DAY_FIRST_TIME; String timeB = Tools.lastDayOfMonth(monthTime) + BusinessConstants.DAY_LAST_TIME; try { @@ -292,10 +289,10 @@ public class DepotItemController { item.put("materialColor", diEx.getMColor()); item.put("unitName", getUName(diEx.getMaterialUnit(), diEx.getUnitName())); - item.put("prevSum", depotItemService.getStockByParam(depotId,mId,null,timeA,tenantId)); - item.put("inSum", depotItemService.getInNumByParam(depotId,mId,timeA,timeB,tenantId)); - item.put("outSum", depotItemService.getOutNumByParam(depotId,mId,timeA,timeB,tenantId)); - BigDecimal thisSum = depotItemService.getStockByParam(depotId,mId,null,timeB,tenantId); + item.put("prevSum", depotItemService.getStockByParam(depotId,mId,null,timeA)); + item.put("inSum", depotItemService.getInNumByParam(depotId,mId,timeA,timeB)); + item.put("outSum", depotItemService.getOutNumByParam(depotId,mId,timeA,timeB)); + BigDecimal thisSum = depotItemService.getStockByParam(depotId,mId,null,timeB); item.put("thisSum", thisSum); for(MaterialExtend me:meList) { if(me.getMaterialId().longValue() == diEx.getMId().longValue()) { @@ -333,7 +330,6 @@ public class DepotItemController { @RequestParam("monthTime") String monthTime, @RequestParam("materialParam") String materialParam, HttpServletRequest request, HttpServletResponse response) throws Exception { - Long tenantId = redisService.getTenantId(request); String timeA = Tools.firstDayOfMonth(monthTime) + BusinessConstants.DAY_FIRST_TIME; String timeB = Tools.lastDayOfMonth(monthTime) + BusinessConstants.DAY_LAST_TIME; try { @@ -353,10 +349,10 @@ public class DepotItemController { objs[3] = diEx.getMModel(); objs[4] = diEx.getMaterialUnit(); objs[5] = diEx.getPurchaseDecimal().toString(); - objs[6] = depotItemService.getStockByParam(depotId,mId,null,timeA,tenantId).toString(); - objs[7] = depotItemService.getInNumByParam(depotId,mId,timeA,timeB,tenantId).toString(); - objs[8] = depotItemService.getOutNumByParam(depotId,mId,timeA,timeB,tenantId).toString(); - BigDecimal thisSum = depotItemService.getStockByParam(depotId,mId,null,timeB,tenantId); + objs[6] = depotItemService.getStockByParam(depotId,mId,null,timeA).toString(); + objs[7] = depotItemService.getInNumByParam(depotId,mId,timeA,timeB).toString(); + objs[8] = depotItemService.getOutNumByParam(depotId,mId,timeA,timeB).toString(); + BigDecimal thisSum = depotItemService.getStockByParam(depotId,mId,null,timeB); objs[9] = thisSum.toString(); objs[10] = thisSum.multiply(diEx.getPurchaseDecimal()).toString(); objects.add(objs); @@ -384,7 +380,6 @@ public class DepotItemController { HttpServletRequest request) throws Exception{ BaseResponseInfo res = new BaseResponseInfo(); Map map = new HashMap(); - Long tenantId = redisService.getTenantId(request); String endTime = Tools.lastDayOfMonth(monthTime) + BusinessConstants.DAY_LAST_TIME; try { List dataList = depotItemService.findByAll(StringUtil.toNull(materialParam), @@ -393,7 +388,7 @@ public class DepotItemController { if (null != dataList) { for (DepotItemVo4WithInfoEx diEx : dataList) { Long mId = diEx.getMId(); - BigDecimal thisSum = depotItemService.getStockByParam(depotId,mId,null,endTime,tenantId); + BigDecimal thisSum = depotItemService.getStockByParam(depotId,mId,null,endTime); BigDecimal unitPrice = diEx.getPurchaseDecimal(); if(unitPrice == null) { unitPrice = BigDecimal.ZERO; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java index 42cb936e..25a68a20 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java @@ -169,7 +169,6 @@ public class MaterialController { HttpServletRequest request) throws Exception{ JSONObject object = new JSONObject(); try { - Long tenantId = redisService.getTenantId(request); List dataList = materialService.findBySelectWithBarCode(categoryId, q, (currentPage-1)*pageSize, pageSize); String[] mpArr = mpList.split(","); int total = materialService.findBySelectWithBarCodeCount(categoryId, q); @@ -196,7 +195,11 @@ public class MaterialController { item.put("model", material.getModel()); item.put("unit", material.getCommodityUnit() + ratio); item.put("sku", material.getSku()); - BigDecimal stock = depotItemService.getStockByParam(depotId,material.getId(),null,null,tenantId); + BigDecimal skuStock = depotItemService.getSkuStockByParam(depotId,material.getMeId(),null,null); + if(StringUtil.isNotEmpty(material.getSku())){ + item.put("skuStock", skuStock); + } + BigDecimal stock = depotItemService.getStockByParam(depotId,material.getId(),null,null); if (material.getUnitId()!=null){ Unit unit = unitService.getUnit(material.getUnitId()); if(material.getCommodityUnit().equals(unit.getOtherUnit())) { 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 9347f5ab..5c4fdc8d 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 @@ -77,12 +77,17 @@ public interface DepotItemMapperEx { @Param("beginTime") String beginTime, @Param("endTime") String endTime); + DepotItemVo4Stock getSkuStockByParam( + @Param("depotId") Long depotId, + @Param("meId") Long meId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + DepotItemVo4Stock getStockByParam( @Param("depotId") Long depotId, @Param("mId") Long mId, @Param("beginTime") String beginTime, - @Param("endTime") String endTime, - @Param("tenantId") Long tenantId); + @Param("endTime") String endTime); /** * 通过单据主表id查询所有单据子表数据 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVo4Stock.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVo4Stock.java index cea9c520..59670501 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVo4Stock.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotItemVo4Stock.java @@ -5,22 +5,76 @@ import java.math.BigDecimal; public class DepotItemVo4Stock { - private BigDecimal inNum; - private BigDecimal outNum; + private BigDecimal inTotal; + private BigDecimal outTotal; + private BigDecimal transfInTotal; + private BigDecimal transfOutTotal; + private BigDecimal assemInTotal; + private BigDecimal assemOutTotal; + private BigDecimal disAssemInTotal; + private BigDecimal disAssemOutTotal; - public BigDecimal getInNum() { - return inNum; + public BigDecimal getInTotal() { + return inTotal; } - public void setInNum(BigDecimal inNum) { - this.inNum = inNum; + public void setInTotal(BigDecimal inTotal) { + this.inTotal = inTotal; } - public BigDecimal getOutNum() { - return outNum; + public BigDecimal getOutTotal() { + return outTotal; } - public void setOutNum(BigDecimal outNum) { - this.outNum = outNum; + public void setOutTotal(BigDecimal outTotal) { + this.outTotal = outTotal; + } + + public BigDecimal getTransfInTotal() { + return transfInTotal; + } + + public void setTransfInTotal(BigDecimal transfInTotal) { + this.transfInTotal = transfInTotal; + } + + public BigDecimal getTransfOutTotal() { + return transfOutTotal; + } + + public void setTransfOutTotal(BigDecimal transfOutTotal) { + this.transfOutTotal = transfOutTotal; + } + + public BigDecimal getAssemInTotal() { + return assemInTotal; + } + + public void setAssemInTotal(BigDecimal assemInTotal) { + this.assemInTotal = assemInTotal; + } + + public BigDecimal getAssemOutTotal() { + return assemOutTotal; + } + + public void setAssemOutTotal(BigDecimal assemOutTotal) { + this.assemOutTotal = assemOutTotal; + } + + public BigDecimal getDisAssemInTotal() { + return disAssemInTotal; + } + + public void setDisAssemInTotal(BigDecimal disAssemInTotal) { + this.disAssemInTotal = disAssemInTotal; + } + + public BigDecimal getDisAssemOutTotal() { + return disAssemOutTotal; + } + + public void setDisAssemOutTotal(BigDecimal disAssemOutTotal) { + this.disAssemOutTotal = disAssemOutTotal; } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index 3904fd89..9053f656 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -281,8 +281,7 @@ public class DepotHeadService { //更新当前库存 List list = depotItemService.getListByHeaderId(id); for (DepotItem depotItem : list) { - Long tenantId = redisService.getTenantId(request); - depotItemService.updateCurrentStock(depotItem, tenantId); + depotItemService.updateCurrentStock(depotItem); } /**删除单据主表信息*/ batchDeleteDepotHeadByIds(id.toString()); @@ -611,7 +610,7 @@ public class DepotHeadService { * @throws Exception */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void addDepotHeadAndDetail(String beanJson, String rows, Long tenantId, + public void addDepotHeadAndDetail(String beanJson, String rows, HttpServletRequest request) throws Exception { /**处理单据主表数据*/ DepotHead depotHead = JSONObject.parseObject(beanJson, DepotHead.class); @@ -668,7 +667,7 @@ public class DepotHeadService { if(list!=null) { Long headId = list.get(0).getId(); /**入库和出库处理单据子表信息*/ - depotItemService.saveDetials(rows,headId,tenantId, request); + depotItemService.saveDetials(rows,headId, request); } /**如果关联单据号非空则更新订单的状态为2 (只操作采购订单和销售订单) */ if(depotHead.getLinkNumber()!=null) { @@ -696,7 +695,7 @@ public class DepotHeadService { * @throws Exception */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void updateDepotHeadAndDetail(String beanJson, String rows, Long tenantId,HttpServletRequest request)throws Exception { + public void updateDepotHeadAndDetail(String beanJson, String rows,HttpServletRequest request)throws Exception { /**更新单据主表信息*/ DepotHead depotHead = JSONObject.parseObject(beanJson, DepotHead.class); //获取之前的金额数据 @@ -742,7 +741,7 @@ public class DepotHeadService { } } /**入库和出库处理单据子表信息*/ - depotItemService.saveDetials(rows,depotHead.getId(),tenantId,request); + depotItemService.saveDetials(rows,depotHead.getId(),request); logService.insertLog("单据", new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(depotHead.getNumber()).toString(), ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); 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 ea64e55c..2640d403 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 @@ -298,7 +298,7 @@ public class DepotItemService { } @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void saveDetials(String rows, Long headerId, Long tenantId, HttpServletRequest request) throws Exception{ + public void saveDetials(String rows, Long headerId, HttpServletRequest request) throws Exception{ //查询单据主表信息 DepotHead depotHead =depotHeadMapper.selectByPrimaryKey(headerId); //获得当前操作人 @@ -398,7 +398,7 @@ public class DepotItemService { if(material==null){ continue; } - BigDecimal stock = getStockByParam(depotItem.getDepotId(),depotItem.getMaterialId(),null,null,tenantId); + BigDecimal stock = getStockByParam(depotItem.getDepotId(),depotItem.getMaterialId(),null,null); BigDecimal thisBasicNumber = depotItem.getBasicNumber()==null?BigDecimal.ZERO:depotItem.getBasicNumber(); if(systemConfigService.getMinusStockFlag() == false && stock.compareTo(thisBasicNumber)<0){ throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_CODE, @@ -415,7 +415,7 @@ public class DepotItemService { } this.insertDepotItemWithObj(depotItem); //更新当前库存 - updateCurrentStock(depotItem,tenantId); + updateCurrentStock(depotItem); } } else { throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ROW_FAILED_CODE, @@ -455,6 +455,32 @@ public class DepotItemService { return result; } + /** + * 库存统计-sku + * @param depotId + * @param meId + * @param beginTime + * @param endTime + * @return + */ + public BigDecimal getSkuStockByParam(Long depotId, Long meId, String beginTime, String endTime){ + DepotItemVo4Stock stockObj = depotItemMapperEx.getSkuStockByParam(depotId, meId, beginTime, endTime); + BigDecimal stockSum = BigDecimal.ZERO; + if(stockObj!=null) { + BigDecimal inTotal = stockObj.getInTotal(); + BigDecimal transfInTotal = stockObj.getTransfInTotal(); + BigDecimal assemInTotal = stockObj.getAssemInTotal(); + BigDecimal disAssemInTotal = stockObj.getDisAssemInTotal(); + BigDecimal outTotal = stockObj.getOutTotal(); + BigDecimal transfOutTotal = stockObj.getTransfOutTotal(); + BigDecimal assemOutTotal = stockObj.getAssemOutTotal(); + BigDecimal disAssemOutTotal = stockObj.getDisAssemOutTotal(); + stockSum = inTotal.add(transfInTotal).add(assemInTotal).add(disAssemInTotal) + .subtract(outTotal).subtract(transfOutTotal).subtract(assemOutTotal).subtract(disAssemOutTotal); + } + return stockSum; + } + /** * 库存统计 * @param depotId @@ -463,15 +489,26 @@ public class DepotItemService { * @param endTime * @return */ - public BigDecimal getStockByParam(Long depotId, Long mId, String beginTime, String endTime, Long tenantId){ + public BigDecimal getStockByParam(Long depotId, Long mId, String beginTime, String endTime){ //初始库存 BigDecimal initStock = materialService.getInitStockByMid(depotId, mId); //盘点复盘后数量的变动 BigDecimal stockCheckSum = depotItemMapperEx.getStockCheckSum(depotId, mId, beginTime, endTime); - DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime, tenantId); - BigDecimal intNum = stockObj.getInNum(); - BigDecimal outNum = stockObj.getOutNum(); - return initStock.add(intNum).subtract(outNum).add(stockCheckSum); + DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime); + BigDecimal stockSum = BigDecimal.ZERO; + if(stockObj!=null) { + BigDecimal inTotal = stockObj.getInTotal(); + BigDecimal transfInTotal = stockObj.getTransfInTotal(); + BigDecimal assemInTotal = stockObj.getAssemInTotal(); + BigDecimal disAssemInTotal = stockObj.getDisAssemInTotal(); + BigDecimal outTotal = stockObj.getOutTotal(); + BigDecimal transfOutTotal = stockObj.getTransfOutTotal(); + BigDecimal assemOutTotal = stockObj.getAssemOutTotal(); + BigDecimal disAssemOutTotal = stockObj.getDisAssemOutTotal(); + stockSum = inTotal.add(transfInTotal).add(assemInTotal).add(disAssemInTotal) + .subtract(outTotal).subtract(transfOutTotal).subtract(assemOutTotal).subtract(disAssemOutTotal); + } + return initStock.add(stockCheckSum).add(stockSum); } /** @@ -482,9 +519,17 @@ public class DepotItemService { * @param endTime * @return */ - public BigDecimal getInNumByParam(Long depotId, Long mId, String beginTime, String endTime, Long tenantId){ - DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime, tenantId); - return stockObj.getInNum(); + public BigDecimal getInNumByParam(Long depotId, Long mId, String beginTime, String endTime){ + DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime); + BigDecimal stockSum = BigDecimal.ZERO; + if(stockObj!=null) { + BigDecimal inTotal = stockObj.getInTotal(); + BigDecimal transfInTotal = stockObj.getTransfInTotal(); + BigDecimal assemInTotal = stockObj.getAssemInTotal(); + BigDecimal disAssemInTotal = stockObj.getDisAssemInTotal(); + stockSum = inTotal.add(transfInTotal).add(assemInTotal).add(disAssemInTotal); + } + return stockSum; } /** @@ -495,21 +540,28 @@ public class DepotItemService { * @param endTime * @return */ - public BigDecimal getOutNumByParam(Long depotId, Long mId, String beginTime, String endTime, Long tenantId){ - DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime, tenantId); - return stockObj.getOutNum(); + public BigDecimal getOutNumByParam(Long depotId, Long mId, String beginTime, String endTime){ + DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParam(depotId, mId, beginTime, endTime); + BigDecimal stockSum = BigDecimal.ZERO; + if(stockObj!=null) { + BigDecimal outTotal = stockObj.getOutTotal(); + BigDecimal transfOutTotal = stockObj.getTransfOutTotal(); + BigDecimal assemOutTotal = stockObj.getAssemOutTotal(); + BigDecimal disAssemOutTotal = stockObj.getDisAssemOutTotal(); + stockSum = outTotal.subtract(transfOutTotal).subtract(assemOutTotal).subtract(disAssemOutTotal); + } + return stockSum; } /** * 根据单据明细来批量更新当前库存 * @param depotItem - * @param tenantId */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public void updateCurrentStock(DepotItem depotItem, Long tenantId){ - updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getDepotId(),tenantId); + public void updateCurrentStock(DepotItem depotItem){ + updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getDepotId()); if(depotItem.getAnotherDepotId()!=null){ - updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getAnotherDepotId(),tenantId); + updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getAnotherDepotId()); } } @@ -517,9 +569,8 @@ public class DepotItemService { * 根据商品和仓库来更新当前库存 * @param mId * @param dId - * @param tenantId */ - public void updateCurrentStockFun(Long mId, Long dId, Long tenantId) { + public void updateCurrentStockFun(Long mId, Long dId) { MaterialCurrentStockExample example = new MaterialCurrentStockExample(); example.createCriteria().andMaterialIdEqualTo(mId).andDepotIdEqualTo(dId) .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); @@ -527,7 +578,7 @@ public class DepotItemService { MaterialCurrentStock materialCurrentStock = new MaterialCurrentStock(); materialCurrentStock.setMaterialId(mId); materialCurrentStock.setDepotId(dId); - materialCurrentStock.setCurrentNumber(getStockByParam(dId,mId,null,null,tenantId)); + materialCurrentStock.setCurrentNumber(getStockByParam(dId,mId,null,null)); if(list!=null && list.size()>0) { Long mcsId = list.get(0).getId(); materialCurrentStock.setId(mcsId); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java index 63f9c79f..91d1f19c 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -142,8 +142,7 @@ public class MaterialService { } } m.setMaterialOther(materialOther); - Long tenantId = m.getTenantId(); - m.setStock(depotItemService.getStockByParam(null,m.getId(),null,null,tenantId)); + m.setStock(depotItemService.getStockByParam(null,m.getId(),null,null)); resList.add(m); } } @@ -228,8 +227,7 @@ public class MaterialService { insertInitialStockByMaterialAndDepot(depotId, material.getId(), parseBigDecimalEx(number)); } //更新当前库存 - Long tenantId = redisService.getTenantId(request); - depotItemService.updateCurrentStockFun(material.getId(), depotId, tenantId); + depotItemService.updateCurrentStockFun(material.getId(), depotId); } } } @@ -454,8 +452,8 @@ public class MaterialService { String categoryName = ExcelUtils.getContent(src, i, 4); //类别 String safetyStock = ExcelUtils.getContent(src, i, 5); //安全存量 String unit = ExcelUtils.getContent(src, i, 6); //基础单位 - //校验名称、型号、单位是否为空 - if(StringUtil.isNotEmpty(name) && StringUtil.isNotEmpty(model) && StringUtil.isNotEmpty(unit)) { + //校验名称、单位是否为空 + if(StringUtil.isNotEmpty(name) && StringUtil.isNotEmpty(unit)) { MaterialWithInitStock m = new MaterialWithInitStock(); m.setName(name); m.setStandard(standard); @@ -594,8 +592,7 @@ public class MaterialService { depotId = depot.getId(); insertInitialStockByMaterialAndDepot(depotId, mId, stock); //更新当前库存 - Long tenantId = redisService.getTenantId(request); - depotItemService.updateCurrentStockFun(mId, depotId, tenantId); + depotItemService.updateCurrentStockFun(mId, depotId); } } } diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 0808cd11..ae85769a 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -68,9 +68,15 @@ - - - + + + + + + + + + - + select + sum(case when dh.type='入库' and di.depot_id=#{depotId} then di.basic_number else 0 end) as inTotal, + sum(case when dh.type='出库' and dh.sub_type!='调拨' and di.depot_id=#{depotId} then di.basic_number else 0 end) as outTotal, + sum(case when dh.sub_type='调拨' and di.another_depot_id=#{depotId} then di.basic_number else 0 end) as transfInTotal, + sum(case when dh.sub_type='调拨' and di.depot_id=#{depotId} then di.basic_number else 0 end) as transfOutTotal, + sum(case when dh.sub_type='组装单' and di.material_type='组合件' and di.depot_id=#{depotId} then di.basic_number else 0 end) as assemInTotal, + sum(case when dh.sub_type='组装单' and di.material_type='普通子件' and di.depot_id=#{depotId} then di.basic_number else 0 end) as assemOutTotal, + sum(case when dh.sub_type='拆卸单' and di.material_type='普通子件' and di.depot_id=#{depotId} then di.basic_number else 0 end) as disAssemInTotal, + sum(case when dh.sub_type='拆卸单' and di.material_type='组合件' and di.depot_id=#{depotId} then di.basic_number else 0 end) as disAssemOutTotal from - (select sum(if(dh.type='入库' and di.depot_id=#{depotId}, di.basic_number,0)) as inTotal, - sum(if(dh.type='出库' and dh.sub_type!='调拨' and di.depot_id=#{depotId},di.basic_number,0)) as outTotal, - sum(if(dh.sub_type='调拨' and di.another_depot_id=#{depotId},di.basic_number,0)) as transfInTotal, - sum(if(dh.sub_type='调拨' and di.depot_id=#{depotId},di.basic_number,0)) as transfOutTotal, - sum(if(dh.sub_type='组装单' and di.material_type='组合件' and di.depot_id=#{depotId},di.basic_number,0)) as assemInTotal, - sum(if(dh.sub_type='组装单' and di.material_type='普通子件' and di.depot_id=#{depotId},di.basic_number,0)) as assemOutTotal, - sum(if(dh.sub_type='拆卸单' and di.material_type='普通子件' and di.depot_id=#{depotId},di.basic_number,0)) as disAssemInTotal, - sum(if(dh.sub_type='拆卸单' and di.material_type='组合件' and di.depot_id=#{depotId},di.basic_number,0)) as disAssemOutTotal - from - jsh_depot_head dh,jsh_depot_item di + jsh_depot_head dh + left join jsh_depot_item di on dh.id=di.header_id and ifnull(di.delete_flag,'0') !='1' where 1=1 - and dh.id=di.header_id + and ifnull(dh.delete_flag,'0') !='1' + and di.material_extend_id=#{meId} + and ifnull(di.sku,'') !='' + + and dh.oper_time >= #{beginTime} + + + and dh.oper_time <= #{endTime} + + + +