From 9a1e035d1a1eda17b14a043d6b9504eff98e5b5f Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Wed, 30 Jul 2025 13:39:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8C=87=E4=BB=A4=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConfigServiceDirectiveController.java | 133 ++++++++++-------- .../entity/DirectiveSyncDto.java | 12 ++ .../IConfigServiceDirectiveService.java | 2 +- .../ConfigServiceDirectiveServiceImpl.java | 41 ++++-- 4 files changed, 117 insertions(+), 71 deletions(-) create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/DirectiveSyncDto.java diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java index fc2b8e3..4df54fd 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java @@ -9,6 +9,7 @@ import com.beust.jcommander.internal.Maps; import com.nu.dto.DirectiveAsyncMQDto; import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.nu.modules.servicedirective.entity.DirectiveSyncDto; import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; import com.nu.utils.RabbitMQUtil; import io.swagger.annotations.Api; @@ -250,10 +251,10 @@ public class ConfigServiceDirectiveController extends JeecgController syncMediaForBiz(@RequestBody ConfigServiceDirective dto) { - //处理媒体资源(放在保存方法之前) - configServiceDirectiveService.handleMediaFile(dto); - //保存 - ConfigServiceDirective configServiceDirective = new ConfigServiceDirective(); - BeanUtils.copyProperties(dto, configServiceDirective); - configServiceDirectiveService.updateById(configServiceDirective); +// @AutoLog(value = "服务指令-同步媒体资源给服务指令对应的业务平台") +// @ApiOperation(value = "服务指令-同步媒体资源给服务指令对应的业务平台", notes = "服务指令-同步媒体资源给服务指令对应的业务平台") +// @RequestMapping(value = "/syncMediaForBiz", method = {RequestMethod.PUT, RequestMethod.POST}) +// public Result syncMediaForBiz(@RequestBody ConfigServiceDirective dto) { +// //处理媒体资源(放在保存方法之前) +// configServiceDirectiveService.handleMediaFile(dto); +// //保存 +// ConfigServiceDirective configServiceDirective = new ConfigServiceDirective(); +// BeanUtils.copyProperties(dto, configServiceDirective); +// configServiceDirectiveService.updateById(configServiceDirective); +// +// DirectiveAsyncMQDto directiveAsyncMQDto = new DirectiveAsyncMQDto(); +// BeanUtils.copyProperties(dto, directiveAsyncMQDto); +// rabbitMQUtil.sendToExchange("hldy.directive", dto.getSysOrgCode() + ".directive.createmedia", directiveAsyncMQDto); +// return Result.OK(Maps.newHashMap()); +// } - DirectiveAsyncMQDto directiveAsyncMQDto = new DirectiveAsyncMQDto(); - BeanUtils.copyProperties(dto, directiveAsyncMQDto); - rabbitMQUtil.sendToExchange("hldy.directive", dto.getSysOrgCode() + ".directive.createmedia", directiveAsyncMQDto); - return Result.OK(Maps.newHashMap()); - } - - @AutoLog(value = "服务指令-同步媒体资源给所有业务平台") - @ApiOperation(value = "服务指令-同步媒体资源给所有业务平台", notes = "服务指令-同步媒体资源给所有业务平台") - @RequestMapping(value = "/syncMediaForAllBiz", method = {RequestMethod.PUT, RequestMethod.POST}) - public Result syncMediaForAllBiz(@RequestBody ConfigServiceDirective dto) { - //处理媒体资源(放在保存方法之前) - configServiceDirectiveService.handleMediaFile(dto); - //保存 - ConfigServiceDirective configServiceDirective = new ConfigServiceDirective(); - BeanUtils.copyProperties(dto, configServiceDirective); - configServiceDirectiveService.updateById(configServiceDirective); - - DirectiveAsyncMQDto directiveAsyncMQDto = new DirectiveAsyncMQDto(); - BeanUtils.copyProperties(dto, directiveAsyncMQDto); - - List orgList = sysBaseAPI.queryOpeDept(); - List codes = orgList.stream().map(o -> o.getString("code")).collect(Collectors.toList()); - - //启动线程,循环 codes, 5 分钟通知一个平台 - new Thread(() -> { - for (String code : codes) { - try { - rabbitMQUtil.sendToExchange("hldy.directive", code + ".directive.createmedia", directiveAsyncMQDto); - // 发送完后,休眠 5 分钟 - Thread.sleep(TimeUnit.MINUTES.toMillis(5)); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - break; - } - } - }).start(); - - return Result.OK(Maps.newHashMap()); - } +// @AutoLog(value = "服务指令-同步媒体资源给所有业务平台") +// @ApiOperation(value = "服务指令-同步媒体资源给所有业务平台", notes = "服务指令-同步媒体资源给所有业务平台") +// @RequestMapping(value = "/syncMediaForAllBiz", method = {RequestMethod.PUT, RequestMethod.POST}) +// public Result syncMediaForAllBiz(@RequestBody ConfigServiceDirective dto) { +// //处理媒体资源(放在保存方法之前) +// configServiceDirectiveService.handleMediaFile(dto); +// //保存 +// ConfigServiceDirective configServiceDirective = new ConfigServiceDirective(); +// BeanUtils.copyProperties(dto, configServiceDirective); +// configServiceDirectiveService.updateById(configServiceDirective); +// +// DirectiveAsyncMQDto directiveAsyncMQDto = new DirectiveAsyncMQDto(); +// BeanUtils.copyProperties(dto, directiveAsyncMQDto); +// +// List orgList = sysBaseAPI.queryOpeDept(); +// List codes = orgList.stream().map(o -> o.getString("code")).collect(Collectors.toList()); +// +// //启动线程,循环 codes, 5 分钟通知一个平台 +// new Thread(() -> { +// for (String code : codes) { +// try { +// rabbitMQUtil.sendToExchange("hldy.directive", code + ".directive.createmedia", directiveAsyncMQDto); +// // 发送完后,休眠 5 分钟 +// Thread.sleep(TimeUnit.MINUTES.toMillis(5)); +// } catch (InterruptedException e) { +// Thread.currentThread().interrupt(); +// break; +// } +// } +// }).start(); +// +// return Result.OK(Maps.newHashMap()); +// } + /** + * @param dataSourceCode 源数据机构编码 + * @param syncIds 新增指令的id(逗号拼接) + * @param upIds 更新指令的id(逗号拼接) + * @param syncOrgCodes 同步给哪些机构 + * @param syncOption “新增”指令需要更新哪些内容 all(业务字段+指令资源) business(业务字段) media(指令资源) + * @return + */ @AutoLog(value = "服务指令-指令同步") @ApiOperation(value = "服务指令-指令同步", notes = "服务指令-指令同步") - @GetMapping(value = "/syncDirective") + @PostMapping(value = "/syncDirective") @DS("#dataSourceCode") - public Result syncDirective(@RequestParam(name = "dataSourceCode") String dataSourceCode, @RequestParam(name = "syncIds") String syncIds, @RequestParam(name = "syncOrgCodes") String syncOrgCodes) { - //服务指令 - configServiceDirectiveService.syncDirective(syncIds, syncOrgCodes); + public Result syncDirective(@RequestParam(name = "dataSourceCode") String dataSourceCode,@RequestBody DirectiveSyncDto dto) { + //同步-新增服务指令 + configServiceDirectiveService.syncDirective(dto.getSyncIds(), dto.getSyncOrgCodes(), dto.getSyncOption()); + //给新增的指令同步指令资源 + if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption())) { + + } + + //同步 - 更新指令资源字段 + if (StringUtils.isNotBlank(dto.getUpIds())) { + + } + //发送消息 return Result.ok(); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/DirectiveSyncDto.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/DirectiveSyncDto.java new file mode 100644 index 0000000..143972c --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/DirectiveSyncDto.java @@ -0,0 +1,12 @@ +package com.nu.modules.servicedirective.entity; + +import lombok.Data; + +@Data +public class DirectiveSyncDto { + private String dataSourceCode; + private String syncIds; + private String upIds; + private String syncOrgCodes; + private String syncOption; +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java index 4273b69..c64c2c4 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java @@ -62,5 +62,5 @@ public interface IConfigServiceDirectiveService extends IService directives; List directiveIds = Arrays.asList(syncIds.split(",")); @@ -419,6 +419,15 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl { + //只同步业务字段的话清空指令资源字段的值 + if ("business".equals(syncOption)) { + record.setPreviewFile(null); + record.setImmediateFile(null); + record.setMp3File(null); + record.setMp4File(null); + record.setServiceContent(null); + } + List bodyTagList = record.getBodyTagList(); record.setBodyTags(bodyTagList.stream().map(DirectiveBodyTag::getId).collect(Collectors.joining(","))); @@ -431,26 +440,32 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl instructionTagIds = directives.stream().map(ConfigServiceDirective::getInstructionTagId).filter(instructionTagId -> instructionTagId != null && !instructionTagId.isEmpty()).distinct().collect(Collectors.toList()); - QueryWrapper qw = new QueryWrapper<>(); - qw.in("id", instructionTagIds); - List list = instructionTagService.list(qw); - directiveMQDto.setInstructionList(BeanUtil.copyToList(list, InstructionTagMQDto.class)); + if (!instructionTagIds.isEmpty()) { + QueryWrapper qw = new QueryWrapper<>(); + qw.in("id", instructionTagIds); + List list = instructionTagService.list(qw); + directiveMQDto.setInstructionList(BeanUtil.copyToList(list, InstructionTagMQDto.class)); + } } //服务类别 { List categoryIds = directives.stream().map(ConfigServiceDirective::getCategoryId).filter(categoryId -> categoryId != null && !categoryId.isEmpty()).distinct().collect(Collectors.toList()); - QueryWrapper qw = new QueryWrapper<>(); - qw.in("id", categoryIds); - List list = categoryService.list(qw); - directiveMQDto.setCategoryList(BeanUtil.copyToList(list, CategoryMQDto.class)); + if (!categoryIds.isEmpty()) { + QueryWrapper qw = new QueryWrapper<>(); + qw.in("id", categoryIds); + List list = categoryService.list(qw); + directiveMQDto.setCategoryList(BeanUtil.copyToList(list, CategoryMQDto.class)); + } } //服务类型 { List typeIds = directives.stream().map(ConfigServiceDirective::getTypeId).filter(typeId -> typeId != null && !typeId.isEmpty()).distinct().collect(Collectors.toList()); - QueryWrapper qw = new QueryWrapper<>(); - qw.in("id", typeIds); - List list = typeService.list(qw); - directiveMQDto.setTypeList(BeanUtil.copyToList(list, DirectiveTypeMQDto.class)); + if (!typeIds.isEmpty()) { + QueryWrapper qw = new QueryWrapper<>(); + qw.in("id", typeIds); + List list = typeService.list(qw); + directiveMQDto.setTypeList(BeanUtil.copyToList(list, DirectiveTypeMQDto.class)); + } } //体型标签 {