Browse Source

Merge remote-tracking branch 'origin/master'

master
God 1 year ago
parent
commit
c2f2b80e86
  1. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java
  2. 32
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  3. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/GeneralVoucher.java
  4. 23
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  5. 39
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  6. 6
      anrui-gateway/src/main/resources/application.yml
  7. 5
      anrui-riskcenter-ui/src/views/deduct/deductAdd.vue
  8. 5
      anrui-riskcenter-ui/src/views/deduct/deductInfo.vue
  9. 10
      anrui-riskcenter-ui/src/views/delinquentcustomerfiling/delinquentcustomerfilingAdd.vue
  10. 12
      anrui-riskcenter-ui/src/views/delinquentcustomerfiling/delinquentcustomerfilingInfo.vue
  11. 5
      anrui-riskcenter-ui/src/views/workFlow/huakouFlow/deductDaiBan.vue
  12. 5
      anrui-riskcenter-ui/src/views/workFlow/huakouFlow/deductEdit.vue
  13. 5
      anrui-riskcenter-ui/src/views/workFlow/huakouFlow/deductYiBan.vue
  14. 12
      anrui-riskcenter-ui/src/views/workFlow/qiankuanbeianFlow/delinquentcustomerfilingDaiBan.vue
  15. 10
      anrui-riskcenter-ui/src/views/workFlow/qiankuanbeianFlow/delinquentcustomerfilingEdit.vue
  16. 10
      anrui-riskcenter-ui/src/views/workFlow/qiankuanbeianFlow/delinquentcustomerfilingYiBan.vue
  17. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java
  18. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java
  19. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistory.java
  20. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java
  21. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckleNew.java
  22. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java
  23. 182
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java
  24. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java
  25. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java
  26. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  27. 117
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  28. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  29. 82
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  30. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  31. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java
  32. 18
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerCrmVehVo.java
  33. 86
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicle.java
  34. 91
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleDetailsVo.java
  35. 91
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleDto.java
  36. 89
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleQuery.java
  37. 91
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleVo.java
  38. 69
      yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleMapper.java
  39. 13
      yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleMapper.xml
  40. 102
      yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleRest.java
  41. 109
      yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleService.java

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java

@ -36,6 +36,8 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
if (baseVehicleState != null) {
if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey().equals(operateType)) {
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
baseVehicleState.setSaleTypeKey(dto.getSaleTypeKey());
baseVehicleState.setFinSourceKey(dto.getFinSourceKey());
baseVehicleState.setFinState("0");
baseVehicleState.setCarryVehicleState("0");
baseVehicleState.setCarryInvoiceState("0");

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

@ -5518,6 +5518,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
BusSalesOrder finalBusSalesOrder2 = busSalesOrder;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<BusSalesOrderVehicle> vehicleList = busSalesOrderVehicleService.selectListByOrderSid(bv.getBusinessSid());
@ -5532,6 +5533,33 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
baseVehicleStateDto.setSaleOrderSid(v.getSalesOrderSid());
baseVehicleStateDto.setBusSid(v.getSid());
baseVehicleStateDto.setSaleTypeKey(finalBusSalesOrder2.getPayTypeKey());
if ("2".equals(finalBusSalesOrder2.getPayTypeKey())) {//贷款
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(finalBusSalesOrder2.getSid()).getData();
if (loanSolutions != null) {
if (StringUtils.isBlank(loanSolutions.getTypeKey())) {
baseVehicleStateDto.setFinSourceKey("4");//担保
} else {
baseVehicleStateDto.setFinSourceKey("3");//自营非担保
}
}
} else {
if ("2".equals(finalBusSalesOrder2.getFinancePlan())) {
baseVehicleStateDto.setFinSourceKey(finalBusSalesOrder2.getFinancePlan());
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(finalBusSalesOrder2.getSid()).getData();
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getTypeKey())) {
if ("02".equals(loanSolutions.getTypeKey())) {
baseVehicleStateDto.setFinSourceKey("2");//三方金融
} else {
baseVehicleStateDto.setFinSourceKey("3");//自营非担保
}
}
}
} else {
baseVehicleStateDto.setFinSourceKey(finalBusSalesOrder2.getFinancePlan());
}
}
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
@ -7168,8 +7196,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
newSalesOrder.setMobile(customerMobile);
ResultBean<CrmCustomerTempVo> crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(customerSid);
if (crmCustomerTempVoResultBean.getData() != null) {
newSalesOrder.setCustomerClass(crmCustomerTempVoResultBean.getData().getCustomerClass());
newSalesOrder.setCustomerClassKey(crmCustomerTempVoResultBean.getData().getCustomerClassKey());
newSalesOrder.setCustomerClass(crmCustomerTempVoResultBean.getData().getCustomerType());
newSalesOrder.setCustomerClassKey(crmCustomerTempVoResultBean.getData().getCustomerTypeKey());
}
}
saleOrderSave = this.save(newSalesOrder);

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/GeneralVoucher.java

