|
|
@ -1,7 +1,8 @@ |
|
|
|
package com.dreamworks.boditech.service; |
|
|
|
import com.dreamworks.boditech.driver.task.TaskTestBase; |
|
|
|
import com.dreamworks.boditech.entity.Project; |
|
|
|
import com.dreamworks.boditech.mapper.ProjectMapper; |
|
|
|
import com.dreamworks.boditech.utils.AppError; |
|
|
|
import com.dreamworks.boditech.utils.AppRuntimeException; |
|
|
|
import jakarta.annotation.PostConstruct; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import org.slf4j.Logger; |
|
|
@ -43,7 +44,7 @@ public class ProjectService { |
|
|
|
return project; |
|
|
|
} |
|
|
|
} |
|
|
|
throw new RuntimeException("PROJECT_CODE_NOT_ACTIVE"); |
|
|
|
throw new AppRuntimeException(AppError.PROJECT_CODE_NOT_ACTIVE); |
|
|
|
} |
|
|
|
|
|
|
|
// get active project by given code num |
|
|
@ -56,24 +57,32 @@ public class ProjectService { |
|
|
|
return project; |
|
|
|
} |
|
|
|
} |
|
|
|
throw new RuntimeException("PROJECT_CODE_NOT_ACTIVE"); |
|
|
|
throw new AppRuntimeException(AppError.PROJECT_CODE_NOT_ACTIVE); |
|
|
|
} |
|
|
|
|
|
|
|
// active project |
|
|
|
public Project activeProjectByCodeNum(Integer posIndex, Integer codeNum, String lotCode) { |
|
|
|
Project project = this.projects.get(posIndex); |
|
|
|
if ( null != project ) { |
|
|
|
throw new RuntimeException("PROJECT_CODE_ALREADY_ACTIVE"); |
|
|
|
throw new AppRuntimeException(AppError.PROJECT_CODE_ALREADY_ACTIVE); |
|
|
|
} |
|
|
|
|
|
|
|
project = this.findByCodeNum(codeNum); |
|
|
|
if ( project == null ) { |
|
|
|
throw new RuntimeException("PROJECT_CODE_NOT_AVAILABLE"); |
|
|
|
throw new AppRuntimeException(AppError.PROJECT_CODE_NOT_AVAILABLE); |
|
|
|
} |
|
|
|
|
|
|
|
String color = this.colors[posIndex]; |
|
|
|
for ( Project activeProject : this.projects ) { |
|
|
|
if ( null != activeProject && activeProject.codeNum.equals(codeNum) && activeProject.lotCode.equals(lotCode)) { |
|
|
|
// if project already active, use the same color |
|
|
|
color = activeProject.color; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
project.posIndex = posIndex; |
|
|
|
project.lotCode = lotCode; |
|
|
|
project.color = this.colors[posIndex]; |
|
|
|
project.color = color; |
|
|
|
this.projects.set(posIndex, project); |
|
|
|
LOG.info("project active : {} {}({})",codeNum, project.name, project.lotCode); |
|
|
|
return project; |
|
|
@ -89,27 +98,8 @@ public class ProjectService { |
|
|
|
return projectMapper.findByCodeNum(codeNum); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// find by id |
|
|
|
public Project findById(Integer id) { |
|
|
|
return projectMapper.findById(id); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// find by name |
|
|
|
public Project findByName(String name) { |
|
|
|
return projectMapper.findByName(name); |
|
|
|
} |
|
|
|
} |