Skip to content

Commit

Permalink
Merge branch 'Demo_branch' of https://github.com/catenax-ng/tx-demand…
Browse files Browse the repository at this point in the history
…-capacity-mgmt into Demo_branch
  • Loading branch information
Ruskyy committed Oct 31, 2023
2 parents 63dff94 + b4e4dfc commit 281e058
Show file tree
Hide file tree
Showing 10 changed files with 129 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import jakarta.persistence.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import lombok.*;
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.enums.EventType;
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.enums.MaterialDemandStatus;

import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;

@Entity
@Cacheable(false)
@Table(name = "material_demand")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,22 @@
package org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.repositories;

import jakarta.persistence.Cacheable;
import java.util.List;
import java.util.UUID;
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.MaterialDemandEntity;
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.enums.MaterialDemandStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.UUID;

@Repository
@Cacheable(false)
public interface MaterialDemandRepository extends JpaRepository<MaterialDemandEntity, UUID> {
List<MaterialDemandEntity> findBySupplierId_Id(UUID id);
@Query("select m from MaterialDemandEntity m where m.customerId.id = ?1")
List<MaterialDemandEntity> findByCustomerId_Id(UUID id);

List<MaterialDemandEntity> findAllByStatus(MaterialDemandStatus status);

@Query(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,6 @@

public interface StatusManager {
void calculateBottleneck(String userID, boolean postLog);

void calculateTodos(String userID);
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ public CapacityGroupResponse createCapacityGroup(CapacityGroupRequest capacityGr
if (helperEntity.isPresent()) {
MaterialDemandEntity materialDemandEntity = helperEntity.get();
materialDemandEntity.setLinkStatus(EventType.LINKED);
statusesService.addOrSubtractTodos(false, userID);
materialDemandRepository.save(materialDemandEntity);
matchedMaterialDemands.addAll(materialDemandEntity.getDemandSeries());
}
Expand All @@ -88,6 +87,7 @@ public CapacityGroupResponse createCapacityGroup(CapacityGroupRequest capacityGr
capacityGroupEntity.setLinkStatus(EventType.GENERAL_EVENT);
capacityGroupRepository.save(capacityGroupEntity);
}
statusManager.calculateTodos(userID);
return convertCapacityGroupDto(capacityGroupEntity);
}

Expand Down Expand Up @@ -124,7 +124,6 @@ public void linkCapacityGroupToMaterialDemand(LinkCGDSRequest linkCGDSRequest, S
MaterialDemandEntity materialDemand = materialDemandEntity.get();
materialDemand.setLinkStatus(EventType.LINKED);
materialDemandEntities.add(materialDemand);
statusesService.addOrSubtractTodos(false, userID);
}
}

Expand Down Expand Up @@ -160,11 +159,11 @@ public void linkCapacityGroupToMaterialDemand(LinkCGDSRequest linkCGDSRequest, S
if (materialDemandEntity.isPresent()) {
MaterialDemandEntity demandEntity = materialDemandEntity.get();
demandEntity.setLinkStatus(EventType.LINKED);
statusesService.addOrSubtractTodos(false, userID);
materialDemandRepository.save(demandEntity);
}
}
statusManager.calculateBottleneck(userID, true);
statusManager.calculateTodos(userID);
}

private CapacityGroupEntity enrichCapacityGroup(CapacityGroupRequest request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ public MaterialDemandResponse createDemand(MaterialDemandRequest materialDemandR
materialDemandEntity.setLinkStatus(EventType.UN_LINKED);
materialDemandEntity = materialDemandRepository.save(materialDemandEntity);
postLogs(materialDemandEntity.getId().toString(), "Material Demand created", EventType.GENERAL_EVENT, userID);
statusesService.addOrSubtractTodos(true, userID);
statusManager.calculateBottleneck(userID, true);
statusManager.calculateTodos(userID);
return convertDemandResponseDto(materialDemandEntity);
}

Expand Down Expand Up @@ -168,6 +168,7 @@ public MaterialDemandResponse updateDemand(
demand = materialDemandRepository.save(demand);
postLogs(demandId, "MATERIAL DEMAND Updated", EventType.GENERAL_EVENT, userID);
statusManager.calculateBottleneck(userID, true);
statusManager.calculateTodos(userID);
return convertDemandResponseDto(demand);
}

Expand All @@ -183,8 +184,8 @@ public void deleteDemandById(String demandId, String userID) {
postLogs(demandId, "Material Demand deleted", EventType.UN_LINKED, userID);
linkedCapacityGroupMaterialDemandRepository.deleteByMaterialDemandID(demand.getId());
materialDemandRepository.delete(demand);
statusesService.addOrSubtractTodos(false, userID);
statusManager.calculateBottleneck(userID, true);
statusManager.calculateTodos(userID);
}

@Override
Expand Down Expand Up @@ -269,8 +270,8 @@ public void unlinkComposites(DemandSeriesUnlinkRequest demandSeriesUnlinkRequest
linkedCapacityGroupMaterialDemandRepository.deleteByCapacityGroupIDAndMaterialDemandID(cgID, mdID);
List<MaterialDemandEntity> oldMaterialDemands = getAllDemands();
oldMaterialDemands.removeIf(md -> md.getId().equals(mdID));
statusesService.addOrSubtractTodos(true, userID);
statusManager.calculateBottleneck(userID, true);
statusManager.calculateTodos(userID);
}

private MaterialDemandEntity getDemandEntity(String demandId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@
package org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.services.impl;

import eclipse.tractusx.demand_capacity_mgmt_specification.model.*;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.*;
Expand All @@ -38,6 +32,13 @@
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.services.FavoriteService;
import org.springframework.stereotype.Service;

import java.sql.Timestamp;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

@RequiredArgsConstructor
@Service
@Slf4j
Expand Down Expand Up @@ -140,9 +141,9 @@ private SingleCapacityGroupFavoriteResponse convertToSingleCapacityGroup(Favorit
scgfv.setId(capacityGroup.getId().toString());
scgfv.setCapacityGroupId(capacityGroup.getId().toString());
scgfv.setCapacityGroupName(capacityGroup.getCapacityGroupName());
scgfv.setCustomer(capacityGroup.getCustomer().getBpn());
scgfv.setCustomer(convertToCompanyDto(capacityGroup.getCustomer()));
scgfv.setStatus(capacityGroup.getLinkStatus().toString());
scgfv.setSupplier(capacityGroup.getSupplier().getBpn());
scgfv.setSupplier(convertToCompanyDto(capacityGroup.getSupplier()));
scgfv.setFavoritedAt(entity.getFavorited_at().toString());
return scgfv;
} else return null;
Expand All @@ -155,16 +156,19 @@ private MaterialDemandFavoriteResponse convertToMaterialDemandResponse(FavoriteE

MaterialDemandFavoriteResponse response = new MaterialDemandFavoriteResponse();
response.setId(materialDemand.getId().toString());

CompanyEntity cEntity = materialDemand.getCustomerId();
CompanyEntity sEntity = materialDemand.getSupplierId();
response.setCustomer(cEntity.getId().toString());

response.setCustomer(convertToCompanyDto(cEntity));
response.setSupplier(convertToCompanyDto(sEntity));

LinkedCapacityGroupMaterialDemandEntity lcgm = linkedMaterialDemandRepository.findByMaterialDemandID(
cEntity.getId()
);
if (lcgm != null) {
response.setStatus(EventType.LINKED.toString());
} else response.setStatus(EventType.TODO.toString());
response.setSupplier(sEntity.getId().toString());
response.setMaterialDescriptionCustomer(materialDemand.getMaterialDescriptionCustomer());
response.setMaterialNumberCustomer(materialDemand.getMaterialNumberCustomer());
response.setMaterialNumberSupplier(materialDemand.getMaterialNumberSupplier());
Expand Down Expand Up @@ -193,6 +197,19 @@ private CompanyDtoFavoriteResponse convertToCompanyDto(FavoriteEntity entity) {
} else return null;
}

private CompanyDto convertToCompanyDto(CompanyEntity entity) {
CompanyDto dto = new CompanyDto();
dto.setStreet(entity.getStreet());
dto.setNumber(entity.getNumber());
dto.setId(entity.getId().toString());
dto.setBpn(entity.getBpn());
dto.setMyCompany(entity.getMyCompany());
dto.setCountry(entity.getCountry());
dto.setCompanyName(entity.getCompanyName());
dto.setZipCode(entity.getZipCode());
return dto;
}

private EventFavoriteResponse convertToEventDto(FavoriteEntity entity) {
LoggingHistoryEntity eEntity = eventRepository.findByLogID(entity.getFavoriteId());
EventFavoriteResponse eventEntity = new EventFavoriteResponse();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.fasterxml.uuid.Logger;
import eclipse.tractusx.demand_capacity_mgmt_specification.model.IntrospectTokenResponse;
import eclipse.tractusx.demand_capacity_mgmt_specification.model.Role;
import eclipse.tractusx.demand_capacity_mgmt_specification.model.TokenResponse;
import eclipse.tractusx.demand_capacity_mgmt_specification.model.User;
import java.util.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.UserEntity;
Expand All @@ -46,6 +46,8 @@
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;

import java.util.*;

@RequiredArgsConstructor
@Service
@Slf4j
Expand Down Expand Up @@ -229,19 +231,17 @@ private UserEntity generateUser(String userID, DecodedJWT decodedJWT) {

Object rolesObject = realmAccessMap.get("roles");

if (rolesObject instanceof List<?>) {
List<?> list = (List<?>) rolesObject;
if (rolesObject instanceof List<?> list) {
for (Object roleObj : list) {
if (roleObj instanceof String) {
String roleStr = (String) roleObj;
if (roleObj instanceof String roleStr) {
try {
org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.enums.Role role = org.eclipse.tractusx.demandcapacitymgmt.demandcapacitymgmtbackend.entities.enums.Role.valueOf(
roleStr
);
newUserEntity.setRole(role);
break;
} catch (IllegalArgumentException e) {
throw new RuntimeException("Illegal Role detected! User must have one of the role types");
Logger.logError("Incompatible role! User must have one of the 3 role types 'ADMIN','CUSTOMER','SUPPLIER'");
}
}
}
Expand All @@ -261,6 +261,7 @@ private User convertUserEntity(UserEntity userEntity, String accessToken, String
user.setRefreshToken(refreshToken);
user.setExpiresIn(expiresIn);
statusManager.calculateBottleneck(user.getUserID(), false);
statusManager.calculateTodos(user.getUserID());
return user;
}

Expand Down
Loading

0 comments on commit 281e058

Please sign in to comment.