Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 1 year ago
parent
commit
e4dd4ee46d
  1. 9
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  2. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java
  3. 17
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java
  4. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java
  5. 22
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryPdfVo.java
  6. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryQuery.java
  7. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryVo.java
  8. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java
  9. 54
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml
  10. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java
  11. 153
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java
  12. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java
  13. 19
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java
  14. 1919
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/fund.ftl
  15. 731
      doc/databases/报表.sql
  16. 1144
      doc/databases/报表中心.sql
  17. 77
      doc/databases/报表新增修改.sql
  18. 10
      doc/databases/统计报表.sql
  19. 7
      doc/databases/统计报表clear.sql
  20. 16
      doc/databases/统计报表create.sql
  21. 1622
      doc/databases/统计报表update.sql
  22. 3
      工作内容需要的文档/单据模板/财务凭证打印模板/计提资金占用费/fund.ftl
  23. 25
      工作内容需要的文档/单据模板/财务凭证打印模板/计提资金占用费/计提资金占用费.docx

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

@ -3819,6 +3819,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
confirmation.setPaymentState(3);
baseMapper.updateById(confirmation);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String collectionDate = confirmation.getCollectionDate();
//-------收款凭证组装---------
CollectionVoucher collectionVoucher = new CollectionVoucher();
@ -4028,6 +4029,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
loanPushFundHistory.setBusVinSid(planDetails.getBusVinSid());
loanPushFundHistory.setUseOrgName(planDetails.getUseOrgName());
loanPushFundHistory.setUseOrgSid(planDetails.getUseOrgSid());
String lastTimes = loanPushFundHistoryFeign.getLastDateByBusVinSid(planDetails.getBusVinSid()).getData();
if (StringUtils.isNotBlank(lastTimes)) {
try {
loanPushFundHistory.setLastAccrualDate(sdfTimes.parse(lastTimes));
} catch (ParseException e) {
e.printStackTrace();
}
}
fundHistoryList.add(loanPushFundHistory);
}
//推送资金占用费出纳确认后

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java

