|
|
|
@ -32,6 +32,7 @@ import lombok.RequiredArgsConstructor; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.commons.lang3.time.DateFormatUtils; |
|
|
|
import org.apache.commons.lang3.time.DateFormatUtils; |
|
|
|
import org.springblade.common.cache.SysCache; |
|
|
|
import org.springblade.common.cache.SysCache; |
|
|
|
|
|
|
|
import org.springblade.common.cache.UserCache; |
|
|
|
import org.springblade.common.enums.CommonEnum; |
|
|
|
import org.springblade.common.enums.CommonEnum; |
|
|
|
import org.springblade.core.mp.base.BaseEntity; |
|
|
|
import org.springblade.core.mp.base.BaseEntity; |
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
@ -67,6 +68,7 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
private final IOrderProjectProductService orderProjectProductService; |
|
|
|
private final IOrderProjectProductService orderProjectProductService; |
|
|
|
private final IOrderExtraChargeService orderExtraChargeService; |
|
|
|
private final IOrderExtraChargeService orderExtraChargeService; |
|
|
|
private final IWaterBillService waterBillService; |
|
|
|
private final IWaterBillService waterBillService; |
|
|
|
|
|
|
|
private final IExchangeRateService exchangeRateService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) { |
|
|
|
public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) { |
|
|
|
@ -94,13 +96,15 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Boolean saveOrder(OrderEntity order) { |
|
|
|
public Boolean saveOrder(OrderEntity order) { |
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
BladeUser bladeUser = AuthUtil.getUser(); |
|
|
|
|
|
|
|
User user = UserCache.getUser(bladeUser.getUserId()); |
|
|
|
order.setCode(generateOrderCode(order)); |
|
|
|
order.setCode(generateOrderCode(order)); |
|
|
|
order.setOrderDate(DateFormatUtils.format(new Date(),"yyyy-MM-dd")); |
|
|
|
order.setOrderDate(DateFormatUtils.format(new Date(),"yyyy-MM-dd")); |
|
|
|
order.setRemittedAmount(new BigDecimal(0)); |
|
|
|
order.setRemittedAmount(new BigDecimal(0)); |
|
|
|
order.setUnremittedAmount(order.getSellingPrice().subtract(order.getDiscountAmount())); |
|
|
|
order.setCreateUserName(user.getRealName()); |
|
|
|
order.setCreateUserName(user.getUserName()); |
|
|
|
|
|
|
|
order.setCreateDeptName(SysCache.getDeptName(Long.parseLong(user.getDeptId()))); |
|
|
|
order.setCreateDeptName(SysCache.getDeptName(Long.parseLong(user.getDeptId()))); |
|
|
|
|
|
|
|
order.setContractPrice(order.getSellingPrice()); |
|
|
|
|
|
|
|
|
|
|
|
this.save(order); |
|
|
|
this.save(order); |
|
|
|
List<OrderProjectEntity> orderProjectEntityList = order.getProjectList(); |
|
|
|
List<OrderProjectEntity> orderProjectEntityList = order.getProjectList(); |
|
|
|
for(OrderProjectEntity project : orderProjectEntityList){ |
|
|
|
for(OrderProjectEntity project : orderProjectEntityList){ |
|
|
|
@ -122,22 +126,27 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
Date date = new Date(); |
|
|
|
Date date = new Date(); |
|
|
|
//修改之前版本的状态
|
|
|
|
//修改之前版本的状态
|
|
|
|
OrderEntity oldOrder = this.getById(order.getId()); |
|
|
|
OrderEntity oldOrder = this.getById(order.getId()); |
|
|
|
|
|
|
|
if(oldOrder != null){ |
|
|
|
oldOrder.setStatus(9999); |
|
|
|
oldOrder.setStatus(9999); |
|
|
|
oldOrder.setUpdateTime(date); |
|
|
|
oldOrder.setUpdateTime(date); |
|
|
|
this.updateById(oldOrder); |
|
|
|
this.updateById(oldOrder); |
|
|
|
|
|
|
|
} |
|
|
|
//添加新的版本
|
|
|
|
//添加新的版本
|
|
|
|
order.setCode(generateOrderCode(order)); |
|
|
|
order.setCode(generateOrderCode(order)); |
|
|
|
order.setId(null); |
|
|
|
order.setId(null); |
|
|
|
|
|
|
|
order.setContractPrice(order.getSellingPrice()); |
|
|
|
this.save(order); |
|
|
|
this.save(order); |
|
|
|
List<OrderProjectEntity> orderProjectEntityList = order.getProjectList(); |
|
|
|
List<OrderProjectEntity> orderProjectEntityList = order.getProjectList(); |
|
|
|
for(OrderProjectEntity project : orderProjectEntityList){ |
|
|
|
for(OrderProjectEntity project : orderProjectEntityList){ |
|
|
|
//修改之前版本的状态
|
|
|
|
//修改之前版本的状态
|
|
|
|
if(project.getId() != null){ |
|
|
|
if(project.getId() != null){ |
|
|
|
OrderProjectEntity oldProject = orderProjectService.getById(project.getId()); |
|
|
|
OrderProjectEntity oldProject = orderProjectService.getById(project.getId()); |
|
|
|
|
|
|
|
if(oldProject != null){ |
|
|
|
oldProject.setStatus(9999); |
|
|
|
oldProject.setStatus(9999); |
|
|
|
oldProject.setUpdateTime(date); |
|
|
|
oldProject.setUpdateTime(date); |
|
|
|
orderProjectService.updateById(oldProject); |
|
|
|
orderProjectService.updateById(oldProject); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
//添加新的版本
|
|
|
|
//添加新的版本
|
|
|
|
project.setId(null); |
|
|
|
project.setId(null); |
|
|
|
project.setOrderId(order.getId()); |
|
|
|
project.setOrderId(order.getId()); |
|
|
|
@ -146,11 +155,13 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
for(OrderProjectProductEntity product : orderProjectProductEntityList){ |
|
|
|
for(OrderProjectProductEntity product : orderProjectProductEntityList){ |
|
|
|
if(product.getId() != null){ |
|
|
|
if(product.getId() != null){ |
|
|
|
OrderProjectProductEntity oldProduct = orderProjectProductService.getById(product.getId()); |
|
|
|
OrderProjectProductEntity oldProduct = orderProjectProductService.getById(product.getId()); |
|
|
|
|
|
|
|
if(oldProduct != null){ |
|
|
|
//修改之前版本状态
|
|
|
|
//修改之前版本状态
|
|
|
|
oldProduct.setStatus(9999); |
|
|
|
oldProduct.setStatus(9999); |
|
|
|
oldProduct.setUpdateTime(date); |
|
|
|
oldProduct.setUpdateTime(date); |
|
|
|
orderProjectProductService.updateById(oldProduct); |
|
|
|
orderProjectProductService.updateById(oldProduct); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//添加新的版本
|
|
|
|
//添加新的版本
|
|
|
|
product.setId(null); |
|
|
|
product.setId(null); |
|
|
|
@ -166,6 +177,10 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public OrderEntity detail(OrderEntity order) { |
|
|
|
public OrderEntity detail(OrderEntity order) { |
|
|
|
order = this.getById(order.getId()); |
|
|
|
order = this.getById(order.getId()); |
|
|
|
|
|
|
|
ExchangeRateEntity exchangeRate = exchangeRateService.getOne(Wrappers.<ExchangeRateEntity>lambdaQuery().eq(ExchangeRateEntity::getTargetCurrency,order.getMonetaryUnit())); |
|
|
|
|
|
|
|
if(exchangeRate != null){ |
|
|
|
|
|
|
|
order.setDiscountAmount(order.getDiscountAmount().divide(exchangeRate.getRate(),0, RoundingMode.UP)); |
|
|
|
|
|
|
|
} |
|
|
|
List<OrderProjectEntity> projectList = orderProjectService.list(Wrappers.<OrderProjectEntity>lambdaQuery().eq(OrderProjectEntity::getOrderId,order.getId())); |
|
|
|
List<OrderProjectEntity> projectList = orderProjectService.list(Wrappers.<OrderProjectEntity>lambdaQuery().eq(OrderProjectEntity::getOrderId,order.getId())); |
|
|
|
projectList.forEach(project ->{ |
|
|
|
projectList.forEach(project ->{ |
|
|
|
List<OrderProjectProductEntity> productList = orderProjectProductService.list(Wrappers.<OrderProjectProductEntity>lambdaQuery().eq(OrderProjectProductEntity::getProjectId,project.getId())); |
|
|
|
List<OrderProjectProductEntity> productList = orderProjectProductService.list(Wrappers.<OrderProjectProductEntity>lambdaQuery().eq(OrderProjectProductEntity::getProjectId,project.getId())); |
|
|
|
@ -219,15 +234,21 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Boolean approve(OrderEntity order) { |
|
|
|
public Boolean approve(OrderEntity order) { |
|
|
|
order.setUpdateUserName(AuthUtil.getUser().getNickName()); |
|
|
|
BladeUser bladeUser = AuthUtil.getUser(); |
|
|
|
order.setUpdateTime(new Date()); |
|
|
|
User user = UserCache.getUser(bladeUser.getUserId()); |
|
|
|
this.updateById(order); |
|
|
|
BigDecimal chargePrice = new BigDecimal(0); |
|
|
|
if(CollectionUtils.isNotEmpty(order.getExtraChargeList())){ |
|
|
|
if(CollectionUtils.isNotEmpty(order.getExtraChargeList())){ |
|
|
|
for(OrderExtraChargeEntity charge : order.getExtraChargeList()){ |
|
|
|
for(OrderExtraChargeEntity charge : order.getExtraChargeList()){ |
|
|
|
charge.setOrderId(order.getId()); |
|
|
|
charge.setOrderId(order.getId()); |
|
|
|
orderExtraChargeService.save(charge); |
|
|
|
orderExtraChargeService.save(charge); |
|
|
|
|
|
|
|
chargePrice = chargePrice.add(charge.getPrice()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
order.setContractPrice(order.getSellingPrice().add(chargePrice)); |
|
|
|
|
|
|
|
exchangeRate(order); |
|
|
|
|
|
|
|
order.setUpdateUserName(user.getRealName()); |
|
|
|
|
|
|
|
order.setUpdateTime(new Date()); |
|
|
|
|
|
|
|
this.updateById(order); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -349,4 +370,13 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity> |
|
|
|
return code; |
|
|
|
return code; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public OrderEntity exchangeRate(OrderEntity order){ |
|
|
|
|
|
|
|
ExchangeRateEntity exchangeRate = exchangeRateService.getOne(Wrappers.<ExchangeRateEntity>lambdaQuery().eq(ExchangeRateEntity::getTargetCurrency,order.getMonetaryUnit())); |
|
|
|
|
|
|
|
if(exchangeRate != null){ |
|
|
|
|
|
|
|
order.setContractPrice(order.getContractPrice().multiply(exchangeRate.getRate())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
order.setUnremittedAmount(order.getContractPrice().subtract(order.getRemittedAmount())); |
|
|
|
|
|
|
|
return order; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|