some refactor

This commit is contained in:
Anton Romanov 2019-05-27 09:14:24 +04:00
parent 2b911017b1
commit 336a16ff73
10 changed files with 27 additions and 60 deletions

View File

@ -43,7 +43,7 @@ public class GrantController {
@GetMapping("/dashboard") @GetMapping("/dashboard")
public void getDashboard(ModelMap modelMap) { public void getDashboard(ModelMap modelMap) {
modelMap.put("grants", grantService.findAllDto()); modelMap.put("grants", grantService.findAllActiveDto());
} }
@GetMapping("/grant") @GetMapping("/grant")

View File

@ -43,7 +43,8 @@ public class Grant extends BaseEntity implements UserContainer {
IN_WORK("В работе"), IN_WORK("В работе"),
COMPLETED("Завершен"), COMPLETED("Завершен"),
FAILED("Провалены сроки"), FAILED("Провалены сроки"),
LOADED_FROM_KIAS("Загружен автоматически"); LOADED_FROM_KIAS("Загружен автоматически"),
SKIPPED("Не интересует");
private String statusName; private String statusName;
@ -62,14 +63,14 @@ public class Grant extends BaseEntity implements UserContainer {
@Enumerated(value = EnumType.STRING) @Enumerated(value = EnumType.STRING)
private GrantStatus status = GrantStatus.APPLICATION; private GrantStatus status = GrantStatus.APPLICATION;
@OneToMany(cascade = CascadeType.ALL) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "grant_id") @JoinColumn(name = "grant_id")
@OrderBy("date") @OrderBy("date")
private List<Deadline> deadlines = new ArrayList<>(); private List<Deadline> deadlines = new ArrayList<>();
private String comment; private String comment;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "grant_id", unique = true) @JoinColumn(name = "grant_id", unique = true)
@Fetch(FetchMode.SUBSELECT) @Fetch(FetchMode.SUBSELECT)
private List<FileData> files = new ArrayList<>(); private List<FileData> files = new ArrayList<>();

View File

@ -17,4 +17,7 @@ public interface GrantRepository extends JpaRepository<Grant, Integer>, BaseRepo
@Override @Override
@Query("SELECT title FROM Grant g WHERE (g.title = :name) AND (:id IS NULL OR g.id != :id) ") @Query("SELECT title FROM Grant g WHERE (g.title = :name) AND (:id IS NULL OR g.id != :id) ")
String findByNameAndNotId(@Param("name") String name, @Param("id") Integer id); String findByNameAndNotId(@Param("name") String name, @Param("id") Integer id);
@Query("SELECT g FROM Grant g WHERE (g.status <> 'SKIPPED') AND (g.status <> 'COMPLETED')")
List<Grant> findAllActive();
} }

View File

