Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 6 months ago
parent
commit
f2fcd6c6be
  1. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java
  2. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java
  3. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java
  4. 8
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml
  5. 8
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java
  6. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java
  7. 16
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/voucher/VoucherService.java
  8. 70
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java
  9. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  10. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleDetails.java
  11. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/QuickAddCustomer.java
  12. 21
      yxt-as/src/main/java/com/yxt/anrui/as/biz/ascustomervehicle/AsCustomerVehicleService.java
  13. 236
      yxt-as/src/main/java/com/yxt/anrui/as/feign/yxtcrm/CrmCustomerDto.java
  14. 36
      yxt-as/src/main/java/com/yxt/anrui/as/feign/yxtcrm/YxtCrmCustomerTempFeign.java
  15. 12
      yxt-crm-biz/src/main/java/com/yxt/crm/apiadmin/CrmCustomerRest.java
  16. 62
      yxt-crm-biz/src/main/java/com/yxt/crm/biz/crmcustomer/CrmCustomerDto.java
  17. 100
      yxt-crm-biz/src/main/java/com/yxt/crm/biz/crmcustomer/CrmCustomerService.java

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java

@ -149,6 +149,12 @@ public interface BusSalesOrderVehicleFeign {
@ResponseBody
ResultBean<List<BusSalesOrderVehicle>> selectListByOrderSidAndDkrSid(@RequestParam("saleOrderSid") String saleOrderSid, @RequestParam("borrowerSid") String borrowerSid);
@ApiOperation("根据销售订单sid和贷款人sid和贷款合同sid查车辆信息")
@PostMapping("/selectListByOrderSidAndDkrSidAndLoanContractSid")
@ResponseBody
ResultBean<List<BusSalesOrderVehicle>> selectListByOrderSidAndDkrSidAndLoanContractSid(@RequestParam("saleOrderSid") String saleOrderSid, @RequestParam("borrowerSid") String borrowerSid,@RequestParam("loanContractSid") String loanContractSid);
@ApiOperation("根据销售订单sid和消贷合同sid查车辆信息")
@PostMapping("/selectListByOrderSidAndXdConSid")
@ResponseBody

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java

@ -143,6 +143,11 @@ public class BusSalesOrderVehicleFeignFallback implements BusSalesOrderVehicleFe
return null;
}
@Override
public ResultBean<List<BusSalesOrderVehicle>> selectListByOrderSidAndDkrSidAndLoanContractSid(String saleOrderSid, String borrowerSid, String loanContractSid) {
return null;
}
@Override
public ResultBean<List<BusSalesOrderVehicle>> selectListByOrderSidAndXdConSid(String saleOrderSid, String loanContractSid) {
return null;

1
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java

@ -165,6 +165,7 @@ public interface BusSalesOrderVehicleMapper extends BaseMapper<BusSalesOrderVehi
BusSalesOrderVehicle selectBySidAndOrderBo(@Param("saleOrderSid") String saleOrderSid, @Param("pos") String pos);
List<BusSalesOrderVehicle> selectListByOrderSidAndDkrSid(@Param("saleOrderSid") String saleOrderSid,@Param("borrowerSid") String borrowerSid);
List<BusSalesOrderVehicle> selectListByOrderSidAndDkrSidAndLoanContractSid(@Param("saleOrderSid") String saleOrderSid,@Param("borrowerSid") String borrowerSid,@Param("loanContractSid") String loanContractSid);
List<String> selectVinNos(@Param("borrowSid") String sid, @Param("saleOrderSid") String saleOrderSid);

8
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml

@ -375,6 +375,14 @@
WHERE salesOrderSid = #{saleOrderSid}
AND borrowerSid = #{borrowerSid}
</select>
<select id="selectListByOrderSidAndDkrSidAndLoanContractSid"
resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
SELECT *
FROM bus_sales_order_vehicle
WHERE salesOrderSid = #{saleOrderSid}
AND borrowerSid = #{borrowerSid}
AND loanContractSid = #{loanContractSid}
</select>
<select id="selectVinNos" resultType="java.lang.String">
select

8
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java

@ -160,6 +160,14 @@ public class BusSalesOrderVehicleRest implements BusSalesOrderVehicleFeign {
return rb.success().setData(busSalesOrderVehicles);
}
@Override
public ResultBean<List<BusSalesOrderVehicle>> selectListByOrderSidAndDkrSidAndLoanContractSid(String saleOrderSid, String borrowerSid,String loanContractSid) {
ResultBean rb = ResultBean.fireFail();
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleService.selectListByOrderSidAndDkrSidAndLoanContractSid(saleOrderSid, borrowerSid,loanContractSid);
return rb.success().setData(busSalesOrderVehicles);
}
@Override
public ResultBean<List<BusSalesOrderVehicle>> selectListByOrderSidAndXdConSid(String saleOrderSid, String loanContractSid) {
ResultBean rb = ResultBean.fireFail();

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java

@ -631,7 +631,9 @@ public class BusSalesOrderVehicleService extends MybatisBaseService<BusSalesOrde
public List<BusSalesOrderVehicle> selectListByOrderSidAndDkrSid(String saleOrderSid, String borrowerSid) {
return baseMapper.selectListByOrderSidAndDkrSid(saleOrderSid, borrowerSid);
}
public List<BusSalesOrderVehicle> selectListByOrderSidAndDkrSidAndLoanContractSid(String saleOrderSid, String borrowerSid,String loanContractSid) {
return baseMapper.selectListByOrderSidAndDkrSidAndLoanContractSid(saleOrderSid, borrowerSid,loanContractSid);
}
public List<String> selectVinNos(String sid, String saleOrderSid) {
return baseMapper.selectVinNos(sid, saleOrderSid);
}

16
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/voucher/VoucherService.java

@ -48,20 +48,20 @@ public class VoucherService extends FinKingDeeService {
}
String kingDeeData = VoucherCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData());
try {
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.GL_VOUCHER.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.GL_VOUCHER.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
if (!resultBean1.getSuccess()) {
log.info("凭证暂存失败!");
return rb.setMsg("凭证暂存失败!");
}
log.info("凭证暂存成功!");
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.GL_VOUCHER.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
if (!resultBean1.getSuccess()) {
log.info("凭证保存失败!");
return rb.setMsg("凭证保存失败!");
}
log.info("凭证保存成功!");
// ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.GL_VOUCHER.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
// if (!resultBean1.getSuccess()) {
// log.info("凭证暂存失败!");
// return rb.setMsg("凭证暂存失败!");
// }
// log.info("凭证暂存成功!");
// String submitKD = getSubmitKD(resultBean1.getData(), KingDeeBillId.AR_OTHERRECEIVABLE.getID());
// ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), submitKD, KingDeeBillUrl.SUBMIT_URL.getURL());
// if (!resultBean2.getSuccess()) {

70
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java

@ -664,38 +664,52 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService<LoanMonth
private void pushAccrualVoucher(String businessSid) {
List<LoanMonthlyAccrualRecord> records = loanMonthlyAccrualRecordService.selByMainSid(businessSid);
if (!records.isEmpty()) {
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanMonthlyAccrualRecord v : records) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchDetails(v.getRecordSid()).getData();
if (null != planDetails) {
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule repaymentSchedule = loanRepaymentScheduleService.fetchBySid(scheduleSid);
if (null != repaymentSchedule) {
if (StringUtils.isNotBlank(repaymentSchedule.getCwDeptNo())) {
voucherDetail.setDeptCode(repaymentSchedule.getCwDeptNo());
}
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
if (null != busSalesOrderVehicle) {
String customerNumber = "";
if (StringUtils.isNotBlank(busSalesOrderVehicle.getTemporaryNo())) {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
int index = 100;
for (int i = 0; i < records.size(); i += 100) {
if (i + 100 > records.size()) {
index = records.size() - i;
}
List<LoanMonthlyAccrualRecord> newList = records.subList(i, i + index);
if (!newList.isEmpty()) {
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanMonthlyAccrualRecord v : newList) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchDetails(v.getRecordSid()).getData();
if (null != planDetails) {
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule repaymentSchedule = loanRepaymentScheduleService.fetchBySid(scheduleSid);
if (null != repaymentSchedule) {
if (StringUtils.isNotBlank(repaymentSchedule.getCwDeptNo())) {
voucherDetail.setDeptCode(repaymentSchedule.getCwDeptNo());
}
}
voucherDetail.setCustomerCode(customerNumber);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
if (null != busSalesOrderVehicle) {
String customerNumber = "";
if (StringUtils.isNotBlank(busSalesOrderVehicle.getTemporaryNo())) {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(planDetails.getDueMoney());
voucherDetails.add(voucherDetail);
}
voucherDetail.setAmount(planDetails.getDueMoney());
voucherDetails.add(voucherDetail);
}
generalVoucher.setVoucherDetails(voucherDetails);
try {
finKingDeeFeign.saveAccrualVoucher(generalVoucher);
} catch (Exception e) {
e.printStackTrace();
}
}
}
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveAccrualVoucher(generalVoucher);
}
}

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -581,7 +581,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) {
otherBankNo = scheduleDetails.getOtherBankNo();
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (int j = 0; j < vehicles.size(); j++) {
BusSalesOrderVehicle vehicle = vehicles.get(j);
@ -790,7 +790,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
bankContractNo = loancontractVo.getBankContractNo();
}
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (int j = 0; j < vehicles.size(); j++) {
BusSalesOrderVehicle vehicle = vehicles.get(j);
@ -969,7 +969,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) {
otherBankNo = scheduleDetails.getOtherBankNo();
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (BusSalesOrderVehicle vehicle : vehicles) {
String linkNo = vehicle.getLinkNo();
@ -1145,7 +1145,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
bankContractNo = loancontractVo.getBankContractNo();
}
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (BusSalesOrderVehicle vehicle : vehicles) {
String linkNo = vehicle.getLinkNo();
@ -1390,7 +1390,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) {
otherBankNo = scheduleDetails.getOtherBankNo();
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (int j = 0; j < vehicles.size(); j++) {
BusSalesOrderVehicle vehicle = vehicles.get(j);
@ -1598,7 +1598,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
bankContractNo = loancontractVo.getBankContractNo();
}
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (int j = 0; j < vehicles.size(); j++) {
BusSalesOrderVehicle vehicle = vehicles.get(j);
@ -1776,7 +1776,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) {
otherBankNo = scheduleDetails.getOtherBankNo();
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (BusSalesOrderVehicle vehicle : vehicles) {
String linkNo = vehicle.getLinkNo();
@ -1951,7 +1951,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
bankContractNo = loancontractVo.getBankContractNo();
}
}
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData();
List<BusSalesOrderVehicle> vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSidAndLoanContractSid(salesOrderSid, borrowerSid,loanContractSid).getData();
if (!vehicles.isEmpty()) {
for (BusSalesOrderVehicle vehicle : vehicles) {
String linkNo = vehicle.getLinkNo();

4
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/AsCustomerVehicleDetails.java

@ -113,4 +113,8 @@ public class AsCustomerVehicleDetails{
private String carRemarks;
@ApiModelProperty("保养备注")
private String byRemarks;
private String vehState;
private String saleOrgName;
private String saleDate;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/api/ascustomervehicle/QuickAddCustomer.java

@ -179,7 +179,9 @@ public class QuickAddCustomer implements Dto {
@ApiModelProperty("保养备注")
private String byRemarks;
private String vehState;
private String saleOrgName;
private String saleDate;
}

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

@ -33,6 +33,8 @@ import com.yxt.anrui.as.api.ascustomervehmaintenance.AsCustomervehMaintenance;
import com.yxt.anrui.as.biz.ascustomervehmaintenance.AsCustomervehMaintenanceService;
import com.yxt.anrui.as.feign.crm.CrmCustomerTempDto;
import com.yxt.anrui.as.feign.crm.CrmCustomerTempFeign;
import com.yxt.anrui.as.feign.yxtcrm.CrmCustomerDto;
import com.yxt.anrui.as.feign.yxtcrm.YxtCrmCustomerTempFeign;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
@ -65,7 +67,8 @@ public class AsCustomerVehicleService extends MybatisBaseService<AsCustomerVehic
private AsCustomervehMaintenanceService asCustomervehMaintenanceService;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private YxtCrmCustomerTempFeign yxtCrmCustomerTempFeign;
private QueryWrapper<AsCustomerVehicle> createQueryWrapper(AsCustomerVehicleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -255,14 +258,26 @@ public class AsCustomerVehicleService extends MybatisBaseService<AsCustomerVehic
public ResultBean quickAddSave(QuickAddCustomer dto) {
ResultBean rb = ResultBean.fireFail();
CrmCustomerTempDto tempDto = new CrmCustomerTempDto();
CrmCustomerDto tempDto = new CrmCustomerDto();
BeanUtil.copyProperties(dto, tempDto);
ResultBean save = crmCustomerTempFeign.save(tempDto);
ResultBean save = yxtCrmCustomerTempFeign.saveForQuickVeh(tempDto);
if (save.getSuccess()) {
String sid = (String) save.getData();
dto.setCustomerSid(sid);
AsCustomerVehicleDetails vehicleDetails = new AsCustomerVehicleDetails();
BeanUtil.copyProperties(dto, vehicleDetails);
if (dto.getVehState().equals("0")) {
if (StringUtils.isNotBlank(dto.getVinNo())) {
vehicleDetails.setVinNo(dto.getVinNo());
}
if (StringUtils.isNotBlank(dto.getSaleOrgName())) {
vehicleDetails.setSaleOrgName(dto.getSaleOrgName());
}
if (StringUtils.isNotBlank(dto.getSaleDate())) {
vehicleDetails.setSaleDate(dto.getSaleDate());
}
vehicleDetails.setVehState("0");
}
saveCustomerVeh(vehicleDetails);
} else {
return rb.setMsg(save.getMsg());

236
yxt-as/src/main/java/com/yxt/anrui/as/feign/yxtcrm/CrmCustomerDto.java

@ -0,0 +1,236 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.feign.yxtcrm;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* Project: crm(crm) <br/>
* File: CrmCustomerDto.java <br/>
* Class: com.yxt.crm.api.crmcustomer.CrmCustomerDto <br/>
* Description: 客户 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-15 17:06:09 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "客户 数据传输对象", description = "客户 数据传输对象")
public class CrmCustomerDto implements Dto {
private static final long serialVersionUID = 793474187074718535L;
@ApiModelProperty(value = "当前登录用户的sid")
private String userSid;
@ApiModelProperty(value = "客户类型(1个人/2企业)", required = true)
@NotBlank(message = "客户类型为必选项")
private String customerType;
@ApiModelProperty(value = "客户类型key", required = true)
@NotBlank(message = "客户类型为必选项")
private String customerTypeKey;
@ApiModelProperty(value = "见面方式key", required = true)
@NotBlank(message = "见面方式为必选项")
private String visitWayKey;
@ApiModelProperty(value = "见面方式(到店/电话/拜访)", required = true)
@NotBlank(message = "见面方式为必选项")
private String visitWay;
@ApiModelProperty(value = "客户名称", required = true)
@NotBlank(message = "客户名称为必填项")
private String name;
@ApiModelProperty("联系电话")
@NotBlank(message = "联系电话为必填项")
private String mobile;
@ApiModelProperty("微信号码")
private String weixin;
@ApiModelProperty("公司名称:个人客户时显示")
private String companyName;
@ApiModelProperty("行政区划代码(省)")
private String address_province;
@ApiModelProperty("行政区划代码(市)")
private String address_city;
@ApiModelProperty("行政区划代码(县)")
private String address_county;
@ApiModelProperty("客户地址:省")
private String province;
@ApiModelProperty("客户地址:市")
private String city;
@ApiModelProperty("客户地址:县")
private String county;
@ApiModelProperty("客户地址:详细地址")
private String address;
@ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
private String level;
@ApiModelProperty("客户级别key")
private String levelKey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("提醒日期")
private String remind_day;
@ApiModelProperty("提醒备注")
private String remind_remark;
//更多信息
@ApiModelProperty("客户生日:个人客户时显示")
private String birthday;
@ApiModelProperty("性别:个人客户时显示")
private String sex;
@ApiModelProperty("性别key:个人客户时")
private String sexKey;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)")
private String IDNumber;
@ApiModelProperty("证件有效期")
private String endDate;
@ApiModelProperty("电子邮箱")
private String e_mail;
@ApiModelProperty(value = "联系人")
private String contacts;
@ApiModelProperty("紧急联系人")
private String emergencyContact;
@ApiModelProperty("紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)")
private String source;
@ApiModelProperty("客户来源key")
private String sourceKey;
@ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)")
private String customerClass;
@ApiModelProperty("客户分类key")
private String customerClassKey;
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty("业务人员sid")
private String staffSid;
// //运营信息
// @ApiModelProperty(value = "运营信息")
// private CrmBusinessDto crmBusinessDto = new CrmBusinessDto();
// //见证材料集合
// @ApiModelProperty(value = "见证材料的集合,编辑保存时无此字段")
// private List<PcCrmVisitAppendixDto> crmVisitAppendixDtoList = new ArrayList<>();
private String orgPath;
private String useOrgSid;
private String customerOrgSid;
private String customerOrgName;
private String vinNo;
private String vehState;
private String saleOrgName;
private String saleDate;
private String sid;
//--------------------车辆信息----------------------
private String customerVehSid; // 客户车辆信息sid
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private String mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private String lastMileage; // 上次保养里程
@ApiModelProperty("下次保养日期")
private String nextMaintainDate; // 下次保养日期
@ApiModelProperty("购车日期")
private String buyDate; // 购车日期
@ApiModelProperty("商业险到期日期")
private String commercialInsuranceEndDate; // 商业险到期日期
@ApiModelProperty("交强险到期日期")
private String compulsoryInsuranceEndDate; // 交强险到期日期
@ApiModelProperty("行驶里程")
private String currentMileage; // 行驶里程
@ApiModelProperty("每月公里")
private String MonthKm; // 每月公里
@ApiModelProperty("滤芯到期公里")
private String filter_km; // 滤芯到期公里
@ApiModelProperty("滤芯到期日期")
private String filter_date; // 滤芯到期日期
@ApiModelProperty("机油到期公里")
private String engineoil_km; // 机油到期公里
@ApiModelProperty("机油到期日期")
private String engineoil_date; // 机油到期日期
@ApiModelProperty("齿轮油到期公里")
private String gearoil_km; // 齿轮油到期公里
@ApiModelProperty("齿轮油到期日期")
private String gearoil_date; // 齿轮油到期日期
@ApiModelProperty("宝轮到期公里")
private String treasurewheel_km; // 宝轮到期公里
@ApiModelProperty("宝轮到期日期")
private String treasurewheel_date; // 宝轮到期日期
@ApiModelProperty("风扇皮带到期公里")
private String fanbelt_km; // 风扇皮带到期公里
@ApiModelProperty("风扇皮带到期日期")
private String fanbelt_date; // 风扇皮带到期日期
@ApiModelProperty("刹车片到期公里")
private String brakepads_km; // 刹车片到期公里
@ApiModelProperty("刹车片到期日期")
private String brakepads_date; // 刹车片到期日期
@ApiModelProperty("车辆备注")
private String carRemarks;
@ApiModelProperty("保养备注")
private String byRemarks;
}

36
yxt-as/src/main/java/com/yxt/anrui/as/feign/yxtcrm/YxtCrmCustomerTempFeign.java

@ -0,0 +1,36 @@
package com.yxt.anrui.as.feign.yxtcrm;
import com.yxt.anrui.as.feign.crm.CrmCustomerTemp;
import com.yxt.anrui.as.feign.crm.CrmCustomerTempDto;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @author Fan
* @description
* @date 2024/7/19 10:10
*/
@Api(tags = "潜在客户信息")
@FeignClient(
contextId = "anrui-yxt-CrmCustomer",
name = "yxt-crm",
path = "/apiadmin/v1/crmcustomer"
)
public interface YxtCrmCustomerTempFeign {
/**
* pc端潜在客户新增保存
*
* @param dto 客户信息及运行信息数据传输对象
* @return
*/
@ApiOperation("新增保存")
@PostMapping("/saveForQuickVeh")
public ResultBean<String> saveForQuickVeh(@Valid @RequestBody CrmCustomerDto dto);
}

12
yxt-crm-biz/src/main/java/com/yxt/crm/apiadmin/CrmCustomerRest.java

@ -93,6 +93,18 @@ public class CrmCustomerRest {
return crmCustomerService.saveCrmCustomer(dto);
}
/**
* pc端潜在客户新增保存
*
* @param dto 客户信息及运行信息数据传输对象
* @return
*/
@ApiOperation("新增保存")
@PostMapping("/saveForQuickVeh")
public ResultBean<String> saveForQuickVeh(@Valid @RequestBody CrmCustomerDto dto) {
return crmCustomerService.saveForQuickVeh(dto);
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")

62
yxt-crm-biz/src/main/java/com/yxt/crm/biz/crmcustomer/CrmCustomerDto.java

@ -173,4 +173,66 @@ public class CrmCustomerDto implements Dto {
private String saleDate;
private String sid;
//--------------------车辆信息----------------------
private String customerVehSid; // 客户车辆信息sid
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("发动机号")
private String engineNo; // 发动机号
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型")
private String vehModel; // 车型
@ApiModelProperty("行驶里程")
private String mileage; // 行驶里程
@ApiModelProperty("上次保养里程")
private String lastMileage; // 上次保养里程
@ApiModelProperty("下次保养日期")
private String nextMaintainDate; // 下次保养日期
@ApiModelProperty("购车日期")
private String buyDate; // 购车日期
@ApiModelProperty("商业险到期日期")
private String commercialInsuranceEndDate; // 商业险到期日期
@ApiModelProperty("交强险到期日期")
private String compulsoryInsuranceEndDate; // 交强险到期日期
@ApiModelProperty("行驶里程")
private String currentMileage; // 行驶里程
@ApiModelProperty("每月公里")
private String MonthKm; // 每月公里
@ApiModelProperty("滤芯到期公里")
private String filter_km; // 滤芯到期公里
@ApiModelProperty("滤芯到期日期")
private String filter_date; // 滤芯到期日期
@ApiModelProperty("机油到期公里")
private String engineoil_km; // 机油到期公里
@ApiModelProperty("机油到期日期")
private String engineoil_date; // 机油到期日期
@ApiModelProperty("齿轮油到期公里")
private String gearoil_km; // 齿轮油到期公里
@ApiModelProperty("齿轮油到期日期")
private String gearoil_date; // 齿轮油到期日期
@ApiModelProperty("宝轮到期公里")
private String treasurewheel_km; // 宝轮到期公里
@ApiModelProperty("宝轮到期日期")
private String treasurewheel_date; // 宝轮到期日期
@ApiModelProperty("风扇皮带到期公里")
private String fanbelt_km; // 风扇皮带到期公里
@ApiModelProperty("风扇皮带到期日期")
private String fanbelt_date; // 风扇皮带到期日期
@ApiModelProperty("刹车片到期公里")
private String brakepads_km; // 刹车片到期公里
@ApiModelProperty("刹车片到期日期")
private String brakepads_date; // 刹车片到期日期
@ApiModelProperty("车辆备注")
private String carRemarks;
@ApiModelProperty("保养备注")
private String byRemarks;
}

100
yxt-crm-biz/src/main/java/com/yxt/crm/biz/crmcustomer/CrmCustomerService.java

@ -636,7 +636,6 @@ public class CrmCustomerService extends MybatisBaseService<CrmCustomerMapper, Cr
if (null != customerTemp) {
BeanUtils.copyProperties(customerTemp,vo,"isDesignatedEnterprise","filingIndate","sid");
vo.setVehState("0");
vo.setVinNo(vinNo);
vo.setSaleOrgName(order.getUseOrgName());
vo.setSaleDate(DateUtil.formatDate(order.getCreateDate()));
}
@ -644,6 +643,7 @@ public class CrmCustomerService extends MybatisBaseService<CrmCustomerMapper, Cr
}
}
}
vo.setVinNo(query.getVinNo());
vo.setUserSid(query.getUserSid());
vo.setUseOrgSid(query.getUseOrgSid());
vo.setOrgPath(query.getOrgPath());
@ -653,4 +653,102 @@ public class CrmCustomerService extends MybatisBaseService<CrmCustomerMapper, Cr
vo.setCustomerTypeKey(query.getCustomerTypeKey());
return vo;
}
public ResultBean<String> saveForQuickVeh(CrmCustomerDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
if (dto.getVehState().equals("0")) {
CrmCustomer crmCustomerTemp = new CrmCustomer();
BeanUtil.copyProperties(dto,crmCustomerTemp,"sid");
String orgSid = "";
if (StringUtils.isNotBlank(dto.getOrgPath())) {
orgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
} else {
orgSid = sysStaffOrgFeign.getPathSidByUserSid(dto.getUserSid()).getData();
}
crmCustomerTemp.setCreateOrgSid(orgSid);
ResultBean resultBean = dictCommonFeign.getFirstDictKeyByType(DictCommonType.FOLLOW_STATE, "0");
if (resultBean.getSuccess() && resultBean.getData() != null) {
String key = resultBean.getData().toString();
crmCustomerTemp.setFollow_state_key(key);
crmCustomerTemp.setFollow_state(dictCommonFeign.selectBykey(key, DictCommonType.FOLLOW_STATE).getData().getDictValue());
}
//客户编码
String customerNo = getPrefix(crmCustomerTemp.getStaffSid(), crmCustomerTemp.getName(), crmCustomerTemp.getMobile());
crmCustomerTemp.setCustomerNo(customerNo);
if (StringUtils.isNotBlank(dto.getUseOrgSid())) {
crmCustomerTemp.setUseOrgSid(dto.getUseOrgSid());
}
save(crmCustomerTemp);
} else {
//手机号
String mobile = dto.getMobile();
//微信号
String weixin = dto.getWeixin();
if ("1".equals(dto.getCustomerType())) {
/* if (!mobile.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
return rb.setMsg("手机号格式不正确");
}*/
/*if (StringUtils.isNotBlank(dto.getIDNumber())) {
if (!weixin.matches("^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$")) {
return rb.setMsg("证件号码格式不正确");
}
}*/
} else {
/*if (StringUtils.isNotBlank(dto.getIDNumber())) {
if (dto.getIDNumber().length() != 9 && dto.getIDNumber().length() != 18) {
return rb.setMsg("证件号码格式不正确");
}
}*/
}
if (StringUtils.isNotBlank(weixin)) {
if (!weixin.matches("^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$") && !weixin.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
return rb.setMsg("微信号格式不正确");
}
}
String email = dto.getE_mail();
if (StringUtils.isNotBlank(email)) {
if (!email.matches("^[0-9A-Za-z][\\.-_0-9A-Za-z]*@[0-9A-Za-z]+(?:\\.[0-9A-Za-z]+)+$")) {
return rb.setMsg("邮箱格式不正确");
}
}
String emergencyMobile = dto.getEmergencyMobile();
if (StringUtils.isNotBlank(emergencyMobile)) {
if (!emergencyMobile.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
return rb.setMsg("紧急联系电话格式不正确");
}
}
//根据用户sid获取业务员信息
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getUserSid()).getData();
if (sysUserVo == null) {
return rb.setMsg("该用户不存在");
}
String staffSid = sysUserVo.getStaffSid();
String name = dto.getName();
//生成客户编码:分公司简称+部门编码+手机号+姓名首字母大写拼写
String customerNo = getPrefix(staffSid, name, mobile);
//查询该客户编码是否存在
CrmCustomer crmCustomerTemp = baseMapper.selectByCustomerNo(customerNo);
if (crmCustomerTemp != null) {//存在
//查询是否是当前用户客户
if (!dto.getUserSid().equals(crmCustomerTemp.getCreateBySid())) {
String staffName = "";
SysUserVo sysCrmVo = sysUserFeign.fetchBySid(crmCustomerTemp.getCreateBySid()).getData();
if (sysCrmVo != null) {
staffName = sysCrmVo.getName();
return rb.setCode(HttpStatusEnum.CRM_ERROR_NOTBELONG.getCode()).setMsg("为" + staffName + "销售专员客户");
}
} else {
// 返回潜在客户sid,跳转维护信息页面
return rb.setCode(HttpStatusEnum.CRM_ERROR_EXIST.getCode()).setMsg(HttpStatusEnum.CRM_ERROR_EXIST.getMsg()).setData(crmCustomerTemp.getSid());
}
} else {//不存在
// 新增
CrmCustomer customerTemp = saveCrmCustomerTemp(dto, sysUserVo);
sid = customerTemp.getSid();
}
}
return rb.success().setData(sid);
}
}

Loading…
Cancel
Save