@ -26,7 +26,7 @@ public class GeneralVoucher {
@Data
public static class GeneralVoucherDetail {
public String timeFlag; //应用于资金占用费计提凭证摘要标识 0代表上月 1代表本月
@ApiModelProperty("场景编码")
public String sceneCode;
@ApiModelProperty("资方简称")

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

@ -3891,24 +3891,10 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
//认资金占用费消减平台资金占用费
if (v.getReceivablesName().equals("资金占用费")) {
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
//推送资金占用费收款凭证
Future future1 = pool.submit(() -> {
pushFundVoucher(v, sid);
});
//推送资金占用费收款凭证
Future future = pool.submit(() -> {
pushFeeVoucher(v, sid);
});
} catch (Exception e) {
e.printStackTrace();
log.error("推送数据失败=========================" + e.getMessage());
}
//推送资金占用费计提凭证
pushFundVoucher(v, sid);
//推送资金占用费出纳确认后
pushFeeVoucher(v, sid);
}
if ("月还".equals(v.getReceivablesName())
|| "垫资方逾期利息".equals(v.getReceivablesName())
@ -4009,6 +3995,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
return rb.success().setMsg("款项确认成功");
}
private void pushFundVoucher(FinSelectedReceivablesDetailedVo v, String sid) {
String planSid = "";
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid);

39
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -653,14 +653,18 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
String[] split = format.split("-");
String month = split[1];
String m = "";
if (month.equals("01")) {
m = "12";
} else {
m = String.valueOf(Integer.parseInt(month) - 1);
if (voucherDetail.getTimeFlag().equals("0")) {
if (month.equals("01")) {
m = "12";
} else {
m = String.valueOf(Integer.parseInt(month) - 1);
}
} else if (voucherDetail.getTimeFlag().equals("1")) {
m = String.valueOf(Integer.parseInt(month));
}
if (voucherDetail.getSceneCode().equals("借方")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
dto1.setSummary("计提" + m + "逾期利息");
dto1.setSummary("计提" + m + "逾期利息");
dto1.setSubjectNo("1201.02.02");
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
@ -669,7 +673,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
if (voucherDetail.getSceneCode().equals("贷方")) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("计提" + m + "逾期利息");
dto2.setSummary("计提" + m + "逾期利息");
dto2.setSubjectNo("2191.05.00");
dto2.setDimensionDept(voucherDetail.getDeptCode());
// dto2.setDimensionCustom(voucherDetail.getCustomerCode());
@ -700,14 +704,16 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucher.getPayTypeCode(), "payVoucherType").getData();
if (null != dictCommonVo) {
SysMappingListInfoQuery query = new SysMappingListInfoQuery();
query.setDictSid(dictCommonVo.getSid());
List<SysMappingInfoVo> data = sysMappingFeign.selectMappingListInfo(query).getData();
if (!data.isEmpty()) {
SysMappingInfoVo sysMappingInfoVo = data.get(0);
payType = sysMappingInfoVo.getMap_itemKey();
if (StringUtils.isNotBlank(voucher.getPayTypeCode())) {
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucher.getPayTypeCode(), "payVoucherType").getData();
if (null != dictCommonVo) {
SysMappingListInfoQuery query = new SysMappingListInfoQuery();
query.setDictSid(dictCommonVo.getSid());
List<SysMappingInfoVo> data = sysMappingFeign.selectMappingListInfo(query).getData();
if (!data.isEmpty()) {
SysMappingInfoVo sysMappingInfoVo = data.get(0);
payType = sysMappingInfoVo.getMap_itemKey();
}
}
}
List<CollectionVoucher.CollectionVoucherDetail> voucherDetails = voucher.getVoucherDetails();
@ -727,8 +733,9 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.FUND_VOUCHER2.getCode())) {
//确认收入
String date = sdf.format(voucherDetail.getDataTime());
String[] split = date.split(".");
SimpleDateFormat sdfnew = new SimpleDateFormat("yyyy-MM-dd");
String date = sdfnew.format(voucherDetail.getDataTime());
String[] split = date.split("-");
String month = split[1];
dto1.setSummary(month + "月逾期利息确认收入");
dto1.setSubjectNo("2191.05.00");

6
anrui-gateway/src/main/resources/application.yml

@ -97,6 +97,12 @@ spring:
uri: lb://yxt-wms
filters:
- StripPrefix=1
- id: yxt-base
predicates:
- Path= /yxtbase/**
uri: lb://yxt-base
filters:
- StripPrefix=1
ignore:
whites:

5
anrui-riskcenter-ui/src/views/deduct/deductAdd.vue

@ -57,6 +57,11 @@
<el-table-column prop="borrowerName" label="贷款人" align="center" />
<el-table-column prop="period" label="期数" align="center" width="100" />
<el-table-column prop="actualMoney" label="实还金额" align="center" width="140"/>
<el-table-column label="还款状态" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.payState == '0' ? '正常还款' : '逾期还款'}}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>

5
anrui-riskcenter-ui/src/views/deduct/deductInfo.vue

@ -55,6 +55,11 @@
<el-table-column prop="borrowerName" label="贷款人" align="center" />
<el-table-column prop="period" label="期数" align="center" width="100" />
<el-table-column prop="actualMoney" label="实还金额" align="center" width="140"/>
<el-table-column label="还款状态" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.payState == '0' ? '正常还款' : '逾期还款'}}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>

10
anrui-riskcenter-ui/src/views/delinquentcustomerfiling/delinquentcustomerfilingAdd.vue

@ -581,6 +581,16 @@ export default {
this.$message({ showClose: true, type: 'error', message: '证件号码不能为空' })
return
}
if (this.formobj.customerTypeKey === '1') {
if (this.formobj.isAnchored === '') {
this.$message({ showClose: true, type: 'error', message: '是否挂靠运输公司请选择是或否' })
return
}
if (this.formobj.isAnchored === '1' && (this.formobj.businessName === '' || this.formobj.taxpayerNo === '')) {
this.$message({ showClose: true, type: 'error', message: '是否挂靠运输公司选则是的情况下,请完善挂靠运输公司信息' })
return
}
}
this.getUrl()
this.submitdisabled = true
req.submit(this.formobj).then((res) => {

12
anrui-riskcenter-ui/src/views/delinquentcustomerfiling/delinquentcustomerfilingInfo.vue

@ -83,7 +83,7 @@
<el-col :span="8">
<div v-show="formobj.customerTypeKey == '1'">
<div class="span-sty">是否挂靠运输公司</div>
<el-form-item><span class="addinputInfo">{{ formobj.isAnchored = '1' ? '是' : '否' }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.isAnchored == 1 ? '是' : '否' }}</span></el-form-item>
</div>
</el-col>
</el-row>
@ -113,7 +113,7 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">
<div v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === '1'">
<div class="title">挂靠运输公司信息</div>
<el-row>
<el-col :span="16">
@ -147,17 +147,17 @@
</el-row>
</div>
<div class="title">附件清单</div>
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '')">
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '1')">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">营业执照</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.license" :key="index" :src="item" :preview-src-list="formobj.license"/></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '')">
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '0')">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">
<span v-show="formobj.customerTypeKey === '2'">法人和实际控制人身份证</span>
<span v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">本人身份证</span>
<span v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === '0'">本人身份证</span>
</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.idCard" :key="index" :src="item" :preview-src-list="formobj.idCard"/></el-form-item>
</el-col>
@ -168,7 +168,7 @@
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.infoLetter" :key="index" :src="item" :preview-src-list="formobj.infoLetter"/></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">
<el-row v-if="formobj.customerTypeKey === '1' && formobj.isAnchored === '1'">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">车队挂靠协议</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.agreement" :key="index" :src="item" :preview-src-list="formobj.agreement"/></el-form-item>

5
anrui-riskcenter-ui/src/views/workFlow/huakouFlow/deductDaiBan.vue

@ -58,6 +58,11 @@
<el-table-column prop="borrowerName" label="贷款人" align="center" />
<el-table-column prop="period" label="期数" align="center" width="100" />
<el-table-column prop="actualMoney" label="实还金额" align="center" width="140"/>
<el-table-column label="还款状态" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.payState == '0' ? '正常还款' : '逾期还款'}}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>

5
anrui-riskcenter-ui/src/views/workFlow/huakouFlow/deductEdit.vue

@ -56,6 +56,11 @@
<el-table-column prop="borrowerName" label="贷款人" align="center" />
<el-table-column prop="period" label="期数" align="center" width="100" />
<el-table-column prop="actualMoney" label="实还金额" align="center" width="140"/>
<el-table-column label="还款状态" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.payState == '0' ? '正常还款' : '逾期还款'}}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>

5
anrui-riskcenter-ui/src/views/workFlow/huakouFlow/deductYiBan.vue

@ -55,6 +55,11 @@
<el-table-column prop="borrowerName" label="贷款人" align="center" />
<el-table-column prop="period" label="期数" align="center" width="100" />
<el-table-column prop="actualMoney" label="实还金额" align="center" width="140"/>
<el-table-column label="还款状态" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.payState == '0' ? '正常还款' : '逾期还款'}}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>

12
anrui-riskcenter-ui/src/views/workFlow/qiankuanbeianFlow/delinquentcustomerfilingDaiBan.vue

@ -86,7 +86,7 @@
<el-col :span="8">
<div v-show="formobj.customerTypeKey == '1'">
<div class="span-sty">是否挂靠运输公司</div>
<el-form-item><span class="addinputInfo">{{ formobj.isAnchored = '1' ? '是' : '否' }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.isAnchored == 1 ? '是' : '否' }}</span></el-form-item>
</div>
</el-col>
</el-row>
@ -116,7 +116,7 @@
</el-table-column>
</el-table>
</div>
<div v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">
<div v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === '1'">
<div class="title">挂靠运输公司信息</div>
<el-row>
<el-col :span="16">
@ -150,17 +150,17 @@
</el-row>
</div>
<div class="title">附件清单</div>
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '')">
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '1')">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">营业执照</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.license" :key="index" :src="item" :preview-src-list="formobj.license"/></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '')">
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '0')">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">
<span v-show="formobj.customerTypeKey === '2'">法人和实际控制人身份证</span>
<span v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">本人身份证</span>
<span v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === '0'">本人身份证</span>
</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.idCard" :key="index" :src="item" :preview-src-list="formobj.idCard"/></el-form-item>
</el-col>
@ -171,7 +171,7 @@
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.infoLetter" :key="index" :src="item" :preview-src-list="formobj.infoLetter"/></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">
<el-row v-if="formobj.customerTypeKey === '1' && formobj.isAnchored === '1'">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">车队挂靠协议</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.agreement" :key="index" :src="item" :preview-src-list="formobj.agreement"/></el-form-item>

10
anrui-riskcenter-ui/src/views/workFlow/qiankuanbeianFlow/delinquentcustomerfilingEdit.vue

@ -584,6 +584,16 @@ export default {
this.$message({ showClose: true, type: 'error', message: '证件号码不能为空' })
return
}
if (this.formobj.customerTypeKey === '1') {
if (this.formobj.isAnchored === '') {
this.$message({ showClose: true, type: 'error', message: '是否挂靠运输公司请选择是或否' })
return
}
if (this.formobj.isAnchored === '1' && (this.formobj.businessName === '' || this.formobj.taxpayerNo === '')) {
this.$message({ showClose: true, type: 'error', message: '是否挂靠运输公司选则是的情况下,请完善挂靠运输公司信息' })
return
}
}
this.getUrl()
this.submitdisabled = true
req.submit(this.formobj).then((res) => {

10
anrui-riskcenter-ui/src/views/workFlow/qiankuanbeianFlow/delinquentcustomerfilingYiBan.vue

@ -83,7 +83,7 @@
<el-col :span="8">
<div v-show="formobj.customerTypeKey == '1'">
<div class="span-sty">是否挂靠运输公司</div>
<el-form-item><span class="addinputInfo">{{ formobj.isAnchored = '1' ? '是' : '否' }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.isAnchored == 1 ? '是' : '否' }}</span></el-form-item>
</div>
</el-col>
</el-row>
@ -147,17 +147,17 @@
</el-row>
</div>
<div class="title">附件清单</div>
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '')">
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '1')">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">营业执照</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.license" :key="index" :src="item" :preview-src-list="formobj.license"/></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '')">
<el-row v-if="formobj.customerTypeKey === '2' || (formobj.customerTypeKey === '1' && formobj.isAnchored === '0')">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">
<span v-show="formobj.customerTypeKey === '2'">法人和实际控制人身份证</span>
<span v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">本人身份证</span>
<span v-show="formobj.customerTypeKey === '1' && formobj.isAnchored === '0'">本人身份证</span>
</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.idCard" :key="index" :src="item" :preview-src-list="formobj.idCard"/></el-form-item>
</el-col>
@ -168,7 +168,7 @@
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.infoLetter" :key="index" :src="item" :preview-src-list="formobj.infoLetter"/></el-form-item>
</el-col>
</el-row>
<el-row v-if="formobj.customerTypeKey === '1' && formobj.isAnchored === ''">
<el-row v-if="formobj.customerTypeKey === '1' && formobj.isAnchored === '1'">
<el-col :span="24">
<div class="span-sty span-sty-special" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">车队挂靠协议</div>
<el-form-item><el-image class="addinputInfo-special" style="width: 150px; height: 150px" v-for="(item, index) in formobj.agreement" :key="index" :src="item" :preview-src-list="formobj.agreement"/></el-form-item>

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleHistoryRecord.java

@ -41,7 +41,7 @@ public class LoanBuckleHistoryRecord {
// private String outstandingMoney;
@ApiModelProperty("实还日期")
private String actualDate;
private String payState;
private List<String> historySids = new ArrayList<>();
}

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapplyrecord/LoanBuckleApplyRecord.java

@ -26,5 +26,6 @@ public class LoanBuckleApplyRecord extends BaseEntity {
private String repaymentHistorySid;
@ApiModelProperty("实还金额")
private BigDecimal actualMoney;
@ApiModelProperty("还款状态(0正常还款,1逾期还款)")
private Integer payState;
}

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistory.java

@ -52,4 +52,5 @@ public class LoanRepaymentHistory extends BaseEntity {
private Date updateTime;
@ApiModelProperty("收款单据编号")
private String skdBillNo;
private Integer payState; //还款状态(0正常还款,1逾期还款)
}

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckle.java

@ -46,4 +46,5 @@ public class RepaymentHistoryVoForBuckle {
private String planDetailSid;
private String updateState; //更新状态
private String updateTime; //更新日期
private String payState;
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/RepaymentHistoryVoForBuckleNew.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loanrepaymenthistory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/3/20 11:51
*/
@Data
public class RepaymentHistoryVoForBuckleNew {
private String rule;
private String sid;
@ApiModelProperty("实还金额")
private BigDecimal actualMoney;
}

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java

@ -78,7 +78,6 @@ public class LoanRepaymentPlanDetails extends BaseEntity {
private BigDecimal fund; //资金占用费
private Integer overdue; //是否曾逾期(0是,1否)
private Integer oweState; //是否转累欠状态(0是,1否)
private Integer payState; //还款状态(0正常还款,1逾期还款)
private Date updateTime; //更新日期
}

182
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java

@ -50,6 +50,7 @@ import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService;
import com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory.LoanBucklePlanHistoryService;
@ -264,6 +265,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
applyRecord.setPayState(Integer.parseInt(record.getPayState()));
loanBuckleApplyRecordService.insert(applyRecord);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
@ -309,6 +311,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
applyRecord.setPayState(Integer.parseInt(record.getPayState()));
loanBuckleApplyRecordService.insert(applyRecord);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
@ -601,22 +604,6 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
//流程中的参数赋值
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
// boolean isTure = true;
// //去查询是否同意
// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
// isTure = false;
// }
// }
// variables.put("isTure", isTure);
// if (bv.getTaskDefKey().equals("Activity_1078xxs")) {
// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) {
// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid());
// } else {
// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
// }
// }
variables.put("businessSid", businessSid);
appMap.put("sid", businessSid);
variables.put("app", appMap);
@ -625,6 +612,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
LoanBuckleApply buckleApply = fetchBySid(businessSid);
@ -649,39 +637,118 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
}
}
}
// List<LoanBuckleApplyRecord> applyRecords = loanBuckleApplyRecordService.selByMainSid(businessSid);
// if (!applyRecords.isEmpty()) {
// for (LoanBuckleApplyRecord applyRecord : applyRecords) {
// LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
// if (null != repaymentHistory) {
// repaymentHistory.setBuckle("审核通过");
// repaymentHistory.setBuckleKey("003");
// repaymentHistory.setClosingDate(new DateTime());
// loanRepaymentHistoryService.updateById(repaymentHistory);
// }
// }
// }
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
//推送划扣凭证
Future future = pool.submit(() -> {
pushBuckleVoucher(businessSid);
});
} catch (Exception e) {
e.printStackTrace();
log.error("推送数据失败=========================" + e.getMessage());
return rb.setMsg("推送数据失败");
}
//推送划扣凭证
pushBuckleVoucher(businessSid);
//推送转累欠凭证
pushLaterBuckleVoucher(businessSid);
} else {
//极光推送
loanBuckleApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanBuckleApply.getProcDefId());
messageFlowVo.setProcInsId(loanBuckleApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("划扣申请");
messageFlowableQuery.setMsgContent(loanBuckleApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("划扣申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
private void pushLaterBuckleVoucher(String businessSid) {
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(businessSid);
if (!records.isEmpty()) {
List<String> planSids = new ArrayList<>();
List<String> finalPlanSids = new ArrayList<>();
records.stream().forEach(r -> {
planSids.add(r.getRepaymentHistorySid());
});
if (!planSids.isEmpty()) {
List<LoanPlanDetailsVoForLateVoucher> vouchers = loanRepaymentPlanDetailsService.selPushLaterVoucherOnBuckle(planSids);
if (!vouchers.isEmpty()) {
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanPlanDetailsVoForLateVoucher planDetails : vouchers) {
finalPlanSids.add(planDetails.getPlanSid());
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (StringUtils.isNotBlank(planDetails.getUseOrgSid())) {
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
if (StringUtils.isNotBlank(planDetails.getDeptSid())) {
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
}
if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) {
voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney()));
}
voucherDetails.add(voucherDetail);
}
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveLateVoucher(generalVoucher);
}
}
if (!finalPlanSids.isEmpty()) {
int i = loanRepaymentPlanDetailsService.updateOweState(finalPlanSids);
}
}
}
private void pushBuckleVoucher(String businessSid) {
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(businessSid);
@ -692,20 +759,20 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid());
if (null != planDetails) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String state = loanRepaymentPlanDetailsService.selForPushBuckleVoucher(v.getRepaymentHistorySid());
if (StringUtils.isNotBlank(state)) {
if (state.equals("2")) {
voucherDetail.setSceneCode("01");
} else {
if (planDetails.getPayState() == 1) {
voucherDetail.setSceneCode("01");
// oweState 是否转累欠状态(0是,1否)
Integer oweState = planDetails.getOweState();
if (oweState == 1) {
voucherDetail.setSceneCode("01");
} else if (oweState == 0) {
BigDecimal paymentMoney = planDetails.getPaymentMoney();
if (null != paymentMoney) {
if (paymentMoney.compareTo(BigDecimal.ZERO) > 0) {
voucherDetail.setSceneCode("03");
} else {
if (state.equals("0")) {
voucherDetail.setSceneCode("03");
} else if (state.equals("1")) {
voucherDetail.setSceneCode("02");
}
voucherDetail.setSceneCode("02");
}
} else {
voucherDetail.setSceneCode("02");
}
}
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
@ -1120,8 +1187,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
}
loanBuckleApply.setIsDelete(1);
int i = baseMapper.updateById(loanBuckleApply);
int i = baseMapper.deleteById(loanBuckleApply);
if (i == 0) {
return rb.setMsg("删除失败");
}
@ -1143,6 +1209,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
}
}
}
loanBuckleApplyRecordService.deleteByMainSid(sid);
loanBucklePlanHistoryService.deleteByMainSid(sid);
}
return ResultBean.fireSuccess().setMsg("删除成功");
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryMapper.java

