From aae6048da248202fca4e99afbccde1b712834d24 Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Tue, 15 Jul 2025 08:46:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DirectiveBodyTagController.java | 168 +++++++++ .../body/entity/DirectiveBodyTag.java | 74 ++++ .../body/entity/DirectiveBodyTagRelation.java | 28 ++ .../body/mapper/DirectiveBodyTagMapper.java | 20 ++ .../DirectiveBodyTagRelationMapper.java | 21 ++ .../mapper/xml/DirectiveBodyTagMapper.xml | 20 ++ .../xml/DirectiveBodyTagRelationMapper.xml | 27 ++ .../service/IDirectiveBodyTagService.java | 33 ++ .../impl/DirectiveBodyTagServiceImpl.java | 77 +++++ .../DirectiveEmotionTagController.java | 168 +++++++++ .../emotion/entity/DirectiveEmotionTag.java | 74 ++++ .../entity/DirectiveEmotionTagRelation.java | 28 ++ .../mapper/DirectiveEmotionTagMapper.java | 19 + .../DirectiveEmotionTagRelationMapper.java | 22 ++ .../mapper/xml/DirectiveEmotionTagMapper.xml | 19 + .../xml/DirectiveEmotionTagRelationMapper.xml | 27 ++ .../service/IDirectiveEmotionTagService.java | 33 ++ .../impl/DirectiveEmotionTagServiceImpl.java | 77 +++++ .../ConfigServiceCategoryController.java | 168 +++++++++ .../entity/ConfigServiceCategory.java | 79 +++++ .../mapper/ConfigServiceCategoryMapper.java | 20 ++ .../xml/ConfigServiceCategoryMapper.xml | 23 ++ .../IConfigServiceCategoryService.java | 29 ++ .../ConfigServiceCategoryServiceImpl.java | 79 +++++ .../ConfigServiceDirectiveController.java | 233 +++++++++++++ .../entity/ConfigServiceDirective.java | 196 +++++++++++ .../mapper/ConfigServiceDirectiveMapper.java | 66 ++++ .../xml/ConfigServiceDirectiveMapper.xml | 148 ++++++++ .../IConfigServiceDirectiveService.java | 61 ++++ .../ConfigServiceDirectiveServiceImpl.java | 325 ++++++++++++++++++ .../ConfigServiceTypeController.java | 168 +++++++++ .../servicetype/entity/ConfigServiceType.java | 84 +++++ .../mapper/ConfigServiceTypeMapper.java | 20 ++ .../mapper/xml/ConfigServiceTypeMapper.xml | 24 ++ .../service/IConfigServiceTypeService.java | 29 ++ .../impl/ConfigServiceTypeServiceImpl.java | 65 ++++ 36 files changed, 2752 insertions(+) create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/controller/DirectiveBodyTagController.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTag.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTagRelation.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagRelationMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/IDirectiveBodyTagService.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/impl/DirectiveBodyTagServiceImpl.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/controller/DirectiveEmotionTagController.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTag.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTagRelation.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagRelationMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagRelationMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/IDirectiveEmotionTagService.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/impl/DirectiveEmotionTagServiceImpl.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/controller/ConfigServiceCategoryController.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/entity/ConfigServiceCategory.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/ConfigServiceCategoryMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/xml/ConfigServiceCategoryMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/IConfigServiceCategoryService.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/impl/ConfigServiceCategoryServiceImpl.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/ConfigServiceDirective.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/controller/ConfigServiceTypeController.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/entity/ConfigServiceType.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/ConfigServiceTypeMapper.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/xml/ConfigServiceTypeMapper.xml create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/IConfigServiceTypeService.java create mode 100644 nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/impl/ConfigServiceTypeServiceImpl.java diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/controller/DirectiveBodyTagController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/controller/DirectiveBodyTagController.java new file mode 100644 index 0000000..ace1044 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/controller/DirectiveBodyTagController.java @@ -0,0 +1,168 @@ +package com.nu.modules.directivetag.body.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + + /** + * @Description: 体型标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Api(tags="体型标签") +@RestController +@RequestMapping("/services/directiveTag/bodyTag") +@Slf4j +public class DirectiveBodyTagController extends JeecgController { + @Autowired + private IDirectiveBodyTagService directiveTagService; + + /** + * 分页列表查询 + * + * @param directiveTag + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "体型标签-分页列表查询") + @ApiOperation(value="体型标签-分页列表查询", notes="体型标签-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(DirectiveBodyTag directiveTag, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + // 自定义查询规则 + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("izEnabled", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(directiveTag, req.getParameterMap(),customeRuleMap); + Page page = new Page(pageNo, pageSize); + IPage pageList = directiveTagService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param directiveTag + * @return + */ + @AutoLog(value = "体型标签-添加") + @ApiOperation(value="体型标签-添加", notes="体型标签-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody DirectiveBodyTag directiveTag) { + directiveTagService.save(directiveTag); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param directiveTag + * @return + */ + @AutoLog(value = "体型标签-编辑") + @ApiOperation(value="体型标签-编辑", notes="体型标签-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody DirectiveBodyTag directiveTag) { + directiveTagService.updateById(directiveTag); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "体型标签-通过id删除") + @ApiOperation(value="体型标签-通过id删除", notes="体型标签-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + if(directiveTagService.isUsed(id)){ + return Result.error("已被使用,无法删除!"); + } + directiveTagService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "体型标签-批量删除") + @ApiOperation(value="体型标签-批量删除", notes="体型标签-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + if(directiveTagService.isUsed(ids)){ + return Result.error("已被使用,无法删除!"); + } + this.directiveTagService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "体型标签-通过id查询") + @ApiOperation(value="体型标签-通过id查询", notes="体型标签-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + DirectiveBodyTag directiveTag = directiveTagService.getById(id); + if(directiveTag==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(directiveTag); + } + + /** + * 导出excel + * + * @param request + * @param directiveTag + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, DirectiveBodyTag directiveTag) { + return super.exportXls(request, directiveTag, DirectiveBodyTag.class, "体型标签"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, DirectiveBodyTag.class); + } + +} 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 new file mode 100644 index 0000000..071a746 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTag.java @@ -0,0 +1,74 @@ +package com.nu.modules.directivetag.body.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 体型标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Data +@TableName("nu_config_body_tag") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_config_body_tag对象", description="体型标签") +public class DirectiveBodyTag implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private String id; + /**标签名称*/ + @Excel(name = "标签名称", width = 15) + @ApiModelProperty(value = "标签名称") + private String tagName; + /**排序*/ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private Integer sort; + /**是否启用 0启用 1未启用*/ + @Excel(name = "是否启用", width = 15, dicCode = "iz_enabled") + @Dict(dicCode = "iz_enabled") + @ApiModelProperty(value = "是否启用") + private String izEnabled; + /**是否删除 0未删除 1删除*/ + @Excel(name = "是否删除", width = 15) + @ApiModelProperty(value = "是否删除") + @TableLogic + private String delFlag; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTagRelation.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTagRelation.java new file mode 100644 index 0000000..86a916c --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/entity/DirectiveBodyTagRelation.java @@ -0,0 +1,28 @@ +package com.nu.modules.directivetag.body.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @Description: 服务指令-体型标签中间表 + * @Author: 张明远 + * @Date: 2025-4-23 09:26:04 + * @Version: V1.0 + */ +@Data +@TableName("nu_directive_body_tag") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_directive_body_tag对象", description="服务指令-体型标签中间表") +public class DirectiveBodyTagRelation implements Serializable { + private static final long serialVersionUID = 1L; + + private String directiveId; + private String tagId; + +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagMapper.java new file mode 100644 index 0000000..bada165 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagMapper.java @@ -0,0 +1,20 @@ +package com.nu.modules.directivetag.body.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Description: 体型标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface DirectiveBodyTagMapper 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/body/mapper/DirectiveBodyTagRelationMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java new file mode 100644 index 0000000..f359441 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/DirectiveBodyTagRelationMapper.java @@ -0,0 +1,21 @@ +package com.nu.modules.directivetag.body.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Description: 体型标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface DirectiveBodyTagRelationMapper extends BaseMapper { + void removeAll(); + + void removeAllRelation(); + + 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/DirectiveBodyTagMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagMapper.xml new file mode 100644 index 0000000..a300a8a --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagMapper.xml @@ -0,0 +1,20 @@ + + + + + + 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 new file mode 100644 index 0000000..86b33c1 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/mapper/xml/DirectiveBodyTagRelationMapper.xml @@ -0,0 +1,27 @@ + + + + + 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 new file mode 100644 index 0000000..5173281 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/IDirectiveBodyTagService.java @@ -0,0 +1,33 @@ +package com.nu.modules.directivetag.body.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation; + +import java.util.List; + +/** + * @Description: 体型标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface IDirectiveBodyTagService extends IService { + + /** + * 查询数据是否已被使用 + * @param ids + * @return + */ + boolean isUsed(String id); + + public void removeAllRelation(); + + 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 new file mode 100644 index 0000000..1f24f48 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/body/service/impl/DirectiveBodyTagServiceImpl.java @@ -0,0 +1,77 @@ +package com.nu.modules.directivetag.body.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation; +import com.nu.modules.directivetag.body.mapper.DirectiveBodyTagMapper; +import com.nu.modules.directivetag.body.mapper.DirectiveBodyTagRelationMapper; +import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; +import com.nu.modules.servicedirective.mapper.ConfigServiceDirectiveMapper; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 体型标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Service +public class DirectiveBodyTagServiceImpl extends ServiceImpl implements IDirectiveBodyTagService { + + @Autowired + private ConfigServiceDirectiveMapper serviceDirectiveMapper; + @Autowired + private DirectiveBodyTagRelationMapper tagRelationMapper; + + @Override + public boolean isUsed(String ids) { + if (StringUtils.isBlank(ids)) { + return false; + } + boolean result = false; + //是否已被服务指令使用 + int i = serviceDirectiveMapper.queryCountByBodyTagIds(Arrays.asList(ids.split(","))); + if (i > 0) { + result = true; + } + return result; + } + + @Override + public void removeAllRelation() { + tagRelationMapper.removeAll(); + tagRelationMapper.removeAllRelation(); + } + + @Override + @DS("#dataSourceCode") + public List selectAllRelation(String dataSourceCode, List ids,List excludeIds) { + return tagRelationMapper.selectAllRelation(ids,excludeIds); + } + + @Override + public void insertAllRelation(List idRelations) { + idRelations.forEach(ir -> { + tagRelationMapper.insert(ir); + }); + } + + @Override + @DS("#dataSourceCode") + public List 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/controller/DirectiveEmotionTagController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/controller/DirectiveEmotionTagController.java new file mode 100644 index 0000000..c5acce5 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/controller/DirectiveEmotionTagController.java @@ -0,0 +1,168 @@ +package com.nu.modules.directivetag.emotion.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import com.nu.modules.directivetag.emotion.service.IDirectiveEmotionTagService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + + /** + * @Description: 情绪标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Api(tags="情绪标签") +@RestController +@RequestMapping("/services/directiveTag/emotionTag") +@Slf4j +public class DirectiveEmotionTagController extends JeecgController { + @Autowired + private IDirectiveEmotionTagService directiveTagService; + + /** + * 分页列表查询 + * + * @param directiveTag + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "情绪标签-分页列表查询") + @ApiOperation(value="情绪标签-分页列表查询", notes="情绪标签-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(DirectiveEmotionTag directiveTag, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + // 自定义查询规则 + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("izEnabled", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(directiveTag, req.getParameterMap(),customeRuleMap); + Page page = new Page(pageNo, pageSize); + IPage pageList = directiveTagService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param directiveTag + * @return + */ + @AutoLog(value = "情绪标签-添加") + @ApiOperation(value="情绪标签-添加", notes="情绪标签-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody DirectiveEmotionTag directiveTag) { + directiveTagService.save(directiveTag); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param directiveTag + * @return + */ + @AutoLog(value = "情绪标签-编辑") + @ApiOperation(value="情绪标签-编辑", notes="情绪标签-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody DirectiveEmotionTag directiveTag) { + directiveTagService.updateById(directiveTag); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "情绪标签-通过id删除") + @ApiOperation(value="情绪标签-通过id删除", notes="情绪标签-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + if(directiveTagService.isUsed(id)){ + return Result.error("已被使用,无法删除!"); + } + directiveTagService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "情绪标签-批量删除") + @ApiOperation(value="情绪标签-批量删除", notes="情绪标签-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + if(directiveTagService.isUsed(ids)){ + return Result.error("已被使用,无法删除!"); + } + this.directiveTagService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "情绪标签-通过id查询") + @ApiOperation(value="情绪标签-通过id查询", notes="情绪标签-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + DirectiveEmotionTag directiveTag = directiveTagService.getById(id); + if(directiveTag==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(directiveTag); + } + + /** + * 导出excel + * + * @param request + * @param directiveTag + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, DirectiveEmotionTag directiveTag) { + return super.exportXls(request, directiveTag, DirectiveEmotionTag.class, "情绪标签"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, DirectiveEmotionTag.class); + } + +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTag.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTag.java new file mode 100644 index 0000000..bd6cdbc --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTag.java @@ -0,0 +1,74 @@ +package com.nu.modules.directivetag.emotion.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 情绪标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Data +@TableName("nu_config_emotion_tag") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_config_emotion_tag对象", description="情绪标签") +public class DirectiveEmotionTag implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**标签名称*/ + @Excel(name = "标签名称", width = 15) + @ApiModelProperty(value = "标签名称") + private java.lang.String tagName; + /**排序*/ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private java.lang.Integer sort; + /**是否启用 0启用 1未启用*/ + @Excel(name = "是否启用", width = 15, dicCode = "iz_enabled") + @Dict(dicCode = "iz_enabled") + @ApiModelProperty(value = "是否启用") + private java.lang.String izEnabled; + /**是否删除 0未删除 1删除*/ + @Excel(name = "是否删除", width = 15) + @ApiModelProperty(value = "是否删除") + @TableLogic + private java.lang.String delFlag; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTagRelation.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTagRelation.java new file mode 100644 index 0000000..a90627f --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/entity/DirectiveEmotionTagRelation.java @@ -0,0 +1,28 @@ +package com.nu.modules.directivetag.emotion.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @Description: 服务指令-情绪标签中间表 + * @Author: 张明远 + * @Date: 2025-4-23 09:26:04 + * @Version: V1.0 + */ +@Data +@TableName("nu_directive_emotion_tag") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_directive_emotion_tag对象", description="服务指令-情绪标签中间表") +public class DirectiveEmotionTagRelation implements Serializable { + private static final long serialVersionUID = 1L; + + private String directiveId; + private String tagId; + +} 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 new file mode 100644 index 0000000..17cc591 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagMapper.java @@ -0,0 +1,19 @@ +package com.nu.modules.directivetag.emotion.mapper; + +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: 情绪标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +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 new file mode 100644 index 0000000..10b078d --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/DirectiveEmotionTagRelationMapper.java @@ -0,0 +1,22 @@ +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; + +/** + * @Description: 情绪标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface DirectiveEmotionTagRelationMapper extends BaseMapper { + + void removeAll(); + + void removeAllRelation(); + + 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 new file mode 100644 index 0000000..83fb500 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagMapper.xml @@ -0,0 +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 new file mode 100644 index 0000000..03b7440 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/mapper/xml/DirectiveEmotionTagRelationMapper.xml @@ -0,0 +1,27 @@ + + + + + delete + from nu_config_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 new file mode 100644 index 0000000..1f27378 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/IDirectiveEmotionTagService.java @@ -0,0 +1,33 @@ +package com.nu.modules.directivetag.emotion.service; + +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; + +/** + * @Description: 情绪标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface IDirectiveEmotionTagService extends IService { + + /** + * 查询数据是否已被使用 + * @param ids + * @return + */ + boolean isUsed(String id); + + public void removeAllRelation(); + + 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 new file mode 100644 index 0000000..0408577 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/directivetag/emotion/service/impl/DirectiveEmotionTagServiceImpl.java @@ -0,0 +1,77 @@ +package com.nu.modules.directivetag.emotion.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTagRelation; +import com.nu.modules.directivetag.emotion.mapper.DirectiveEmotionTagMapper; +import com.nu.modules.directivetag.emotion.mapper.DirectiveEmotionTagRelationMapper; +import com.nu.modules.directivetag.emotion.service.IDirectiveEmotionTagService; +import com.nu.modules.servicedirective.mapper.ConfigServiceDirectiveMapper; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 情绪标签 + * @Author: 张明远 + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Service +public class DirectiveEmotionTagServiceImpl extends ServiceImpl implements IDirectiveEmotionTagService { + + @Autowired + private ConfigServiceDirectiveMapper serviceDirectiveMapper; + @Autowired + private DirectiveEmotionTagRelationMapper tagRelationMapper; + + @Override + public boolean isUsed(String ids) { + if (StringUtils.isBlank(ids)) { + return false; + } + boolean result = false; + //是否已被服务指令使用 + int i = serviceDirectiveMapper.queryCountByEmotionTagIds(Arrays.asList(ids.split(","))); + if (i > 0) { + result = true; + } + return result; + } + + @Override + public void removeAllRelation() { + tagRelationMapper.removeAll(); + tagRelationMapper.removeAllRelation(); + } + + @Override + @DS("#dataSourceCode") + public List selectAllRelation(String dataSourceCode, List ids, List excludeIds) { + return tagRelationMapper.selectAllRelation(ids, excludeIds); + } + + @Override + public void insertAllRelation(List idRelations) { + idRelations.forEach(ir -> { + tagRelationMapper.insert(ir); + }); + } + + @Override + @DS("#dataSourceCode") + public List 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/controller/ConfigServiceCategoryController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/controller/ConfigServiceCategoryController.java new file mode 100644 index 0000000..2983742 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/controller/ConfigServiceCategoryController.java @@ -0,0 +1,168 @@ +package com.nu.modules.servicecategory.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.servicecategory.entity.ConfigServiceCategory; +import com.nu.modules.servicecategory.service.IConfigServiceCategoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + + /** + * @Description: 服务类别 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Api(tags="服务类别") +@RestController +@RequestMapping("/services/serviceCategory/configServiceCategory") +@Slf4j +public class ConfigServiceCategoryController extends JeecgController { + @Autowired + private IConfigServiceCategoryService configServiceCategoryService; + + /** + * 分页列表查询 + * + * @param configServiceCategory + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "服务类别-分页列表查询") + @ApiOperation(value="服务类别-分页列表查询", notes="服务类别-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(ConfigServiceCategory configServiceCategory, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + // 自定义查询规则 + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("izEnabled", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(configServiceCategory, req.getParameterMap(),customeRuleMap); + Page page = new Page(pageNo, pageSize); + IPage pageList = configServiceCategoryService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param configServiceCategory + * @return + */ + @AutoLog(value = "服务类别-添加") + @ApiOperation(value="服务类别-添加", notes="服务类别-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody ConfigServiceCategory configServiceCategory) { + configServiceCategoryService.save(configServiceCategory); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param configServiceCategory + * @return + */ + @AutoLog(value = "服务类别-编辑") + @ApiOperation(value="服务类别-编辑", notes="服务类别-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody ConfigServiceCategory configServiceCategory) { + configServiceCategoryService.updateById(configServiceCategory); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "服务类别-通过id删除") + @ApiOperation(value="服务类别-通过id删除", notes="服务类别-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + if(configServiceCategoryService.isUsed(id)){ + return Result.error("已被使用,无法删除!"); + } + configServiceCategoryService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "服务类别-批量删除") + @ApiOperation(value="服务类别-批量删除", notes="服务类别-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + if(configServiceCategoryService.isUsed(ids)){ + return Result.error("已被使用,无法删除!"); + } + this.configServiceCategoryService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "服务类别-通过id查询") + @ApiOperation(value="服务类别-通过id查询", notes="服务类别-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + ConfigServiceCategory configServiceCategory = configServiceCategoryService.getById(id); + if(configServiceCategory==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(configServiceCategory); + } + + /** + * 导出excel + * + * @param request + * @param configServiceCategory + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ConfigServiceCategory configServiceCategory) { + return super.exportXls(request, configServiceCategory, ConfigServiceCategory.class, "服务类别"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ConfigServiceCategory.class); + } + +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/entity/ConfigServiceCategory.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/entity/ConfigServiceCategory.java new file mode 100644 index 0000000..b2f7aa9 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/entity/ConfigServiceCategory.java @@ -0,0 +1,79 @@ +package com.nu.modules.servicecategory.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 服务类别 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Data +@TableName("nu_config_service_category") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_config_service_category对象", description="服务类别") +public class ConfigServiceCategory implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**分类标签id*/ + @Excel(name = "分类标签id", width = 15) + @ApiModelProperty(value = "分类标签id") + @Dict(dicCode = "id" , dictTable = "nu_config_service_instruction_tag" , dicText = "instruction_name") + private java.lang.String instructionId; + /**服务类别名称*/ + @Excel(name = "服务类别名称", width = 15) + @ApiModelProperty(value = "服务类别名称") + private java.lang.String categoryName; + /**排序*/ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private java.lang.Integer sort; + /**是否启用 0启用 1未启用*/ + @Excel(name = "是否启用", width = 15) + @ApiModelProperty(value = "是否启用") + @Dict(dicCode = "iz_enabled") + private java.lang.String izEnabled; + /**是否删除 0未删除 1删除*/ + @Excel(name = "是否删除", width = 15) + @ApiModelProperty(value = "是否删除") + @TableLogic + private java.lang.String delFlag; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; +} 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 new file mode 100644 index 0000000..e3eed65 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/ConfigServiceCategoryMapper.java @@ -0,0 +1,20 @@ +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: 服务类别 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +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 new file mode 100644 index 0000000..12047a7 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/mapper/xml/ConfigServiceCategoryMapper.xml @@ -0,0 +1,23 @@ + + + + + + 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 new file mode 100644 index 0000000..dca38dd --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/IConfigServiceCategoryService.java @@ -0,0 +1,29 @@ +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 + * @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 new file mode 100644 index 0000000..0370866 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicecategory/service/impl/ConfigServiceCategoryServiceImpl.java @@ -0,0 +1,79 @@ +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; +import com.nu.modules.servicecategory.entity.ConfigServiceCategory; +import com.nu.modules.servicecategory.mapper.ConfigServiceCategoryMapper; +import com.nu.modules.servicecategory.service.IConfigServiceCategoryService; +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; + +/** + * @Description: 服务类别 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Service +public class ConfigServiceCategoryServiceImpl extends ServiceImpl implements IConfigServiceCategoryService { + + @Autowired + private IConfigServiceTypeService configServiceTypeService; + @Autowired + private IConfigServiceDirectiveService configServiceDirectiveService; + + @Override + public boolean isUsed(String ids) { + if (StringUtils.isBlank(ids)) { + return false; + } + boolean result = false; + //是否已被服务类型使用 + LambdaQueryWrapper configServiceTypeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + configServiceTypeLambdaQueryWrapper.in(ConfigServiceType::getCategoryId, Arrays.asList(ids.split(","))); + configServiceTypeLambdaQueryWrapper.eq(ConfigServiceType::getDelFlag, "0"); + List configServiceTypes = configServiceTypeService.list(configServiceTypeLambdaQueryWrapper); + if (configServiceTypes == null || configServiceTypes.isEmpty()) { + //是否已被服务指令使用 + LambdaQueryWrapper configServiceDirectiveLambdaQueryWrapper = new LambdaQueryWrapper<>(); + configServiceDirectiveLambdaQueryWrapper.in(ConfigServiceDirective::getCategoryId, Arrays.asList(ids.split(","))); + configServiceDirectiveLambdaQueryWrapper.eq(ConfigServiceDirective::getDelFlag, "0"); + List configServiceDirectives = configServiceDirectiveService.list(configServiceDirectiveLambdaQueryWrapper); + if (!(configServiceDirectives == null || configServiceDirectives.isEmpty())) { + result = true; + } + } else { + result = true; + } + + return result; + } + + @Override + public void removeAll() { + baseMapper.removeAll(); + } + + @Override + @DS("#dataSourceCode") + public List 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/servicedirective/controller/ConfigServiceDirectiveController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java new file mode 100644 index 0000000..f5483f3 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java @@ -0,0 +1,233 @@ +package com.nu.modules.servicedirective.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; +import com.nu.modules.sysconfig.ISysConfigApi; +import com.nu.utils.RabbitMQUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Description: 服务指令 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Api(tags = "服务指令") +@RestController +@RequestMapping("/services/serviceDirective") +@Slf4j +public class ConfigServiceDirectiveController extends JeecgController { + @Autowired + private IConfigServiceDirectiveService configServiceDirectiveService; + @Autowired + private RabbitMQUtil rabbitMQUtil; + + /** + * 分页列表查询 + * + * @param configServiceDirective + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "服务指令-分页列表查询") + @ApiOperation(value = "服务指令-分页列表查询", notes = "服务指令-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(ConfigServiceDirective configServiceDirective, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("categoryId", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("typeId", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("instructionTagId", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("izReimbursement", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("izPreferential", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("chargingFrequency", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("cycleType", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("izEnabled", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(configServiceDirective, req.getParameterMap(), customeRuleMap); + queryWrapper.select("id"); + //如果有服务指令需要提前查询下对应的服务指令id + List directiveIds = null; + if (StringUtils.isNotBlank(configServiceDirective.getBodyTags())) { + directiveIds = configServiceDirectiveService.queryDirectiveIdByBodyTagIds(configServiceDirective.getBodyTags()); + if (directiveIds != null && !directiveIds.isEmpty()) { + queryWrapper.in("id", directiveIds.stream().map(ConfigServiceDirective::getId).collect(Collectors.toList())); + } else { + //体重标签下没有数据 + queryWrapper.eq("id", "null"); + } + } + if (StringUtils.isNotBlank(configServiceDirective.getEmotionTags())) { + directiveIds = configServiceDirectiveService.queryDirectiveIdByEmotionTagIds(configServiceDirective.getEmotionTags()); + if (directiveIds != null && !directiveIds.isEmpty() && StringUtils.isNotBlank(configServiceDirective.getEmotionTags())) { + queryWrapper.in("id", directiveIds.stream().map(ConfigServiceDirective::getId).collect(Collectors.toList())); + } else { + //情绪标签下没有数据 + queryWrapper.eq("id", "null"); + } + } + Page page = new Page(pageNo, pageSize); + IPage list = configServiceDirectiveService.page(page, queryWrapper); + List pageList = service.pageList(configServiceDirective, list); + list.setRecords(pageList); + return Result.OK(list); + } + + /** + * 添加 + * + * @param configServiceDirective + * @return + */ + @AutoLog(value = "服务指令-添加") + @ApiOperation(value = "服务指令-添加", notes = "服务指令-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody ConfigServiceDirective configServiceDirective) { + //业务平台添加时无媒体资源 处理媒体资源(放在保存方法之前) +// configServiceDirectiveService.handleMediaFile(configServiceDirective); + //业务平台创建的数据初始状态为“未授权” iz_enabled = 2 + configServiceDirective.setIzEnabled("2"); + configServiceDirectiveService.save(configServiceDirective); + if (StringUtils.isNotBlank(configServiceDirective.getBodyTags())) { + configServiceDirectiveService.saveBodyTags(configServiceDirective); + } else { + configServiceDirectiveService.removeBodyTags(configServiceDirective); + } + + if (StringUtils.isNotBlank(configServiceDirective.getEmotionTags())) { + configServiceDirectiveService.saveEmotionTags(configServiceDirective); + } else { + configServiceDirectiveService.removeEmotionTags(configServiceDirective); + } + + //同步给管理平台 +// rabbitMQUtil.sendToExchange("hldy.directive.add", "hldy.directive.add", null); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param configServiceDirective + * @return + */ + @AutoLog(value = "服务指令-编辑") + @ApiOperation(value = "服务指令-编辑", notes = "服务指令-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result edit(@RequestBody ConfigServiceDirective configServiceDirective) { + //业务平台添加时无媒体资源 处理媒体资源(放在保存方法之前) +// configServiceDirectiveService.handleMediaFile(configServiceDirective); + configServiceDirectiveService.updateById(configServiceDirective); + if (StringUtils.isNotBlank(configServiceDirective.getBodyTags())) { + configServiceDirectiveService.saveBodyTags(configServiceDirective); + } else { + configServiceDirectiveService.removeBodyTags(configServiceDirective); + } + + if (StringUtils.isNotBlank(configServiceDirective.getEmotionTags())) { + configServiceDirectiveService.saveEmotionTags(configServiceDirective); + } else { + configServiceDirectiveService.removeEmotionTags(configServiceDirective); + } + + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "服务指令-通过id删除") + @ApiOperation(value = "服务指令-通过id删除", notes = "服务指令-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name = "id", required = true) String id) { + configServiceDirectiveService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "服务指令-批量删除") + @ApiOperation(value = "服务指令-批量删除", notes = "服务指令-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.configServiceDirectiveService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "服务指令-通过id查询") + @ApiOperation(value = "服务指令-通过id查询", notes = "服务指令-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + ConfigServiceDirective configServiceDirective = configServiceDirectiveService.getById(id); + if (configServiceDirective == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(configServiceDirective); + } + + /** + * 导出excel + * + * @param request + * @param configServiceDirective + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ConfigServiceDirective configServiceDirective) { + return super.exportXls(request, configServiceDirective, ConfigServiceDirective.class, "服务指令"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ConfigServiceDirective.class); + } + +} 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 new file mode 100644 index 0000000..1f58bde --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/ConfigServiceDirective.java @@ -0,0 +1,196 @@ +package com.nu.modules.servicedirective.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description: 服务指令 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Data +@TableName("nu_config_service_directive") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_config_service_directive对象", description="服务指令") +public class ConfigServiceDirective implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**服务类别id*/ + @Excel(name = "服务类别", width = 15) + @ApiModelProperty(value = "服务类别") + @Dict(dicCode = "id" , dictTable = "nu_config_service_category" , dicText = "category_name") + private java.lang.String categoryId; + /**服务类型id*/ + @Excel(name = "服务类型", width = 15) + @ApiModelProperty(value = "服务类型") + @Dict(dicCode = "id" , dictTable = "nu_config_service_type" , dicText = "type_name") + private java.lang.String typeId; + /**分类标签*/ + @Excel(name = "分类标签", width = 15) + @ApiModelProperty(value = "分类标签") + @Dict(dicCode = "id" , dictTable = "nu_config_service_instruction_tag" , dicText = "instruction_name") + private java.lang.String instructionTagId; + /**服务指令名称*/ + @Excel(name = "服务指令名称", width = 15) + @ApiModelProperty(value = "服务指令名称") + private java.lang.String directiveName; + /**收费价格*/ + @Excel(name = "收费价格", width = 15) + @ApiModelProperty(value = "收费价格") + private java.math.BigDecimal tollPrice; + /**提成价格*/ + @Excel(name = "提成价格", width = 15) + @ApiModelProperty(value = "提成价格") + private java.math.BigDecimal comPrice; + /**是否参与医保报销 0不报销 1报销*/ + @Excel(name = "医保报销", width = 15) + @ApiModelProperty(value = "医保报销") + @Dict(dicCode = "med_ins_reimb" ) + private java.lang.String izReimbursement; + /**是否参与机构优惠 0不参与 1参与*/ + @Excel(name = "机构优惠", width = 15) + @ApiModelProperty(value = "机构优惠") + @Dict(dicCode = "institutional_discount" ) + private java.lang.String izPreferential; + /**收费频次 1按次收费 2按天收费*/ + @Excel(name = "收费频次", width = 15) + @ApiModelProperty(value = "收费频次") + @Dict(dicCode = "billing_frequency" ) + private java.lang.String chargingFrequency; + /**周期类型 1日常护理 2周期护理 3即时护理*/ + @Excel(name = "周期类型", width = 15) + @ApiModelProperty(value = "周期类型") + @Dict(dicCode = "period_type" ) + private java.lang.String cycleType; + /**排序*/ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private java.lang.Integer sort; + /**服务描述*/ + @Excel(name = "服务描述", width = 15) + @ApiModelProperty(value = "服务描述") + private java.lang.String serviceContent; + /**服务时长(分钟)*/ + @Excel(name = "服务时长(分钟)", width = 15) + @ApiModelProperty(value = "服务时长(分钟)") + private java.lang.String serviceDuration; + /**是否启用 0启用 1未启用*/ + @Excel(name = "是否启用", width = 15) + @ApiModelProperty(value = "是否启用") + @Dict(dicCode = "directive_status") + private java.lang.String izEnabled; + /**是否删除*/ + @Excel(name = "是否删除", width = 15) + @ApiModelProperty(value = "是否删除") + @TableLogic + private java.lang.String delFlag; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + /**指令音频文件*/ + @ApiModelProperty(value = "指令音频文件") + private java.lang.String mp3File; + //语音文件是否变更 + @TableField(exist = false) + private boolean mp3FileChanged; + /**指令视频文件*/ + @ApiModelProperty(value = "指令视频文件") + private java.lang.String mp4File; + //视频文件是否变更 + @TableField(exist = false) + private boolean mp4FileChanged; + /**服务指令图片*/ + @ApiModelProperty(value = "服务指令图片") + private java.lang.String previewFile; + //服务指令图片是否变更 + @TableField(exist = false) + private boolean previewFileChanged; + /**即时指令图标*/ + @ApiModelProperty(value = "即时指令图标") + private java.lang.String immediateFile; + //即时指令图标是否变更 + @TableField(exist = false) + private boolean immediateFileChanged; + + //合并单元格用:类别合并的行数 + @TableField(exist = false) + private Integer categoryRowSpan; + //合并单元格用:类型合并的行数 + @TableField(exist = false) + private Integer typeRowSpan; + //合并单元格用:分类标签合并的行数 + @TableField(exist = false) + private Integer instructionRowSpan; + //体型标签id,id,id + @TableField(exist = false) + private String bodyTags; + //情绪标签id,id,id + @TableField(exist = false) + private String emotionTags; + + + //体型标签 + @TableField(exist = false) + List bodyTagList; + //体型标签字符串 + @TableField(exist = false) + private String bodyTagsName; + + //情绪标签 + @TableField(exist = false) + List emotionTagList; + //情绪标签字符串 + @TableField(exist = false) + private String emotionTagsName; + + //分类标签中文名称 + @TableField(exist = false) + private String instructionName; + //服务类别中文名称 + @TableField(exist = false) + private String categoryName; + //服务类型中文名称 + @TableField(exist = false) + private String typeName; + //周期类型中文名称 + @TableField(exist = false) + private String cycleTypeName; + //媒体资源存储路径名 + @TableField(exist = false) + private String mediaFileSavePath; +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java new file mode 100644 index 0000000..8152a39 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java @@ -0,0 +1,66 @@ +package com.nu.modules.servicedirective.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import retrofit2.http.DELETE; + +/** + * @Description: 服务指令 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +public interface ConfigServiceDirectiveMapper extends BaseMapper { + /** + * 自定义分页查询方法 + * + * @param page 分页参数 + * @param directive 主查询对象(包含搜索条件) + * @return 分页结果 + */ + List pageList( + @Param("directive") ConfigServiceDirective directive, + @Param("ids") List records + ); + // IPage pageList( +// @Param("page") Page page, +// @Param("directive") ConfigServiceDirective directive +// ); + + int deleteBodyTags(@Param("directive") ConfigServiceDirective configServiceDirective); + + int saveBodyTags(@Param("directive") ConfigServiceDirective configServiceDirective); + + int deleteEmotionTags(@Param("directive") ConfigServiceDirective configServiceDirective); + + int saveEmotionTags(@Param("directive") ConfigServiceDirective configServiceDirective); + + /** + * 根据体型标签查询对应的服务指令id + * @return + */ + List queryDirectiveIdByBodyTagIds(@Param("tagIds") String tagIds); + + /** + * 根据情绪标签查询对应的服务指令id + * @return + */ + List queryDirectiveIdByEmotionTagIds(@Param("tagIds") String tagIds); + + /** + * 查询体型标签是否被使用 + * @return + */ + int queryCountByBodyTagIds(@Param("tagIds") List tagIds); + + /** + * 查询情绪标签是否被使用 + * @return + */ + int queryCountByEmotionTagIds(@Param("tagIds") List tagIds); + + int removeAll(); +} 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 new file mode 100644 index 0000000..9e57fb4 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete + from nu_directive_body_tag + where directive_id = #{directive.id} + + + + insert into nu_directive_body_tag (directive_id,tag_id) values + + (#{directive.id}, #{tagId}) + + + + + delete + from nu_directive_emotion_tag + where directive_id = #{directive.id} + + + + insert into nu_directive_emotion_tag (directive_id,tag_id) values + + (#{directive.id}, #{tagId}) + + + + + delete from nu_config_service_directive + + 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 new file mode 100644 index 0000000..6e0aed9 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java @@ -0,0 +1,61 @@ +package com.nu.modules.servicedirective.service; + +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.servicedirective.entity.ConfigServiceDirective; + +import java.util.List; + +/** + * @Description: 服务指令 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +public interface IConfigServiceDirectiveService extends IService { + + void merge(List records); + + List pageList(ConfigServiceDirective configServiceDirective, IPage list); + + /** + * 存储体型标签数据 + * + * @param configServiceDirective + */ + void saveBodyTags(ConfigServiceDirective configServiceDirective); + + /** + * 存储情绪标签数据 + * + * @param configServiceDirective + */ + void saveEmotionTags(ConfigServiceDirective configServiceDirective); + + /** + * 移除改服务指令下体型标签 + * + * @param configServiceDirective + */ + void removeBodyTags(ConfigServiceDirective configServiceDirective); + + /** + * 移除改服务指令下情绪标签 + * + * @param configServiceDirective + */ + void removeEmotionTags(ConfigServiceDirective configServiceDirective); + + List queryDirectiveIdByBodyTagIds(String tags); + + List queryDirectiveIdByEmotionTagIds(String tags); + + void removeAll(); + + List selectAllByIds(String dataSourceCode, List idList); + + void insertAllDirectives(List directives); + + void handleMediaFile(ConfigServiceDirective configServiceDirective); +} 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 new file mode 100644 index 0000000..ea55f42 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java @@ -0,0 +1,325 @@ +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.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +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.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.stereotype.Service; + +import java.io.File; +import java.nio.file.Files; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: 服务指令 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Service +public class ConfigServiceDirectiveServiceImpl extends ServiceImpl implements IConfigServiceDirectiveService { + + @Value(value = "${jeecg.path.upload}") + private String uploadpath; + + @Autowired + private ISysConfigApi sysConfigApi; + @Autowired + private ISysBaseAPI sysBaseAPI; + @Autowired + private RabbitMQUtil rabbitMQUtil; + + @Override + public List pageList(ConfigServiceDirective configServiceDirective, IPage list_) { + if (list_.getRecords() == null || list_.getRecords().isEmpty()) { + return list_.getRecords(); + } + List list = baseMapper.pageList(configServiceDirective, list_.getRecords()); + //处理服务标签字段 + if (list != null && !list.isEmpty()) { + list.stream().forEach(record -> { + List bodyTagList = record.getBodyTagList(); + record.setBodyTags(bodyTagList.stream().map(DirectiveBodyTag::getId).collect(Collectors.joining(","))); + + List emotionTagList = record.getEmotionTagList(); + record.setEmotionTags(emotionTagList.stream().map(DirectiveEmotionTag::getId).collect(Collectors.joining(","))); + }); + } + //处理单元格合并所需数据 + merge(list); + + + return list; + } + + /** + * 主合并方法 + * + * @param records 已排序的记录列表(需先按categoryId→typeId→instructionTagId排序) + */ + @Override + public void merge(List records) { + if (records == null || records.isEmpty()) return; + + int outerStart = 0; // 新一级分组(原三级)起始索引 + String currentInstructionId = records.get(0).getInstructionTagId(); + + // 新一级循环:遍历所有记录处理instructionTagId分组 + for (int i = 1; i < records.size(); i++) { + if (!records.get(i).getInstructionTagId().equals(currentInstructionId)) { + processAllGroups(records, outerStart, i - 1); // 处理完整个新一级分组 + outerStart = i; + currentInstructionId = records.get(i).getInstructionTagId(); + } + } + processAllGroups(records, outerStart, records.size() - 1); // 处理最后一组 + } + + private void processAllGroups(List records, int start, int end) { + processOuterGroup(records, start, end); // 处理新一级instructionRowSpan + + int middleStart = start; // 新二级分组起始索引 + String currentCategoryId = records.get(middleStart).getCategoryId(); + + // 新二级循环:处理当前新一级分组内的categoryId分组 + for (int j = middleStart + 1; j <= end; j++) { + if (!records.get(j).getCategoryId().equals(currentCategoryId)) { + processMiddleGroup(records, middleStart, j - 1); // 处理完整个新二级分组 + middleStart = j; + currentCategoryId = records.get(j).getCategoryId(); + } + } + processMiddleGroup(records, middleStart, end); // 处理最后一组新二级数据 + } + + private void processMiddleGroup(List records, int start, int end) { + processTypeRowSpan(records, start, end); // 设置新二级categoryRowSpan + + int innerStart = start; // 新三级分组起始索引 + String currentTypeId = records.get(innerStart).getTypeId(); + + // 新三级循环:处理当前新二级分组内的typeId分组 + for (int k = innerStart + 1; k <= end; k++) { + if (!records.get(k).getTypeId().equals(currentTypeId)) { + processInnerGroup(records, innerStart, k - 1); // 处理完整个新三级分组 + innerStart = k; + currentTypeId = records.get(k).getTypeId(); + } + } + processInnerGroup(records, innerStart, end); // 处理最后一组新三级数据 + } + + private void processInnerGroup(List records, int start, int end) { + int count = end - start + 1; + if (count > 1) { + records.get(start).setTypeRowSpan(count); + for (int i = start + 1; i <= end; i++) { + records.get(i).setTypeRowSpan(0); + } + } + } + + // 处理新一级instructionRowSpan + private void processOuterGroup(List records, int start, int end) { + int count = end - start + 1; + if (count > 1) { + records.get(start).setInstructionRowSpan(count); + for (int i = start + 1; i <= end; i++) { + records.get(i).setInstructionRowSpan(0); + } + } + } + + // 处理新二级categoryRowSpan + private void processTypeRowSpan(List records, int start, int end) { + int count = end - start + 1; + if (count > 1) { + records.get(start).setCategoryRowSpan(count); + for (int i = start + 1; i <= end; i++) { + records.get(i).setCategoryRowSpan(0); + } + } + } + + /** + * 存储体型标签数据 + * + * @param configServiceDirective + */ + @Override + public void saveBodyTags(ConfigServiceDirective configServiceDirective) { + baseMapper.deleteBodyTags(configServiceDirective); + baseMapper.saveBodyTags(configServiceDirective); + } + + /** + * 存储情绪标签数据 + * + * @param configServiceDirective + */ + @Override + public void saveEmotionTags(ConfigServiceDirective configServiceDirective) { + baseMapper.deleteEmotionTags(configServiceDirective); + baseMapper.saveEmotionTags(configServiceDirective); + } + + /** + * 移除改服务指令下体型标签 + * + * @param configServiceDirective + */ + @Override + public void removeBodyTags(ConfigServiceDirective configServiceDirective) { + baseMapper.deleteBodyTags(configServiceDirective); + } + + /** + * 移除改服务指令下情绪标签 + * + * @param configServiceDirective + */ + @Override + public void removeEmotionTags(ConfigServiceDirective configServiceDirective) { + baseMapper.deleteEmotionTags(configServiceDirective); + } + + @Override + public List queryDirectiveIdByBodyTagIds(String tags) { + return baseMapper.queryDirectiveIdByBodyTagIds(tags); + } + + @Override + public List queryDirectiveIdByEmotionTagIds(String tags) { + return baseMapper.queryDirectiveIdByEmotionTagIds(tags); + } + + @Override + public void removeAll() { + baseMapper.removeAll(); + } + + @Override + @DS("#dataSourceCode") + public List selectAllByIds(String dataSourceCode, List idList) { + QueryWrapper qw = new QueryWrapper<>(); + qw.in("id", idList); + return baseMapper.selectList(qw); + } + + @Override + public void insertAllDirectives(List directives) { + directives.forEach(d -> { + baseMapper.insert(d); + }); + } + + /** + * 处理资源文件 + * 1、检测各资源文件的存储路径是否跟路径字段的值一致 + * 2、如果不一致1)检测缺少的路径新建目录 2)然后把资源挪到新路径中 3)修改媒体资源对应字段的值的路径名 + * + * @param configServiceDirective + */ + @Override + public void handleMediaFile(ConfigServiceDirective configServiceDirective) { + //上传根路径 + String path = uploadpath; + //需要存储的路径 + String mediaFileSavePath = configServiceDirective.getMediaFileSavePath(); + //服务指令图片 + String previewFile = configServiceDirective.getPreviewFile(); + //即时指令图标 + String immediateFile = configServiceDirective.getImmediateFile(); + //指令音频文件 + String mp3File = configServiceDirective.getMp3File(); + //指令视频文件 + String mp4File = configServiceDirective.getMp4File(); + + // 处理每个文件并获取更新后的路径 + String newPreviewFile = processFile(path, mediaFileSavePath, previewFile); + String newImmediateFile = processFile(path, mediaFileSavePath, immediateFile); + String newMp3File = processFile(path, mediaFileSavePath, mp3File); + String newMp4File = processFile(path, mediaFileSavePath, mp4File); + + // 如果有变化,更新ConfigServiceDirective对象 + if (newPreviewFile != null) { + configServiceDirective.setPreviewFile(newPreviewFile); + } + if (newImmediateFile != null) { + configServiceDirective.setImmediateFile(newImmediateFile); + } + if (newMp3File != null) { + configServiceDirective.setMp3File(newMp3File); + } + if (newMp4File != null) { + configServiceDirective.setMp4File(newMp4File); + } + } + + /** + * 处理单个文件,检查路径是否需要迁移 + * @param basePath 基础路径 + * @param targetDir 目标目录 + * @param filePath 文件路径 + * @return 如果路径有变化返回新路径,否则返回null + */ + private String processFile(String basePath, String targetDir, String filePath) { + if (StringUtils.isBlank(filePath)) { + return null; + } + + try { + // 检查文件路径是否以目标目录开头 + if (!filePath.startsWith(targetDir + "/")) { + // 获取文件名(路径的最后一部分) + String fileName = filePath.substring(filePath.lastIndexOf('/') + 1); + + // 构建新的完整路径 + String newRelativePath = targetDir + "/" + fileName; + String oldFullPath = basePath + "/" + filePath; + String newFullPath = basePath + "/" + newRelativePath; + + // 创建目标目录(如果不存在) + File targetDirectory = new File(basePath + "/" + targetDir); + if (!targetDirectory.exists()) { + targetDirectory.mkdirs(); + } + + // 移动文件 + File oldFile = new File(oldFullPath); + if (oldFile.exists()) { + File newFile = new File(newFullPath); + + // 如果目标文件已存在,先删除 + if (newFile.exists()) { + newFile.delete(); + } + + // 移动文件 + Files.move(oldFile.toPath(), newFile.toPath()); + + // 返回新的相对路径 + return newRelativePath; + } + } + } catch (Exception e) { + // 处理异常,可以根据实际需求记录日志或抛出 + e.printStackTrace(); + } + + return null; + } + +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/controller/ConfigServiceTypeController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/controller/ConfigServiceTypeController.java new file mode 100644 index 0000000..ec42df8 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/controller/ConfigServiceTypeController.java @@ -0,0 +1,168 @@ +package com.nu.modules.servicetype.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.servicetype.entity.ConfigServiceType; +import com.nu.modules.servicetype.service.IConfigServiceTypeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +/** + * @Description: 服务类型 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Api(tags = "服务类型") +@RestController +@RequestMapping("/services/ServiceType/configServiceType") +@Slf4j +public class ConfigServiceTypeController extends JeecgController { + @Autowired + private IConfigServiceTypeService configServiceTypeService; + + /** + * 分页列表查询 + * + * @param configServiceType + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "服务类型-分页列表查询") + @ApiOperation(value = "服务类型-分页列表查询", notes = "服务类型-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(ConfigServiceType configServiceType, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + // 自定义查询规则 + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("categoryId", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(configServiceType, req.getParameterMap(), customeRuleMap); + Page page = new Page(pageNo, pageSize); + IPage pageList = configServiceTypeService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param configServiceType + * @return + */ + @AutoLog(value = "服务类型-添加") + @ApiOperation(value = "服务类型-添加", notes = "服务类型-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody ConfigServiceType configServiceType) { + configServiceTypeService.save(configServiceType); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param configServiceType + * @return + */ + @AutoLog(value = "服务类型-编辑") + @ApiOperation(value = "服务类型-编辑", notes = "服务类型-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result edit(@RequestBody ConfigServiceType configServiceType) { + configServiceTypeService.updateById(configServiceType); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "服务类型-通过id删除") + @ApiOperation(value = "服务类型-通过id删除", notes = "服务类型-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name = "id", required = true) String id) { + if(configServiceTypeService.isUsed(id)){ + return Result.error("已被使用,无法删除!"); + } + configServiceTypeService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "服务类型-批量删除") + @ApiOperation(value = "服务类型-批量删除", notes = "服务类型-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + if(configServiceTypeService.isUsed(ids)){ + return Result.error("已被使用,无法删除!"); + } + this.configServiceTypeService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "服务类型-通过id查询") + @ApiOperation(value = "服务类型-通过id查询", notes = "服务类型-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + ConfigServiceType configServiceType = configServiceTypeService.getById(id); + if (configServiceType == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(configServiceType); + } + + /** + * 导出excel + * + * @param request + * @param configServiceType + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ConfigServiceType configServiceType) { + return super.exportXls(request, configServiceType, ConfigServiceType.class, "服务类型"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ConfigServiceType.class); + } + +} 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 new file mode 100644 index 0000000..bc0c5f2 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/entity/ConfigServiceType.java @@ -0,0 +1,84 @@ +package com.nu.modules.servicetype.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 服务类型 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Data +@TableName("nu_config_service_type") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_config_service_type对象", description="服务类型") +public class ConfigServiceType implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**分类标签id*/ + @Excel(name = "分类标签id", width = 15) + @ApiModelProperty(value = "分类标签id") + @Dict(dicCode = "id" , dictTable = "nu_config_service_instruction_tag" , dicText = "instruction_name") + private java.lang.String instructionId; + /**服务类别id*/ + @Excel(name = "服务类别", width = 15) + @ApiModelProperty(value = "服务类别") + @Dict(dicCode = "id" , dictTable = "nu_config_service_category" , dicText = "category_name") + private java.lang.String categoryId; + /**服务类型名称*/ + @Excel(name = "服务类型名称", width = 15) + @ApiModelProperty(value = "服务类型名称") + private java.lang.String typeName; + /**排序*/ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private java.lang.Integer sort; + /**是否启用 0启用 1未启用*/ + @Excel(name = "是否启用", width = 15) + @ApiModelProperty(value = "是否启用") + @Dict(dicCode = "iz_enabled") + private java.lang.String izEnabled; + /**是否删除 0未删除 1删除*/ + @Excel(name = "是否删除", width = 15) + @ApiModelProperty(value = "是否删除") + @TableLogic + private java.lang.String delFlag; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; +} 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 new file mode 100644 index 0000000..d24ee6b --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/ConfigServiceTypeMapper.java @@ -0,0 +1,20 @@ +package com.nu.modules.servicetype.mapper; + +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: 服务类型 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +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 new file mode 100644 index 0000000..3ca2d68 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/mapper/xml/ConfigServiceTypeMapper.xml @@ -0,0 +1,24 @@ + + + + + + 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 new file mode 100644 index 0000000..4cb8d66 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/IConfigServiceTypeService.java @@ -0,0 +1,29 @@ +package com.nu.modules.servicetype.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.servicetype.entity.ConfigServiceType; + +import java.util.List; + +/** + * @Description: 服务类型 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +public interface IConfigServiceTypeService extends IService { + + /** + * 查询数据是否已被使用 + * + * @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 new file mode 100644 index 0000000..e567dd0 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicetype/service/impl/ConfigServiceTypeServiceImpl.java @@ -0,0 +1,65 @@ +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 org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 服务类型 + * @Author: 张明远 + * @Date: 2025-03-13 + * @Version: V1.0 + */ +@Service +public class ConfigServiceTypeServiceImpl extends ServiceImpl implements IConfigServiceTypeService { + + @Autowired + private IConfigServiceDirectiveService configServiceDirectiveService; + + @Override + public boolean isUsed(String ids) { + if (StringUtils.isBlank(ids)) { + return false; + } + boolean result = false; + //是否已被服务指令使用 + LambdaQueryWrapper configServiceDirectiveLambdaQueryWrapper = new LambdaQueryWrapper<>(); + configServiceDirectiveLambdaQueryWrapper.in(ConfigServiceDirective::getTypeId, Arrays.asList(ids.split(","))); + configServiceDirectiveLambdaQueryWrapper.eq(ConfigServiceDirective::getDelFlag, "0"); + List configServiceDirectives = configServiceDirectiveService.list(configServiceDirectiveLambdaQueryWrapper); + if (!(configServiceDirectives == null || configServiceDirectives.isEmpty())) { + result = true; + } + + return result; + } + + @Override + public void removeAll() { + baseMapper.removeAll(); + } + + @Override + @DS("#dataSourceCode") + public List selectAll(String dataSourceCode, List ids, List excludeSubIds) { + return baseMapper.selectAll(ids, excludeSubIds); + } + + @Override + public void insertAll(List categoryList) { + categoryList.forEach(c -> { + baseMapper.insert(c); + }); + } +}