diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java index 56f8e09..23f21b6 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java @@ -213,7 +213,7 @@ public class CodesServiceImpl implements CodesService { if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { //出库 - int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount(); + int count = invProductEntity.getOutCount() - invProductDetailEntity.getCount(); invProductEntity.setOutCount(count); } else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { //入库 @@ -221,8 +221,19 @@ public class CodesServiceImpl implements CodesService { invProductEntity.setInCount(count); } - //更新库存 - invProductDao.updateInvProduct(invProductEntity); + //查询库存码详情,如果库存码详情为空,则删除此库存 + FilterInvProductDetailRequest detailParams = new FilterInvProductDetailRequest(); + detailParams.setBatchNo(invProductEntity.getBatchNo()); + detailParams.setInvCodes(Collections.singletonList(invProductEntity.getInvStorageCode())); + detailParams.setProductIdFk(invProductEntity.getRelIdFk()); + int count = invProductDetailDao.statCount(detailParams); + if (count == 0) { + //如果库存码详情为空,则删除此库存 + invProductDao.deleteById(String.valueOf(invProductEntity.getId())); + } else { + //更新库存 + invProductDao.updateInvProduct(invProductEntity); + } } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java index 72df361..0806e93 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java @@ -35,10 +35,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -407,7 +404,7 @@ public class OrderServiceImpl implements OrderService { productEntity.setInCount(count); } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { //出库,在原有库存上增加库存 - int count = productEntity.getOutCount() + invProductDetailEntity.getCount(); + int count = productEntity.getOutCount() - invProductDetailEntity.getCount(); productEntity.setOutCount(count); } @@ -416,12 +413,23 @@ public class OrderServiceImpl implements OrderService { //删除单据相关数据,更新库存 try { + //删除库存详情 + invProductDetailDao.deleteByOrderId(id); //更新库存 for (InvProductEntity invProductEntity : invProductList) { - invProductDao.updateInvProduct(invProductEntity); + //查询库存码详情,如果库存码详情为空,则删除此库存 + FilterInvProductDetailRequest detailParams = new FilterInvProductDetailRequest(); + detailParams.setBatchNo(invProductEntity.getBatchNo()); + detailParams.setInvCodes(Collections.singletonList(invProductEntity.getInvStorageCode())); + detailParams.setProductIdFk(invProductEntity.getRelIdFk()); + int count = invProductDetailDao.statCount(detailParams); + if (count == 0) { + //如果库存码详情为空,则删除此库存 + invProductDao.deleteById(String.valueOf(invProductEntity.getId())); + } else { + invProductDao.updateInvProduct(invProductEntity); + } } - //删除库存详情 - invProductDetailDao.deleteByOrderId(id); //删除码详情 codesDao.deleteByOrderId(id); //查询业务单据