克隆及任务代办列表修改
This commit is contained in:
parent
e961cd5ae5
commit
257830f5ca
@ -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<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