@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loanbuckleplanhistory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanbuckleplanhistory.LoanBucklePlanHistory;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -13,4 +14,9 @@ import java.util.List;
public interface LoanBucklePlanHistoryMapper extends BaseMapper<LoanBucklePlanHistory> {
List<String> fetchByMainSidAndPlanSid(@Param("sid") String sid, @Param("repaymentHistorySid") String repaymentHistorySid);
@Delete(" DELETE\n" +
" FROM loan_buckle_plan_history\n" +
" WHERE mainSid = #{sid}")
void deleteByMainSid(@Param("sid")String sid);
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleplanhistory/LoanBucklePlanHistoryService.java

@ -19,4 +19,8 @@ public class LoanBucklePlanHistoryService extends MybatisBaseService<LoanBuckleP
public List<String> fetchByMainSidAndPlanSid(String sid, String repaymentHistorySid) {
return baseMapper.fetchByMainSidAndPlanSid(sid,repaymentHistorySid);
}
public void deleteByMainSid(String sid) {
baseMapper.deleteByMainSid(sid);
}
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -197,7 +197,8 @@
h.actualMoney,
h.buckle,
h.returnWay,
h.planDetailSid
h.planDetailSid,
h.payState
FROM
loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p ON h.planDetailSid = p.sid

117
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -705,15 +705,19 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
for (String historySid : histories) {
LoanRepaymentHistory repaymentHistory = fetchBySid(historySid);
if (null != repaymentHistory) {
repaymentHistory.setUpdateState("1");
repaymentHistory.setUpdateTime(new DateTime());
baseMapper.updateById(repaymentHistory);
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(repaymentHistory.getPlanDetailSid());
if (null != planDetails) {
bankContractNos.add(planDetails.getBankContractNo());
pSids.add(planDetails.getSid());
useOrgSid = planDetails.getUseOrgSid();
//判断当期还款计划是否曾逾期
if (planDetails.getOverdue() == 0) {
repaymentHistory.setPayState(1);
}
}
repaymentHistory.setUpdateState("1");
repaymentHistory.setUpdateTime(new DateTime());
baseMapper.updateById(repaymentHistory);
}
}
Map<String, String> map = new HashMap<>();
@ -761,22 +765,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
//对当前涉及的还款计划是否为中车类是否有垫款
if (!pSids.isEmpty()) {
for (String pSid : pSids) {
//判断当前期数是正常还款还是逾期还款
LoanRepaymentPlanDetails details = loanRepaymentPlanDetailsService.fetchBySid(pSid);
if (null != details) {
if (details.getPayState() == 0) {
CheckPayStateVo checkPayStateVo = loanRepaymentPlanDetailsService.checkPayState(pSid);
if (null != checkPayStateVo) {
if (checkPayStateVo.getCheckState().equals("0")) {
BigDecimal money = new BigDecimal(checkPayStateVo.getActualMoney());
if (money.compareTo(BigDecimal.ZERO) > 0) {
details.setPayState(1);
loanRepaymentPlanDetailsService.updateById(details);
}
}
}
}
}
String reAdvances = loanRepaymentPlanDetailsService.reAdvancesOrPaymentMoney(pSid);
if (StringUtils.isNotBlank(reAdvances)) {
if (reAdvances.equals("0")) {
@ -814,8 +802,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
}
}
}
pushLateVoucher(pushUseOrgSid);
} else {
return rb.setMsg("暂无可更新的还款记录");
}
@ -928,11 +914,27 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
Map<String, BigDecimal> newMap = new HashMap<>();
Map<String, List<String>> stringListMap = new HashMap<>();
Set<String> planSids = new HashSet<>();
List<RepaymentHistoryVoForBuckleNew> newList = new ArrayList<>();
if (!histories.isEmpty()) {
countMoney = histories.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, CollectorsUtil.summingBigDecimal(RepaymentHistoryVoForBuckle::getActualMoney)));
sids = histories.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckle::getPlanDetailSid, Collectors.mapping(RepaymentHistoryVoForBuckle::getSid, Collectors.toList())));
histories.stream().forEach(h -> {
RepaymentHistoryVoForBuckleNew r = new RepaymentHistoryVoForBuckleNew();
if (StringUtils.isNotBlank(h.getPlanDetailSid()) && StringUtils.isNotBlank(h.getPayState())) {
r.setRule(h.getPlanDetailSid() + "!" + h.getPayState());
}
if (StringUtils.isNotBlank(h.getSid())) {
r.setSid(h.getSid());
}
if (null != h.getActualMoney()) {
r.setActualMoney(h.getActualMoney());
}
newList.add(r);
});
if (!newList.isEmpty()) {
countMoney = newList.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckleNew::getRule, CollectorsUtil.summingBigDecimal(RepaymentHistoryVoForBuckleNew::getActualMoney)));
sids = newList.stream()
.collect(Collectors.groupingBy(RepaymentHistoryVoForBuckleNew::getRule, Collectors.mapping(RepaymentHistoryVoForBuckleNew::getSid, Collectors.toList())));
}
}
for (Map.Entry<String, BigDecimal> entry : countMoney.entrySet()) {
if (entry.getValue().compareTo(BigDecimal.ZERO) > 0) {
@ -948,10 +950,18 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
}
for (Map.Entry<String, List<String>> entry : stringListMap.entrySet()) {
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
record.setRecordSid(entry.getKey());
String planSid = "";
String payState = "";
if (StringUtils.isNotBlank(entry.getKey())) {
String[] split = entry.getKey().split("!");
planSid = split[0];
payState = split[1];
}
record.setRecordSid(planSid);
record.setPayState(payState);
record.setHistorySids(entry.getValue());
record.setActualMoney(newMap.get(entry.getKey()).toString());
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(entry.getKey());
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planSid);
if (null != planDetails) {
if (StringUtils.isNotBlank(planDetails.getLoanContractNo())) {
record.setLoanContractNo(planDetails.getLoanContractNo());
@ -977,40 +987,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
}
historyRecords.add(record);
}
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistoryVo history : histories) {
// String planDetailSid = history.getPlanDetailSid();
// List<LoanRepaymentHistory> historyList = baseMapper.selByPlanSid(planDetailSid);
// if (!historyList.isEmpty()) {
// BigDecimal actualMoney = new BigDecimal(0);
// for (LoanRepaymentHistory repaymentHistory : historyList) {
// actualMoney = repaymentHistory.getActualMoney().add(actualMoney);
// }
// if (actualMoney.compareTo(BigDecimal.ZERO) == -1) {
// planSids.add(planDetailSid);
// }
// }
// }
// }
// Iterator<LoanRepaymentHistoryVo> it = histories.iterator();
// while (it.hasNext()) {
// LoanRepaymentHistoryVo historyVo = it.next();
// if (!planSids.isEmpty()) {
// if (planSids.contains(historyVo.getPlanDetailSid())) {
// it.remove();
// }
// }
// }
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistoryVo history : histories) {
// LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
// LoanRepaymentHistoryRecordVo recordVo = baseMapper.buckleInfo(history.getSid());
// if (null != recordVo) {
// BeanUtil.copyProperties(recordVo, record);
// }
// historyRecords.add(record);
// }
// }
vo.setRecords(historyRecords);
return rb.success().setData(vo);
}
@ -1650,24 +1626,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
LocalDate localDate = LocalDate.now().minusDays(1);
String formatDate = localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int i = baseMapper.updateTimeByPlanSids(stringList, formatDate);
for (String pSid : stringList) {
//判断当前期数是正常还款还是逾期还款
LoanRepaymentPlanDetails details = loanRepaymentPlanDetailsService.fetchBySid(pSid);
if (null != details) {
if (details.getPayState() == 0) {
CheckPayStateVo checkPayStateVo = loanRepaymentPlanDetailsService.checkPayState(pSid);
if (null != checkPayStateVo) {
if (checkPayStateVo.getCheckState().equals("0")) {
BigDecimal money = new BigDecimal(checkPayStateVo.getActualMoney());
if (money.compareTo(BigDecimal.ZERO) > 0) {
details.setPayState(1);
loanRepaymentPlanDetailsService.updateById(details);
}
}
}
}
}
}
}
//判断当期是否逾期
List<HistoryOverDueVo> overDueVoList = loanRepaymentPlanDetailsService.overDueVoList(useOrgSid);
@ -1682,7 +1640,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
int i = loanRepaymentPlanDetailsService.updateOverDueState(planSids);
}
}
pushLateVoucher(useOrgSid);
}
return rb.success();
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -75,4 +75,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
CheckPayStateVo checkPayState(@Param("pSid") String pSid);
LoanPlanDetailsVoForFundVoucher pushFund(@Param("sid") String sid);
List<LoanPlanDetailsVoForLateVoucher> selPushLaterVoucherOnBuckle(@Param("planSids") List<String> planSids);
}

