|
|
@@ -45,6 +45,7 @@ import org.springblade.salesPart.check.entity.PjAuditPathsLevels;
|
|
|
import org.springblade.salesPart.check.service.IAuditPathsActsService;
|
|
|
import org.springblade.salesPart.check.service.IAuditPathsLevelsService;
|
|
|
import org.springblade.salesPart.check.service.IAuditProecessService;
|
|
|
+import org.springblade.salesPart.corps.mapper.CorpsAttnMapper;
|
|
|
import org.springblade.salesPart.corps.mapper.CorpsDescMapper;
|
|
|
import org.springblade.salesPart.entity.*;
|
|
|
import org.springblade.salesPart.enums.OrderTypeEnum;
|
|
|
@@ -111,6 +112,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
private final ShipMapper shipMapper;
|
|
|
private final IShipItemsService shipItemsService;
|
|
|
private final CorpsDescMapper corpsDescMapper;
|
|
|
+ private final CorpsAttnMapper corpsAttnMapper;//客户联系人
|
|
|
private final StorageDescMapper storageDescMapper;
|
|
|
private final GoodsTypeMapper goodsTypeMapper;
|
|
|
private final IStockDescService stockDescService;
|
|
|
@@ -417,9 +419,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R integralExchange(PjOrder order) {
|
|
|
+ public R integralExchange(PjProductLaunch productLaunch) {
|
|
|
+ PjOrder order = new PjOrder();
|
|
|
+ order.setBsType("XS");
|
|
|
+ PjCorpsDesc corpsDesc = null;
|
|
|
+ //根据当前登录人获得客户
|
|
|
+ PjCorpsAttn corpsAttn = corpsAttnMapper.selectOne(new LambdaQueryWrapper<PjCorpsAttn>()
|
|
|
+ .eq(PjCorpsAttn::getIsDeleted, 0)
|
|
|
+ .eq(PjCorpsAttn::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjCorpsAttn::getUserId, AuthUtil.getUserId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(corpsAttn)) {
|
|
|
+ corpsDesc = corpsDescMapper.selectById(corpsAttn.getPid());
|
|
|
+ if (ObjectUtil.isEmpty(corpsDesc)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ }
|
|
|
//客户名称
|
|
|
- PjCorpsDesc corpsDesc = corpsDescMapper.selectById(order.getCustomerId());
|
|
|
order.setCustomerName(corpsDesc.getCname());
|
|
|
|
|
|
// 获取系统编号
|
|
|
@@ -439,6 +456,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
}
|
|
|
}
|
|
|
order.setWhetherIntegral("1");
|
|
|
+ order.setBusinessSource("外部销售");
|
|
|
order.setOrdNo((String) billNo.getData());
|
|
|
order.setSrcOrdNo((String) billNo.getData());
|
|
|
order.setCreateTime(new Date());
|
|
|
@@ -447,7 +465,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setTenantId(AuthUtil.getTenantId());
|
|
|
order.setStatus(OrderTypeEnum.XSLR.getType());
|
|
|
order.setBusinessSource(OrderTypeEnum.WEB.getType());
|
|
|
- order.setActualPaymentStatus(1);
|
|
|
+ order.setActualPaymentStatus(2);
|
|
|
baseMapper.insert(order);
|
|
|
} else {
|
|
|
order.setUpdateUser(AuthUtil.getUserId());
|
|
|
@@ -455,69 +473,67 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
baseMapper.updateById(order);
|
|
|
}
|
|
|
// 保存订单明细
|
|
|
- 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());
|
|
|
- }
|
|
|
+ //所属公司
|
|
|
+ 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 {
|
|
|
- throw new SecurityException("未维护所属公司");
|
|
|
- }
|
|
|
- StringBuilder goodsName = new StringBuilder();
|
|
|
- StringBuilder goodsIds = new StringBuilder();
|
|
|
- StringBuilder retrieval = new StringBuilder();
|
|
|
- for (PjOrderItems item : order.getOrderItemsList()) {
|
|
|
- item.setBizType(order.getBsType());
|
|
|
- item.setBillNo(order.getOrdNo());
|
|
|
- //计算小计
|
|
|
- item.setSubTotalMoney(item.getGoodsNum().multiply(item.getPrice()));
|
|
|
- //获得商品
|
|
|
- PjGoodsDesc goodsDesc = goodsDescMapper.selectById(item.getGoodsId());
|
|
|
- if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
- throw new RuntimeException("商品数据异常");
|
|
|
- }
|
|
|
- item.setBrandName(goodsDesc.getBrandName());
|
|
|
- goodsName = goodsName.append(goodsDesc.getCname()).append(",");
|
|
|
- goodsIds = goodsIds.append(goodsDesc.getId()).append(",");
|
|
|
- retrieval = retrieval.append(goodsDesc.getCnameInt()).append(",");
|
|
|
- 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());
|
|
|
- } else {
|
|
|
- item.setUpdateTime(new Date());
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setPid(order.getId());
|
|
|
- }
|
|
|
+ order.setSharedCompanyId(order.getSharedCompanyId());
|
|
|
+ order.setSharedCompanyName(order.getSharedCompanyName());
|
|
|
}
|
|
|
- orderItemsService.saveOrUpdateBatch(order.getOrderItemsList());
|
|
|
- if (goodsName.length() > 0) {
|
|
|
- order.setGoodsNameJoin(goodsName.substring(0, goodsName.length() - 1));
|
|
|
- }
|
|
|
- if (retrieval.length() > 0) {
|
|
|
- order.setShortcutJoin(retrieval.substring(0, retrieval.length() - 1));
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("未维护所属公司");
|
|
|
+ }
|
|
|
+ if (productLaunch != null) {
|
|
|
+ PjOrderItems item = new PjOrderItems();
|
|
|
+ item.setBizType(order.getBsType());
|
|
|
+ item.setBillNo(order.getOrdNo());
|
|
|
+
|
|
|
+ //商品名称
|
|
|
+ PjGoodsDesc goodsDesc = goodsDescMapper.selectById(productLaunch.getGoodsId());
|
|
|
+ item.setGoodsId(productLaunch.getGoodsId());
|
|
|
+ item.setGoodsName(goodsDesc.getCname());
|
|
|
+ item.setGoodsNo(goodsDesc.getCode());
|
|
|
+ item.setPropertyName(goodsDesc.getSpecificationAndModel());
|
|
|
+ item.setPattern(goodsDesc.getBrandItem());
|
|
|
+ item.setGoodsDescription(goodsDesc.getGoodsDescription());
|
|
|
+ item.setUnits(goodsDesc.getUnit());
|
|
|
+ item.setBrandId(goodsDesc.getBrandId());
|
|
|
+ item.setBrandName(goodsDesc.getBrandName());
|
|
|
+
|
|
|
+ item.setGoodsNum(productLaunch.getGoodsNum());
|
|
|
+ item.setSalesCompanyId(productLaunch.getSalesCompanyId());
|
|
|
+ item.setSalesCompanyName(productLaunch.getSalesCompanyName());
|
|
|
+ item.setPrice(productLaunch.getMallPrice());
|
|
|
+ item.setProductLaunchId(productLaunch.getId());
|
|
|
+ item.setInventory(productLaunch.getInventory());
|
|
|
+ item.setTenantId(AuthUtil.getTenantId());
|
|
|
+ //计算小计
|
|
|
+ item.setSubTotalMoney(item.getGoodsNum().multiply(item.getPrice()).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ 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());
|
|
|
+ } else {
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(order.getId());
|
|
|
}
|
|
|
- BigDecimal totalMoney = BigDecimal.ZERO;
|
|
|
- order.setNumberRows(order.getOrderItemsList().size());//行数
|
|
|
+ orderItemsService.saveOrUpdate(item);
|
|
|
+ order.setGoodsNameJoin(goodsDesc.getCname());
|
|
|
+ order.setShortcutJoin(goodsDesc.getIntegral() + "");
|
|
|
+ BigDecimal totalMoney = item.getSubTotalMoney();
|
|
|
+ order.setNumberRows(1);//行数
|
|
|
//总数量
|
|
|
- order.setGoodsTotalNum(order.getOrderItemsList().stream().filter(e -> e.getGoodsNum() != null).map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ order.setGoodsTotalNum(productLaunch.getGoodsNum());
|
|
|
//总已发数量
|
|
|
- order.setGoodsTotalShipNum(order.getOrderItemsList().stream().filter(e -> e.getSendNum() != null).map(PjOrderItems::getSendNum).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, RoundingMode.HALF_UP);
|
|
|
-
|
|
|
+ order.setGoodsTotalShipNum(new BigDecimal("0"));
|
|
|
if (totalMoney.compareTo(corpsDesc.getPointsBalance()) > 0) {
|
|
|
throw new RuntimeException("积分余额不足,兑换失败");
|
|
|
} else {
|
|
|
@@ -536,13 +552,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
integralDetail.setCorpName(corpsDesc.getCname());
|
|
|
integralDetail.setIntegral(order.getTotalMoney());
|
|
|
integralDetail.setGoodsName(order.getGoodsNameJoin());
|
|
|
- if (goodsIds.length() > 0) {
|
|
|
- integralDetail.setGoodsId(goodsIds.substring(0, goodsIds.length() - 1));
|
|
|
- }
|
|
|
+ integralDetail.setGoodsId(goodsDesc.getId() + "");
|
|
|
iIntegralDetailClient.submit(integralDetail);
|
|
|
+ corpsDescMapper.updateById(corpsDesc);
|
|
|
+ baseMapper.updateById(order);
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
}
|
|
|
- corpsDescMapper.updateById(corpsDesc);
|
|
|
- baseMapper.updateById(order);
|
|
|
return R.data(order);
|
|
|
}
|
|
|
|