diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java index 39ce1b4ba3..8b8798fc70 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java @@ -237,8 +237,8 @@ public class BaseModelModpriceService extends MybatisBaseService diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java index a88e59ca6d..158926c7f5 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java @@ -616,7 +616,7 @@ public class DailyReportService extends MybatisBaseService saveOrUpdate(@RequestBody LoanOverdueBankDto dto); - /* @ApiOperation("详情初始化") - @PostMapping("/details2") - ResultBean details(@RequestParam("sid") String sid);*/ - @ApiOperation("详情初始化") @PostMapping("/details") ResultBean details2(LoanOverdueBankDetailsQuery query); diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ExcelFinVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ExcelFinVo.java index cf4042a69d..8d7885ab62 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ExcelFinVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ExcelFinVo.java @@ -12,6 +12,8 @@ import lombok.Data; @Data public class ExcelFinVo { + @ApiModelProperty("财务中客户编码") + private String customerNo; @ApiModelProperty("客户名称") private String customerName; @ApiModelProperty("车架号") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java index d15087e3ff..eb925a6d7a 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java @@ -15,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import java.io.IOException; import java.util.List; /** @@ -37,10 +38,6 @@ public interface LoanOverdueFinFeign { @PostMapping("/saveOrUpdate") ResultBean saveOrUpdate(@RequestBody LoanOverdueFinDto dto); - /* @ApiOperation("详情初始化2") - @PostMapping("/details2") - ResultBean details(@RequestParam("sid") String sid); -*/ @ApiOperation("详情初始化") @PostMapping("/details") ResultBean details2(LoanOverdueFinDetailsQuery query); @@ -51,7 +48,7 @@ public interface LoanOverdueFinFeign { @ApiOperation(value = "导入") @PostMapping("/getExcelInfo") - ResultBean> getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request); + ResultBean> getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request) throws IOException; @ApiOperation("删除/批量删除") @DeleteMapping("/delBySids") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ReturnExcelFinVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ReturnExcelFinVo.java new file mode 100644 index 0000000000..1cf0b06458 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ReturnExcelFinVo.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.api.loanoverduefin; + +import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.BePadsincereExcelInfo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/11 + **/ +@Data +public class ReturnExcelFinVo { + + private String checkInfo; + private List infos = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java index cf971fd462..cb74b8620a 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java @@ -58,5 +58,7 @@ public class LoanRedemptionApply extends BaseEntity { private String borrowerName; @ApiModelProperty("本次还款金额") private BigDecimal amount; + @ApiModelProperty("赎回方案") + private String plan; } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java index 0345531980..51208b1214 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java @@ -47,11 +47,6 @@ public class LoanOverdueBankRest implements LoanOverdueBankFeign { return loanOverdueBankService.saveOrUpdateBank(dto); } -// @Override -// public ResultBean details(String sid) { -// return loanOverdueBankService.details(sid); -// } - @Override public ResultBean details2(LoanOverdueBankDetailsQuery query) { return loanOverdueBankService.details2(query); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java index c10b284533..09fea8c20f 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java @@ -20,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; @@ -52,11 +53,6 @@ public class LoanOverdueFinRest implements LoanOverdueFinFeign { return loanOverdueFinService.saveOrUpdateOver(dto); } -// @Override -// public ResultBean details(String sid) { -// return loanOverdueFinService.details(sid); -// } - @Override public ResultBean details2(LoanOverdueFinDetailsQuery query) { return loanOverdueFinService.details2(query); @@ -77,8 +73,8 @@ public class LoanOverdueFinRest implements LoanOverdueFinFeign { } @Override - public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request) { - return loanOverdueFinService.getExcelInfo(file,request); + public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException { + return loanOverdueFinService.getExcelInfo(file, request); } @Override diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java index 0d45a50ede..313ba266cf 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java @@ -22,11 +22,13 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.ReturnExcelInfo; import com.yxt.anrui.riskcenter.api.loanoverduefin.*; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import com.yxt.anrui.riskcenter.biz.loanoverduefindetails.LoanOverdueFinDetailsService; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; @@ -38,12 +40,21 @@ import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -603,7 +614,7 @@ public class LoanOverdueFinService extends MybatisBaseService detailsList(String useOrgSid, String stopDate) { QueryWrapper qw = new QueryWrapper(); - qw.eq("1",1); + qw.eq("1", 1); qw.groupBy("a1.vinNo"); qw.groupBy("a1.busVinSid"); List detailsDtoList = baseMapper.detailsList(useOrgSid, qw, stopDate); @@ -611,7 +622,181 @@ public class LoanOverdueFinService extends MybatisBaseService> getExcelInfo(MultipartFile file, HttpServletRequest request) { - return null; + public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException { + ResultBean rb = ResultBean.fireFail(); + String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录 + File tempFile = new File(temp); + if (!tempFile.exists()) { + tempFile.mkdirs(); + } + String fileName = file.getOriginalFilename(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + return rb.fail().setMsg("上传文件不正确"); + } + int[] resultCell = new int[]{0, 1, 2, 3}; + List list = new ArrayList<>(); + List list2 = new ArrayList<>(); + boolean isExcel2003 = true; + if (fileName.matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + InputStream is = file.getInputStream(); + Workbook wb = null; + if (isExcel2003) { + wb = new HSSFWorkbook(is); + } else { + wb = new XSSFWorkbook(is); + } + Sheet sheet = wb.getSheetAt(0); + ReturnExcelFinVo importReturn = getSheetVal(sheet, resultCell); + list = importReturn.getInfos(); + for (ExcelFinVo excelFinVo : list) { + String customerName = excelFinVo.getCustomerName(); + customerName = customerName.substring(0, customerName.length() - 8); + excelFinVo.setCustomerName(customerName); + list2.add(excelFinVo); + } + if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { + return rb.setMsg(importReturn.getCheckInfo()); + } else { + return rb.success().setData(list2).setMsg("成功导入数据,请点击确定按钮"); + } + } + + private ReturnExcelFinVo getSheetVal(Sheet sheet, int[] resultCell) { + ReturnExcelFinVo returnExcelFinVo = new ReturnExcelFinVo(); + List importVoList = new ArrayList<>(); + Set checkWord = new HashSet<>(); + for (int r = 0; r < sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + ExcelFinVo excelFinVo = new ExcelFinVo(); + for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) { + String trim = new String(); + try { + trim = getCellVal(row.getCell(i)).toString().trim(); + if (StringUtils.isBlank(trim)) { + NullPointerException nullPointerException = new NullPointerException(); + } + String temp = getCellVal(row.getCell(i)).toString().trim(); + temp = temp.replace(".0", ""); + for (int j = 0; j < temp.length(); j++) { + if (i == resultCell[j]) { + switch (i) { + case 0: + excelFinVo.setCustomerNo(temp); + break; + case 1: + excelFinVo.setCustomerName(temp); + break; + case 2: + excelFinVo.setVinNo(temp); + break; + case 3: + excelFinVo.setTiredDeficiency(temp); + break; + default: + break; + } + + } else { + continue; + } + } + } catch (Exception e) { + if (StringUtils.isBlank(trim)) { + String word = new String(); + switch (i) { + case 0: + word = "客户编码"; + break; + case 1: + word = "客户名称"; + break; + case 2: + word = "车架号"; + break; + case 3: + word = "财务累欠金额"; + default: + break; + } + continue; + } + + } + + } + importVoList.add(excelFinVo); + + } + if (!importVoList.isEmpty()) { + for (ExcelFinVo excelFinVo : importVoList) { + if (StringUtils.isBlank(excelFinVo.getCustomerNo())) { + checkWord.add("客户编码不能为空"); + } + if (StringUtils.isBlank(excelFinVo.getCustomerName())) { + checkWord.add("客户名称不能为空"); + } + if (StringUtils.isBlank(excelFinVo.getVinNo())) { + checkWord.add("车架号不能为空"); + } + if (StringUtils.isBlank(excelFinVo.getTiredDeficiency())) { + checkWord.add("财务累欠金额不能为空"); + } + List loanRepaymentScheduleDetailsVos = loanOverdueFinDetailsService.selectByCustomerNo(excelFinVo.getCustomerNo()); + loanRepaymentScheduleDetailsVos.removeAll(Collections.singleton(null)); + if (loanRepaymentScheduleDetailsVos.isEmpty()) { + if (StringUtils.isNotBlank(excelFinVo.getCustomerNo())) { + checkWord.add("客户编码" + excelFinVo.getCustomerNo() + "在还款计划表中不存在"); + break; + } + } + } + } + StringBuffer sbcheck1 = new StringBuffer(); + if (!checkWord.isEmpty()) { + for (String s : checkWord) { + if (StringUtils.isBlank(s)) { + continue; + } + sbcheck1.append(s).append(";"); + } + } + if (sbcheck1.length() > 0) { + sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); + returnExcelFinVo.setCheckInfo(sbcheck1.toString()); + returnExcelFinVo.setInfos(new ArrayList<>()); + return returnExcelFinVo; + } + returnExcelFinVo.setInfos(importVoList); + return returnExcelFinVo; + } + + + public Object getCellVal(Cell cell) { + Object obj = null; + if (cell != null) { + switch (cell.getCellTypeEnum()) { + case BOOLEAN: + obj = cell.getBooleanCellValue(); + break; + case ERROR: + obj = cell.getErrorCellValue(); + break; + case NUMERIC: + obj = cell.getNumericCellValue(); + break; + case STRING: + obj = cell.getStringCellValue(); + break; + default: + break; + } + } + return obj; } + } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.java index 7ac09d366c..107dd840ed 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.java @@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loanoverduefindetails; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetails; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -17,4 +18,6 @@ public interface LoanOverdueFinDetailsMapper extends BaseMapper selectByMainSid(String sid); + + List selectByCustomerNo(String customerNo); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.xml index dd79e8300d..126987cf4b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.xml @@ -22,4 +22,12 @@ from loan_overdue_fin_details where mainSid = #{sid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsService.java index 472545fcbd..8fd97e0377 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsService.java @@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loanoverduefindetails; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetails; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.core.result.ResultBean; import org.springframework.stereotype.Service; @@ -33,4 +34,8 @@ public class LoanOverdueFinDetailsService extends MybatisBaseService selectByCustomerNo(String customerNo) { + return baseMapper.selectByCustomerNo(customerNo); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java index 6a75a67626..6210a9b19f 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java @@ -48,6 +48,7 @@ import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordS import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; +import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -109,7 +110,8 @@ public class LoanRedemptionApplyService extends MybatisBaseService listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); LoanRedemptionApplyQuery pagerQuery = pq.getParams(); @@ -226,6 +228,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService '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(); +-- 更新库存-排产-未定 + UPDATE daily_report r + INNER JOIN ( + select sum(v.scount) as scount, v.useOrgSid, v.modelSid, v.modelConfigSid + from ( + select ifnull(sum(si.num), 0) 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 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) + group by bo.createOrgSid + union all + select ifnull(sum(bo.platformNo), 0) as scount, + bo.useOrgSid, + bd.vehicleSid, + 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 bo.isDelete <> 1 + and LENGTH(offlineDate) = 0 + and bo.orderStatus != '已作废' + and bo.sid not in (select bbbbo.linkSid from anrui_buscenter.bus_sales_vehicle_order bbbbo) + group by bo.createOrgSid + ) 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 si.useOrgSid, + si.modelSid, + si.configSid modelConfigSid, + bo.sid, + ifnull(ab.counts, 0) as scount + FROM anrui_base.bus_vehicle_order bo + LEFT JOIN anrui_scm.scm_apply_inbound si ON bo.purchaseRequisitionSid = si.vehicleOrderSid + LEFT JOIN ( + SELECT bbbbo.linkSid, + ifnull(count(bbbbo.linkSid), 0) as counts + FROM anrui_buscenter.bus_sales_vehicle_order bbbbo + LEFT JOIN anrui_buscenter.bus_sales_order bb ON bb.sid = bbbbo.salesOrderSid + WHERE LENGTH(bb.nodeState) > 0 + AND bb.nodeState != '终止' + group by bbbbo.linkSid + ) ab ON ab.linkSid = bo.sid + WHERE (si.nodeState != '已办结' AND si.nodeState != '终止') + AND bo.isDelete <> 1 + AND LENGTH(offlineDate) > 0 + group by bo.createOrgSid + ) 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 + SET pcOrder_subtotal=pcOrder_reserve + pcOrder_unreserve + 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(), '%') + and bbm.nodeState = '已办结' + 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'), '%') + and bbm.nodeState = '已办结' + 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(), '%') + and bo.payTypeKey = 1 + and bo.nodeState = '已办结' + 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 + and bo.nodeState = '已办结' + 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 + SET saleOrder_subtotal_day=saleOrder_loan_day + saleOrder_full_day + 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 + and bo.nodeState = '已办结' + 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 + and bo.nodeState = '已办结' + 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 + SET saleOrder_subtotal_month=saleOrder_loan_month + saleOrder_full_month + WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + +-- 销售订单-待交车累计 + UPDATE daily_report r + INNER JOIN (select count(bv.id) as scount, bv.useOrgSid, bv.modelSid, bv.modelConfigSid, bo.contractNo + from anrui_base.base_vehicle bv + left join anrui_buscenter.bus_sales_order_vehicle bov on bov.linkSid = bv.sid + left join anrui_buscenter.bus_sales_order bo on bo.sid = bov.salesOrderSid + where bo.nodeState = '已办结' + and (bv.vehicleState = '0001' or bv.vehicleState = '0005') + group by bo.useOrgSid, bv.modelSid, bv.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 sum(ss.scount) as scount, ss.modelSid, ss.modelConfigSid, ss.useOrgSid + from (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' + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + group by ss.useOrgSid, ss.modelSid, ss.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 sum(ss.scount) as scount, ss.modelSid, ss.modelConfigSid, ss.useOrgSid + from (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' + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + group by ss.useOrgSid, ss.modelSid, ss.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 + SET sale_subtotal_day=sale_loan_day + sale_full_day + WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + + +-- 本月销售全款 + UPDATE daily_report r + INNER JOIN (select sum(ss.scount) as scount, ss.modelSid, ss.modelConfigSid, ss.useOrgSid + from (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' + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + group by ss.useOrgSid, ss.modelSid, ss.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 sum(ss.scount) as scount, ss.modelSid, ss.modelConfigSid, ss.useOrgSid + from (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' + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + group by ss.useOrgSid, ss.modelSid, ss.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 + SET sale_subtotal_month=sale_loan_month + sale_full_month + WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + + +-- 本年销售全款 + UPDATE daily_report r + INNER JOIN (select sum(ss.scount) as scount, ss.modelSid, ss.modelConfigSid, ss.useOrgSid + from (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' + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + group by ss.useOrgSid, ss.modelSid, ss.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 sum(ss.scount) as scount, ss.modelSid, ss.modelConfigSid, ss.useOrgSid + from (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' + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + group by ss.useOrgSid, ss.modelSid, ss.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 + SET sale_subtotal_year=sale_loan_year + sale_full_year + 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 + SET deliver_subtotal_day=deliver_full_day + deliver_loan_day + 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 + SET deliver_subtotal_month=deliver_full_month + deliver_loan_month + 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 + SET deliver_subtotal_year=deliver_full_year + deliver_loan_year + WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + + +-- 存销比 + update daily_report r inner join ( + select ddr.useOrgSid, + ddr.vehModelSid, + ddr.vehMConfigSid, + (select ifnull(sum(ss.scount), 0) as scount + from (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 (DATE_FORMAT(bv.salesDate, '%Y-%m') LIKE + DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') + OR DATE_FORMAT(bv.salesDate, '%Y-%m') LIKE + DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH), '%Y-%m') + OR DATE_FORMAT(bv.salesDate, '%Y-%m') LIKE + DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m') + ) + and (bvoa.saleTypeKey = '001' or bvoa.saleTypeKey = '002') + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + where ss.useOrgSid = ddr.useOrgSid + and ss.modelSid = ddr.vehModelSid + and ss.modelConfigSid = ddr.vehMConfigSid) as subtotal + from daily_report ddr + where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE() + group by ddr.useOrgSid, ddr.vehModelSid, ddr.vehMConfigSid + ) s + on r.useOrgSid = s.useOrgSid + and r.vehModelSid = s.vehModelSid + and r.vehMConfigSid = s.vehMConfigSid + set saleOfStockRatio =if(ROUND(s.subtotal / 3, 2) = 0, + stock_subtotal + pcOrder_subtotal, + ROUND((stock_subtotal + pcOrder_subtotal) / ROUND(s.subtotal / 3, 2), 2)) + where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + +-- 前三个月的销售台数之和 + update daily_report r inner join ( + select ddr.useOrgSid, + ddr.vehModelSid, + ddr.vehMConfigSid, + (select ifnull(sum(ss.scount), 0) as scount + from (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 (DATE_FORMAT(bv.salesDate, '%Y-%m') LIKE + DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') + OR DATE_FORMAT(bv.salesDate, '%Y-%m') LIKE + DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH), '%Y-%m') + OR DATE_FORMAT(bv.salesDate, '%Y-%m') LIKE + DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m') + ) + and (bvoa.saleTypeKey = '001' or bvoa.saleTypeKey = '002') + and (bvo.materialTypeKey = '001' or bvo.materialTypeValue is null or + length(bvo.materialTypeValue) = 0) + group by bv.useOrgSid, bv.modelSid, bv.modelConfigSid) ss + where ss.useOrgSid = ddr.useOrgSid + and ss.modelSid = ddr.vehModelSid + and ss.modelConfigSid = ddr.vehMConfigSid) as subtotal + from daily_report ddr + where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE() + group by ddr.useOrgSid, ddr.vehModelSid, ddr.vehMConfigSid + ) s + on r.useOrgSid = s.useOrgSid + and r.vehModelSid = s.vehModelSid + and r.vehMConfigSid = s.vehMConfigSid + set saleAllToThree =s.subtotal + where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + + +-- 库存小计 + update daily_report + set stock_total = (stock_subtotal + pcOrder_subtotal) + where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + +-- 欠款出库数量--截止当日欠款出库申请通过且未回清款的台数 + update daily_report r inner join (SELECT SUM(cc.scount) AS scount, + cc.useOrgSid, + cc.vehMConfigSid, + cc.vehModelSid + FROM ( + SELECT COUNT(a.id) AS scount, + a.useOrgSid, + a.NAME, + a.contractNo, + a.vehMConfigSid, + a.vehModelSid + FROM ( + SELECT bdad.id, + ba.useOrgSid, + bm.modelConfigSid AS vehMConfigSid, + bm.modelSid AS vehModelSid, + so.NAME, + SUM(s.reveivableMoney), + SUM(s.subscriptionMoney), + bo.contractNo + 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.busVinSid + 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 ( + SELECT fd.reveivableMoney, + fd.busVinSid, + IFNULL(SUM(fs.subscriptionMoney), 0) AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + LEFT JOIN anrui_fin.fin_selected_receivables_detailed fs + ON fs.receivablesSid = fd.sid + WHERE fd.kxState = '01' + AND fs.auditState = 3 + GROUP BY fd.sid + UNION ALL + SELECT fd.reveivableMoney, + fd.busVinSid, + 0 AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + left join (select fs.* + from anrui_fin.fin_selected_receivables_detailed fs + where fs.auditState = 3) s + on s.receivablesSid = fd.sid + WHERE fd.kxState = '01' + and s.id is null + GROUP BY fd.sid + ) s ON s.busVinSid = bv.sid + LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid + WHERE ba.nodeState = '已办结' + AND ba.typeState = 1 + GROUP BY bv.sid, + ba.useOrgSid, + bm.modelSid, + bm.modelConfigSid + HAVING SUM(s.reveivableMoney) > SUM(s.subscriptionMoney)) a + GROUP BY a.useOrgSid, + a.vehMConfigSid, + a.vehModelSid + UNION ALL + SELECT COUNT(a.id) AS scount, + a.useOrgSid, + a.name, + a.contractNo, + a.vehMConfigSid, + a.vehModelSid + FROM (SELECT bdad.id, + ba.useOrgSid, + bm.modelConfigSid AS vehMConfigSid, + bm.modelSid AS vehModelSid, + so.name, + SUM(s.reveivableMoney), + SUM(s.subscriptionMoney), + bo.contractNo + FROM anrui_buscenter.bus_arrears_carry_vehicle_details bdad + LEFT JOIN anrui_buscenter.bus_arrears_carry_vehicle_apply ba + ON ba.sid = bdad.applySid + LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv ON bv.linkSid = bdad.vinSid + 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 bbv ON bbv.sid = bv.linkSid + LEFT JOIN (SELECT fd.reveivableMoney, + fd.busVinSid, + IFNULL(SUM(fs.subscriptionMoney), 0) AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + LEFT JOIN anrui_fin.fin_selected_receivables_detailed fs + ON fs.receivablesSid = fd.sid + WHERE fd.kxState = '01' + AND fs.auditState = 3 + GROUP BY fd.sid + UNION ALL + SELECT fd.reveivableMoney, + fd.busVinSid, + 0 AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + left join (select fs.* + from anrui_fin.fin_selected_receivables_detailed fs + where fs.auditState = 3) s + on s.receivablesSid = fd.sid + WHERE fd.kxState = '01' + and s.id is null + GROUP BY fd.sid + ) s ON s.busVinSid = bv.sid + LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid + WHERE ba.nodeState = '已办结' + AND ba.paymentMethodKey = 1 + AND bbv.vehicleState = '0002' + GROUP BY bv.sid, + ba.useOrgSid, + bm.modelSid, + bm.modelConfigSid + HAVING SUM(s.reveivableMoney) > SUM(s.subscriptionMoney)) a + GROUP BY a.useOrgSid, + a.vehMConfigSid, a.vehModelSid) cc + GROUP BY cc.useOrgSid, + cc.vehMConfigSid, + cc.vehModelSid + ) 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(cc.scount) AS scount, + cc.useOrgSid, + cc.vehMConfigSid, + cc.vehModelSid + FROM ( + SELECT SUM(a.scount) AS scount, + a.useOrgSid, + a.NAME, + a.contractNo, + a.vehMConfigSid, + a.vehModelSid + FROM ( + SELECT bdad.id, + ba.useOrgSid, + bm.modelConfigSid AS vehMConfigSid, + bm.modelSid AS vehModelSid, + so.NAME, + SUM(s.reveivableMoney), + SUM(s.subscriptionMoney), + bo.contractNo, + ( + SUM(s.reveivableMoney) - SUM(s.subscriptionMoney)) AS scount + 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.busVinSid + 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 ( + SELECT fd.reveivableMoney, + fd.busVinSid, + IFNULL(SUM(fs.subscriptionMoney), 0) AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + LEFT JOIN anrui_fin.fin_selected_receivables_detailed fs + ON fs.receivablesSid = fd.sid + WHERE fd.kxState = '01' + AND fs.auditState = 3 + GROUP BY fd.sid + UNION ALL + SELECT fd.reveivableMoney, + fd.busVinSid, + 0 AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + left join (select fs.* + from anrui_fin.fin_selected_receivables_detailed fs + where fs.auditState = 3) s + on s.receivablesSid = fd.sid + WHERE fd.kxState = '01' + and s.id is null + GROUP BY fd.sid + ) s ON s.busVinSid = bv.sid + LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid + WHERE ba.nodeState = '已办结' + AND ba.typeState = 1 + GROUP BY bv.sid, + ba.useOrgSid, + bm.modelSid, + bm.modelConfigSid + HAVING SUM(s.reveivableMoney) > SUM(s.subscriptionMoney)) a + GROUP BY a.useOrgSid, + a.vehMConfigSid, + a.vehModelSid + UNION ALL + SELECT SUM(a.scount) AS scount, + a.useOrgSid, + a.NAME, + a.contractNo, + a.vehMConfigSid, + a.vehModelSid + FROM ( + SELECT bdad.id, + ba.useOrgSid, + bm.modelConfigSid AS vehMConfigSid, + bm.modelSid AS vehModelSid, + so.NAME, + SUM(s.reveivableMoney), + SUM(s.subscriptionMoney), + bo.contractNo, + ( + SUM(s.reveivableMoney) - SUM(s.subscriptionMoney)) AS scount + FROM anrui_buscenter.bus_arrears_carry_vehicle_details bdad + LEFT JOIN anrui_buscenter.bus_arrears_carry_vehicle_apply ba + ON ba.sid = bdad.applySid + LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv ON bv.linkSid = bdad.vinSid + 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 bbv ON bbv.sid = bv.linkSid + LEFT JOIN ( + SELECT fd.reveivableMoney, + fd.busVinSid, + IFNULL(SUM(fs.subscriptionMoney), 0) AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + LEFT JOIN anrui_fin.fin_selected_receivables_detailed fs + ON fs.receivablesSid = fd.sid + WHERE fd.kxState = '01' + AND fs.auditState = 3 + GROUP BY fd.sid + UNION ALL + SELECT fd.reveivableMoney, + fd.busVinSid, + 0 AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + left join (select fs.* + from anrui_fin.fin_selected_receivables_detailed fs + where fs.auditState = 3) s + on s.receivablesSid = fd.sid + WHERE fd.kxState = '01' + and s.id is null + GROUP BY fd.sid + ) s ON s.busVinSid = bv.sid + LEFT JOIN anrui_portal.sys_organization so ON so.sid = ba.useOrgSid + WHERE ba.nodeState = '已办结' + AND ba.paymentMethodKey = 1 + AND bbv.vehicleState = '0002' + GROUP BY bv.sid, + ba.useOrgSid, + bm.modelSid, + bm.modelConfigSid + HAVING SUM(s.reveivableMoney) > SUM(s.subscriptionMoney)) a + GROUP BY a.useOrgSid, + a.vehMConfigSid, + a.vehModelSid + ) cc + GROUP BY cc.useOrgSid, + cc.vehMConfigSid, + cc.vehModelSid + ) s + on r.useOrgSid = s.useOrgSid + and r.vehModelSid = s.vehModelSid + and r.vehMConfigSid = s.vehMConfigSid + set arrears_carry_veh_amount = ROUND(s.scount / 10000, 2) + where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + + +-- 金融未放款数量--- 截止当日贷款业务已出库且融资放款未认款的台数 + update daily_report r inner join ( + SELECT count(a.id) AS scount, + a.useOrgSid, + a.NAME, + a.contractNo, + a.vehMConfigSid, + a.vehModelSid + FROM (SELECT bv.id, + bo.useOrgSid, + bm.modelConfigSid AS vehMConfigSid, + bm.modelSid AS vehModelSid, + so.NAME, + SUM(s.reveivableMoney), + SUM(s.subscriptionMoney), + bo.contractNo + 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 ( + SELECT fd.reveivableMoney, + fd.busVinSid, + IFNULL(SUM(fs.subscriptionMoney), 0) AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + LEFT JOIN anrui_fin.fin_selected_receivables_detailed fs ON fs.receivablesSid = fd.sid + WHERE fd.kxState = '01' + AND fs.auditState = 3 + and fd.receivablesName = '融资放款' + GROUP BY fd.sid + UNION ALL + SELECT fd.reveivableMoney, + fd.busVinSid, + 0 AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + WHERE fd.kxState = '01' + AND fd.receivablesName = '融资放款' + AND fd.sid NOT IN (SELECT fs.`receivablesSid` + FROM anrui_fin.fin_selected_receivables_detailed fs + WHERE fs.`auditState` = 3 + AND fs.`receivablesName` = '融资放款') + GROUP BY fd.sid + ) s ON s.busVinSid = bv.sid + LEFT JOIN anrui_portal.sys_organization so ON so.sid = bo.useOrgSid + where bo.payTypeKey = 2 + + and bbv.vehicleState = '0002' + group by bv.sid, bo.useOrgSid, bm.modelSid, bm.modelConfigSid + HAVING SUM(s.reveivableMoney) > SUM(s.subscriptionMoney)) a + GROUP BY a.useOrgSid, + a.vehMConfigSid, + a.vehModelSid) as s on + r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.vehModelSid AND r.vehMConfigSid = s.vehMConfigSid + SET r.`loan_not_count`=s.scount + WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + +-- 金融未放款金额-- 截止当日贷款业务已出库且融资放款未认款的台数融资放款金额之和 + + update daily_report r inner join ( + SELECT SUM(a.scount) AS scount, + a.useOrgSid, + a.NAME, + a.contractNo, + a.vehMConfigSid, + a.vehModelSid + FROM (SELECT bv.id, + bo.useOrgSid, + bm.modelConfigSid AS vehMConfigSid, + bm.modelSid AS vehModelSid, + so.NAME, + SUM(s.reveivableMoney), + SUM(s.subscriptionMoney), + bo.contractNo, + ( + SUM(s.reveivableMoney) - SUM(s.subscriptionMoney)) AS scount + 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 ( + SELECT fd.reveivableMoney, + fd.busVinSid, + IFNULL(SUM(fs.subscriptionMoney), 0) AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + LEFT JOIN anrui_fin.fin_selected_receivables_detailed fs ON fs.receivablesSid = fd.sid + WHERE fd.kxState = '01' + AND fs.auditState = 3 + AND fd.receivablesName = '融资放款' + GROUP BY fd.sid + UNION ALL + SELECT fd.reveivableMoney, + fd.busVinSid, + 0 AS subscriptionMoney + FROM anrui_fin.fin_uncollected_receivables_detailed fd + WHERE fd.kxState = '01' + AND fd.receivablesName = '融资放款' + AND fd.sid NOT IN (SELECT fs.`receivablesSid` + FROM anrui_fin.fin_selected_receivables_detailed fs + WHERE fs.`auditState` = 3 + AND fs.`receivablesName` = '融资放款') + GROUP BY fd.sid + ) s ON s.busVinSid = bv.sid + LEFT JOIN anrui_portal.sys_organization so ON so.sid = bo.useOrgSid + WHERE bo.payTypeKey = 2 + + AND bbv.vehicleState = '0002' + GROUP BY bv.sid, bo.useOrgSid, bm.modelSid, bm.modelConfigSid + HAVING SUM(s.reveivableMoney) > SUM(s.subscriptionMoney)) a + GROUP BY a.useOrgSid, + a.vehMConfigSid, + a.vehModelSid) as s on + r.useOrgSid = s.useOrgSid AND r.vehModelSid = s.vehModelSid AND r.vehMConfigSid = s.vehMConfigSid + SET r.`loan_not_amount`=ROUND(s.scount / 10000, 2) + 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 \ No newline at end of file