From 23664de89063f1e72726f9e5b2146fffc8f2dfad Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Wed, 7 May 2025 14:19:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E5=85=B8=EF=BC=88=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NuBizNuCustomerServerController.java | 51 ++--- .../entity/NuBizNuCustomerServer.java | 10 +- .../mapper/NuBizNuCustomerServerMapper.java | 2 +- .../INuBizNuCustomerServerService.java | 2 +- .../NuBizNuCustomerServerServiceImpl.java | 2 +- .../NuConfigServiceCategoryController.java | 44 +--- .../entity/NuConfigServiceCategory.java | 2 +- .../entity/NuConfigServiceDirective.java | 8 +- .../entity/NuConfigServiceType.java | 2 +- .../mapper/NuConfigServiceCategoryMapper.java | 7 +- .../NuConfigServiceDirectiveMapper.java | 2 +- .../mapper/NuConfigServiceTypeMapper.java | 7 +- .../xml/NuConfigServiceDirectiveMapper.xml | 73 ++++--- .../INuConfigServiceCategoryService.java | 2 +- .../INuConfigServiceDirectiveService.java | 2 +- .../service/INuConfigServiceTypeService.java | 2 +- .../NuConfigServiceCategoryServiceImpl.java | 6 +- .../NuConfigServiceDirectiveServiceImpl.java | 2 +- .../impl/NuConfigServiceTypeServiceImpl.java | 2 +- .../java/com/nu/config/RabbitMQConfig.java | 21 +- .../main/java/com/nu/dto/DirectiveMQDto.java | 4 +- .../src/main/java/com/nu/dto/StatusMQDto.java | 3 + .../java/com/nu/dto/SysDictItemMQDto.java | 70 ++++++ .../main/java/com/nu/dto/SysDictMQDto.java | 90 ++++++++ .../entity/DirectivePackage.java | 4 + .../mapper/DirectivePackageMapper.java | 2 + .../mapper/xml/DirectivePackageMapper.xml | 3 + .../impl/DirectivePackageServiceImpl.java | 10 + .../body/mapper/DirectiveBodyTagMapper.java | 6 + .../DirectiveBodyTagRelationMapper.java | 5 +- .../mapper/xml/DirectiveBodyTagMapper.xml | 15 ++ .../xml/DirectiveBodyTagRelationMapper.xml | 11 + .../service/IDirectiveBodyTagService.java | 6 +- .../impl/DirectiveBodyTagServiceImpl.java | 18 +- .../mapper/DirectiveEmotionTagMapper.java | 7 +- .../DirectiveEmotionTagRelationMapper.java | 6 +- .../mapper/xml/DirectiveEmotionTagMapper.xml | 16 +- .../xml/DirectiveEmotionTagRelationMapper.xml | 13 +- .../service/IDirectiveEmotionTagService.java | 8 +- .../impl/DirectiveEmotionTagServiceImpl.java | 18 +- .../mapper/ConfigServiceCategoryMapper.java | 6 + .../xml/ConfigServiceCategoryMapper.xml | 18 ++ .../IConfigServiceCategoryService.java | 11 +- .../ConfigServiceCategoryServiceImpl.java | 19 ++ .../mapper/ConfigServiceTypeMapper.java | 8 +- .../mapper/xml/ConfigServiceTypeMapper.xml | 19 ++ .../service/IConfigServiceTypeService.java | 15 +- .../impl/ConfigServiceTypeServiceImpl.java | 26 ++- .../listener/DirectiveMQListener.java | 204 ++++++++++++++---- nursing-unit-system/nu-system-biz/pom.xml | 5 + .../system/service/ISysDictService.java | 1 + .../DictMQExceptionHandler.java | 28 +++ .../mq/dict/listener/DictMQListener.java | 125 +++++++++++ .../src/main/resources/application-uat.yml | 6 + pom.xml | 4 +- 55 files changed, 848 insertions(+), 211 deletions(-) create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/SysDictItemMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/SysDictMQDto.java create mode 100644 nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/exceptionhandler/DictMQExceptionHandler.java create mode 100644 nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/listener/DictMQListener.java diff --git a/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/controller/NuBizNuCustomerServerController.java b/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/controller/NuBizNuCustomerServerController.java index 3003fe4..8e005ec 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/controller/NuBizNuCustomerServerController.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/controller/NuBizNuCustomerServerController.java @@ -1,47 +1,22 @@ package com.nu.modules.NuBizNuCustomerServer.controller; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.system.query.QueryRuleEnum; -import org.jeecg.common.util.oConvertUtils; import com.nu.modules.NuBizNuCustomerServer.entity.NuBizNuCustomerServer; import com.nu.modules.NuBizNuCustomerServer.service.INuBizNuCustomerServerService; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; - -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.jeecg.common.aspect.annotation.AutoLog; -import org.apache.shiro.authz.annotation.RequiresPermissions; + +import java.util.List; +import java.util.Map; /** * @Description: 护理单元客户配置服务指令 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-31 * @Version: V1.0 */ @@ -52,7 +27,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; public class NuBizNuCustomerServerController extends JeecgController { @Autowired private INuBizNuCustomerServerService nuBizNuCustomerServerService; - + /** * 分页列表查询 * @@ -66,7 +41,7 @@ public class NuBizNuCustomerServerController extends JeecgController> pageList = nuBizNuCustomerServerService.getNclist(nuBizNuCustomerServer); return Result.OK(pageList); } - + /** * 添加 * @@ -81,7 +56,7 @@ public class NuBizNuCustomerServerController extends JeecgController { @Autowired private INuConfigServiceCategoryService nuConfigServiceCategoryService; - + /** * 分页列表查询 * diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceCategory.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceCategory.java index 230a768..2dd5b1d 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceCategory.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceCategory.java @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; /** * @Description: 服务类别 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceDirective.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceDirective.java index 5a89eb1..5a4b54e 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceDirective.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceDirective.java @@ -20,7 +20,7 @@ import lombok.experimental.Accessors; /** * @Description: 服务指令 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ @@ -124,6 +124,10 @@ public class NuConfigServiceDirective implements Serializable { @ApiModelProperty(value = "视频文件") private java.lang.String mp4File; + //体型标签 @TableField(exist = false) - private String tagName; + private String bodyTagName; + //情绪标签 + @TableField(exist = false) + private String emotionTagName; } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceType.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceType.java index 023ae9e..49d6f49 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceType.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/entity/NuConfigServiceType.java @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; /** * @Description: 服务类型 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceCategoryMapper.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceCategoryMapper.java index 257c291..ef4b45e 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceCategoryMapper.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceCategoryMapper.java @@ -1,14 +1,11 @@ package com.nu.modules.nuApiServiceCategory.mapper; -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import com.nu.modules.nuApiServiceCategory.entity.NuConfigServiceCategory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.nuApiServiceCategory.entity.NuConfigServiceCategory; /** * @Description: 服务类别 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceDirectiveMapper.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceDirectiveMapper.java index 826d8cb..85bb603 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceDirectiveMapper.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceDirectiveMapper.java @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 服务指令 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceTypeMapper.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceTypeMapper.java index daa053b..7408069 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceTypeMapper.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/NuConfigServiceTypeMapper.java @@ -1,14 +1,11 @@ package com.nu.modules.nuApiServiceCategory.mapper; -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import com.nu.modules.nuApiServiceCategory.entity.NuConfigServiceType; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.nuApiServiceCategory.entity.NuConfigServiceType; /** * @Description: 服务类型 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/xml/NuConfigServiceDirectiveMapper.xml b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/xml/NuConfigServiceDirectiveMapper.xml index 7251ee3..e982fd7 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/xml/NuConfigServiceDirectiveMapper.xml +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/mapper/xml/NuConfigServiceDirectiveMapper.xml @@ -3,41 +3,44 @@ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceCategoryService.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceCategoryService.java index 6ad35c2..5bce0e9 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceCategoryService.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceCategoryService.java @@ -8,7 +8,7 @@ import java.util.Map; /** * @Description: 服务类别 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceDirectiveService.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceDirectiveService.java index 43e0e43..2546bb1 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceDirectiveService.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceDirectiveService.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 服务指令 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceTypeService.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceTypeService.java index 260f763..5c454fa 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceTypeService.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/INuConfigServiceTypeService.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 服务类型 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ diff --git a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/impl/NuConfigServiceCategoryServiceImpl.java b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/impl/NuConfigServiceCategoryServiceImpl.java index d06dc05..61cfa87 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/impl/NuConfigServiceCategoryServiceImpl.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/nuApiServiceCategory/service/impl/NuConfigServiceCategoryServiceImpl.java @@ -20,7 +20,7 @@ import java.util.Map; /** * @Description: 服务类别 - * @Author: jeecg-boot + * @Author: yangjun * @Date: 2025-03-28 * @Version: V1.0 */ @@ -62,7 +62,9 @@ public class NuConfigServiceCategoryServiceImpl extends ServiceImpl idList; + private String idStr;//前台传来的所有需要新增的服务指令 + private List idList;//!!实际需要新增的服务指令id //同步主表id private String asyncId; diff --git a/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java index ec4955b..ecc5a82 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java @@ -13,4 +13,7 @@ public class StatusMQDto { private String asyncId; //同步表子表code private String code; + + private String dictId; + private String orgCode; } diff --git a/nursing-unit-common/src/main/java/com/nu/dto/SysDictItemMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/SysDictItemMQDto.java new file mode 100644 index 0000000..821ce64 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/SysDictItemMQDto.java @@ -0,0 +1,70 @@ +package com.nu.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @Author zmy + * @since 2025-5-6 + */ +@Data +public class SysDictItemMQDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + /** + * 字典id + */ + private String dictId; + + /** + * 字典项文本 + */ + private String itemText; + + /** + * 字典项值 + */ + private String itemValue; + + /** + * 描述 + */ + private String description; + + /** + * 排序 + */ + private Integer sortOrder; + + + /** + * 状态(1启用 0不启用) + */ + private Integer status; + + private String createBy; + + private Date createTime; + + private String updateBy; + + private Date updateTime; + + /** + * 字典项颜色 + */ + private String itemColor; + +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/SysDictMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/SysDictMQDto.java new file mode 100644 index 0000000..a440b64 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/SysDictMQDto.java @@ -0,0 +1,90 @@ +package com.nu.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + *

+ * 字典表 + *

+ * + * @Author zmy + * @since 2025-5-6 + */ +@Data +public class SysDictMQDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + /** + * [预留字段,暂时无用] + * 字典类型,0 string,1 number类型,2 boolean + * 前端js对stirng类型和number类型 boolean 类型敏感,需要区分。在select 标签匹配的时候会用到 + * 默认为string类型 + */ + private Integer type; + + /** + * 字典名称 + */ + private String dictName; + + /** + * 字典编码 + */ + private String dictCode; + + /** + * 描述 + */ + private String description; + + /** + * 标识 + * sys:系统字典,非客户使用字典 + * nu:业务字典,客户使用字典 + */ + private String tag; + + /** + * 删除状态 + */ + private Integer delFlag; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /**租户ID*/ + private Integer tenantId; + + /** 关联的低代码应用ID */ + private String lowAppId; + + private List sysDictItemList; + +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/entity/DirectivePackage.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/entity/DirectivePackage.java index 0f78b20..82b4de4 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/entity/DirectivePackage.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/entity/DirectivePackage.java @@ -37,6 +37,9 @@ public class DirectivePackage implements Serializable { @Excel(name = "服务指令包名称", width = 15) @ApiModelProperty(value = "服务指令包名称") private java.lang.String packageName; + @Excel(name = "服务总时长", width = 15) + @ApiModelProperty(value = "服务总时长") + private Long totalDuration; /**备注*/ @Excel(name = "备注", width = 15) @ApiModelProperty(value = "备注") @@ -75,4 +78,5 @@ public class DirectivePackage implements Serializable { @TableField(exist = false) private List directives; + } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/DirectivePackageMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/DirectivePackageMapper.java index 7f0b6bc..07cde8f 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/DirectivePackageMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/DirectivePackageMapper.java @@ -18,6 +18,8 @@ public interface DirectivePackageMapper extends BaseMapper { int saveDirectives(@Param("package") DirectivePackage directivePackage); + int updateTotalDurationInt(@Param("id") String id,@Param("duration") Long duration); + List queryList( @Param("directivePackage") DirectivePackage directivePackage,@Param("ids") List ids); Long queryTotal(@Param("directivePackage") DirectivePackage directivePackage); diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/xml/DirectivePackageMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/xml/DirectivePackageMapper.xml index 954054c..99bbd8a 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/xml/DirectivePackageMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivepackage/mapper/xml/DirectivePackageMapper.xml @@ -70,6 +70,9 @@ + + update nu_directive_package set total_duration = #{duration} where id = #{id} + + select distinct b.* from nu_config_body_tag b left join nu_directive_body_tag d on b.id = d.tag_id + + d.directive_id in + + #{id} + + + AND b.id not in + + #{excludeId} + + + +
diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagRelationMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagRelationMapper.xml index b1fa9fb..86b33c1 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagRelationMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagRelationMapper.xml @@ -1,9 +1,14 @@ + + delete from nu_config_body_tag + + delete from nu_directive_body_tag + diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/IDirectiveBodyTagService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/IDirectiveBodyTagService.java index 07730d0..5173281 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/IDirectiveBodyTagService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/IDirectiveBodyTagService.java @@ -23,7 +23,11 @@ public interface IDirectiveBodyTagService extends IService { public void removeAllRelation(); - public List selectAllRelation(String dataSourceCode, List ids); + public List selectAllRelation(String dataSourceCode, List ids,List excludeIds); void insertAllRelation(List relations); + + List selectAll(String dataSourceCode, List ids,List excludeIds); + + void insertAll(List bodyAll); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/impl/DirectiveBodyTagServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/impl/DirectiveBodyTagServiceImpl.java index ba090f0..1f24f48 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/impl/DirectiveBodyTagServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/impl/DirectiveBodyTagServiceImpl.java @@ -45,13 +45,14 @@ public class DirectiveBodyTagServiceImpl extends ServiceImpl selectAllRelation(String dataSourceCode, List ids) { - return tagRelationMapper.selectAllRelation(ids); + public List selectAllRelation(String dataSourceCode, List ids,List excludeIds) { + return tagRelationMapper.selectAllRelation(ids,excludeIds); } @Override @@ -60,4 +61,17 @@ public class DirectiveBodyTagServiceImpl extends ServiceImpl selectAll(String dataSourceCode, List ids,List excludeIds) { + return baseMapper.selectAll(ids,excludeIds); + } + + @Override + public void insertAll(List bodyAll) { + bodyAll.forEach(b -> { + baseMapper.insert(b); + }); + } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagMapper.java index f2ed172..17cc591 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagMapper.java @@ -1,7 +1,10 @@ package com.nu.modules.directivetag.emotion.mapper; -import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 情绪标签 @@ -11,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface DirectiveEmotionTagMapper extends BaseMapper { + List selectAll(@Param("ids") List ids, @Param("excludeIds") List excludeIds); + } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagRelationMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagRelationMapper.java index cbf2277..10b078d 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagRelationMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagRelationMapper.java @@ -2,6 +2,7 @@ package com.nu.modules.directivetag.emotion.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTagRelation; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,7 +13,10 @@ import java.util.List; * @Version: V1.0 */ public interface DirectiveEmotionTagRelationMapper extends BaseMapper { + + void removeAll(); + void removeAllRelation(); - List selectAllRelation(List ids); + List selectAllRelation(@Param("ids") List ids, @Param("excludeIds") List excludeIds); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagMapper.xml index 97fa69b..83fb500 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagMapper.xml @@ -1,5 +1,19 @@ - + diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagRelationMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagRelationMapper.xml index 8d4eb48..03b7440 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagRelationMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagRelationMapper.xml @@ -1,8 +1,13 @@ + + delete + from nu_config_emotion_tag + - delete from nu_directive_emotion_tag + delete + from nu_directive_emotion_tag diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/IDirectiveEmotionTagService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/IDirectiveEmotionTagService.java index 9e5e1da..1f27378 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/IDirectiveEmotionTagService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/IDirectiveEmotionTagService.java @@ -1,7 +1,7 @@ package com.nu.modules.directivetag.emotion.service; -import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTagRelation; import java.util.List; @@ -23,7 +23,11 @@ public interface IDirectiveEmotionTagService extends IService selectAllRelation(String dataSourceCode, List ids); + public List selectAllRelation(String dataSourceCode, List ids,List excludeIds); void insertAllRelation(List relations); + + List selectAll(String dataSourceCode, List ids,List excludeIds); + + void insertAll(List emoRelations); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/impl/DirectiveEmotionTagServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/impl/DirectiveEmotionTagServiceImpl.java index a28fd90..0408577 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/impl/DirectiveEmotionTagServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/impl/DirectiveEmotionTagServiceImpl.java @@ -45,13 +45,14 @@ public class DirectiveEmotionTagServiceImpl extends ServiceImpl selectAllRelation(String dataSourceCode, List ids) { - return tagRelationMapper.selectAllRelation(ids); + public List selectAllRelation(String dataSourceCode, List ids, List excludeIds) { + return tagRelationMapper.selectAllRelation(ids, excludeIds); } @Override @@ -60,4 +61,17 @@ public class DirectiveEmotionTagServiceImpl extends ServiceImpl selectAll(String dataSourceCode, List ids, List excludeIds) { + return baseMapper.selectAll(ids, excludeIds); + } + + @Override + public void insertAll(List emoRelations) { + emoRelations.forEach(e -> { + baseMapper.insert(e); + }); + } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/ConfigServiceCategoryMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/ConfigServiceCategoryMapper.java index a87a5d5..e3eed65 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/ConfigServiceCategoryMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/ConfigServiceCategoryMapper.java @@ -2,6 +2,9 @@ package com.nu.modules.servicecategory.mapper; import com.nu.modules.servicecategory.entity.ConfigServiceCategory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 服务类别 @@ -11,4 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ConfigServiceCategoryMapper extends BaseMapper { + void removeAll(); + + List selectAll(@Param("ids") List ids, @Param("excludeIds") List excludeIds); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/xml/ConfigServiceCategoryMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/xml/ConfigServiceCategoryMapper.xml index 7b4963d..12047a7 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/xml/ConfigServiceCategoryMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/xml/ConfigServiceCategoryMapper.xml @@ -2,4 +2,22 @@ + + delete from nu_config_service_category + + diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/IConfigServiceCategoryService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/IConfigServiceCategoryService.java index 53af546..dca38dd 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/IConfigServiceCategoryService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/IConfigServiceCategoryService.java @@ -3,18 +3,27 @@ package com.nu.modules.servicecategory.service; import com.nu.modules.servicecategory.entity.ConfigServiceCategory; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @Description: 服务类别 * @Author: 张明远 - * @Date: 2025-03-13 + * @Date: 2025-03-13 * @Version: V1.0 */ public interface IConfigServiceCategoryService extends IService { /** * 查询数据是否已被使用 + * * @param ids * @return */ boolean isUsed(String ids); + + void removeAll(); + + List selectAll(String dataSourceCode, List ids, List excludeSubIds); + + void insertAll(List categoryList); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/impl/ConfigServiceCategoryServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/impl/ConfigServiceCategoryServiceImpl.java index 99538bd..0370866 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/impl/ConfigServiceCategoryServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/impl/ConfigServiceCategoryServiceImpl.java @@ -1,5 +1,6 @@ package com.nu.modules.servicecategory.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.nu.modules.servicetype.entity.ConfigServiceType; import com.nu.modules.servicetype.service.IConfigServiceTypeService; @@ -57,4 +58,22 @@ public class ConfigServiceCategoryServiceImpl extends ServiceImpl selectAll(String dataSourceCode, List ids, List excludeSubIds) { + return baseMapper.selectAll(ids, excludeSubIds); + } + + @Override + public void insertAll(List categoryList) { + categoryList.forEach(c -> { + baseMapper.insert(c); + }); + } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/ConfigServiceTypeMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/ConfigServiceTypeMapper.java index c62a8ee..d24ee6b 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/ConfigServiceTypeMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/ConfigServiceTypeMapper.java @@ -1,7 +1,10 @@ package com.nu.modules.servicetype.mapper; -import com.nu.modules.servicetype.entity.ConfigServiceType; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.servicetype.entity.ConfigServiceType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 服务类型 @@ -11,4 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ConfigServiceTypeMapper extends BaseMapper { + void removeAll(); + + List selectAll(@Param("ids") List ids, @Param("excludeIds") List excludeIds); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/xml/ConfigServiceTypeMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/xml/ConfigServiceTypeMapper.xml index f2dcf95..60b6565 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/xml/ConfigServiceTypeMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/xml/ConfigServiceTypeMapper.xml @@ -2,4 +2,23 @@ + + delete from nu_config_service_type + + + diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/IConfigServiceTypeService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/IConfigServiceTypeService.java index 43c9f61..4cb8d66 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/IConfigServiceTypeService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/IConfigServiceTypeService.java @@ -1,20 +1,29 @@ package com.nu.modules.servicetype.service; -import com.nu.modules.servicetype.entity.ConfigServiceType; import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.servicetype.entity.ConfigServiceType; + +import java.util.List; /** * @Description: 服务类型 * @Author: 张明远 - * @Date: 2025-03-13 + * @Date: 2025-03-13 * @Version: V1.0 */ public interface IConfigServiceTypeService extends IService { /** * 查询数据是否已被使用 - * @param ids + * + * @param id * @return */ boolean isUsed(String id); + + void removeAll(); + + List selectAll(String dataSourceCode, List ids, List excludeSubIds); + + void insertAll(List categoryList); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/impl/ConfigServiceTypeServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/impl/ConfigServiceTypeServiceImpl.java index 8190345..e567dd0 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/impl/ConfigServiceTypeServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/impl/ConfigServiceTypeServiceImpl.java @@ -1,17 +1,17 @@ package com.nu.modules.servicetype.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; import com.nu.modules.servicetype.entity.ConfigServiceType; import com.nu.modules.servicetype.mapper.ConfigServiceTypeMapper; import com.nu.modules.servicetype.service.IConfigServiceTypeService; -import com.nu.modules.servicedirective.entity.ConfigServiceDirective; -import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - import java.util.Arrays; import java.util.List; @@ -44,4 +44,22 @@ public class ConfigServiceTypeServiceImpl extends ServiceImpl selectAll(String dataSourceCode, List ids, List excludeSubIds) { + return baseMapper.selectAll(ids, excludeSubIds); + } + + @Override + public void insertAll(List categoryList) { + categoryList.forEach(c -> { + baseMapper.insert(c); + }); + } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/mq/directive/listener/DirectiveMQListener.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/mq/directive/listener/DirectiveMQListener.java index 5730a36..2671b75 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/mq/directive/listener/DirectiveMQListener.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/mq/directive/listener/DirectiveMQListener.java @@ -5,12 +5,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nu.dto.DirectiveMQDto; import com.nu.dto.StatusMQDto; import com.nu.enums.MQStatus; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation; +import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTagRelation; import com.nu.modules.directivetag.emotion.service.IDirectiveEmotionTagService; +import com.nu.modules.servicecategory.entity.ConfigServiceCategory; +import com.nu.modules.servicecategory.service.IConfigServiceCategoryService; import com.nu.modules.servicedirective.entity.ConfigServiceDirective; import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; +import com.nu.modules.servicetype.entity.ConfigServiceType; +import com.nu.modules.servicetype.service.IConfigServiceTypeService; import com.nu.utils.RabbitMQUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -25,25 +35,33 @@ public class DirectiveMQListener { @Autowired private IConfigServiceDirectiveService directiveService; @Autowired - private IDirectiveEmotionTagService tagService; + private IDirectiveBodyTagService bodyTagService; + @Autowired + private IDirectiveEmotionTagService emotionTagService; + @Autowired + private IConfigServiceCategoryService serviceCategoryService; + @Autowired + private IConfigServiceTypeService serviceTypeService; @Autowired private RabbitMQUtil rabbitMQUtil; /** * if 未到运营开始时间时 全量变更 * else 增量 - * 备注:指令相应的字典表有相应的实时更新处理 这里无需处理字典表 但是需要处理中间关系表 + * *

* 具体逻辑说明 - * 1、未到运营开始时间时:dto.isIzInc()为true时 - * 1)先将指令主表、指令标签关系表数据全部删除 - * 2)将指令标签关系表数据增加进去 - * 3)将指令主表数据增加进去 + * ->全量同步<- + * 1、未到运营开始时间时:dto.isIzInc()为false时 + * 1)先将所有相关指令字典表主表、关系表数据全部删除后增加 + * 2)将指令主表数据增加进去 *

- * 2、已到运营开始时间:dto.isIzInc()为false时 - * 1)只传递过来需要增加的指令 - * 2)先将指令标签关系表数据增加进去 - * 3)再将指令主表数据增加 + * ->增量同步<- + * !!增量时:前台操作同步功能 只会在原基础上新增 不存在移除的情况 + * 2、已到运营开始时间:dto.isIzInc()为true时 + * 1)传过来的id是所有服务指令的id 需要处理只保留新增部分对应的id + * 2)将新增的指令对应的字典表、关系表数据增加进去 + * 3)将新增的指令数据增加进去 * * @param dto */ @@ -52,41 +70,11 @@ public class DirectiveMQListener { public void handleMessage(DirectiveMQDto dto) { try { if (!dto.isIzInc()) { - //全量移除所有服务指令主表、指令标签中间表数据 - directiveService.removeAll(); - tagService.removeAllRelation(); - dto.setIdList(Arrays.asList(dto.getIdStr().split(","))); + //全量 + handleQuantity(dto); } else { - //增量:传过来的是已勾选的全部数据,需将重复部分去除 - //先查出所有指令id 然后进行去重 - QueryWrapper dtw = new QueryWrapper<>(); - dtw.select("id"); - List tempList = directiveService.list(dtw); - Set existingIds = tempList.stream() - .map(ConfigServiceDirective::getId) - .map(String::valueOf) - .collect(Collectors.toSet()); - - String idStr = dto.getIdStr(); - List inputIds = Arrays.asList(idStr.split(",")); - - List uniqueIds = inputIds.stream() - .filter(id -> !existingIds.contains(id)) - .collect(Collectors.toList()); - - dto.setIdList(uniqueIds); - } - //查询指令标签关系 并将指令标签关系表数据增加进自己的库表中 - if (dto.getIdList() != null && !dto.getIdList().isEmpty()) { - List relations = tagService.selectAllRelation("nuro", dto.getIdList()); - if (relations != null && !relations.isEmpty()) { - tagService.insertAllRelation(relations); - } - //查询服务指令,并将服务指令新增进自己的数据库表中 - List directives = directiveService.selectAllByIds("nuro", dto.getIdList()); - if (directives != null && !directives.isEmpty()) { - directiveService.insertAllDirectives(directives); - } + //增量 + handleIncremental(dto); } } catch (Exception e) { StatusMQDto statusMQDto = new StatusMQDto(); @@ -94,6 +82,7 @@ public class DirectiveMQListener { statusMQDto.setMessage(e.getMessage()); statusMQDto.setAsyncId(dto.getAsyncId()); statusMQDto.setCode("data"); + //TODO 返回的key应该是动态获取该机构编码 然后使用topic rabbitMQUtil.sendToExchange("hldy.fwzl", "nu002.fwzl.status", statusMQDto); throw new RuntimeException(e); } @@ -104,4 +93,131 @@ public class DirectiveMQListener { statusMQDto.setCode("data"); rabbitMQUtil.sendToExchange("hldy.fwzl", "nu002.fwzl.status", statusMQDto); } + + + /** + * 处理全量 + * + * @param dto + */ + private void handleQuantity(DirectiveMQDto dto) { + //全量:移除所有服务指令主表、服务指令各字典主表、中间关系表数据 + directiveService.removeAll(); + //体型标签 + bodyTagService.removeAllRelation(); + //情绪标签 + emotionTagService.removeAllRelation(); + //服务类别 + serviceCategoryService.removeAll(); + //服务类型 + serviceTypeService.removeAll(); + + dto.setIdList(Arrays.asList(dto.getIdStr().split(","))); + + handleData(dto); + } + + /** + * 处理增量 + * + * @param dto + * @throws Exception + */ + private void handleIncremental(DirectiveMQDto dto) { + //增量:传过来的是已勾选的全部数据,需将重复部分去除 + //先查出所有指令id 然后进行去重 + QueryWrapper dtw = new QueryWrapper<>(); + dtw.select("id"); + List tempList = directiveService.list(dtw); + Set existingIds = tempList.stream() + .map(ConfigServiceDirective::getId) + .map(String::valueOf) + .collect(Collectors.toSet()); + + String idStr = dto.getIdStr(); + List inputIds = Arrays.asList(idStr.split(",")); + + List uniqueIds = inputIds.stream() + .filter(id -> !existingIds.contains(id)) + .collect(Collectors.toList()); + + dto.setIdList(uniqueIds); + + handleData(dto); + } + + /** + * 处理数据 + * + * @param dto + */ + private void handleData(DirectiveMQDto dto) { + if (dto.getIdList() != null && !dto.getIdList().isEmpty()) { + //体型标签 + { + //需要排除的体型标签id + List excludeSubIds = Lists.newArrayList(); + if (dto.isIzInc()) { + List list = bodyTagService.list(); + excludeSubIds = list.stream().map(DirectiveBodyTag::getId).collect(Collectors.toList()); + } + List bodyAll = bodyTagService.selectAll("nuro", dto.getIdList(), excludeSubIds); + if (bodyAll != null && !bodyAll.isEmpty()) { + bodyTagService.insertAll(bodyAll); + } + List bodyRelations = bodyTagService.selectAllRelation("nuro", dto.getIdList(), null); + if (bodyRelations != null && !bodyRelations.isEmpty()) { + bodyTagService.insertAllRelation(bodyRelations); + } + } + //情绪标签 + { + //需要排除的情绪标签id + List excludeSubIds = Lists.newArrayList(); + if (dto.isIzInc()) { + List list = emotionTagService.list(); + excludeSubIds = list.stream().map(DirectiveEmotionTag::getId).collect(Collectors.toList()); + } + List emoAll = emotionTagService.selectAll("nuro", dto.getIdList(), excludeSubIds); + if (emoAll != null && !emoAll.isEmpty()) { + emotionTagService.insertAll(emoAll); + } + List emoRelations = emotionTagService.selectAllRelation("nuro", dto.getIdList(), null); + if (emoRelations != null && !emoRelations.isEmpty()) { + emotionTagService.insertAllRelation(emoRelations); + } + } + //服务类别 + { + //需要排除的服务类别id + List excludeSubIds = Lists.newArrayList(); + if (dto.isIzInc()) { + List list = serviceCategoryService.list(); + excludeSubIds = list.stream().map(ConfigServiceCategory::getId).collect(Collectors.toList()); + } + List categoryList = serviceCategoryService.selectAll("nuro", dto.getIdList(), excludeSubIds); + if (categoryList != null && !categoryList.isEmpty()) { + serviceCategoryService.insertAll(categoryList); + } + } + //服务类型 + { + //需要排除的服务类型id + List excludeSubIds = Lists.newArrayList(); + if (dto.isIzInc()) { + List list = serviceTypeService.list(); + excludeSubIds = list.stream().map(ConfigServiceType::getId).collect(Collectors.toList()); + } + List typeList = serviceTypeService.selectAll("nuro", dto.getIdList(), excludeSubIds); + if (typeList != null && !typeList.isEmpty()) { + serviceTypeService.insertAll(typeList); + } + } + //查询服务指令,并将服务指令新增进自己的数据库表中 + List directives = directiveService.selectAllByIds("nuro", dto.getIdList()); + if (directives != null && !directives.isEmpty()) { + directiveService.insertAllDirectives(directives); + } + } + } } diff --git a/nursing-unit-system/nu-system-biz/pom.xml b/nursing-unit-system/nu-system-biz/pom.xml index adbae49..41d7364 100644 --- a/nursing-unit-system/nu-system-biz/pom.xml +++ b/nursing-unit-system/nu-system-biz/pom.xml @@ -25,6 +25,11 @@ hibernate-re + + com.nursingunit.boot + nursing-unit-common + ${nursingunit.version} + org.jeecgframework diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java index a1ace56..b14cc66 100644 --- a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java +++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java @@ -300,4 +300,5 @@ public interface ISysDictService extends IService { * @param ids */ boolean removeLogicDeleted(List ids); + } diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/exceptionhandler/DictMQExceptionHandler.java b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/exceptionhandler/DictMQExceptionHandler.java new file mode 100644 index 0000000..ed01564 --- /dev/null +++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/exceptionhandler/DictMQExceptionHandler.java @@ -0,0 +1,28 @@ +package com.nu.mq.directive.exceptionhandler; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.AmqpRejectAndDontRequeueException; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.listener.api.RabbitListenerErrorHandler; +import org.springframework.amqp.rabbit.support.ListenerExecutionFailedException; +import org.springframework.stereotype.Component; + +@Slf4j +@Component("dictMQErrorHandler") +public class DictMQExceptionHandler implements RabbitListenerErrorHandler { + + @Override + public Object handleError(Message message, org.springframework.messaging.Message message1, ListenerExecutionFailedException e) { + log.error("MQ消息处理失败 | 消息体: {} | 异常原因: {}", new String(message.getBody()), e.getCause().getMessage()); + + // 根据异常类型选择处理策略 +// if (isRetryable(e)) { +// // 可重试异常:抛出异常触发重试 +// throw e; +// } else { + // 不可恢复异常:拒绝消息且不重新入队 + throw new AmqpRejectAndDontRequeueException("消息处理失败且禁止重试", e); +// } + } + +} diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/listener/DictMQListener.java b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/listener/DictMQListener.java new file mode 100644 index 0000000..7912a69 --- /dev/null +++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/mq/dict/listener/DictMQListener.java @@ -0,0 +1,125 @@ +package org.jeecg.mq.dict.listener; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.dto.StatusMQDto; +import com.nu.dto.SysDictItemMQDto; +import com.nu.dto.SysDictMQDto; +import com.nu.enums.MQStatus; +import com.nu.utils.RabbitMQUtil; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.system.entity.SysDepart; +import org.jeecg.modules.system.entity.SysDict; +import org.jeecg.modules.system.entity.SysDictItem; +import org.jeecg.modules.system.service.ISysDepartService; +import org.jeecg.modules.system.service.ISysDictItemService; +import org.jeecg.modules.system.service.ISysDictService; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +@Slf4j +@Component +public class DictMQListener { + @Autowired + private RabbitMQUtil rabbitMQUtil; + @Autowired + private ISysDictService dictService; + @Autowired + private ISysDictItemService dictItemService; + @Autowired + private ISysDepartService departService; + + /** + * 字典同步 + * 如果 没有字典则创建 然后把每一项字典项新增进去 + * 有字典项 则检查每一项字典项是否存在,不存在则插入 + * + * @param dto + */ +// @RabbitListener(queues = "sysdict.async", errorHandler = "dictMQErrorHandler") + @RabbitListener( + bindings = @QueueBinding( + value = @Queue( + name = "#{T(java.util.UUID).randomUUID().toString()}", + autoDelete = "true" + ), + exchange = @Exchange( + name = "hldy.sysdict.fanout", + type = ExchangeTypes.FANOUT + ) + ), errorHandler = "dictMQErrorHandler" + ) + public void handleMessage(SysDictMQDto dto) { + String orgCode = "业务系统未查询到"; + String orgName = "业务系统未查询到"; + QueryWrapper sysDepartQueryWrapper = new QueryWrapper<>(); + sysDepartQueryWrapper.eq("org_category", "1"); + List list = departService.list(sysDepartQueryWrapper); + if (list != null && list.size() > 0) { + orgCode = list.get(0).getOrgCode(); + orgName = list.get(0).getDepartName(); + } + + try { + SysDict dict = dictService.getById(dto.getId()); + //如果是标识删除 查到的也是null 这里要处理的是只要在回收站就删除 重建 + if (dict == null || (dict != null && dict.getDelFlag() == 1)) { + dictService.deleteOneDictPhysically(dto.getId()); + dict = null; + } + if (dict == null) { + SysDict sysDict = new SysDict(); + BeanUtils.copyProperties(dto, sysDict); + dictService.save(sysDict); + if (dto.getSysDictItemList() != null) { + dto.getSysDictItemList().forEach(item -> { + SysDictItem sysDictItem = new SysDictItem(); + BeanUtils.copyProperties(item, sysDictItem); + dictItemService.save(sysDictItem); + }); + } + } else { + if (dto.getSysDictItemList() != null) { + List sysDictItems = dictItemService.selectItemsByMainId(dto.getId()); + Set existingIds = sysDictItems.stream() + .map(SysDictItem::getId) + .collect(Collectors.toSet()); + + // 找到需要新增的item + List addItems = dto.getSysDictItemList().stream() + .filter(item -> !existingIds.contains(item.getId())) + .collect(Collectors.toList()); + List items = BeanUtil.copyToList(addItems, SysDictItem.class); + + dictItemService.saveBatch(items); + } + } + } catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setStatus(MQStatus.PROCESS_FAILED.getCode()); + statusMQDto.setMessage(orgName + " 同步失败:" + e.getMessage()); + statusMQDto.setDictId(dto.getId()); + statusMQDto.setOrgCode(orgCode); + rabbitMQUtil.sendToExchange("hldy.sysdict", "sysdict.async.result", statusMQDto); + throw new RuntimeException(e); + } + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setStatus(MQStatus.SUCCESS.getCode()); + statusMQDto.setMessage(orgName + " 数据同步成功!"); + statusMQDto.setDictId(dto.getId()); + statusMQDto.setOrgCode(orgCode); + rabbitMQUtil.sendToExchange("hldy.sysdict", "sysdict.async.result", statusMQDto); + } + + +} diff --git a/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml b/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml index 0b4ceea..f0a72ad 100644 --- a/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml +++ b/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml @@ -182,6 +182,12 @@ spring: host: redis port: 6379 password: uUgrUus4JAYuwxzo + rabbitmq: + host: rabbitm + prot: 5672 + username: hldy + password: SJ+lhRn6nZ43KeXE + virtual-host: /hldy #mybatis plus 设置 mybatis-plus: mapper-locations: classpath*:org/jeecg/**/xml/*Mapper.xml,classpath*:com/nu/**/xml/*Mapper.xml diff --git a/pom.xml b/pom.xml index bfafb89..071a19d 100644 --- a/pom.xml +++ b/pom.xml @@ -491,7 +491,7 @@ dev - true + false @@ -543,7 +543,7 @@ uat - false + true