Browse Source

PC款项申请及确认相关

master
dimengzhe 2 years ago
parent
commit
8859a3fb62
  1. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicletempstate/BaseVehicleTempstateFeign.java
  2. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicletempstate/BaseVehicleTempstateFeignFallback.java
  3. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateMapper.java
  4. 20
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateMapper.xml
  5. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateRest.java
  6. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateService.java
  7. 64
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  8. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java
  9. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java
  10. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java
  11. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  12. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderprice/BusSalesOrderPriceMapper.java
  13. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderprice/BusSalesOrderPriceMapper.xml
  14. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderprice/BusSalesOrderPriceService.java
  15. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java
  16. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml
  17. 108
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  18. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java
  19. 73
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  20. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  21. 27
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicletempstate/BaseVehicleTempstateFeign.java

@ -89,4 +89,9 @@ public interface BaseVehicleTempstateFeign {
@GetMapping("/selectAllOne/{s}")
@ResponseBody
ResultBean<List<String>> selectAllOne(@PathVariable("s") String s);
@ApiOperation("根据业务类型查询临时状态")
@GetMapping("/getList")
@ResponseBody
ResultBean<List<BaseVehicleTempstate>> getList(@RequestParam("tempStateKey")String tempStateKey);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicletempstate/BaseVehicleTempstateFeignFallback.java

@ -84,4 +84,9 @@ public class BaseVehicleTempstateFeignFallback implements BaseVehicleTempstateFe
public ResultBean<List<String>> selectAllOne(String s) {
return null;
}
@Override
public ResultBean<List<BaseVehicleTempstate>> getList(String tempStateKey) {
return null;
}
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateMapper.java

@ -70,4 +70,6 @@ public interface BaseVehicleTempstateMapper extends BaseMapper<BaseVehicleTempst
@Select("select * from base_vehicle_tempstate where tempStateKey = #{state} ")
List<BaseVehicleTempstateVo> selectAllOne(String s);
List<BaseVehicleTempstate> getList(String tempStateKey);
}

20
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateMapper.xml

@ -4,12 +4,24 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateVo">
SELECT * FROM base_vehicle_tempstate
<where>${ew.sqlSegment}</where>
SELECT *
FROM base_vehicle_tempstate
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateVo">
SELECT * FROM base_vehicle_tempstate
<where>${ew.sqlSegment}</where>
SELECT *
FROM base_vehicle_tempstate
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getList" resultType="com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstate">
select *
from base_vehicle_tempstate
where tempStateKey = #{tempStateKey}
</select>
</mapper>

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateRest.java

@ -114,4 +114,11 @@ public class BaseVehicleTempstateRest implements BaseVehicleTempstateFeign {
List<String> stringList = baseVehicleTempstateService.selectAll(s);
return rb.success().setData(stringList);
}
@Override
public ResultBean<List<BaseVehicleTempstate>> getList(String tempStateKey) {
ResultBean<List<BaseVehicleTempstate>> rb = ResultBean.fireFail();
List<BaseVehicleTempstate> baseVehicleTempstates = baseVehicleTempstateService.getList(tempStateKey);
return rb.success().setData(baseVehicleTempstates);
}
}

4
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicletempstate/BaseVehicleTempstateService.java

@ -120,4 +120,8 @@ public class BaseVehicleTempstateService extends MybatisBaseService<BaseVehicleT
public List<BaseVehicleTempstateVo> selectAllOne(String s) {
return baseMapper.selectAllOne(s);
}
public List<BaseVehicleTempstate> getList(String tempStateKey) {
return baseMapper.getList(tempStateKey);
}
}

64
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java

