专病路径

This commit is contained in:
zhangheng 2024-03-27 17:43:59 +08:00
parent 521830bb88
commit 5b12ac02cc
8 changed files with 124 additions and 13 deletions

View File

@ -67,7 +67,7 @@ public class SpecialDiseaseNodeController extends BaseController {
@Log(title = "专病路径-管理节点信息", businessType = BusinessType.INSERT) @Log(title = "专病路径-管理节点信息", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
public AjaxResult add(@RequestBody SpecialDiseaseNodeDTO specialDiseaseNode) { public AjaxResult add(@RequestBody SpecialDiseaseNodeDTO specialDiseaseNode) {
return toAjax(specialDiseaseNodeService.insertSpecialDiseaseNode(specialDiseaseNode)); return specialDiseaseNodeService.insertSpecialDiseaseNode(specialDiseaseNode);
} }
/** /**
@ -76,8 +76,8 @@ public class SpecialDiseaseNodeController extends BaseController {
@PreAuthorize("@ss.hasPermi('system:specialDiseaseNode:edit')") @PreAuthorize("@ss.hasPermi('system:specialDiseaseNode:edit')")
@Log(title = "专病路径-管理节点信息", businessType = BusinessType.UPDATE) @Log(title = "专病路径-管理节点信息", businessType = BusinessType.UPDATE)
@PutMapping("/edit") @PutMapping("/edit")
public AjaxResult edit(@RequestBody SpecialDiseaseNode specialDiseaseNode) { public AjaxResult edit(@RequestBody SpecialDiseaseNodeDTO specialDiseaseNode) {
return toAjax(specialDiseaseNodeService.updateSpecialDiseaseNode(specialDiseaseNode)); return specialDiseaseNodeService.updateSpecialDiseaseNode(specialDiseaseNode);
} }
/** /**

View File

@ -1,8 +1,10 @@
package com.xinelu.manage.dto.specialdiseasenode; package com.xinelu.manage.dto.specialdiseasenode;
import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode;
import io.swagger.annotations.ApiModel; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List; import java.util.List;
@ -12,10 +14,13 @@ import java.util.List;
* @author xinelu * @author xinelu
* @date 2024-03-13 * @date 2024-03-13
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
@ApiModel(value = "专病路径-管理节点信息对象", description = "special_disease_node") public class SpecialDiseaseNodeDTO extends SpecialDiseaseRoute {
public class SpecialDiseaseNodeDTO {
List<SpecialDiseaseNode> specialDiseaseNodeList; List<SpecialDiseaseNode> specialDiseaseNodeList;
List<SpecialDiseaseTriggerCondition> triggerConditionList;
} }

View File

@ -61,4 +61,12 @@ public interface SpecialDiseaseNodeMapper {
int deleteSpecialDiseaseNodeByIds(Long[] ids); int deleteSpecialDiseaseNodeByIds(Long[] ids);
int insertSpecialDiseaseNodeList(List<SpecialDiseaseNode> specialDiseaseNodeList); int insertSpecialDiseaseNodeList(List<SpecialDiseaseNode> specialDiseaseNodeList);
/**
* 删除专病路径-管理节点信息
*
* @param routeId 专病路径-管理节点信息主键
* @return 结果
*/
int deleteSpecialDiseaseNodeByRouteId(Long routeId);
} }

View File

@ -66,4 +66,12 @@ public interface SpecialDiseaseTriggerConditionMapper {
* @return 结果 * @return 结果
*/ */
int deleteSpecialDiseaseTriggerConditionByIds(Long[] ids); int deleteSpecialDiseaseTriggerConditionByIds(Long[] ids);
/**
* 删除触发条件关系
*
* @param routeId 触发条件关系主键
* @return 结果
*/
int deleteSpecialDiseaseTriggerConditionByRouteId(Long routeId);
} }

View File

@ -1,5 +1,6 @@
package com.xinelu.manage.service.specialdiseasenode; package com.xinelu.manage.service.specialdiseasenode;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode;
import com.xinelu.manage.dto.specialdiseasenode.SpecialDiseaseNodeDTO; import com.xinelu.manage.dto.specialdiseasenode.SpecialDiseaseNodeDTO;
@ -34,7 +35,7 @@ public interface ISpecialDiseaseNodeService {
* @param specialDiseaseNode 专病路径-管理节点信息 * @param specialDiseaseNode 专病路径-管理节点信息
* @return 结果 * @return 结果
*/ */
int insertSpecialDiseaseNode(SpecialDiseaseNodeDTO specialDiseaseNode); AjaxResult insertSpecialDiseaseNode(SpecialDiseaseNodeDTO specialDiseaseNode);
/** /**
* 修改专病路径-管理节点信息 * 修改专病路径-管理节点信息
@ -42,7 +43,7 @@ public interface ISpecialDiseaseNodeService {
* @param specialDiseaseNode 专病路径-管理节点信息 * @param specialDiseaseNode 专病路径-管理节点信息
* @return 结果 * @return 结果
*/ */
int updateSpecialDiseaseNode(SpecialDiseaseNode specialDiseaseNode); AjaxResult updateSpecialDiseaseNode(SpecialDiseaseNodeDTO specialDiseaseNode);
/** /**
* 批量删除专病路径-管理节点信息 * 批量删除专病路径-管理节点信息

View File

@ -1,11 +1,20 @@
package com.xinelu.manage.service.specialdiseasenode.impl; package com.xinelu.manage.service.specialdiseasenode.impl;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.bean.BeanUtils;
import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode;
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
import com.xinelu.manage.dto.specialdiseasenode.SpecialDiseaseNodeDTO; import com.xinelu.manage.dto.specialdiseasenode.SpecialDiseaseNodeDTO;
import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper; import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper;
import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper;
import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper;
import com.xinelu.manage.service.specialdiseasenode.ISpecialDiseaseNodeService; import com.xinelu.manage.service.specialdiseasenode.ISpecialDiseaseNodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -18,10 +27,16 @@ import java.util.List;
* @author xinelu * @author xinelu
* @date 2024-03-13 * @date 2024-03-13
*/ */
@Slf4j
@Service @Service
public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService { public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService {
@Resource @Resource
private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; private SpecialDiseaseNodeMapper specialDiseaseNodeMapper;
@Resource
private SpecialDiseaseRouteMapper specialDiseaseRouteMapper;
@Resource
private SpecialDiseaseTriggerConditionMapper triggerConditionMapper;
/** /**
* 查询专病路径-管理节点信息 * 查询专病路径-管理节点信息
@ -51,13 +66,36 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
* @param specialDiseaseNode 专病路径-管理节点信息 * @param specialDiseaseNode 专病路径-管理节点信息
* @return 结果 * @return 结果
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public int insertSpecialDiseaseNode(SpecialDiseaseNodeDTO specialDiseaseNode) { public AjaxResult insertSpecialDiseaseNode(SpecialDiseaseNodeDTO specialDiseaseNode) {
SpecialDiseaseRoute specialDiseaseRoute = new SpecialDiseaseRoute();
BeanUtils.copyBeanProp(specialDiseaseRoute, specialDiseaseNode);
specialDiseaseRoute.setCreateTime(LocalDateTime.now());
specialDiseaseRoute.setCreateBy(SecurityUtils.getUsername());
int insertRouteCount = specialDiseaseRouteMapper.insertSpecialDiseaseRoute(specialDiseaseRoute);
if (insertRouteCount < 0) {
throw new ServiceException("新增专病路径管理节点信息失败");
}
for (SpecialDiseaseNode diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) { for (SpecialDiseaseNode diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) {
diseaseNode.setRouteId(specialDiseaseRoute.getId());
diseaseNode.setCreateTime(LocalDateTime.now()); diseaseNode.setCreateTime(LocalDateTime.now());
diseaseNode.setCreateBy(SecurityUtils.getUsername()); diseaseNode.setCreateBy(SecurityUtils.getUsername());
} }
return specialDiseaseNodeMapper.insertSpecialDiseaseNodeList(specialDiseaseNode.getSpecialDiseaseNodeList()); int insertNodeCount = specialDiseaseNodeMapper.insertSpecialDiseaseNodeList(specialDiseaseNode.getSpecialDiseaseNodeList());
if (insertNodeCount < 0) {
throw new ServiceException("新增专病路径管理节点信息失败");
}
for (SpecialDiseaseTriggerCondition triggerCondition : specialDiseaseNode.getTriggerConditionList()) {
triggerCondition.setRouteId(specialDiseaseRoute.getId());
triggerCondition.setCreateTime(LocalDateTime.now());
triggerCondition.setCreateBy(SecurityUtils.getUsername());
}
int insertConditionCount = triggerConditionMapper.insertTriggerConditionList(specialDiseaseNode.getTriggerConditionList());
if (insertConditionCount < 0) {
throw new ServiceException("新增专病路径管理节点信息失败");
}
return AjaxResult.success();
} }
/** /**
@ -66,10 +104,49 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
* @param specialDiseaseNode 专病路径-管理节点信息 * @param specialDiseaseNode 专病路径-管理节点信息
* @return 结果 * @return 结果
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public int updateSpecialDiseaseNode(SpecialDiseaseNode specialDiseaseNode) { public AjaxResult updateSpecialDiseaseNode(SpecialDiseaseNodeDTO specialDiseaseNode) {
specialDiseaseNode.setUpdateTime(LocalDateTime.now()); SpecialDiseaseRoute specialDiseaseRoute = new SpecialDiseaseRoute();
return specialDiseaseNodeMapper.updateSpecialDiseaseNode(specialDiseaseNode); BeanUtils.copyBeanProp(specialDiseaseRoute, specialDiseaseNode);
specialDiseaseRoute.setUpdateTime(LocalDateTime.now());
specialDiseaseRoute.setUpdateBy(SecurityUtils.getUsername());
int updateRouteCount = specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute);
if (updateRouteCount < 0) {
log.info("修改专病路径失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
int deleteCount = specialDiseaseNodeMapper.deleteSpecialDiseaseNodeByRouteId(specialDiseaseNode.getId());
if (deleteCount < 0) {
log.info("删除管理节点信息失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
for (SpecialDiseaseNode diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) {
diseaseNode.setRouteId(specialDiseaseRoute.getId());
diseaseNode.setUpdateTime(LocalDateTime.now());
diseaseNode.setUpdateBy(SecurityUtils.getUsername());
}
int insertNodeCount = specialDiseaseNodeMapper.insertSpecialDiseaseNodeList(specialDiseaseNode.getSpecialDiseaseNodeList());
if (insertNodeCount < 0) {
log.info("新增管理节点信息失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
int deleteConditionCont = triggerConditionMapper.deleteSpecialDiseaseTriggerConditionByRouteId(specialDiseaseRoute.getId());
if (deleteConditionCont < 0) {
log.info("删除触发条件失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
for (SpecialDiseaseTriggerCondition triggerCondition : specialDiseaseNode.getTriggerConditionList()) {
triggerCondition.setRouteId(specialDiseaseRoute.getId());
triggerCondition.setUpdateTime(LocalDateTime.now());
triggerCondition.setUpdateBy(SecurityUtils.getUsername());
}
int insertConditionCount = triggerConditionMapper.insertTriggerConditionList(specialDiseaseNode.getTriggerConditionList());
if (insertConditionCount < 0) {
log.info("新增触发条件信息失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
return AjaxResult.success();
} }
/** /**

View File

@ -662,4 +662,10 @@
) )
</foreach> </foreach>
</insert> </insert>
<delete id="deleteSpecialDiseaseNodeByRouteId">
delete
from special_disease_node
where route_id = #{routeId}
</delete>
</mapper> </mapper>

View File

@ -216,4 +216,10 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<delete id="deleteSpecialDiseaseTriggerConditionByRouteId">
delete
from special_disease_trigger_condition
where route_id = #{routeId}
</delete>
</mapper> </mapper>