Browse Source

客户管理相关问题修改

master
hanlinghao 3 years ago
parent
commit
90f0c34b78
  1. 4
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java
  2. 5
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemandFeign.java
  3. 5
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmvehicledemand/CrmVehicledemandFeignFallback.java
  4. 3
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.xml
  5. 14
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileService.java
  6. 3
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java
  7. 14
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml
  8. 35
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java
  9. 9
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.java
  10. 9
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandMapper.xml
  11. 7
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandRest.java
  12. 38
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmvehicledemand/CrmVehicledemandService.java

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

@ -132,8 +132,8 @@ public interface CrmCustomerTempFeign {
@ApiOperation("初始化客户详情基础信息详情") @ApiOperation("初始化客户详情基础信息详情")
@ResponseBody @ResponseBody
@GetMapping("/getAppCustomerTempDetailsBySid") @GetMapping("/getAppCustomerTempDetailsBySid/{sid}")
public ResultBean<AppCrmCustomerTempInfoVo> getAppCustomerTempDetailsBySid(@RequestParam("sid") String sid); public ResultBean<AppCrmCustomerTempInfoVo> getAppCustomerTempDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("初始化客户档案") @ApiOperation("初始化客户档案")
@ResponseBody @ResponseBody

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

@ -144,4 +144,9 @@ public interface CrmVehicledemandFeign {
ResultBean<PagerVo<PcCrmVehicleDemandVo>> selectPagePc(@RequestBody PagerQuery<PcCrmVehicleDemandQuery> pcCrmVehicleDemandQuery); ResultBean<PagerVo<PcCrmVehicleDemandVo>> selectPagePc(@RequestBody PagerQuery<PcCrmVehicleDemandQuery> pcCrmVehicleDemandQuery);
@ApiOperation("App销售订单选择意向车型列表")
@ResponseBody
@PostMapping("/init/wantCarList")
ResultBean<PagerVo<AppOrderCrmVehicleDemandVo>> getWantCarList(@RequestBody PagerQuery<AppCrmOrderVehicleDemandQuery> pagerQuery);
} }

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

@ -89,6 +89,11 @@ public class CrmVehicledemandFeignFallback implements CrmVehicledemandFeign {
return null; return null;
} }
@Override
public ResultBean<PagerVo<AppOrderCrmVehicleDemandVo>> getWantCarList(PagerQuery<AppCrmOrderVehicleDemandQuery> pagerQuery) {
return null;
}
//app //app

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

@ -25,7 +25,8 @@
SELECT ccf.sid, SELECT ccf.sid,
ccf.dataType AS `key`, ccf.dataType AS `key`,
ccf.fileName AS title, ccf.fileName AS title,
(SELECT MAX(cf.createTime) FROM crm_file cf WHERE cf.linkSid = ccf.sid) AS createTime createTime
-- (SELECT MAX(cf.createTime) FROM crm_file cf WHERE cf.linkSid = ccf.sid) AS createTime
FROM crm_customer_file ccf FROM crm_customer_file ccf
WHERE ccf.linkSid = #{customerSid} WHERE ccf.linkSid = #{customerSid}
</select> </select>

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