@ -31,7 +31,7 @@ public class GrantScheduler {
log.debug("GrantScheduler.checkDeadlineBeforeWeek finished"); log.debug("GrantScheduler.checkDeadlineBeforeWeek finished");
} }
@Scheduled(cron = "0 0 8 1 * ?", zone = "Europe/Samara") @Scheduled(cron = "0 0 8 * * ?", zone = "Europe/Samara")
public void loadGrantsFromKias() { public void loadGrantsFromKias() {
log.debug("GrantScheduler.loadGrantsFromKias started"); log.debug("GrantScheduler.loadGrantsFromKias started");
try { try {

View File

@ -41,7 +41,6 @@ import static ru.ulstu.grant.model.Grant.GrantStatus.APPLICATION;
@Service @Service
public class GrantService extends BaseService { public class GrantService extends BaseService {
private final static int MAX_DISPLAY_SIZE = 50;
private final Logger log = LoggerFactory.getLogger(GrantService.class); private final Logger log = LoggerFactory.getLogger(GrantService.class);
private final GrantRepository grantRepository; private final GrantRepository grantRepository;
@ -80,9 +79,7 @@ public class GrantService extends BaseService {
} }
public List<GrantDto> findAllDto() { public List<GrantDto> findAllDto() {
List<GrantDto> grants = convert(findAll(), GrantDto::new); return convert(findAll(), GrantDto::new);
grants.forEach(grantDto -> grantDto.setTitle(StringUtils.abbreviate(grantDto.getTitle(), MAX_DISPLAY_SIZE)));
return grants;
} }
public GrantDto findOneDto(Integer id) { public GrantDto findOneDto(Integer id) {
@ -273,11 +270,7 @@ public class GrantService extends BaseService {
} }
public List<PaperDto> getAllUncompletedPapers() { public List<PaperDto> getAllUncompletedPapers() {
List<PaperDto> papers = paperService.findAllNotCompleted(); return paperService.findAllNotCompleted();
papers.stream()
.forEach(paper ->
paper.setTitle(StringUtils.abbreviate(paper.getTitle(), MAX_DISPLAY_SIZE)));
return papers;
} }
public void attachPaper(GrantDto grantDto) { public void attachPaper(GrantDto grantDto) {
@ -335,4 +328,12 @@ public class GrantService extends BaseService {
} }
} }
} }
public List<GrantDto> findAllActiveDto() {
return convert(findAllActive(), GrantDto::new);
}
private List<Grant> findAllActive() {
return grantRepository.findAllActive();
}
} }

View File

@ -65,8 +65,8 @@ public class Event extends BaseEntity {
private String description; private String description;
@ManyToMany(fetch = FetchType.EAGER) @ManyToMany(fetch = FetchType.LAZY)
private List<User> recipients = new ArrayList<User>(); private List<User> recipients = new ArrayList<>();
@ManyToOne @ManyToOne
@JoinColumn(name = "child_id") @JoinColumn(name = "child_id")

View File

@ -35,6 +35,6 @@ liquibase.change-log=classpath:db/changelog-master.xml
ng-tracker.base-url=http://127.0.0.1:8080 ng-tracker.base-url=http://127.0.0.1:8080
ng-tracker.undead-user-login=admin ng-tracker.undead-user-login=admin
ng-tracker.dev-mode=true ng-tracker.dev-mode=true
ng-tracker.debug_email=romanov73@gmail.com ng-tracker.debug_email=
ng-tracker.use-https=false ng-tracker.use-https=false
ng-tracker.check-run=false ng-tracker.check-run=false

View File

@ -8,7 +8,8 @@
<div class="col"> <div class="col">
<span th:replace="grants/fragments/grantStatusFragment :: grantStatus(grantStatus=${grant.status})"/> <span th:replace="grants/fragments/grantStatusFragment :: grantStatus(grantStatus=${grant.status})"/>
<a th:href="@{'grant?id='+${grant.id}}"> <a th:href="@{'grant?id='+${grant.id}}">
<span class="h6" th:text="${grant.title}"/> <span class="h6" th:if="${#strings.length(grant.title) > 50}" th:text="${#strings.substring(grant.title, 0, 50)} + '...'" th:title="${grant.title}"/>
<span class="h6" th:if="${#strings.length(grant.title) le 50}" th:text="${grant.title}" th:title="${grant.title}"/>
<span class="text-muted" th:text="${grant.authorsString}"/> <span class="text-muted" th:text="${grant.authorsString}"/>
</a> </a>
<input class="id-class" type="hidden" th:value="${grant.id}"/> <input class="id-class" type="hidden" th:value="${grant.id}"/>

View File

@ -186,47 +186,7 @@
<div class="row"> <div class="row">
<div class="form-control list-group div-selected-papers" id="selected-papers"> <div class="form-control list-group div-selected-papers" id="selected-papers">
<div th:each="paper, rowStat : *{papers}"> <div th:each="paper, rowStat : *{papers}">
<input type="hidden" th:field="*{papers[__${rowStat.index}__].id}"/> <div th:replace="papers/fragments/paperLineFragment :: paperLine(paper=${paper})"/>
<div class="col">
<a th:href="@{'/papers/paper?id=' + *{papers[__${rowStat.index}__].id} + ''}">
<img class="icon-paper" src="/img/conference/paper.png"/>
<span th:text="*{papers[__${rowStat.index}__].title}">
Название статьи
</span>
</a>
</div>
<div class="col">
<label>Статус: </label>
<span th:text="*{papers[__${rowStat.index}__].status.statusName}">
Статус статьи
</span>
</div>
<!--
<div class="col" th:unless="${#lists.isEmpty(paper.grants)}">
<label>Гранты: </label>
<div th:each="grant, grantRowStat : *{papers[__${rowStat.index}__].grants}"
th:remove="tag">
<div th:unless="${grant.id}==*{id}" th:remove="tag">
<li>
<a th:href="@{'/grants/grant?id=' + ${grant.id} + ''}">
<span th:text="${grant.title} "></span>
</a>
</li>
</div>
</div>
</div>
<div class="col" th:unless="${#lists.isEmpty(paper.conferences)}">
<label>Конференции: </label>
<div th:each="conference, conferenceRowStat : *{papers[__${rowStat.index}__].conferences}"
th:remove="tag">
<li>
<a th:href="@{'/conferences/conference?id=' + ${conference.id} + ''}">
<span th:text="${conference.title}"></span>
</a>
</li>
</div>
</div>
-->
</div> </div>
</div> </div>
</div> </div>

View File

@ -8,7 +8,8 @@
<div class="col"> <div class="col">
<span th:replace="papers/fragments/paperStatusFragment :: paperStatus(paperStatus=${paper.status})"/> <span th:replace="papers/fragments/paperStatusFragment :: paperStatus(paperStatus=${paper.status})"/>
<a th:href="@{'paper?id='+${paper.id}}"> <a th:href="@{'paper?id='+${paper.id}}">
<span class="h6" th:text="${paper.title}"/> <span class="h6" th:if="${#strings.length(paper.title)} > 50" th:text="${#strings.substring(paper.title, 0, 50) + '...'}" th:title="${paper.title}"/>
<span class="h6" th:if="${#strings.length(paper.title) le 50}" th:text="${paper.title}" th:title="${paper.title}"/>
<span class="text-muted" th:text="${paper.authorsString}"/> <span class="text-muted" th:text="${paper.authorsString}"/>
</a> </a>
<input class="id-class" type="hidden" th:value="${paper.id}"/> <input class="id-class" type="hidden" th:value="${paper.id}"/>