|
|
@ -33,10 +33,12 @@ 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.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo; |
|
|
|
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.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
@ -48,6 +50,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
/** |
|
|
@ -66,121 +69,177 @@ import java.util.List; |
|
|
|
@Service |
|
|
|
public class FinUncollectedReceivablesDetailedService extends MybatisBaseService<FinUncollectedReceivablesDetailedMapper, FinUncollectedReceivablesDetailed> { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private CommonContractFeign commonContractFeign; |
|
|
|
@Autowired |
|
|
|
private CommonContractFeign commonContractFeign; |
|
|
|
@Autowired |
|
|
|
private FinSelectedReceivablesDetailedService finSelectedReceivablesDetailedService; |
|
|
|
|
|
|
|
private QueryWrapper<FinUncollectedReceivablesDetailed> createQueryWrapper(FinUncollectedReceivablesDetailedQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
|
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|
|
|
QueryWrapper<FinUncollectedReceivablesDetailed> qw = new QueryWrapper<>(); |
|
|
|
qw.ne("currentReceivableMoney",0); |
|
|
|
qw.eq("useOrgSid", query.getUseOrgSid()); |
|
|
|
qw.eq("createBySid",query.getCreateBySid()); |
|
|
|
if (StringUtils.isNotBlank(query.getContractNo())) { |
|
|
|
qw.eq("contractNo", query.getContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCustomerName())) { |
|
|
|
qw.eq("customerName", query.getCustomerName()); |
|
|
|
} |
|
|
|
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; |
|
|
|
} |
|
|
|
|
|
|
|
public List<FinUncollectedReceivablesDetailedVo> listAllVo(FinUncollectedReceivablesDetailedQuery query) { |
|
|
|
QueryWrapper<FinUncollectedReceivablesDetailed> qw = createQueryWrapper(query); |
|
|
|
return baseMapper.selectListAllVo(qw); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean saveOrUpdateDto(FinUncollectedReceivablesDetailedDto dto){ |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
|
FinUncollectedReceivablesDetailed entity = new FinUncollectedReceivablesDetailed(); |
|
|
|
if (StringUtils.isBlank(sid)){//新增
|
|
|
|
BeanUtils.copyProperties(dto,entity); |
|
|
|
save(entity); |
|
|
|
return rb.success().setMsg("添加成功"); |
|
|
|
} |
|
|
|
updateBySid(dto,sid); |
|
|
|
return rb.success().setMsg("修改成功"); |
|
|
|
} |
|
|
|
private QueryWrapper<FinUncollectedReceivablesDetailed> createQueryWrapper(FinUncollectedReceivablesDetailedQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
|
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|
|
|
QueryWrapper<FinUncollectedReceivablesDetailed> qw = new QueryWrapper<>(); |
|
|
|
qw.ne("currentReceivableMoney", 0); |
|
|
|
qw.eq("useOrgSid", query.getUseOrgSid()); |
|
|
|
qw.eq("createBySid", query.getCreateBySid()); |
|
|
|
if (StringUtils.isNotBlank(query.getContractNo())) { |
|
|
|
qw.eq("contractNo", query.getContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCustomerName())) { |
|
|
|
qw.eq("customerName", query.getCustomerName()); |
|
|
|
} |
|
|
|
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; |
|
|
|
} |
|
|
|
|
|
|
|
public FinUncollectedReceivablesDetailedVo fetchByVinAndRecName(String vin, String receivablesName) { |
|
|
|
return baseMapper.fetchByVinAndRecName(vin,receivablesName); |
|
|
|
} |
|
|
|
public List<FinUncollectedReceivablesDetailedVo> listAllVo(FinUncollectedReceivablesDetailedQuery query) { |
|
|
|
QueryWrapper<FinUncollectedReceivablesDetailed> qw = createQueryWrapper(query); |
|
|
|
return baseMapper.selectListAllVo(qw); |
|
|
|
} |
|
|
|
|
|
|
|
public void updateCurRecMoneyBySid(String curRecMoney, String sid) { |
|
|
|
baseMapper.updateCurRecMoneyBySid(curRecMoney,sid); |
|
|
|
} |
|
|
|
public ResultBean saveOrUpdateDto(FinUncollectedReceivablesDetailedDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
|
FinUncollectedReceivablesDetailed entity = new FinUncollectedReceivablesDetailed(); |
|
|
|
if (StringUtils.isBlank(sid)) {//新增
|
|
|
|
BeanUtils.copyProperties(dto, entity); |
|
|
|
save(entity); |
|
|
|
return rb.success().setMsg("添加成功"); |
|
|
|
} |
|
|
|
updateBySid(dto, sid); |
|
|
|
return rb.success().setMsg("修改成功"); |
|
|
|
} |
|
|
|
|
|
|
|
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; |
|
|
|
} |
|
|
|
public FinUncollectedReceivablesDetailedVo fetchByVinAndRecName(String vin, String receivablesName) { |
|
|
|
return baseMapper.fetchByVinAndRecName(vin, receivablesName); |
|
|
|
} |
|
|
|
|
|
|
|
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<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.selectGroupConAndRecAndPay(); |
|
|
|
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|
|
|
String receivablesName1 = finSelectedReceivablesDetailedVo.getReceivablesName(); |
|
|
|
String subscriptionMoney = finSelectedReceivablesDetailedVo.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; |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<FinUncollectedReceivablesDetailedVo> detailedListPageVo(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)); |
|
|
|
record.setSubscriptionMoney("0"); |
|
|
|
record.setNoSubscriptionMoney(String.valueOf(totalDeposit)); |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.selectDetailedGroupConAndRecAndPay(); |
|
|
|
BigDecimal lastSubscriptionMoney = null; |
|
|
|
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|
|
|
BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|
|
|
noSubscriptionMoney = totalDeposit.subtract(subscriptionMoney.add(lastSubscriptionMoney)); |
|
|
|
lastSubscriptionMoney = subscriptionMoney.add(lastSubscriptionMoney); |
|
|
|
finSelectedReceivablesDetailedVo.setNoSubscriptionMoney(String.valueOf(noSubscriptionMoney)); |
|
|
|
} |
|
|
|
record.setFinSelectedReceivablesDetailedVos(finSelectedReceivablesDetailedVos); |
|
|
|
} 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)); |
|
|
|
record.setSubscriptionMoney("0"); |
|
|
|
record.setNoSubscriptionMoney(String.valueOf(totalPrice)); |
|
|
|
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.selectDetailedGroupConAndRecAndPay(); |
|
|
|
BigDecimal lastSubscriptionMoney = null; |
|
|
|
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|
|
|
BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|
|
|
noSubscriptionMoney = totalPrice.subtract(subscriptionMoney.add(lastSubscriptionMoney)); |
|
|
|
lastSubscriptionMoney = subscriptionMoney.add(lastSubscriptionMoney); |
|
|
|
finSelectedReceivablesDetailedVo.setNoSubscriptionMoney(String.valueOf(noSubscriptionMoney)); |
|
|
|
} |
|
|
|
record.setFinSelectedReceivablesDetailedVos(finSelectedReceivablesDetailedVos); |
|
|
|
} |
|
|
|
} |
|
|
|
PagerVo<FinUncollectedReceivablesDetailedVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |