Browse Source

客户档案管理,客户意向车型

master
hanlinghao 3 years ago
parent
commit
9e2c25516f
  1. 18
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/AppModelVeDetailVo.java
  2. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/BaseVehmodelConfigFeign.java
  3. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/BaseVehmodelConfigFeignFallback.java
  4. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigMapper.java
  5. 28
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigMapper.xml
  6. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigRest.java
  7. 10
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigService.java
  8. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscollectionconfirmation/BusCollectionConfirmationFeign.java
  9. 8
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeposit/BusDepositService.java
  10. 16
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomerfile/CrmCustomerFileFeign.java
  11. 10
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomerfile/CrmCustomerFileFeignFallback.java
  12. 8
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java
  13. 5
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java
  14. 43
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandDetailsVo.java
  15. 55
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandDto.java
  16. 26
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandVo.java
  17. 2
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemand.java
  18. 32
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemandFeign.java
  19. 160
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemandFeignFallback.java
  20. 28
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.java
  21. 58
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.xml
  22. 11
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileRest.java
  23. 336
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileService.java
  24. 8
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java
  25. 39
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml
  26. 12
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java
  27. 13
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java
  28. 35
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.java
  29. 75
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.xml
  30. 89
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandRest.java
  31. 128
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandService.java
  32. 9
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvisit/CrmVisitRest.java

18
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/AppModelVeDetailVo.java

@ -1,10 +1,26 @@
package com.yxt.anrui.base.api.basevehmodelconfig;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class AppModelVeDetailVo {
public class AppModelVeDetailVo implements Vo {
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("品牌sid")
private String brandSid;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("销售指导价")
private BigDecimal saleReferencePrice;
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/BaseVehmodelConfigFeign.java

@ -101,4 +101,11 @@ public interface BaseVehmodelConfigFeign {
@ApiOperation("手机端车型询价")
@PostMapping("/getAppVehicleInquiryVo/{modelSid}")
public ResultBean<AppBusVehicleInquiryVo> getAppVehicleInquiryVo(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
@ApiOperation("意向车型查询车型数据")
@GetMapping("/getAppCommonlyUsedModelDetails/{userSid}/{modelSid}/{configSid}")
public ResultBean<AppModelVeDetailVo> getAppIntentionVehicleVo(@RequestParam("userSid") String userSid,
@RequestParam("modelSid") String modelSid, @RequestParam("configSid") String configSid);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/BaseVehmodelConfigFeignFallback.java

@ -96,4 +96,9 @@ public class BaseVehmodelConfigFeignFallback implements BaseVehmodelConfigFeign
return null;
}
@Override
public ResultBean<AppModelVeDetailVo> getAppIntentionVehicleVo(String userSid, String modelSid, String configSid) {
return null;
}
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigMapper.java

@ -110,4 +110,6 @@ public interface BaseVehmodelConfigMapper extends BaseMapper<BaseVehmodelConfig>
BaseVehmodelConfigVo checkSave(@Param("modelSid") String modelSid, @Param("configurationItemsSid") String configurationItemsSid);
BaseVehmodelConfig getBySid(String sid);
AppModelVeDetailVo getAppIntentionVehicleVo(@Param("useOrg") String useOrg, @Param("modelSid") String modelSid, @Param("configSid") String configSid);
}

28
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigMapper.xml

@ -65,8 +65,8 @@
bmc.brandName,
bvc.guidedPrice
FROM base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm ON bvc.modelSid = bvm.sid
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
LEFT JOIN base_vehicle_model bvm ON bvc.modelSid = bvm.sid
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
WHERE bvm.sid = #{modelSid}
GROUP BY bvm.sid
</select>
@ -82,7 +82,7 @@
<select id="getConfigNumByModelSid" resultType="java.lang.String">
SELECT count(*)
FROM base_vehmodel_config bvc
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
WHERE bvc.modelSid = #{modelSid}
</select>
@ -126,8 +126,8 @@
bmc.configuringBao,
bmc.otherConfig
FROM base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm ON bvc.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.`sid`
LEFT JOIN base_vehicle_model bvm ON bvc.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.`sid`
WHERE bvm.sid = #{modelSid}
AND bmc.sid = #{configSid}
</select>
@ -145,7 +145,21 @@
bvc.`manufactorSettlementPrice`,
bvc.`guidedPrice`
FROM base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm ON bvc.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bvc.`configurationItemsSid` = bmc.`sid`
LEFT JOIN base_vehicle_model bvm ON bvc.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bvc.`configurationItemsSid` = bmc.`sid`
</select>
<select id="getAppIntentionVehicleVo"
resultType="com.yxt.anrui.base.api.basevehmodelconfig.AppModelVeDetailVo">
SELECT bvm.vehicleAlias,
bvm.brandName,
bvm.carBrand AS brandSid,
bvc.guidedPrice AS saleReferencePrice
FROM base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm ON bvc.modelSid = bvm.sid
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrg = #{useOrg}
</select>
</mapper>

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigRest.java

@ -146,4 +146,10 @@ public class BaseVehmodelConfigRest implements BaseVehmodelConfigFeign {
return null;
}
@Override
public ResultBean<AppModelVeDetailVo> getAppIntentionVehicleVo(String userSid, String modelSid, String configSid) {
AppModelVeDetailVo vo = baseVehmodelConfigService.getAppIntentionVehicleVo(userSid,modelSid,configSid);
return new ResultBean<AppModelVeDetailVo>().success().setData(vo);
}
}

10
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigService.java

@ -35,6 +35,7 @@ import com.yxt.anrui.base.api.basevehicle.ConfigInfo;
import com.yxt.anrui.base.api.basevehmodelconfig.*;
import com.yxt.anrui.base.biz.basemodelconfig.BaseModelConfigService;
import com.yxt.anrui.base.biz.basevehicleappendix.BaseVehicleAppendixService;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
@ -68,7 +69,8 @@ public class BaseVehmodelConfigService extends MybatisBaseService<BaseVehmodelCo
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BaseModelConfigService baseModelConfigService;
@ -368,4 +370,10 @@ public class BaseVehmodelConfigService extends MybatisBaseService<BaseVehmodelCo
public BaseVehmodelConfig getBySid(String sid) {
return baseMapper.getBySid(sid);
}
public AppModelVeDetailVo getAppIntentionVehicleVo(String userSid, String modelSid, String configSid) {
String useOrg = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData().getSid();
AppModelVeDetailVo vo = baseMapper.getAppIntentionVehicleVo(useOrg,modelSid,configSid);
return vo;
}
}

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscollectionconfirmation/BusCollectionConfirmationFeign.java

@ -71,4 +71,10 @@ public interface BusCollectionConfirmationFeign {
@ApiOperation("编辑回显或详情")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<BusCollectionConfirmationDetailsVo> fetchBySid(@PathVariable("sid") String sid);
/* App接口 */
@ApiOperation("手机端—获取款项确认列表")
@PostMapping("/getCollectionConfirmList")
public ResultBean<PagerVo<AppBusCollectionConfirmationPageVo>> getCollectionConfirmList(@RequestBody PagerQuery<BusCollectionConfirmationQuery> pq);
}

8
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeposit/BusDepositService.java

@ -7,9 +7,17 @@ import com.yxt.anrui.buscenter.api.busdeposit.BusDeposit;
import com.yxt.anrui.buscenter.api.busdepositcustomer.AppBusDepositCustomerListVo;
import com.yxt.anrui.buscenter.biz.busdepositcustomer.BusDepositCustomerService;
import com.yxt.anrui.buscenter.biz.busdepositvehicle.BusDepositVehicleService;
import com.yxt.anrui.buscenter.biz.busmaindeposit.BusMainDepositService;
import com.yxt.anrui.buscenter.biz.flow.FlowableService;
import com.yxt.anrui.crm.api.crmcustomer.CrmCustomer;
import com.yxt.anrui.crm.api.crmcustomer.CrmCustomerFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;