@ -135,7 +135,13 @@ public class CrmCustomerFileService extends MybatisBaseService<CrmCustomerFileMa
List<BaseDataListVo> data = bean.getData(); List<BaseDataListVo> data = bean.getData();
for (BaseDataListVo datum : data) { for (BaseDataListVo datum : data) {
CrmCustomerFile crmCustomerFile = new CrmCustomerFile(); CrmCustomerFile crmCustomerFile = new CrmCustomerFile();
datum.fromEntity(crmCustomerFile); // datum.fromEntity(crmCustomerFile);
// BeanUtil.copyProperties(datum,crmCustomerFile);
crmCustomerFile.setDataType(datum.getDataType());
crmCustomerFile.setFileName(datum.getFileName());
crmCustomerFile.setFileType(datum.getFileType());
crmCustomerFile.setAttachType(datum.getAttachType());
crmCustomerFile.setSortNo(datum.getSortNo());
crmCustomerFile.setLinkSid(customerSid); crmCustomerFile.setLinkSid(customerSid);
this.save(crmCustomerFile); this.save(crmCustomerFile);
} }
@ -198,9 +204,9 @@ public class CrmCustomerFileService extends MybatisBaseService<CrmCustomerFileMa
public ResultBean<AppCrmCustomerTempArchivesVo> initCustomerArchives(String customerSid, String userSid) { public ResultBean<AppCrmCustomerTempArchivesVo> initCustomerArchives(String customerSid, String userSid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
fetchByDataTypeKey(customerSid);
AppCrmCustomerTempArchivesVo vo = new AppCrmCustomerTempArchivesVo(); AppCrmCustomerTempArchivesVo vo = new AppCrmCustomerTempArchivesVo();
List<AppCustomerArchivesDataVo> dataVos = baseMapper.selectByCustomerSid(customerSid); List<AppCustomerArchivesDataVo> dataVos = baseMapper.selectByCustomerSid(customerSid);
if (dataVos.size() > 0) {
for (AppCustomerArchivesDataVo appCustomerArchivesDataVo : dataVos) { for (AppCustomerArchivesDataVo appCustomerArchivesDataVo : dataVos) {
String createTime = appCustomerArchivesDataVo.getCreateTime(); String createTime = appCustomerArchivesDataVo.getCreateTime();
Date date = DateUtils.dateStrConvertDate(createTime, "yyyy-MM-dd HH:mm:ss"); Date date = DateUtils.dateStrConvertDate(createTime, "yyyy-MM-dd HH:mm:ss");
@ -216,6 +222,10 @@ public class CrmCustomerFileService extends MybatisBaseService<CrmCustomerFileMa
} }
appCustomerArchivesDataVo.setFiles(list); appCustomerArchivesDataVo.setFiles(list);
} }
} else {
fetchByDataTypeKey(customerSid);
}
vo.setData(dataVos);
return rb.success().setData(vo); return rb.success().setData(vo);
} }

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

@ -60,7 +60,6 @@ public interface CrmCustomerTempMapper extends BaseMapper<CrmCustomerTemp> {
IPage<AppCrmCustomerTempVo> getCustomerTempListByUserSid(IPage<AppCrmCustomerTempQuery> page, @Param("staffSid") String staffSid, @Param("name") String name); IPage<AppCrmCustomerTempVo> getCustomerTempListByUserSid(IPage<AppCrmCustomerTempQuery> page, @Param("staffSid") String staffSid, @Param("name") String name);
CrmCustomerTempVo selectByMobileOrWx(Map<String, String> map); CrmCustomerTempVo selectByMobileOrWx(Map<String, String> map);
@Select("SELECT COUNT(1) FROM crm_customer_temp WHERE createOrgSid=#{orgSid}") @Select("SELECT COUNT(1) FROM crm_customer_temp WHERE createOrgSid=#{orgSid}")
@ -113,4 +112,6 @@ public interface CrmCustomerTempMapper extends BaseMapper<CrmCustomerTemp> {
* @return * @return
*/ */
AppCrmCustomerTempInfoVo getAppCustomerTempDetailsBySid(@Param("sid") String sid); AppCrmCustomerTempInfoVo getAppCustomerTempDetailsBySid(@Param("sid") String sid);
int selBySidAndMobile(@Param("sid") String sid, @Param("mobile") String mobile);
} }

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

