diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/constant/DisposalPlanEnum.java b/virtual-patient-manage/src/main/java/com/supervision/manage/constant/DisposalPlanEnum.java new file mode 100644 index 00000000..9646000a --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/constant/DisposalPlanEnum.java @@ -0,0 +1,42 @@ +package com.supervision.manage.constant; + +import cn.hutool.core.util.StrUtil; +import lombok.Getter; + +/** + * 处置计划枚举 + */ +@Getter +public enum DisposalPlanEnum { + + PROTECTION("1", "护理"), + ACTIVITY_STRENGTH("2", "活动强度"), + ADVENTURE("3", "宣教"), + NUTRITION("4", "饮食"), + PSYCHOLOGICAL_CONSULTATION("5", "心理咨询"), + SPECIAL_DISPOSAL("6", "特殊处置"), + COMMUNITY_RESOURCE("7", "社区资源"), + MEDICINE("8", "药物"), + CLINIC_VISIT("9", "会诊"), + FOLLOW_VISIT("10", "随诊"); + + private String code; + private String name; + + DisposalPlanEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static boolean containsCode(String code){ + if (StrUtil.isEmpty(code)){ + return false; + } + for(DisposalPlanEnum disposalPlanEnum : DisposalPlanEnum.values()){ + if(disposalPlanEnum.getCode().equals(code)){ + return true; + } + } + return false; + } +} diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/TreatmentPlanManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/TreatmentPlanManageController.java index 67767136..ad491010 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/TreatmentPlanManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/TreatmentPlanManageController.java @@ -2,16 +2,14 @@ package com.supervision.manage.controller.config; import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.manage.service.ConfigTreatmentPlanManageService; +import com.supervision.model.ConfigDrug; import com.supervision.vo.manage.TreatmentPlanTreeNode; import com.supervision.model.ConfigTreatmentPlan; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -46,12 +44,33 @@ public class TreatmentPlanManageController { public IPage queryPageList(@RequestParam(defaultValue = "1")Integer pageNum, @RequestParam(defaultValue = "10")Integer pageSize, @ApiParam("处置方式(0门诊 1住院)") - @RequestParam(required = false) String disposalMethod) { + @RequestParam(required = false) Integer disposalMethod) { return configTreatmentPlanManageService.queryPageList(pageNum, pageSize, disposalMethod); } + @ApiOperation("保存处置计划") + @PostMapping("/save") + public String saveTreatmentPlan(@RequestBody ConfigTreatmentPlan configDrug) { + + ConfigTreatmentPlan result = configTreatmentPlanManageService.saveTreatmentPlan(configDrug); + return result.getId(); + } + + @ApiOperation("删除处置计划") + @DeleteMapping("/delete") + public boolean deleteTreatmentPlan(@RequestParam("id") String id) { + + return configTreatmentPlanManageService.deleteTreatmentPlan(id); + } + + @ApiOperation("修改处置计划") + @PutMapping("/update") + public boolean updateTreatmentPlan(@RequestBody ConfigTreatmentPlan configDrug) { + + return configTreatmentPlanManageService.updateTreatmentPlan(configDrug); + } } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java index e5b55496..992aee5f 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java @@ -12,5 +12,11 @@ public interface ConfigTreatmentPlanManageService { ConfigTreatmentPlan findById(String id); - IPage queryPageList(Integer pageNum, Integer pageSize, String disposalMethod); + IPage queryPageList(Integer pageNum, Integer pageSize, Integer disposalMethod); + + ConfigTreatmentPlan saveTreatmentPlan(ConfigTreatmentPlan configDrug); + + boolean deleteTreatmentPlan(String id); + + boolean updateTreatmentPlan(ConfigTreatmentPlan configDrug); } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java index 4efbf79e..824fdaaa 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.supervision.manage.constant.DisposalPlanEnum; import com.supervision.manage.service.ConfigTreatmentPlanManageService; import com.supervision.model.ConfigTreatmentPlan; import com.supervision.service.ConfigTreatmentPlanService; @@ -37,11 +38,57 @@ public class ConfigTreatmentPlanManageServiceImpl implements ConfigTreatmentPlan } @Override - public IPage queryPageList(Integer pageNum, Integer pageSize, String disposalMethod) { + public IPage queryPageList(Integer pageNum, Integer pageSize, Integer disposalMethod) { LambdaQueryChainWrapper wrapper = configTreatmentPlanService.lambdaQuery() - .eq(StrUtil.isNotBlank(disposalMethod), ConfigTreatmentPlan::getDisposalMethod, disposalMethod); + .eq(Objects.nonNull(disposalMethod), ConfigTreatmentPlan::getDisposalMethod, disposalMethod) + .orderByAsc(ConfigTreatmentPlan::getCreateTime); - return configTreatmentPlanService.page(new Page<>(pageNum, pageSize), wrapper); + return configTreatmentPlanService.page(new Page<>(pageNum, pageSize), wrapper.getWrapper()); + } + + @Override + public ConfigTreatmentPlan saveTreatmentPlan(ConfigTreatmentPlan treatmentPlan) { + + saveAssert(treatmentPlan); + + configTreatmentPlanService.save(treatmentPlan); + + return treatmentPlan; + } + + @Override + public boolean deleteTreatmentPlan(String id) { + + Assert.notEmpty(id,"id 不允许为空"); + + return configTreatmentPlanService.removeById(id); + } + + @Override + public boolean updateTreatmentPlan(ConfigTreatmentPlan configDrug) { + + Assert.notEmpty(configDrug.getId(),"id 不允许为空"); + + return configTreatmentPlanService.updateById(configDrug); + } + + public void saveAssert(ConfigTreatmentPlan configDrug){ + Assert.isNull(configDrug.getId(),"id 不为空"); + Assert.notNull(configDrug.getDisposalMethod(),"处置方式不允许为空"); + Assert.isTrue(configDrug.getDisposalMethod()==0 || configDrug.getDisposalMethod()==1,"处置方式不正确"); + + Assert.isTrue(DisposalPlanEnum.containsCode(configDrug.getDisposalPlanId()),"处置计划不正确"); + + Assert.notEmpty(configDrug.getFirstMeasures(),"一级措施不允许为空"); + + //如果一级措施id为空,则判断一级措施是否已经存在,如果存在,则抛出异常 + if(StrUtil.isBlank(configDrug.getFirstMeasuresId())){ + Integer count = configTreatmentPlanService.lambdaQuery() + .eq(ConfigTreatmentPlan::getDisposalMethod, configDrug.getDisposalMethod()) + .eq(ConfigTreatmentPlan::getDisposalPlanId, configDrug.getDisposalPlanId()) + .eq(ConfigTreatmentPlan::getFirstMeasures, configDrug.getFirstMeasures()).count(); + Assert.isFalse(count>0,"一级措施已经存在"); + } } } diff --git a/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java b/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java index 07961719..e66b1f14 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java @@ -27,6 +27,9 @@ public class ConfigTreatmentPlan implements Serializable { @ApiModelProperty("处置计划id") private String disposalPlanId; + /** + * 处置计划: @see com.supervision.manage.constant.DisposalPlanEnum + */ @ApiModelProperty("处置计划") private String disposalPlan;