From e961cd5ae5d4a5ca30276df5da8b0dfb3bb20a96 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Mon, 12 Aug 2024 14:16:20 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=85=8B=E9=9A=86=E5=8F=8A=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BB=A3=E5=8A=9E=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpecialDiseaseRouteController.java | 21 +++---- .../SpecialDiseaseNodeMapper.java | 10 ++++ .../SpecialDiseaseRouteMapper.java | 25 ++++++-- .../SignPatientManageRouteServiceImpl.java | 8 ++- .../ISpecialDiseaseRouteService.java | 8 +++ .../impl/SpecialDiseaseRouteServiceImpl.java | 38 +++++++----- .../OriginalSpecialDiseaseRoute.java | 18 ++++++ .../SpecialDiseaseNodeMapper.xml | 52 ++++++++++++++++ .../SpecialDiseaseRouteMapper.xml | 60 +++++++++++++++++++ 9 files changed, 207 insertions(+), 33 deletions(-) create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/specialdiseaseroute/OriginalSpecialDiseaseRoute.java diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java index e4748298..3f25ee73 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java @@ -16,18 +16,12 @@ import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteAuditVo; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import io.swagger.annotations.ApiOperation; -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.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; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; /** * 专病路径信息Controller @@ -137,4 +131,11 @@ public class SpecialDiseaseRouteController extends BaseController { return R.ok(specialDiseaseRouteService.getRouteNodeInfo(id)); } + /** + * 克隆 + */ + @PostMapping("/cloneRoute") + public AjaxResult cloneRoute(Long id) { + return specialDiseaseRouteService.cloneRoute(id); + } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java index 6fa35598..fad4b682 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java @@ -6,6 +6,8 @@ import com.xinelu.manage.vo.specialdiseasenode.RouteTaskAuditVo; import com.xinelu.manage.vo.specialdiseasenode.SpecialDiseaseNodeAuditVo; import com.xinelu.manage.vo.specialdiseasenode.SpecialDiseaseNodeVO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; +import org.apache.ibatis.annotations.Param; + import java.util.List; @@ -115,4 +117,12 @@ public interface SpecialDiseaseNodeMapper { * @return 主路径节点及子路径节点列表 */ List getByParentRouteId(Long parentRouteId); + + /** + * 根据路径id查询节点信息 + * + * @param specialDiseaseRouteIds + * @return SpecialDiseaseNode + */ + List selectSpecialDiseaseNodes(@Param("specialDiseaseRouteIds") List specialDiseaseRouteIds); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java index 18c22500..990662ec 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java @@ -3,10 +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.SpecialDiseaseChildRouteAuditVo; -import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteAuditVo; -import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo; -import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; +import com.xinelu.manage.vo.specialdiseaseroute.*; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -51,6 +48,7 @@ public interface SpecialDiseaseRouteMapper { SpecialDiseaseRouteAuditVo getRouteAuditInfo(Long routeId); List selectAuditChildRoute(Long parentRouteId); + /** * 新增专病路径信息 * @@ -112,10 +110,11 @@ public interface SpecialDiseaseRouteMapper { * @return */ List getChildList(@Param("specialDiseaseRouteId")Long specialDiseaseRouteId); + /** * 查询未审核节点状态 * - * @param routeId 路径信息 + * @param routeId 路径信息 * @return int */ List selectRouteCheckStatus(Long routeId); @@ -128,4 +127,20 @@ public interface SpecialDiseaseRouteMapper { * @return */ List selectCountByName(@Param("departmentId") Long departmentId, @Param("routeName") String routeName); + + /** + * 查询子节点路径 + * + * @param specialDiseaseRouteId 路径id + * @return OriginalSpecialDiseaseRoute + */ + List getChildSpecialDiseaseRoute(Long specialDiseaseRouteId); + + /** + * 新增子节点路径 + * + * @param specialDiseaseRoutes 节点信息 + * @return int + */ + int insertSpecialDiseaseRouteList(@Param("specialDiseaseRoutes") List specialDiseaseRoutes); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java index a712a338..167d9e80 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java @@ -300,9 +300,6 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout manualFollowUpDTO.setPhoneNodeExecuteResultStatus(null); } List manualFollowUpVOS = signPatientManageRouteMapper.selectManualFollowUpList(manualFollowUpDTO); - if (StringUtils.isNotBlank(manualFollowUpDTO.getTimeSign()) && manualFollowUpDTO.getTimeSign().equals("WHOLE")) { - return manualFollowUpVOS; - } if (manualFollowUpDTO.getNodeExecuteStatus().equals(NodeExecuteStatusEnum.EXECUTED.getInfo())) { return manualFollowUpVOS; } @@ -355,6 +352,11 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout manualFollowUps.add(manualFollowUpVO); } } + //返回所有未执行任务 + if (StringUtils.isNotBlank(manualFollowUpDTO.getTimeSign()) && manualFollowUpDTO.getTimeSign().equals("WHOLE")) { + return manualFollowUpVOS; + } + //返回今天之前任务 return manualFollowUps; } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java index 1ff349a4..f181af23 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java @@ -102,4 +102,12 @@ public interface ISpecialDiseaseRouteService { * @date 2024-07-26 16:00 */ List getRouteNodeInfo(Long id); + + /** + * 克隆节点路径 + * + * @param id 路径id + * @return AjaxResult + */ + AjaxResult cloneRoute(Long id); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java index f14a70c6..c3ae81f3 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java @@ -13,8 +13,10 @@ import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; import com.xinelu.manage.domain.agency.Agency; import com.xinelu.manage.domain.scriptInfo.ScriptInfo; +import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.domain.specialdiseaseroutepackage.SpecialDiseaseRoutePackage; +import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition; import com.xinelu.manage.domain.textmessage.TextMessage; import com.xinelu.manage.domain.wechattemplate.WechatTemplate; import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO; @@ -35,10 +37,13 @@ import com.xinelu.manage.vo.propagandainfo.PropagandaMaterialsVo; import com.xinelu.manage.vo.questionInfo.QuestionVO; import com.xinelu.manage.vo.signpatientmanageroutenode.SignPatientManageNodeAuditVo; import com.xinelu.manage.vo.specialdiseasenode.RouteTaskAuditVo; +import com.xinelu.manage.vo.specialdiseasenode.SpecialDiseaseNodeVO; +import com.xinelu.manage.vo.specialdiseaseroute.OriginalSpecialDiseaseRoute; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteAuditVo; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteInfoVo; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import com.xinelu.manage.vo.specialdiseaseroutepackage.SpecialDiseaseRoutePackageVO; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -58,6 +63,7 @@ import java.util.stream.Collectors; * @author xinelu * @date 2024-03-13 */ +@Slf4j @Service public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteService { @Resource @@ -70,18 +76,20 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi private GenerateSystemCodeUtil generateSystemCodeUtil; @Resource private SpecialDiseaseRoutePackageMapper specialDiseaseRoutePackageMapper; - @Resource - private AgencyMapper agencyMapper; - @Resource - private ScriptInfoMapper scriptInfoMapper; - @Resource - private IQuestionInfoService questionInfoService; - @Resource - private IPropagandaInfoService propagandaInfoService; - @Resource - private TextMessageMapper textMessageMapper; - @Resource - private WechatTemplateMapper wechatTemplateMapper; + @Resource + private AgencyMapper agencyMapper; + @Resource + private ScriptInfoMapper scriptInfoMapper; + @Resource + private IQuestionInfoService questionInfoService; + @Resource + private IPropagandaInfoService propagandaInfoService; + @Resource + private TextMessageMapper textMessageMapper; + @Resource + private WechatTemplateMapper wechatTemplateMapper; + @Resource + private SpecialDiseaseTriggerConditionMapper specialDiseaseTriggerConditionMapper; /** * 查询专病路径信息 @@ -98,7 +106,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi return specialDiseaseRouteMapper.getRouteAndChild(id); } - /** + /** * 查询专病路径信息列表 * * @param specialDiseaseRoute 专病路径信息 @@ -161,9 +169,9 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi public AjaxResult updateSpecialDiseaseRoute(SpecialDiseaseRouteVO specialDiseaseRoute) { //判断名称重复 List specialDiseaseRoutes = specialDiseaseRouteMapper.selectCountByName(specialDiseaseRoute.getDepartmentId(), specialDiseaseRoute.getRouteName()); - if (CollectionUtils.isNotEmpty(specialDiseaseRoutes)){ + if (CollectionUtils.isNotEmpty(specialDiseaseRoutes)) { List collect = specialDiseaseRoutes.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId()) && !specialDiseaseRoute.getId().equals(item.getId())).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(collect)){ + if (CollectionUtils.isNotEmpty(collect)) { return AjaxResult.error("路径名称 '" + specialDiseaseRoute.getRouteName() + "' 重复!"); } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/specialdiseaseroute/OriginalSpecialDiseaseRoute.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/specialdiseaseroute/OriginalSpecialDiseaseRoute.java new file mode 100644 index 00000000..153a3a4f --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/specialdiseaseroute/OriginalSpecialDiseaseRoute.java @@ -0,0 +1,18 @@ +package com.xinelu.manage.vo.specialdiseaseroute; + +import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 克隆路径vo + * + * @author zh + * @date 2024-08-12 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class OriginalSpecialDiseaseRoute extends SpecialDiseaseRoute { + + private Long originalSpecialDiseaseRouteId; +} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml index a3b5400f..33a6b537 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml @@ -972,4 +972,56 @@ where sdr.id = #{parentRouteId} or sdr.parent_route_id = #{parentRouteId} and sdn.route_check_status = 'AGREE' + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml index 0f0ffa07..51a9863b 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml @@ -604,4 +604,64 @@ department_id =#{departmentId} and route_name =#{routeName} + + + + + insert into special_disease_route( + parent_route_id, + department_id, + department_name, + disease_type_id, + disease_type_name, + route_name, + route_code, + version, + route_classify, + release_status, + suit_range, + route_sort, + route_remark, + create_by, + create_time + )values + + ( + #{specialDiseaseRoutes.parentRouteId}, + #{specialDiseaseRoutes.departmentId}, + #{specialDiseaseRoutes.departmentName}, + #{specialDiseaseRoutes.diseaseTypeId}, + #{specialDiseaseRoutes.diseaseTypeName}, + #{specialDiseaseRoutes.routeName}, + #{specialDiseaseRoutes.routeCode}, + #{specialDiseaseRoutes.version}, + #{specialDiseaseRoutes.routeClassify}, + #{specialDiseaseRoutes.releaseStatus}, + #{specialDiseaseRoutes.suitRange}, + #{specialDiseaseRoutes.routeSort}, + #{specialDiseaseRoutes.routeRemark}, + #{specialDiseaseRoutes.createBy}, + #{specialDiseaseRoutes.createTime} + ) + + \ No newline at end of file From 257830f5cae6a7a897c1ed62c83b451f6e009d74 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Mon, 12 Aug 2024 14:30:48 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=85=8B=E9=9A=86=E5=8F=8A=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BB=A3=E5=8A=9E=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SpecialDiseaseRouteServiceImpl.java | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java index c3ae81f3..a9e6a695 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java @@ -402,4 +402,127 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi }); return manageNodeAuditList; } + + /** + * 克隆节点路径 + * + * @param id 路径id + * @return AjaxResult + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult cloneRoute(Long id) { + //主路径 + SpecialDiseaseRoute specialDiseaseRoute = specialDiseaseRouteMapper.selectSpecialDiseaseRouteById(id); + specialDiseaseRoute.setId(null); + specialDiseaseRoute.setRouteCode(Constants.ROUTE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.ROUTE_CODE)); + specialDiseaseRoute.setRouteName(specialDiseaseRoute.getRouteName() + "-副本"); + specialDiseaseRoute.setCreateBy(SecurityUtils.getUsername()); + specialDiseaseRoute.setReleaseStatus(ReleaseStatusEnum.UNPUBLISHED.getInfo()); + specialDiseaseRoute.setCreateTime(LocalDateTime.now()); + //判断名称重复 + extracted(specialDiseaseRoute); + int routeCount = specialDiseaseRouteMapper.insertSpecialDiseaseRoute(specialDiseaseRoute); + if (routeCount <= 0) { + log.info("新增主路径失败!"); + throw new ServiceException("克隆失败!"); + } + //子路径查询新增 + List specialDiseaseRouteIds = new ArrayList<>(); + List childSpecialDiseaseRoute = specialDiseaseRouteMapper.getChildSpecialDiseaseRoute(id); + if (CollectionUtils.isNotEmpty(childSpecialDiseaseRoute)) { + specialDiseaseRouteIds = childSpecialDiseaseRoute.stream().filter(Objects::nonNull).map(SpecialDiseaseRoute::getId).filter(Objects::nonNull).collect(Collectors.toList()); + childSpecialDiseaseRoute.forEach(item -> { + item.setParentRouteId(specialDiseaseRoute.getId()); + item.setRouteCode(Constants.ROUTE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.ROUTE_CODE)); + item.setReleaseStatus(ReleaseStatusEnum.UNPUBLISHED.getInfo()); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(LocalDateTime.now()); + }); + int childCount = specialDiseaseRouteMapper.insertSpecialDiseaseRouteList(childSpecialDiseaseRoute); + if (childCount <= 0) { + log.info("新增子路径失败!"); + throw new ServiceException("克隆失败!"); + } + } + //主路径节点 + List specialDiseaseNodeList = new ArrayList<>(); + specialDiseaseRouteIds.add(id); + List specialDiseaseNodes = specialDiseaseNodeMapper.selectSpecialDiseaseNodes(specialDiseaseRouteIds); + if (CollectionUtils.isNotEmpty(specialDiseaseNodes)) { + for (SpecialDiseaseNode specialDiseaseNode : specialDiseaseNodes) { + SpecialDiseaseNodeVO specialDiseaseNodeVO = new SpecialDiseaseNodeVO(); + BeanUtils.copyProperties(specialDiseaseNode, specialDiseaseNodeVO); + if (specialDiseaseNode.getRouteId().equals(id)) { + specialDiseaseNode.setRouteId(specialDiseaseRoute.getId()); + } else { + OriginalSpecialDiseaseRoute originalSpecialDiseaseRoute = childSpecialDiseaseRoute.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getOriginalSpecialDiseaseRouteId()) && specialDiseaseNode.getRouteId().equals(item.getOriginalSpecialDiseaseRouteId())).findFirst().orElse(new OriginalSpecialDiseaseRoute()); + specialDiseaseNode.setRouteId(originalSpecialDiseaseRoute.getId()); + } + specialDiseaseNodeVO.setId(null); + specialDiseaseNodeVO.setRouteId(specialDiseaseRoute.getId()); + specialDiseaseNodeVO.setRouteCheckStatus(null); + specialDiseaseNodeVO.setRouteCheckPerson(null); + specialDiseaseNodeVO.setRouteCheckDate(null); + specialDiseaseNodeVO.setRouteCheckRemark(null); + specialDiseaseNodeVO.setCreateBy(SecurityUtils.getUsername()); + specialDiseaseNodeVO.setCreateTime(LocalDateTime.now()); + specialDiseaseNodes.add(specialDiseaseNodeVO); + } + int nodeCount = specialDiseaseNodeMapper.insertSpecialDiseaseNodeList(specialDiseaseNodeList); + if (nodeCount < 0) { + log.info("新增主路径节点失败!"); + throw new ServiceException("克隆失败!"); + } + } + SpecialDiseaseRoutePackage specialDiseaseRoutePackage = new SpecialDiseaseRoutePackage(); + specialDiseaseRoutePackage.setRouteId(id); + List specialDiseaseRoutePackages = specialDiseaseRoutePackageMapper.selectSpecialDiseaseRoutePackageList(specialDiseaseRoutePackage); + if (CollectionUtils.isNotEmpty(specialDiseaseRoutePackages)) { + specialDiseaseRoutePackages.forEach(item -> { + item.setId(null); + item.setRouteId(specialDiseaseRoute.getId()); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(LocalDateTime.now()); + }); + int packageCount = specialDiseaseRoutePackageMapper.insertSpecialDiseaseRoutePackageList(specialDiseaseRoutePackages); + if (packageCount < 0) { + log.info("新增服务包失败!"); + throw new ServiceException("克隆失败!"); + } + SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition = new SpecialDiseaseTriggerCondition(); + specialDiseaseTriggerCondition.setRouteId(id); + List specialDiseaseTriggerConditions = specialDiseaseTriggerConditionMapper.selectSpecialDiseaseTriggerConditionList(specialDiseaseTriggerCondition); + if (CollectionUtils.isNotEmpty(specialDiseaseTriggerConditions)) { + specialDiseaseTriggerConditions.forEach(item -> { + item.setId(null); + item.setRouteId(specialDiseaseRoute.getId()); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(LocalDateTime.now()); + }); + int conditionCount = specialDiseaseTriggerConditionMapper.insertTriggerConditionList(specialDiseaseTriggerConditions); + if (conditionCount < 0) { + log.info("新增触发条件失败!"); + throw new ServiceException("克隆失败!"); + } + } + } + return AjaxResult.success(); + } + + /** + * 数据组装 + * + * @param specialDiseaseRoute 路径信息 + */ + private void extracted(SpecialDiseaseRoute specialDiseaseRoute) { + List specialDiseaseRoutes = specialDiseaseRouteMapper.selectCountByName(specialDiseaseRoute.getDepartmentId(), specialDiseaseRoute.getRouteName()); + if (CollectionUtils.isNotEmpty(specialDiseaseRoutes)) { + List collect = specialDiseaseRoutes.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId()) && !specialDiseaseRoute.getId().equals(item.getId())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + specialDiseaseRoute.setRouteName(specialDiseaseRoute.getRouteName() + "-副本"); + extracted(specialDiseaseRoute); + } + } + } } From d9995ad7f92c5ecbeb4c6e76892314102bfd2259 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Mon, 12 Aug 2024 16:49:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PatientTaskExecuteRecordVO.java | 4 ---- .../PatientTaskExecuteRecordMapper.xml | 10 +++++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java index db5a43e2..94dd0409 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java @@ -109,10 +109,6 @@ public class PatientTaskExecuteRecordVO extends PatientTaskExecuteRecord { @ApiModelProperty(value = "手术记录") private String surgicalRecord; - - @ApiModelProperty(value = "任务类型,电话外呼:PHONE_OUTBOUND,问卷量表:QUESTIONNAIRE_SCALE,宣教文章:PROPAGANDA_ARTICLE,文字提醒:TEXT_REMIND,人工随访:ARTIFICIAL_FOLLOW_UP") - private String taskNodeType; - @ApiModelProperty(value = "模板id") private String templateId; diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml index ddc0e698..00ebf83d 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml @@ -116,12 +116,12 @@ spmrn.task_node_type, spmrn.route_handle_remark, CASE - WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_id - WHEN spmrn.task_type = 'QUESTIONNAIRE_SCALE' THEN spmrn.question_info_id - WHEN spmrn.task_type = 'ARTIFICIAL_FOLLOW_UP' THEN spmrn.follow_template_id - WHEN spmrn.task_type = 'PROPAGANDA_ARTICLE' THEN spmrn.propaganda_info_id + WHEN spmrn.task_node_type = 'PHONE_OUTBOUND' THEN spmrn.phone_id + WHEN spmrn.task_node_type = 'QUESTIONNAIRE_SCALE' THEN spmrn.question_info_id + WHEN spmrn.task_node_type = 'ARTIFICIAL_FOLLOW_UP' THEN spmrn.follow_template_id + WHEN spmrn.task_node_type = 'PROPAGANDA_ARTICLE' THEN spmrn.propaganda_info_id END AS 'templateId', - IF(spmrn.task_type ='TEXT_REMIND',spmrn.text_remind_content,NULL) AS textRemindContent + IF(spmrn.task_node_type ='TEXT_REMIND',spmrn.text_remind_content,NULL) AS textRemindContent from patient_task_execute_record pter LEFT JOIN patient_info pi ON pi.id = pter.patient_id LEFT JOIN sign_patient_manage_route_node spmrn ON pter.manage_route_node_id = spmrn.id