82
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -681,4 +681,86 @@
AND b.sid = #{sid}
) c
</select>
<select id="selPushLaterVoucherOnBuckle"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher">
SELECT b.loanContractNo,
b.sid AS planSid,
CASE
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) >
0 THEN
'0'
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) &lt;= 0 THEN
'1'
END AS overdueState,
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM (
SELECT a.*,
IFNULL((SELECT (fjj.reveivableMoney - fjj.m)
FROM (SELECT IFNULL((SELECT SUM(subscriptionMoney)
FROM anrui_fin.fin_selected_receivables_detailed as s
WHERE s.auditState = '3'
and s.receivablesSid = fj.sid), 0) as m,
fj.*
FROM (SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr as j
WHERE j.payCostTitleKey = '006') as fj) as fjj
WHERE fjj.busSid = a.sid), 0) as fund
FROM (
SELECT pd.loanContractNo,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN (
SELECT p.sid,
IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
WHERE a.dueDate &lt;= a.updateDate
AND a.oweState = 1
) AS b
WHERE b.overdue = '0'
AND b.sid IN
<foreach collection="planSids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -217,6 +217,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail1.setTimeFlag("1");
voucherDetail1.setSceneCode("贷方");
voucherDetail1.setDataTime(new DateTime());
voucherDetail1.setAmount(v.getDuePushMoney());
@ -235,6 +236,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("借方");
voucherDetail.setTimeFlag("1");
voucherDetail.setDataTime(new DateTime());
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
@ -298,4 +300,8 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
}
return rb.success();
}
public List<LoanPlanDetailsVoForLateVoucher> selPushLaterVoucherOnBuckle(List<String> planSids) {
return baseMapper.selPushLaterVoucherOnBuckle(planSids);
}
}

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

