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 dbdb3ee6fe0e0c920a087599628df7f75f47a67e..4358230aff58fd6345b254cad988055af6e67770 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 b161063c976ea3b17ba898202077b0c8b2805c30..a32d5b5830ffa64ebc05e380ce20b4030faf018f 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 7896e2d49097758fb8da2c3b3b3079c02627c7f8..9315750002ad18c1033edfa8cebddc1f00d6b914 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 cf8e9bb74329d763bba40eaee08a6cc3e291447d..0a73bb3046cdb055a4a899dcc73ad7b6e49c2676 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 2dcbb2ab2b6cb8e5b34a5495185d4f564889ae39..c387ee4a214a597000eccb00ca15c1886abdb9d9 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 @@