Merge branch '3.11_院后第二增量' of http:///182.92.166.109:3000/jihan/PostDischargePatientManage into 3.11_院后第二增量

This commit is contained in:
youxilong 2024-04-08 17:53:31 +08:00
commit d7f8879138
13 changed files with 219 additions and 22 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

@ -1,19 +1,28 @@
package com.xinelu.common.enums;
import lombok.Getter;
/**
* 节点审核状态枚举类
*
* @author haown
* @date 2024-04-01
*/
@Getter
public enum RouteCheckStatusEnum {
/**
* 同意
*/
AGREE,
/**
* 同意
*/
AGREE("AGREE"),
/**
* 不同意
*/
DISAGREE
/**
* 不同意
*/
DISAGREE("DISAGREE"),
;
final private String info;
RouteCheckStatusEnum(String info) {
this.info = info;
}
}

View File

@ -101,4 +101,15 @@ public class SpecialDiseaseNodeController extends BaseController {
}
return specialDiseaseNodeService.selectSpecialDisease(specialDiseaseRouteId);
}
/**
* 修改节点信息状态
*/
@PostMapping("/updateRouteCheckStatus")
public AjaxResult updateRouteCheckStatus(@RequestBody SpecialDiseaseNode specialDiseaseNode) {
if (Objects.isNull(specialDiseaseNode)) {
return AjaxResult.error("请选择需要修改的节点信息!");
}
return specialDiseaseNodeService.updateRouteCheckStatus(specialDiseaseNode);
}
}

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

@ -68,4 +68,12 @@ public interface ISpecialDiseaseNodeService {
* @return AjaxResult
*/
AjaxResult selectSpecialDisease(Long specialDiseaseRouteId);
/**
* 修改节点信息状态
*
* @param specialDiseaseNode 节点信息
* @return AjaxResult
*/
AjaxResult updateRouteCheckStatus(SpecialDiseaseNode specialDiseaseNode);
}

View File

@ -8,8 +8,8 @@ import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode;
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
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.vo.specialdiseasenode.SpecialDiseaseNodeVO;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -18,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业务层处理
@ -32,8 +33,6 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
private SpecialDiseaseNodeMapper specialDiseaseNodeMapper;
@Resource
private SpecialDiseaseRouteMapper specialDiseaseRouteMapper;
@Resource
private SpecialDiseaseTriggerConditionMapper triggerConditionMapper;
/**
@ -111,7 +110,7 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
log.info("删除管理节点信息失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
for (SpecialDiseaseNode diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) {
for (SpecialDiseaseNodeVO diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) {
diseaseNode.setRouteId(specialDiseaseRoute.getId());
diseaseNode.setRouteName(specialDiseaseNode.getRouteName());
diseaseNode.setUpdateTime(LocalDateTime.now());
@ -157,4 +156,19 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
public AjaxResult selectSpecialDisease(Long specialDiseaseRouteId) {
return AjaxResult.success(specialDiseaseNodeMapper.selectSpecialDiseaseByRouteId(specialDiseaseRouteId));
}
/**
* 修改节点信息状态
*
* @param specialDiseaseNode 节点信息
* @return AjaxResult
*/
@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

@ -15,6 +15,9 @@ import lombok.EqualsAndHashCode;
@Data
public class SpecialDiseaseNodeVO extends SpecialDiseaseNode {
@ApiModelProperty(value = "专病路径表id")
private Long SpecialDiseaseNodeId;
private Long specialDiseaseNodeId;
private String taskTypeName;
private String taskSubdivisionName;
}

View File

