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 com.yxt.common.core.vo.Vo; |
||||
import io.swagger.annotations.ApiModelProperty; |
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
import lombok.Data; |
||||
|
|
||||
@Data |
@Data |
||||
public class AppBusCollectionConfirmationPageVo implements Vo { |
public class AppFinCollectionConfirmationPageVo implements Vo { |
||||
|
|
||||
@ApiModelProperty("确认单sid") |
@ApiModelProperty("确认单sid") |
||||
private String collectionBillSid; |
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 com.yxt.common.core.query.Query; |
||||
import io.swagger.annotations.ApiModelProperty; |
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
import lombok.Data; |
||||
|
|
||||
@Data |
@Data |
||||
public class AppBusCollectionConfirmationQuery implements Query { |
public class AppFinCollectionConfirmationQuery implements Query { |
||||
|
|
||||
@ApiModelProperty("用户sid") |
@ApiModelProperty("用户sid") |
||||
private String userSid; |
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 com.yxt.common.core.vo.Vo; |
||||
import io.swagger.annotations.ApiModelProperty; |
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
import lombok.Data; |
||||
|
|
||||
@Data |
@Data |
||||
public class AppBusSelectedReceivablesPaymentDetailsVo implements Vo { |
public class AppFinSelectedReceivablesPaymentDetailsVo implements Vo { |
||||
|
|
||||
@ApiModelProperty("合同编号") |
@ApiModelProperty("合同编号") |
||||
private String contractId; |
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