|
|
@@ -18,7 +18,9 @@ package org.springblade.purchase.sales.service.impl;
|
|
|
|
|
|
import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.google.protobuf.ServiceException;
|
|
|
import com.trade.purchase.order.enums.OrderTypeEnum;
|
|
|
import com.trade.purchase.order.vo.OrderDTO;
|
|
|
@@ -46,6 +48,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.BigInteger;
|
|
|
import java.rmi.ServerException;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
@@ -148,8 +152,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<OrderModify> orderModifyList = orderModifyService.saveOrderModifyMessage(order.getOrderModifyList(), date, order.getId());
|
|
|
order.setOrderModifyList(orderModifyList);
|
|
|
}
|
|
|
- //保存发货信息待定
|
|
|
- //修改库存信息待定
|
|
|
+ if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType())){
|
|
|
+ //生成毛利润 毛利额
|
|
|
+ List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("is_deleted", 0));
|
|
|
+ Order orderMessage = new Order();
|
|
|
+ orderMessage.setId(order.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ BigDecimal reduce = list.stream().reduce(BigDecimal.ZERO,(x,y) ->{
|
|
|
+ return x.add(y.getPurchaseAmount().multiply(y.getOrderQuantity()));
|
|
|
+ },BigDecimal::add);//采购金额求和
|
|
|
+ BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);//金额求和
|
|
|
+ BigDecimal grossProfit = amount.subtract(reduce);//毛利润
|
|
|
+ BigDecimal grossProfitRate = (grossProfit.divide(amount,2)).multiply(new BigDecimal(100));
|
|
|
+ orderMessage.setGrossProfit(grossProfit);//毛利额
|
|
|
+ orderMessage.setGrossProfitRate(grossProfitRate);//毛利率
|
|
|
+ }else {
|
|
|
+ orderMessage.setGrossProfit(new BigDecimal(BigInteger.ZERO));//毛利额
|
|
|
+ orderMessage.setGrossProfitRate(new BigDecimal(BigInteger.ZERO));//毛利率
|
|
|
+ }
|
|
|
+ baseMapper.updateById(orderMessage);
|
|
|
+ order.setGrossProfit(orderMessage.getGrossProfit());
|
|
|
+ order.setGrossProfitRate(orderMessage.getGrossProfitRate());
|
|
|
+ }
|
|
|
return R.data(order);
|
|
|
}
|
|
|
|
|
|
@@ -254,9 +278,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
baseMapper.insert(order);
|
|
|
}else {
|
|
|
+ Order selectById = baseMapper.selectById(order.getId());
|
|
|
+ if (StringUtils.isNotBlank(selectById.getOrderStatus()) && selectById.getOrderStatus().equals(OrderEnum.SUBMIT.getStatus())){
|
|
|
+ return R.fail(500,"报价单已确认,请勿重复确认");
|
|
|
+ }
|
|
|
order.setTenantId(SecureUtil.getTenantId());
|
|
|
order.setUpdateTime(date);
|
|
|
order.setUpdateUser(SecureUtil.getUserId());
|
|
|
+ order.setOrderStatus(OrderEnum.SUBMIT.getStatus());
|
|
|
baseMapper.updateById(order);
|
|
|
}
|
|
|
//保存订单费用明细
|
|
|
@@ -269,18 +298,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
|
|
|
order.setOrderItemsList(orderItemsList);
|
|
|
}
|
|
|
- //保存订单文件信息
|
|
|
- if (CollectionUtils.isNotEmpty(order.getOrderFilesList())){
|
|
|
- List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), date, order.getId());
|
|
|
- order.setOrderFilesList(orderFilesList);
|
|
|
- }
|
|
|
- //保存订单修改日志
|
|
|
- if (CollectionUtils.isNotEmpty(order.getOrderModifyList())){
|
|
|
- List<OrderModify> orderModifyList = orderModifyService.saveOrderModifyMessage(order.getOrderModifyList(), date, order.getId());
|
|
|
- order.setOrderModifyList(orderModifyList);
|
|
|
- }
|
|
|
- //保存发货信息待定
|
|
|
- //修改库存信息待定
|
|
|
+ //修改价格管理中的价格
|
|
|
return R.data(order);
|
|
|
}
|
|
|
@Override
|
|
|
@@ -324,7 +342,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
selectById.setCreateUser(SecureUtil.getUserId());
|
|
|
selectById.setUpdateUser(null);
|
|
|
selectById.setUpdateTime(null);
|
|
|
- selectById.setOrderStatus("录入");
|
|
|
+ selectById.setOrderStatus(OrderEnum.PAUSE.getStatus());
|
|
|
selectById.setIfEnquiry(null);
|
|
|
selectById.setIfShipping(null);
|
|
|
selectById.setIfInvoice("否");
|
|
|
@@ -385,7 +403,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
selectById.setCreateUser(SecureUtil.getUserId());
|
|
|
selectById.setUpdateUser(null);
|
|
|
selectById.setUpdateTime(null);
|
|
|
- selectById.setOrderStatus("录入");
|
|
|
+ selectById.setOrderStatus(OrderEnum.PAUSE.getStatus());
|
|
|
selectById.setIfEnquiry(null);
|
|
|
selectById.setIfShipping(null);
|
|
|
selectById.setIfInvoice("否");
|
|
|
@@ -436,6 +454,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderFilesService.save(file);
|
|
|
});
|
|
|
}
|
|
|
+ //修改报价单状态
|
|
|
+ Order orderMessage = new Order();
|
|
|
+ orderMessage.setId(order.getId());
|
|
|
+ orderMessage.setOrderStatus(OrderEnum.SUBMIT.getStatus());
|
|
|
+ baseMapper.updateById(orderMessage);
|
|
|
return R.data(order);
|
|
|
}
|
|
|
|