@ -55,8 +55,7 @@
<select id="selectBySid" resultType="com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo"> <select id="selectBySid" resultType="com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo">
SELECT cct.* SELECT cct.*
FROM crm_customer_temp cct FROM crm_customer_temp cct
Left JOIN WHERE cct.sid = #{sid}
WHERE cct.sid=#{sid}
</select> </select>
<!--对应手机号应为一条,对应微信号可能为多条--> <!--对应手机号应为一条,对应微信号可能为多条-->
<select id="selectByMobileOrWx" parameterType="map" <select id="selectByMobileOrWx" parameterType="map"
@ -127,7 +126,7 @@
resultType="com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempBasicsDetailsVo"> resultType="com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempBasicsDetailsVo">
SELECT cct.customerType, SELECT cct.customerType,
cct.customerTypeKey, cct.customerTypeKey,
cct.contacts AS `name`, cct.`name`,
cct.mobile, cct.mobile,
cct.weixin, cct.weixin,
cct.companyName, cct.companyName,
@ -177,7 +176,7 @@
cct.contacts AS `name`, cct.contacts AS `name`,
cct.emergencyContact AS name2, cct.emergencyContact AS name2,
cct.address, cct.address,
cct.(province + city + county) AS addressNss, (cct.province + cct.city + cct.county) AS addressNss,
cct.remarks, cct.remarks,
cct.customerClass AS classification, cct.customerClass AS classification,
cct.source, cct.source,
@ -192,4 +191,11 @@
FROM crm_customer_temp cct FROM crm_customer_temp cct
WHERE cct.sid = #{sid} WHERE cct.sid = #{sid}
</select> </select>
<select id="selBySidAndMobile" resultType="java.lang.Integer">
SELECT count(*)
FROM crm_customer_temp cct
WHERE cct.sid != #{sid}
AND
cct.mobile =#{mobile}
</select>
</mapper> </mapper>

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