@ -18,8 +18,10 @@
<result property="suitRange" column="suit_range"/>
<result property="routeSort" column="route_sort"/>
<result property="routeRemark" column="route_remark"/>
<result property="totalNumber" column="totalNumber"/>
<result property="agreeNumber" column="agreeNumber"/>
<collection property="specialDiseaseNodeList" javaType="java.util.List"
resultMap="SpecialDiseaseNodeResult"/>
resultMap="SpecialDiseaseNodeVOResult"/>
</resultMap>
<resultMap type="SpecialDiseaseNode" id="SpecialDiseaseNodeResult">
@ -64,12 +66,60 @@
<result property="routeCheckPerson" column="route_check_person"/>
<result property="routeCheckDate" column="route_check_date"/>
<result property="routeCheckRemark" column="route_check_remark"/>
<result property="nodeContent" column="node_content"/>
<result property="nodeContent" column="node_content"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<resultMap type="com.xinelu.manage.vo.specialdiseasenode.SpecialDiseaseNodeVO" id="SpecialDiseaseNodeVOResult">
<result property="specialDiseaseNodeId" column="specialDiseaseNodeId"/>
<result property="routeId" column="route_id"/>
<result property="routeName" column="route_name"/>
<result property="routeNodeName" column="route_node_name"/>
<result property="routeNodeDay" column="route_node_day"/>
<result property="taskType" column="task_type"/>
<result property="taskSubdivision" column="task_subdivision"/>
<result property="taskType" column="taskSubdivisionName"/>
<result property="taskSubdivision" column="taskSubdivisionName"/>
<result property="taskStatus" column="task_status"/>
<result property="secondClassifyDescribe" column="second_classify_describe"/>
<result property="executionTime" column="execution_time"/>
<result property="templateId" column="template_id"/>
<result property="templateName" column="template_name"/>
<result property="templateType" column="template_type"/>
<result property="messagePushSign" column="message_push_sign"/>
<result property="messageTemplateId" column="message_template__id"/>
<result property="messageTemplateName" column="message_template_name"/>
<result property="messagePreview" column="message_preview"/>
<result property="messageNodeContent" column="message_node_content"/>
<result property="officialPushSign" column="official_push_sign"/>
<result property="officialTemplateId" column="official_template_id"/>
<result property="officialTemplateName" column="official_template_name"/>
<result property="officialRemindContent" column="official_remind_content"/>
<result property="officialNodeContent" column="official_node_content"/>
<result property="appletPushSign" column="applet_push_sign"/>
<result property="appletTemplateId" column="applet_template_id"/>
<result property="appletTemplateName" column="applet_template_name"/>
<result property="appletRemindContent" column="applet_remind_content"/>
<result property="appletPromptDescription" column="applet_prompt_description"/>
<result property="appletNodeContent" column="applet_node_content"/>
<result property="phonePushSign" column="phone_push_sign"/>
<result property="phoneTemplateId" column="phone_template_id"/>
<result property="phoneTemplateName" column="phone_template_name"/>
<result property="phoneMessageRemind" column="phone_message_remind"/>
<result property="phoneMessageTemplateId" column="phone_message_template_id"/>
<result property="phoneMessageTemplateName" column="phone_message_template_name"/>
<result property="phoneAgencyName" column="phone_agency_name"/>
<result property="phoneNodeContent" column="phone_node_content"/>
<result property="routeCheckStatus" column="route_check_status"/>
<result property="routeCheckPerson" column="route_check_person"/>
<result property="routeCheckDate" column="route_check_date"/>
<result property="routeCheckRemark" column="route_check_remark"/>
<result property="nodeContent" column="node_content"/>
</resultMap>
<sql id="selectSpecialDiseaseNodeVo">
select id,
route_id,
@ -701,9 +751,9 @@
</delete>
<select id="selectSpecialDiseaseByRouteId"
resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO"
resultMap="SpecialDiseaseRouteResult">
select sdr.id specialDiseaseRouteId,
select sdr.id specialDiseaseRouteId,
sdr.department_id,
sdr.department_name,
sdr.disease_type_id,
@ -714,13 +764,15 @@
sdr.route_classify,
sdr.release_status,
sdr.suit_range,
sdn.id specialDiseaseNodeId,
sdn.id as specialDiseaseNodeId,
sdn.route_id,
sdn.route_name,
sdn.route_node_name,
sdn.route_node_day,
sdn.task_type,
sdn.task_subdivision,
sdn.task_type taskTypeName,
sdn.task_subdivision taskSubdivisionName,
sdn.task_status,
sdn.second_classify_describe,
sdn.execution_time,
@ -755,7 +807,14 @@
sdn.route_check_person,
sdn.route_check_date,
sdn.route_check_remark,
sdn.node_content
sdn.node_content,
(select COUNT(1)
from special_disease_node
where route_id = specialDiseaseRouteId) totalNumber,
(select COUNT(1)
from special_disease_node
where route_id = specialDiseaseRouteId
and route_check_status = 'AGREE') agreeNumber
from special_disease_route sdr
left join special_disease_node sdn ON sdn.route_id = sdr.id
where sdr.id = #{specialDiseaseRouteId}

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>