子路径的编辑接口。
This commit is contained in:
parent
ebefc616b7
commit
da19bd6784
@ -3,6 +3,7 @@ package com.xinelu.manage.controller.specialdiseaseroute;
|
||||
import com.xinelu.common.annotation.Log;
|
||||
import com.xinelu.common.core.controller.BaseController;
|
||||
import com.xinelu.common.core.domain.AjaxResult;
|
||||
import com.xinelu.common.core.domain.R;
|
||||
import com.xinelu.common.core.page.TableDataInfo;
|
||||
import com.xinelu.common.custominterface.Insert;
|
||||
import com.xinelu.common.custominterface.Update;
|
||||
@ -10,13 +11,20 @@ import com.xinelu.common.enums.BusinessType;
|
||||
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
|
||||
import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO;
|
||||
import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
|
||||
import java.util.List;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 专病路径信息Controller
|
||||
@ -33,7 +41,6 @@ public class SpecialDiseaseRouteController extends BaseController {
|
||||
/**
|
||||
* 查询专病路径信息列表
|
||||
*/
|
||||
//@PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SpecialDiseaseRouteDTO specialDiseaseRoute) {
|
||||
startPage();
|
||||
@ -44,16 +51,22 @@ public class SpecialDiseaseRouteController extends BaseController {
|
||||
/**
|
||||
* 获取专病路径信息详细信息
|
||||
*/
|
||||
//@PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(specialDiseaseRouteService.selectSpecialDiseaseRouteById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取专病管理路径及子路径信息
|
||||
*/
|
||||
@GetMapping(value = "/getById/{id}")
|
||||
public R<SpecialDiseaseRouteInfoVo> getById(@PathVariable("id") Long id) {
|
||||
return R.ok(specialDiseaseRouteService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增专病路径信息及服务包信息
|
||||
*/
|
||||
//@PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:add')")
|
||||
@Log(title = "专病路径信息", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public AjaxResult add(@RequestBody @Validated(Insert.class) SpecialDiseaseRouteVO specialDiseaseRoute) {
|
||||
|
||||
@ -7,16 +7,23 @@ import com.xinelu.common.core.page.TableDataInfo;
|
||||
import com.xinelu.common.enums.BusinessType;
|
||||
import com.xinelu.common.utils.poi.ExcelUtil;
|
||||
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionDTO;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionSaveDTO;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionUpdateDto;
|
||||
import com.xinelu.manage.service.specialdiseasetriggercondition.ISpecialDiseaseTriggerConditionService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 触发条件关系Controller
|
||||
@ -79,8 +86,8 @@ public class SpecialDiseaseTriggerConditionController extends BaseController {
|
||||
@PreAuthorize("@ss.hasPermi('system:triggerCondition:add')")
|
||||
@Log(title = "触发条件关系", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public AjaxResult add(@RequestBody TriggerConditionDTO triggerConditionList) {
|
||||
return toAjax(specialDiseaseTriggerConditionService.insertSpecialDiseaseTriggerCondition(triggerConditionList));
|
||||
public AjaxResult add(@RequestBody TriggerConditionSaveDTO triggerConditionSaveDTO) {
|
||||
return toAjax(specialDiseaseTriggerConditionService.insertSpecialDiseaseTriggerCondition(triggerConditionSaveDTO));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -89,8 +96,8 @@ public class SpecialDiseaseTriggerConditionController extends BaseController {
|
||||
@PreAuthorize("@ss.hasPermi('system:triggerCondition:edit')")
|
||||
@Log(title = "触发条件关系", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/edit")
|
||||
public AjaxResult edit(@RequestBody SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition) {
|
||||
return toAjax(specialDiseaseTriggerConditionService.updateSpecialDiseaseTriggerCondition(specialDiseaseTriggerCondition));
|
||||
public AjaxResult edit(@RequestBody TriggerConditionUpdateDto triggerConditionUpdateDto) {
|
||||
return toAjax(specialDiseaseTriggerConditionService.updateSpecialDiseaseTriggerCondition(triggerConditionUpdateDto));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -79,6 +79,11 @@ public class SignPatientManageRoute extends BaseEntity {
|
||||
@Excel(name = "路径主键", readConverterExp = "路径主键")
|
||||
private Long routeId;
|
||||
|
||||
/** 父路径id */
|
||||
@ApiModelProperty(value = "父路径id")
|
||||
@Excel(name = "父路径id", readConverterExp = "父路径id")
|
||||
private Long parentRouteId;
|
||||
|
||||
/** 路径名称(任务名称) */
|
||||
@ApiModelProperty(value = "路径名称")
|
||||
@Excel(name = "路径名称", readConverterExp = "任务名称")
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
package com.xinelu.manage.dto.specialdiseasetriggercondition;
|
||||
|
||||
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 触发条件关系DTO
|
||||
*
|
||||
* @author xinelu
|
||||
* @date 2024-03-18
|
||||
*/
|
||||
@Data
|
||||
public class TriggerConditionDTO {
|
||||
|
||||
/**
|
||||
* 触发条件集和
|
||||
*/
|
||||
List<SpecialDiseaseTriggerCondition> triggerConditionList;
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.xinelu.manage.dto.specialdiseasetriggercondition;
|
||||
|
||||
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @description: 触发条件关系DTO
|
||||
* @author: haown
|
||||
* @create: 2024-06-17 16:32
|
||||
**/
|
||||
@Data
|
||||
public class TriggerConditionDto extends SpecialDiseaseTriggerCondition {
|
||||
|
||||
/**
|
||||
* 触发条件运算符,包含:CONTAIN,不包含:NOT_CONTAIN,等于:EQUAL_TO,不等于:NOT_EQUAL_TO
|
||||
*/
|
||||
@ApiModelProperty(value = "触发条件运算符名称,包含:CONTAIN,不包含:NOT_CONTAIN,等于:EQUAL_TO,不等于:NOT_EQUAL_TO")
|
||||
private String triggerConditionOperatorName;
|
||||
|
||||
@ApiModelProperty(value = "and:且、or:或,说明:如果为or,则根据排序同前面条件或运算")
|
||||
private String triggerLogicName;
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.xinelu.manage.dto.specialdiseasetriggercondition;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 触发条件关系DTO
|
||||
*
|
||||
* @author xinelu
|
||||
* @date 2024-03-18
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("触发条件关系DTO")
|
||||
public class TriggerConditionSaveDTO {
|
||||
|
||||
/**
|
||||
* 主路径主键
|
||||
*/
|
||||
@ApiModelProperty("主路径主键")
|
||||
private Long parentRouteId;
|
||||
|
||||
/**
|
||||
* 适用范围,在院:IN_THE_HOSPITAL,出院:DISCHARGE,门诊:OUTPATIENT_SERVICE,门诊+出院:OUTPATIENT_SERVICE_DISCHARGE
|
||||
*/
|
||||
@ApiModelProperty(value = "适用范围,在院:IN_THE_HOSPITAL,出院:DISCHARGE,门诊:OUTPATIENT_SERVICE,门诊+出院:OUTPATIENT_SERVICE_DISCHARGE")
|
||||
private String suitRange;
|
||||
|
||||
|
||||
/**
|
||||
* 触发条件集和
|
||||
*/
|
||||
@ApiModelProperty("触发条件集和")
|
||||
List<TriggerConditionDto> triggerConditionList;
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.xinelu.manage.dto.specialdiseasetriggercondition;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @description: 触发条件修改传输对象
|
||||
* @author: haown
|
||||
* @create: 2024-06-17 17:42
|
||||
**/
|
||||
@ApiModel("触发条件修改传输对象")
|
||||
@Data
|
||||
public class TriggerConditionUpdateDto {
|
||||
|
||||
@ApiModelProperty("子路径主键")
|
||||
private Long routeId;
|
||||
|
||||
@ApiModelProperty("触发条件列表")
|
||||
private List<TriggerConditionDto> triggerConditionList;
|
||||
}
|
||||
@ -3,6 +3,7 @@ package com.xinelu.manage.mapper.specialdiseaseroute;
|
||||
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
|
||||
import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO;
|
||||
import com.xinelu.manage.vo.department.DepartmentVO;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -87,6 +88,19 @@ public interface SpecialDiseaseRouteMapper {
|
||||
*/
|
||||
SpecialDiseaseRouteVO selectSpecialDiseaseRouteAndTriggerById(Long id);
|
||||
|
||||
/**
|
||||
* 查询专病管理路径及子路径信息
|
||||
* @param id 专病路径信息主键
|
||||
* @return 专病管理路径及子路径信息
|
||||
*/
|
||||
SpecialDiseaseRouteInfoVo getRouteAndChild(@Param("id") Long id);
|
||||
|
||||
/**
|
||||
* 查询子路径
|
||||
* @param specialDiseaseRouteId 专病路径信息主键
|
||||
* @return
|
||||
*/
|
||||
List<SpecialDiseaseRouteInfoVo> getChildList(@Param("specialDiseaseRouteId")Long specialDiseaseRouteId);
|
||||
/**
|
||||
* 查询未审核节点状态
|
||||
*
|
||||
|
||||
@ -166,7 +166,7 @@ public class PatientNodeParamsCurrentServiceImpl implements IPatientNodeParamsCu
|
||||
paramsLogList.add(paramsLog);
|
||||
});
|
||||
patientNodeParamsLogMapper.insertList(paramsLogList);
|
||||
// 生成任务
|
||||
// 生成任务---判断是否为主路径,主路径直接生成任务,子路径触发条件成立则生成任务
|
||||
manageRouteNodeService.updateTaskWithParam(paramsList);
|
||||
}
|
||||
}
|
||||
|
||||
@ -537,6 +537,15 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成子路径任务
|
||||
* @param routeId 子路径id
|
||||
* @param routeNodeId 节点id
|
||||
*/
|
||||
private void generateChildRouteTask(Long routeId, Long routeNodeId) {
|
||||
|
||||
}
|
||||
|
||||
private LocalDateTime getExecuteTime(SignPatientManageRouteNode node, PatientVisitRecord patientVisitRecord) {
|
||||
LocalDateTime executeTime = null;
|
||||
|
||||
|
||||
@ -18,10 +18,8 @@ import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRout
|
||||
import com.xinelu.manage.domain.signpatientpackage.SignPatientPackage;
|
||||
import com.xinelu.manage.domain.signpatientpackagehardware.SignPatientPackageHardware;
|
||||
import com.xinelu.manage.domain.signpatientrecord.SignPatientRecord;
|
||||
import com.xinelu.manage.domain.signroutetriggercondition.SignRouteTriggerCondition;
|
||||
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.signpatientmanageroutenode.SignPatientManageRouteNodeDto;
|
||||
import com.xinelu.manage.dto.signpatientpackage.SignPatientPackageSaveDto;
|
||||
import com.xinelu.manage.dto.signpatientrecord.IntentionalSignDto;
|
||||
@ -238,20 +236,20 @@ public class SignPatientRecordServiceImpl implements ISignPatientRecordService {
|
||||
manageRouteNodeMapper.insertBatch(manageNodeList);
|
||||
}
|
||||
// 保存触发条件
|
||||
SpecialDiseaseTriggerCondition triggerConditionQuery = new SpecialDiseaseTriggerCondition();
|
||||
triggerConditionQuery.setRouteId(signPatientManageRoute.getRouteId());
|
||||
List<SpecialDiseaseTriggerCondition> triggerConditions = triggerConditionMapper.selectSpecialDiseaseTriggerConditionList(triggerConditionQuery);
|
||||
if (!CollectionUtils.isEmpty(triggerConditions)) {
|
||||
List<SignRouteTriggerCondition> routeTriggerConditionList = triggerConditions.stream().map(item->{
|
||||
SignRouteTriggerCondition signRouteTriggerCondition = new SignRouteTriggerCondition();
|
||||
BeanUtils.copyBeanProp(signRouteTriggerCondition, item);
|
||||
signRouteTriggerCondition.setPatientManageRouteId(signPatientManageRoute.getId());
|
||||
signRouteTriggerCondition.setRouteName(signPatientManageRoute.getRouteName());
|
||||
signRouteTriggerCondition.setId(null);
|
||||
return signRouteTriggerCondition;
|
||||
}).collect(Collectors.toList());
|
||||
signRouteTriggerConditionMapper.insertBatch(routeTriggerConditionList);
|
||||
}
|
||||
//SpecialDiseaseTriggerCondition triggerConditionQuery = new SpecialDiseaseTriggerCondition();
|
||||
//triggerConditionQuery.setRouteId(signPatientManageRoute.getRouteId());
|
||||
//List<SpecialDiseaseTriggerCondition> triggerConditions = triggerConditionMapper.selectSpecialDiseaseTriggerConditionList(triggerConditionQuery);
|
||||
//if (!CollectionUtils.isEmpty(triggerConditions)) {
|
||||
// List<SignRouteTriggerCondition> routeTriggerConditionList = triggerConditions.stream().map(item->{
|
||||
// SignRouteTriggerCondition signRouteTriggerCondition = new SignRouteTriggerCondition();
|
||||
// BeanUtils.copyBeanProp(signRouteTriggerCondition, item);
|
||||
// signRouteTriggerCondition.setPatientManageRouteId(signPatientManageRoute.getId());
|
||||
// signRouteTriggerCondition.setRouteName(signPatientManageRoute.getRouteName());
|
||||
// signRouteTriggerCondition.setId(null);
|
||||
// return signRouteTriggerCondition;
|
||||
// }).collect(Collectors.toList());
|
||||
// signRouteTriggerConditionMapper.insertBatch(routeTriggerConditionList);
|
||||
//}
|
||||
|
||||
// 保存硬件
|
||||
if (!CollectionUtils.isEmpty(body.getDevices())) {
|
||||
|
||||
@ -3,8 +3,8 @@ package com.xinelu.manage.service.specialdiseaseroute;
|
||||
import com.xinelu.common.core.domain.AjaxResult;
|
||||
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
|
||||
import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -22,6 +22,13 @@ public interface ISpecialDiseaseRouteService {
|
||||
*/
|
||||
SpecialDiseaseRouteVO selectSpecialDiseaseRouteById(Long id);
|
||||
|
||||
/**
|
||||
* 查询专病路径及子路径信息
|
||||
* @param id 专病路径信息主键
|
||||
* @return 专病路径及子路径信息
|
||||
*/
|
||||
SpecialDiseaseRouteInfoVo getById(Long id);
|
||||
|
||||
/**
|
||||
* 查询专病路径信息列表
|
||||
*
|
||||
|
||||
@ -18,6 +18,7 @@ import com.xinelu.manage.mapper.specialdiseaseroutepackage.SpecialDiseaseRoutePa
|
||||
import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper;
|
||||
import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService;
|
||||
import com.xinelu.manage.vo.department.DepartmentVO;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo;
|
||||
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
|
||||
import com.xinelu.manage.vo.specialdiseaseroutepackage.SpecialDiseaseRoutePackageVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@ -66,6 +67,10 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
|
||||
return specialDiseaseRouteMapper.selectSpecialDiseaseRouteAndTriggerById(id);
|
||||
}
|
||||
|
||||
@Override public SpecialDiseaseRouteInfoVo getById(Long id) {
|
||||
return specialDiseaseRouteMapper.getRouteAndChild(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询专病路径信息列表
|
||||
*
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package com.xinelu.manage.service.specialdiseasetriggercondition;
|
||||
|
||||
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionDTO;
|
||||
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionSaveDTO;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionUpdateDto;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -31,18 +31,18 @@ public interface ISpecialDiseaseTriggerConditionService {
|
||||
/**
|
||||
* 新增触发条件关系
|
||||
*
|
||||
* @param triggerConditionList 触发条件关系
|
||||
* @param triggerConditionSaveDTO 触发条件关系
|
||||
* @return 结果
|
||||
*/
|
||||
int insertSpecialDiseaseTriggerCondition(TriggerConditionDTO triggerConditionList);
|
||||
int insertSpecialDiseaseTriggerCondition(TriggerConditionSaveDTO triggerConditionSaveDTO);
|
||||
|
||||
/**
|
||||
* 修改触发条件关系
|
||||
*
|
||||
* @param specialDiseaseTriggerCondition 触发条件关系
|
||||
* @param triggerConditionUpdateDto 触发条件关系
|
||||
* @return 结果
|
||||
*/
|
||||
int updateSpecialDiseaseTriggerCondition(SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition);
|
||||
int updateSpecialDiseaseTriggerCondition(TriggerConditionUpdateDto triggerConditionUpdateDto);
|
||||
|
||||
/**
|
||||
* 批量删除触发条件关系
|
||||
|
||||
@ -1,15 +1,25 @@
|
||||
package com.xinelu.manage.service.specialdiseasetriggercondition.impl;
|
||||
|
||||
import com.xinelu.common.constant.Constants;
|
||||
import com.xinelu.common.exception.ServiceException;
|
||||
import com.xinelu.common.utils.SecurityUtils;
|
||||
import com.xinelu.common.utils.StringUtils;
|
||||
import com.xinelu.common.utils.bean.BeanUtils;
|
||||
import com.xinelu.common.utils.codes.GenerateSystemCodeUtil;
|
||||
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
|
||||
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionDTO;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionDto;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionSaveDTO;
|
||||
import com.xinelu.manage.dto.specialdiseasetriggercondition.TriggerConditionUpdateDto;
|
||||
import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper;
|
||||
import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper;
|
||||
import com.xinelu.manage.service.specialdiseasetriggercondition.ISpecialDiseaseTriggerConditionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
/**
|
||||
@ -22,6 +32,10 @@ import java.util.List;
|
||||
public class SpecialDiseaseTriggerConditionServiceImpl implements ISpecialDiseaseTriggerConditionService {
|
||||
@Resource
|
||||
private SpecialDiseaseTriggerConditionMapper specialDiseaseTriggerConditionMapper;
|
||||
@Resource
|
||||
private SpecialDiseaseRouteMapper specialDiseaseRouteMapper;
|
||||
@Resource
|
||||
private GenerateSystemCodeUtil generateSystemCodeUtil;
|
||||
|
||||
/**
|
||||
* 查询触发条件关系
|
||||
@ -48,27 +62,88 @@ public class SpecialDiseaseTriggerConditionServiceImpl implements ISpecialDiseas
|
||||
/**
|
||||
* 新增触发条件关系
|
||||
*
|
||||
* @param triggerConditionList 触发条件关系
|
||||
* @param triggerConditionSaveDTO 触发条件关系
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertSpecialDiseaseTriggerCondition(TriggerConditionDTO triggerConditionList) {
|
||||
triggerConditionList.getTriggerConditionList().forEach(item -> item.setCreateTime(LocalDateTime.now()));
|
||||
triggerConditionList.getTriggerConditionList().forEach(item -> item.setCreateBy(SecurityUtils.getUsername()));
|
||||
return specialDiseaseTriggerConditionMapper.insertTriggerConditionList(triggerConditionList.getTriggerConditionList());
|
||||
public int insertSpecialDiseaseTriggerCondition(TriggerConditionSaveDTO triggerConditionSaveDTO) {
|
||||
if (triggerConditionSaveDTO.getParentRouteId() == null) {
|
||||
throw new ServiceException("请选择主路径");
|
||||
}
|
||||
if (CollectionUtils.isEmpty(triggerConditionSaveDTO.getTriggerConditionList())) {
|
||||
throw new ServiceException("请选择触发条件");
|
||||
}
|
||||
if (StringUtils.isBlank(triggerConditionSaveDTO.getSuitRange())) {
|
||||
throw new ServiceException("请选择适用范围");
|
||||
}
|
||||
// 保存子路径
|
||||
SpecialDiseaseRoute specialDiseaseRoute = specialDiseaseRouteMapper.selectSpecialDiseaseRouteById(triggerConditionSaveDTO.getParentRouteId());
|
||||
specialDiseaseRoute.setCreateTime(LocalDateTime.now());
|
||||
specialDiseaseRoute.setCreateBy(SecurityUtils.getUsername());
|
||||
specialDiseaseRoute.setRouteCode(Constants.ROUTE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.ROUTE_CODE));
|
||||
specialDiseaseRoute.setId(null);
|
||||
// 根据触发条件拼接子路径路径名称
|
||||
specialDiseaseRoute.setRouteName(getRouteName(triggerConditionSaveDTO.getTriggerConditionList()));
|
||||
specialDiseaseRoute.setSuitRange(triggerConditionSaveDTO.getSuitRange());
|
||||
specialDiseaseRoute.setParentRouteId(triggerConditionSaveDTO.getParentRouteId());
|
||||
int flag = specialDiseaseRouteMapper.insertSpecialDiseaseRoute(specialDiseaseRoute);
|
||||
if (flag > 0) {
|
||||
// 保存触发条件
|
||||
List<SpecialDiseaseTriggerCondition> triggerConditions = new ArrayList<>();
|
||||
triggerConditionSaveDTO.getTriggerConditionList().forEach(item -> {
|
||||
SpecialDiseaseTriggerCondition triggerCondition = new SpecialDiseaseTriggerCondition();
|
||||
BeanUtils.copyBeanProp(triggerCondition, item);
|
||||
|
||||
triggerCondition.setCreateTime(LocalDateTime.now());
|
||||
triggerCondition.setCreateBy(SecurityUtils.getUsername());
|
||||
triggerCondition.setRouteId(specialDiseaseRoute.getId());
|
||||
triggerCondition.setRouteName(specialDiseaseRoute.getRouteName());
|
||||
triggerCondition.setId(null);
|
||||
triggerConditions.add(triggerCondition);
|
||||
});
|
||||
|
||||
specialDiseaseTriggerConditionMapper.insertTriggerConditionList(triggerConditions);
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改触发条件关系
|
||||
*
|
||||
* @param specialDiseaseTriggerCondition 触发条件关系
|
||||
* @param triggerConditionUpdateDto 触发条件关系
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateSpecialDiseaseTriggerCondition(SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition) {
|
||||
public int updateSpecialDiseaseTriggerCondition(TriggerConditionUpdateDto triggerConditionUpdateDto) {
|
||||
// 修改子路径路径名称
|
||||
SpecialDiseaseRoute specialDiseaseRoute = new SpecialDiseaseRoute();
|
||||
specialDiseaseRoute.setId(triggerConditionUpdateDto.getRouteId());
|
||||
specialDiseaseRoute.setRouteName(getRouteName(triggerConditionUpdateDto.getTriggerConditionList()));
|
||||
specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute);
|
||||
|
||||
// 修改触发条件
|
||||
SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition = new SpecialDiseaseTriggerCondition();
|
||||
specialDiseaseTriggerCondition.setRouteId(triggerConditionUpdateDto.getRouteId());
|
||||
List<SpecialDiseaseTriggerCondition> triggerConditionList = specialDiseaseTriggerConditionMapper.selectSpecialDiseaseTriggerConditionList(specialDiseaseTriggerCondition);
|
||||
Long[] ids = triggerConditionList.stream().map(SpecialDiseaseTriggerCondition::getId).toArray(Long[]::new);
|
||||
specialDiseaseTriggerConditionMapper.deleteSpecialDiseaseTriggerConditionByIds(ids);
|
||||
|
||||
List<SpecialDiseaseTriggerCondition> triggerConditions = new ArrayList<>();
|
||||
triggerConditionUpdateDto.getTriggerConditionList().forEach(item -> {
|
||||
SpecialDiseaseTriggerCondition triggerCondition = new SpecialDiseaseTriggerCondition();
|
||||
BeanUtils.copyBeanProp(triggerCondition, item);
|
||||
specialDiseaseTriggerCondition.setCreateTime(LocalDateTime.now());
|
||||
specialDiseaseTriggerCondition.setCreateBy(SecurityUtils.getUsername());
|
||||
specialDiseaseTriggerCondition.setUpdateTime(LocalDateTime.now());
|
||||
specialDiseaseTriggerCondition.setUpdateBy(SecurityUtils.getUsername());
|
||||
return specialDiseaseTriggerConditionMapper.updateSpecialDiseaseTriggerCondition(specialDiseaseTriggerCondition);
|
||||
triggerCondition.setId(null);
|
||||
triggerCondition.setRouteId(triggerConditionUpdateDto.getRouteId());
|
||||
triggerCondition.setRouteName(specialDiseaseRoute.getRouteName());
|
||||
triggerConditions.add(triggerCondition);
|
||||
});
|
||||
|
||||
return specialDiseaseTriggerConditionMapper.insertTriggerConditionList(triggerConditions);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -92,4 +167,21 @@ public class SpecialDiseaseTriggerConditionServiceImpl implements ISpecialDiseas
|
||||
public int deleteSpecialDiseaseTriggerConditionById(Long id) {
|
||||
return specialDiseaseTriggerConditionMapper.deleteSpecialDiseaseTriggerConditionById(id);
|
||||
}
|
||||
|
||||
private String getRouteName(List<TriggerConditionDto> triggerConditionList) {
|
||||
StringBuilder routeName = new StringBuilder();
|
||||
for (int i = 0; i < triggerConditionList.size(); i++) {
|
||||
TriggerConditionDto item = triggerConditionList.get(i);
|
||||
if (i == 0) {
|
||||
routeName.append(item.getTriggerConditionName() + item.getTriggerConditionOperatorName() + item.getTriggerConditionValue());
|
||||
}
|
||||
if (i == 1) {
|
||||
routeName.append("|"+ item.getTriggerConditionName() + item.getTriggerConditionOperatorName() + item.getTriggerConditionValue());
|
||||
}
|
||||
if (i == 2) {
|
||||
routeName.append("(" + item.getTriggerLogicName() + ")" + item.getTriggerConditionName() + item.getTriggerConditionOperatorName() + item.getTriggerConditionValue());
|
||||
}
|
||||
}
|
||||
return routeName.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
package com.xinelu.manage.vo.specialdiseaseroute;
|
||||
|
||||
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
|
||||
import com.xinelu.manage.vo.specialdiseaseroutepackage.SpecialDiseaseRoutePackageVO;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @description: 专病管理路径信息(包含子路径)
|
||||
* @author: haown
|
||||
* @create: 2024-06-14 10:03
|
||||
**/
|
||||
@Data
|
||||
public class SpecialDiseaseRouteInfoVo extends SpecialDiseaseRoute {
|
||||
|
||||
/**
|
||||
* 专病路径信息
|
||||
*/
|
||||
private Long specialDiseaseRouteId;
|
||||
|
||||
/**
|
||||
* 总数
|
||||
*/
|
||||
private Long totalNumber;
|
||||
|
||||
/**
|
||||
* 进度
|
||||
*/
|
||||
private Long agreeNumber;
|
||||
|
||||
/**
|
||||
* 发布状态
|
||||
*/
|
||||
private String releaseStatus;
|
||||
|
||||
/**
|
||||
* 子路径列表
|
||||
*/
|
||||
List<SpecialDiseaseRouteInfoVo> childrenRouteList;
|
||||
|
||||
List<SpecialDiseaseRoutePackageVO> routePackageList;
|
||||
}
|
||||
@ -16,6 +16,7 @@
|
||||
<result property="diseaseTypeId" column="disease_type_id"/>
|
||||
<result property="diseaseTypeName" column="disease_type_name"/>
|
||||
<result property="routeId" column="route_id"/>
|
||||
<result property="parentRouteId" column="parent_route_id"/>
|
||||
<result property="routeName" column="route_name"/>
|
||||
<result property="taskCreateType" column="task_create_type"/>
|
||||
<result property="version" column="version"/>
|
||||
@ -42,6 +43,7 @@
|
||||
<result property="diseaseTypeId" column="disease_type_id"/>
|
||||
<result property="diseaseTypeName" column="disease_type_name"/>
|
||||
<result property="routeId" column="route_id"/>
|
||||
<result property="parentRouteId" column="parent_route_id"/>
|
||||
<result property="routeName" column="route_name"/>
|
||||
<result property="taskCreateType" column="task_create_type"/>
|
||||
<result property="version" column="version"/>
|
||||
@ -129,7 +131,7 @@
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSignPatientManageRouteVo">
|
||||
select id, sign_patient_record_id, patient_id, patient_name, department_id, department_name, service_package_id, package_name, disease_type_id, disease_type_name, route_id, route_name, task_create_type, version, route_classify, suit_range, route_sort, route_remark, create_by, create_time, update_by, update_time from sign_patient_manage_route
|
||||
select id, sign_patient_record_id, patient_id, patient_name, department_id, department_name, service_package_id, package_name, disease_type_id, disease_type_name, route_id, parent_route_id, route_name, task_create_type, version, route_classify, suit_range, route_sort, route_remark, create_by, create_time, update_by, update_time from sign_patient_manage_route
|
||||
</sql>
|
||||
|
||||
<select id="selectSignPatientManageRouteList" parameterType="com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute" resultMap="SignPatientManageRouteResult">
|
||||
@ -162,6 +164,12 @@
|
||||
<if test="diseaseTypeName != null and diseaseTypeName != ''">
|
||||
and disease_type_name like concat('%', #{diseaseTypeName}, '%')
|
||||
</if>
|
||||
<if test="parentRouteId == null">
|
||||
and parent_route_id = 0
|
||||
</if>
|
||||
<if test="parentRouteId != null ">
|
||||
and parent_route_id = #{parentRouteId}
|
||||
</if>
|
||||
<if test="routeName != null and routeName != ''">
|
||||
and route_name like concat('%', #{routeName}, '%')
|
||||
</if>
|
||||
@ -468,6 +476,8 @@
|
||||
</if>
|
||||
<if test="routeId != null">route_id,
|
||||
</if>
|
||||
<if test="parentRouteId != null">parent_route_id,
|
||||
</if>
|
||||
<if test="routeName != null">route_name,
|
||||
</if>
|
||||
<if test="taskCreateType != null">task_create_type,
|
||||
@ -512,6 +522,8 @@
|
||||
</if>
|
||||
<if test="routeId != null">#{routeId},
|
||||
</if>
|
||||
<if test="parentRouteId != null">#{parentRouteId},
|
||||
</if>
|
||||
<if test="routeName != null">#{routeName},
|
||||
</if>
|
||||
<if test="taskCreateType != null">#{taskCreateType},
|
||||
@ -570,6 +582,9 @@
|
||||
<if test="routeId != null">route_id =
|
||||
#{routeId},
|
||||
</if>
|
||||
<if test="parentRouteId != null">parent_route_id =
|
||||
#{parentRouteId},
|
||||
</if>
|
||||
<if test="routeName != null">route_name =
|
||||
#{routeName},
|
||||
</if>
|
||||
|
||||
@ -46,6 +46,31 @@
|
||||
<collection property="routePackageList" javaType="java.util.List"
|
||||
resultMap="SpecialDiseaseRoutePackageResult"/>
|
||||
</resultMap>
|
||||
<resultMap type="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo" id="SpecialDiseaseRouteInfoVOResult">
|
||||
<result property="specialDiseaseRouteId" column="specialDiseaseRouteId"/>
|
||||
<result property="departmentId" column="department_id"/>
|
||||
<result property="departmentName" column="department_name"/>
|
||||
<result property="diseaseTypeId" column="disease_type_id"/>
|
||||
<result property="diseaseTypeName" column="disease_type_name"/>
|
||||
<result property="routeName" column="route_name"/>
|
||||
<result property="routeCode" column="route_code"/>
|
||||
<result property="version" column="version"/>
|
||||
<result property="routeClassify" column="route_classify"/>
|
||||
<result property="releaseStatus" column="release_status"/>
|
||||
<result property="suitRange" column="suit_range"/>
|
||||
<result property="routeSort" column="route_sort"/>
|
||||
<result property="agreeNumber" column="agreeNumber"/>
|
||||
<result property="totalNumber" column="totalNumber"/>
|
||||
<collection
|
||||
property="childrenRouteList"
|
||||
ofType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo"
|
||||
column="specialDiseaseRouteId"
|
||||
select="getChildList"
|
||||
/>
|
||||
<collection property="routePackageList" javaType="java.util.List"
|
||||
resultMap="SpecialDiseaseRoutePackageResult"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.xinelu.manage.vo.specialdiseasetriggercondition.TriggerConditionVO"
|
||||
id="SpecialDiseaseTriggerConditionResult">
|
||||
<result property="triggerConditionId" column="triggerConditionId"/>
|
||||
@ -175,6 +200,12 @@
|
||||
<if test="diseaseTypeName != null and diseaseTypeName != ''">
|
||||
and sdr.disease_type_name like concat('%', #{diseaseTypeName}, '%')
|
||||
</if>
|
||||
<if test="parentRouteId == null">
|
||||
and sdr.parent_route_id = 0
|
||||
</if>
|
||||
<if test="parentRouteId != null">
|
||||
and sdr.parent_route_id = #{parentRouteId}
|
||||
</if>
|
||||
<if test="routeName != null and routeName != ''">
|
||||
and sdr.route_name like concat('%', #{routeName}, '%')
|
||||
</if>
|
||||
@ -425,6 +456,74 @@
|
||||
where sdr.id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="getRouteAndChild" resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo"
|
||||
resultMap="SpecialDiseaseRouteInfoVOResult">
|
||||
select sdr.id,
|
||||
sdr.id specialDiseaseRouteId,
|
||||
sdr.parent_route_id,
|
||||
sdr.department_id,
|
||||
sdr.department_name,
|
||||
sdr.disease_type_id,
|
||||
sdr.disease_type_name,
|
||||
sdr.route_name,
|
||||
sdr.route_code,
|
||||
sdr.version,
|
||||
sdr.route_classify,
|
||||
sdr.release_status,
|
||||
sdr.suit_range,
|
||||
sdr.route_sort,
|
||||
sdr.route_remark,
|
||||
sdrp.id specialDiseaseRoutePackageId,
|
||||
sdrp.route_id,
|
||||
sdrp.service_package_id,
|
||||
sdrp.route_name,
|
||||
sdrp.package_name,
|
||||
(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_route_package sdrp ON sdr.id = sdrp.route_id
|
||||
<where>
|
||||
<if test="id != null">
|
||||
and sdr.id = #{id}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getChildList" resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo" resultMap="SpecialDiseaseRouteInfoVOResult">
|
||||
select
|
||||
sdr.id,
|
||||
sdr.id specialDiseaseRouteId,
|
||||
sdr.parent_route_id,
|
||||
sdr.department_id,
|
||||
sdr.department_name,
|
||||
sdr.disease_type_id,
|
||||
sdr.disease_type_name,
|
||||
sdr.route_name,
|
||||
sdr.route_code,
|
||||
sdr.version,
|
||||
sdr.route_classify,
|
||||
sdr.release_status,
|
||||
sdr.suit_range,
|
||||
sdr.route_sort,
|
||||
sdr.route_remark,
|
||||
(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
|
||||
<where>
|
||||
sdr.parent_route_id = #{specialDiseaseRouteId}
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectRouteCheckStatus" resultType="java.lang.String">
|
||||
select route_check_status
|
||||
from special_disease_node
|
||||
|
||||
Loading…
Reference in New Issue
Block a user