@ -24,6 +24,7 @@ import com.yxt.anrui.crm.biz.crmfile.CrmFileService;
import com.yxt.anrui.crm.biz.crmvehicledemand.CrmVehicledemandService; import com.yxt.anrui.crm.biz.crmvehicledemand.CrmVehicledemandService;
import com.yxt.anrui.crm.biz.crmvisit.CrmVisitService; import com.yxt.anrui.crm.biz.crmvisit.CrmVisitService;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo; import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo;
import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.portal.api.sysuser.SysUserVo;
@ -220,19 +221,30 @@ public class CrmCustomerTempService extends MybatisBaseService<CrmCustomerTempMa
} }
} else { // 修改 } else { // 修改
if (StringUtils.isNotBlank(dto.getMobile())) { if (StringUtils.isNotBlank(dto.getMobile())) {
map.put("mobile", dto.getMobile()); // map.put("mobile", dto.getMobile());
CrmCustomerTempVo crmCustomerTempVo = baseMapper.selectByMobileOrWx(map); // CrmCustomerTempVo crmCustomerTempVo = baseMapper.selectByMobileOrWx(map);
if (crmCustomerTempVo != null && crmCustomerTempVo.getStaffSid().equals(userOrgInfoVo.getStaffSid())) { // if (crmCustomerTempVo != null && !crmCustomerTempVo.getStaffSid().equals(userOrgInfoVo.getStaffSid())) {
// return new ResultBean().fail().setMsg("该手机号已绑定其它客户,请重新添加");
// }
AppCrmCustomerTempInfoVo appCrmCustomerTempInfoVo = baseMapper.selectBySid(dto.getSid());
String mobile = appCrmCustomerTempInfoVo.getMobile();
if (!mobile.equals(dto.getMobile())) {
int count = baseMapper.selBySidAndMobile(dto.getSid(), dto.getMobile());
if (count > 0) {
return new ResultBean().fail().setMsg("该手机号已绑定其它客户,请重新添加"); return new ResultBean().fail().setMsg("该手机号已绑定其它客户,请重新添加");
} }
} }
}
if (StringUtils.isNotBlank(dto.getWeixin())) { if (StringUtils.isNotBlank(dto.getWeixin())) {
map.put("weixin", dto.getWeixin()); map.put("weixin", dto.getWeixin());
CrmCustomerTempVo crmCustomerTempVo = baseMapper.selectByMobileOrWx(map); CrmCustomerTempVo crmCustomerTempVo = baseMapper.selectByMobileOrWx(map);
if (crmCustomerTempVo != null && crmCustomerTempVo.getStaffSid().equals(userOrgInfoVo.getStaffSid())) { if (crmCustomerTempVo != null && crmCustomerTempVo.getStaffSid().equals(userOrgInfoVo.getStaffSid())) {
if (crmCustomerTempVo.getWeixin().equals(dto.getWeixin())) {
return new ResultBean().fail().setMsg("该微信号已绑定其它客户,请重新添加"); return new ResultBean().fail().setMsg("该微信号已绑定其它客户,请重新添加");
} }
} }
}
CrmCustomerTemp customerTemp = fetchBySid(dto.getSid()); CrmCustomerTemp customerTemp = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, customerTemp); BeanUtil.copyProperties(dto, customerTemp);
String adCode = dto.getAdCode(); String adCode = dto.getAdCode();
@ -398,7 +410,11 @@ public class CrmCustomerTempService extends MybatisBaseService<CrmCustomerTempMa
String city = appCrmCustomerTempVo.getCity(); String city = appCrmCustomerTempVo.getCity();
String county = appCrmCustomerTempVo.getCounty(); String county = appCrmCustomerTempVo.getCounty();
String address = appCrmCustomerTempVo.getAddress(); String address = appCrmCustomerTempVo.getAddress();
if (StringUtils.isNotBlank(province) || StringUtils.isNotBlank(city) || StringUtils.isNotBlank(county) || StringUtils.isNotBlank(address)) {
appCrmCustomerTempVo.setAddressNss(province + city + county + address); appCrmCustomerTempVo.setAddressNss(province + city + county + address);
} else {
appCrmCustomerTempVo.setAddressNss("");
}
String customerPhoto = appCrmCustomerTempVo.getCustomerPhoto(); String customerPhoto = appCrmCustomerTempVo.getCustomerPhoto();
if (customerPhoto != null) { if (customerPhoto != null) {
String urlPrefix = fileUploadComponent.getUrlPrefix(); String urlPrefix = fileUploadComponent.getUrlPrefix();
@ -542,6 +558,11 @@ public class CrmCustomerTempService extends MybatisBaseService<CrmCustomerTempMa
customerTemp.setAddress_city(adCode.substring(2, 4)); customerTemp.setAddress_city(adCode.substring(2, 4));
customerTemp.setAddress_county(adCode.substring(4, 6)); customerTemp.setAddress_county(adCode.substring(4, 6));
} }
if ("0".equals(dto.getIsOnRemindkey())) {
customerTemp.setRemind_day("未设置提醒");
} else if ("1".equals(dto.getIsOnRemindkey())) {
customerTemp.setRemind_day(dto.getRemind_day());
}
save(customerTemp); save(customerTemp);
// 增加跟进记录 // 增加跟进记录
Map<String, String> paramMap = new HashMap<>(); Map<String, String> paramMap = new HashMap<>();
@ -776,8 +797,16 @@ public class CrmCustomerTempService extends MybatisBaseService<CrmCustomerTempMa
*/ */
public AppCrmCustomerTempBasicsDetailsVo customerTempDetailsBySid(String sid) { public AppCrmCustomerTempBasicsDetailsVo customerTempDetailsBySid(String sid) {
AppCrmCustomerTempBasicsDetailsVo vo = baseMapper.customerTempDetailsBySid(sid); AppCrmCustomerTempBasicsDetailsVo vo = baseMapper.customerTempDetailsBySid(sid);
vo.setSid(sid);
String adCode = vo.getAddress_province() + vo.getAddress_city() + vo.getAddress_county(); String adCode = vo.getAddress_province() + vo.getAddress_city() + vo.getAddress_county();
if (StringUtils.isNotBlank(adCode)) {
vo.setAdCode(adCode); vo.setAdCode(adCode);
} else {
vo.setAdCode("");
}
String type = "customerType";
DictCommonVo customerType = dictCommonFeign.selectBykey(vo.getCustomerTypeKey(), type).getData();
vo.setParentSid(customerType.getSid());
List<CrmFileDetailsVo> crmFileDetailsVos = crmFileService.fetchByLinkSid(sid); List<CrmFileDetailsVo> crmFileDetailsVos = crmFileService.fetchByLinkSid(sid);
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
if (crmFileDetailsVos != null) { if (crmFileDetailsVos != null) {

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

@ -97,4 +97,13 @@ public interface CrmVehicledemandMapper extends BaseMapper<CrmVehicledemand> {
* @return * @return
*/ */
IPage<PcCrmVehicleDemandVo> selectPagePc(IPage<CrmVehicledemand> page, @Param(Constants.WRAPPER) QueryWrapper<CrmVehicledemand> qw); IPage<PcCrmVehicleDemandVo> selectPagePc(IPage<CrmVehicledemand> page, @Param(Constants.WRAPPER) QueryWrapper<CrmVehicledemand> qw);
/**
* App销售订单选择意向车型列表
*
* @param page
* @param qw
* @return
*/
IPage<AppOrderCrmVehicleDemandVo> getWantCarList(IPage<CrmVehicledemand> page, @Param(Constants.WRAPPER) QueryWrapper<CrmVehicledemand> qw);
} }

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

@ -126,4 +126,13 @@
cv.brandName cv.brandName
from crm_vehicledemand cv ${ew.customSqlSegment} from crm_vehicledemand cv ${ew.customSqlSegment}
</select> </select>
<select id="getWantCarList" resultType="com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo">
select cv.modelSid,
cv.comonConfigSid as configSid,
cv.modelAlias as modelName,
cv.brandName,
cv.createTime
from crm_vehicledemand cv ${ew.customSqlSegment}
</select>
</mapper> </mapper>

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

@ -185,4 +185,11 @@ public class CrmVehicledemandRest implements CrmVehicledemandFeign {
PagerVo<PcCrmVehicleDemandVo> pv = crmVehicledemandService.selectPagePc(pcCrmVehicleDemandQuery); PagerVo<PcCrmVehicleDemandVo> pv = crmVehicledemandService.selectPagePc(pcCrmVehicleDemandQuery);
return rb.success().setData(pv); return rb.success().setData(pv);
} }
@Override
public ResultBean<PagerVo<AppOrderCrmVehicleDemandVo>> getWantCarList(PagerQuery<AppCrmOrderVehicleDemandQuery> pagerQuery) {
ResultBean<PagerVo<AppOrderCrmVehicleDemandVo>> rb = ResultBean.fireFail();
PagerVo<AppOrderCrmVehicleDemandVo> pv = crmVehicledemandService.getWantCarList(pagerQuery);
return rb.success().setData(pv);
}
} }

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

