58 changed files with 1089 additions and 963 deletions
@ -1,396 +0,0 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.buscenter.biz.buscollectionconfirmation; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.yxt.anrui.base.api.basevehicle.BaseVehicleQuery; |
|||
import com.yxt.anrui.base.api.basevehicle.BaseVehicleVo; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAppendix; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; |
|||
import com.yxt.anrui.buscenter.api.buscollectionconfirmation.*; |
|||
import com.yxt.anrui.buscenter.api.busselectedreceivablesdetailed.BusSelectedReceivablesDetailed; |
|||
import com.yxt.anrui.buscenter.api.busselectedreceivablesdetailed.BusSelectedReceivablesDetailedDto; |
|||
import com.yxt.anrui.buscenter.api.busselectedreceivablesdetailed.BusSelectedReceivablesDetailedVo; |
|||
import com.yxt.anrui.buscenter.api.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedDto; |
|||
import com.yxt.anrui.buscenter.api.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedVo; |
|||
import com.yxt.anrui.buscenter.biz.busselectedreceivablesdetailed.BusSelectedReceivablesDetailedService; |
|||
import com.yxt.anrui.buscenter.biz.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedService; |
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|||
import com.yxt.common.base.config.component.FileUploadComponent; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
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.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: anrui-buscenter(销售相关) <br/> |
|||
* File: BusCollectionConfirmationService.java <br/> |
|||
* Class: com.yxt.anrui.buscenter.biz.buscollectionconfirmation.BusCollectionConfirmationService <br/> |
|||
* Description: 收款确认表 业务逻辑. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-04-12 17:57:01 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Service |
|||
public class BusCollectionConfirmationService extends MybatisBaseService<BusCollectionConfirmationMapper, BusCollectionConfirmation> { |
|||
|
|||
@Autowired |
|||
private BusSelectedReceivablesDetailedService busSelectedReceivablesDetailedService; |
|||
@Autowired |
|||
private BusUncollectedReceivablesDetailedService busUncollectedReceivablesDetailedService; |
|||
@Autowired |
|||
private CommonAppendixFeign commonAppendixFeign; |
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
@Autowired |
|||
private SysUserFeign sysUserFeign; |
|||
@Autowired |
|||
private SysOrganizationFeign sysOrganizationFeign; |
|||
|
|||
private QueryWrapper<BusCollectionConfirmation> createQueryWrapper(BusCollectionConfirmationQuery query) { |
|||
// todo: 这里根据具体业务调整查询条件
|
|||
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|||
QueryWrapper<BusCollectionConfirmation> qw = new QueryWrapper<>(); |
|||
qw.eq("useOrgSid", query.getUseOrgSid()); |
|||
if (StringUtils.isNotBlank(query.getCreateBySid())) { |
|||
qw.eq("createBySid", query.getCreateBySid()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getCollectionDate())) { |
|||
qw.eq("collectionDate", query.getCollectionDate()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getCollectionBank())) { |
|||
qw.eq("collectionBank", query.getCollectionBank()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getCollectionTypeKey())) { |
|||
qw.eq("collectionTypeKey", query.getCollectionTypeKey()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getSubscriptionState())) { |
|||
qw.eq("subscriptionState", query.getSubscriptionState()); |
|||
} |
|||
return qw; |
|||
} |
|||
|
|||
public PagerVo<BusCollectionConfirmationVo> listPageVo(PagerQuery<BusCollectionConfirmationQuery> pq) { |
|||
BusCollectionConfirmationQuery query = pq.getParams(); |
|||
QueryWrapper<BusCollectionConfirmation> qw = createQueryWrapper(query); |
|||
IPage<BusCollectionConfirmation> page = PagerUtil.queryToPage(pq); |
|||
IPage<BusCollectionConfirmationVo> pagging = baseMapper.selectPageVo(page, qw); |
|||
List<BusCollectionConfirmationVo> records = pagging.getRecords(); |
|||
for (BusCollectionConfirmationVo record : records) { |
|||
String s = ""; |
|||
BigDecimal subscriptionMoney = null; |
|||
String sid = record.getSid(); |
|||
List<BusSelectedReceivablesDetailedVo> busSelectedReceivablesDetailedVos = busSelectedReceivablesDetailedService.fetchByCillSid(sid); |
|||
for (BusSelectedReceivablesDetailedVo busSelectedReceivablesDetailedVo : busSelectedReceivablesDetailedVos) { |
|||
Integer auditState = busSelectedReceivablesDetailedVo.getAuditState(); |
|||
s += auditState + ","; |
|||
} |
|||
if (!s.contains("3")) { |
|||
record.setSubscriptionState(1); |
|||
} else if (s.contains("3")) { |
|||
List<BusSelectedReceivablesDetailedVo> busSelectedReceivablesDetailedVos1 = busSelectedReceivablesDetailedService.fetchByAuditState(); |
|||
for (BusSelectedReceivablesDetailedVo busSelectedReceivablesDetailedVo : busSelectedReceivablesDetailedVos1) { |
|||
BigDecimal subscriptionMoney1 = new BigDecimal(busSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|||
subscriptionMoney = subscriptionMoney.add(subscriptionMoney1); |
|||
} |
|||
BigDecimal collectionMoney = new BigDecimal(record.getCollectionMoney()); |
|||
if (collectionMoney.compareTo(subscriptionMoney) == 0) { |
|||
record.setSubscriptionState(3); |
|||
} else { |
|||
record.setSubscriptionState(2); |
|||
} |
|||
} |
|||
} |
|||
PagerVo<BusCollectionConfirmationVo> p = PagerUtil.pageToVo(pagging, null); |
|||
return p; |
|||
} |
|||
|
|||
public ResultBean saveAllDto(BusCollectionConfirmationDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
BusCollectionConfirmation busCollectionConfirmation = new BusCollectionConfirmation(); |
|||
List<BusSelectedReceivablesDetailedDto> busSelectedReceivablesDetailedDtos = dto.getBusSelectedReceivablesDetailedDtos(); |
|||
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|||
List<BusCollectionConfirmationAppendixDto> paymentVoucherAppendixs = dto.getPaymentVoucherAppendixs(); |
|||
List<BusCollectionConfirmationAppendixDto> remittanceConfirmationAppendixs = dto.getRemittanceConfirmationAppendixs(); |
|||
String sid1 = busCollectionConfirmation.getSid(); |
|||
BeanUtil.copyProperties(dto, busCollectionConfirmation); |
|||
busCollectionConfirmation.setSid(sid1); |
|||
String payFilePath = ""; |
|||
String remFilePath = ""; |
|||
for (BusCollectionConfirmationAppendixDto paymentVoucherAppendix : paymentVoucherAppendixs) { |
|||
BeanUtil.copyProperties(paymentVoucherAppendix, commonAppendixDto); |
|||
payFilePath = commonAppendixDto.getFilePath(); |
|||
if (payFilePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|||
payFilePath = payFilePath.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(sid1); |
|||
commonAppendixDto.setFilePath(payFilePath); |
|||
commonAppendixDto.setCreateBySid(dto.getStaffSid()); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
payFilePath += payFilePath + ","; |
|||
} |
|||
busCollectionConfirmation.setPaymentVoucherUrl(payFilePath.substring(0, payFilePath.length() - 1)); |
|||
for (BusCollectionConfirmationAppendixDto remittanceConfirmationAppendix : remittanceConfirmationAppendixs) { |
|||
BeanUtil.copyProperties(remittanceConfirmationAppendix, commonAppendixDto); |
|||
remFilePath = commonAppendixDto.getFilePath(); |
|||
if (remFilePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|||
remFilePath = remFilePath.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(sid1); |
|||
commonAppendixDto.setFilePath(remFilePath); |
|||
commonAppendixDto.setCreateBySid(dto.getStaffSid()); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
remFilePath += remFilePath + ","; |
|||
} |
|||
busCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath.substring(0, remFilePath.length() - 1)); |
|||
for (BusSelectedReceivablesDetailedDto busSelectedReceivablesDetailedDto : busSelectedReceivablesDetailedDtos) { |
|||
BusSelectedReceivablesDetailed busSelectedReceivablesDetailed = new BusSelectedReceivablesDetailed(); |
|||
BeanUtil.copyProperties(busSelectedReceivablesDetailedDto, busSelectedReceivablesDetailed); |
|||
busSelectedReceivablesDetailed.setCollSid(sid1); |
|||
busSelectedReceivablesDetailedService.save(busSelectedReceivablesDetailed); |
|||
//已选应收款项-车架号
|
|||
String vin = busSelectedReceivablesDetailed.getVIN(); |
|||
//已选应收款项-应收项目名称
|
|||
String receivablesName = busSelectedReceivablesDetailed.getReceivablesName(); |
|||
BusUncollectedReceivablesDetailedVo busUncollectedReceivablesDetailedVo = busUncollectedReceivablesDetailedService.fetchByVinAndRecName(vin, receivablesName); |
|||
//应收未收款项-当前应收金额
|
|||
BigDecimal currentReceivableMoney = new BigDecimal(busUncollectedReceivablesDetailedVo.getCurrentReceivableMoney()); |
|||
//已选应收款项-认款金额
|
|||
BigDecimal subscriptionMoney = busSelectedReceivablesDetailed.getSubscriptionMoney(); |
|||
BigDecimal subtract = currentReceivableMoney.subtract(subscriptionMoney); |
|||
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|||
return rb.setMsg("认款金额超出应收金额,请重新输入"); |
|||
} |
|||
busUncollectedReceivablesDetailedVo.setCurrentReceivableMoney(String.format("%.0f", subtract)); |
|||
BusUncollectedReceivablesDetailedDto busUncollectedReceivablesDetailedDto = new BusUncollectedReceivablesDetailedDto(); |
|||
BeanUtil.copyProperties(busUncollectedReceivablesDetailedVo, busUncollectedReceivablesDetailedDto); |
|||
busUncollectedReceivablesDetailedService.updateBySid(busUncollectedReceivablesDetailedDto, busUncollectedReceivablesDetailedDto.getSid()); |
|||
} |
|||
List<BusSelectedReceivablesDetailedVo> busSelectedReceivablesDetailedVos = busSelectedReceivablesDetailedService.fetchByCillSid(sid1); |
|||
BigDecimal totalSubscriptionMone = null; |
|||
for (BusSelectedReceivablesDetailedVo busSelectedReceivablesDetailedVo : busSelectedReceivablesDetailedVos) { |
|||
BigDecimal subscriptionMoney = new BigDecimal(busSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|||
totalSubscriptionMone = totalSubscriptionMone.add(subscriptionMoney); |
|||
} |
|||
BigDecimal collectionMoney = busCollectionConfirmation.getCollectionMoney(); |
|||
BigDecimal subtract = collectionMoney.subtract(totalSubscriptionMone); |
|||
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|||
return rb.setMsg("已选应收款项金额已超出该确认单应收金额总额,请重新核对"); |
|||
} |
|||
busCollectionConfirmation.setBalance(totalSubscriptionMone); |
|||
busCollectionConfirmation.setAuditState(1); |
|||
save(busCollectionConfirmation); |
|||
return rb.success().setMsg("添加成功"); |
|||
} |
|||
|
|||
public ResultBean<BusCollectionConfirmationDetailsVo> fetchByAllSid(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
BusCollectionConfirmationDetailsVo busCollectionConfirmationDetailsVo = new BusCollectionConfirmationDetailsVo(); |
|||
BusCollectionConfirmation busCollectionConfirmation = fetchBySid(sid); |
|||
BeanUtil.copyProperties(busCollectionConfirmation, busCollectionConfirmationDetailsVo); |
|||
List<BusSelectedReceivablesDetailedVo> busSelectedReceivablesDetailedVos = busSelectedReceivablesDetailedService.fetchByCillSid(sid); |
|||
busCollectionConfirmationDetailsVo.setBusSelectedReceivablesDetailedVos(busSelectedReceivablesDetailedVos); |
|||
return rb.success().setData(busCollectionConfirmationDetailsVo); |
|||
} |
|||
|
|||
public ResultBean delAllBySids(String[] sids) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
delBySids(sids); |
|||
for (String sid : sids) { |
|||
busSelectedReceivablesDetailedService.deleteByCollSid(sid); |
|||
} |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—获取款项确认列表 |
|||
* |
|||
* @param pagerQuery |
|||
* @ |
|||
*/ |
|||
public IPage<AppBusCollectionConfirmationPageVo> getCollectionConfirmList(PagerQuery<AppBusCollectionConfirmationQuery> pagerQuery) { |
|||
IPage<AppBusCollectionConfirmationQuery> page = PagerUtil.queryToPage(pagerQuery); |
|||
QueryWrapper<AppBusCollectionConfirmationPageVo> qw = appBuildQueryWrapper(pagerQuery.getParams()); |
|||
IPage<AppBusCollectionConfirmationPageVo> collectionConfirmList = baseMapper.getCollectionConfirmList(page, qw); |
|||
for (AppBusCollectionConfirmationPageVo record : collectionConfirmList.getRecords()) { |
|||
Integer balance = record.getBalance(); |
|||
String collectionBillState = record.getCollectionBillState(); |
|||
if (balance <= 0 || collectionBillState.equals("1") || collectionBillState.equals("3")) { |
|||
record.setShowHandle(false); |
|||
} |
|||
record.setShowDownload(false); |
|||
List<BusSelectedReceivablesDetailedVo> busSelectedReceivablesDetailedVos = busSelectedReceivablesDetailedService.fetchByCillSid(record.getCollectionBillSid()); |
|||
if (busSelectedReceivablesDetailedVos.size() > 0 || collectionBillState != "1") { |
|||
record.setShowDelete(false); |
|||
} |
|||
} |
|||
return collectionConfirmList; |
|||
} |
|||
|
|||
/** |
|||
* 构造条件 |
|||
* |
|||
* @param pagerQuery 查询条件 |
|||
* @return |
|||
*/ |
|||
private QueryWrapper<AppBusCollectionConfirmationPageVo> appBuildQueryWrapper(AppBusCollectionConfirmationQuery pagerQuery) { |
|||
QueryWrapper<AppBusCollectionConfirmationPageVo> qw = new QueryWrapper<>(); |
|||
if (pagerQuery != null) { |
|||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getName())) {//车架号
|
|||
qw.like("bv.vinNo", pagerQuery.getName()); |
|||
} |
|||
} |
|||
return qw; |
|||
} |
|||
|
|||
/** |
|||
* 手机端—新增款项确认申请单 |
|||
* |
|||
* @param dto |
|||
* @return |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public ResultBean addCollectionConfirm(AppBusCollectionConfirmationDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String staffSid = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData().getStaffSid(); |
|||
BusCollectionConfirmation busCollectionConfirmation = new BusCollectionConfirmation(); |
|||
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|||
String sid = busCollectionConfirmation.getSid(); |
|||
busCollectionConfirmation.setSid(sid); |
|||
busCollectionConfirmation.setCollectionDate(dto.getCollectionDate()); |
|||
busCollectionConfirmation.setCollectionBank(dto.getCollectionBank()); |
|||
busCollectionConfirmation.setCollectionBankNum(dto.getCollectionNum()); |
|||
busCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|||
busCollectionConfirmation.setCollectionTypeKey(dto.getCollectionTypeKey()); |
|||
busCollectionConfirmation.setCollectionTypeValue(dto.getCollectionType()); |
|||
busCollectionConfirmation.setPayerName(dto.getPaymentName()); |
|||
busCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|||
busCollectionConfirmation.setRemarks(dto.getRemarks()); |
|||
insert(busCollectionConfirmation); |
|||
List<String> payFiles = dto.getPayFiles(); |
|||
for (String payFile : payFiles) { |
|||
String payFilePath = payFile.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(sid); |
|||
commonAppendixDto.setFilePath(payFilePath); |
|||
commonAppendixDto.setCreateBySid(staffSid); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
return rb.success(); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—初始化收款确认申请 |
|||
* |
|||
* @param collectionBillSid |
|||
* @param userSid |
|||
* @return |
|||
*/ |
|||
public ResultBean<AppBusCollectionConfirmationInitVo> initCollectionConfirm(String collectionBillSid, String userSid) { |
|||
ResultBean<AppBusCollectionConfirmationInitVo> rb = ResultBean.fireFail(); |
|||
if (StringUtils.isNotBlank(userSid)) { |
|||
return rb.fail().setMsg("用户sid不能为空"); |
|||
} |
|||
String useOrgSid = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData().getSid(); |
|||
AppBusCollectionConfirmationInitVo vo = baseMapper.initCollectionConfirm(collectionBillSid, useOrgSid); |
|||
return rb.success().setData(vo); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—提交款项确认申请 |
|||
* |
|||
* @param dto |
|||
* @return |
|||
*/ |
|||
public ResultBean submitCollectionConfirm(AppBusCollectionConfirmationDto dto) { |
|||
return null; |
|||
} |
|||
|
|||
/** |
|||
* 手机端—删除收款确认单 |
|||
* |
|||
* @param collectionBillSid |
|||
* @return |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public ResultBean deleteCollectionConfirm(String collectionBillSid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
deleteBySid(collectionBillSid); |
|||
busSelectedReceivablesDetailedService.deleteByCollSid(collectionBillSid); |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 手机端—查询可使用款项明细列表 |
|||
* |
|||
* @param pagerQuery |
|||
* @return |
|||
*/ |
|||
public IPage<AppBusSelectedReceivablesPaymentDetailsVo> getPaymentDetailsList(PagerQuery<AppBusSelectedReceivablesPaymentDetailsQuery> pagerQuery) { |
|||
IPage<AppBusSelectedReceivablesPaymentDetailsQuery> page = PagerUtil.queryToPage(pagerQuery); |
|||
QueryWrapper<AppBusSelectedReceivablesPaymentDetailsVo> qw = appPaymentDetailsBuildQueryWrapper(pagerQuery.getParams()); |
|||
List<String> sidList = pagerQuery.getParams().getSidList(); |
|||
IPage<AppBusSelectedReceivablesPaymentDetailsVo> collectionConfirmList = busSelectedReceivablesDetailedService.getPaymentDetailsList(sidList, page, qw); |
|||
return collectionConfirmList; |
|||
} |
|||
|
|||
/** |
|||
* 构造条件 |
|||
* |
|||
* @param pagerQuery 查询条件 |
|||
* @return |
|||
*/ |
|||
private QueryWrapper<AppBusSelectedReceivablesPaymentDetailsVo> appPaymentDetailsBuildQueryWrapper(AppBusSelectedReceivablesPaymentDetailsQuery pagerQuery) { |
|||
QueryWrapper<AppBusSelectedReceivablesPaymentDetailsVo> qw = new QueryWrapper<>(); |
|||
if (pagerQuery != null) { |
|||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getName())) {//车架号
|
|||
qw.like("bv.vinNo", pagerQuery.getName()); |
|||
} |
|||
} |
|||
return qw; |
|||
} |
|||
} |
@ -1,23 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.anrui.buscenter.biz.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
<select id="selectPageVo" resultType="com.yxt.anrui.buscenter.api.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedVo"> |
|||
SELECT * FROM bus_uncollected_receivables_detailed <where> ${ew.sqlSegment} </where> |
|||
</select> |
|||
|
|||
<select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedVo"> |
|||
SELECT * FROM bus_uncollected_receivables_detailed <where> ${ew.sqlSegment} </where> |
|||
</select> |
|||
|
|||
<select id="fetchByVinAndRecName" |
|||
resultType="com.yxt.anrui.buscenter.api.busuncollectedreceivablesdetailed.BusUncollectedReceivablesDetailedVo"> |
|||
SELECT |
|||
* |
|||
FROM |
|||
bus_uncollected_receivables_detailed |
|||
WHERE VIN = #{vin} |
|||
AND receivablesName = #{receivablesName} |
|||
</select> |
|||
</mapper> |
@ -1,11 +1,11 @@ |
|||
package com.yxt.anrui.buscenter.api.buscollectionconfirmation; |
|||
package com.yxt.anrui.fin.api.fincollectionconfirmation; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class AppBusCollectionConfirmationPageVo implements Vo { |
|||
public class AppFinCollectionConfirmationPageVo implements Vo { |
|||
|
|||
@ApiModelProperty("确认单sid") |
|||
private String collectionBillSid; |
@ -1,11 +1,11 @@ |
|||
package com.yxt.anrui.buscenter.api.buscollectionconfirmation; |
|||
package com.yxt.anrui.fin.api.fincollectionconfirmation; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class AppBusCollectionConfirmationQuery implements Query { |
|||
public class AppFinCollectionConfirmationQuery implements Query { |
|||
|
|||
@ApiModelProperty("用户sid") |
|||
private String userSid; |
@ -1,11 +1,11 @@ |
|||
package com.yxt.anrui.buscenter.api.buscollectionconfirmation; |
|||
package com.yxt.anrui.fin.api.fincollectionconfirmation; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class AppBusSelectedReceivablesPaymentDetailsVo implements Vo { |
|||
public class AppFinSelectedReceivablesPaymentDetailsVo implements Vo { |
|||
|
|||
@ApiModelProperty("合同编号") |
|||
private String contractId; |
22
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busselectedreceivablesdetailed/BusSelectedReceivablesDetailedFeignFallback.java → anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedFeignFallback.java
22
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busselectedreceivablesdetailed/BusSelectedReceivablesDetailedFeignFallback.java → anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedFeignFallback.java
24
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busuncollectedreceivablesdetailed/BusUncollectedReceivablesDetailedFeignFallback.java → anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedFeignFallback.java
24
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busuncollectedreceivablesdetailed/BusUncollectedReceivablesDetailedFeignFallback.java → anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedFeignFallback.java
@ -0,0 +1,510 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.fin.biz.fincollectionconfirmation; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; |
|||
import com.yxt.anrui.fin.api.fincollectionconfirmation.*; |
|||
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.AppFinSelectedReceivablesDetailedDto; |
|||
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed; |
|||
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedDto; |
|||
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo; |
|||
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto; |
|||
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo; |
|||
import com.yxt.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService; |
|||
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedService; |
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|||
import com.yxt.common.base.config.component.FileUploadComponent; |
|||
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.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
import java.util.Optional; |
|||
|
|||
/** |
|||
* Project: anrui-fin(销售相关) <br/> |
|||
* File: FinCollectionConfirmationService.java <br/> |
|||
* Class: com.yxt.anrui.fin.biz.fincollectionconfirmation.FinCollectionConfirmationService <br/> |
|||
* Description: 收款确认表 业务逻辑. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-04-12 17:57:01 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Service |
|||
public class FinCollectionConfirmationService extends MybatisBaseService<FinCollectionConfirmationMapper, FinCollectionConfirmation> { |
|||
|
|||
@Autowired |
|||
private FinSelectedReceivablesDetailedService finSelectedReceivablesDetailedService; |
|||
@Autowired |
|||
private FinUncollectedReceivablesDetailedService finUncollectedReceivablesDetailedService; |
|||
@Autowired |
|||
private CommonAppendixFeign commonAppendixFeign; |
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
@Autowired |
|||
private SysUserFeign sysUserFeign; |
|||
@Autowired |
|||
private SysOrganizationFeign sysOrganizationFeign; |
|||
|
|||
private QueryWrapper<FinCollectionConfirmation> createQueryWrapper(FinCollectionConfirmationQuery query) { |
|||
// todo: 这里根据具体业务调整查询条件
|
|||
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|||
QueryWrapper<FinCollectionConfirmation> qw = new QueryWrapper<>(); |
|||
qw.eq("useOrgSid", query.getUseOrgSid()); |
|||
if (StringUtils.isNotBlank(query.getCreateBySid())) { |
|||
qw.eq("createBySid", query.getCreateBySid()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getCollectionDate())) { |
|||
qw.eq("collectionDate", query.getCollectionDate()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getCollectionBank())) { |
|||
qw.eq("collectionBank", query.getCollectionBank()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getCollectionTypeKey())) { |
|||
qw.eq("collectionTypeKey", query.getCollectionTypeKey()); |
|||
} |
|||
if (StringUtils.isNotBlank(query.getSubscriptionState())) { |
|||
qw.eq("subscriptionState", query.getSubscriptionState()); |
|||
} |
|||
return qw; |
|||
} |
|||
|
|||
public PagerVo<FinCollectionConfirmationVo> listPageVo(PagerQuery<FinCollectionConfirmationQuery> pq) { |
|||
FinCollectionConfirmationQuery query = pq.getParams(); |
|||
QueryWrapper<FinCollectionConfirmation> qw = createQueryWrapper(query); |
|||
IPage<FinCollectionConfirmation> page = PagerUtil.queryToPage(pq); |
|||
IPage<FinCollectionConfirmationVo> pagging = baseMapper.selectPageVo(page, qw); |
|||
List<FinCollectionConfirmationVo> records = pagging.getRecords(); |
|||
for (FinCollectionConfirmationVo record : records) { |
|||
String s = ""; |
|||
BigDecimal subscriptionMoney = null; |
|||
String sid = record.getSid(); |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid); |
|||
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|||
Integer auditState = finSelectedReceivablesDetailedVo.getAuditState(); |
|||
s += auditState + ","; |
|||
} |
|||
if (!s.contains("3")) { |
|||
record.setSubscriptionState(1); |
|||
} else if (s.contains("3")) { |
|||
int auditState = 3; |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos1 = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState); |
|||
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos1) { |
|||
BigDecimal subscriptionMoney1 = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|||
subscriptionMoney = subscriptionMoney.add(subscriptionMoney1); |
|||
} |
|||
BigDecimal collectionMoney = new BigDecimal(record.getCollectionMoney()); |
|||
if (collectionMoney.compareTo(subscriptionMoney) == 0) { |
|||
record.setSubscriptionState(3); |
|||
} else { |
|||
record.setSubscriptionState(2); |
|||
} |
|||
} |
|||
} |
|||
PagerVo<FinCollectionConfirmationVo> p = PagerUtil.pageToVo(pagging, null); |
|||
return p; |
|||
} |
|||
|
|||
public ResultBean saveAllDto(FinCollectionConfirmationDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); |
|||
List<FinSelectedReceivablesDetailedDto> finSelectedReceivablesDetailedDtos = dto.getFinSelectedReceivablesDetailedDtos(); |
|||
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|||
List<FinCollectionConfirmationAppendixDto> paymentVoucherAppendixs = dto.getPaymentVoucherAppendixs(); |
|||
List<FinCollectionConfirmationAppendixDto> remittanceConfirmationAppendixs = dto.getRemittanceConfirmationAppendixs(); |
|||
String sid1 = finCollectionConfirmation.getSid(); |
|||
BeanUtil.copyProperties(dto, finCollectionConfirmation); |
|||
finCollectionConfirmation.setSid(sid1); |
|||
String payFilePath = ""; |
|||
String remFilePath = ""; |
|||
for (FinCollectionConfirmationAppendixDto paymentVoucherAppendix : paymentVoucherAppendixs) { |
|||
BeanUtil.copyProperties(paymentVoucherAppendix, commonAppendixDto); |
|||
payFilePath = commonAppendixDto.getFilePath(); |
|||
if (payFilePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|||
payFilePath = payFilePath.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(sid1); |
|||
commonAppendixDto.setFilePath(payFilePath); |
|||
commonAppendixDto.setCreateBySid(dto.getStaffSid()); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
payFilePath += payFilePath + ","; |
|||
} |
|||
finCollectionConfirmation.setPaymentVoucherUrl(payFilePath.substring(0, payFilePath.length() - 1)); |
|||
for (FinCollectionConfirmationAppendixDto remittanceConfirmationAppendix : remittanceConfirmationAppendixs) { |
|||
BeanUtil.copyProperties(remittanceConfirmationAppendix, commonAppendixDto); |
|||
remFilePath = commonAppendixDto.getFilePath(); |
|||
if (remFilePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { |
|||
remFilePath = remFilePath.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(sid1); |
|||
commonAppendixDto.setFilePath(remFilePath); |
|||
commonAppendixDto.setCreateBySid(dto.getStaffSid()); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
remFilePath += remFilePath + ","; |
|||
} |
|||
finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath.substring(0, remFilePath.length() - 1)); |
|||
for (FinSelectedReceivablesDetailedDto finSelectedReceivablesDetailedDto : finSelectedReceivablesDetailedDtos) { |
|||
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = new FinSelectedReceivablesDetailed(); |
|||
BeanUtil.copyProperties(finSelectedReceivablesDetailedDto, finSelectedReceivablesDetailed); |
|||
finSelectedReceivablesDetailed.setCollSid(sid1); |
|||
finSelectedReceivablesDetailedService.save(finSelectedReceivablesDetailed); |
|||
//已选应收款项-车架号
|
|||
String vin = finSelectedReceivablesDetailed.getVIN(); |
|||
//已选应收款项-应收项目名称
|
|||
String receivablesName = finSelectedReceivablesDetailed.getReceivablesName(); |
|||
FinUncollectedReceivablesDetailedVo finUncollectedReceivablesDetailedVo = finUncollectedReceivablesDetailedService.fetchByVinAndRecName(vin, receivablesName); |
|||
//应收未收款项-当前应收金额
|
|||
BigDecimal currentReceivableMoney = new BigDecimal(finUncollectedReceivablesDetailedVo.getCurrentReceivableMoney()); |
|||
//已选应收款项-认款金额
|
|||
BigDecimal subscriptionMoney = finSelectedReceivablesDetailed.getSubscriptionMoney(); |
|||
BigDecimal subtract = currentReceivableMoney.subtract(subscriptionMoney); |
|||
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|||
return rb.setMsg("认款金额超出应收金额,请重新输入"); |
|||
} |
|||
finUncollectedReceivablesDetailedVo.setCurrentReceivableMoney(String.format("%.0f", subtract)); |
|||
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto(); |
|||
BeanUtil.copyProperties(finUncollectedReceivablesDetailedVo, finUncollectedReceivablesDetailedDto); |
|||
finUncollectedReceivablesDetailedService.updateBySid(finUncollectedReceivablesDetailedDto, finUncollectedReceivablesDetailedDto.getSid()); |
|||
} |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid1); |
|||
BigDecimal totalSubscriptionMone = null; |
|||
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|||
BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|||
totalSubscriptionMone = totalSubscriptionMone.add(subscriptionMoney); |
|||
} |
|||
BigDecimal collectionMoney = finCollectionConfirmation.getCollectionMoney(); |
|||
BigDecimal subtract = collectionMoney.subtract(totalSubscriptionMone); |
|||
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|||
return rb.setMsg("已选应收款项金额已超出该确认单应收金额总额,请重新核对"); |
|||
} |
|||
finCollectionConfirmation.setBalance(totalSubscriptionMone); |
|||
finCollectionConfirmation.setAuditState(1); |
|||
save(finCollectionConfirmation); |
|||
return rb.success().setMsg("添加成功"); |
|||
} |
|||
|
|||
public ResultBean<FinCollectionConfirmationDetailsVo> fetchByAllSid(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FinCollectionConfirmationDetailsVo finCollectionConfirmationDetailsVo = new FinCollectionConfirmationDetailsVo(); |
|||
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid); |
|||
BeanUtil.copyProperties(finCollectionConfirmation, finCollectionConfirmationDetailsVo); |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid); |
|||
finCollectionConfirmationDetailsVo.setFinSelectedReceivablesDetailedVos(finSelectedReceivablesDetailedVos); |
|||
return rb.success().setData(finCollectionConfirmationDetailsVo); |
|||
} |
|||
|
|||
public ResultBean delAllBySids(String[] sids) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
delBySids(sids); |
|||
for (String sid : sids) { |
|||
finSelectedReceivablesDetailedService.deleteByCollSid(sid); |
|||
} |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—获取款项确认列表 |
|||
* |
|||
* @param pagerQuery |
|||
* @ |
|||
*/ |
|||
public IPage<AppFinCollectionConfirmationPageVo> getCollectionConfirmList(PagerQuery<AppFinCollectionConfirmationQuery> pagerQuery) { |
|||
IPage<AppFinCollectionConfirmationQuery> page = PagerUtil.queryToPage(pagerQuery); |
|||
QueryWrapper<AppFinCollectionConfirmationPageVo> qw = appBuildQueryWrapper(pagerQuery.getParams()); |
|||
IPage<AppFinCollectionConfirmationPageVo> collectionConfirmList = baseMapper.getCollectionConfirmList(page, qw); |
|||
for (AppFinCollectionConfirmationPageVo record : collectionConfirmList.getRecords()) { |
|||
Integer balance = record.getBalance(); |
|||
String collectionBillState = record.getCollectionBillState(); |
|||
if (balance <= 0 || collectionBillState.equals("1") || collectionBillState.equals("3")) { |
|||
record.setShowHandle(false); |
|||
} |
|||
record.setShowDownload(false); |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(record.getCollectionBillSid()); |
|||
if (finSelectedReceivablesDetailedVos.size() > 0 || collectionBillState != "1") { |
|||
record.setShowDelete(false); |
|||
} |
|||
} |
|||
return collectionConfirmList; |
|||
} |
|||
|
|||
/** |
|||
* 构造条件 |
|||
* |
|||
* @param pagerQuery 查询条件 |
|||
* @return |
|||
*/ |
|||
private QueryWrapper<AppFinCollectionConfirmationPageVo> appBuildQueryWrapper(AppFinCollectionConfirmationQuery pagerQuery) { |
|||
QueryWrapper<AppFinCollectionConfirmationPageVo> qw = new QueryWrapper<>(); |
|||
if (pagerQuery != null) { |
|||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getName())) {//车架号
|
|||
qw.like("bv.vinNo", pagerQuery.getName()); |
|||
} |
|||
} |
|||
return qw; |
|||
} |
|||
|
|||
/** |
|||
* 手机端—新增款项确认申请单 |
|||
* |
|||
* @param dto |
|||
* @return |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public ResultBean addCollectionConfirm(AppFinCollectionConfirmationDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String staffSid = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData().getStaffSid(); |
|||
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); |
|||
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|||
String sid = finCollectionConfirmation.getSid(); |
|||
finCollectionConfirmation.setSid(sid); |
|||
finCollectionConfirmation.setCollectionDate(dto.getCollectionDate()); |
|||
finCollectionConfirmation.setCollectionBank(dto.getCollectionBank()); |
|||
finCollectionConfirmation.setCollectionBankNum(dto.getCollectionNum()); |
|||
finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|||
finCollectionConfirmation.setCollectionTypeKey(dto.getCollectionTypeKey()); |
|||
finCollectionConfirmation.setCollectionTypeValue(dto.getCollectionType()); |
|||
finCollectionConfirmation.setPayerName(dto.getPaymentName()); |
|||
finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|||
finCollectionConfirmation.setRemarks(dto.getRemarks()); |
|||
List<String> payFiles = dto.getPayFiles(); |
|||
String payFilePath = ""; |
|||
for (String payFile : payFiles) { |
|||
if (payFile != null) { |
|||
payFilePath = payFile.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(sid); |
|||
commonAppendixDto.setFilePath(payFilePath); |
|||
commonAppendixDto.setCreateBySid(staffSid); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
payFilePath += payFilePath + ","; |
|||
} |
|||
if (StringUtils.isNotBlank(payFilePath)) { |
|||
finCollectionConfirmation.setPaymentVoucherUrl(payFilePath); |
|||
} |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid); |
|||
BigDecimal totalSubscriptionMone = null; |
|||
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|||
BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|||
totalSubscriptionMone = totalSubscriptionMone.add(subscriptionMoney); |
|||
} |
|||
BigDecimal collectionMoney = finCollectionConfirmation.getCollectionMoney(); |
|||
BigDecimal subtract = collectionMoney.subtract(totalSubscriptionMone); |
|||
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|||
return rb.setMsg("已选应收款项金额已超出该确认单应收金额总额,请重新核对"); |
|||
} |
|||
finCollectionConfirmation.setBalance(totalSubscriptionMone); |
|||
finCollectionConfirmation.setAuditState(1); |
|||
save(finCollectionConfirmation); |
|||
return rb.success(); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—初始化收款确认申请 |
|||
* |
|||
* @param collectionBillSid |
|||
* @param userSid |
|||
* @return |
|||
*/ |
|||
public ResultBean<AppFinCollectionConfirmationInitVo> initCollectionConfirm(String collectionBillSid, String userSid) { |
|||
ResultBean<AppFinCollectionConfirmationInitVo> rb = ResultBean.fireFail(); |
|||
if (StringUtils.isNotBlank(userSid)) { |
|||
return rb.fail().setMsg("用户sid不能为空"); |
|||
} |
|||
String useOrgSid = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData().getSid(); |
|||
AppFinCollectionConfirmationInitVo vo = baseMapper.initCollectionConfirm(collectionBillSid, useOrgSid); |
|||
return rb.success().setData(vo); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—提交款项确认申请 |
|||
* |
|||
* @param dto |
|||
* @return |
|||
*/ |
|||
public ResultBean submitCollectionConfirm(AppFinCollectionConfirmationDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String staffSid = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData().getStaffSid(); |
|||
List<AppFinSelectedReceivablesDetailedDto> paymentDetails = dto.getPaymentDetail(); |
|||
CommonAppendixDto commonAppendixDto = new CommonAppendixDto(); |
|||
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); |
|||
finCollectionConfirmation.setCollectionDate(dto.getCollectionDate()); |
|||
finCollectionConfirmation.setCollectionBank(dto.getCollectionBank()); |
|||
finCollectionConfirmation.setCollectionBankNum(dto.getCollectionNum()); |
|||
finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|||
finCollectionConfirmation.setCollectionTypeKey(dto.getCollectionTypeKey()); |
|||
finCollectionConfirmation.setCollectionTypeValue(dto.getCollectionType()); |
|||
finCollectionConfirmation.setPayerName(dto.getPaymentName()); |
|||
finCollectionConfirmation.setCollectionMoney(dto.getPaymentMoney()); |
|||
finCollectionConfirmation.setRemarks(dto.getRemarks()); |
|||
for (AppFinSelectedReceivablesDetailedDto paymentDetail : paymentDetails) { |
|||
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = new FinSelectedReceivablesDetailed(); |
|||
finSelectedReceivablesDetailed.setCurrentReceivableMoney(paymentDetail.getReceivable()); |
|||
finSelectedReceivablesDetailed.setVIN(paymentDetail.getVin()); |
|||
finSelectedReceivablesDetailed.setSubscriptionMoney(paymentDetail.getConfirmMoney()); |
|||
finSelectedReceivablesDetailed.setContractNo(paymentDetail.getContractId()); |
|||
finSelectedReceivablesDetailed.setReceivablesName(paymentDetail.getProjectName()); |
|||
finSelectedReceivablesDetailed.setContractSid(paymentDetail.getContractSid()); |
|||
finSelectedReceivablesDetailed.setCustomerName(paymentDetail.getName()); |
|||
finSelectedReceivablesDetailed.setCustomerPhone(paymentDetail.getMobile()); |
|||
finSelectedReceivablesDetailed.setSubscriptionDate(paymentDetail.getConfirmDate()); |
|||
finSelectedReceivablesDetailed.setCollSid(dto.getSid()); |
|||
finSelectedReceivablesDetailedService.save(finSelectedReceivablesDetailed); |
|||
//已选应收款项-车架号
|
|||
String vin = finSelectedReceivablesDetailed.getVIN(); |
|||
//已选应收款项-应收项目名称
|
|||
String receivablesName = finSelectedReceivablesDetailed.getReceivablesName(); |
|||
FinUncollectedReceivablesDetailedVo finUncollectedReceivablesDetailedVo = finUncollectedReceivablesDetailedService.fetchByVinAndRecName(vin, receivablesName); |
|||
//应收未收款项-当前应收金额
|
|||
BigDecimal currentReceivableMoney = new BigDecimal(finUncollectedReceivablesDetailedVo.getCurrentReceivableMoney()); |
|||
//已选应收款项-认款金额
|
|||
BigDecimal subscriptionMoney = finSelectedReceivablesDetailed.getSubscriptionMoney(); |
|||
BigDecimal subtract = currentReceivableMoney.subtract(subscriptionMoney); |
|||
if (subtract.compareTo(BigDecimal.ZERO) < 0) { |
|||
return rb.setMsg("认款金额超出应收金额,请重新输入"); |
|||
} |
|||
finUncollectedReceivablesDetailedVo.setCurrentReceivableMoney(String.format("%.0f", subtract)); |
|||
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto(); |
|||
BeanUtil.copyProperties(finUncollectedReceivablesDetailedVo, finUncollectedReceivablesDetailedDto); |
|||
finUncollectedReceivablesDetailedService.updateBySid(finUncollectedReceivablesDetailedDto, finUncollectedReceivablesDetailedDto.getSid()); |
|||
} |
|||
List<String> payConfirmFiles = dto.getPayConfirmFiles(); |
|||
String remFilePath = ""; |
|||
for (String payFilePath : payConfirmFiles) { |
|||
if (payFilePath != null) { |
|||
remFilePath = payFilePath.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
commonAppendixDto.setLinkSid(dto.getSid()); |
|||
commonAppendixDto.setFilePath(payFilePath); |
|||
commonAppendixDto.setCreateBySid(staffSid); |
|||
commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType()); |
|||
commonAppendixFeign.save(commonAppendixDto); |
|||
} |
|||
remFilePath += remFilePath + ","; |
|||
} |
|||
finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath); |
|||
return rb.success(); |
|||
} |
|||
|
|||
/** |
|||
* 手机端—删除收款确认单 |
|||
* |
|||
* @param collectionBillSid |
|||
* @return |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public ResultBean deleteCollectionConfirm(String collectionBillSid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
deleteBySid(collectionBillSid); |
|||
finSelectedReceivablesDetailedService.deleteByCollSid(collectionBillSid); |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 手机端—查询可使用款项明细列表 |
|||
* |
|||
* @param pagerQuery |
|||
* @return |
|||
*/ |
|||
public IPage<AppFinSelectedReceivablesPaymentDetailsVo> getPaymentDetailsList(PagerQuery<AppFinSelectedReceivablesPaymentDetailsQuery> pagerQuery) { |
|||
IPage<AppFinSelectedReceivablesPaymentDetailsQuery> page = PagerUtil.queryToPage(pagerQuery); |
|||
QueryWrapper<AppFinSelectedReceivablesPaymentDetailsVo> qw = appPaymentDetailsBuildQueryWrapper(pagerQuery.getParams()); |
|||
List<String> sidList = pagerQuery.getParams().getSidList(); |
|||
IPage<AppFinSelectedReceivablesPaymentDetailsVo> collectionConfirmList = finSelectedReceivablesDetailedService.getPaymentDetailsList(sidList, page, qw); |
|||
return collectionConfirmList; |
|||
} |
|||
|
|||
/** |
|||
* 构造条件 |
|||
* |
|||
* @param pagerQuery 查询条件 |
|||
* @return |
|||
*/ |
|||
private QueryWrapper<AppFinSelectedReceivablesPaymentDetailsVo> appPaymentDetailsBuildQueryWrapper(AppFinSelectedReceivablesPaymentDetailsQuery pagerQuery) { |
|||
QueryWrapper<AppFinSelectedReceivablesPaymentDetailsVo> qw = new QueryWrapper<>(); |
|||
if (pagerQuery != null) { |
|||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getName())) {//车架号
|
|||
qw.like("bv.vinNo", pagerQuery.getName()); |
|||
} |
|||
} |
|||
return qw; |
|||
} |
|||
|
|||
public ResultBean cashierReject(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
baseMapper.cashierReject(sid); |
|||
int auditState = 1; |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState); |
|||
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|||
String vin = finSelectedReceivablesDetailedVo.getVIN(); |
|||
String receivablesName = finSelectedReceivablesDetailedVo.getReceivablesName(); |
|||
BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedVo.getSubscriptionMoney()); |
|||
FinUncollectedReceivablesDetailedVo finUncollectedReceivablesDetailedVo = finUncollectedReceivablesDetailedService.fetchByVinAndRecName(vin, receivablesName); |
|||
String sid1 = finUncollectedReceivablesDetailedVo.getSid(); |
|||
BigDecimal currentReceivableMoney = new BigDecimal(finUncollectedReceivablesDetailedVo.getCurrentReceivableMoney()); |
|||
String curRecMoney = String.valueOf(currentReceivableMoney.add(subscriptionMoney)); |
|||
finUncollectedReceivablesDetailedService.updateCurRecMoneyBySid(curRecMoney, sid1); |
|||
} |
|||
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid); |
|||
BigDecimal collectionMoney = finCollectionConfirmation.getCollectionMoney(); |
|||
finCollectionConfirmation.setBalance(collectionMoney); |
|||
FinCollectionConfirmationDto finCollectionConfirmationDto = new FinCollectionConfirmationDto(); |
|||
BeanUtil.copyProperties(finCollectionConfirmation, finCollectionConfirmationDto); |
|||
updateBySid(finCollectionConfirmationDto, finCollectionConfirmationDto.getSid()); |
|||
return rb.success().setMsg("驳回成功"); |
|||
} |
|||
|
|||
public ResultBean cashierConfirm(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
baseMapper.cashierConfirm(sid); |
|||
int auditState = 1; |
|||
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState); |
|||
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) { |
|||
String sid1 = finSelectedReceivablesDetailedVo.getSid(); |
|||
finSelectedReceivablesDetailedService.cashierConfirm(sid1); |
|||
} |
|||
return rb.success().setMsg("款项确认成功"); |
|||
} |
|||
} |
35
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busuncollectedreceivablesdetailed/BusUncollectedReceivablesDetailedMapper.java → anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.java
35
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busuncollectedreceivablesdetailed/BusUncollectedReceivablesDetailedMapper.java → anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.java
@ -0,0 +1,23 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
<select id="selectPageVo" resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo"> |
|||
SELECT * FROM fin_uncollected_receivables_detailed <where> ${ew.sqlSegment} </where> |
|||
</select> |
|||
|
|||
<select id="selectListAllVo" resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo"> |
|||
SELECT * FROM fin_uncollected_receivables_detailed <where> ${ew.sqlSegment} </where> |
|||
</select> |
|||
|
|||
<select id="fetchByVinAndRecName" |
|||
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo"> |
|||
SELECT |
|||
* |
|||
FROM |
|||
fin_uncollected_receivables_detailed |
|||
WHERE VIN = #{vin} |
|||
AND receivablesName = #{receivablesName} |
|||
</select> |
|||
</mapper> |
46
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busuncollectedreceivablesdetailed/BusUncollectedReceivablesDetailedService.java → anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java
46
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busuncollectedreceivablesdetailed/BusUncollectedReceivablesDetailedService.java → anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java
Loading…
Reference in new issue