@ -184,6 +184,7 @@ public class ScheduledRepaymentPlanDetailsService {
voucherDetail1.setSceneCode("贷方");
voucherDetail1.setDataTime(new DateTime());
voucherDetail1.setAmount(result);
voucherDetail1.setTimeFlag("0");
List<SysOrganizationVo> deptVo = sysOrganizationFeign.selectChildrenListBySid(u).getData();
if (!deptVo.isEmpty()) {
deptVo.stream().forEach(d -> {
@ -200,6 +201,7 @@ public class ScheduledRepaymentPlanDetailsService {
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("借方");
voucherDetail.setTimeFlag("0");
voucherDetail.setDataTime(new DateTime());
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {

18
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerCrmVehVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.as.api.ascustomervehicle;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/3/19 11:52
*/
@Data
public class AsCustomerCrmVehVo implements Vo {
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
}

86
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicle.java

@ -0,0 +1,86 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.api.ascustomervehicle;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicle.java <br/>
* Class: as.api.ascustomervehicle.AsCustomerVehicle <br/>
* Description: 客户车辆信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "客户车辆信息", description = "客户车辆信息")
@TableName("as_customer_vehicle")
public class AsCustomerVehicle extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private Integer mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private Integer lastMileage; // 上次保养里程
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("下次保养日期")
private Date nextMaintainDate; // 下次保养日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("购车日期")
private Date buyDate; // 购车日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("商业险到期日期")
private Date commercialInsuranceEndDate; // 商业险到期日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("交强险到期日期")
private Date compulsoryInsuranceEndDate; // 交强险到期日期
@ApiModelProperty("0为内部车,1为外部车")
private Integer vehState; // 0为内部车,1为外部车
}

91
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleDetailsVo.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.api.ascustomervehicle;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleVo.java <br/>
* Class: as.api.ascustomervehicle.AsCustomerVehicleVo <br/>
* Description: 客户车辆信息 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "客户车辆信息 视图数据详情", description = "客户车辆信息 视图数据详情")
public class AsCustomerVehicleDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private Integer mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private Integer lastMileage; // 上次保养里程
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("下次保养日期")
private Date nextMaintainDateStart; // 下次保养日期
private Date nextMaintainDateEnd; // 下次保养日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("购车日期")
private Date buyDateStart; // 购车日期
private Date buyDateEnd; // 购车日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("商业险到期日期")
private Date commercialInsuranceEndDateStart; // 商业险到期日期
private Date commercialInsuranceEndDateEnd; // 商业险到期日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("交强险到期日期")
private Date compulsoryInsuranceEndDateStart; // 交强险到期日期
private Date compulsoryInsuranceEndDateEnd; // 交强险到期日期
@ApiModelProperty("0为内部车,1为外部车")
private Integer vehState; // 0为内部车,1为外部车
}

91
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleDto.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.api.ascustomervehicle;
import com.yxt.common.core.dto.Dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleDto.java <br/>
* Class: as.api.ascustomervehicle.AsCustomerVehicleDto <br/>
* Description: 客户车辆信息 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "客户车辆信息 数据传输对象", description = "客户车辆信息 数据传输对象")
public class AsCustomerVehicleDto implements Dto {
private String sid; // sid
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private Integer mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private Integer lastMileage; // 上次保养里程
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("下次保养日期")
private Date nextMaintainDateStart; // 下次保养日期
private Date nextMaintainDateEnd; // 下次保养日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("购车日期")
private Date buyDateStart; // 购车日期
private Date buyDateEnd; // 购车日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("商业险到期日期")
private Date commercialInsuranceEndDateStart; // 商业险到期日期
private Date commercialInsuranceEndDateEnd; // 商业险到期日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("交强险到期日期")
private Date compulsoryInsuranceEndDateStart; // 交强险到期日期
private Date compulsoryInsuranceEndDateEnd; // 交强险到期日期
@ApiModelProperty("0为内部车,1为外部车")
private Integer vehState; // 0为内部车,1为外部车
}

89
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleQuery.java

@ -0,0 +1,89 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.api.ascustomervehicle;
import com.yxt.common.core.query.Query;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleQuery.java <br/>
* Class: as.api.ascustomervehicle.AsCustomerVehicleQuery <br/>
* Description: 客户车辆信息 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "客户车辆信息 查询条件", description = "客户车辆信息 查询条件")
public class AsCustomerVehicleQuery implements Query {
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private Integer mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private Integer lastMileage; // 上次保养里程
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("下次保养日期")
private Date nextMaintainDateStart; // 下次保养日期
private Date nextMaintainDateEnd; // 下次保养日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("购车日期")
private Date buyDateStart; // 购车日期
private Date buyDateEnd; // 购车日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("商业险到期日期")
private Date commercialInsuranceEndDateStart; // 商业险到期日期
private Date commercialInsuranceEndDateEnd; // 商业险到期日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("交强险到期日期")
private Date compulsoryInsuranceEndDateStart; // 交强险到期日期
private Date compulsoryInsuranceEndDateEnd; // 交强险到期日期
@ApiModelProperty("0为内部车,1为外部车")
private Integer vehState; // 0为内部车,1为外部车
}