@ -411,4 +411,42 @@ public class CrmVehicledemandService extends MybatisBaseService<CrmVehicledemand
} }
return qw; return qw;
} }
/**
* App销售订单选择意向车型列表
*
* @param pagerQuery
* @return
*/
public PagerVo<AppOrderCrmVehicleDemandVo> getWantCarList(PagerQuery<AppCrmOrderVehicleDemandQuery> pagerQuery) {
QueryWrapper<CrmVehicledemand> qw = AppCreatePagePcWrapper(pagerQuery.getParams());
IPage<CrmVehicledemand> page = PagerUtil.queryToPage(pagerQuery);
IPage<AppOrderCrmVehicleDemandVo> pagging = baseMapper.getWantCarList(page, qw);
PagerVo<AppOrderCrmVehicleDemandVo> p = PagerUtil.pageToVo(pagging, null);
List<AppOrderCrmVehicleDemandVo> list = p.getRecords();
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
//根据车型sid及配置sid查询单台指导价
ResultBean<BaseVehmodelVo> voResultBean = baseVehmodelConfigFeign.selectOne(list.get(i).getModelSid(), list.get(i).getModelSid());
if (voResultBean.getSuccess()) {
list.get(i).setGuidancePrice(voResultBean.getData().getGuidedPrice());
}
}
}
return p;
}
/**
* 构造查询条件
*
* @param query 查询条件
* @return
*/
private QueryWrapper<CrmVehicledemand> AppCreatePagePcWrapper(AppCrmOrderVehicleDemandQuery query) {
QueryWrapper<CrmVehicledemand> qw = new QueryWrapper<>();
if (query != null) {
qw.eq("cv.customerSid", query.getCustomerSid());
}
return qw;
}
} }
Loading…
Cancel
Save