@ -81,8 +81,6 @@ import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static cn.hutool.core.util.ClassLoaderUtil.getClassLoader;
/**
* Project: anrui-base(安瑞基础) <br/>
* File: CommonContractService.java <br/>
@ -1516,6 +1514,68 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
commonAppendixService.insert(commonAppendix);
}
}
//查询销售订单的单台订金与单台成交价是否相等,若不相等,则推送车款为成交价减去订金的,推送订金的为单台订金的
String singleFinalPrice = priceInfo.getSingleFinalPrice();
String deposit = depositInfo.getDeposit();
//单台成交价与单台订金相等
if(new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0){//推送车款
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).toString();
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
List<String> vinList = appOrderModelInfoVo.getVinList();
for (int i = 0; i < vinList.size(); i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();
//合同sid
unCollectionDto.setContractSid(commonContract.getSid());
//合同编号
unCollectionDto.setContractNo(commonContract.getContractNo());
//客户名称
unCollectionDto.setCustomerName(appOrderDetailsVo.getName());
//客户sid
unCollectionDto.setCustomerSid(appOrderDetailsVo.getCustomerSid());
//客户类型
unCollectionDto.setCustomerClass(appOrderDetailsVo.getCustomerKey());
//客户类型
unCollectionDto.setCustomerClassKey(appOrderDetailsVo.getCustomerType());
//客户头像
unCollectionDto.setCustomerImage(appOrderDetailsVo.getCustomerImage());
unCollectionDto.setReceivablesName("车款");
unCollectionDto.setCustomerPhone(appOrderDetailsVo.getPhone());
unCollectionDto.setUseOrgSid(appOrderDetailsVo.getUseOrgSid());
unCollectionDto.setVinNo(vinList.get(i).toString());
unCollectionDto.setCurrentReceivableMoney(money);
unCollectionDto.setUserSid(dto.getUserSid());
unCollectionDto.setReveivableMoney(money);
finUncollectedDetailedFeign.saveUnCollection(unCollectionDto);
}
} else {
int qualiy = Integer.valueOf(appOrderModelInfoVo.getTotal()).intValue();
for (int i = 0; i < qualiy; i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();
//合同sid
unCollectionDto.setContractSid(commonContract.getSid());
//合同编号
unCollectionDto.setContractNo(commonContract.getContractNo());
//客户名称
unCollectionDto.setCustomerName(appOrderDetailsVo.getName());
//客户sid
unCollectionDto.setCustomerSid(appOrderDetailsVo.getCustomerSid());
//客户类型
unCollectionDto.setCustomerClass(appOrderDetailsVo.getCustomerKey());
//客户类型
unCollectionDto.setCustomerClassKey(appOrderDetailsVo.getCustomerType());
//客户头像
unCollectionDto.setCustomerImage(appOrderDetailsVo.getCustomerImage());
unCollectionDto.setReceivablesName("车款");
unCollectionDto.setCustomerPhone(appOrderDetailsVo.getPhone());
unCollectionDto.setUseOrgSid(appOrderDetailsVo.getUseOrgSid());
unCollectionDto.setCurrentReceivableMoney(money);
unCollectionDto.setUserSid(dto.getUserSid());
unCollectionDto.setReveivableMoney(money);
finUncollectedDetailedFeign.saveUnCollection(unCollectionDto);
}
}
}
//添加推送至款项确认的应收未收明细中
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
List<String> vinList = appOrderModelInfoVo.getVinList();

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java

@ -34,6 +34,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.vin.VinVo;
import com.yxt.anrui.buscenter.api.bussalesorder.contract.AppRovalContractPageQuery;
import com.yxt.anrui.buscenter.api.bussalesorder.contract.AppRovalContractPageVo;
import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -232,4 +233,9 @@ public interface BusSalesOrderFeign {
@GetMapping("/getVinSidByConSid")
@ResponseBody
ResultBean<String> getVinSidByConSid(@RequestParam("contractNo")String contractNo,@RequestParam("vinNo")String vinNo);
@ApiOperation("查询该合同下的单车成交价")
@GetMapping("/selectByContractNo")
@ResponseBody
ResultBean<BusSalesOrderPrice> selectByContractNo(@RequestParam("contractNo")String contractNo);
}

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java

@ -34,6 +34,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.vin.VinVo;
import com.yxt.anrui.buscenter.api.bussalesorder.contract.AppRovalContractPageQuery;
import com.yxt.anrui.buscenter.api.bussalesorder.contract.AppRovalContractPageVo;
import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -208,4 +209,9 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign {
public ResultBean<String> getVinSidByConSid(String contractNo, String vinNo) {
return null;
}
@Override
public ResultBean<BusSalesOrderPrice> selectByContractNo(String contractNo) {
return null;
}
}

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java

@ -37,6 +37,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.vin.VinVo;
import com.yxt.anrui.buscenter.api.bussalesorder.contract.AppRovalContractPageQuery;
import com.yxt.anrui.buscenter.api.bussalesorder.contract.AppRovalContractPageVo;
import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.base.utils.PagerUtil;
@ -285,4 +286,9 @@ public class BusSalesOrderRest implements BusSalesOrderFeign {
public ResultBean<String> getVinSidByConSid(String contractNo, String vinNo) {
return busSalesOrderService.getVinSidByConSid(contractNo,vinNo);
}
@Override
public ResultBean<BusSalesOrderPrice> selectByContractNo(String contractNo) {
return busSalesOrderService.selectByContractNoOne(contractNo);
}
}

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -2904,4 +2904,13 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
return rb.success().setData(vinSid);
}
public ResultBean<BusSalesOrderPrice> selectByContractNoOne(String contractNo) {
ResultBean<BusSalesOrderPrice> rb = ResultBean.fireFail();
BusSalesOrderPrice busSalesOrderPrice = busSalesOrderPriceService.selectByContractNoOne(contractNo);
if(busSalesOrderPrice == null){
return rb.setData(new BusSalesOrderPrice());
}
return rb.success().setData(busSalesOrderPrice);
}
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderprice/BusSalesOrderPriceMapper.java

@ -91,4 +91,6 @@ public interface BusSalesOrderPriceMapper extends BaseMapper<BusSalesOrderPrice>
* @return
*/
AppOrderPriceInfoVo selectPrice(String sid);
BusSalesOrderPrice selectByContractNoOne(String contractNo);
}

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderprice/BusSalesOrderPriceMapper.xml

@ -59,4 +59,11 @@
from bus_sales_order_price bp
where bp.salesOrderSid = #{sid}
</select>
<select id="selectByContractNoOne" resultType="com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice">
select *
from bus_sales_order_price bsp
left join bus_sales_order bo on bo.sid = bsp.salesOrderSid
where bo.contractNo = #{contractNo}
</select>
</mapper>

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderprice/BusSalesOrderPriceService.java

@ -195,4 +195,8 @@ public class BusSalesOrderPriceService extends MybatisBaseService<BusSalesOrderP
public AppOrderPriceInfoVo selectPrice(String sid) {
return baseMapper.selectPrice(sid);
}
public BusSalesOrderPrice selectByContractNoOne(String contractNo) {
return baseMapper.selectByContractNoOne(contractNo);
}
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java

@ -103,4 +103,6 @@ public interface FinCollectionConfirmationMapper extends BaseMapper<FinCollectio
List<AppCollectionConfirmationStateVo> selectByState();
int updateBalanceBySid(@Param("sid") String sid, @Param("balanceBigDecimal") BigDecimal balanceBigDecimal);
List<String> getList(@Param("stringList") List<String> stringList, @Param("createBySid") String createBySid, @Param("useOrgSid") String useOrgSid);
}

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml

@ -90,4 +90,12 @@
<update id="updateBalanceBySid">
update fin_collection_confirmation set balance = #{balanceBigDecimal} where sid = #{sid}
</update>
<select id="getList" resultType="java.lang.String">
select sid from fin_collection_confirmation where createBySid = #{createBySid} and useOrgSid = #{useOrgSid}
and sid in
<foreach collection="stringList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

108
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -40,6 +40,7 @@ import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.common.enums.VehicleStateTempOrLast;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.fin.api.fincollectionconfirmation.*;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.FinConfirmDto;
@ -50,8 +51,6 @@ import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivabl
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;
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedService;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
@ -141,8 +140,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isNotBlank(query.getCreateBySid())) {
qw.eq("createBySid", query.getCreateBySid());
}
}else{
qw.ne("auditState",0);
} else {
qw.ne("auditState", 0);
}
}
return qw;
@ -178,19 +177,19 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
List<FinCollectionConfirmationVo> records = pagging.getRecords();
for (FinCollectionConfirmationVo record : records) {
//是否有余额
if(StringUtils.isNotBlank(record.getBalance())){
if (StringUtils.isNotBlank(record.getBalance())) {
//余额是0
if(new BigDecimal(record.getBalance()).compareTo(BigDecimal.ZERO) == 0){
if (new BigDecimal(record.getBalance()).compareTo(BigDecimal.ZERO) == 0) {
record.setShowHandle(false);
}else{
} else {
//是否是待审核状态或已驳回状态
if(record.getAuditState() == 1 || record.getAuditState() == 2){
if (record.getAuditState() == 1 || record.getAuditState() == 2) {
record.setShowHandle(false);
}else{
} else {
record.setShowHandle(true);
}
}
}else{
} else {
record.setShowHandle(false);
}
}
@ -291,13 +290,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailed.setUseOrgSid(useOrgSid);
//设置审核状态为待审核(1待审核/2已驳回/3已审核)
finSelectedReceivablesDetailed.setAuditState(1);
finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid());
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("待审核");
if ("车款".equals(v.getReceivablesName())) {
baseVehicleTempstateDto.setTempKey("001");
baseVehicleTempstateDto.setTempValue("车款");
}
if ("订金".equals(v.getReceivablesName())) {
baseVehicleTempstateDto.setTempKey("002");
baseVehicleTempstateDto.setTempValue("订金");
}
baseVehicleTempstateDto.setBusSid(finalSid);
//根据合同编号和车架号查询该合同的车辆sid
ResultBean<String> resultBean = busSalesOrderFeign.getVinSidByConSid(v.getContractNo(), v.getVIN());
@ -305,13 +312,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
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);
});
finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney());
finCollectionConfirmation.setAuditState(1);
//1未认款/2部分认款/3已认款
finCollectionConfirmation.setPaymentState(1);
baseMapper.insert(finCollectionConfirmation);
} else {//认款、多次认款
@ -1116,31 +1122,49 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
return rb.setMsg("该申请不存在");
}
//查询该申请下的所有待审核的款项明细
BigDecimal subscriptionMoneyAll = new BigDecimal("0");
List<FinSelectedReceivablesDetailedVo> 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:查询是否符合待出库的条件
});
if(finSelectedReceivablesDetailedVos.size()>0){
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:查询是否符合待出库的条件
//该合同编号下的该车架号的所有认款金额
List<FinSelectedReceivablesDetailedVo> voList = finSelectedReceivablesDetailedService.selectListByVin(v.getContractNo(),v.getVIN());
BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
//查询该合同编号下的销售订单的单车成交价
ResultBean<BusSalesOrderPrice> resultBean = busSalesOrderFeign.selectByContractNo(v.getContractNo());
if(resultBean.getSuccess()){
BusSalesOrderPrice busSalesOrderPrice = resultBean.getData();
BigDecimal singleFinalPrice = busSalesOrderPrice.getSingleFinalPrice();
if(singleFinalPrice.compareTo(bigDecimalVinAll) == 0){//推送待出库
}
}
});
//查询该申请已认款金额总数
subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
}
//查询该申请所有的款项明细
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);
//更新收款申请的余额以及审核状态
@ -1245,4 +1269,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
vo.setArrearsMoney(arrearsMoney);
return rb.success().setData(vo);
}
public List<String> getList(List<String> stringList, String createBySid, String useOrgSid) {
return baseMapper.getList(stringList, createBySid, useOrgSid);
}
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java

@ -99,4 +99,10 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper<FinSele
List<AppFinSelectedReceivablesPaymentDetailsVo> selectByCollSid(@Param("collectionBillSid") String collectionBillSid);
List<AppBusArrearsCarryMoneyVo> selByContractNo(String contractNo);
List<String> selectListByAuditState(@Param("i") int i,@Param("userSid") String userSid,@Param("useOrgSid") String useOrgSid);
List<FinSelectedReceivablesDetailedVo> selectListByVin(@Param("contractNo") String contractNo, @Param("vinNo") String vin);
List<FinSelectedReceivablesDetailed> getList(@Param("list") List<String> sidsList);
}

73
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml

