|
|
@@ -16,7 +16,14 @@
|
|
|
*/
|
|
|
package org.springblade.mocha.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
+import org.springblade.finance.vojo.Items;
|
|
|
+import org.springblade.mocha.entity.BusinessOverpayment;
|
|
|
import org.springblade.mocha.entity.BusinessOverpaymentItem;
|
|
|
+import org.springblade.mocha.service.IBusinessOverpaymentService;
|
|
|
import org.springblade.mocha.vo.BusinessOverpaymentItemVO;
|
|
|
import org.springblade.mocha.mapper.BusinessOverpaymentItemMapper;
|
|
|
import org.springblade.mocha.service.IBusinessOverpaymentItemService;
|
|
|
@@ -24,6 +31,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
/**
|
|
|
* 溢付款明细表 服务实现类
|
|
|
*
|
|
|
@@ -31,11 +43,63 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
* @since 2021-12-28
|
|
|
*/
|
|
|
@Service
|
|
|
+@AllArgsConstructor
|
|
|
public class BusinessOverpaymentItemServiceImpl extends ServiceImpl<BusinessOverpaymentItemMapper, BusinessOverpaymentItem> implements IBusinessOverpaymentItemService {
|
|
|
|
|
|
+ private final IBusinessOverpaymentService businessOverpaymentService;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<BusinessOverpaymentItemVO> selectBusinessOverpaymentItemPage(IPage<BusinessOverpaymentItemVO> page, BusinessOverpaymentItemVO businessOverpaymentItem) {
|
|
|
return page.setRecords(baseMapper.selectBusinessOverpaymentItemPage(page, businessOverpaymentItem));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public BusinessOverpaymentItem saveOrUpdateItem(BusinessOverpaymentItem businessOverpaymentItem) {
|
|
|
+ if (businessOverpaymentItem.getId() == null) {
|
|
|
+ businessOverpaymentItem.setCreateUser(AuthUtil.getUserId());
|
|
|
+ businessOverpaymentItem.setCreateTime(new Date());
|
|
|
+ businessOverpaymentItem.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ businessOverpaymentItem.setTenantId(AuthUtil.getTenantId());
|
|
|
+ baseMapper.insert(businessOverpaymentItem);
|
|
|
+ } else {
|
|
|
+ businessOverpaymentItem.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ businessOverpaymentItem.setUpdateTime(new Date());
|
|
|
+ businessOverpaymentItem.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ businessOverpaymentItem.setTenantId(AuthUtil.getTenantId());
|
|
|
+ baseMapper.updateById(businessOverpaymentItem);
|
|
|
+ }
|
|
|
+ BusinessOverpayment businessOverpayment = new BusinessOverpayment();
|
|
|
+ businessOverpayment.setId(businessOverpaymentItem.getPid());
|
|
|
+ //获得增加的金额
|
|
|
+ LambdaQueryWrapper<BusinessOverpaymentItem> inOverpayment = new LambdaQueryWrapper<>();
|
|
|
+ inOverpayment.eq(BusinessOverpaymentItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BusinessOverpaymentItem::getIsDeleted, 0)
|
|
|
+ .eq(BusinessOverpaymentItem::getPid, businessOverpaymentItem.getPid())
|
|
|
+ .eq(BusinessOverpaymentItem::getOverpaymentType, 0);
|
|
|
+ List<BusinessOverpaymentItem> inOverpaymentList = baseMapper.selectList(inOverpayment);
|
|
|
+ if (ObjectUtil.isNotEmpty(inOverpaymentList)){
|
|
|
+ businessOverpayment.setInOverpayment(inOverpaymentList.stream().map(BusinessOverpaymentItem::getOverpayment).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }else {
|
|
|
+ businessOverpayment.setInOverpayment(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获得消费的金额
|
|
|
+ LambdaQueryWrapper<BusinessOverpaymentItem> outOverpaymen = new LambdaQueryWrapper<>();
|
|
|
+ outOverpaymen.eq(BusinessOverpaymentItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BusinessOverpaymentItem::getIsDeleted, 0)
|
|
|
+ .eq(BusinessOverpaymentItem::getPid, businessOverpaymentItem.getPid())
|
|
|
+ .eq(BusinessOverpaymentItem::getOverpaymentType, 1);
|
|
|
+ List<BusinessOverpaymentItem> outOverpaymenList = baseMapper.selectList(outOverpaymen);
|
|
|
+ if (ObjectUtil.isNotEmpty(outOverpaymenList)){
|
|
|
+ businessOverpayment.setOutOverpaymen(outOverpaymenList.stream().map(BusinessOverpaymentItem::getOverpayment).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }else {
|
|
|
+ businessOverpayment.setOutOverpaymen(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
+ businessOverpayment.setBalanceOverpaymen(businessOverpayment.getInOverpayment().subtract(businessOverpayment.getOutOverpaymen()));
|
|
|
+ businessOverpaymentService.updateById(businessOverpayment);
|
|
|
+
|
|
|
+ return businessOverpaymentItem;
|
|
|
+ }
|
|
|
+
|
|
|
}
|