16
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomerfile/CrmCustomerFileFeign.java

@ -59,6 +59,7 @@ public interface CrmCustomerFileFeign {
/**
* 客户资料初始化分页查询列表
*
* @param pq
* @return
*/
@ -71,10 +72,11 @@ public interface CrmCustomerFileFeign {
*/
@ApiOperation("保存上传的附件")
@PostMapping("/saveCustomerFile")
public ResultBean saveCustomerFile(@RequestParam("staffName") String staffName,@RequestParam("staffSid") String staffSid,@RequestParam("sid") String sid,@RequestBody List<CrmFileDto> crmFileDtos);
public ResultBean saveCustomerFile(@RequestParam("staffName") String staffName, @RequestParam("staffSid") String staffSid, @RequestParam("sid") String sid, @RequestBody List<CrmFileDto> crmFileDtos);
/**
* 上传回显图片信息接口
*
* @param sid
* @return
*/
@ -83,4 +85,16 @@ public interface CrmCustomerFileFeign {
public ResultBean<CrmCustomerFileListVo> fetchFileListBySid(@PathVariable("sid") String sid);
@ApiOperation("初始化客户档案")
@ResponseBody
@GetMapping("/initCustomerArchives/{customerSid}/{userSid}")
public ResultBean<AppCrmCustomerTempArchivesVo> initCustomerArchives(@PathVariable("customerSid") String customerSid, @PathVariable("userSid") String userSid);
@ApiOperation("手机端保存客户档案")
@ResponseBody
@PutMapping("/saveCustomerArchives")
public ResultBean saveCustomerArchives(AppCrmCustomerTempArchivesDto dto);
}

10
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomerfile/CrmCustomerFileFeignFallback.java

@ -64,4 +64,14 @@ public class CrmCustomerFileFeignFallback implements CrmCustomerFileFeign {
public ResultBean<CrmCustomerFileListVo> fetchFileListBySid(String sid) {
return null;
}
@Override
public ResultBean<AppCrmCustomerTempArchivesVo> initCustomerArchives(String customerSid, String userSid) {
return null;
}
@Override
public ResultBean saveCustomerArchives(AppCrmCustomerTempArchivesDto dto) {
return null;
}
}

8
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java

@ -4,6 +4,7 @@ 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.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
@ -36,6 +37,7 @@ public interface CrmCustomerTempFeign {
/**
* 潜在客户管理的分页查询
*
* @param pq
* @return
*/
@ -74,6 +76,7 @@ public interface CrmCustomerTempFeign {
/**
* pc潜在客户的批量删除
*
* @param sid
* @return
*/
@ -83,6 +86,7 @@ public interface CrmCustomerTempFeign {
/**
* pc潜在客户的编辑回显
*
* @param sid
* @return
*/
@ -123,5 +127,9 @@ public interface CrmCustomerTempFeign {
@GetMapping("/getAppCustomerTempDetailsBySid")
public ResultBean<AppCrmCustomerTempInfoVo> getAppCustomerTempDetailsBySid(@RequestParam("sid") String sid);
@ApiOperation("手机端-获取客户基础信息(新)")
@ResponseBody
@GetMapping("/customerTempDetailsBySid/{sid}")
public ResultBean<AppCrmCustomerTempBasicsDetailsVo> customerTempDetailsBySid(@RequestParam("sid") String sid);
}

5
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java

@ -93,5 +93,10 @@ public class CrmCustomerTempFeignFallback implements CrmCustomerTempFeign {
return null;
}
@Override
public ResultBean<AppCrmCustomerTempBasicsDetailsVo> customerTempDetailsBySid(String sid) {
return null;
}
}

43
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandDetailsVo.java

@ -11,34 +11,43 @@ import java.math.BigDecimal;
@Data
public class AppCrmVehicledemandDetailsVo implements Vo {
@ApiModelProperty("潜在客户信息sid")
private String customerSid;
@ApiModelProperty("意向车型sid")
private String intentionSid;
@ApiModelProperty("购车方式")
private String purchaseMethod;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("购车方式value")
private String purchaseMethodValue;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("数量")
private String number;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("预计提车日期")
private String date;
@ApiModelProperty("品牌sid")
private String brandSid;
@ApiModelProperty("车型")
private String model;
@ApiModelProperty("品牌名称 ")
private String brandName;
@ApiModelProperty("指导价")
private String guidancePrice;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("车型报价")
private String vehicleModelOffer;
private String price;
@ApiModelProperty("其它配置说明")
private String otherConfig;
@ApiModelProperty("换选装")
private String optionsConfig;
@ApiModelProperty("简述配置")
private String sketChconfiguration;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("存放地点")
private String storageLocation = "河北省石家庄市车辆投放处";
@ApiModelProperty("车型sid")
private String modelSid;
}

55
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandDto.java

@ -6,57 +6,12 @@ import lombok.Data;
@Data
public class AppCrmVehicledemandDto implements Dto {
@ApiModelProperty("潜在客户信息sid")
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("购车方式(1 : 全款 2 : 贷款")
private String purchaseMethod;
@ApiModelProperty("购车方式Value")
private String purchaseMethodValue;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String comonConfigSid;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("品牌sid")
private String brandSid;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("车型报价")
private String vehicleModelOffer;
@ApiModelProperty("数量")
private String number;
@ApiModelProperty("预计提车日期 ")
private String estimatedPickupDate;
@ApiModelProperty("是否意向(0为非意向,1为意向)")
private String states;
@ApiModelProperty("备注")
private String remarks;
/*********金融需求字段******/
@ApiModelProperty("首付比例")
private String down_payment_proportion;
@ApiModelProperty("资方sid")
private String capitalSid;
@ApiModelProperty("资方名称")
private String capitalName;
}

26
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/AppCrmVehicledemandVo.java

@ -1,11 +1,11 @@
package com.yxt.anrui.crm.api.crmvehicledemand;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@ -16,26 +16,20 @@ public class AppCrmVehicledemandVo implements Vo {
@ApiModelProperty("车辆需求sid")
private String sid;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("添加时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("车型指导价")
private String vehicleModelOffer;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("销售指导价")
private String guidancePrice;
@ApiModelProperty("配置sid")
private String comonConfigSid;
@ApiModelProperty("购车方式value")
private String purchaseType;
@ApiModelProperty("购车方式")
private String purchaseMethodValue;
}

2
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemand.java

@ -59,7 +59,7 @@ public class CrmVehicledemand extends BaseEntity {
private String vehicleModelOffer;
@ApiModelProperty("数量")
private Integer number;
private String number;
@ApiModelProperty("预计提车日期 ")
private String estimatedPickupDate;

32
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemandFeign.java

@ -71,6 +71,7 @@ public interface CrmVehicledemandFeign {
/**
* 意向车型的批量删除
*
* @param sid
* @return
*/
@ -84,6 +85,7 @@ public interface CrmVehicledemandFeign {
/**
* 意向车型的编辑回显
*
* @param sid
* @return
*/
@ -94,24 +96,34 @@ public interface CrmVehicledemandFeign {
/********************************** App接口 *********************************/
@ApiOperation("App根据跟进记录sid查询车辆需求列表")
@ApiOperation("手机端-获取意向车型列表(新)")
@ResponseBody
@PostMapping("/getVisitListSid")
public ResultBean<PagerVo<AppCrmVehicledemandVo>> getVisitListSid(@RequestBody PagerQuery<AppCrmVehicledemandQuery> pagerQuery);
@ApiOperation("App根据sid查询车辆需求")
@GetMapping("/selectBySid/{sid}")
public ResultBean<AppCrmVehicledemandDetailsVo> selectBySid(@PathVariable("sid") String sid);
@ApiOperation("手机端-新增意向车型(新)")
@ResponseBody
@PostMapping("/addVisitDemands")
public ResultBean addVisitDemands(@RequestBody AppCrmVehicledemandDto appCrmVehicleDemandDto);
@ApiOperation("App根据车型sid删除车型信息")
@GetMapping("/delBySid/{sid}")
public ResultBean delBySid(@PathVariable("sid") String sid);
@ApiOperation("手机端-初始化意向车型(新)")
@GetMapping("/initVisitDemands/{intentionSid}")
public ResultBean<AppCrmVehicledemandDetailsVo> initVisitDemands(@PathVariable("intentionSid") String intentionSid);
@ApiOperation("App新增车辆需求")
@ApiOperation("手机端-修改意向车型(新)")
@ResponseBody
@PostMapping("/saveVisitDemands")
public ResultBean saveVisitDemands(@RequestBody AppCrmVehicledemandDto appCrmVehicledemandDto);
public ResultBean saveVisitDemands(@RequestBody AppCrmVehicleDemandUpdateDto appCrmVehicleDemandUpdateDto);
@ApiOperation("手机端-意向车型详情(新)")
@ResponseBody
@GetMapping("/intendedModel/{sid}")
public ResultBean<AppCrmVehicleDemandParticularsVo> intendedModel(@PathVariable("sid") String sid);
@ApiOperation("App根据车型sid删除车型信息")
@GetMapping("/delBySid/{sid}")
public ResultBean delBySid(@PathVariable("sid") String sid);
@ApiOperation("App根据sid查询意向车型详情")
@GetMapping("/getAppIntendedModel/{sid}")

160
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemandFeignFallback.java

@ -23,78 +23,90 @@ import java.util.List;
@Component
public class CrmVehicledemandFeignFallback implements CrmVehicledemandFeign {
@Override
public ResultBean<PagerVo<CrmVehicledemandVo>> listPage(PagerQuery<CrmVehicledemandQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/listPage无法访问");
}
@Override
public ResultBean<List<CrmVehicledemandVo>> listAll(CrmVehicledemandQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/listAll无法访问");
}
@Override
public ResultBean<List<CrmVehicledemandVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/list无法访问");
}
@Override
public ResultBean save(CrmVehicledemandDto dto){
return ResultBean.fireFail().setMsg("接口anrui-crm/crmvehicledemand/save无法访问");
}
@Override
public ResultBean update(CrmVehicledemandDto dto,String sid){
return ResultBean.fireFail().setMsg("接口anrui-crm/crmvehicledemand/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口anrui-crm/crmvehicledemand/del无法访问");
}
@Override
public ResultBean<CrmVehicledemandVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/fetch无法访问");
}
@Override
public ResultBean<CrmVehicledemandVo> fetchSid(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<AppCrmVehicledemandVo>> getVisitListSid(PagerQuery<AppCrmVehicledemandQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<AppCrmVehicledemandDetailsVo> selectBySid(String sid) {
return null;
}
@Override
public ResultBean delBySid(String sid) {
return null;
}
@Override
public ResultBean saveVisitDemands(AppCrmVehicledemandDto appCrmVehicledemandDto) {
return null;
}
@Override
public ResultBean<AppIntendedModelVo> getAppIntendedModel(String sid) {
return null;
}
@Override
public ResultBean<AppIntendedModelDetailedVo> getAppIntendedModelDetailed(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<CrmVehicledemandVo>> listPage(PagerQuery<CrmVehicledemandQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/listPage无法访问");
}
@Override
public ResultBean<List<CrmVehicledemandVo>> listAll(CrmVehicledemandQuery query) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/listAll无法访问");
}
@Override
public ResultBean<List<CrmVehicledemandVo>> list() {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/list无法访问");
}
@Override
public ResultBean save(CrmVehicledemandDto dto) {
return ResultBean.fireFail().setMsg("接口anrui-crm/crmvehicledemand/save无法访问");
}
@Override
public ResultBean update(CrmVehicledemandDto dto, String sid) {
return ResultBean.fireFail().setMsg("接口anrui-crm/crmvehicledemand/update无法访问");
}
@Override
public ResultBean del(String ids) {
return ResultBean.fireFail().setMsg("接口anrui-crm/crmvehicledemand/del无法访问");
}
@Override
public ResultBean<CrmVehicledemandVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-crm/crmvehicledemand/fetch无法访问");
}
@Override
public ResultBean<CrmVehicledemandVo> fetchSid(String sid) {
return null;
}
@Override
public ResultBean delBySid(String sid) {
return null;
}
@Override
public ResultBean<AppIntendedModelVo> getAppIntendedModel(String sid) {
return null;
}
@Override
public ResultBean<AppIntendedModelDetailedVo> getAppIntendedModelDetailed(String sid) {
return null;
}
//app
@Override
public ResultBean<PagerVo<AppCrmVehicledemandVo>> getVisitListSid(PagerQuery<AppCrmVehicledemandQuery> pagerQuery) {
return null;
}
@Override
public ResultBean addVisitDemands(AppCrmVehicledemandDto appCrmVehicleDemandDto) {
return null;
}
@Override
public ResultBean<AppCrmVehicledemandDetailsVo> initVisitDemands(String intentionSid) {
return null;
}
@Override
public ResultBean saveVisitDemands(AppCrmVehicleDemandUpdateDto appCrmVehicleDemandUpdateDto) {
return null;
}
@Override
public ResultBean<AppCrmVehicleDemandParticularsVo> intendedModel(String sid) {
return null;
}
}

28
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.java

@ -29,6 +29,9 @@ 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.crm.api.crmcustomerfile.AppCrmCustomerTempArchivesVo;
import com.yxt.anrui.crm.api.crmcustomerfile.AppCustomerArchivesDataVo;
import com.yxt.anrui.crm.api.crmfile.CrmFile;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -53,13 +56,20 @@ import java.util.List;
@Mapper
public interface CrmCustomerFileMapper extends BaseMapper<CrmCustomerFile> {
//@Update("update crm_customer_file set name=#{msg} where id=#{id}")
//IPage<CrmCustomerFileVo> voPage(IPage<CrmCustomerFile> page, @Param(Constants.WRAPPER) QueryWrapper<CrmCustomerFile> qw);
IPage<CrmCustomerFileVo> selectPageVo(IPage<CrmCustomerFile> page, @Param(Constants.WRAPPER) Wrapper<CrmCustomerFile> qw);
List<CrmCustomerFileVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<CrmCustomerFile> qw);
@Select("select * from crm_customer_file")
List<CrmCustomerFileVo> selectListVo();
//@Update("update crm_customer_file set name=#{msg} where id=#{id}")
//IPage<CrmCustomerFileVo> voPage(IPage<CrmCustomerFile> page, @Param(Constants.WRAPPER) QueryWrapper<CrmCustomerFile> qw);
IPage<CrmCustomerFileVo> selectPageVo(IPage<CrmCustomerFile> page, @Param(Constants.WRAPPER) Wrapper<CrmCustomerFile> qw);
List<CrmCustomerFileVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<CrmCustomerFile> qw);
@Select("select * from crm_customer_file")
List<CrmCustomerFileVo> selectListVo();
List<AppCustomerArchivesDataVo> selectByCustomerSid(@Param("customerSid") String customerSid);
List<CrmFile> selArchivesFileImageBySid(@Param("sid") String sid);
// 查询数据库是否存在该类型
Integer selectBySid(@Param("sid") String sid);
}

58
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.xml

@ -1,20 +1,46 @@
<?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.crm.biz.crmcustomerfile.CrmCustomerFileMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileVo">
SELECT
ccf.sid,
ccf.attachType,
ccf.fileName,
(SELECT cf.name FROM crm_file cf WHERE cf.linkSid = ccf.`sid` GROUP BY cf.`createTime` DESC LIMIT 1) NAME,
(SELECT MAX(cf.`createTime`) FROM crm_file cf WHERE cf.linkSid = ccf.`sid`) createTime
FROM
crm_customer_file ccf <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileVo">
SELECT * FROM crm_customer_file <where> ${ew.sqlSegment} </where>
</select>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileVo">
SELECT
ccf.sid,
ccf.attachType,
ccf.fileName,
(SELECT cf.name FROM crm_file cf WHERE cf.linkSid = ccf.`sid` GROUP BY cf.`createTime` DESC LIMIT 1) NAME,
(SELECT MAX(cf.`createTime`) FROM crm_file cf WHERE cf.linkSid = ccf.`sid`) createTime
FROM
crm_customer_file ccf
<where>${ew.sqlSegment}</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileVo">
SELECT * FROM crm_customer_file
<where>${ew.sqlSegment}</where>
</select>
<select id="selectByCustomerSid"
resultType="com.yxt.anrui.crm.api.crmcustomerfile.AppCustomerArchivesDataVo">
SELECT ccf.sid,
ccf.dataType AS KEY,
ccf.fileName AS title,
( SELECT MAX( cf.`createTime` ) FROM crm_file cf WHERE cf.linkSid = ccf.`sid` ) AS createTime
FROM
crm_customer_file ccf
WHERE
ccf.linkSid = #{customerSid}
</select>
<select id="selArchivesFileImageBySid" resultType="com.yxt.anrui.crm.api.crmfile.CrmFile">
select *
from crm_file cf
where cf.linkSid = #{sid}
</select>
<select id="selectBySid" resultType="java.lang.Integer">
select count(*)
from crm_customer_file ccf
where ccf.linkSid = #{sid}
</select>
</mapper>

11
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileRest.java

@ -26,6 +26,7 @@
package com.yxt.anrui.crm.biz.crmcustomerfile;
import com.yxt.anrui.crm.api.crmcustomerfile.*;
import com.yxt.anrui.crm.api.crmcustomerfile.AppCrmCustomerTempArchivesDto;
import com.yxt.anrui.crm.api.crmfile.CrmFileDto;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -75,4 +76,14 @@ public class CrmCustomerFileRest implements CrmCustomerFileFeign {
public ResultBean<CrmCustomerFileListVo> fetchFileListBySid(String sid) {
return crmCustomerFileService.fetchFileListBySid(sid);
}
@Override
public ResultBean<AppCrmCustomerTempArchivesVo> initCustomerArchives(String customerSid, String userSid) {
return crmCustomerFileService.initCustomerArchives(customerSid,userSid);
}
@Override
public ResultBean saveCustomerArchives(AppCrmCustomerTempArchivesDto dto) {
return crmCustomerFileService.saveCustomerArchives(dto);
}
}

336
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileService.java

@ -30,15 +30,18 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basedatalist.BaseDataListFeign;
import com.yxt.anrui.base.api.basedatalist.BaseDataListVo;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.crm.api.crmcustomerfile.*;
import com.yxt.anrui.crm.api.crmcustomerfile.AppCrmCustomerTempArchivesDto;
import com.yxt.anrui.crm.api.crmcustomerfile.AppCustomerArchivesDataDto;
import com.yxt.anrui.crm.api.crmfile.CrmFile;
import com.yxt.anrui.crm.api.crmfile.CrmFileDetailsVo;
import com.yxt.anrui.crm.api.crmfile.CrmFileDto;
import com.yxt.anrui.crm.biz.crmfile.CrmFileService;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -49,6 +52,9 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -68,121 +74,213 @@ import java.util.List;
@Service
public class CrmCustomerFileService extends MybatisBaseService<CrmCustomerFileMapper, CrmCustomerFile> {
@Autowired
BaseDataListFeign baseDataListFeign;
@Autowired
private CrmFileService crmFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
public PagerVo<CrmCustomerFile> listPage(PagerQuery<CrmCustomerFileQuery> pq) {
CrmCustomerFileQuery query = pq.getParams();
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(query);
IPage<CrmCustomerFile> page = PagerUtil.queryToPage(pq);
IPage<CrmCustomerFile> pagging = baseMapper.selectPage(page, qw);
PagerVo<CrmCustomerFile> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<CrmCustomerFile> listAll(CrmCustomerFileQuery query) {
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<CrmCustomerFile> createQueryWrapper(CrmCustomerFileQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<CrmCustomerFile> qw = new QueryWrapper<>();
qw.eq("linkSid", query.getCustomerSid());
if (StringUtils.isNotBlank(query.getFileName())) {
qw.like("fileName", query.getFileName());
}
if (StringUtils.isNotBlank(query.getAttachType())) {
qw.like("attachType", query.getAttachType());
}
return qw;
}
public PagerVo<CrmCustomerFileVo> listPageVo(PagerQuery<CrmCustomerFileQuery> pq) {
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(pq.getParams());
IPage<CrmCustomerFile> page = PagerUtil.queryToPage(pq);
IPage<CrmCustomerFileVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<CrmCustomerFileVo> p = PagerUtil.pageToVo(pagging, null);
List<CrmCustomerFileVo> records = p.getRecords();
if (records.size() == 0){
fetchByDataTypeKey(pq.getParams().getCustomerSid());
IPage<CrmCustomerFileVo> paging = baseMapper.selectPageVo(page, qw);
PagerVo<CrmCustomerFileVo> g = PagerUtil.pageToVo(paging, null);
return g;
}
return p;
}
/**
* 根据资料类别key查询资料清单列表并保存到客户资料初始化表中
*/
private void fetchByDataTypeKey(String customerSid) {
ResultBean<List<BaseDataListVo>> bean = baseDataListFeign.selectDataList("客户");
List<BaseDataListVo> data = bean.getData();
for (BaseDataListVo datum : data) {
CrmCustomerFile crmCustomerFile = new CrmCustomerFile();
datum.fromEntity(crmCustomerFile);
crmCustomerFile.setLinkSid(customerSid);
this.save(crmCustomerFile);
}
}
public List<CrmCustomerFileVo> listAllVo(CrmCustomerFileQuery query) {
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<CrmCustomerFileVo> listVo() {
return baseMapper.selectListVo();
}
public CrmCustomerFileVo fetchByIdVo(String id){
CrmCustomerFile entity = this.fetchById(id);
CrmCustomerFileVo vo = new CrmCustomerFileVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public ResultBean<CrmCustomerFileListVo> fetchFileListBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
CrmCustomerFileListVo crmCustomerFileListVo = new CrmCustomerFileListVo();
CrmCustomerFile crmCustomerFile = this.fetchBySid(sid);
crmCustomerFileListVo.setAttachType(crmCustomerFile.getAttachType());
crmCustomerFileListVo.setFileName(crmCustomerFile.getFileName());
List<CrmFileDetailsVo> crmFileVos = crmFileService.fetchByLinkSid(sid);
if (crmFileVos.size() == 0){
return rb.success().setData(crmCustomerFileListVo);
}
for (CrmFileDetailsVo crmFileVo : crmFileVos) {
String fileName = crmFileVo.getFileName();
fileName=fileName.substring(0,fileName.lastIndexOf('_'));
crmFileVo.setFileName(fileName);
}
crmCustomerFileListVo.setCrmFileDetailsVoList(crmFileVos);
return rb.success().setData(crmCustomerFileListVo);
}
public ResultBean saveCustomerFile(String staffName,String staffSid,String sid, List<CrmFileDto> crmFileDtos) {
ResultBean rb = ResultBean.fireFail();
for (CrmFileDto crmFileDto : crmFileDtos) {
String filePath = crmFileDto.getFilePath();
if (filePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
filePath = filePath.replace(fileUploadComponent.getUrlPrefix(), "");
}
CrmFile crmFile = new CrmFile();
crmFileDto.fillEntity(crmFile);
crmFile.setFilePath(filePath);
crmFile.setLinkSid(sid);
crmFile.setCreateBySid(staffSid);
crmFile.setCreateTime(new Date());
crmFile.setAttachType(CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType());
crmFile.setName(staffName);
crmFileService.save(crmFile);
}
return rb.success();
}
@Autowired
BaseDataListFeign baseDataListFeign;
@Autowired
private CrmFileService crmFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
SysUserFeign sysUserFeign;
public PagerVo<CrmCustomerFile> listPage(PagerQuery<CrmCustomerFileQuery> pq) {
CrmCustomerFileQuery query = pq.getParams();
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(query);
IPage<CrmCustomerFile> page = PagerUtil.queryToPage(pq);
IPage<CrmCustomerFile> pagging = baseMapper.selectPage(page, qw);
PagerVo<CrmCustomerFile> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<CrmCustomerFile> listAll(CrmCustomerFileQuery query) {
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<CrmCustomerFile> createQueryWrapper(CrmCustomerFileQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<CrmCustomerFile> qw = new QueryWrapper<>();
qw.eq("linkSid", query.getCustomerSid());
if (StringUtils.isNotBlank(query.getFileName())) {
qw.like("fileName", query.getFileName());
}
if (StringUtils.isNotBlank(query.getAttachType())) {
qw.like("attachType", query.getAttachType());
}
return qw;
}
public PagerVo<CrmCustomerFileVo> listPageVo(PagerQuery<CrmCustomerFileQuery> pq) {
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(pq.getParams());
IPage<CrmCustomerFile> page = PagerUtil.queryToPage(pq);
IPage<CrmCustomerFileVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<CrmCustomerFileVo> p = PagerUtil.pageToVo(pagging, null);
List<CrmCustomerFileVo> records = p.getRecords();
if (records.size() == 0) {
fetchByDataTypeKey(pq.getParams().getCustomerSid());
IPage<CrmCustomerFileVo> paging = baseMapper.selectPageVo(page, qw);
PagerVo<CrmCustomerFileVo> g = PagerUtil.pageToVo(paging, null);
return g;
}
return p;
}
/**
* 根据资料类别key查询资料清单列表并保存到客户资料初始化表中
*/
private void fetchByDataTypeKey(String customerSid) {
ResultBean<List<BaseDataListVo>> bean = baseDataListFeign.selectDataList("客户");
List<BaseDataListVo> data = bean.getData();
for (BaseDataListVo datum : data) {
CrmCustomerFile crmCustomerFile = new CrmCustomerFile();
datum.fromEntity(crmCustomerFile);
crmCustomerFile.setLinkSid(customerSid);
this.save(crmCustomerFile);
}
}
public List<CrmCustomerFileVo> listAllVo(CrmCustomerFileQuery query) {
QueryWrapper<CrmCustomerFile> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<CrmCustomerFileVo> listVo() {
return baseMapper.selectListVo();
}
public CrmCustomerFileVo fetchByIdVo(String id) {
CrmCustomerFile entity = this.fetchById(id);
CrmCustomerFileVo vo = new CrmCustomerFileVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public ResultBean<CrmCustomerFileListVo> fetchFileListBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
CrmCustomerFileListVo crmCustomerFileListVo = new CrmCustomerFileListVo();
CrmCustomerFile crmCustomerFile = this.fetchBySid(sid);
crmCustomerFileListVo.setAttachType(crmCustomerFile.getAttachType());
crmCustomerFileListVo.setFileName(crmCustomerFile.getFileName());
List<CrmFileDetailsVo> crmFileVos = crmFileService.fetchByLinkSid(sid);
if (crmFileVos.size() == 0) {
return rb.success().setData(crmCustomerFileListVo);
}
for (CrmFileDetailsVo crmFileVo : crmFileVos) {
String fileName = crmFileVo.getFileName();
fileName = fileName.substring(0, fileName.lastIndexOf('_'));
crmFileVo.setFileName(fileName);
}
crmCustomerFileListVo.setCrmFileDetailsVoList(crmFileVos);
return rb.success().setData(crmCustomerFileListVo);
}
public ResultBean saveCustomerFile(String staffName, String staffSid, String sid, List<CrmFileDto> crmFileDtos) {
ResultBean rb = ResultBean.fireFail();
for (CrmFileDto crmFileDto : crmFileDtos) {
String filePath = crmFileDto.getFilePath();
if (filePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
filePath = filePath.replace(fileUploadComponent.getUrlPrefix(), "");
}
CrmFile crmFile = new CrmFile();
crmFileDto.fillEntity(crmFile);
crmFile.setFilePath(filePath);
crmFile.setLinkSid(sid);
crmFile.setCreateBySid(staffSid);
crmFile.setCreateTime(new Date());
crmFile.setAttachType(CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType());
crmFile.setName(staffName);
crmFileService.save(crmFile);
}
return rb.success();
}
public ResultBean<AppCrmCustomerTempArchivesVo> initCustomerArchives(String customerSid, String userSid) {
ResultBean rb = ResultBean.fireFail();
fetchByDataTypeKey(customerSid);
AppCrmCustomerTempArchivesVo vo = new AppCrmCustomerTempArchivesVo();
List<AppCustomerArchivesDataVo> dataVos = baseMapper.selectByCustomerSid(customerSid);
for (AppCustomerArchivesDataVo appCustomerArchivesDataVo : dataVos) {
String createTime = appCustomerArchivesDataVo.getCreateTime();
Date date = DateUtils.dateStrConvertDate(createTime, "yyyy-MM-dd HH:mm:ss");
long time = date.getTime();
String s = String.valueOf(time);
appCustomerArchivesDataVo.setLastUploadTime(s);
String sid = appCustomerArchivesDataVo.getSid();
List<CrmFile> listVo = baseMapper.selArchivesFileImageBySid(sid);
List<String> list = new ArrayList<>();
for (CrmFile crmFile : listVo) {
String url = fileUploadComponent.getUrlPrefix() + crmFile.getFilePath();
list.add(url);
}
appCustomerArchivesDataVo.setFiles(list);
}
return rb.success().setData(vo);
}
public ResultBean saveCustomerArchives(AppCrmCustomerTempArchivesDto dto) {
ResultBean rb = ResultBean.fireFail();
AppUserOrgInfoVo data = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData();
List<AppCustomerArchivesDataDto> archivesDataDtos = dto.getData();
for (AppCustomerArchivesDataDto datum : archivesDataDtos) {
if (datum.isChange() == true) {
// 先查询库里key集合是否为空 ?
List<AppCustomerArchivesDataVo> dataVos = baseMapper.selectByCustomerSid(dto.getCustomerSid());
for (AppCustomerArchivesDataVo appCustomerArchivesDataVo : dataVos) {
String sid = appCustomerArchivesDataVo.getSid();
Integer count = baseMapper.selectBySid(sid);
if (count <= 0) {
//不存在 直接新增保存 并更新时间为当前提交的时间
List<String> files = datum.getFiles();
for (String file : files) {
if (file.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
file = file.replace(fileUploadComponent.getUrlPrefix(), "");
}
CrmFile crmFile = new CrmFile();
crmFile.setFilePath(file);
crmFile.setLinkSid(sid);
crmFile.setCreateBySid(data.getStaffSid());
crmFile.setCreateTime(new Date());
crmFile.setAttachType(CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType());
crmFile.setName(data.getStaffName());
crmFileService.save(crmFile);
}
} else {
// 存在 需要判断是否是当天的 如果不是当天的 false
String createTime = appCustomerArchivesDataVo.getCreateTime();
Date date = DateUtils.dateStrConvertDate(createTime, "yyyy-MM-dd");
boolean b = DateUtils.compTime(date, new Date());
if (b) {
//如果是当天的 并新增 提交时间为当前提交时间
List<String> files = datum.getFiles();
for (String file : files) {
//删除之前的附件并且删除服务器上的
crmFileService.deleteFilesOss(file);
//新增
if (file.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
file = file.replace(fileUploadComponent.getUrlPrefix(), "");
}
CrmFile crmFile = new CrmFile();
crmFile.setFilePath(file);
crmFile.setLinkSid(sid);
crmFile.setCreateBySid(data.getStaffSid());
crmFile.setCreateTime(new Date());
crmFile.setAttachType(CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType());
crmFile.setName(data.getStaffName());
crmFileService.save(crmFile);
}
} else {
return rb.fail().setMsg("提示:身份证是在 " + appCustomerArchivesDataVo.getCreateTime() + "日上传的,仅支持当天进行修改删除");
}
}
}
}
}
return rb.success();
}
}

8
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java

@ -103,4 +103,12 @@ public interface CrmCustomerTempMapper extends BaseMapper<CrmCustomerTemp> {
* @return
*/
CrmCustomerTempVo selectByWx(@Param("orgSid") String orgSid, @Param("staffSid") String staffSid, @Param("weixin") String weixin);
/**
* 获取客户基础信息
*
* @param sid
* @return
*/
AppCrmCustomerTempBasicsDetailsVo customerTempDetailsBySid(String sid);
}

39
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml

@ -85,9 +85,18 @@
</select>
<select id="selectRemindCustomerTempList" resultType="com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo">
SELECT createBySid,sid,name,isOnRemindkey,staffSid,remind_remark,mobile,customerType,level
SELECT createBySid,
sid,
name,
isOnRemindkey,
staffSid,
remind_remark,
mobile,
customerType,
level
FROM crm_customer_temp
WHERE isOnRemindkey=1 AND remind_day=#{remindDay}
WHERE isOnRemindkey = 1
AND remind_day = #{remindDay}
ORDER BY createBySid ASC
</select>
@ -121,4 +130,30 @@
and staffSid = #{staffSid}
and weixin = #{weixin}
</select>
<!--获取客户基础信息-->
<select id="customerTempDetailsBySid"
resultType="com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempBasicsDetailsVo">
SELECT cct.customerType,
cct.customerTypeKey,
cct.`name`,
cct.mobile,
cct.weiXin,
cct.companyName,
concat_ws(cct.city, cct.province, cct.county) AS addressNss,
cct.address,
cct.`level`,
cct.birthday,
cct.sex,
cct.certificateType AS idType,
cct.IDNumber AS idNumber,
cct.endDate AS idDate,
cct.e_mail AS email,
cct.emergencyContact AS name2,
cct.emergencyMobile AS mobile2,
cct.source,
cct.customerClass AS classification,
cct.remarks
FROM crm_customer_temp cct
WHERE cct.sid = #{sid}
</select>
</mapper>

12
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java

@ -201,4 +201,16 @@ public class CrmCustomerTempRest implements CrmCustomerTempFeign {
return crmCustomerTempService.getAppCustomerTempDetailsBySid(sid);
}
/**
* 获取客户基础信息
*
* @param sid
* @return
*/
@Override
public ResultBean<AppCrmCustomerTempBasicsDetailsVo> customerTempDetailsBySid(String sid) {
AppCrmCustomerTempBasicsDetailsVo vo = crmCustomerTempService.customerTempDetailsBySid(sid);
return new ResultBean<AppCrmCustomerTempBasicsDetailsVo>().success().setData(vo);
}
}

13
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java

@ -647,7 +647,7 @@ public class CrmCustomerTempService extends MybatisBaseService<CrmCustomerTempMa
}
}
} else if (StringUtils.isNotBlank(weixin)){
} else if (StringUtils.isNotBlank(weixin)) {
String staffSid = sysUserInfoVo.getStaffSid();
//根据客户的微信号以及当前登录者所在部门的sid和登录者所关联的员工sid查询
CrmCustomerTempVo crmCustomerTempVo = baseMapper.selectByWx(orgSid, staffSid, weixin);
@ -764,4 +764,15 @@ public class CrmCustomerTempService extends MybatisBaseService<CrmCustomerTempMa
crmBusinessService.updateByCusSid(crmBusinessDto, sid);
return rb.success().setMsg("更新成功");
}
/**
* 获取客户基础信息
*
* @param sid
* @return
*/
public AppCrmCustomerTempBasicsDetailsVo customerTempDetailsBySid(String sid) {
AppCrmCustomerTempBasicsDetailsVo vo = baseMapper.customerTempDetailsBySid(sid);
return vo;
}
}

35
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.java

@ -1,6 +1,7 @@
package com.yxt.anrui.crm.biz.crmvehicledemand;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
@ -40,13 +41,8 @@ public interface CrmVehicledemandMapper extends BaseMapper<CrmVehicledemand> {
List<CrmVehicledemandVo> fetchByCustomerSid(String customerSid);
List<AppCrmVehicledemandVo> selectVisitSid(String visitSid);
List<AppCrmVehicledemandVo> selectCustomerSid(String customerSid);
AppCrmVehicledemandDetailsVo selectBySid(String sid);
IPage<AppCrmVehicledemandVo> getVisitListSid(IPage<AppCrmVehicledemandQuery> page, @Param("visitSid") String visitSid);
@Update("update crm_vehicledemand set states = 0 where sid = #{sid}")
int delBySid(String sid);
@ -60,8 +56,35 @@ public interface CrmVehicledemandMapper extends BaseMapper<CrmVehicledemand> {
List<CrmVehicledemandVo> fetchAllByCustomerSid(String sid);
@Select("select * from crm_vehicledemand where modelSid = #{modelSid} and customerSid = #{customerSid} and states = 1")
CrmVehicledemandVo fetchYXByModelSid(@Param("modelSid") String modelSid,@Param("customerSid") String customerSid);
CrmVehicledemandVo fetchYXByModelSid(@Param("modelSid") String modelSid, @Param("customerSid") String customerSid);
@Select("select * from crm_vehicledemand where modelSid = #{modelSid} ORDER BY createTime DESC LIMIT 1")
CrmVehicledemandVo fetchByModelSid(String modelSid);
/**
* 获取意向车型列表
*
* @param page
* @param qw
* @return
*/
IPage<AppCrmVehicledemandVo> getVisitListSid(IPage<AppCrmVehicledemandQuery> page, @Param(Constants.WRAPPER) QueryWrapper<AppCrmVehicledemandVo> qw);
/**
* 初始化意向车型
*
* @param intentionSid
* @return
*/
AppCrmVehicledemandDetailsVo selectBySid(@Param("intentionSid") String intentionSid);
/**
* 意向车型详情
*
* @param sid
* @return
*/
AppCrmVehicleDemandParticularsVo intendedModel(@Param("sid") String sid);
}

75
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.xml

@ -35,31 +35,6 @@
AND cvcd.states = 1
</select>
<select id="selectBySid" resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppCrmVehicledemandDetailsVo">
SELECT cv.sid,
cv.purchaseMethod,
cv.modelSid,
cv.modelName,
cv.brandSid,
cv.brandName,
cv.vehicleModelOffer,
cv.sketChconfiguration,
cv.otherConfig
FROM crm_vehicledemand cv
WHERE cv.sid = #{sid}
</select>
<select id="getVisitListSid" resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppCrmVehicledemandVo">
SELECT cvcd.sid,
cvcd.createTime,
cvcd.modelName,
cvcd.brandName,
cvcd.vehicleModelOffer
FROM crm_visit cv
LEFT JOIN crm_visit_demand cvd ON cv.sid = cvd.visitSid
LEFT JOIN crm_vehicledemand cvcd ON cvcd.sid = cvd.demandSid
WHERE cv.sid = #{visitSid}
</select>
<select id="selectByCustomerSid" resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppCrmVehicledemandVo">
SELECT cvcd.sid,
cvcd.brandName,
@ -87,4 +62,54 @@
WHERE customerSid = #{sid}
</select>
<!--获取意向车型列表-->
<select id="getVisitListSid" resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppCrmVehicledemandVo">
SELECT
DISTINCT cvcd.sid,
cvcd.modelName,
cvcd.brandName,
cvcd.createTime,
cvcd.saleReferencePrice AS guidancePrice,
cvcd.purchaseMethodValue AS purchaseType
FROM
crm_visit cv
LEFT JOIN crm_visit_demand cvd ON cv.sid = cvd.visitSid
LEFT JOIN crm_vehicledemand cvcd ON cvcd.sid = cvd.demandSid
<where>${ew.sqlSegment}</where>
</select>
<!--初始化意向车型-->
<select id="selectBySid" resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppCrmVehicledemandDetailsVo">
SELECT cv.sid AS intentionSid,
cv.purchaseMethod,
cv.purchaseMethodValue,
cv.modelSid,
cv.modelName AS model,
cv.brandSid,
cv.brandName AS brand,
cv.saleReferencePrice AS guidancePrice,
cv.vehicleModelOffer AS price,
cv.comonConfigSid AS configSid,
cv.remarks,
cv.estimatedPickupDate AS `date`
FROM crm_vehicledemand cv
WHERE cv.sid = #{intentionSid}
</select>
<!--意向车型详情-->
<select id="intendedModel"
resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppCrmVehicleDemandParticularsVo">
SELECT cv.purchaseMethodValue AS type,
cv.modelSid,
cv.modelName AS model,
cv.brandName AS brand,
cv.saleReferencePrice AS price,
cv.vehicleModelOffer AS quotation,
cv.comonConfigSid AS configSid,
cv.remarks,
cv.estimatedPickupDate AS `date`
FROM crm_vehicledemand cv
WHERE cv.sid = #{sid}
</select>
</mapper>

89
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandRest.java

@ -1,10 +1,6 @@
package com.yxt.anrui.crm.biz.crmvehicledemand;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehiclemodel.AppVehicleModelBySidVo;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempVo;
import com.yxt.anrui.crm.api.crmvehicledemand.*;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -91,21 +87,6 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
return rb.success().setData(vo);
}
@Override
public ResultBean<PagerVo<AppCrmVehicledemandVo>> getVisitListSid(PagerQuery<AppCrmVehicledemandQuery> pagerQuery) {
PagerVo<AppCrmVehicledemandVo> page = new PagerVo<>();
IPage<AppCrmVehicledemandVo> iPage = crmVehicledemandService.getVisitListSid(pagerQuery);
PagerVo<AppCrmVehicledemandVo> pagerVo = PagerUtil.pageToVo(iPage, page);
return new ResultBean<PagerVo<AppCrmVehicledemandVo>>().success().setData(pagerVo);
}
@Override
public ResultBean<AppCrmVehicledemandDetailsVo> selectBySid(String sid) {
AppCrmVehicledemandDetailsVo vos = crmVehicledemandService.selectBySid(sid);
return new ResultBean<AppCrmVehicledemandDetailsVo>().success().setData(vos);
}
@Override
public ResultBean delBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
@ -117,12 +98,6 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
}
@Override
public ResultBean saveVisitDemands(AppCrmVehicledemandDto appCrmVehicledemandDto) {
ResultBean rb = ResultBean.fireFail();
crmVehicledemandService.saveVisitDemands(appCrmVehicledemandDto);
return rb.success();
}
@Override
public ResultBean<AppIntendedModelVo> getAppIntendedModel(String sid) {
@ -135,4 +110,68 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
AppIntendedModelDetailedVo vo = crmVehicledemandService.getAppIntendedModelDetailed(sid);
return new ResultBean<AppIntendedModelDetailedVo>().success().setData(vo);
}
/**
* 获取意向车型列表
*
* @param pagerQuery
* @return
*/
@Override
public ResultBean<PagerVo<AppCrmVehicledemandVo>> getVisitListSid(PagerQuery<AppCrmVehicledemandQuery> pagerQuery) {
PagerVo<AppCrmVehicledemandVo> page = new PagerVo<>();
IPage<AppCrmVehicledemandVo> iPage = crmVehicledemandService.getVisitListSid(pagerQuery);
PagerVo<AppCrmVehicledemandVo> pagerVo = PagerUtil.pageToVo(iPage, page);
return new ResultBean<PagerVo<AppCrmVehicledemandVo>>().success().setData(pagerVo);
}
/**
* 新增意向车型
*
* @param appCrmVehicleDemandDto
* @return
*/
@Override
public ResultBean addVisitDemands(AppCrmVehicledemandDto appCrmVehicleDemandDto) {
ResultBean rb = ResultBean.fireFail();
crmVehicledemandService.addVisitDemands(appCrmVehicleDemandDto);
return rb.success();
}
/**
* 初始化意向车型
*
* @param intentionSid
* @return
*/
@Override
public ResultBean<AppCrmVehicledemandDetailsVo> initVisitDemands(String intentionSid) {
AppCrmVehicledemandDetailsVo vo = crmVehicledemandService.initVisitDemands(intentionSid);
return new ResultBean<AppCrmVehicledemandDetailsVo>().success().setData(vo);
}
/**
* 修改意向车型
*
* @param appCrmVehicleDemandUpdateDto
* @return
*/
@Override
public ResultBean saveVisitDemands(AppCrmVehicleDemandUpdateDto appCrmVehicleDemandUpdateDto) {
ResultBean rb = ResultBean.fireFail();
crmVehicledemandService.saveVisitDemands(appCrmVehicleDemandUpdateDto);
return rb.success();
}
/**
* 意向车型详情
*
* @param sid
* @return
*/
@Override
public ResultBean<AppCrmVehicleDemandParticularsVo> intendedModel(String sid) {
AppCrmVehicleDemandParticularsVo vo = crmVehicledemandService.intendedModel(sid);
return new ResultBean<AppCrmVehicleDemandParticularsVo>().success().setData(vo);
}
}

128
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandService.java

@ -4,6 +4,8 @@ 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.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.AppModelVeDetailVo;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign;
import com.yxt.anrui.crm.api.crmfindemand.CrmFindemand;
import com.yxt.anrui.crm.api.crmfindemand.CrmFindemandDto;
import com.yxt.anrui.crm.api.crmfindemand.CrmFindemandVo;
@ -19,10 +21,12 @@ import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* Project: anrui-crm(客户管理) <br/>
@ -43,6 +47,9 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
@Autowired
private BaseVehicleModelFeign baseVehicleModelFeign;
@Autowired
BaseVehmodelConfigFeign baseVehmodelConfigFeign;
@Autowired
private CrmVehicleFinanceService crmVehicleFinanceService;
@ -73,7 +80,6 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.eq("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getModelName())) {
qw.eq("modelName", query.getModelName());
}
@ -97,7 +103,7 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
IPage<CrmVehicledemandVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<CrmVehicledemandVo> p = PagerUtil.pageToVo(pagging, null);
List<CrmVehicledemandVo> records = pagging.getRecords();
if (records.size() > 0){
if (records.size() > 0) {
for (CrmVehicledemandVo record : records) {
String createTime = record.getCreateTime();
String date = createTime.substring(0, 10);
@ -149,37 +155,6 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
return appCrmVehicledemandVos;
}
public AppCrmVehicledemandDetailsVo selectBySid(String sid) {
AppCrmVehicledemandDetailsVo appCrmVehicledemandDetailsVo = baseMapper.selectBySid(sid);
String vehicleModelOffer = appCrmVehicledemandDetailsVo.getVehicleModelOffer();
appCrmVehicledemandDetailsVo.setVehicleModelOffer(vehicleModelOffer + "万元");
return appCrmVehicledemandDetailsVo;
}
public IPage<AppCrmVehicledemandVo> getVisitListSid(PagerQuery<AppCrmVehicledemandQuery> pagerQuery) {
String visitSid = pagerQuery.getParams().getVisitSid();
IPage<AppCrmVehicledemandQuery> page = PagerUtil.queryToPage(pagerQuery);
IPage<AppCrmVehicledemandVo> iPage = baseMapper.getVisitListSid(page, visitSid);
return iPage;
}
public int delBySid(String sid) {
return baseMapper.delBySid(sid);
}
public ResultBean saveVisitDemands(AppCrmVehicledemandDto appCrmVehicledemandDto) {
ResultBean rb = ResultBean.fireFail();
String states = "1";
appCrmVehicledemandDto.setStates(states);
CrmVehicledemand entity = new CrmVehicledemand();
appCrmVehicledemandDto.fillEntity(entity);
int count = baseMapper.insert(entity);
if (count > 0) {
return rb.success();
}
return rb.fail();
}
public AppIntendedModelVo getAppIntendedModel(String sid) {
AppIntendedModelVo vo = baseMapper.getAppIntendedModel(sid);
String customerSid = vo.getCustomerSid();
@ -197,6 +172,10 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
return vo;
}
public int delBySid(String sid) {
return baseMapper.delBySid(sid);
}
public AppIntendedModelDetailedVo getAppIntendedModelDetailed(String sid) {
AppIntendedModelDetailedVo vo = baseMapper.getAppIntendedModelDetailed(sid);
return vo;
@ -211,7 +190,7 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
String modelSid = dto.getModelSid();
String customerSid = dto.getCustomerSid();
//查询该车型是否为意向车型
CrmVehicledemandVo crmVehicledemandVo = baseMapper.fetchYXByModelSid(modelSid,customerSid);
CrmVehicledemandVo crmVehicledemandVo = baseMapper.fetchYXByModelSid(modelSid, customerSid);
CrmFindemandDto crmFindemandDto = dto.getCrmFindemandDto();
if (crmVehicledemandVo == null) {
CrmVehicledemandVo crmVehicledemandVo1 = baseMapper.fetchByModelSid(modelSid);
@ -302,4 +281,85 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
crmFindemandService.save(crmFindemand);
}
}
public IPage<AppCrmVehicledemandVo> getVisitListSid(PagerQuery<AppCrmVehicledemandQuery> pagerQuery) {
IPage<AppCrmVehicledemandQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<AppCrmVehicledemandVo> qw = createVisitListQueryWrapper(pagerQuery.getParams());
IPage<AppCrmVehicledemandVo> iPage = baseMapper.getVisitListSid(page, qw);
return iPage;
}
private QueryWrapper<AppCrmVehicledemandVo> createVisitListQueryWrapper(AppCrmVehicledemandQuery pagerQuery) {
QueryWrapper<AppCrmVehicledemandVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(pagerQuery.getVisitSid())) {
qw.eq("cv.sid", pagerQuery.getVisitSid());
}
return qw;
}
/**
* 手机端-新增意向车型
*
* @param appCrmVehicleDemandDto
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean addVisitDemands(AppCrmVehicledemandDto appCrmVehicleDemandDto) {
ResultBean rb = ResultBean.fireFail();
String modelSid = appCrmVehicleDemandDto.getModelSid();
String configSid = appCrmVehicleDemandDto.getConfigSid();
String userSid = appCrmVehicleDemandDto.getUserSid();
AppModelVeDetailVo data = baseVehmodelConfigFeign.getAppIntentionVehicleVo(modelSid, configSid, userSid).getData();
CrmVehicledemand entity = new CrmVehicledemand();
entity.setCustomerSid(UUID.randomUUID().toString());
entity.setModelSid(modelSid);
entity.setModelName(data.getModelName());
entity.setBrandSid(data.getBrandSid());
entity.setBrandName(data.getBrandName());
entity.setSaleReferencePrice(data.getSaleReferencePrice());
appCrmVehicleDemandDto.fillEntity(entity);
baseMapper.insert(entity);
return rb.success();
}
/**
* 初始化意向车型
*
* @param intentionSid
* @return
*/
public AppCrmVehicledemandDetailsVo initVisitDemands(String intentionSid) {
AppCrmVehicledemandDetailsVo appCrmVehicledemandDetailsVo = baseMapper.selectBySid(intentionSid);
return appCrmVehicledemandDetailsVo;
}
/**
* 修改意向车型
*
* @param appCrmVehicleDemandUpdateDto
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean saveVisitDemands(AppCrmVehicleDemandUpdateDto appCrmVehicleDemandUpdateDto) {
ResultBean rb = ResultBean.fireFail();
String sid = appCrmVehicleDemandUpdateDto.getIntentionSid();
CrmVehicledemand entity = fetchBySid(sid);
entity.setPurchaseMethod(appCrmVehicleDemandUpdateDto.getPurchaseMethod());
entity.setPurchaseMethodValue(appCrmVehicleDemandUpdateDto.getPurchaseMethodValue());
entity.setRemarks(appCrmVehicleDemandUpdateDto.getRemarks());
entity.setNumber(appCrmVehicleDemandUpdateDto.getNumber());
entity.setEstimatedPickupDate(appCrmVehicleDemandUpdateDto.getDate());
baseMapper.updateById(entity);
return rb.success();
}
/**
* 意向车型详情
*
* @param sid
* @return
*/
public AppCrmVehicleDemandParticularsVo intendedModel(String sid) {
AppCrmVehicleDemandParticularsVo appCrmVehicleDemandParticularsVo = baseMapper.intendedModel(sid);
return appCrmVehicleDemandParticularsVo;
}
}

9
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvisit/CrmVisitRest.java

@ -108,7 +108,7 @@ public class CrmVisitRest implements CrmVisitFeign {
}
//往跟进记录和车型需求关联表中添加
List<CrmVehicledemandVo> crmVehicledemandVos = crmVehicledemandService.fetchByCustomerSid(customerSid);
if (crmVehicledemandVos.size() > 0){
if (crmVehicledemandVos.size() > 0) {
for (CrmVehicledemandVo crmVehicledemandVo : crmVehicledemandVos) {
CrmVisitDemand crmVisitDemand = new CrmVisitDemand();
crmVisitDemand.setVisitSid(entity.getSid());
@ -204,7 +204,8 @@ public class CrmVisitRest implements CrmVisitFeign {
@Override
public ResultBean<AppCrmVisitListVo> getAppVisitListByCustomerSid(String userSid, String customerSid) {
return new ResultBean<AppCrmVisitListVo>().success().setData(crmVisitService.getAppVisitListByCustomerSid(userSid, customerSid));
AppCrmVisitListVo vo = crmVisitService.getAppVisitListByCustomerSid(userSid, customerSid);
return new ResultBean<AppCrmVisitListVo>().success().setData(vo);
}
@Override
@ -223,8 +224,8 @@ public class CrmVisitRest implements CrmVisitFeign {
}
@Override
public ResultBean updateAppendixUrl(String s,String sid) {
crmVisitService.updateAppendixUrl(s,sid);
public ResultBean updateAppendixUrl(String s, String sid) {
crmVisitService.updateAppendixUrl(s, sid);
return ResultBean.fireSuccess();
}
}

Loading…
Cancel
Save