diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmation.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmation.java
index 200072e370..b8c01a2f6a 100644
--- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmation.java
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmation.java
@@ -91,4 +91,5 @@ public class FinCollectionConfirmation extends BaseEntity {
private String busSid;
@ApiModelProperty("业务单据编号")
private String busNo;
+ private int first;
}
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationDto.java
index a7d81269d7..6ee167cfd2 100644
--- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationDto.java
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationDto.java
@@ -51,9 +51,10 @@ import java.util.List;
@Data
public class FinCollectionConfirmationDto implements Dto {
+ private static final long serialVersionUID = -403651328937526175L;
@ApiModelProperty("用户sid")
private String userSid;
- @ApiModelProperty("收款确认单sid")
+ @ApiModelProperty("sid")
private String sid; // 收款确认单sid
@ApiModelProperty("业务员sid")
private String staffSid; // 业务员sid
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedDto.java
index 4bfe9548e7..d07cf2f8a3 100644
--- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedDto.java
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedDto.java
@@ -49,7 +49,7 @@ import lombok.Data;
@Data
public class FinSelectedReceivablesDetailedDto implements Dto {
- @ApiModelProperty("创建人接口")
+ @ApiModelProperty("创建人")
private String createByName; // 创建人接口
@ApiModelProperty("合同sid")
private String contractSid; // 合同sid
@@ -70,8 +70,8 @@ public class FinSelectedReceivablesDetailedDto implements Dto {
private String receivablesName; // 应收项目名称
@ApiModelProperty("当前应收金额")
private String currentReceivableMoney; // 当前应收金额
- @ApiModelProperty("上次认款金额")
- private String lastSubscriptionMoney; // 上次认款金额
+ /* @ApiModelProperty("上次认款金额")
+ private String lastSubscriptionMoney; // 上次认款金额*/
@ApiModelProperty("认款金额")
private String subscriptionMoney; // 认款金额
@ApiModelProperty("认款申请日期")
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java
index 805e517220..c5839bf2dd 100644
--- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java
@@ -106,4 +106,7 @@ public class FinSelectedReceivablesDetailedVo implements Vo {
@ApiModelProperty("款项类型value")
private String paymentTypeValue; // 款项类型value
+
+ @ApiModelProperty("应收未收款项sid")
+ private String receivablesSid;
}
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailed.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailed.java
index c99f8f7e63..29131d8c94 100644
--- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailed.java
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailed.java
@@ -85,4 +85,6 @@ public class FinUncollectedReceivablesDetailed extends BaseEntity {
@ApiModelProperty("应收金额(不变)")
private String reveivableMoney;
+
+ private Integer subscriptionState;
}
diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
index 22399bda7e..4c09932536 100644
--- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
+++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
@@ -26,6 +26,7 @@
package com.yxt.anrui.fin.biz.fincollectionconfirmation;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
@@ -48,6 +49,7 @@ import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivabl
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo;
+import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo;
import com.yxt.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService;
@@ -72,6 +74,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* Project: anrui-fin(销售相关)
@@ -203,7 +206,98 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedDtos = dto.getFinSelectedReceivablesDetaileds();
+ BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedDtos.stream().map(FinSelectedReceivablesDetailedDto::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
+ if (subscriptionMoneyAll.compareTo(new BigDecimal(dto.getCollectionMoney())) != 0) {
+ return rb.setMsg("认款不完全,提交失败");
+ }
+ List paymentVoucherAppendixs = dto.getPaymentVoucherAppendixs();
+ if (paymentVoucherAppendixs.size() == 0) {
+ return rb.setMsg("请上传打款凭证附件");
+ }
+ List remittanceConfirmationAppendixs = dto.getRemittanceConfirmationAppendixs();
+ if (remittanceConfirmationAppendixs.size() == 0) {
+ return rb.setMsg("请上传汇款确认书附件");
+ }
+ //对收款申请进行赋值操作
+ FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation();
+ BeanUtil.copyProperties(dto, finCollectionConfirmation, "sid");
+ sid = finCollectionConfirmation.getSid();
+ //根据用户sid查询分公司sid
+ String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(dto.getUserSid()).getData();
+ finCollectionConfirmation.setCreateBySid(dto.getUserSid());
+ finCollectionConfirmation.setUseOrgSid(useOrgSid);
+ //附件保存:打款凭证附件
+ paymentVoucherAppendixs.stream().forEach(v -> {
+ CommonAppendixDto commonAppendixDto = new CommonAppendixDto();
+ BeanUtil.copyProperties(v, commonAppendixDto);
+ String s = commonAppendixDto.getFilePath();
+ if (s.contains(fileUploadComponent.getUrlPrefix())) {
+ s = s.replace(fileUploadComponent.getUrlPrefix(), "");
+ }
+ commonAppendixDto.setLinkSid(finCollectionConfirmation.getSid());
+ commonAppendixDto.setFilePath(s);
+ commonAppendixDto.setCreateBySid(dto.getUserSid());
+ commonAppendixDto.setAttachType(CommonAttachTypeEnum.PAYMENT_VOUCHER.getAttachType());
+ commonAppendixFeign.save(commonAppendixDto);
+ });
+ String payFilePath = paymentVoucherAppendixs.stream().map(v -> v.getFilePath().replace(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.joining(","));
+ finCollectionConfirmation.setPaymentVoucherUrl(payFilePath);
+ //汇款确认书附件保存
+ remittanceConfirmationAppendixs.stream().forEach(v -> {
+ CommonAppendixDto commonAppendixDto = new CommonAppendixDto();
+ BeanUtil.copyProperties(v, commonAppendixDto);
+ String s = commonAppendixDto.getFilePath();
+ if (s.contains(fileUploadComponent.getUrlPrefix())) {
+ s = s.replace(fileUploadComponent.getUrlPrefix(), "");
+ }
+ commonAppendixDto.setLinkSid(finCollectionConfirmation.getSid());
+ commonAppendixDto.setFilePath(s);
+ commonAppendixDto.setCreateBySid(dto.getUserSid());
+ commonAppendixDto.setAttachType(CommonAttachTypeEnum.REMITTAN_CECONFIRMATION.getAttachType());
+ commonAppendixFeign.save(commonAppendixDto);
+ });
+ String remFilePath = remittanceConfirmationAppendixs.stream().map(v -> v.getFilePath().replace(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.joining(","));
+ finCollectionConfirmation.setRemittanceConfirmationUrl(remFilePath);
+ //认款明细保存
+ String finalSid = sid;
+ finSelectedReceivablesDetailedDtos.stream().forEach(v -> {//已选
+ FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = new FinSelectedReceivablesDetailed();
+ BeanUtil.copyProperties(v, finSelectedReceivablesDetailed, "sid");
+ finSelectedReceivablesDetailed.setCollSid(finalSid);
+ finSelectedReceivablesDetailed.setUseOrgSid(useOrgSid);
+ //设置审核状态为待审核(1待审核/2已驳回/3已审核)
+ finSelectedReceivablesDetailed.setAuditState(1);
+ finSelectedReceivablesDetailedService.insert(finSelectedReceivablesDetailed);
+ //添加已选车架号为临时状态
+ BaseVehicleTempstateDto baseVehicleTempstateDto = new BaseVehicleTempstateDto();
+ baseVehicleTempstateDto.setTempStateKey(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getCode());
+ baseVehicleTempstateDto.setTempStateValue(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getRemarks());
+ baseVehicleTempstateDto.setTempKey("1");
+ baseVehicleTempstateDto.setTempValue("待审核");
+ baseVehicleTempstateDto.setBusSid(finalSid);
+ //根据合同编号和车架号查询该合同的车辆sid
+ ResultBean resultBean = busSalesOrderFeign.getVinSidByConSid(v.getContractNo(), v.getVIN());
+ if (resultBean.getSuccess()) {
+ baseVehicleTempstateDto.setVehSid(resultBean.getData());
+ }
+ ResultBean vehicleStateResult = baseVehicleTempstateFeign.save(baseVehicleTempstateDto);
+ finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney());
+ finCollectionConfirmation.setAuditState(1);
+ //1未认款/2部分认款/3已认款
+ finCollectionConfirmation.setPaymentState(1);
+ baseMapper.insert(finCollectionConfirmation);
+
+ });
+
+
+ } else {//认款、多次认款
+
+ }
+ /* FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation();
List finSelectedReceivablesDetailedDtos = dto.getFinSelectedReceivablesDetaileds();
List paymentVoucherAppendixs = dto.getPaymentVoucherAppendixs();
@@ -220,24 +314,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid);
- List data = sysStaffOrgListByStaffSid.getData();
- String orgSidPath = "";
- for (SysStaffOrgVo datum : data) {
- orgSidPath = datum.getOrgSidPath();
- String[] split = orgSidPath.split("/");
- for (String s : split) {
- ResultBean sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s);
- SysOrganizationVo data1 = sysOrganizationVoResultBean.getData();
- Integer isDept = data1.getIsDept();
- String psid = data1.getPsid();
- if (isDept == 0 && !psid.equals(0)) {
- orgSidPath = s;
- break;
- }
- }
- }*/
//用户sid
String createBySid = dto.getUserSid();
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(createBySid).getData();
@@ -298,7 +374,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid);
BigDecimal totalSubscriptionMone = new BigDecimal(0);
@@ -326,16 +402,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1);
+ finSelectedReceivablesDetailedVos.stream().forEach(v -> {
+ String selectSid = v.getSid();
+ FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(selectSid);
+ finSelectedReceivablesDetailed.setAuditDate(DateUtil.today());
+ finSelectedReceivablesDetailed.setAuditState(2);
+ finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed);
+ });
+ confirmation.setAuditState(2);
+ baseMapper.updateById(confirmation);
+ //删除临时表的数据
+ ResultBean deleteResult = baseVehicleTempstateFeign.delByBusSid(sid);
+
+ /*baseMapper.cashierReject(sid);
int auditState = 1;
List finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, auditState);
for (FinSelectedReceivablesDetailedVo finSelectedReceivablesDetailedVo : finSelectedReceivablesDetailedVos) {
//更新审核时间
finSelectedReceivablesDetailedService.updateAuditDateBySid(finSelectedReceivablesDetailedVo.getSid(), "2");
- /* String vin = finSelectedReceivablesDetailedVo.getVIN();
+ 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);*/
+ finUncollectedReceivablesDetailedService.updateCurRecMoneyBySid(curRecMoney, sid1);
}
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid);
BigDecimal collectionMoney = finCollectionConfirmation.getCollectionMoney();
@@ -858,14 +959,55 @@ public class FinCollectionConfirmationService extends MybatisBaseService finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1);
+ finSelectedReceivablesDetailedVos.stream().forEach(v -> {
+ //已选款项明细sid
+ String selectSid = v.getSid();
+ //应收未收款项明细sid
+ String receivablesSid = v.getReceivablesSid();
+ FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(receivablesSid);
+ BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney();
+ //更新当前应收金额
+ finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney.subtract(new BigDecimal(v.getSubscriptionMoney())));
+ //更新认款状态
+ finUncollectedReceivablesDetailed.setSubscriptionState(finUncollectedReceivablesDetailed.getCurrentReceivableMoney().compareTo(BigDecimal.ZERO) == 0 ? 3 : 2);
+ finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
+ FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(selectSid);
+ //更新已选款项明细的审核状态1待审核/2已驳回/3已审核
+ finSelectedReceivablesDetailed.setAuditState(3);
+ //更新审核时间
+ finSelectedReceivablesDetailed.setAuditDate(DateUtil.today());
+ finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed);
+ //ToDo:查询是否符合待出库的条件
+ });
+ //查询该申请所有的款项明细
+ finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 3);
+ //查询该申请已认款金额总数
+ BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
+ //与收款金额作比较:更新认款状态 1未认款/2部分认款/3已认款
+ confirmation.setPaymentState(confirmation.getCollectionMoney().compareTo(subscriptionMoneyAll) == 0 ? 3 : subscriptionMoneyAll.compareTo(BigDecimal.ZERO) == 0 ? 1 : 2);
+ //更新收款申请的余额以及审核状态
+ BigDecimal balanceBigDecimal = confirmation.getCollectionMoney().subtract(subscriptionMoneyAll);
+ confirmation.setBalance(balanceBigDecimal);
+ confirmation.setAuditState(3);
+ baseMapper.updateById(confirmation);
+ //删除临时表的数据
+ ResultBean deleteResult = baseVehicleTempstateFeign.delByBusSid(sid);
+
+
+
+ /* baseMapper.cashierConfirm(sid);
int auditState = 1;
//总共认款金额
BigDecimal totalSubscriptionMoney = new BigDecimal(0);
@@ -881,9 +1023,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService