Browse Source

金融认款申请应收未收表

master
fanzongzhe 1 year ago
parent
commit
daa3671769
  1. 32
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/DetailsOfReceivablesAndUncollectedItemsJRVo.java
  2. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeign.java
  3. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeignFallback.java
  4. 41
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRQuery.java
  5. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java
  6. 127
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml
  7. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRRest.java
  8. 57
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java

32
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/DetailsOfReceivablesAndUncollectedItemsJRVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2023/12/12 13:52
*/
@Data
public class DetailsOfReceivablesAndUncollectedItemsJRVo {
@ApiModelProperty("应收未收款项sid")
private String sid; // 应收未收款项sid
@ApiModelProperty("消贷合同号")
private String loanContractNo; // 合同编号
@ApiModelProperty("贷款人")
private String borrowerName; // 贷款人
@ApiModelProperty("车架号/车牌号")
private String vinNo; // 车架号
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("应收项目名称")
private String receivablesName; // 应收项目名称
@ApiModelProperty("当前未收金额")
private String currentReceivableMoney; // 当前未收金额
@ApiModelProperty("资方")
private String bankName;
// @ApiModelProperty("是否是已认款的选择:0不是(应收未收),1是(已认款)")
// private int subscribedOf;
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeign.java

@ -58,4 +58,9 @@ import java.util.List;
public interface FinUncollectedReceivablesDetailedJRFeign {
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<DetailsOfReceivablesAndUncollectedItemsJRVo>> listAll(@RequestBody FinUncollectedReceivablesDetailedJRQuery query);
}

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeignFallback.java

@ -50,4 +50,8 @@ import java.util.List;
public class FinUncollectedReceivablesDetailedJRFeignFallback implements FinUncollectedReceivablesDetailedJRFeign {
@Override
public ResultBean<List<DetailsOfReceivablesAndUncollectedItemsJRVo>> listAll(FinUncollectedReceivablesDetailedJRQuery query) {
return null;
}
}

41
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRQuery.java

@ -0,0 +1,41 @@
package com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2023/12/12 13:53
*/
@Data
public class FinUncollectedReceivablesDetailedJRQuery implements Query {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("应收项目名称")
private String receivablesName; // 应收项目名称
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("业务员sid")
private String createBySid; // 业务员sid
@ApiModelProperty("当前组织全路径sid")
private String orgPath;
@ApiModelProperty("采购系统sid")
private String purchaseSystemSid;
@ApiModelProperty("应收款项sid")
private String[] sids; // 应收款项sid
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java

@ -31,7 +31,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.DetailsOfReceivablesAndUncollectedItemsJRVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -56,4 +58,15 @@ import java.util.List;
public interface FinUncollectedReceivablesDetailedJRMapper extends BaseMapper<FinUncollectedReceivablesDetailedJR> {
List<DetailsOfReceivablesAndUncollectedItemsJRVo> listAll(@Param("vinNo") String vinNo,
@Param("vehMark") String vehMark,
@Param("borrowerName") String borrowerName,
@Param("period") String period,
@Param("loanContractNo") String loanContractNo,
@Param("bankName") String bankName,
@Param("receivablesName") String receivablesName,
@Param("createBySid") String createBySid,
@Param("userOrgSid") String userOrgSid,
@Param("purchaseSystemSid") String purchaseSystemSid
);
}

127
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml

@ -5,5 +5,132 @@
<!-- ${ew.customSqlSegment} -->
<select id="listAll"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.DetailsOfReceivablesAndUncollectedItemsJRVo">
SELECT
*
FROM
(
SELECT
p.sid AS sid,
'月还' AS receivablesName,
p.loanContractNo AS loanContractNo,
p.borrowerName AS borrowerName,
p.period AS period,
CONCAT( p.vinNo, '/', p.vehMark ) AS vinNo,
p.dueMoney - IFNULL(((
SELECT
SUM( IFNULL( h.actualMoney, 0 ) )
FROM
anrui_riskcenter.loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
)),
0
) - IFNULL(((
SELECT
SUM( IFNULL( se.subscriptionMoney, 0 ) )
FROM
fin_selected_receivables_detailed AS se
WHERE
se.receivablesSid = p.sid
AND se.auditState = '1'
)),
0
) AS currentReceivableMoney,
p.bankName AS bankName
FROM
anrui_riskcenter.loan_repayment_plan_details AS p
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON p.salesOrderSid = s.sid
WHERE
IFNULL(((
SELECT
SUM( IFNULL( h.actualMoney, 0 ) )
FROM
anrui_riskcenter.loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
)),
0
) &lt; p.dueMoney
AND p.dueDate &lt; last_day(curdate())
AND s.purchaseSystemSid = #{purchaseSystemSid}
AND s.createBySid = #{createBySid}
AND s.useOrgSid = #{userOrgSid}
<if test="vinNo != null and vinNo != ''">
and CONCAT( p.vinNo, '/', p.vehMark ) like concat('%', #{vinNo}, '%')
</if>
<if test="vehMark != null and vehMark != ''">
and CONCAT( p.vinNo, '/', p.vehMark ) like concat('%', #{vehMark}, '%')
</if>
<if test="receivablesName != null and receivablesName != ''">
and '月还' like concat('%', #{receivablesName}, '%')
</if>
<if test="borrowerName != null and borrowerName != ''">
and p.borrowerName like concat('%', #{borrowerName}, '%')
</if>
<if test="period != null and period != ''">
and p.period = #{period}
</if>
<if test="loanContractNo != null and loanContractNo != ''">
and p.loanContractNo like concat('%', #{loanContractNo}, '%')
</if>
<if test="bankName != null and bankName != ''">
and p.bankName like concat('%', #{bankName}, '%')
</if>
UNION ALL
SELECT
jr.sid AS sid,
jr.payCostTitleValue AS receivablesName,
p.loanContractNo AS loanContractNo,
p.borrowerName AS borrowerName,
p.period AS period,
CONCAT( p.vinNo, '/', p.vehMark ) AS vinNo,
jr.reveivableMoney - IFNULL(((
SELECT
SUM( IFNULL( se.subscriptionMoney, 0 ) )
FROM
fin_selected_receivables_detailed AS se
WHERE
se.receivablesSid = jr.sid
AND se.auditState != '2'
)),
0
) AS currentReceivableMoney,
p.bankName AS bankName
FROM
fin_uncollected_receivables_detailed_jr AS jr
LEFT JOIN anrui_riskcenter.loan_repayment_plan_details AS p ON jr.busSid = p.sid
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON p.salesOrderSid = s.sid
where
s.purchaseSystemSid = #{purchaseSystemSid}
AND s.createBySid = #{createBySid}
AND s.useOrgSid = #{userOrgSid}
<if test="vinNo != null and vinNo != ''">
and CONCAT( p.vinNo, '/', p.vehMark ) like concat('%', #{vinNo}, '%')
</if>
<if test="vehMark != null and vehMark != ''">
and CONCAT( p.vinNo, '/', p.vehMark ) like concat('%', #{vehMark}, '%')
</if>
<if test="receivablesName != null and receivablesName != ''">
and jr.payCostTitleValue like concat('%', #{receivablesName}, '%')
</if>
<if test="borrowerName != null and borrowerName != ''">
and p.borrowerName like concat('%', #{borrowerName}, '%')
</if>
<if test="period != null and period != ''">
and p.period = #{period}
</if>
<if test="loanContractNo != null and loanContractNo != ''">
and p.loanContractNo like concat('%', #{loanContractNo}, '%')
</if>
<if test="bankName != null and bankName != ''">
and p.bankName like concat('%', #{bankName}, '%')
</if>
) AS t
ORDER BY t.loanContractNo DESC,t.period ASC
</select>
</mapper>

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRRest.java

@ -26,7 +26,9 @@
package com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.DetailsOfReceivablesAndUncollectedItemsJRVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -55,5 +57,11 @@ import java.util.List;
@RequestMapping("/finuncollectedreceivablesdetailedjr")
public class FinUncollectedReceivablesDetailedJRRest implements FinUncollectedReceivablesDetailedJRFeign {
@Autowired
private FinUncollectedReceivablesDetailedJRService finUncollectedReceivablesDetailedJRService;
@Override
public ResultBean<List<DetailsOfReceivablesAndUncollectedItemsJRVo>> listAll(FinUncollectedReceivablesDetailedJRQuery query) {
return finUncollectedReceivablesDetailedJRService.listAll(query);
}
}

57
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java

@ -25,14 +25,27 @@
*********************************************************/
package com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedQuery;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.DetailsOfReceivablesAndUncollectedItemsJRVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRQuery;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.stream.IntStream;
/**
* Description: 金融认款应收未收款项明细表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Company: https://gitee.com/liuzp315 <br/>2
* Makedate: 2022-04-12 17:57:01 <br/>
*
* @author liupopo
@ -41,6 +54,48 @@ import org.springframework.stereotype.Service;
*/
@Service
public class FinUncollectedReceivablesDetailedJRService extends MybatisBaseService<FinUncollectedReceivablesDetailedJRMapper, FinUncollectedReceivablesDetailedJR> {
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean<List<DetailsOfReceivablesAndUncollectedItemsJRVo>> listAll(FinUncollectedReceivablesDetailedJRQuery query) {
ResultBean rb = ResultBean.fireFail();
String vinNo = query.getVinNo();
String vehMark = query.getVehMark();
String borrowerName = query.getBorrowerName();
String period = query.getPeriod();
String loanContractNo = query.getLoanContractNo();
String bankName = query.getBankName();
String receivablesName = query.getReceivablesName();
String createBySid = query.getCreateBySid();
String orgPath = query.getOrgPath();
String purchaseSystemSid = query.getPurchaseSystemSid();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
String userOrgSid = "";
if (orgSidByPath.getSuccess()) {
userOrgSid = orgSidByPath.getData();
}
List<DetailsOfReceivablesAndUncollectedItemsJRVo> list = baseMapper.listAll(vinNo,
vehMark,
borrowerName,
period,
loanContractNo,
bankName,
receivablesName,
createBySid,
userOrgSid,
purchaseSystemSid
);
if (!list.isEmpty()) {
if (query.getSids() != null && query.getSids().length !=0) {
String[] sids = query.getSids();
for (String sid : sids) {
IntStream.range(0,list.size()).filter(i->
list.get(i).getSid().equals(sid)).
boxed().findFirst().map(i->list.remove((int)i));
}
}
}
return rb.success().setData(list);
}
}
Loading…
Cancel
Save