|
|
@@ -202,6 +202,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
+ //所属公司
|
|
|
+ R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(dept)) {
|
|
|
+ order.setSalesCompanyId(dept.getData().getId());
|
|
|
+ order.setSalesCompanyName(dept.getData().getFullName());
|
|
|
+ if (ObjectUtils.isNotNull(order.getBillType()) && 1 != order.getBillType()) {
|
|
|
+ order.setSharedCompanyId(dept.getData().getId());
|
|
|
+ order.setSharedCompanyName(dept.getData().getFullName());
|
|
|
+ } else {
|
|
|
+ order.setSharedCompanyId(order.getSharedCompanyId());
|
|
|
+ order.setSharedCompanyName(order.getSharedCompanyName());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("未维护所属公司");
|
|
|
+ }
|
|
|
StringBuilder goodsName = new StringBuilder();
|
|
|
StringBuilder retrieval = new StringBuilder();
|
|
|
for (PjOrderItems item : order.getOrderItemsList()) {
|
|
|
@@ -261,7 +276,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
.eq(PjProductLaunch::getSalesCompanyId, order.getSalesCompanyId())
|
|
|
.eq(PjProductLaunch::getSourceCompanyId, order.getSharedCompanyId());
|
|
|
PjProductLaunch productLaunch = productLaunchMapper.selectOne(lambdaQueryWrapper);
|
|
|
- item.setCostprie(item.getGoodsNum().multiply(productLaunch.getShareCost()));
|
|
|
+ if (ObjectUtils.isNotNull(productLaunch)){
|
|
|
+ item.setCostprie(item.getGoodsNum().multiply(productLaunch.getShareCost()));
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("未查到共享商品成本价格");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//计算毛利
|
|
|
@@ -300,25 +319,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
//成本
|
|
|
order.setCost(order.getOrderItemsList().stream().filter(e -> e.getCostprie() != null).map(PjOrderItems::getCostprie).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
- //所属公司
|
|
|
- R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- if (ObjectUtil.isNotEmpty(dept)) {
|
|
|
- order.setSalesCompanyId(dept.getData().getId());
|
|
|
- order.setSalesCompanyName(dept.getData().getFullName());
|
|
|
- if (ObjectUtils.isNotNull(order.getBillType()) && 1 != order.getBillType()) {
|
|
|
- order.setSharedCompanyId(dept.getData().getId());
|
|
|
- order.setSharedCompanyName(dept.getData().getFullName());
|
|
|
- } else {
|
|
|
- if (ObjectUtils.isNotNull(order.getOrderItemsList()) && order.getOrderItemsList().size() > 0) {
|
|
|
- order.setSharedCompanyId(order.getOrderItemsList().get(0).getSharedCompanyId());
|
|
|
- order.setSharedCompanyName(order.getOrderItemsList().get(0).getSharedCompanyName());
|
|
|
- } else {
|
|
|
- throw new SecurityException("获取所属公司失败");
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- throw new SecurityException("未维护所属公司");
|
|
|
- }
|
|
|
} else if (order.getBsType().equals(OrderTypeEnum.PURCHASE.getType())) {//采购
|
|
|
//仓库名称
|
|
|
order.setStorageName(storageDescMapper.selectById(order.getStorageId()).getCname());
|
|
|
@@ -462,7 +462,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
PjOrder pjOrder = baseMapper.selectById(order.getId());
|
|
|
PjShip pjShip = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
|
|
|
.eq(PjShip::getOrdId, order.getId())
|
|
|
- .eq(PjShip::getBizTypeName,"FHRW"));
|
|
|
+ .eq(PjShip::getBizTypeName, "FHRW"));
|
|
|
if (ObjectUtils.isNotNull(pjShip) && (ObjectUtils.isNull(pjShip.getSendTotalNum()) || new BigDecimal("0.00").compareTo(pjShip.getSendTotalNum()) == 0)) {
|
|
|
shipMapper.deleteById(pjShip.getId());
|
|
|
shipMapper.deleteByTaskId(pjShip.getTaskId());
|
|
|
@@ -639,215 +639,185 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
if (order == null) {
|
|
|
throw new SecurityException("审批通过失败");
|
|
|
}
|
|
|
- if (OrderTypeEnum.SHIPED.getType().equals(order.getOriginalStatus())) {//已发货
|
|
|
- if ("退款中".equals(order.getStatus())) {
|
|
|
- throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
- }
|
|
|
+ if ("XS".equals(order.getBsType())){
|
|
|
+ if (OrderTypeEnum.SHIPED.getType().equals(order.getOriginalStatus()) || OrderTypeEnum.RECEIVEDGOODS.getType().equals(order.getOriginalStatus())) {//已发货
|
|
|
+ if ("退款中".equals(order.getStatus())) {
|
|
|
+ throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
+ }
|
|
|
|
|
|
- if (OrderTypeEnum.WEB.getType().equals(order.getBusinessSource())) {
|
|
|
- order.setStatus("退款中");
|
|
|
- } else {
|
|
|
- order.setStatus("退款中");
|
|
|
- order.setXcxStatus("退款中");
|
|
|
- }
|
|
|
+ if (OrderTypeEnum.WEB.getType().equals(order.getBusinessSource())) {
|
|
|
+ order.setStatus("退款中");
|
|
|
+ } else {
|
|
|
+ order.setStatus("退款中");
|
|
|
+ order.setXcxStatus("退款中");
|
|
|
+ }
|
|
|
|
|
|
- List<PjShip> shipList = shipMapper.selectList(new LambdaQueryWrapper<PjShip>().eq(PjShip::getOrdNo, order.getOrdNo()).eq(PjShip::getStatusName, "待出库"));
|
|
|
- if (shipList.size() > 0) {
|
|
|
- List<Long> ids = shipList.stream().map(PjShip::getId).collect(Collectors.toList());
|
|
|
- shipMapper.deleteBatchIds(ids);
|
|
|
- }
|
|
|
+ List<PjShip> shipList = shipMapper.selectList(new LambdaQueryWrapper<PjShip>().eq(PjShip::getOrdNo, order.getOrdNo()).eq(PjShip::getStatusName, "待出库"));
|
|
|
+ if (shipList.size() > 0) {
|
|
|
+ List<Long> ids = shipList.stream().map(PjShip::getId).collect(Collectors.toList());
|
|
|
+ shipMapper.deleteBatchIds(ids);
|
|
|
+ }
|
|
|
|
|
|
- //生成退货入库单
|
|
|
- PjShip pjShip = new PjShip();
|
|
|
- // 获取系统编号
|
|
|
- R billNo = serialClient.getBillNo(OrderTypeEnum.TKSHGD.getType(), OrderTypeEnum.TKSHGD.getType(), OrderTypeEnum.TKSHGD.getType());
|
|
|
- if (billNo.getCode() != 200) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.fail(500, "生成系统编号失败");
|
|
|
- }
|
|
|
- BeanUtil.copyProperties(order, pjShip);
|
|
|
- pjShip.setId(null);
|
|
|
- pjShip.setBillno((String) billNo.getData());
|
|
|
- pjShip.setOrdNo(order.getOrdNo());
|
|
|
- pjShip.setOrdId(order.getId());
|
|
|
- pjShip.setSrcOrdNo(order.getSrcOrdNo());
|
|
|
- pjShip.setStatusName(OrderTypeEnum.TREATWAREHOUSING.getType());
|
|
|
- pjShip.setBsType(order.getBusinessSource());
|
|
|
- pjShip.setTenantId(AuthUtil.getTenantId());
|
|
|
- pjShip.setBizTypeName(OrderTypeEnum.TKSHGD.getType());
|
|
|
- pjShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- pjShip.setCreateUser(AuthUtil.getUserId());
|
|
|
- pjShip.setCreateTime(new Date());
|
|
|
- shipMapper.insert(pjShip);
|
|
|
- //根据主表id获得明细数据
|
|
|
- List<PjOrderItems> list = orderItemsMapper.selectList(new QueryWrapper<PjOrderItems>()
|
|
|
- .eq("pid", order.getId())
|
|
|
- .eq("is_deleted", 0)
|
|
|
- .eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
- if (ObjectUtil.isNotEmpty(list)) {
|
|
|
- for (PjOrderItems e : list) {
|
|
|
- if (ObjectUtils.isNull(e.getSendNum()) || e.getSendNum().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
- continue;
|
|
|
- } else {
|
|
|
- //根据销售明细创建入库工单明细
|
|
|
- PjShipItems shipItems = new PjShipItems();
|
|
|
- BeanUtil.copyProperties(e, shipItems);
|
|
|
-
|
|
|
- shipItems.setId(null);
|
|
|
- shipItems.setPid(pjShip.getId());
|
|
|
- shipItems.setSrcItemId(e.getId());
|
|
|
- shipItems.setCreateTime(new Date());
|
|
|
- shipItems.setCreateUser(AuthUtil.getUserId());
|
|
|
- shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- shipItems.setSendNum(e.getSendNum());
|
|
|
- if (ObjectUtils.isNotNull(shipItems.getCostprie()) && new BigDecimal("0.00").compareTo(shipItems.getCostprie()) != 0) {
|
|
|
- shipItems.setPrice(shipItems.getCostprie().divide(e.getGoodsNum(), MathContext.DECIMAL32));
|
|
|
+ //生成退货入库单
|
|
|
+ PjShip pjShip = new PjShip();
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(OrderTypeEnum.TKSHGD.getType(), OrderTypeEnum.TKSHGD.getType(), OrderTypeEnum.TKSHGD.getType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
+ BeanUtil.copyProperties(order, pjShip);
|
|
|
+ pjShip.setId(null);
|
|
|
+ pjShip.setBillno((String) billNo.getData());
|
|
|
+ pjShip.setOrdNo(order.getOrdNo());
|
|
|
+ pjShip.setOrdId(order.getId());
|
|
|
+ pjShip.setSrcOrdNo(order.getSrcOrdNo());
|
|
|
+ pjShip.setStatusName(OrderTypeEnum.TREATWAREHOUSING.getType());
|
|
|
+ pjShip.setBsType(order.getBusinessSource());
|
|
|
+ pjShip.setTenantId(AuthUtil.getTenantId());
|
|
|
+ pjShip.setBizTypeName(OrderTypeEnum.TKSHGD.getType());
|
|
|
+ pjShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ pjShip.setCreateUser(AuthUtil.getUserId());
|
|
|
+ pjShip.setCreateTime(new Date());
|
|
|
+ shipMapper.insert(pjShip);
|
|
|
+ //根据主表id获得明细数据
|
|
|
+ List<PjOrderItems> list = orderItemsMapper.selectList(new QueryWrapper<PjOrderItems>()
|
|
|
+ .eq("pid", order.getId())
|
|
|
+ .eq("is_deleted", 0)
|
|
|
+ .eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(list)) {
|
|
|
+ for (PjOrderItems e : list) {
|
|
|
+ if (ObjectUtils.isNull(e.getSendNum()) || e.getSendNum().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ //根据销售明细创建入库工单明细
|
|
|
+ PjShipItems shipItems = new PjShipItems();
|
|
|
+ BeanUtil.copyProperties(e, shipItems);
|
|
|
+
|
|
|
+ shipItems.setId(null);
|
|
|
+ shipItems.setPid(pjShip.getId());
|
|
|
+ shipItems.setSrcItemId(e.getId());
|
|
|
+ shipItems.setCreateTime(new Date());
|
|
|
+ shipItems.setCreateUser(AuthUtil.getUserId());
|
|
|
+ shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ shipItems.setSendNum(e.getSendNum());
|
|
|
+ if (ObjectUtils.isNotNull(shipItems.getCostprie()) && new BigDecimal("0.00").compareTo(shipItems.getCostprie()) != 0) {
|
|
|
+ shipItems.setPrice(shipItems.getCostprie().divide(e.getGoodsNum(), MathContext.DECIMAL32));
|
|
|
+ }
|
|
|
+ shipItemsMapper.insert(shipItems);
|
|
|
}
|
|
|
- shipItemsMapper.insert(shipItems);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- //生成历史记录
|
|
|
- saveHistory(order.getId(), "退款中");
|
|
|
+ //生成历史记录
|
|
|
+ saveHistory(order.getId(), "退款中");
|
|
|
|
|
|
- } else {//未发货
|
|
|
- if ("已取消".equals(order.getStatus()) && OrderTypeEnum.WEB.getType().equals(order.getBusinessSource())) {
|
|
|
- throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
- } else if ("已退款".equals(order.getStatus()) && OrderTypeEnum.XCX.getType().equals(order.getBusinessSource())) {
|
|
|
- throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
- }
|
|
|
-
|
|
|
- List<PjShip> shipList = shipMapper.selectList(new LambdaQueryWrapper<PjShip>().eq(PjShip::getOrdNo, order.getOrdNo()));
|
|
|
- if (shipList.size() > 0) {
|
|
|
- List<Long> ids = shipList.stream().map(PjShip::getId).collect(Collectors.toList());
|
|
|
- shipMapper.deleteBatchIds(ids);
|
|
|
- }
|
|
|
+ } else {//未发货
|
|
|
+ if ("已取消".equals(order.getStatus()) && OrderTypeEnum.WEB.getType().equals(order.getBusinessSource())) {
|
|
|
+ throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
+ } else if ("已退款".equals(order.getStatus()) && OrderTypeEnum.XCX.getType().equals(order.getBusinessSource())) {
|
|
|
+ throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
+ }
|
|
|
|
|
|
- //修改库存账信息
|
|
|
- //根据主表id获得明细数据
|
|
|
- List<PjOrderItems> list = orderItemsMapper.selectList(new QueryWrapper<PjOrderItems>()
|
|
|
- .eq("pid", order.getId())
|
|
|
- .eq("is_deleted", 0)
|
|
|
- .eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
- list.forEach(item -> {
|
|
|
- if (item.getId() == null) {
|
|
|
- item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setPid(order.getId());
|
|
|
- item.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItemsMapper.insert(item);
|
|
|
- } else {
|
|
|
- item.setUpdateTime(new Date());
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setPid(order.getId());
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
- }
|
|
|
+ List<PjShip> shipList = shipMapper.selectList(new LambdaQueryWrapper<PjShip>().eq(PjShip::getOrdNo, order.getOrdNo()));
|
|
|
+ if (shipList.size() > 0) {
|
|
|
+ List<Long> ids = shipList.stream().map(PjShip::getId).collect(Collectors.toList());
|
|
|
+ shipMapper.deleteBatchIds(ids);
|
|
|
+ }
|
|
|
|
|
|
- //获得商品
|
|
|
- PjGoodsDesc goodsDesc = goodsDescMapper.selectById(item.getGoodsId());
|
|
|
- if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
- throw new RuntimeException("商品数据异常");
|
|
|
- }
|
|
|
+ //修改库存账信息
|
|
|
+ //根据主表id获得明细数据
|
|
|
+ List<PjOrderItems> list = orderItemsMapper.selectList(new QueryWrapper<PjOrderItems>()
|
|
|
+ .eq("pid", order.getId())
|
|
|
+ .eq("is_deleted", 0)
|
|
|
+ .eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ list.forEach(item -> {
|
|
|
+ if (item.getId() == null) {
|
|
|
+ item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(order.getId());
|
|
|
+ item.setTenantId(AuthUtil.getTenantId());
|
|
|
+ orderItemsMapper.insert(item);
|
|
|
+ } else {
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(order.getId());
|
|
|
+ orderItemsMapper.updateById(item);
|
|
|
+ }
|
|
|
|
|
|
- //获得库存账
|
|
|
- /*LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
- .eq(PjStockDesc::getSalesCompanyId, order.getSalesCompanyId())
|
|
|
- .eq(PjStockDesc::getGoodsId, goodsDesc.getId())
|
|
|
- .eq(PjStockDesc::getStorageId, order.getStorageId());
|
|
|
- if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && goodsDesc.getWhether().equals("1")) {//管理批次号
|
|
|
- if (ObjectUtil.isEmpty(item.getDot())) {
|
|
|
- throw new RuntimeException(goodsDesc.getCname() + "已开启批次号管理,请填写批次号");
|
|
|
+ //获得商品
|
|
|
+ PjGoodsDesc goodsDesc = goodsDescMapper.selectById(item.getGoodsId());
|
|
|
+ if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
+ throw new RuntimeException("商品数据异常");
|
|
|
}
|
|
|
- lambdaQueryWrapper.eq(PjStockDesc::getDot, item.getDot());
|
|
|
- } else {
|
|
|
- lambdaQueryWrapper.and(i -> i.eq(PjStockDesc::getDot, "").or().isNull(PjStockDesc::getDot));
|
|
|
- }
|
|
|
|
|
|
- PjStockDesc stockOne = stockDescMapper.selectOne(lambdaQueryWrapper);
|
|
|
- if (ObjectUtil.isEmpty(stockOne)) {
|
|
|
- throw new RuntimeException("获取库存账失败");
|
|
|
- } else {
|
|
|
- stockOne.setUpdateTime(new Date());
|
|
|
- stockOne.setUpdateUser(AuthUtil.getUserId());
|
|
|
- stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
- stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
-
|
|
|
- //库存金额
|
|
|
- BigDecimal inventoryAmount = item.getSendNum().multiply(item.getPrice());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(inventoryAmount));
|
|
|
-
|
|
|
- //库存成本价
|
|
|
- stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- stockDescMapper.updateById(stockOne);
|
|
|
- }*/
|
|
|
-
|
|
|
- /** ----------------------修改上架库存---------------------- */
|
|
|
- //查询所有该商品的库存
|
|
|
- LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapperList = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapperList.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
- .eq(PjStockDesc::getSalesCompanyId, order.getSalesCompanyId())
|
|
|
- .eq(PjStockDesc::getGoodsId, goodsDesc.getId());
|
|
|
- List<PjStockDesc> stockDescList = stockDescMapper.selectList(lambdaQueryWrapperList);
|
|
|
-
|
|
|
- //库存总数量
|
|
|
- BigDecimal balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
-
|
|
|
- //查询所有上架商品
|
|
|
- LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
- .eq(PjProductLaunch::getSalesCompanyId, order.getSalesCompanyId())
|
|
|
- .and(i -> i.eq(PjProductLaunch::getSalesCompanyId, order.getSalesCompanyId()).or().in(PjProductLaunch::getSourceCompanyId, order.getSalesCompanyId()))
|
|
|
- .eq(PjProductLaunch::getGoodsId, goodsDesc.getId());
|
|
|
- List<PjProductLaunch> productLaunch = productLaunchMapper.selectList(productLaunchQueryWrapper);
|
|
|
- //修改上架数量
|
|
|
- if (ObjectUtil.isNotEmpty(productLaunch)) {
|
|
|
- productLaunch.forEach(e -> {
|
|
|
- e.setInventory(e.getInventory().add(item.getGoodsNum()));
|
|
|
- productLaunchMapper.updateById(e);
|
|
|
- });
|
|
|
- }
|
|
|
+ /** ----------------------修改上架库存---------------------- */
|
|
|
+ //查询所有该商品的库存
|
|
|
+ LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapperList = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapperList.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
+ .eq(PjStockDesc::getSalesCompanyId, order.getSalesCompanyId())
|
|
|
+ .eq(PjStockDesc::getGoodsId, goodsDesc.getId());
|
|
|
+ List<PjStockDesc> stockDescList = stockDescMapper.selectList(lambdaQueryWrapperList);
|
|
|
|
|
|
- /** ----------------------修改上架库存---------------------- */
|
|
|
- });
|
|
|
- }
|
|
|
+ //库存总数量
|
|
|
+ BigDecimal balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
- //生成历史记录
|
|
|
- saveHistory(order.getId(), "已退款");
|
|
|
+ //查询所有上架商品
|
|
|
+ LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getSalesCompanyId, order.getSalesCompanyId())
|
|
|
+ .and(i -> i.eq(PjProductLaunch::getSalesCompanyId, order.getSalesCompanyId()).or().in(PjProductLaunch::getSourceCompanyId, order.getSalesCompanyId()))
|
|
|
+ .eq(PjProductLaunch::getGoodsId, goodsDesc.getId());
|
|
|
+ List<PjProductLaunch> productLaunch = productLaunchMapper.selectList(productLaunchQueryWrapper);
|
|
|
+ //修改上架数量
|
|
|
+ if (ObjectUtil.isNotEmpty(productLaunch)) {
|
|
|
+ productLaunch.forEach(e -> {
|
|
|
+ e.setInventory(e.getInventory().add(item.getGoodsNum()));
|
|
|
+ productLaunchMapper.updateById(e);
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- /** ----------------------调用退款接口---------------------- */
|
|
|
+ /** ----------------------修改上架库存---------------------- */
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- /** ----------------------调用退款接口---------------------- */
|
|
|
+ //生成历史记录
|
|
|
+ saveHistory(order.getId(), "已退款");
|
|
|
|
|
|
- if (OrderTypeEnum.WEB.getType().equals(order.getBusinessSource())) {
|
|
|
- order.setStatus("已取消");
|
|
|
- } else {
|
|
|
- order.setStatus("已退款");
|
|
|
- order.setXcxStatus("已退款");
|
|
|
- R<Map<String, String>> r = payService.refund(order.getId(), order.getPaymentAmountTl(), order.getOrdNo(), order.getSrcOrdNo(), order.getOldTrxId());
|
|
|
- if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
- Map<String, String> map = r.getData();
|
|
|
- String returnCode = map.get("retcode");
|
|
|
- String returnMsg = map.get("retmsg");
|
|
|
- if ("FAIL".equalsIgnoreCase(returnCode)) {
|
|
|
- if ("3008".equals(map.get("trxstatus"))) {
|
|
|
- throw new RuntimeException("退款失败!原因:账户余额不足");
|
|
|
- } else if ("3999".equals(map.get("trxstatus"))) {
|
|
|
- throw new RuntimeException("退款失败!原因:金额错误,当前可退货金额为:0.00");
|
|
|
- } else {
|
|
|
- throw new RuntimeException("退款失败!原因:" + returnMsg);
|
|
|
+ /** ----------------------调用退款接口---------------------- */
|
|
|
+
|
|
|
+ /** ----------------------调用退款接口---------------------- */
|
|
|
+
|
|
|
+ if (OrderTypeEnum.WEB.getType().equals(order.getBusinessSource())) {
|
|
|
+ order.setStatus("已取消");
|
|
|
+ } else {
|
|
|
+ order.setStatus("已退款");
|
|
|
+ order.setXcxStatus("已退款");
|
|
|
+ R<Map<String, String>> r = payService.refund(order.getId(), order.getPaymentAmountTl(), order.getOrdNo(), order.getSrcOrdNo(), order.getOldTrxId());
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ Map<String, String> map = r.getData();
|
|
|
+ String returnCode = map.get("retcode");
|
|
|
+ String returnMsg = map.get("retmsg");
|
|
|
+ if ("FAIL".equalsIgnoreCase(returnCode)) {
|
|
|
+ if ("3008".equals(map.get("trxstatus"))) {
|
|
|
+ throw new RuntimeException("退款失败!原因:账户余额不足");
|
|
|
+ } else if ("3999".equals(map.get("trxstatus"))) {
|
|
|
+ throw new RuntimeException("退款失败!原因:金额错误,当前可退货金额为:0.00");
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("退款失败!原因:" + returnMsg);
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("退款失败!服务器错误");
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new RuntimeException("退款失败!服务器错误");
|
|
|
}
|
|
|
}
|
|
|
+ }else{
|
|
|
+ order.setStatus("待确认");
|
|
|
}
|
|
|
|
|
|
order.setCheckStatus("审核完成");
|
|
|
@@ -884,9 +854,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
if (order == null) {
|
|
|
throw new SecurityException("审批驳回失败");
|
|
|
}
|
|
|
-
|
|
|
- order.setStatus(order.getOriginalStatus());
|
|
|
- order.setCheckStatus("审批驳回");
|
|
|
+ if ("XS".equals(order.getBsType())){
|
|
|
+ order.setStatus(order.getOriginalStatus());
|
|
|
+ order.setCheckStatus("审批驳回");
|
|
|
+ }else{
|
|
|
+ order.setStatus("录入");
|
|
|
+ }
|
|
|
baseMapper.updateById(order);
|
|
|
|
|
|
return R.success("操作成功");
|
|
|
@@ -958,7 +931,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
if (!financeProcess.isSuccess()) {
|
|
|
throw new SecurityException("操作失败,请联系管理员");
|
|
|
}
|
|
|
- declare.setStatus(declare.getOriginalStatus());
|
|
|
+ if ("XS".equals(declare.getBsType())){
|
|
|
+ declare.setStatus(declare.getOriginalStatus());
|
|
|
+ }else{
|
|
|
+ declare.setStatus("录入");
|
|
|
+ }
|
|
|
declare.setCheckStatus("审核撤销");
|
|
|
baseMapper.updateById(declare);
|
|
|
return declare;
|