diff --git a/src/main/java/cn/timer/api/bean/crm/CrmClientData.java b/src/main/java/cn/timer/api/bean/crm/CrmClientData.java index a15cc87..41b90c4 100644 --- a/src/main/java/cn/timer/api/bean/crm/CrmClientData.java +++ b/src/main/java/cn/timer/api/bean/crm/CrmClientData.java @@ -161,6 +161,9 @@ public class CrmClientData extends Model<CrmClientData> { @ApiModelProperty(value = "产品") private String product; + + @ApiModelProperty(value = "跟进记录") + private String followuprecord; @Transient @TableField(exist = false) diff --git a/src/main/java/cn/timer/api/controller/crm/CrmController.java b/src/main/java/cn/timer/api/controller/crm/CrmController.java index 39718dd..7a5b67f 100644 --- a/src/main/java/cn/timer/api/controller/crm/CrmController.java +++ b/src/main/java/cn/timer/api/controller/crm/CrmController.java @@ -27,6 +27,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; @@ -57,6 +59,7 @@ import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper; import cn.timer.api.dto.crm.CrmCartogramDto; import cn.timer.api.dto.crm.CrmClientDataImportVo; import cn.timer.api.dto.kqmk.DailyDetailsDto; +import cn.timer.api.dto.xcgl.ImportDescriptionDto; import cn.timer.api.utils.CheckUtil; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; @@ -1423,6 +1426,13 @@ public class CrmController { @Transactional @ApiOperation(value = "导入客户", httpMethod = "POST", notes = "接口发布说明") public Result<Object> importClient(@CurrentUser UserBean userBean, @RequestParam String url) { + + int toinsert = 0;//新增 + int toupdate = 0;//更新 + int failure = 0;//失败 + List<Map<String, String>> reasons = Lists.newArrayList(); + + Integer empNum = getEmpNum(userBean); Integer orgCode = getOrgCode(userBean); @@ -1459,110 +1469,142 @@ public class CrmController { reader.addHeaderAlias("办公电话", "telephone"); reader.addHeaderAlias("个人邮箱", "email"); reader.addHeaderAlias("个人地址", "linkAddress"); + reader.addHeaderAlias("跟进记录", "followuprecord"); List<CrmClientDataImportVo> list = reader.read(0, 1, CrmClientDataImportVo.class); for (CrmClientDataImportVo crmClientDataImportVo : list) { + + String name = crmClientDataImportVo.getClientName(); + + Map<String, String> map = Maps.newHashMap(); + + try { + CrmClientData crmd = CrmClientData.builder().build().selectOne(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getBelongUser, empNum).eq(CrmClientData::getClientName, crmClientDataImportVo.getClientName()) + .eq(CrmClientData::getClientCellphone, crmClientDataImportVo.getClientCellphone())); + if(crmd == null) { + String clientName = crmClientDataImportVo.getClientName(); // 客户名称(必填) + String belongGroupName = crmClientDataImportVo.getBelongGroupName(); // 分组名(必填) + String industryName = crmClientDataImportVo.getIndustryName(); // 行业名 + String clientTypeName = crmClientDataImportVo.getClientTypeName(); // 客户类型名 + String clientCellphone = crmClientDataImportVo.getClientCellphone(); // 客户手机号 + String clientTelephone = crmClientDataImportVo.getClientTelephone(); // 客户座机号 + String clientUrl = crmClientDataImportVo.getClientUrl(); // 官网 + String clientEmail = crmClientDataImportVo.getClientEmail(); // 邮箱 + String clientAddress = crmClientDataImportVo.getAddress(); // 地址 + String wechat = crmClientDataImportVo.getWechat(); // 微信 + String product = crmClientDataImportVo.getProduct(); // 产品 + String linkname = crmClientDataImportVo.getLinkName(); // 联系人姓名 + String linkcellphone = crmClientDataImportVo.getCellphone(); // 手机号码 + String linkcompany = crmClientDataImportVo.getCompany(); // 所属公司 + String linkgender = crmClientDataImportVo.getGender(); // 性别 + String linkposition = crmClientDataImportVo.getPosition(); // 职位 + String linktelephone = crmClientDataImportVo.getTelephone(); // 办公电话 + String linkemail = crmClientDataImportVo.getEmail(); // 个人邮箱 + String linkaddress = crmClientDataImportVo.getLinkAddress(); // 个人地址 + + String followuprecord = crmClientDataImportVo.getFollowuprecord(); // 跟进记录 + + CrmClientData crmClientData = new CrmClientData(); + + // 业务组 + CrmBusinessGroup crmBusinessGroup = CrmBusinessGroup.builder().build() + .selectOne(new LambdaQueryWrapper<CrmBusinessGroup>().eq(CrmBusinessGroup::getOrgCode, orgCode) + .eq(CrmBusinessGroup::getName, belongGroupName).select(CrmBusinessGroup::getId)); + if (crmBusinessGroup == null) + return ResultUtil.error("没有匹配的业务组名称"); + + if (StrUtil.isNotBlank(industryName)) { + // 行业字典 + IndustryClass industryClass = IndustryClass.builder().build() + .selectOne(new LambdaQueryWrapper<IndustryClass>().eq(IndustryClass::getName, industryName) + .select(IndustryClass::getId)); + if (industryClass == null) + return ResultUtil.error("没有匹配的行业名称"); + crmClientData.setIndustry(industryClass.getId()); + } - String clientName = crmClientDataImportVo.getClientName(); // 客户名称(必填) - String belongGroupName = crmClientDataImportVo.getBelongGroupName(); // 分组名(必填) - String industryName = crmClientDataImportVo.getIndustryName(); // 行业名 - String clientTypeName = crmClientDataImportVo.getClientTypeName(); // 客户类型名 - String clientCellphone = crmClientDataImportVo.getClientCellphone(); // 客户手机号 - String clientTelephone = crmClientDataImportVo.getClientTelephone(); // 客户座机号 - String clientUrl = crmClientDataImportVo.getClientUrl(); // 官网 - String clientEmail = crmClientDataImportVo.getClientEmail(); // 邮箱 - String clientAddress = crmClientDataImportVo.getAddress(); // 地址 - String wechat = crmClientDataImportVo.getWechat(); // 微信 - String product = crmClientDataImportVo.getProduct(); // 产品 - String linkname = crmClientDataImportVo.getLinkName(); // 联系人姓名 - String linkcellphone = crmClientDataImportVo.getCellphone(); // 手机号码 - String linkcompany = crmClientDataImportVo.getCompany(); // 所属公司 - String linkgender = crmClientDataImportVo.getGender(); // 性别 - String linkposition = crmClientDataImportVo.getPosition(); // 职位 - String linktelephone = crmClientDataImportVo.getTelephone(); // 办公电话 - String linkemail = crmClientDataImportVo.getEmail(); // 个人邮箱 - String linkaddress = crmClientDataImportVo.getLinkAddress(); // 个人地址 - - CrmClientData crmClientData = new CrmClientData(); - - // 业务组 - CrmBusinessGroup crmBusinessGroup = CrmBusinessGroup.builder().build() - .selectOne(new LambdaQueryWrapper<CrmBusinessGroup>().eq(CrmBusinessGroup::getOrgCode, orgCode) - .eq(CrmBusinessGroup::getName, belongGroupName).select(CrmBusinessGroup::getId)); - if (crmBusinessGroup == null) - return ResultUtil.error("没有匹配的业务组名称"); - - if (StrUtil.isNotBlank(industryName)) { - // 行业字典 - IndustryClass industryClass = IndustryClass.builder().build() - .selectOne(new LambdaQueryWrapper<IndustryClass>().eq(IndustryClass::getName, industryName) - .select(IndustryClass::getId)); - if (industryClass == null) - return ResultUtil.error("没有匹配的行业名称"); - crmClientData.setIndustry(industryClass.getId()); - } - - if (StrUtil.isNotBlank(clientTypeName)) { - // 客户类型 - ClientTypeClass clientTypeClass = ClientTypeClass.builder().build() - .selectOne(new LambdaQueryWrapper<ClientTypeClass>() - .eq(ClientTypeClass::getName, clientTypeName).select(ClientTypeClass::getId)); - if (clientTypeClass == null) - return ResultUtil.error("没有匹配的客户类型名称"); - crmClientData.setClientType(clientTypeClass.getId()); - } + if (StrUtil.isNotBlank(clientTypeName)) { + // 客户类型 + ClientTypeClass clientTypeClass = ClientTypeClass.builder().build() + .selectOne(new LambdaQueryWrapper<ClientTypeClass>() + .eq(ClientTypeClass::getName, clientTypeName).select(ClientTypeClass::getId)); + if (clientTypeClass == null) + return ResultUtil.error("没有匹配的客户类型名称"); + crmClientData.setClientType(clientTypeClass.getId()); + } - crmClientData.setClientStatus(1); - if(!("").equals(linkname) && linkname != null || !("").equals(linkcellphone) && linkcellphone != null) { - crmClientData.setContactsNum(1); - } - crmClientData.setBelongUser(empNum); - crmClientData.setBelongUserName(getEmpName(orgCode, empNum)); - crmClientData.setClientName(clientName); - crmClientData.setBelongGroupName(belongGroupName); - crmClientData.setBelongGroup(crmBusinessGroup.getId()); - crmClientData.setIndustryName(industryName); - - crmClientData.setWechat(wechat); - crmClientData.setProduct(product); + crmClientData.setClientStatus(1); + if(!("").equals(linkname) && linkname != null || !("").equals(linkcellphone) && linkcellphone != null) { + crmClientData.setContactsNum(1); + } + crmClientData.setBelongUser(empNum); + crmClientData.setBelongUserName(getEmpName(orgCode, empNum)); + crmClientData.setClientName(clientName); + crmClientData.setBelongGroupName(belongGroupName); + crmClientData.setBelongGroup(crmBusinessGroup.getId()); + crmClientData.setIndustryName(industryName); + + crmClientData.setWechat(wechat); + crmClientData.setProduct(product); - crmClientData.setClientTypeName(clientTypeName); + crmClientData.setClientTypeName(clientTypeName); - crmClientData.setClientCellphone(clientCellphone); - crmClientData.setClientTelephone(clientTelephone); - crmClientData.setClientUrl(clientUrl); - crmClientData.setClientEmail(clientEmail); - crmClientData.setAddress(clientAddress); - crmClientData.setOrgCode(orgCode); - crmClientData.insert(); + crmClientData.setClientCellphone(clientCellphone); + crmClientData.setClientTelephone(clientTelephone); + crmClientData.setClientUrl(clientUrl); + crmClientData.setClientEmail(clientEmail); + crmClientData.setAddress(clientAddress); + crmClientData.setOrgCode(orgCode); + crmClientData.setFollowuprecord(followuprecord);//跟进记录 + crmClientData.insert(); - Integer cid = crmClientData.getId(); - - if(!("").equals(linkname) && linkname != null || !("").equals(linkcellphone) && linkcellphone != null) { - CrmClientContacts contacts = new CrmClientContacts(); - contacts.setName(linkname); - contacts.setCellphone(linkcellphone); - contacts.setCompany(linkcompany); - if (("女").equals(linkgender)) - contacts.setGender(0); - else if (("男").equals(linkgender)) - contacts.setGender(1); - else - contacts.setGender(null); - contacts.setPosition(linkposition); - contacts.setTelephone(linktelephone); - contacts.setEmail(linkemail); - contacts.setAddress(linkaddress); - if (!(linkname == null && linkcellphone == null && linkcompany == null && linkgender == null - && linkposition == null && linktelephone == null && linkemail == null && linkaddress == null)) { - contacts.setCid(cid); - contacts.insert(); + Integer cid = crmClientData.getId(); + + if(!("").equals(linkname) && linkname != null || !("").equals(linkcellphone) && linkcellphone != null) { + CrmClientContacts contacts = new CrmClientContacts(); + contacts.setName(linkname); + contacts.setCellphone(linkcellphone); + contacts.setCompany(linkcompany); + if (("女").equals(linkgender)) + contacts.setGender(0); + else if (("男").equals(linkgender)) + contacts.setGender(1); + else + contacts.setGender(null); + contacts.setPosition(linkposition); + contacts.setTelephone(linktelephone); + contacts.setEmail(linkemail); + contacts.setAddress(linkaddress); + if (!(linkname == null && linkcellphone == null && linkcompany == null && linkgender == null + && linkposition == null && linktelephone == null && linkemail == null && linkaddress == null)) { + contacts.setCid(cid); + contacts.insert(); + } + } + toinsert++; + }else { + failure++; + map.put("name", name); + map.put("msg", "该客户已存在"); + reasons.add(map); } + } catch (Exception e) { + failure++; + map.put("name", name); + map.put("msg", StringUtils.isBlank(e.getMessage()) ? "必填数据出现空值" : e.getMessage()); + reasons.add(map); } - - } - return ResultUtil.success("导入成功"); + + ImportDescriptionDto imds = new ImportDescriptionDto(); + imds.setSuccess(toinsert + toupdate);//成功 + imds.setToinsert(toinsert); + imds.setToupdate(toupdate);//更新 + imds.setFailure(failure);//失败 + imds.setReasons(reasons); + + return ResultUtil.data(imds,"成功"); +// return ResultUtil.success("导入成功"); } private ExcelReader getReaderByUrl(String url) { diff --git a/src/main/java/cn/timer/api/controller/yggl/YgglController.java b/src/main/java/cn/timer/api/controller/yggl/YgglController.java index d6c87b5..b3835d5 100644 --- a/src/main/java/cn/timer/api/controller/yggl/YgglController.java +++ b/src/main/java/cn/timer/api/controller/yggl/YgglController.java @@ -123,6 +123,7 @@ import cn.timer.api.dto.yggl.LoginerChargeDto; import cn.timer.api.dto.yggl.LzbQueryDto; import cn.timer.api.dto.yggl.LzygQueryDto; import cn.timer.api.dto.yggl.ModifyAvatarDto; +import cn.timer.api.dto.yggl.UserInfo; import cn.timer.api.dto.yggl.YgCartogramDto; import cn.timer.api.dto.yggl.YgKVDto; import cn.timer.api.dto.yggl.YgQueryDto; @@ -1997,7 +1998,16 @@ public class YgglController { return ResultUtil.success("上传成功"); } - + @PostMapping(value = "/new_account") + @ApiOperation(value = "修改账号", httpMethod = "POST", notes = "接口发布说明") + public Result<Object> New_account(@CurrentUser UserBean userBean, @RequestBody UserInfo userinfo) { + + YgglMainEmp.builder().phone(userinfo.getPhone()).build().update(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, userinfo.getName())); + + QyzxEmpLogin.builder().phone(userinfo.getPhone()).build().update(new QueryWrapper<QyzxEmpLogin>().lambda().eq(QyzxEmpLogin::getId,userinfo.getName())); + + return ResultUtil.success("修改成功"); + } } diff --git a/src/main/java/cn/timer/api/dto/crm/CrmClientDataImportVo.java b/src/main/java/cn/timer/api/dto/crm/CrmClientDataImportVo.java index a7a4076..98b05ac 100644 --- a/src/main/java/cn/timer/api/dto/crm/CrmClientDataImportVo.java +++ b/src/main/java/cn/timer/api/dto/crm/CrmClientDataImportVo.java @@ -64,5 +64,7 @@ public class CrmClientDataImportVo implements Serializable { private String telephone; private String email; private String linkAddress; + + private String followuprecord; }