|
|
@@ -24,10 +24,7 @@ import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.salesPart.corps.mapper.CorpsDescMapper;
|
|
|
-import org.springblade.salesPart.entity.PjOrder;
|
|
|
-import org.springblade.salesPart.entity.PjOrderItems;
|
|
|
-import org.springblade.salesPart.entity.PjPayment;
|
|
|
-import org.springblade.salesPart.entity.PjShip;
|
|
|
+import org.springblade.salesPart.entity.*;
|
|
|
import org.springblade.salesPart.enums.OrderTypeEnum;
|
|
|
import org.springblade.salesPart.order.mapper.OrderItemsMapper;
|
|
|
import org.springblade.salesPart.order.mapper.OrderMapper;
|
|
|
@@ -125,56 +122,115 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setCustomerName(corpsDescMapper.selectById(order.getCustomerId()).getCname());
|
|
|
//仓库名称
|
|
|
order.setStorageName(storageDescMapper.selectById(order.getStorageId()).getCname());
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(order.getBsType(), order.getBsType(), order.getBsType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
|
|
|
- if (order.getId() == null){
|
|
|
- // 获取系统编号
|
|
|
- R billNo = serialClient.getBillNo(order.getBsType(), order.getBsType(), order.getBsType());
|
|
|
- if (billNo.getCode() != 200) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.fail(500, "生成系统编号失败");
|
|
|
+ if (order.getBsType().equals(OrderTypeEnum.SALES.getType())){//销售
|
|
|
+ if (order.getId() == null){
|
|
|
+ order.setOrdNo((String) billNo.getData());
|
|
|
+ order.setCreateTime(new Date());
|
|
|
+ order.setCreateUser(AuthUtil.getUserId());
|
|
|
+ order.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ order.setTenantId(AuthUtil.getTenantId());
|
|
|
+ order.setStatus(OrderTypeEnum.XSLR.getType());
|
|
|
+ order.setBusinessSource(OrderTypeEnum.WEB.getType());
|
|
|
+ baseMapper.insert(order);
|
|
|
+ }else {
|
|
|
+ order.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(order);
|
|
|
}
|
|
|
- order.setOrdNo((String) billNo.getData());
|
|
|
- order.setCreateTime(new Date());
|
|
|
- order.setCreateUser(AuthUtil.getUserId());
|
|
|
- order.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- order.setTenantId(AuthUtil.getTenantId());
|
|
|
- order.setStatus(OrderTypeEnum.XSLR.getType());
|
|
|
- order.setBusinessSource(OrderTypeEnum.WEB.getType());
|
|
|
- baseMapper.insert(order);
|
|
|
- }else {
|
|
|
- order.setUpdateUser(AuthUtil.getUserId());
|
|
|
- order.setUpdateTime(new Date());
|
|
|
- baseMapper.updateById(order);
|
|
|
- }
|
|
|
|
|
|
- // 保存订单明细
|
|
|
- if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
- order.getOrderItemsList().forEach(item -> {
|
|
|
- item.setBizType(order.getBsType());
|
|
|
- item.setBillNo(order.getOrdNo());
|
|
|
- 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);
|
|
|
+ // 保存订单明细
|
|
|
+ if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
+ order.getOrderItemsList().forEach(item -> {
|
|
|
+ item.setBizType(order.getBsType());
|
|
|
+ item.setBillNo(order.getOrdNo());
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ BigDecimal totalMoney = BigDecimal.ZERO;
|
|
|
+ order.setNumberRows(order.getOrderItemsList().size());//行数
|
|
|
+ //明细总数量
|
|
|
+ order.setGoodsTotalNum(order.getOrderItemsList().stream().filter(e ->e.getGoodsNum() != null).map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ //明细总金额
|
|
|
+ totalMoney = order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
|
+ return x.add(y.getGoodsNum().multiply(y.getPrice()));
|
|
|
+ },BigDecimal::add).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
+ order.setSalesAmount(totalMoney);
|
|
|
+
|
|
|
+ if (order.getOrderItemsList().size() == 1){//只有一条明细加5元运费
|
|
|
+ totalMoney.add(new BigDecimal(5));
|
|
|
+ order.setFreight(new BigDecimal(5));
|
|
|
}
|
|
|
- });
|
|
|
-
|
|
|
- order.setNumberRows(order.getOrderItemsList().size());//行数
|
|
|
- //明细总数量
|
|
|
- order.setGoodsTotalNum(order.getOrderItemsList().stream().filter(e ->e.getGoodsNum() != null).map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- //明细总金额
|
|
|
- order.setTotalMoney(order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
|
- return x.add(y.getGoodsNum().multiply(y.getPrice()));
|
|
|
- },BigDecimal::add).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ order.setTotalMoney(totalMoney);
|
|
|
+ }
|
|
|
+ }else if (order.getBsType().equals(OrderTypeEnum.PURCHASE.getType())){//采购
|
|
|
+ if (order.getId() == null){
|
|
|
+ order.setOrdNo((String) billNo.getData());
|
|
|
+ order.setCreateTime(new Date());
|
|
|
+ order.setCreateUser(AuthUtil.getUserId());
|
|
|
+ order.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ order.setTenantId(AuthUtil.getTenantId());
|
|
|
+ order.setStatus(OrderTypeEnum.XSLR.getType());
|
|
|
+ baseMapper.insert(order);
|
|
|
+ }else {
|
|
|
+ order.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存订单明细
|
|
|
+ if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
+ order.getOrderItemsList().forEach(item -> {
|
|
|
+ item.setBizType(order.getBsType());
|
|
|
+ item.setBillNo(order.getOrdNo());
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ BigDecimal totalMoney = BigDecimal.ZERO;
|
|
|
+ order.setNumberRows(order.getOrderItemsList().size());//行数
|
|
|
+ //明细总数量
|
|
|
+ order.setGoodsTotalNum(order.getOrderItemsList().stream().filter(e ->e.getGoodsNum() != null).map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ //明细总金额
|
|
|
+ totalMoney = order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
|
+ return x.add(y.getGoodsNum().multiply(y.getPrice()));
|
|
|
+ },BigDecimal::add).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
+ order.setSalesAmount(totalMoney);
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
baseMapper.updateById(order);
|
|
|
|
|
|
return R.data(order);
|
|
|
@@ -213,7 +269,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
pjShip.setCreateTime(new Date());
|
|
|
shipMapper.insert(pjShip);
|
|
|
|
|
|
- //修改销售状态为代发货
|
|
|
+ //修改销售状态为待发货
|
|
|
pjOrder.setStatus(OrderTypeEnum.XSDFH.getType());
|
|
|
baseMapper.updateById(pjOrder);
|
|
|
|