@ -1,12 +1,14 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author liupopo
@ -26,4 +28,8 @@ public class LoanPushFundHistory extends BaseEntity {
private String useOrgName;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("上次计提时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date lastAccrualDate;
}

17
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java

@ -1,9 +1,15 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@ -24,4 +30,15 @@ public interface LoanPushFundHistoryFeign {
@PostMapping("/saveHistory")
public int saveHistory(@RequestBody List<LoanPushFundHistory> fundHistoryList);
@ApiOperation("资金占用费计提列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanPushFundHistoryVo>> listPage(@RequestBody PagerQuery<LoanPushFundHistoryQuery> pq);
@ApiOperation("根据busVinSid查询上次计提时间")
@PostMapping("/getLastDateByBusVinSid")
public ResultBean<String> getLastDateByBusVinSid(@RequestParam("busVinSid") String busVinSid);
@ApiOperation("下载资金占用费计提记录dpf")
@PostMapping("/fundCreatePdf")
public ResultBean<String> fundCreatePdf(@RequestParam("times") String times, @RequestParam("orgPath") String orgPath);
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java

@ -1,6 +1,9 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
@ -14,4 +17,19 @@ public class LoanPushFundHistoryFeignFallback implements LoanPushFundHistoryFeig
public int saveHistory(List<LoanPushFundHistory> fundHistoryList) {
return 0;
}
@Override
public ResultBean<PagerVo<LoanPushFundHistoryVo>> listPage(PagerQuery<LoanPushFundHistoryQuery> pq) {
return null;
}
@Override
public ResultBean<String> getLastDateByBusVinSid(String busVinSid) {
return null;
}
@Override
public ResultBean<String> fundCreatePdf(String times, String orgPath) {
return null;
}
}

22
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryPdfVo.java

@ -0,0 +1,22 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/4/16 10:32
*/
@Data
public class LoanPushFundHistoryPdfVo {
private Integer sortNo;
private String bankName;
private String bankNo;
private String vinNo;
private String borrowerName;
private String saleDept;
private String lastDate;
private String days;
private String money;
private String loanNo;
}

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/4/16 8:38
*/
@Data
public class LoanPushFundHistoryQuery implements Query {
// private String loanContractNo;//贷款合同号
// private String bankName; //资方
// private String bankContractNo;//资方合同号
// private String vinNo;//车架号
// private String borrowerName; //贷款人
// private String salesDept; //销售部门
private String startTimes; //计提开始时间
private String endTimes; //计提结束时间
private String orgPath;
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryVo.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/4/16 8:37
*/
@Data
public class LoanPushFundHistoryVo implements Vo {
// private String loanContractNo;//贷款合同号
// private String bankName; //资方
// private String bankContractNo;//资方合同号
// private String vinNo;//车架号
// private String borrowerName; //贷款人
// private String salesDept; //销售部门
private String times; //计提时间
private String money; //本次计提金额
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java

@ -1,7 +1,12 @@
package com.yxt.anrui.riskcenter.biz.loanpushfundhistory;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryPdfVo;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import org.apache.ibatis.annotations.Mapper;
@ -15,4 +20,10 @@ public interface LoanPushFundHistoryMapper extends BaseMapper<LoanPushFundHistor
int saveLists(@Param("list") List<LoanPushFundHistory> list);
String getLastDateByBusVinSid(@Param("busVinSid") String busVinSid);
IPage<LoanPushFundHistoryVo> listPage(IPage<LoanPushFundHistory> page, @Param(Constants.WRAPPER) QueryWrapper<LoanPushFundHistory> qw);
List<LoanPushFundHistoryPdfVo> getFundPdfList(@Param("times") String times, @Param("useOrgSid") String useOrgSid);
}

54
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml

@ -4,10 +4,60 @@
<insert id="saveLists" parameterType="java.util.List">
insert into loan_push_fund_history(sid,busVinSid,useOrgSid,useOrgName,fund)
insert into loan_push_fund_history(sid,busVinSid,useOrgSid,useOrgName,fund,lastAccrualDate)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.sid},#{item.busVinSid},#{item.useOrgSid},#{item.useOrgName},#{item.fund})
(#{item.sid},#{item.busVinSid},#{item.useOrgSid},#{item.useOrgName},#{item.fund},#{item.lastAccrualDate})
</foreach>
</insert>
<select id="getLastDateByBusVinSid" resultType="java.lang.String">
SELECT
createTime
FROM
loan_push_fund_history
WHERE
busVinSid = #{busVinSid}
ORDER BY
createTime DESC
LIMIT 1
</select>
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryVo">
SELECT SUM(fund) as money,
times
FROM
(SELECT LEFT(createTime,16) as times,h.* FROM loan_push_fund_history as h) a
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getFundPdfList"
resultType="com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryPdfVo">
SELECT
@row_number := @row_number + 1 AS sortNo,
p.loanContractNo AS loanNo,
p.bankName,
p.bankContractNo AS bankNo,
p.vinNo,
p.borrowerName,
p.dept AS saleDept,
a.lastDate,
a.days,
a.money
FROM
(
SELECT LEFT
( h.createTime, 16 ) AS times,
IFNULL( h.fund, 0 ) AS money,
date_format( h.lastAccrualDate, '%Y-%m-%d' ) AS lastDate,
DATEDIFF( h.createTime, h.lastAccrualDate ) AS days,
( SELECT sid FROM loan_repayment_plan_details WHERE policyOrOther = '0' AND busVinSid = h.busVinSid LIMIT 1 ) psid
FROM
loan_push_fund_history AS h
) AS a
LEFT JOIN loan_repayment_plan_details AS p ON p.sid = a.psid,
( SELECT @row_number := 0 ) AS t
WHERE
a.times = #{times}
AND p.useOrgSid = #{useOrgSid}
</select>
</mapper>

23
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java

@ -2,6 +2,12 @@ package com.yxt.anrui.riskcenter.biz.loanpushfundhistory;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryFeign;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryQuery;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
@ -22,4 +28,21 @@ public class LoanPushFundHistoryRest implements LoanPushFundHistoryFeign {
public int saveHistory(List<LoanPushFundHistory> fundHistoryList) {
return loanPushFundHistoryService.saveLists(fundHistoryList);
}
@Override
public ResultBean<PagerVo<LoanPushFundHistoryVo>> listPage(PagerQuery<LoanPushFundHistoryQuery> pq) {
ResultBean<PagerVo<LoanPushFundHistoryVo>> rb = ResultBean.fireFail();
PagerVo<LoanPushFundHistoryVo> pv = loanPushFundHistoryService.listPage(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<String> getLastDateByBusVinSid(String busVinSid) {
return loanPushFundHistoryService.getLastDateByBusVinSid(busVinSid);
}
@Override
public ResultBean<String> fundCreatePdf(String times, String orgPath) {
return loanPushFundHistoryService.fundCreatePdf(times,orgPath);
}
}

153
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java

@ -1,13 +1,34 @@
package com.yxt.anrui.riskcenter.biz.loanpushfundhistory;
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.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryPdfVo;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryQuery;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryVo;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordConvertUtils;
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 java.util.List;
import java.io.File;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import static java.util.Comparator.comparing;
/**
* @description:
@ -17,8 +38,134 @@ import java.util.List;
@Service
public class LoanPushFundHistoryService extends MybatisBaseService<LoanPushFundHistoryMapper, LoanPushFundHistory> {
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private DocPdfComponent docPdfComponent;
public int saveLists(List<LoanPushFundHistory> list) {
return baseMapper.saveLists(list);
}
public PagerVo<LoanPushFundHistoryVo> listPage(PagerQuery<LoanPushFundHistoryQuery> pq) {
LoanPushFundHistoryQuery pagerQuery = pq.getParams();
QueryWrapper<LoanPushFundHistory> qw = new QueryWrapper<>();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(pagerQuery.getOrgPath());
if (orgSidByPath.getSuccess()) {
qw.eq("a.useOrgSid", orgSidByPath.getData());
}
String startDate = pagerQuery.getStartTimes();
String endDate = pagerQuery.getEndTimes();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format(a.times,'%Y-%m-%d %H:%I') >= date_format('" + startDate + "','%Y-%m-%d %H:%I')").
apply(StringUtils.isNotEmpty(endDate), "date_format(a.times,'%Y-%m-%d %H:%I') <= date_format('" + endDate + "','%Y-%m-%d %H:%I')"
);
qw.groupBy("a.times", "a.useOrgSid");
qw.orderByDesc("a.times");
IPage<LoanPushFundHistory> page = PagerUtil.queryToPage(pq);
IPage<LoanPushFundHistoryVo> pagging = baseMapper.listPage(page, qw);
PagerVo<LoanPushFundHistoryVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> getLastDateByBusVinSid(String busVinSid) {
ResultBean rb = ResultBean.fireFail();
String returnTimes = baseMapper.getLastDateByBusVinSid(busVinSid);
if (StringUtils.isNotBlank(returnTimes)) {
return rb.success().setData(returnTimes);
}
return rb.success().setData("");
}
public ResultBean<String> fundCreatePdf(String times, String orgPath) {
ResultBean rb = ResultBean.fireFail();
String finalPath = "";
Map<String, Object> dataMap = new HashMap();
List<Map<String, Object>> newList = new ArrayList<>();
dataMap.put("percent", "日万七");
String useOrgSid = "";
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
if (orgSidByPath.getSuccess()) {
useOrgSid = orgSidByPath.getData();
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
dataMap.put("company", organizationVoData.getName());
}
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date parse = null;
try {
parse = sdf.parse(times);
dataMap.put("times", sdf.format(parse));
} catch (ParseException e) {
e.printStackTrace();
}
List<LoanPushFundHistoryPdfVo> records = baseMapper.getFundPdfList(times, useOrgSid);
if (!records.isEmpty()) {
for (LoanPushFundHistoryPdfVo details : records) {
Map<String, Object> map = new HashMap<>();
if (null != details) {
map.put("sortNo", details.getSortNo());
if (StringUtils.isNotBlank(details.getLoanNo())) {
map.put("loanNo", details.getLoanNo());
}
if (StringUtils.isNotBlank(details.getVinNo())) {
map.put("vinNo", details.getVinNo());
}
if (StringUtils.isNotBlank(details.getBankName())) {
map.put("bankName", details.getBankName());
}
if (StringUtils.isNotBlank(details.getBankNo())) {
map.put("bankNo", details.getBankNo());
}
if (StringUtils.isNotBlank(details.getBorrowerName())) {
map.put("borrowerName", details.getBorrowerName());
}
if (StringUtils.isNotBlank(details.getSaleDept())) {
map.put("saleDept", details.getSaleDept());
}
if (StringUtils.isNotBlank(details.getLastDate())) {
map.put("lastDate", details.getLastDate());
}
if (StringUtils.isNotBlank(details.getDays())) {
map.put("days", details.getDays());
}
if (StringUtils.isNotBlank(details.getMoney())) {
map.put("money", details.getMoney());
}
}
newList.add(map);
}
}
dataMap.put("newList", newList);
String temp = "/template/";
String targetPath = docPdfComponent.getUploadTemplateUrl();
try {
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vouchers/fund.ftl");
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "templateVouchers" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
String pdfName = "资金占用费计提" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
finalPath = temp + pdfName;
} catch (NoClassDefFoundError e) {
e.printStackTrace();
finalPath = targetPath;
}
return rb.success().setData(finalPath);
}
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java

@ -34,6 +34,8 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -164,6 +166,7 @@ public class ScheduledRepaymentPlanDetailsService {
public void pushFundVoucher() {
List<String> useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForFundVoucher();
useOrgSidList.removeAll(Collections.singleton(null));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (!useOrgSidList.isEmpty()) {
for (String u : useOrgSidList) {
List<LoanPlanDetailsVoForFundVoucher> fundVouchers = loanRepaymentPlanDetailsService.getFundForVoucher(u);
@ -255,6 +258,14 @@ public class ScheduledRepaymentPlanDetailsService {
if (null != v.getDuePushMoney()) {
loanPushFundHistory.setFund(v.getDuePushMoney());
}
String times = loanPushFundHistoryService.getLastDateByBusVinSid(v.getBusVinSid()).getData();
if (StringUtils.isNotBlank(times)) {
try {
loanPushFundHistory.setLastAccrualDate(sdf.parse(times));
} catch (ParseException e) {
e.printStackTrace();
}
}
fundHistoryList.add(loanPushFundHistory);
}
generalVoucher.setVoucherDetails(voucherDetails);

19
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java

@ -1213,6 +1213,8 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
* 产品贷款金额 = 融资项目总额-首付金额
* 贷款保证金 = 贷款金额 x 贷款保证金比例
*
* 2024-04-16修改实际首付比例=融资首付-(主车开票价+配件-合同价)/(合同价+挂车+购置税+保险)
*
*/
//是否打包:1是,0否
String isPack = query.getIsPack();
@ -1238,6 +1240,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
}
//(合同价+挂车+购置税+保险)
BigDecimal bilAll = BigDecimal.ZERO;
BigDecimal zhuAll = BigDecimal.ZERO;
bilAll = bilAll.add(orderPrice);
CalculateVo calculateVo = new CalculateVo();
//计算的初始化
@ -1286,12 +1289,14 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
loanTotal = loanTotal.add(new BigDecimal(mainVehicleAmount));
AmountAll = AmountAll.add(new BigDecimal(mainVehicleAmount));
offsetAccessoriesBig = offsetAccessoriesBig.add(new BigDecimal(mainVehicleAmount));
zhuAll = zhuAll.add(new BigDecimal(mainVehicleAmount));
}
if (accessoriesAmountCb) {//包含配件
if (StringUtils.isNotBlank(accessoriesAmount)) {
loanTotal = loanTotal.add(new BigDecimal(accessoriesAmount));
AmountAll = AmountAll.add(new BigDecimal(accessoriesAmount));
offsetAccessoriesBig = offsetAccessoriesBig.add(new BigDecimal(accessoriesAmount));
zhuAll = zhuAll.add(new BigDecimal(accessoriesAmount));
}
}
offsetAccessoriesBig = offsetAccessoriesBig.subtract(orderPrice);
@ -1300,6 +1305,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
if (AmountAll.compareTo(orderPrice) < 0) {
return rb.setMsg("主车发票价与配件之和不能小于订单成交价");
}
zhuAll = zhuAll.subtract(orderPrice);
}
if (trailerAmountCb) {//包含挂车
if (StringUtils.isNotBlank(trailerAmount)) {
@ -1523,8 +1529,11 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
/************************计算融资首付********************************/
calculateVo.setLoanDownPay(loanDownPay.setScale(0, BigDecimal.ROUND_HALF_UP).toString());
//实际首付比例 = (融资首付/融资项目总额)x100
//2024-04-16修改实际首付比例=(融资首付-(主车开票价+配件-合同价))/(合同价+挂车+购置税+保险)
// downPayAmountsRatio = loanDownPay.divide(loanTotal, 4, BigDecimal.ROUND_CEILING).multiply(new BigDecimal("100"));
downPayAmountsRatio = loanDownPay.divide(bilAll, 4, BigDecimal.ROUND_CEILING).multiply(new BigDecimal("100"));
zhuAll = loanDownPay.subtract(zhuAll);
// downPayAmountsRatio = loanDownPay.divide(bilAll, 4, BigDecimal.ROUND_CEILING).multiply(new BigDecimal("100"));
downPayAmountsRatio = zhuAll.divide(bilAll, 4, BigDecimal.ROUND_CEILING).multiply(new BigDecimal("100"));
downPayAmountsRatio = downPayAmountsRatio.setScale(2, BigDecimal.ROUND_HALF_UP);
calculateVo.setDownPayAmountsRatio(downPayAmountsRatio.toString());
if (otherPolicyState) {//包含
@ -2375,17 +2384,17 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
//抵顶首年保险费
StringBuilder offsetPremiumValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getOffsetPremium())) {
offsetPremiumValue = offsetPremiumValue.append("抵顶首年保险费:").append(solutionssVo.getOffsetPremium());
offsetPremiumValue = offsetPremiumValue.append("首年保险费抵顶:").append(solutionssVo.getOffsetPremium());
} else {
offsetPremiumValue = offsetPremiumValue.append("抵顶首年保险费:").append("-");
offsetPremiumValue = offsetPremiumValue.append("首年保险费抵顶:").append("-");
}
//抵顶购置税
StringBuilder offsetPurchasetaxValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getOffsetPurchasetax())) {
offsetPurchasetaxValue = offsetPurchasetaxValue.append("抵顶购置税:").append(solutionssVo.getOffsetPurchasetax());
offsetPurchasetaxValue = offsetPurchasetaxValue.append("购置税抵顶:").append(solutionssVo.getOffsetPurchasetax());
} else {
offsetPurchasetaxValue = offsetPurchasetaxValue.append("抵顶购置税:").append("-");
offsetPurchasetaxValue = offsetPurchasetaxValue.append("购置税抵顶:").append("-");
}
//配件抵顶

1919
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/vouchers/fund.ftl

File diff suppressed because it is too large

731
doc/databases/报表.sql

@ -1,731 +0,0 @@
CREATE
DEFINER = `root`@`%` PROCEDURE `pro_daily_report_update`()
BEGIN
-- 更新库存-未定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState <> '04'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_unreserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-已定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState = '04'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_reserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-小计
UPDATE daily_report
SET stock_subtotal=stock_unreserve + stock_reserve
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-买断-未定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState <> '04'
AND settlementStatus = '2'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_buyout_unreserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-买断-已定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState = '04'
AND settlementStatus = '2'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_buyout_reserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-买断-小计
UPDATE daily_report
SET `stock_buyout_subtotal`=`stock_buyout_unreserve` + `stock_buyout_reserve`
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-排产-未定
UPDATE daily_report r
INNER JOIN (
select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid
from (
select bo.platformNo as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_scm.scm_apply_inbound si on bo.purchaseRequisitionSid = si.vehicleOrderSid
where si.nodeState != '已办结'
and bo.isDelete <> 1
and LENGTH(offlineDate) > 0
and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)
union all
select bo.platformNo as scount, bo.useOrgSid, bd.vehicleSid modelSid, bd.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_base.bus_vehicle_apply_detail bd
on bd.sid = bo.purchaseApplyMediumModelSid
where LENGTH(offlineDate) < 1
and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)) as v
GROUP BY v.`useOrgSid`,
v.`modelSid`,
v.`modelConfigSid`
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`pcOrder_unreserve` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-排产-未定
UPDATE daily_report r
INNER JOIN (
select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid
from (
select bo.platformNo as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_scm.scm_apply_inbound si on bo.purchaseRequisitionSid = si.vehicleOrderSid
where si.nodeState != '已办结'
and bo.isDelete <> 1
and LENGTH(offlineDate) > 0
and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)
union all
select bo.platformNo as scount, bo.useOrgSid, bd.vehicleSid modelSid, bd.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_base.bus_vehicle_apply_detail bd
on bd.sid = bo.purchaseApplyMediumModelSid
where LENGTH(offlineDate) < 1
and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)) as v
GROUP BY v.`useOrgSid`,
v.`modelSid`,
v.`modelConfigSid`
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`pcOrder_unreserve` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-排产已定
UPDATE daily_report r
INNER JOIN (
select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid
from (
select bo.platformNo as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_scm.scm_apply_inbound si on bo.purchaseRequisitionSid = si.vehicleOrderSid
where si.nodeState != '已办结'
and bo.isDelete <> 1
and LENGTH(offlineDate) > 0
and bo.sid in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)
union all
select bo.platformNo as scount, bo.useOrgSid, bd.vehicleSid modelSid, bd.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_base.bus_vehicle_apply_detail bd
on bd.sid = bo.purchaseApplyMediumModelSid
where LENGTH(offlineDate) < 1
and bo.sid in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo)) as v
GROUP BY v.`useOrgSid`,
v.`modelSid`,
v.`modelConfigSid`
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`pcOrder_reserve` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存- 排产小计
UPDATE daily_report r
INNER JOIN (
select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid
from (
select bo.platformNo as scount, si.useOrgSid, si.modelSid, si.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_scm.scm_apply_inbound si on bo.purchaseRequisitionSid = si.vehicleOrderSid
where si.nodeState != '已办结'
and bo.isDelete <> 1
and LENGTH(offlineDate) > 0
union all
select bo.platformNo as scount, bo.useOrgSid, bd.vehicleSid modelSid, bd.configSid modelConfigSid
from anrui_base.bus_vehicle_order bo
left join anrui_base.bus_vehicle_apply_detail bd
on bd.sid = bo.purchaseApplyMediumModelSid
where LENGTH(offlineDate) < 1) as v
GROUP BY v.`useOrgSid`,
v.`modelSid`,
v.`modelConfigSid`
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`pcOrder_subtotal` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 简易订单-每日
UPDATE daily_report r
INNER JOIN (select count(bbv.id) as scount, bbv.modelSid, bbv.modelConfigSid, bbm.orgSid useOrgSid
from anrui_buscenter.bus_main_deposit bbm
left join anrui_buscenter.bus_deposit_vehicle bbv on bbv.billSid = bbm.sid
where bbm.createTime like concat('%', CURDATE(), '%')
GROUP BY `useOrgSid`,
`modelSid`,
`modelConfigSid`
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`simpleOrder_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 简易订单-每月
UPDATE daily_report r
INNER JOIN (select count(bbv.id) as scount, bbv.modelSid, bbv.modelConfigSid, bbm.orgSid useOrgSid
from anrui_buscenter.bus_main_deposit bbm
left join anrui_buscenter.bus_deposit_vehicle bbv on bbv.billSid = bbm.sid
where bbm.createTime like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
GROUP BY `useOrgSid`,
`modelSid`,
`modelConfigSid`
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`simpleOrder_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-本日-小计
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bm.modelSid, bm.modelConfigSid, bo.useOrgSid
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bo.closingDate like concat('%', CURDATE(), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_subtotal_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-本日-全款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bm.modelSid, bm.modelConfigSid, bo.useOrgSid
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bo.closingDate like concat('%', CURDATE(), '%')
and bo.payTypeKey = 1
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_full_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-本日-贷款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bm.modelSid, bm.modelConfigSid, bo.useOrgSid
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bo.closingDate like concat('%', CURDATE(), '%')
and bo.payTypeKey = 2
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_loan_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-本月-小计
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bm.modelSid, bm.modelConfigSid, bo.useOrgSid
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bo.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_subtotal_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-本月-全款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bm.modelSid, bm.modelConfigSid, bo.useOrgSid
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bo.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
and bo.payTypeKey = 1
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_full_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-本月-贷款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bm.modelSid, bm.modelConfigSid, bo.useOrgSid
from anrui_buscenter.bus_sales_order bo
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.salesOrderSid = bo.sid
where bo.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
and bo.payTypeKey = 2
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_loan_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-待交车累计
UPDATE daily_report r
INNER JOIN (select count(bs.id) as scount, bo.useOrgSid, bm.modelSid, bm.modelConfigSid
from anrui_base.base_vehicle_state bs
left join anrui_buscenter.bus_sales_order bo on bo.sid = bs.saleOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
where bs.busState = '401'
and (bs.finState = 1 or bs.carryVehicleState = 1)
group by bo.useOrgSid, bm.modelSid, bm.modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`saleOrder_waitVeh_total` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售
-- 本日销售小计
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
where bv.salesDate like concat('%', CURDATE(), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_subtotal_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本日销售全款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
left join anrui_base.base_vehicle_out bvo on bv.sid = bvo.vinSid
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
where bv.salesDate like concat('%', CURDATE(), '%')
and bvoa.saleTypeKey = '001'
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_full_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本日销售贷款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
left join anrui_base.base_vehicle_out bvo on bv.sid = bvo.vinSid
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
where bv.salesDate like concat('%', CURDATE(), '%')
and bvoa.saleTypeKey = '002'
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_loan_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本月销售小计
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
where bv.salesDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_subtotal_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本月销售全款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
left join anrui_base.base_vehicle_out bvo on bv.sid = bvo.vinSid
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
where bv.salesDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
and bvoa.saleTypeKey = '001'
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_full_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本月销售贷款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
left join anrui_base.base_vehicle_out bvo on bv.sid = bvo.vinSid
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
where bv.salesDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
and bvoa.saleTypeKey = '002'
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_loan_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本年销售小计
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
where bv.salesDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_subtotal_year` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本年销售全款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
left join anrui_base.base_vehicle_out bvo on bv.sid = bvo.vinSid
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
where bv.salesDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
and bvoa.saleTypeKey = '001'
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_full_year` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本年销售贷款
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
left join anrui_base.base_vehicle_out bvo on bv.sid = bvo.vinSid
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
where bv.salesDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
and bvoa.saleTypeKey = '002'
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`sale_loan_year` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本日买断的台数
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
where bv.solidDate like concat('%', CURDATE(), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`buyout_day` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本月买断的台数
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
where bv.solidDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`buyout_month` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 本年买断的台数
UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.modelSid, bv.modelConfigSid, bv.useOrgSid
from anrui_base.base_vehicle bv
where bv.solidDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
group by useOrgSid, modelSid, modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid
AND r.vehMConfigSid = s.modelConfigSid
SET r.`buyout_year` = s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-贷款-本日
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', CURDATE(), '%')
and bo.payTypeKey = '2'
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_loan_day = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-全款-本日
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', CURDATE(), '%')
and bo.payTypeKey = '1'
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_full_day = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-小计-本日
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', CURDATE(), '%')
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_subtotal_day = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-贷款-本月
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
and bo.payTypeKey = '2'
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_loan_month = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-全款-本月
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
and bo.payTypeKey = '1'
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_full_month = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-小计-本月
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y-%m'), '%')
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_subtotal_month = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-贷款-本年
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
and bo.payTypeKey = '2'
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_loan_year = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-全款-本年
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
and bo.payTypeKey = '1'
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_full_year = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 交付-小计-本年
update daily_report r inner join (
select count(bhi.id) as scount, bm.modelSid, bm.modelConfigSid, bh.useOrgSid
from anrui_buscenter.bus_handover_items bhi
left join anrui_buscenter.bus_handover bh on bh.sid = bhi.handoverSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bh.orderSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bhi.vinSid = bv.linkSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bh.orderSid
where bh.closingDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
group by bh.useOrgSid, bm.modelSid, modelConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.modelSid
and r.vehMConfigSid = s.modelConfigSid
set deliver_subtotal_year = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 存销比
update daily_report r inner join (
select ifnull(sum(dr.sale_subtotal_month), 0) as subtotal, dr.useOrgSid, dr.vehModelSid, dr.vehMConfigSid
from daily_report dr
where (DATE_FORMAT(createTime, '%Y-%m') LIKE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')
OR DATE_FORMAT(createTime, '%Y-%m') LIKE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH), '%Y-%m')
OR DATE_FORMAT(createTime, '%Y-%m') LIKE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m')
)
group by dr.useOrgSid, dr.vehModelSid, dr.vehMConfigSid) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.vehModelSid
and r.vehMConfigSid = s.vehMConfigSid
set saleOfStockRatio =if(s.subtotal = 0, stock_subtotal + pcOrder_subtotal,
ROUND((stock_subtotal + pcOrder_subtotal) / ROUND(s.subtotal / 3, 2), 2)),
stock_total = (stock_subtotal + pcOrder_subtotal)
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 欠款出库数量--截止当日欠款出库申请通过且未回清款的台数
update daily_report r inner join (
select count(bdad.id) as scount, ba.useOrgSid, bm.modelConfigSid as vehMConfigSid, bm.modelSid as vehModelSid
from anrui_buscenter.bus_delivered_apply_details bdad
left join anrui_buscenter.bus_delivered_apply ba on ba.sid = bdad.applySid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = bdad.sid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bdad.busVinSid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where ba.nodeState = '已办结'
and ba.typeState = 1
group by bdad.busVinSid, ba.useOrgSid, bm.modelSid, bm.modelConfigSid
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.vehModelSid
and r.vehMConfigSid = s.vehMConfigSid
set arrears_carry_veh_count = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 欠款出库金融--截止当日欠款出库申请通过且未回清款的台数欠款总额
update daily_report r inner join (
select (sum(fd.reveivableMoney) - sum(fs.subscriptionMoney)) as scount,
ba.useOrgSid,
bm.modelConfigSid as vehMConfigSid,
bm.modelSid as vehModelSid
from anrui_buscenter.bus_delivered_apply_details bdad
left join anrui_buscenter.bus_delivered_apply ba on ba.sid = bdad.applySid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = bdad.sid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bo.sid
left join anrui_base.base_vehicle_state bs on bs.busSid = bdad.busVinSid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bdad.busVinSid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where ba.nodeState = '已办结'
and ba.typeState = 1
group by bdad.busVinSid, ba.useOrgSid, bm.modelSid, bm.modelConfigSid
having sum(fd.reveivableMoney) > ifnull(sum(fs.subscriptionMoney), 0)
) s
on r.useOrgSid = s.useOrgSid
and r.vehModelSid = s.vehModelSid
and r.vehMConfigSid = s.vehMConfigSid
set arrears_carry_veh_amount = s.scount
where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 金融未放款数量--- 截止当日贷款业务已出库且融资放款未认款的台数
update daily_report r inner join (
select count(bv.id) as scount, bo.useOrgSid, bm.modelSid, bm.modelConfigSid, fd.reveivableMoney
from anrui_buscenter.bus_sales_order_vehicle bv
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_base.base_vehicle bbv on bbv.sid = bv.linkSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bv.salesOrderSid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bv.sid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where bo.payTypeKey = 2
and fd.receivablesName = '融资放款'
and bbv.vehicleState = '0002'
group by bv.sid, bo.useOrgSid, bm.modelSid, bm.modelConfigSid
having fd.reveivableMoney > ifnull(sum(fs.subscriptionMoney), 0)) as s on
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`loan_not_count`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 金融未放款金额-- 截止当日贷款业务已出库且融资放款未认款的台数融资放款金额之和
update daily_report r inner join (
select sum(fd.reveivableMoney) as scount, bo.useOrgSid, bm.modelSid, bm.modelConfigSid, fd.reveivableMoney
from anrui_buscenter.bus_sales_order_vehicle bv
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_base.base_vehicle bbv on bbv.sid = bv.linkSid
left join anrui_buscenter.bus_sales_order_model bm on bm.salesOrderSid = bv.salesOrderSid
left join anrui_fin.fin_uncollected_receivables_detailed fd on fd.busVinSid = bv.sid
left join anrui_fin.fin_selected_receivables_detailed fs on fs.receivablesSid = fd.sid
where bo.payTypeKey = 2
and fd.receivablesName = '融资放款'
and bbv.vehicleState = '0002'
group by bv.sid, bo.useOrgSid, bm.modelSid, bm.modelConfigSid
having fd.reveivableMoney > ifnull(sum(fs.subscriptionMoney), 0)) as s on
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`loan_not_amount`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 全年厂家开票数
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE manDate like concat('%', DATE_FORMAT(CURDATE(), '%Y'), '%')
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`manufacturer_invoicing_year`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
END

1144
doc/databases/报表中心.sql

File diff suppressed because it is too large

77
doc/databases/报表新增修改.sql

@ -1,77 +0,0 @@
INSERT INTO daily_report(busOrgSid, busOrgName, useOrgSid, useOrgName, brandSid, brandName, vehModelSid, vehMConfigSid)
SELECT DISTINCT o.`psid` AS busOrgSid,
op.`name` AS busOrgName,
o.`sid` AS useOrgSid,
o.`name` AS useOrgName,
m.`carBrand` AS brandSid,
m.`brandName` AS brandName,
bv.`modelSid` AS vehModelSid,
bv.`modelConfigSid` AS vehMConfigSid
FROM anrui_base.`base_vehicle` bv
LEFT JOIN anrui_base.`base_vehicle_model` m ON m.sid = bv.`modelSid`
LEFT JOIN anrui_portal.`sys_organization` o ON bv.`useOrgSid` = o.`sid`
JOIN anrui_portal.`sys_organization` op ON op.sid = o.`psid`
WHERE bv.vehicleState != '0004'
AND bv.isDelete != 1;
-- 修改
-- 更新库存-未定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState <> '02'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_unreserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-已定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState = '02'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_reserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-小计
UPDATE daily_report
SET stock_subtotal=stock_unreserve + stock_reserve
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-买断-未定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState <> '02'
AND settlementStatus = '2'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_buyout_unreserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-买断-已定
UPDATE daily_report r INNER JOIN (SELECT COUNT(id) AS scount, `useOrgSid`, `modelSid`, `modelConfigSid`
FROM anrui_base.`base_vehicle`
WHERE vehicleState <> '0002'
AND vehicleState <> '0004'
AND vehicleState <> '0007'
AND isDelete <> 1
AND lockedState = '02'
AND settlementStatus = '2'
GROUP BY `useOrgSid`, `modelSid`, `modelConfigSid`) AS s ON
r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.modelSid AND r.vehMConfigSid = s.modelConfigSid
SET r.`stock_buyout_reserve`=s.scount
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 更新库存-买断-小计
UPDATE daily_report
SET `stock_buyout_subtotal`=`stock_buyout_unreserve` + `stock_buyout_reserve`
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();

10
doc/databases/统计报表.sql

@ -0,0 +1,10 @@
CREATE DEFINER=`root`@`%` PROCEDURE `pro_daily_report`()
BEGIN
-- 创建数据过程
CALL pro_daily_report_create();
-- 更新数据过程
CALL pro_daily_report_update();
-- 清理所有为0的数据过程
CALL pro_daily_report_clear();
END

7
doc/databases/统计报表clear.sql

@ -0,0 +1,7 @@
CREATE DEFINER=`root`@`%` PROCEDURE `pro_daily_report_clear`()
BEGIN
-- 清理所有数据为0的记录
DELETE FROM `daily_report` WHERE `stock_total`=0 AND `stock_subtotal`=0 AND `simpleOrder_month`=0 AND `saleOrder_subtotal_month`=0 AND `saleOrder_waitVeh_total`=0 AND `sale_subtotal_year`=0 AND `deliver_subtotal_year`=0 AND `manufacturer_invoicing_year`=0 AND `buyout_year`=0 AND `arrears_carry_veh_count`=0 AND `loan_not_count`=0 and saleAllToThree = 0;
-- 删除临时表中数据
DELETE FROM daily_report_temp;
END

16
doc/databases/统计报表create.sql

@ -0,0 +1,16 @@
CREATE DEFINER=`root`@`%` PROCEDURE `pro_daily_report_create`()
BEGIN
-- 生成记录,从车辆台账中获取非厂家退车和删除的车型、配置
-- INSERT INTO daily_report(busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid,vehModeName,vehMConfigName ) SELECT o.`psid` AS busOrgSid,op.`name` AS busOrgName,mc.`useOrgSid`,o.`name` AS useOrgName,m.`carBrand` AS brandSid,m.`brandName`,mc.`modelSid` AS vehModelSid,mc.`configurationItemsSid` AS vehMConfigSid,m.`modelName` AS vehModeName,c.`configName` AS vehMConfigName FROM anrui_base.`base_vehmodel_config` mc JOIN anrui_base.`base_model_config` c ON c.sid=mc.`configurationItemsSid` JOIN anrui_base.`base_vehicle_model` m ON m.sid=mc.`modelSid` JOIN anrui_portal.`sys_organization` o ON mc.`useOrgSid`=o.`sid` JOIN anrui_portal.`sys_organization` op ON op.sid=o.`psid`;
-- INSERT INTO daily_report(busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid) SELECT DISTINCT o.`psid` AS busOrgSid,op.`name` AS busOrgName,bv.`useOrgSid`,bv.`useOrgName`,bv.`carBrandSid` AS brandSid,bv.`carBrandName` AS brandName,bv.`modelSid` AS vehModelSid,bv.`modelConfigSid` AS vehMConfigSid FROM anrui_base.`base_vehicle` bv JOIN anrui_portal.`sys_organization` o ON bv.`useOrgSid`=o.`sid` JOIN anrui_portal.`sys_organization` op ON op.sid=o.`psid` WHERE bv.vehicleState!='0004' AND bv.isDelete!=1;
-- INSERT INTO daily_report(busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid) SELECT DISTINCT o.`psid` AS busOrgSid,op.`name` AS busOrgName,o.`sid` as useOrgSid,o.`name` as useOrgName,bv.`carBrandSid` AS brandSid,bv.`carBrandName` AS brandName,bv.`modelSid` AS vehModelSid,bv.`modelConfigSid` AS vehMConfigSid FROM anrui_base.`base_vehicle` bv JOIN anrui_portal.`sys_organization` o ON bv.`useOrgSid`=o.`sid` JOIN anrui_portal.`sys_organization` op ON op.sid=o.`psid` WHERE bv.vehicleState!='0004' AND bv.isDelete!=1;
-- 插入当天日期数据前,先删除当天的旧数据
DELETE FROM daily_report WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 从车辆台账中生成数据,到临时表中
INSERT INTO daily_report_temp(busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid) SELECT DISTINCT o.`psid` AS busOrgSid,op.`name` AS busOrgName,o.`sid` AS useOrgSid,o.`name` AS useOrgName,m.`carBrand` AS brandSid,m.`brandName` AS brandName,bv.`modelSid` AS vehModelSid,bv.`modelConfigSid` AS vehMConfigSid FROM anrui_base.`base_vehicle` bv LEFT JOIN anrui_base.`base_vehicle_model` m ON m.sid=bv.`modelSid` LEFT JOIN anrui_portal.`sys_organization` o ON bv.`useOrgSid`=o.`sid` JOIN anrui_portal.`sys_organization` op ON op.sid=o.`psid` WHERE bv.vehicleState!='0004' AND bv.isDelete!=1;
-- 再从厂家采购订单中获取排产中的数据到临时表中
INSERT INTO daily_report_temp(busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid) SELECT DISTINCT o.`psid` AS busOrgSid,op.`name` AS busOrgName,o.`sid` AS useOrgSid,o.`name` AS useOrgName,va.`carBrandSid`AS brandSid,va.`carBrandName` AS brandName,vad.`vehicleSid` AS vehModelSid,vad.`configSid` AS vehMConfigSid FROM anrui_base.`bus_vehicle_apply_detail` vad JOIN anrui_base.`bus_vehicle_apply` va ON va.sid=vad.`applySid` JOIN anrui_portal.`sys_organization` o ON va.`createOrgSid`=o.`sid` JOIN anrui_portal.`sys_organization` op ON op.sid=o.`psid` WHERE va.`nodeState`='已办结';
-- 把临时表中数据去重后,插入到正式表
INSERT INTO daily_report(busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid) SELECT DISTINCT busOrgSid,busOrgName,useOrgSid,useOrgName,brandSid,brandName,vehModelSid,vehMConfigSid FROM daily_report_temp;
END

1622
doc/databases/统计报表update.sql

File diff suppressed because it is too large

3
工作内容需要的文档/单据模板/财务凭证打印模板/计提资金占用费/fund.ftl

File diff suppressed because one or more lines are too long

25
工作内容需要的文档/单据模板/财务凭证打印模板/计提资金占用费/计提资金占用费.docx

@ -0,0 +1,25 @@
资金占用费计提
${company!}
计提率:${percent!}
计提时间:${times!}
计提明细
序号
贷款合同号
资方
资方合同号
车架号
贷款人
销售部门
上次计提日期
计提天数
本次计提金额
${list.sortNo!}
${list.loanNo!}
${list.bankName!}
${list.bankNo!}
${list.vinNo!}
${list.borrowerName!}
${list.saleDept!}
${list.lastDate!}
${list.days!}
${list.money!}
Loading…
Cancel
Save