diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java index 86f0f013..7d244a1e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java @@ -1,8 +1,27 @@ package com.openhis.web.doctorstation.appservice; +import com.core.common.core.domain.R; +import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto; + /** * 医生站-诊断 应用Service */ public interface IDoctorStationDiagnosisAppService { + /** + * 新增诊断归属绑定 + * + * @param diagnosisBelongBindingDto 诊断归属绑定 + * @return 结果 + */ + R addDiagnosisBelongBinding(DiagnosisBelongBindingDto diagnosisBelongBindingDto); + + /** + * 编辑诊断归属绑定 + * + * @param diagnosisBelongBindingDto 诊断归属绑定 + * @return 结果 + */ + R updateDiagnosisBelongBinding(DiagnosisBelongBindingDto diagnosisBelongBindingDto); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java index d69e3cce..694b12e7 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java @@ -1,8 +1,19 @@ package com.openhis.web.doctorstation.appservice.impl; +import javax.annotation.Resource; + +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.core.common.core.domain.R; +import com.core.common.utils.MessageUtils; +import com.openhis.clinical.domain.DiagnosisBelongBinding; +import com.openhis.clinical.service.IDiagnosisBelongBindingService; +import com.openhis.common.constant.PromptMsgConstant; import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppService; +import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto; +import com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper; /** * 医生站-诊断 应用实现类 @@ -10,4 +21,55 @@ import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppServic @Service public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagnosisAppService { + @Resource + IDiagnosisBelongBindingService iDiagnosisBelongBindingService; + + @Resource + DoctorStationDiagnosisAppMapper doctorStationDiagnosisAppMapper; + + /** + * 新增诊断归属绑定 + * + * @param diagnosisBelongBindingDto 诊断归属绑定 + * @return 结果 + */ + @Override + public R addDiagnosisBelongBinding(DiagnosisBelongBindingDto diagnosisBelongBindingDto) { + DiagnosisBelongBinding diagnosisBelongBinding = new DiagnosisBelongBinding(); + BeanUtils.copyProperties(diagnosisBelongBindingDto, diagnosisBelongBinding); + // 校验是否重复新增 + long count = iDiagnosisBelongBindingService.count(new LambdaQueryWrapper() + .eq(DiagnosisBelongBinding::getObjectId, diagnosisBelongBindingDto.getObjectId()) + .eq(DiagnosisBelongBinding::getDefinitionId, diagnosisBelongBindingDto.getDefinitionId()) + .eq(DiagnosisBelongBinding::getBindingEnum, diagnosisBelongBindingDto.getBindingEnum())); + if (count > 0L) { + return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"绑定关系"})); + } + iDiagnosisBelongBindingService.save(diagnosisBelongBinding); + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"诊断归属绑定关系"})); + } + + /** + * 编辑诊断归属绑定 + * + * @param diagnosisBelongBindingDto 诊断归属绑定 + * @return 结果 + */ + @Override + public R updateDiagnosisBelongBinding(DiagnosisBelongBindingDto diagnosisBelongBindingDto) { + DiagnosisBelongBinding diagnosisBelongBinding = new DiagnosisBelongBinding(); + BeanUtils.copyProperties(diagnosisBelongBindingDto, diagnosisBelongBinding); + // 校验是否重复编辑 + long count = iDiagnosisBelongBindingService.count(new LambdaQueryWrapper() + .eq(DiagnosisBelongBinding::getObjectId, diagnosisBelongBindingDto.getObjectId()) + .eq(DiagnosisBelongBinding::getDefinitionId, diagnosisBelongBindingDto.getDefinitionId()) + .eq(DiagnosisBelongBinding::getBindingEnum, diagnosisBelongBindingDto.getBindingEnum()) + .ne(DiagnosisBelongBinding::getId, diagnosisBelongBindingDto.getId())); + if (count > 0L) { + return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"绑定关系"})); + } + iDiagnosisBelongBindingService.updateById(diagnosisBelongBinding); + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断归属绑定关系"})); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java index fc4322a4..5c39c36e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java @@ -7,12 +7,13 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import com.core.common.core.domain.R; import com.openhis.common.enums.BindingType; +import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppService; +import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto; import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingInitDto; import lombok.AllArgsConstructor; @@ -27,6 +28,8 @@ import lombok.extern.slf4j.Slf4j; @AllArgsConstructor public class DoctorStationDiagnosisController { + private final IDoctorStationDiagnosisAppService iDoctorStationDiagnosisAppService; + /** * 诊断归属绑定基础数据 * @@ -45,7 +48,27 @@ public class DoctorStationDiagnosisController { return R.ok(diagnosisBelongBindingInitDto); } + /** + * 新增诊断归属绑定 + * + * @param diagnosisBelongBindingDto 诊断归属绑定 + * @return 结果 + */ + @PostMapping("/diagnosis-belong-binding") + public R addDiagnosisBelongBinding(@Validated @RequestBody DiagnosisBelongBindingDto diagnosisBelongBindingDto) { + return iDoctorStationDiagnosisAppService.addDiagnosisBelongBinding(diagnosisBelongBindingDto); + } - + /** + * 编辑诊断归属绑定 + * + * @param diagnosisBelongBindingDto 诊断归属绑定 + * @return 结果 + */ + @PutMapping("/diagnosis-belong-binding") + public R + updateDiagnosisBelongBinding(@Validated @RequestBody DiagnosisBelongBindingDto diagnosisBelongBindingDto) { + return iDoctorStationDiagnosisAppService.updateDiagnosisBelongBinding(diagnosisBelongBindingDto); + } } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/DiagnosisBelongBinding.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/DiagnosisBelongBinding.java index 6ff24942..7550ec43 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/DiagnosisBelongBinding.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/DiagnosisBelongBinding.java @@ -18,7 +18,7 @@ import lombok.experimental.Accessors; * @date 2025-02-20 */ @Data -@TableName("diagnosis_belong_binding") +@TableName("cli_diagnosis_belong_binding") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) public class DiagnosisBelongBinding extends HisBaseEntity { diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IDiagnosisBelongBindingService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IDiagnosisBelongBindingService.java index e9ddc3a8..f08f08ae 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IDiagnosisBelongBindingService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IDiagnosisBelongBindingService.java @@ -1,6 +1,7 @@ package com.openhis.clinical.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.core.common.core.domain.R; import com.openhis.clinical.domain.DiagnosisBelongBinding; /** diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/DiagnosisBelongBindingServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/DiagnosisBelongBindingServiceImpl.java index 54773d62..00a25c19 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/DiagnosisBelongBindingServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/DiagnosisBelongBindingServiceImpl.java @@ -1,5 +1,6 @@ package com.openhis.clinical.service.impl; +import com.core.common.core.domain.R; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;