|
|
@ -26,14 +26,25 @@ |
|
|
|
package com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContract; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractVo; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmation; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmationQuery; |
|
|
|
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmationVo; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedQuery; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
@ -54,6 +65,10 @@ import java.util.List; |
|
|
|
*/ |
|
|
|
@Service |
|
|
|
public class FinUncollectedReceivablesDetailedService extends MybatisBaseService<FinUncollectedReceivablesDetailedMapper, FinUncollectedReceivablesDetailed> { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private CommonContractFeign commonContractFeign; |
|
|
|
|
|
|
|
private QueryWrapper<FinUncollectedReceivablesDetailed> createQueryWrapper(FinUncollectedReceivablesDetailedQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
|
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|
|
@ -70,6 +85,17 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService |
|
|
|
if (StringUtils.isNotBlank(query.getCustomerPhone())) { |
|
|
|
qw.eq("customerPhone", query.getCustomerPhone()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getPaymentTypeKey())) { |
|
|
|
qw.eq("paymentTypeKey", query.getPaymentTypeKey()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getSubscriptionState())) { |
|
|
|
qw.eq("subscriptionState", query.getSubscriptionState()); |
|
|
|
} |
|
|
|
String createStartTime = query.getCreateStartTime(); |
|
|
|
String createEndTime = query.getCreateEndTime(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
return qw; |
|
|
|
} |
|
|
|
|
|
|
@ -98,4 +124,63 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService |
|
|
|
public void updateCurRecMoneyBySid(String curRecMoney, String sid) { |
|
|
|
baseMapper.updateCurRecMoneyBySid(curRecMoney,sid); |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<FinUncollectedReceivablesDetailedVo> listPageVo(PagerQuery<FinUncollectedReceivablesDetailedQuery> pq) { |
|
|
|
FinUncollectedReceivablesDetailedQuery params = pq.getParams(); |
|
|
|
QueryWrapper<FinUncollectedReceivablesDetailed> qw = createQueryWrapper(params); |
|
|
|
IPage<FinUncollectedReceivablesDetailed> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<FinUncollectedReceivablesDetailedVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
List<FinUncollectedReceivablesDetailedVo> records = pagging.getRecords(); |
|
|
|
for (FinUncollectedReceivablesDetailedVo record : records) { |
|
|
|
BigDecimal totalDeposit = null; |
|
|
|
BigDecimal totalPrice = null; |
|
|
|
BigDecimal noSubscriptionMoney = null; |
|
|
|
String contractSid = record.getContractSid(); |
|
|
|
String contractNo = record.getContractNo(); |
|
|
|
String receivablesName = record.getReceivablesName(); |
|
|
|
String paymentTypeValue = record.getPaymentTypeValue(); |
|
|
|
ResultBean<CommonContractVo> commonContractVoResultBean = commonContractFeign.fetchBySid(contractSid); |
|
|
|
CommonContractVo data = commonContractVoResultBean.getData(); |
|
|
|
if (receivablesName.equals("订金")){ |
|
|
|
BigDecimal oneDeposit = new BigDecimal(data.getOneDeposit()); |
|
|
|
BigDecimal num = new BigDecimal(data.getNum()); |
|
|
|
totalDeposit = oneDeposit.multiply(num); |
|
|
|
record.setCurrentReceivableMoney(String.valueOf(totalDeposit)); |
|
|
|
}else if (receivablesName.equals("车款")){ |
|
|
|
BigDecimal price = new BigDecimal(data.getPrice()); |
|
|
|
BigDecimal num = new BigDecimal(data.getNum()); |
|
|
|
totalPrice = price.multiply(num); |
|
|
|
record.setCurrentReceivableMoney(String.valueOf(totalPrice)); |
|
|
|
} |
|
|
|
List<FinUncollectedReceivablesDetailedVo> finUncollectedReceivablesDetailedVos = baseMapper.selectGroupConAndRecAndPay(contractNo, receivablesName, paymentTypeValue); |
|
|
|
for (FinUncollectedReceivablesDetailedVo finUncollectedReceivablesDetailedVo : finUncollectedReceivablesDetailedVos) { |
|
|
|
String receivablesName1 = finUncollectedReceivablesDetailedVo.getReceivablesName(); |
|
|
|
String subscriptionMoney = finUncollectedReceivablesDetailedVo.getSubscriptionMoney(); |
|
|
|
if (receivablesName1.equals("订金")){ |
|
|
|
record.setSubscriptionMoney(subscriptionMoney); |
|
|
|
noSubscriptionMoney = totalDeposit.subtract(new BigDecimal(subscriptionMoney)); |
|
|
|
record.setNoSubscriptionMoney(String.valueOf(noSubscriptionMoney)); |
|
|
|
if (subscriptionMoney.equals(0)){ |
|
|
|
record.setSubscriptionState("未认款"); |
|
|
|
}else if(subscriptionMoney.equals(totalDeposit)){ |
|
|
|
record.setSubscriptionState("已认款"); |
|
|
|
}else { |
|
|
|
record.setSubscriptionState("部分认款"); |
|
|
|
} |
|
|
|
}else if (receivablesName1.equals("车款")){ |
|
|
|
noSubscriptionMoney = totalPrice.subtract(new BigDecimal(subscriptionMoney)); |
|
|
|
record.setNoSubscriptionMoney(String.valueOf(noSubscriptionMoney)); |
|
|
|
if (subscriptionMoney.equals(0)){ |
|
|
|
record.setSubscriptionState("未认款"); |
|
|
|
}else if(subscriptionMoney.equals(totalPrice)){ |
|
|
|
record.setSubscriptionState("已认款"); |
|
|
|
}else { |
|
|
|
record.setSubscriptionState("部分认款"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
PagerVo<FinUncollectedReceivablesDetailedVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |