专病路径

This commit is contained in:
zhangheng 2024-04-08 17:45:23 +08:00
parent 57a73624f2
commit 9166a28735
8 changed files with 100 additions and 4 deletions

View File

@ -0,0 +1,34 @@
package com.xinelu.common.enums;
import lombok.Getter;
/**
* 发布状态枚举类
*
* @author haown
* @date 2024-04-08
*/
@Getter
public enum ReleaseStatusEnum {
/**
* 同意
*/
PUBLISHED("PUBLISHED"),
/**
* 不同意
*/
UNPUBLISHED("UNPUBLISHED"),
/**
* 不同意
*/
ALL("ALL"),
;
final private String info;
ReleaseStatusEnum(String info) {
this.info = info;
}
}

View File

@ -83,4 +83,12 @@ public class SpecialDiseaseRouteController extends BaseController {
public AjaxResult departmentRouteCount(String departmentName) {
return specialDiseaseRouteService.departmentRouteCount(departmentName);
}
/**
* 发布专病路径信息
*/
@PostMapping("/editReleaseStatus")
public AjaxResult editReleaseStatus(@RequestBody SpecialDiseaseRoute specialDiseaseRoute) {
return specialDiseaseRouteService.editReleaseStatus(specialDiseaseRoute);
}
}

View File

@ -12,8 +12,8 @@ import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
/**
* 专病路径-管理节点信息对象 special_disease_node
@ -307,7 +307,7 @@ public class SpecialDiseaseNode extends BaseEntity {
@ApiModelProperty(value = "节点审核时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "节点审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date routeCheckDate;
private LocalDateTime routeCheckDate;
/**
* 节点审核备注信息存储审核备注信息以及审核不通过原因等信息

View File

@ -3,6 +3,7 @@ package com.xinelu.manage.mapper.specialdiseaseroute;
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
import com.xinelu.manage.vo.department.DepartmentVO;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -84,4 +85,13 @@ public interface SpecialDiseaseRouteMapper {
* @return 专病路径信息
*/
SpecialDiseaseRouteVO selectSpecialDiseaseRouteAndTriggerById(Long id);
/**
* 查询未审核节点状态
*
* @param routeId 路径信息
* @param routeCheckStatus 节点状态
* @return int
*/
int selectRouteCheckStatus(@Param("routeId") Long routeId, @Param("routeCheckStatus") String routeCheckStatus);
}

View File

@ -1,7 +1,6 @@
package com.xinelu.manage.service.specialdiseasenode.impl;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.RouteCheckStatusEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.bean.BeanUtils;
@ -19,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
* 专病路径-管理节点信息Service业务层处理
@ -115,7 +115,6 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
diseaseNode.setRouteName(specialDiseaseNode.getRouteName());
diseaseNode.setUpdateTime(LocalDateTime.now());
diseaseNode.setUpdateBy(SecurityUtils.getUsername());
diseaseNode.setRouteCheckStatus(RouteCheckStatusEnum.DISAGREE.getInfo());
}
int insertNodeCount = specialDiseaseNodeMapper.insertSpecialDiseaseNodeList(specialDiseaseNode.getSpecialDiseaseNodeList());
if (insertNodeCount < 0) {
@ -166,6 +165,10 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
*/
@Override
public AjaxResult updateRouteCheckStatus(SpecialDiseaseNode specialDiseaseNode) {
if (Objects.isNull(specialDiseaseNode) || Objects.isNull(specialDiseaseNode.getId())) {
return AjaxResult.error("请选择需要审核的信息!");
}
specialDiseaseNode.setRouteCheckDate(LocalDateTime.now());
return AjaxResult.success(specialDiseaseNodeMapper.updateSpecialDiseaseNode(specialDiseaseNode));
}
}

View File

@ -68,4 +68,12 @@ public interface ISpecialDiseaseRouteService {
* @return AjaxResult
*/
AjaxResult departmentRouteCount(String departmentName);
/**
* 专病路径发布
*
* @param specialDiseaseRoute 路径信息
* @return AjaxResult
*/
AjaxResult editReleaseStatus(SpecialDiseaseRoute specialDiseaseRoute);
}

View File

@ -2,6 +2,8 @@ package com.xinelu.manage.service.specialdiseaseroute.impl;
import com.xinelu.common.constant.Constants;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.ReleaseStatusEnum;
import com.xinelu.common.enums.RouteCheckStatusEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.codes.GenerateSystemCodeUtil;
@ -13,6 +15,7 @@ import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService
import com.xinelu.manage.vo.department.DepartmentVO;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -20,6 +23,7 @@ import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 专病路径信息Service业务层处理
@ -144,4 +148,26 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
}
return AjaxResult.success(department);
}
/**
* 专病路径发布
*
* @param specialDiseaseRoute 路径信息
* @return AjaxResult
*/
@Override
public AjaxResult editReleaseStatus(SpecialDiseaseRoute specialDiseaseRoute) {
if (Objects.isNull(specialDiseaseRoute) || StringUtils.isBlank(specialDiseaseRoute.getReleaseStatus())) {
return AjaxResult.error("请选择需要发布专病路径的信息!");
}
if (ReleaseStatusEnum.PUBLISHED.getInfo().equals(specialDiseaseRoute.getReleaseStatus())) {
int count = specialDiseaseRouteMapper.selectRouteCheckStatus(specialDiseaseRoute.getId(), RouteCheckStatusEnum.AGREE.getInfo());
if (count > 0) {
return AjaxResult.error("该路径存在未审核的节点,请全部审核后发布!");
}
}
specialDiseaseRoute.setUpdateTime(LocalDateTime.now());
specialDiseaseRoute.setUpdateBy(SecurityUtils.getUsername());
return AjaxResult.success(specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute));
}
}

View File

@ -385,4 +385,11 @@
LEFT JOIN special_disease_trigger_condition sdtc ON sdr.id = sdtc.route_id
where sdr.id = #{id}
</select>
<select id="selectRouteCheckStatus" resultType="java.lang.Integer">
select COUNT(1)
from special_disease_node
where route_id = #{routeId}
and route_check_status != #{routeCheckStatus}
</select>
</mapper>