From 1d3a503ed5a7c077ec342289e21fe594c0a8fc39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B3=95=E6=8B=8951246?= <719602854@qq.com> Date: Fri, 13 Jun 2025 18:32:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E4=BF=AE=E6=94=B9=EF=BC=8Ccr?= =?UTF-8?q?eateTime=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/info/vo/InfoRespVO.java | 4 +- .../visit/dal/mysql/info/InfoMapper.java | 2 +- .../visit/service/home/HomeServiceImpl.java | 60 ++++++++++++------- .../src/views/visit/info/InfoForm.vue | 2 +- .../src/views/visit/info/index.vue | 38 ++++++------ 5 files changed, 61 insertions(+), 45 deletions(-) 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 9181761..a584212 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 3b6b73b..07bd9fb 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 2d8c381..9c70102 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 c405f64..c1a9e91 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 6f980b6..398f158 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 @@ - + + + + + + +