91
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleVo.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.api.ascustomervehicle;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleVo.java <br/>
* Class: as.api.ascustomervehicle.AsCustomerVehicleVo <br/>
* Description: 客户车辆信息 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "客户车辆信息 视图数据对象", description = "客户车辆信息 视图数据对象")
public class AsCustomerVehicleVo implements Vo {
private String sid; // sid
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private Integer mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private Integer lastMileage; // 上次保养里程
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("下次保养日期")
private Date nextMaintainDateStart; // 下次保养日期
private Date nextMaintainDateEnd; // 下次保养日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("购车日期")
private Date buyDateStart; // 购车日期
private Date buyDateEnd; // 购车日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("商业险到期日期")
private Date commercialInsuranceEndDateStart; // 商业险到期日期
private Date commercialInsuranceEndDateEnd; // 商业险到期日期
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("交强险到期日期")
private Date compulsoryInsuranceEndDateStart; // 交强险到期日期
private Date compulsoryInsuranceEndDateEnd; // 交强险到期日期
@ApiModelProperty("0为内部车,1为外部车")
private Integer vehState; // 0为内部车,1为外部车
}

69
yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleMapper.java

@ -0,0 +1,69 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.biz.ascustomervehicle;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.as.api.ascustomervehicle.AsCustomerCrmVehVo;
import com.yxt.anrui.as.api.ascustomervehicle.AsCustomerVehicle;
import com.yxt.anrui.as.api.ascustomervehicle.AsCustomerVehicleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleMapper.java <br/>
* Class: as.biz.ascustomervehicle.AsCustomerVehicleMapper <br/>
* Description: 客户车辆信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface AsCustomerVehicleMapper extends BaseMapper<AsCustomerVehicle> {
//@Update("update as_customer_vehicle set name=#{msg} where id=#{id}")
//IPage<AsCustomerVehicleVo> voPage(IPage<AsCustomerVehicle> page, @Param(Constants.WRAPPER) QueryWrapper<AsCustomerVehicle> qw);
IPage<AsCustomerVehicleVo> selectPageVo(IPage<AsCustomerVehicle> page, @Param(Constants.WRAPPER) Wrapper<AsCustomerVehicle> qw);
List<AsCustomerVehicleVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<AsCustomerVehicle> qw);
@Select("select * from as_customer_vehicle")
List<AsCustomerVehicleVo> selectListVo();
@Select("select * from as_customer_vehicle")
List<AsCustomerCrmVehVo> listCustomerVeh();
}

