克隆及任务代办列表修改
This commit is contained in:
parent
e961cd5ae5
commit
257830f5ca
@ -402,4 +402,127 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
|
|||||||
});
|
});
|
||||||
return manageNodeAuditList;
|
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<Long> specialDiseaseRouteIds = new ArrayList<>();
|
||||||
|
List<OriginalSpecialDiseaseRoute> 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<SpecialDiseaseNodeVO> specialDiseaseNodeList = new ArrayList<>();
|
||||||
|
specialDiseaseRouteIds.add(id);
|
||||||
|
List<SpecialDiseaseNode> 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<SpecialDiseaseRoutePackage> 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<SpecialDiseaseTriggerCondition> 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<SpecialDiseaseRoute> specialDiseaseRoutes = specialDiseaseRouteMapper.selectCountByName(specialDiseaseRoute.getDepartmentId(), specialDiseaseRoute.getRouteName());
|
||||||
|
if (CollectionUtils.isNotEmpty(specialDiseaseRoutes)) {
|
||||||
|
List<SpecialDiseaseRoute> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user