diff --git a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/vo/InfoRespVO.java b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/vo/InfoRespVO.java index 9181761e41bfd616f6578b6d591b7fbb89284c16..a584212bb0c7997dad7dab65a12e122ceb2e0ece 100644 --- a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/vo/InfoRespVO.java +++ b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/vo/InfoRespVO.java @@ -22,7 +22,7 @@ import javax.validation.constraints.NotNull; public class InfoRespVO { @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @ExcelProperty("主键ID") +// @ExcelProperty("主键ID") private Long id; @Schema(description = "客户姓名", requiredMode = Schema.RequiredMode.REQUIRED) @@ -95,7 +95,7 @@ public class InfoRespVO { private Integer visitType; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") +// @ExcelProperty("创建时间") private LocalDateTime createTime; @Schema(description = "服务内容") diff --git a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/dal/mysql/info/InfoMapper.java b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/dal/mysql/info/InfoMapper.java index 3b6b73bd57cef65fe1c404ecd80908b3a0285311..07bd9fb5b06ad6c95e5be12960cb31f1d66accf4 100644 --- a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/dal/mysql/info/InfoMapper.java +++ b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/dal/mysql/info/InfoMapper.java @@ -31,7 +31,7 @@ public interface InfoMapper extends BaseMapperX { .eqIfPresent(InfoDO::getVisitType, reqVO.getVisitType()) .eqIfPresent(InfoDO::getCompanyId,companyId) .betweenIfPresent(InfoDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(InfoDO::getId)); + .orderByDesc(InfoDO::getVisitDate)); } default PageResult selectHomePage(InfoPageReqVO reqVO) { Long companyId = SecurityFrameworkUtils.getLoginUserDeptId(); diff --git a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/home/HomeServiceImpl.java b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/home/HomeServiceImpl.java index 2d8c3819bda705d079e148c78bd9b444a8b0bcb1..9c70102f0dde24cbf22dc1074a6a4e04f5745bf3 100644 --- a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/home/HomeServiceImpl.java +++ b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/home/HomeServiceImpl.java @@ -60,28 +60,7 @@ public class HomeServiceImpl implements HomeService { @Override public HomeFirstRespVO getHomeInfoFirst(HomeReqVO reqVO) { HomeFirstRespVO homeFirstRespVO = new HomeFirstRespVO(); - //业务员数量(不按时间) - Long loginUserDeptId = SecurityFrameworkUtils.getLoginUserDeptId();//查出登录用户的deptId - Set deptCondition = Collections.emptySet();//默认不限制 - if (loginUserDeptId == null || !loginUserDeptId.equals(100L)) {//说明是总公司,不限制 - deptCondition = getDeptCondition(loginUserDeptId);//不是总公司了,就递归查询该部门以及子部门的所有id - } - List userDOS = userMapper.selectListInDeptIds(deptCondition); - homeFirstRespVO.setYwysl(String.valueOf(userDOS.size())); - //按创建时间查这段时间的客户数量 - CustomerInfoPageReqVO customerInfoPageReqVO = new CustomerInfoPageReqVO(); - customerInfoPageReqVO.setCreateTime(reqVO.getSearchTime()); - customerInfoPageReqVO.setPageSize(-1);//不分页 - customerInfoPageReqVO.setCompanyName(reqVO.getCompanyName()); - PageResult customerInfoDOPageResult = customerInfoMapper.selectHomePage(customerInfoPageReqVO);//精准查询 - //拜访客户总数量 - homeFirstRespVO.setBfkhsl(String.valueOf(customerInfoDOPageResult.getTotal())); - //商业客户数量 - String sykhsl = customerInfoDOPageResult.getList().stream().filter(customerInfoDO -> customerInfoDO.getCustomerType() == 0).count() + ""; - //医疗客户数量 - String ylkhsl = customerInfoDOPageResult.getList().stream().filter(customerInfoDO -> customerInfoDO.getCustomerType() == 1).count() + ""; - homeFirstRespVO.setSykhsl(sykhsl); - homeFirstRespVO.setYlkhsl(ylkhsl); + //按拜访时间查这段时间的拜访次数 InfoPageReqVO infoPageReqVO = new InfoPageReqVO(); infoPageReqVO.setVisitDate(reqVO.getSearchTime()); @@ -102,6 +81,43 @@ public class HomeServiceImpl implements HomeService { list.stream() .filter(infoDO -> Integer.valueOf(1).equals(infoDO.getVisitType())) .count())); + + //业务员数量(不按时间) +// Long loginUserDeptId = SecurityFrameworkUtils.getLoginUserDeptId();//查出登录用户的deptId +// Set deptCondition = Collections.emptySet();//默认不限制 +// if (loginUserDeptId == null || !loginUserDeptId.equals(100L)) {//说明是总公司,不限制 +// deptCondition = getDeptCondition(loginUserDeptId);//不是总公司了,就递归查询该部门以及子部门的所有id +// } +// List userDOS = userMapper.selectListInDeptIds(deptCondition); + long count = list.stream() + .map(InfoDO::getCreator) // 提取 creator 字段 + .filter(Objects::nonNull) // 可选:过滤掉 null + .distinct() // 去重 + .count();// 统计个数 + homeFirstRespVO.setYwysl(String.valueOf(count)); + //按创建时间查这段时间的客户数量 +// CustomerInfoPageReqVO customerInfoPageReqVO = new CustomerInfoPageReqVO(); +// customerInfoPageReqVO.setCreateTime(reqVO.getSearchTime()); +// customerInfoPageReqVO.setPageSize(-1);//不分页 +// customerInfoPageReqVO.setCompanyName(reqVO.getCompanyName()); +// PageResult customerInfoDOPageResult = customerInfoMapper.selectHomePage(customerInfoPageReqVO);//精准查询 + //按拜访记录中客户的数量 + long companyCount = list.stream() + .map(InfoDO::getCompanyName) // 提取 companyName 字段 + .filter(Objects::nonNull) // 可选:过滤掉 null + .distinct() // 去重 + .count();// 统计个数 + //拜访客户总数量 + homeFirstRespVO.setBfkhsl(String.valueOf(companyCount)); + //商业客户数量 +// String sykhsl = customerInfoDOPageResult.getList().stream().filter(customerInfoDO -> customerInfoDO.getCustomerType() == 0).count() + ""; + String sykhsl = list.stream().filter(infoDO -> infoDO.getCustomerStatus() == 0).map(InfoDO::getCompanyName).filter(Objects::nonNull).distinct().count()+ ""; + //医疗客户数量 +// String ylkhsl = customerInfoDOPageResult.getList().stream().filter(customerInfoDO -> customerInfoDO.getCustomerType() == 1).count() + ""; + String ylkhsl = list.stream().filter(infoDO -> infoDO.getCustomerStatus() == 1).map(InfoDO::getCompanyName).filter(Objects::nonNull).distinct().count()+ ""; + homeFirstRespVO.setSykhsl(sykhsl); + homeFirstRespVO.setYlkhsl(ylkhsl); + return homeFirstRespVO; } /** diff --git a/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/InfoForm.vue b/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/InfoForm.vue index c405f64943fbe387de07e59d4f2cfd6c6541e021..c1a9e919fec64b1cc1c414c4434846b474c4430a 100644 --- a/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/InfoForm.vue +++ b/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/InfoForm.vue @@ -55,7 +55,7 @@ diff --git a/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/index.vue b/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/index.vue index 6f980b63cc2050229e5f9a9493ce24cab415d547..398f1588cec27c7328988738088220e2a1d51d8d 100644 --- a/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/index.vue +++ b/yudao-ui/yudao-ui-admin-vue3/src/views/visit/info/index.vue @@ -95,17 +95,17 @@ /> - - - + + + + + + + + + + + 搜索 重置 @@ -169,7 +169,7 @@ - + @@ -201,13 +201,13 @@ - + + + + + + +