From d3aa88d79091c985dadc4d74273727ac9a644708 Mon Sep 17 00:00:00 2001 From: lihulong <792809035@qq.com> Date: Mon, 25 Aug 2025 17:11:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=8E=E6=B9=96=E9=BE=992025-8-25=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=89=93=E5=8D=B0=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/info/InfoController.java | 3 ++ .../visit/service/info/InfoServiceImpl.java | 42 ++++++++++++------- yudao-ui/yudao-ui-admin-vue3/.env.local | 4 +- .../src/api/visit/info/index.ts | 1 + .../components/UploadFile/src/UploadImgs.vue | 13 +++++- .../src/views/visit/customerinfo/index.vue | 1 - .../src/views/visit/util/PrintContent.vue | 27 +++++++++--- 7 files changed, 65 insertions(+), 26 deletions(-) diff --git a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/InfoController.java b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/InfoController.java index dbdb3ee..4358230 100644 --- a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/InfoController.java +++ b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/controller/admin/info/InfoController.java @@ -153,6 +153,9 @@ public class InfoController { @Operation(summary = "获得客户拜访打印信息根据公司名称") @PreAuthorize("@ss.hasPermission('visit:customer-info:print')") public CommonResult> getPrintListByCompanyName(@RequestParam("companyName") String companyName) { + if (companyName.isEmpty()){ + throw new RuntimeException("公司名称获取异常!"); + } InfoPrintVO info = infoService.getInfoByCompanyName(companyName); List infoPrintVO = new ArrayList<>(); if (info == null){ diff --git a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/info/InfoServiceImpl.java b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/info/InfoServiceImpl.java index b161063..a32d5b5 100644 --- a/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/info/InfoServiceImpl.java +++ b/yudao-module-visit/src/main/java/cn/iocoder/yudao/module/visit/service/info/InfoServiceImpl.java @@ -19,6 +19,8 @@ import org.apache.http.entity.ContentType; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -46,6 +48,7 @@ import static java.nio.file.Files.createFile; @Validated public class InfoServiceImpl implements InfoService { + private static final Logger log = LoggerFactory.getLogger(InfoServiceImpl.class); @Resource private InfoMapper infoMapper; @@ -243,11 +246,11 @@ public class InfoServiceImpl implements InfoService { info.forEach(infoDO -> { InfoPrintVO infoPrintVO = new InfoPrintVO(); infoPrintVO.setServiceContent(Collections.singletonList(infoDO.getServiceContent()));//本次服务内容 - //服务图片(最多四张) + //服务图片(最多10张) String imagesStr = infoDO.getServiceImages(); if (StringUtils.isNotBlank(imagesStr)) { String limitedImagesStr = Arrays.stream(imagesStr.split(",")) - .limit(4) + .limit(10) .collect(Collectors.joining(",")); infoPrintVO.setServiceImages(limitedImagesStr); } else { @@ -271,9 +274,9 @@ public class InfoServiceImpl implements InfoService { @Override public InfoPrintVO getInfoByCompanyName(String companyName) { InfoPrintVO infoPrintVO = new InfoPrintVO(); - //服务内容(最近四次) + //服务内容(最近五次) List serviceContent = new ArrayList<>(); - //服务图片(最多四张) + //服务图片(最多十张) List serviceImages = new ArrayList<>(); //拜访时间记录 List visitDateList = new ArrayList<>(); @@ -281,26 +284,35 @@ public class InfoServiceImpl implements InfoService { YearMonth currentYearMonth = YearMonth.now(); //现根据客户名称获取历史拜访记录 List info = infoMapper.selectByCompanyName(companyName); + + System.out.println("拜访信息" + info); + if (info != null && !info.isEmpty()){ - //取最近四次 + //取最近五次 info = info.stream() // 筛选本月记录(基于 LocalDateTime) - .filter(infoDO -> { - LocalDateTime visitDateTime = infoDO.getVisitDate(); - return YearMonth.from(visitDateTime.toLocalDate()).equals(currentYearMonth); - }) - .sorted(Comparator.comparing(InfoDO::getVisitDate).reversed()).limit(4).collect(Collectors.toList()); - //取最多4张服务图片 - int maxImages = 4; +// .filter(infoDO -> { +// LocalDateTime visitDateTime = infoDO.getVisitDate(); +// return YearMonth.from(visitDateTime.toLocalDate()).equals(currentYearMonth); +// }) + .sorted(Comparator.comparing(InfoDO::getVisitDate)).limit(5).collect(Collectors.toList()); + //取最多10张服务图片 + int maxImages = 10; + int maxObjects = 5; // 最多处理5个对象 + int objectCount = 0; // 对象计数器 for (InfoDO infoDO : info) { - if (serviceImages.size() >= maxImages) break; + // 超过最大对象数或已收集足够图片则停止 + if (objectCount >= maxObjects || serviceImages.size() >= maxImages) break; String imagesStr = infoDO.getServiceImages(); if (StringUtils.isNotBlank(imagesStr)) { List imageList = Arrays.asList(imagesStr.split(",")); int remaining = maxImages - serviceImages.size(); - serviceImages.addAll(imageList.stream().limit(remaining).collect(Collectors.toList())); + // 每个对象最多取2张,同时不超过剩余需要数量 + int take = Math.min(2, remaining); + serviceImages.addAll(imageList.stream().limit(take).collect(Collectors.toList())); } + objectCount++; } //获取客户拜访记录成功,获取客户信息 info.forEach(infoDO -> { @@ -326,7 +338,7 @@ public class InfoServiceImpl implements InfoService { //拜访次数 infoPrintVO.setServiceCount(info.size()); }else { - return null; + return infoPrintVO; } return infoPrintVO; } diff --git a/yudao-ui/yudao-ui-admin-vue3/.env.local b/yudao-ui/yudao-ui-admin-vue3/.env.local index 7896e2d..9315750 100644 --- a/yudao-ui/yudao-ui-admin-vue3/.env.local +++ b/yudao-ui/yudao-ui-admin-vue3/.env.local @@ -4,8 +4,8 @@ NODE_ENV=development VITE_DEV=true # 请求路径 -# VITE_BASE_URL='http://192.168.0.182:48080' -VITE_BASE_URL='https://hntqwl.com' +VITE_BASE_URL='http://192.168.0.144:48080' +#VITE_BASE_URL='https://hntqwl.com' # VITE_BASE_URL='http://localhost:48080' # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务 diff --git a/yudao-ui/yudao-ui-admin-vue3/src/api/visit/info/index.ts b/yudao-ui/yudao-ui-admin-vue3/src/api/visit/info/index.ts index cf8e9bb..0a73bb3 100644 --- a/yudao-ui/yudao-ui-admin-vue3/src/api/visit/info/index.ts +++ b/yudao-ui/yudao-ui-admin-vue3/src/api/visit/info/index.ts @@ -84,6 +84,7 @@ export const InfoApi = { //查询打印客户拜访记录 getPrintListByCompanyName: async (companyName: string) => { + console.log(companyName) return await request.get({ url: `/visit/info/getPrintListByCompanyName`, params: { companyName } }) }, diff --git a/yudao-ui/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue b/yudao-ui/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue index 2dcbb2a..c387ee4 100644 --- a/yudao-ui/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue +++ b/yudao-ui/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue @@ -22,7 +22,7 @@