@ -5,7 +5,8 @@
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
SELECT * FROM fin_selected_receivables_detailed
SELECT *
FROM fin_selected_receivables_detailed
<where>
${ew.sqlSegment}
</where>
@ -13,7 +14,8 @@
<select id="selectListAllVo"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
SELECT * FROM fin_selected_receivables_detailed
SELECT *
FROM fin_selected_receivables_detailed
<where>
${ew.sqlSegment}
</where>
@ -22,27 +24,25 @@
<!--手机端—查询可使用款项明细列表-->
<select id="getPaymentDetailsList"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo">
SELECT
sid,
contractNo AS contractId,
receivablesName AS projectName,
customerPhone AS mobile,
customerName AS `name`,
currentReceivableMoney AS receivable,
contractSid,
currentReceivableMoney AS confirmMoney,
VIN AS vin
FROM
fin_uncollected_receivables_detailed furd
SELECT sid,
contractNo AS contractId,
receivablesName AS projectName,
customerPhone AS mobile,
customerName AS `name`,
currentReceivableMoney AS receivable,
contractSid,
currentReceivableMoney AS confirmMoney,
VIN AS vin
FROM fin_uncollected_receivables_detailed furd
<where>
${ew.sqlSegment}
<if test="name != null and name != ''">
and concat(IFNULL(furd.customerName
, '')
, ifnull(furd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(furd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
</where>
</select>
@ -87,12 +87,33 @@
<select id="selByContractNo"
resultType="com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo">
SELECT
fsrd.subscriptionMoney
FROM
fin_selected_receivables_detailed fsrd
LEFT JOIN fin_collection_confirmation fcc ON fcc.sid = fsrd.collSid
WHERE
fcc.paymentState = 1
SELECT fsrd.subscriptionMoney
FROM fin_selected_receivables_detailed fsrd
LEFT JOIN fin_collection_confirmation fcc ON fcc.sid = fsrd.collSid
WHERE fcc.paymentState = 1
</select>
<select id="selectListByAuditState" resultType="java.lang.String">
select receivablesSid
from fin_selected_receivables_detailed
where auditState = #{i}
and createBySid = #{userSid}
and useOrgSid = #{useOrgSid}
</select>
<select id="selectListByVin"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
select *
from fin_selected_receivables_detailed
where contractNo = #{contractNo}
and VIN = #{vinNo}
</select>
<select id="getList"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed">
select * from fin_selected_receivables_detailed where collSid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

12
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java

@ -212,4 +212,16 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
List<AppBusArrearsCarryMoneyVo> list = baseMapper.selByContractNo(contractNo);
return list;
}
public List<String> selectListByAuditState(int i,String userSid,String useOrgSid) {
return baseMapper.selectListByAuditState(i,userSid,useOrgSid);
}
public List<FinSelectedReceivablesDetailedVo> selectListByVin(String contractNo, String vin) {
return baseMapper.selectListByVin(contractNo, vin);
}
public List<FinSelectedReceivablesDetailed> getList(List<String> sidsList) {
return baseMapper.getList(sidsList);
}
}

27
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java

@ -27,10 +27,15 @@ package com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstate;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContractVo;
import com.yxt.anrui.base.common.enums.VehicleStateTempOrLast;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.*;
import com.yxt.anrui.fin.biz.fincollectionconfirmation.FinCollectionConfirmationService;
import com.yxt.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
@ -49,6 +54,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
/**
* Project: anrui-fin(销售相关) <br/>
@ -76,6 +82,10 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BaseVehicleTempstateFeign baseVehicleTempstateFeign;
@Autowired
private FinCollectionConfirmationService finCollectionConfirmationService;
private QueryWrapper<FinUncollectedReceivablesDetailed> createQueryWrapper(FinUncollectedReceivablesDetailedQuery query) {
/**
@ -94,9 +104,20 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService
}
}
}
//查询待审核状态下的款项申请的
// ResultBean<Boolean> resultBean =
ResultBean<List<BaseVehicleTempstate>> resultBean = baseVehicleTempstateFeign.getList(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getCode());
List<BaseVehicleTempstate> list = resultBean.getData();
if(list.size()>0){
List<String> stringList = list.stream().map(v->v.getBusSid()).distinct().collect(Collectors.toList());
List<String> sidsList = finCollectionConfirmationService.getList(stringList,query.getCreateBySid(),query.getUseOrgSid());
if(sidsList.size()>0){
//查询该申请下是否存在款项明细
List<FinSelectedReceivablesDetailed> finSelectedReceivablesDetaileds = finSelectedReceivablesDetailedService.getList(sidsList);
List<String> strings = finSelectedReceivablesDetaileds.stream().map(v->v.getReceivablesSid()).distinct().collect(Collectors.toList());
if(strings.size()>0){
qw.notIn("sid",strings);
}
}
}
if (StringUtils.isNotBlank(query.getContractNo())) {
qw.like("contractNo", query.getContractNo());
}

Loading…
Cancel
Save