From dbe6dc11240da593ba43f0aa8a85fa05bcc832df Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Wed, 16 Jul 2025 08:31:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8C=87=E4=BB=A4=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nu/dto/DirectiveAsyncMQDto.java | 137 +++++++++++++ .../body/entity/DirectiveBodyTag.java | 5 + .../DirectiveBodyTagRelationMapper.java | 3 +- .../xml/DirectiveBodyTagRelationMapper.xml | 6 +- .../service/IDirectiveBodyTagService.java | 2 +- .../impl/DirectiveBodyTagServiceImpl.java | 5 +- .../emotion/entity/DirectiveEmotionTag.java | 5 + .../DirectiveEmotionTagRelationMapper.java | 3 +- .../xml/DirectiveEmotionTagRelationMapper.xml | 6 +- .../service/IDirectiveEmotionTagService.java | 2 +- .../impl/DirectiveEmotionTagServiceImpl.java | 5 +- .../instructiontag/entity/InstructionTag.java | 5 + .../entity/ConfigServiceCategory.java | 5 + .../ConfigServiceDirectiveController.java | 43 +++- .../entity/ConfigServiceDirective.java | 6 + .../xml/ConfigServiceDirectiveMapper.xml | 2 + .../IConfigServiceDirectiveService.java | 2 + .../ConfigServiceDirectiveServiceImpl.java | 80 +++++++- .../servicetype/entity/ConfigServiceType.java | 5 + .../listener/DirectiveMQListener.java | 193 +++++++++++++++++- 20 files changed, 481 insertions(+), 39 deletions(-) create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/DirectiveAsyncMQDto.java diff --git a/nursing-unit-common/src/main/java/com/nu/dto/DirectiveAsyncMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/DirectiveAsyncMQDto.java new file mode 100644 index 0000000..05fecbd --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/DirectiveAsyncMQDto.java @@ -0,0 +1,137 @@ +package com.nu.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description: 服务指令审核 + * @Author: 张明远 + * @Date: 2025-07-14 + * @Version: V1.0 + */ +@Data +public class DirectiveAsyncMQDto implements Serializable { + /** + * id + */ + private String id; + /** + * 服务类别id + */ + private String categoryId; + /** + * 服务类型id + */ + private String typeId; + /** + * 分类标签 + */ + private String instructionTagId; + /** + * 服务指令名称 + */ + private String directiveName; + /** + * 收费价格 + */ + private java.math.BigDecimal tollPrice; + /** + * 提成价格 + */ + private java.math.BigDecimal comPrice; + /** + * 是否参与医保报销 0不报销 1报销 + */ + private String izReimbursement; + /** + * 是否参与机构优惠 0不参与 1参与 + */ + private String izPreferential; + /** + * 收费频次 1按次收费 2按天收费 + */ + private String chargingFrequency; + /** + * 周期类型 1日常护理 2周期护理 3即时护理 + */ + private String cycleType; + /** + * 排序 + */ + private Integer sort; + /** + * 服务描述 + */ + private String serviceContent; + /** + * 服务时长(分钟) + */ + private String serviceDuration; + /** + * 指令状态 + */ + private String status; + /** + * 是否启用 0启用 1未启用 + */ + private String izEnabled; + /** + * 是否删除 + */ + private String delFlag; + /** + * 创建人 + */ + private String createBy; + /** + * 创建日期 + */ + private java.util.Date createTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新日期 + */ + private java.util.Date updateTime; + /** + * 所属部门 + */ + private String sysOrgCode; + /** + * 指令音频文件 + */ + private String mp3File; + /** + * 指令视频文件 + */ + private String mp4File; + /** + * 服务指令图片 + */ + private String previewFile; + /** + * 即时指令图标 + */ + private String immediateFile; + + + //分类标签中文名称 + private String instructionName; + //服务类别中文名称 + private String categoryName; + //服务类型中文名称 + private String typeName; + //周期类型中文名称 + private String cycleTypeName; + //体型标签id,id,id + private String bodyTags; + //情绪标签id,id,id + private String emotionTags; + //体型标签json字符串(有id、label) + private String bodyTagsObj; + //情绪标签json字符串(有id、label) + private String emotionTagsObj; +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTag.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTag.java index 071a746..e58f00a 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTag.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTag.java @@ -42,6 +42,11 @@ public class DirectiveBodyTag implements Serializable { @Excel(name = "排序", width = 15) @ApiModelProperty(value = "排序") private Integer sort; + /**状态 0已授权 1未授权*/ + @Excel(name = "状态 0已授权 1未授权", width = 15) + @ApiModelProperty(value = "状态 0已授权 1未授权") + @Dict(dicCode = "status") + private java.lang.String status; /**是否启用 0启用 1未启用*/ @Excel(name = "是否启用", width = 15, dicCode = "iz_enabled") @Dict(dicCode = "iz_enabled") diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java index f359441..0abb021 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java @@ -13,9 +13,8 @@ import java.util.List; * @Version: V1.0 */ public interface DirectiveBodyTagRelationMapper extends BaseMapper { - void removeAll(); - void removeAllRelation(); + void removeAllRelation(@Param("directiveId") String directiveId); 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/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 86b33c1..eded090 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,14 +1,12 @@ - - delete from nu_config_body_tag - - delete from nu_directive_body_tag + delete from nu_directive_body_tag where directive_id = #{directiveId} + select * 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 1f27378..e36a643 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 @@ -21,7 +21,7 @@ public interface IDirectiveEmotionTagService extends IService selectAllRelation(String dataSourceCode, List ids,List excludeIds); 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 0408577..1e84298 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 @@ -44,9 +44,8 @@ public class DirectiveEmotionTagServiceImpl extends ServiceImpl { @Autowired private IConfigServiceDirectiveService configServiceDirectiveService; + @Autowired + private RabbitMQUtil rabbitMQUtil; /** * 分页列表查询 @@ -92,6 +94,12 @@ public class ConfigServiceDirectiveController extends JeecgController page = new Page(pageNo, pageSize); IPage list = configServiceDirectiveService.page(page, queryWrapper); List pageList = service.pageList(configServiceDirective, list); @@ -111,7 +119,6 @@ public class ConfigServiceDirectiveController extends JeecgController add(@RequestBody ConfigServiceDirective configServiceDirective) { //处理媒体资源(放在保存方法之前) configServiceDirectiveService.handleMediaFile(configServiceDirective); - log.info("服务指令保存时,pre:{},immedia:{},mp3:{},mp4:{}",configServiceDirective.getPreviewFile(),configServiceDirective.getImmediateFile(),configServiceDirective.getMp3File(),configServiceDirective.getMp4File()); configServiceDirectiveService.save(configServiceDirective); if (StringUtils.isNotBlank(configServiceDirective.getBodyTags())) { configServiceDirectiveService.saveBodyTags(configServiceDirective); @@ -139,7 +146,6 @@ public class ConfigServiceDirectiveController extends JeecgController edit(@RequestBody ConfigServiceDirective configServiceDirective) { //处理媒体资源(放在保存方法之前) configServiceDirectiveService.handleMediaFile(configServiceDirective); - log.info("服务指令保存时,pre:{},immedia:{},mp3:{},mp4:{}",configServiceDirective.getPreviewFile(),configServiceDirective.getImmediateFile(),configServiceDirective.getMp3File(),configServiceDirective.getMp4File()); configServiceDirectiveService.updateById(configServiceDirective); if (StringUtils.isNotBlank(configServiceDirective.getBodyTags())) { configServiceDirectiveService.saveBodyTags(configServiceDirective); @@ -156,6 +162,31 @@ public class ConfigServiceDirectiveController extends JeecgController audit(@RequestBody ConfigServiceDirective dto) { + ConfigServiceDirective configServiceDirective = new ConfigServiceDirective(); + configServiceDirective.setId(dto.getId()); + configServiceDirective.setStatus(dto.getStatus()); + configServiceDirectiveService.updateById(configServiceDirective); + + if ("2".equals(dto.getStatus())) { + configServiceDirectiveService.auditPass(dto); + } + //通知业务平台修改审核状态 + DirectiveAsyncMQDto directiveAsyncMQDto = new DirectiveAsyncMQDto(); + BeanUtils.copyProperties(dto, directiveAsyncMQDto); + rabbitMQUtil.sendToExchange("hldy.directive", dto.getSysOrgCode() + ".directive.auditresult", directiveAsyncMQDto); + return Result.OK(Maps.newHashMap()); + } + /** * 通过id删除 * diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/ConfigServiceDirective.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/ConfigServiceDirective.java index 013db5f..6cee998 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/ConfigServiceDirective.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/ConfigServiceDirective.java @@ -93,6 +93,11 @@ public class ConfigServiceDirective implements Serializable { @Excel(name = "服务时长(分钟)", width = 15) @ApiModelProperty(value = "服务时长(分钟)") private java.lang.String serviceDuration; + /**指令状态*/ + @Excel(name = "指令状态", width = 15) + @ApiModelProperty(value = "指令状态") + @Dict(dicCode = "directive_status") + private java.lang.String status; /**是否启用 0启用 1未启用*/ @Excel(name = "是否启用", width = 15) @ApiModelProperty(value = "是否启用") @@ -121,6 +126,7 @@ public class ConfigServiceDirective implements Serializable { private java.util.Date updateTime; /**所属部门*/ @ApiModelProperty(value = "所属部门") + @Dict(dicCode = "org_code" , dictTable = "sys_depart" , dicText = "depart_name") private java.lang.String sysOrgCode; /**指令音频文件*/ @ApiModelProperty(value = "指令音频文件") diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml index 9e57fb4..84f8be1 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml @@ -19,6 +19,7 @@ + @@ -59,6 +60,7 @@ c.sort, c.service_content, c.service_duration, + c.status, c.iz_enabled, c.del_flag, c.create_by, 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 6e0aed9..98d60d9 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 @@ -58,4 +58,6 @@ public interface IConfigServiceDirectiveService extends IService directives); void handleMediaFile(ConfigServiceDirective configServiceDirective); + + void auditPass(ConfigServiceDirective dto); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java index ea55f42..b2269b9 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java @@ -2,23 +2,33 @@ package com.nu.modules.servicedirective.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import com.nu.modules.directivetag.emotion.service.IDirectiveEmotionTagService; +import com.nu.modules.instructiontag.entity.InstructionTag; +import com.nu.modules.instructiontag.service.IInstructionTagService; +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.mapper.ConfigServiceDirectiveMapper; import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; +import com.nu.modules.servicetype.entity.ConfigServiceType; +import com.nu.modules.servicetype.service.IConfigServiceTypeService; import com.nu.modules.sysconfig.ISysConfigApi; -import com.nu.utils.RabbitMQUtil; import org.apache.commons.lang.StringUtils; import org.jeecg.common.system.api.ISysBaseAPI; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.io.File; import java.nio.file.Files; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -38,8 +48,21 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl pageList(ConfigServiceDirective configServiceDirective, IPage list_) { @@ -268,11 +291,60 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl instruUW = new UpdateWrapper<>(); + instruUW.eq("id",dto.getInstructionTagId()); + instruUW.eq("status","1"); + InstructionTag instructionTag = new InstructionTag(); + instructionTag.setStatus("0"); + instructionTagService.update(instructionTag,instruUW); + //服务类别 + UpdateWrapper categoryUW = new UpdateWrapper<>(); + categoryUW.eq("id",dto.getCategoryId()); + categoryUW.eq("status","1"); + ConfigServiceCategory category = new ConfigServiceCategory(); + category.setStatus("0"); + categoryService.update(category,categoryUW); + //服务类型 + UpdateWrapper typeUW = new UpdateWrapper<>(); + typeUW.eq("id",dto.getTypeId()); + typeUW.eq("status","1"); + ConfigServiceType type = new ConfigServiceType(); + type.setStatus("0"); + typeService.update(type,typeUW); + //体型标签 + List bodyTags = Arrays.asList(dto.getBodyTags().split(",")); + bodyTags.stream().forEach(b -> { + UpdateWrapper bodyTagUW = new UpdateWrapper<>(); + bodyTagUW.eq("id",b); + bodyTagUW.eq("status","1"); + DirectiveBodyTag bodyTag = new DirectiveBodyTag(); + bodyTag.setStatus("0"); + bodyTagService.update(bodyTag,bodyTagUW); + }); + //情绪标签 + List emotionTags = Arrays.asList(dto.getEmotionTags().split(",")); + emotionTags.stream().forEach(b -> { + UpdateWrapper emotionTagUW = new UpdateWrapper<>(); + emotionTagUW.eq("id",b); + emotionTagUW.eq("status","1"); + DirectiveEmotionTag emotionTag = new DirectiveEmotionTag(); + emotionTag.setStatus("0"); + emotionTagService.update(emotionTag,emotionTagUW); + }); + + } + /** * 处理单个文件,检查路径是否需要迁移 - * @param basePath 基础路径 + * + * @param basePath 基础路径 * @param targetDir 目标目录 - * @param filePath 文件路径 + * @param filePath 文件路径 * @return 如果路径有变化返回新路径,否则返回null */ private String processFile(String basePath, String targetDir, String filePath) { diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/entity/ConfigServiceType.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/entity/ConfigServiceType.java index bc0c5f2..da18353 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/entity/ConfigServiceType.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/entity/ConfigServiceType.java @@ -52,6 +52,11 @@ public class ConfigServiceType implements Serializable { @Excel(name = "排序", width = 15) @ApiModelProperty(value = "排序") private java.lang.Integer sort; + /**状态 0已授权 1未授权*/ + @Excel(name = "状态 0已授权 1未授权", width = 15) + @ApiModelProperty(value = "状态 0已授权 1未授权") + @Dict(dicCode = "status") + private java.lang.String status; /**是否启用 0启用 1未启用*/ @Excel(name = "是否启用", width = 15) @ApiModelProperty(value = "是否启用") 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 b08ade2..a87eee0 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 @@ -1,12 +1,31 @@ package com.nu.mq.directive.listener; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.dto.DirectiveAsyncMQDto; import com.nu.dto.StatusMQDto; import com.nu.enums.MQStatus; import com.nu.modules.async.entity.AsyncMain; import com.nu.modules.async.entity.AsyncStatus; import com.nu.modules.async.service.IAsyncMainService; import com.nu.modules.async.service.IAsyncStatusService; +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.instructiontag.entity.InstructionTag; +import com.nu.modules.instructiontag.service.IInstructionTagService; +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 lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; import org.springframework.amqp.core.ExchangeTypes; @@ -14,10 +33,13 @@ 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.HashMap; import java.util.List; +import java.util.Map; @Slf4j @Component @@ -27,15 +49,170 @@ public class DirectiveMQListener { private IAsyncMainService asyncMainService; @Autowired private IAsyncStatusService asyncStatusService; + @Autowired + private IConfigServiceDirectiveService directiveService; + @Autowired + private IInstructionTagService instructionTagService; + @Autowired + private IConfigServiceCategoryService categoryService; + @Autowired + private IConfigServiceTypeService typeService; + @Autowired + private IDirectiveBodyTagService bodyTagService; + @Autowired + private IDirectiveEmotionTagService emotionTagService; - @RabbitListener( - bindings = @QueueBinding( - value = @Queue(name = "fwzl.async.result"), - exchange = @Exchange(name = "hldy.fwzl", type = ExchangeTypes.DIRECT), - key = "fwzl.async.result" - ), - errorHandler = "directiveMQErrorHandler" - ) + /** + * 业务平台新增指令/编辑未授权指令 传给 管理平台进行审核 + * + * @param dto + */ + @RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.directive.audit"), exchange = @Exchange(name = "hldy.directive", type = ExchangeTypes.DIRECT), key = "hldy.directive.audit"), errorHandler = "directiveMQErrorHandler") + public void auditBizDirective(DirectiveAsyncMQDto dto) { + //先处理各字典项 只新增,不修改 + String instructionTagId = dto.getInstructionTagId(); + String categoryId = dto.getCategoryId(); + String typeId = dto.getTypeId(); + String orgCode = dto.getSysOrgCode(); + //分类标签 + { + QueryWrapper instructionTagQW = new QueryWrapper<>(); + instructionTagQW.eq("id", instructionTagId); + InstructionTag instructionObj = instructionTagService.getOne(instructionTagQW); + if (instructionObj == null) { + //新增分类标签 + InstructionTag instructionTag = new InstructionTag(); + instructionTag.setId(instructionTagId); + instructionTag.setInstructionName(dto.getInstructionName()); + instructionTag.setSort(999); + instructionTag.setStatus("1"); + instructionTag.setIzEnabled("1"); + instructionTag.setDelFlag("0"); + instructionTag.setSysOrgCode(orgCode); + instructionTagService.save(instructionTag); + } + } + //服务类别 + { + QueryWrapper categoryQW = new QueryWrapper<>(); + categoryQW.eq("id", categoryId); + ConfigServiceCategory categoryObj = categoryService.getOne(categoryQW); + if (categoryObj == null) { + //新增服务类别 + ConfigServiceCategory configServiceCategory = new ConfigServiceCategory(); + configServiceCategory.setId(categoryId); + configServiceCategory.setInstructionId(instructionTagId); + configServiceCategory.setCategoryName(dto.getCategoryName()); + configServiceCategory.setSort(999); + configServiceCategory.setStatus("1"); + configServiceCategory.setIzEnabled("1"); + configServiceCategory.setDelFlag("0"); + configServiceCategory.setSysOrgCode(orgCode); + categoryService.save(configServiceCategory); + } + } + //服务类型 + { + QueryWrapper typeQW = new QueryWrapper<>(); + typeQW.eq("id", typeId); + ConfigServiceType typeObj = typeService.getOne(typeQW); + if (typeObj == null) { + //新增服务类别 + ConfigServiceType configServiceType = new ConfigServiceType(); + configServiceType.setId(typeId); + configServiceType.setInstructionId(instructionTagId); + configServiceType.setCategoryId(categoryId); + configServiceType.setTypeName(dto.getTypeName()); + configServiceType.setSort(999); + configServiceType.setStatus("1"); + configServiceType.setIzEnabled("1"); + configServiceType.setDelFlag("0"); + configServiceType.setSysOrgCode(orgCode); + typeService.save(configServiceType); + } + } + //体型标签 + { + String bodyTagsObj = dto.getBodyTagsObj(); + JSONArray jsonArray = JSON.parseArray(bodyTagsObj); + //体型标签-服务指令中间表 + bodyTagService.removeAllByDirectiveId(dto.getId()); + List btrList = Lists.newArrayList(); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject item = jsonArray.getJSONObject(i); + String bodyTagId = item.getString("id"); + String bodyTagLabel = item.getString("label"); + //处理每一个体型标签 + { + QueryWrapper bodyTagQW = new QueryWrapper<>(); + bodyTagQW.eq("id", bodyTagId); + DirectiveBodyTag bodyTagObj = bodyTagService.getOne(bodyTagQW); + if (bodyTagObj == null) { + DirectiveBodyTag directiveBodyTag = new DirectiveBodyTag(); + directiveBodyTag.setId(bodyTagId); + directiveBodyTag.setTagName(bodyTagLabel); + directiveBodyTag.setSort(999); + directiveBodyTag.setStatus("1"); + directiveBodyTag.setIzEnabled("1"); + directiveBodyTag.setDelFlag("0"); + directiveBodyTag.setSysOrgCode(orgCode); + //新增 + bodyTagService.save(directiveBodyTag); + } + DirectiveBodyTagRelation btr = new DirectiveBodyTagRelation(); + btr.setDirectiveId(dto.getId()); + btr.setTagId(bodyTagId); + btrList.add(btr); + } + } + //中间关系表 + bodyTagService.insertAllRelation(btrList); + } + //情绪标签 + { + String emotionTagsObj = dto.getEmotionTagsObj(); + JSONArray jsonArray = JSON.parseArray(emotionTagsObj); + //体型标签-服务指令中间表 + emotionTagService.removeAllByDirectiveId(dto.getId()); + List etrList = Lists.newArrayList(); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject item = jsonArray.getJSONObject(i); + String emotionTagId = item.getString("id"); + String emotionTagLabel = item.getString("label"); + //处理每一个体型标签 + { + QueryWrapper emotionTagQW = new QueryWrapper<>(); + emotionTagQW.eq("id", emotionTagId); + DirectiveEmotionTag emotionTagObj = emotionTagService.getOne(emotionTagQW); + if (emotionTagObj == null) { + DirectiveEmotionTag directiveEmotionTag = new DirectiveEmotionTag(); + directiveEmotionTag.setId(emotionTagId); + directiveEmotionTag.setTagName(emotionTagLabel); + directiveEmotionTag.setSort(999); + directiveEmotionTag.setStatus("1"); + directiveEmotionTag.setIzEnabled("1"); + directiveEmotionTag.setDelFlag("0"); + directiveEmotionTag.setSysOrgCode(orgCode); + //新增 + emotionTagService.save(directiveEmotionTag); + } + DirectiveEmotionTagRelation etr = new DirectiveEmotionTagRelation(); + etr.setDirectiveId(dto.getId()); + etr.setTagId(emotionTagId); + etrList.add(etr); + } + } + //中间关系表 + emotionTagService.insertAllRelation(etrList); + } + + //存储服务指令 + ConfigServiceDirective directive = new ConfigServiceDirective(); + BeanUtils.copyProperties(dto, directive); + directiveService.save(directive); + } + + @RabbitListener(bindings = @QueueBinding(value = @Queue(name = "fwzl.async.result"), exchange = @Exchange(name = "hldy.fwzl", type = ExchangeTypes.DIRECT), key = "fwzl.async.result"), errorHandler = "directiveMQErrorHandler") public void handleNu002AsyncMessageStatus(StatusMQDto dto) { LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); qw.eq(AsyncStatus::getPkid, dto.getAsyncId());