13
yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.as.biz.ascustomervehicle.AsCustomerVehicleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.as.api.ascustomervehicle.AsCustomerVehicleVo">
SELECT * FROM as_customer_vehicle <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.as.api.ascustomervehicle.AsCustomerVehicleVo">
SELECT * FROM as_customer_vehicle <where> ${ew.sqlSegment} </where>
</select>
</mapper>

102
yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleRest.java

@ -0,0 +1,102 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.biz.ascustomervehicle;
import com.yxt.anrui.as.api.ascustomervehicle.*;
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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleFeignFallback.java <br/>
* Class: as.biz.ascustomervehicle.AsCustomerVehicleRest <br/>
* Description: 客户车辆信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "客户车辆信息")
@RestController
@RequestMapping("as/v1/ascustomervehicle")
public class AsCustomerVehicleRest{
@Autowired
private AsCustomerVehicleService asCustomerVehicleService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<AsCustomerVehicleVo>> listPage(@RequestBody PagerQuery<AsCustomerVehicleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<AsCustomerVehicleVo> pv = asCustomerVehicleService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("查询数据的列表")
@PostMapping("/listCustomerVeh")
public ResultBean<List<AsCustomerCrmVehVo>> listCustomerVeh(){
ResultBean rb = ResultBean.fireFail();
List<AsCustomerCrmVehVo> list = asCustomerVehicleService.listCustomerVeh();
return rb.success().setData(list);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody AsCustomerVehicleDto dto){
ResultBean rb = ResultBean.fireFail();
asCustomerVehicleService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
asCustomerVehicleService.delBySids(sids);
return rb.success();
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<AsCustomerVehicleDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
AsCustomerVehicleDetailsVo vo = asCustomerVehicleService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
}

109
yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleService.java

@ -0,0 +1,109 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.biz.ascustomervehicle;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.as.api.ascustomervehicle.*;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
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.Service;
import java.util.List;
/**
* Project: asdfasd(sdg) <br/>
* File: AsCustomerVehicleService.java <br/>
* Class: as.biz.ascustomervehicle.AsCustomerVehicleService <br/>
* Description: 客户车辆信息 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-19 11:28:19 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class AsCustomerVehicleService extends MybatisBaseService<AsCustomerVehicleMapper, AsCustomerVehicle> {
private QueryWrapper<AsCustomerVehicle> createQueryWrapper(AsCustomerVehicleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<AsCustomerVehicle> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<AsCustomerVehicleVo> listPageVo(PagerQuery<AsCustomerVehicleQuery> pq) {
AsCustomerVehicleQuery query = pq.getParams();
QueryWrapper<AsCustomerVehicle> qw = createQueryWrapper(query);
IPage<AsCustomerVehicle> page = PagerUtil.queryToPage(pq);
IPage<AsCustomerVehicleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsCustomerVehicleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(AsCustomerVehicleDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(AsCustomerVehicleDto dto){
AsCustomerVehicle entity = new AsCustomerVehicle();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(AsCustomerVehicleDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
AsCustomerVehicle entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public AsCustomerVehicleDetailsVo fetchDetailsVoBySid(String sid){
AsCustomerVehicle entity = fetchBySid(sid);
AsCustomerVehicleDetailsVo vo = new AsCustomerVehicleDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<AsCustomerCrmVehVo> listCustomerVeh() {
return baseMapper.listCustomerVeh();
}
}
Loading…
Cancel
Save