diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempExportVo.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempExportVo.java new file mode 100644 index 0000000000..530eb0d402 --- /dev/null +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempExportVo.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.crm.api.crmcustomertemp; + +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 9:34 + */ +@Data +public class CrmCustomerTempExportVo { + private String staffSid; + private String createOrgSid; + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ExportEntityMap(CnName = "创建日期", EnName = "createTime") + private String createTime; + @ExportEntityMap(CnName = "客户编码", EnName = "customerNo") + private String customerNo; + @ExportEntityMap(CnName = "分公司", EnName = "createOrgName") + private String createOrgName; + @ExportEntityMap(CnName = "部门", EnName = "deptName") + private String deptName; + @ExportEntityMap(CnName = " 销售专员", EnName = "staffName") + private String staffName; + @ExportEntityMap(CnName = "客户名称", EnName = "name") + private String name; + @ExportEntityMap(CnName = "客户类型", EnName = "customerType") + private String customerType; + @ExportEntityMap(CnName = "联系电话", EnName = "mobile") + private String mobile; + @ExportEntityMap(CnName = "微信号", EnName = "weixin") + private String weixin; + @ExportEntityMap(CnName = "客户级别", EnName = "level") + private String level; + @ExportEntityMap(CnName = "提醒日期", EnName = "remind_day") + private String remind_day; + @ExportEntityMap(CnName = "意向车型", EnName = "yxcounts") + private String yxcounts; + @ExportEntityMap(CnName = "跟进记录", EnName = "gjcounts") + private String gjcounts; +} diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java index 1a5d285d9c..ba5a25e3d3 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java @@ -96,6 +96,15 @@ public interface CrmCustomerTempFeign { public ResultBean billApplicatSaveCust(@Valid @RequestBody CrmCustomerBillApplicationDto dto); + /** + * 客户列表导出 + * @param crmCustomerTempQuery + */ + @PostMapping("/exportExcel") + @ApiOperation(value = "客户列表导出") + @ResponseBody + public void exportExcel(@RequestBody CrmCustomerTempQuery crmCustomerTempQuery); + /** * pc端潜在客户编辑保存 * diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java index 9b6a2e0d89..c5758d360c 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java @@ -73,6 +73,11 @@ public class CrmCustomerTempFeignFallback implements CrmCustomerTempFeign { return null; } + @Override + public void exportExcel(CrmCustomerTempQuery crmCustomerTempQuery) { + + } + @Override public ResultBean update(CrmCustomerTempUpdateDto dto,String sid){ return ResultBean.fireFail().setMsg("接口anrui-crm/crmcustomertemp/update无法访问"); diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempQuery.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempQuery.java index 1bfb607801..d2f794b43c 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempQuery.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempQuery.java @@ -56,4 +56,13 @@ public class CrmCustomerTempQuery implements Query { @ApiModelProperty("客户sid") private List customerSidList; + @ApiModelProperty("创建开始日期") + private String createStartDate; + + @ApiModelProperty("创建结束日期") + private String createEndDate; + + @ApiModelProperty("销售专员") + private String staffName; + } diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java index 2452700d9c..5f4dbe3de4 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.java @@ -135,4 +135,6 @@ public interface CrmCustomerTempMapper extends BaseMapper { List selectLists(@Param(Constants.WRAPPER) QueryWrapper qw); void updateIdBySid(@Param("idCard") String idCard,@Param("custSid") String custSid); + + List exportExcel(@Param(Constants.WRAPPER) QueryWrapper qw); } \ No newline at end of file diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml index 665a6bffbc..6dd8a4ec66 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml @@ -5,6 +5,7 @@ + update crm_customer_temp diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java index ecc8b8473d..c69318d535 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java @@ -1,12 +1,17 @@ package com.yxt.anrui.crm.biz.crmcustomertemp; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleExportVo; import com.yxt.anrui.buscenter.api.busdeposit.BusDepositFeign; import com.yxt.anrui.crm.api.crmcustomerfile.AppCrmCustomerTempArchivesDto; import com.yxt.anrui.crm.api.crmcustomerfile.AppCrmCustomerTempArchivesVo; import com.yxt.anrui.crm.api.crmcustomertemp.*; import com.yxt.anrui.crm.biz.crmcustomerfile.CrmCustomerFileService; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -18,6 +23,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -49,7 +59,8 @@ public class CrmCustomerTempRest implements CrmCustomerTempFeign { @Autowired private SysUserFeign sysUserFeign; - + @Autowired + private HttpServletResponse response; @Override public ResultBean> listPage(@RequestBody PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); @@ -119,6 +130,22 @@ public class CrmCustomerTempRest implements CrmCustomerTempFeign { return crmCustomerTempService.billApplicatSaveCust(dto); } + @Override + public void exportExcel(CrmCustomerTempQuery crmCustomerTempQuery) { + //得到所有要导出的数据 + List CrmCustomerTempExportVoList = crmCustomerTempService.exportExcel(crmCustomerTempQuery); + //定义导出的excel名字 + String excelName = "客户信息列表"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + //导出车辆管理列表 + ExportExcelUtils.export(fileNameURL, CrmCustomerTempExportVoList, CrmCustomerTempExportVo.class, response); + } + /** * 潜在客户修改保存 * diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java index c17e755c11..9952cfe86e 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java @@ -59,6 +59,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -215,11 +217,19 @@ public class CrmCustomerTempService extends MybatisBaseService= date_format('" + remindStartDay + "','%Y-%m-%d')"). apply(StringUtils.isNotBlank(remindEndDay), "date_format (cct.remind_day,'%Y-%m-%d') <= date_format('" + remindEndDay + "','%Y-%m-%d')" ); + String createStartDate = query.getCreateStartDate(); + String createEndDate = query.getCreateEndDate(); + qw.apply(StringUtils.isNotBlank(createStartDate), "date_format (cct.createTime,'%Y-%m-%d') >= date_format('" + createStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(createEndDate), "date_format (cct.createTime,'%Y-%m-%d') <= date_format('" + createEndDate + "','%Y-%m-%d')" + ); IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectPageVo(page, qw); for (CrmCustomerTempVo record : pagging.getRecords()) { @@ -227,8 +237,8 @@ public class CrmCustomerTempService extends MybatisBaseService sysStaffOrgVos = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid).getData(); for (SysStaffOrgVo sysStaffOrgVo : sysStaffOrgVos) { SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(sysStaffOrgVo.getOrgSid()).getData(); @@ -1223,6 +1233,87 @@ public class CrmCustomerTempService extends MybatisBaseService exportExcel(CrmCustomerTempQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + String userSid = query.getUserSid(); + //根据用户的组织机构查询分公司 + String orgSidPath = query.getOrgSidPath(); + String orgSid = "";//分公司sid + if (StringUtils.isNotBlank(orgSidPath)) { + orgSid = sysStaffOrgFeign.getOrgSidByPath(orgSidPath).getData(); + } else { + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData(); + if (sysOrganizationVo != null) { + orgSid = sysOrganizationVo.getSid(); + } + } + SysOrganizationVo data = sysOrganizationFeign.selectByOrgSidPath(orgSidPath).getData(); + String orgLevelKey = data.getOrgLevelKey(); + if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, 73); + qw.like("so.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + qw.eq("cct.createOrgSid", orgSid); + } + if (StringUtils.isNotBlank(query.getCustomerTypeKey())) { + qw.eq("cct.customerTypeKey", query.getCustomerTypeKey()); + } + + if (StringUtils.isNotBlank(query.getName())) { + qw.like("cct.name", query.getName()); + } + + if (StringUtils.isNotBlank(query.getLevelKey())) { + qw.eq("cct.levelKey", query.getLevelKey()); + } + + if (StringUtils.isNotBlank(query.getMobile())) { + qw.like("cct.mobile", query.getMobile()); + } + if (StringUtils.isNotBlank(query.getStaffName())) { + qw.like("st.name", query.getStaffName()); + } + String remindStartDay = query.getRemindStartDay(); + String remindEndDay = query.getRemindEndDay(); + qw.apply(StringUtils.isNotBlank(remindStartDay), "date_format (cct.remind_day,'%Y-%m-%d') >= date_format('" + remindStartDay + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(remindEndDay), "date_format (cct.remind_day,'%Y-%m-%d') <= date_format('" + remindEndDay + "','%Y-%m-%d')" + ); + String createStartDate = query.getCreateStartDate(); + String createEndDate = query.getCreateEndDate(); + qw.apply(StringUtils.isNotBlank(createStartDate), "date_format (cct.createTime,'%Y-%m-%d') >= date_format('" + createStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(createEndDate), "date_format (cct.createTime,'%Y-%m-%d') <= date_format('" + createEndDate + "','%Y-%m-%d')" + ); + List records = baseMapper.exportExcel(qw); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + int id = 1; + if (!records.isEmpty()) { + for (CrmCustomerTempExportVo record : records) { + try { + Date date = sdf.parse(record.getCreateTime()); + record.setCreateTime(sdf.format(date)); + } catch (ParseException e) { + e.printStackTrace(); + } + String createOrgSid = record.getCreateOrgSid(); + String staffSid = record.getStaffSid(); + String createOrgName = sysOrganizationFeign.fetchBySid(createOrgSid).getData().getName(); + record.setCreateOrgName(createOrgName); + List sysStaffOrgVos = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid).getData(); + for (SysStaffOrgVo sysStaffOrgVo : sysStaffOrgVos) { + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(sysStaffOrgVo.getOrgSid()).getData(); + String psid = sysOrganizationVo.getPsid(); + if (psid.equals(createOrgSid)) { + String orgName = sysStaffOrgVo.getOrgName(); + record.setDeptName(orgName); + } + } + record.setRankNo(id); + id = id + 1; + } + } + return records; } } \ No newline at end of file