Commit eda54634 by lal

Merge branch 'develop' of develop-gitlab.youlingrc.com:8timerv2/8timerapiv200 into lal

parents 7dd32824 a56c60a9
......@@ -4,7 +4,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
......@@ -24,7 +23,9 @@ import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
......@@ -49,6 +50,7 @@ import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.dao.crm.CrmClientContactsMapper;
import cn.timer.api.dao.crm.CrmClientDataMapper;
import cn.timer.api.dto.crm.CrmCartogramDto;
import cn.timer.api.dto.crm.CrmClientDataImportVo;
import cn.timer.api.utils.CheckUtil;
import cn.timer.api.utils.Result;
......@@ -445,7 +447,7 @@ public class CrmController {
}
List<Integer> addList = CheckUtil.reduce(newIdsList, oldIdsList); // 要加的协助人
for (Integer id : addList) {
CrmClientAssociate.builder().cid(cid).associateId(id).build().insert();
CrmClientAssociate.builder().cid(cid).associateId(id).orgCode(getOrgCode(userBean)).build().insert();
}
crmClientData.setModifyUser(getEmpNum(userBean));
if (crmClientData.updateById())
......@@ -531,12 +533,20 @@ public class CrmController {
.collect(Collectors.toList());
}
private <T> List<T> getPageList(List<T> list, int pageNumber, int pageSize, Comparator<T> comparator) {
return list.stream().sorted(comparator).skip((pageNumber - 1) * pageSize).limit(pageSize)
.collect(Collectors.toList());
}
@GetMapping("getMyCilentTotal")
@ApiOperation(value = "获取我的客户列表(全)", httpMethod = "GET", notes = "接口发布说明")
public Result<List<CrmClientData>> getMyCilentTotal(@CurrentUser UserBean userBean,
@RequestParam(required = false, defaultValue = "0") Integer type,
@RequestParam(required = false) Integer groupId, @RequestParam(required = false) Integer status,
@RequestParam(required = false) String like) {
@RequestParam(required = false) String like,
@RequestParam(required = false, defaultValue = "1") int pageNumber,
@RequestParam(required = false, defaultValue = "10") int pageSize) {
Integer empNum = getEmpNum(userBean);
Integer orgCode = getOrgCode(userBean);
List<CrmClientData> crmClientDatas = null;
......@@ -555,8 +565,16 @@ public class CrmController {
crmClientDatas = getCilentFollowOvertime(empNum, orgCode, groupId, status);
else
return ResultUtil.error("查询失败");
Collections.sort(crmClientDatas, Comparator.comparing(CrmClientData::getCreateTime).reversed()); // 按时间降序排序
return ResultUtil.data(crmClientDatas, "查询成功");
// Collections.sort(crmClientDatas, Comparator.comparing(CrmClientData::getCreateTime).reversed()); // 按时间降序排序
// int pageNumber = 1;
// int pageSize = 10;
List<CrmClientData> result = getPageList(crmClientDatas, pageNumber, pageSize,
Comparator.comparing(CrmClientData::getCreateTime).reversed());
return ResultUtil.pageData(result, (long) result.size(), "查询成功");
// return ResultUtil.data(crmClientDatas, "查询成功");
}
private List<Integer> MyJoinGroup(Integer empNum, Integer orgCode) {
......@@ -578,7 +596,9 @@ public class CrmController {
@ApiOperation(value = "获取公海客户列表(全)", httpMethod = "GET", notes = "接口发布说明")
public Result<List<CrmClientData>> getSeaCilentTotal(@CurrentUser UserBean userBean,
@RequestParam(required = false) Integer type, @RequestParam(required = false) Integer groupId,
@RequestParam(required = false) Integer status, @RequestParam(required = false) String like) {
@RequestParam(required = false) Integer status, @RequestParam(required = false) String like,
@RequestParam(required = false, defaultValue = "1") int pageNumber,
@RequestParam(required = false, defaultValue = "10") int pageSize) {
Integer empNum = getEmpNum(userBean);
Integer orgCode = getOrgCode(userBean);
......@@ -602,7 +622,14 @@ public class CrmController {
.like(!StrUtil.isBlank(like), CrmClientData::getClientName, like).or()
.like(!StrUtil.isBlank(like), CrmClientData::getClientCellphone, like));
return ResultUtil.data(list, "查询成功");
// int pageNumber = 1;
// int pageSize = 5;
List<CrmClientData> result = getPageList(list, pageNumber, pageSize,
Comparator.comparing(CrmClientData::getCreateTime).reversed());
return ResultUtil.pageData(result, (long) list.size(), "查询成功");
// return ResultUtil.data(list, "查询成功");
} else {
......@@ -624,7 +651,11 @@ public class CrmController {
for (CrmClientData data : datas)
crmClientDatas.add(data);
}
return ResultUtil.data(crmClientDatas, "查询成功");
List<CrmClientData> result = getPageList(crmClientDatas, pageNumber, pageSize,
Comparator.comparing(CrmClientData::getCreateTime).reversed());
return ResultUtil.pageData(result, (long) crmClientDatas.size(), "查询成功");
// return ResultUtil.data(crmClientDatas, "查询成功");
}
}
......@@ -636,7 +667,9 @@ public class CrmController {
@RequestParam(required = false) String startCreateTime,
@RequestParam(required = false) String endCreateTime,
@RequestParam(required = false) String startFollowTime,
@RequestParam(required = false) String endFollowTime) {
@RequestParam(required = false) String endFollowTime,
@RequestParam(required = false, defaultValue = "1") int pageNumber,
@RequestParam(required = false, defaultValue = "10") int pageSize) {
Integer empNum = getEmpNum(userBean);
Integer orgCode = getOrgCode(userBean);
......@@ -652,8 +685,10 @@ public class CrmController {
&& (qyzxEmpEntAsso.getUserType() == SysRoleType.U_TYPE_ADMIN.getType()
|| qyzxEmpEntAsso.getUserType() == SysRoleType.U_TYPE_C_ADMIN.getType())) {
List<CrmClientData> datas = CrmClientData.builder().build()
.selectList(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
IPage<CrmClientData> page = new Page<CrmClientData>(pageNumber, pageSize);
IPage<CrmClientData> datas = CrmClientData.builder().build().selectPage(page,
new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
.eq(groupId != null && groupId >= 0, CrmClientData::getBelongGroup, groupId)
.eq(type != null && type >= 0, CrmClientData::getClientType, type)
.eq(status != null && status >= 0, CrmClientData::getClientStatus, status)
......@@ -662,13 +697,15 @@ public class CrmController {
.ge(StringUtils.isNotBlank(startFollowTime), CrmClientData::getCreateTime, startFollowTime)
.le(StringUtils.isNotBlank(endFollowTime), CrmClientData::getCreateTime, endFollowTime)
.like(!StrUtil.isBlank(like), CrmClientData::getClientName, like).or()
.like(!StrUtil.isBlank(like), CrmClientData::getClientCellphone, like));
return ResultUtil.data(datas, "查询成功");
.like(!StrUtil.isBlank(like), CrmClientData::getClientCellphone, like)
.orderByDesc(CrmClientData::getCreateTime));
return ResultUtil.pageData(datas.getRecords(), datas.getTotal(), "查询成功");
} else {
// 当前用户管理的组
List<Integer> gids = MyManageGroup(empNum, orgCode);
List<Object> crmClientDatas = new ArrayList<Object>();
List<CrmClientData> crmClientDatas = new ArrayList<CrmClientData>();
for (Integer gid : gids) {
List<CrmClientData> datas = CrmClientData.builder().build().selectList(new QueryWrapper<CrmClientData>()
.lambda().eq(CrmClientData::getBelongGroup, gid)
......@@ -684,7 +721,12 @@ public class CrmController {
for (CrmClientData data : datas)
crmClientDatas.add(data);
}
return ResultUtil.data(crmClientDatas, "查询成功");
List<CrmClientData> result = getPageList(crmClientDatas, pageNumber, pageSize,
Comparator.comparing(CrmClientData::getCreateTime).reversed());
return ResultUtil.pageData(result, (long) crmClientDatas.size(), "查询成功");
// return ResultUtil.data(crmClientDatas, "查询成功");
}
}
......@@ -969,23 +1011,25 @@ public class CrmController {
}
listAll.add(cartogram5);
List<Map<String, Object>> cartogram6 = new ArrayList<Map<String, Object>>(); // 图6
for (Integer keyId : getKeyIdList()) {
Map<String, Object> map = cartogram3(orgCode, groupId, keyId, belonger, startCreateTime, endCreateTime);
if ((Integer) map.get("num") > 0) {
cartogram6.add(map);
}
}
// List<Map<String, Object>> cartogram6 = new ArrayList<Map<String, Object>>(); // 图6
// for (Integer keyId : getKeyIdList()) {
// Map<String, Object> map = cartogram3(orgCode, groupId, keyId, belonger, startCreateTime, endCreateTime);
// if ((Integer) map.get("num") > 0) {
// cartogram6.add(map);
// }
// }
List<CrmCartogramDto> cartogram6 = getCartogram6(orgCode, belonger, groupId, startCreateTime, endCreateTime);
listAll.add(cartogram6);
return ResultUtil.data(listAll, "获取成功");
}
// 获取省份id
private List<Integer> getKeyIdList() {
List<SysRegion> list = SysRegion.builder().build()
.selectList(new LambdaQueryWrapper<SysRegion>().eq(SysRegion::getLevel, 1).select(SysRegion::getKeyId));
return list.stream().map(SysRegion::getKeyId).collect(Collectors.toList());
}
// private List<Integer> getKeyIdList() {
// List<SysRegion> list = SysRegion.builder().build()
// .selectList(new LambdaQueryWrapper<SysRegion>().eq(SysRegion::getLevel, 1).select(SysRegion::getKeyId));
// return list.stream().map(SysRegion::getKeyId).collect(Collectors.toList());
// }
@GetMapping("getAllBusinessMan")
@ApiOperation(value = "获取全部业务员", httpMethod = "GET", notes = "接口发布说明")
......@@ -1001,6 +1045,24 @@ public class CrmController {
return ResultUtil.data(list, "获取成功");
}
@GetMapping("getBusinessManByGroupId")
@ApiOperation(value = "获取业务员ByGroupId", httpMethod = "GET", notes = "接口发布说明")
public Result<Object> getBusinessManByGroupId(@CurrentUser UserBean userBean, Integer gid) {
List<CrmBusinessGroupMember> list = CrmBusinessGroupMember.builder().build()
.selectList(new LambdaQueryWrapper<CrmBusinessGroupMember>().eq(CrmBusinessGroupMember::getGid, gid)
.select(CrmBusinessGroupMember::getEmpNum));
List<Integer> empNums = list.stream().map(CrmBusinessGroupMember::getEmpNum).collect(Collectors.toList());
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
for (Integer empNum : empNums) {
String name = getEmpName(getOrgCode(userBean), empNum);
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", name);
map.put("empNum", empNum);
result.add(map);
}
return ResultUtil.data(result, "获取成功");
}
// 获取公司全部业务员
private List<Integer> getAllBusinessGroupMember(Integer orgCode, Integer groupId) {
List<CrmBusinessGroupMember> list = CrmBusinessGroupMember.builder().build()
......@@ -1013,16 +1075,22 @@ public class CrmController {
}
// 封装条形图数据Map
private Map<String, Object> selectMap(Integer orgCode, Integer belonger, Integer status, String startCreateTime,
String endCreateTime) {
private Map<String, Object> selectMap(Integer orgCode, Integer groupId, Integer belonger, Integer status,
String startCreateTime, String endCreateTime) {
Map<String, Object> map = new HashMap<String, Object>();
Integer num = CrmClientData.builder().build()
.selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
.eq(CrmClientData::getClientStatus, status)
.eq(belonger != null, CrmClientData::getBelongUser, belonger)
.eq(groupId != null, CrmClientData::getBelongGroup, groupId)
.ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime, startCreateTime)
.le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime, endCreateTime));
String name = getEmpName(orgCode, belonger);
String name = "未知";
if (belonger == 0)
name = "公海客户";
else if (belonger > 0)
name = getEmpName(orgCode, belonger);
map.put("name", name);
map.put("num", num);
return map;
......@@ -1043,13 +1111,17 @@ public class CrmController {
if (belonger == null) {
List<Integer> members = getAllBusinessGroupMember(orgCode, groupId);
for (Integer memberId : members) {
Map<String, Object> map = selectMap(orgCode, memberId, status, startCreateTime, endCreateTime);
Map<String, Object> map = selectMap(orgCode, groupId, memberId, status, startCreateTime, endCreateTime);
if ((Integer) map.get("num") > 0) {
list.add(map);
}
}
Map<String, Object> map = selectMap(orgCode, groupId, 0, status, startCreateTime, endCreateTime);
if ((Integer) map.get("num") > 0)
list.add(map);
} else {
Map<String, Object> map = selectMap(orgCode, belonger, status, startCreateTime, endCreateTime);
Map<String, Object> map = selectMap(orgCode, groupId, belonger, status, startCreateTime, endCreateTime);
if ((Integer) map.get("num") > 0) {
list.add(map);
}
......@@ -1076,11 +1148,21 @@ public class CrmController {
num += CrmClientData.builder().build()
.selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
.eq(CrmClientData::getClientType, level).eq(CrmClientData::getBelongUser, memberId)
.eq(groupId != null, CrmClientData::getBelongGroup, groupId)
.ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime,
startCreateTime)
.le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime,
endCreateTime));
}
num += CrmClientData.builder().build()
.selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
.eq(CrmClientData::getClientType, level).eq(CrmClientData::getBelongUser, 0)
.eq(groupId != null, CrmClientData::getBelongGroup, groupId)
.ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime, startCreateTime)
.le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime, endCreateTime));
map.put("level", level);
String name = ClientTypeClass.builder().id(level).build().selectById().getName();
map.put("name", name);
......@@ -1109,42 +1191,56 @@ public class CrmController {
* @param belonger 业务员id (可不填)
* @return
*/
private Map<String, Object> cartogram3(Integer orgCode, Integer groupId, Integer provinceId, Integer belonger,
String startCreateTime, String endCreateTime) {
Map<String, Object> map = new HashMap<String, Object>();
Integer num = 0;
if (belonger == null) {
List<Integer> members = getAllBusinessGroupMember(orgCode, groupId);
for (Integer memberId : members) {
num += CrmClientData.builder().build()
.selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
.eq(CrmClientData::getProvinceId, provinceId).eq(CrmClientData::getBelongUser, memberId)
.ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime,
startCreateTime)
.le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime,
endCreateTime));
}
map.put("provinceId", provinceId);
String name = SysRegion.builder().build().selectOne(new QueryWrapper<SysRegion>().lambda()
.eq(SysRegion::getLevel, 1).eq(SysRegion::getKeyId, provinceId).select(SysRegion::getRegionName))
.getRegionName();
map.put("provinceName", name);
map.put("num", num);
// private Map<String, Object> cartogram3(Integer orgCode, Integer groupId, Integer provinceId, Integer belonger,
// String startCreateTime, String endCreateTime) {
// Map<String, Object> map = new HashMap<String, Object>();
// Integer num = 0;
// if (belonger == null) {
//
// List<Integer> members = getAllBusinessGroupMember(orgCode, groupId);
// for (Integer memberId : members) {
// num += CrmClientData.builder().build()
// .selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
// .eq(CrmClientData::getProvinceId, provinceId).eq(CrmClientData::getBelongUser, memberId)
// .ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime,
// startCreateTime)
// .le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime,
// endCreateTime));
// }
// map.put("provinceId", provinceId);
// String name = SysRegion.builder().build().selectOne(new QueryWrapper<SysRegion>().lambda()
// .eq(SysRegion::getLevel, 1).eq(SysRegion::getKeyId, provinceId).select(SysRegion::getRegionName))
// .getRegionName();
// map.put("provinceName", name);
// map.put("num", num);
//
// } else {
// num = CrmClientData.builder().build()
// .selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
// .eq(CrmClientData::getProvinceId, provinceId).eq(CrmClientData::getBelongUser, belonger)
// .ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime, startCreateTime)
// .le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime, endCreateTime));
// map.put("provinceId", provinceId);
// String name = SysRegion.builder().build().selectOne(new QueryWrapper<SysRegion>().lambda()
// .eq(SysRegion::getLevel, 1).eq(SysRegion::getKeyId, provinceId).select(SysRegion::getRegionName))
// .getRegionName();
// map.put("provinceName", name);
// map.put("num", num);
// }
// return map;
// }
} else {
num = CrmClientData.builder().build()
.selectCount(new QueryWrapper<CrmClientData>().lambda().eq(CrmClientData::getOrgCode, orgCode)
.eq(CrmClientData::getProvinceId, provinceId).eq(CrmClientData::getBelongUser, belonger)
.ge(StringUtils.isNotBlank(startCreateTime), CrmClientData::getCreateTime, startCreateTime)
.le(StringUtils.isNotBlank(endCreateTime), CrmClientData::getCreateTime, endCreateTime));
map.put("provinceId", provinceId);
String name = SysRegion.builder().build().selectOne(new QueryWrapper<SysRegion>().lambda()
.eq(SysRegion::getLevel, 1).eq(SysRegion::getKeyId, provinceId).select(SysRegion::getRegionName))
.getRegionName();
map.put("provinceName", name);
map.put("num", num);
}
return map;
/**
* 统计图6-籍贯
*
* @param orgCode
* @param belongGroup
* @param createTime
* @return
*/
private List<CrmCartogramDto> getCartogram6(Integer orgCode, Integer belongUser, Integer belongGroup,
String startCreateTime, String endCreateTime) {
return crmClientDataMapper.crmCartogram(orgCode, belongUser, belongGroup, startCreateTime, endCreateTime);
}
/**
......
......@@ -36,7 +36,7 @@ import cn.timer.api.bean.crm.CrmSeaRule;
@Component
public class CrmRuleController {
@Scheduled(cron = "0 0 0/1 * * ? ") // 每小时扫描
@Scheduled(cron = "0 0 10 * * ? ") // 每小时扫描
@Transactional
public void getRules() {
// 全部业务组规则
......
......@@ -7,13 +7,17 @@
*/
package cn.timer.api.dao.crm;
import java.util.List;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.crm.CrmClientData;
import cn.timer.api.dto.crm.CrmCartogramDto;
/**
* Title: CrmClientDataMapper.java
* Description:
* Title: CrmClientDataMapper.java Description:
*
* @author dsc
* @date 2020年6月5日
......@@ -21,4 +25,9 @@ import cn.timer.api.bean.crm.CrmClientData;
*/
public interface CrmClientDataMapper extends BaseMapper<CrmClientData> {
List<CrmCartogramDto> crmCartogram(@RequestParam("orgCode") Integer orgCode,
@RequestParam(name = "belongUser", required = false) Integer belongUser,
@RequestParam(name = "belongGroup", required = false) Integer belongGroup,
@RequestParam(name = "startCreateTime", required = false) String startCreateTime,
@RequestParam(name = "endCreateTime", required = false) String endCreateTime);
}
/**
* Title: CrmCartogramDto.java
* Description:
* @author dsc
* @date 2020年6月22日
* @version 1.0
*/
package cn.timer.api.dto.crm;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Title: CrmCartogramDto.java
*
* @Description:
* @author dsc
* @date 2020年6月22日
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CrmCartogramDto implements Serializable {
private static final long serialVersionUID = -4445892627839823485L;
private Integer provinceId;
private String provinceName;
private Integer num;
}
......@@ -17,7 +17,7 @@ import lombok.NoArgsConstructor;
/**
* Title: CrmClientDataImportVo.java
*
* @Description:
* @Description: 客户导入
* @author dsc
* @date 2020年6月12日
* @version 1.0
......
......@@ -550,10 +550,14 @@ public class RouterUtils {
//在 原审批人 列表中 插入 一个被转派人(审批人)
}else if (sts == ExecutorSts.REDEPLOY.ordinal()) {
List<User> users1 = CollectionUtil.sub(listUser, 0, i_user+1);
redeployUser.setExecute(UNEXECUTED);
users1.add(redeployUser);
List<User> users2 = CollectionUtil.sub(listUser, i_user+1, listUser.size());
System.out.println(users1);
System.out.println(users2);
listUser = ListUtils.union(users1, users2);
n_user = listUser.size();
System.out.println(listUser);
}
}else if (UNEXECUTED.equals(listUser.get(i_user).getExecute())) {
SpmkExecutor.builder()
......
<?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="cn.timer.api.dao.crm.CrmClientDataMapper">
<select id="crmCartogram"
resultType="cn.timer.api.dto.crm.CrmCartogramDto">
SELECT
province_id,province as provinceName,count(province_id) num
FROM
crm_client_data
WHERE
org_code = #{orgCode}
<if test='null != belongUser and belongUser !=""'>AND
belong_user = #{belongUser}
</if>
<if test='null != belongGroup and belongGroup !=""'>AND
belong_group = #{belongGroup}
</if>
<if test='null != startCreateTime and startCreateTime !=""'>AND
create_time <![CDATA[>=]]> #{startCreateTime}
</if>
<if test='null != endCreateTime and endCreateTime !=""'>AND
create_time <![CDATA[<=]]> #{endCreateTime}
</if>
GROUP BY
province_id
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment