курсач 6 сем записка + плакаты / курсовойПроект
.pdfПРИЛОЖЕНИЕ Б
Листинг кода алгоритмов, реализующих бизнес-логику
package by.bsuir.app.dao;
import by.bsuir.app.entity.User;
import by.bsuir.app.exception.DaoException; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root;
import java.io.Serializable; import java.util.List; import java.util.Optional;
public abstract class AbstractDaoT extends Serializable implements DaoT {
private final ClassT localClass;
private final SessionFactory sessionFactory;
public AbstractDao(SessionFactory sessionFactory, ClassT localClass) { this.localClass = localClass;
this.sessionFactory = sessionFactory;
}
@Override
public OptionalT findById(Long id) {
return Optional.ofNullable(getCurrentSession().get(localClass, id));
}
@Override
public ListT findAll() {
return getCurrentSession().createQuery(from + localClass.getName(), localClass).getResultList();
}
@Override
public Long save(T entity) {
return (Long) getCurrentSession().save(entity);
}
@Override
public void update(T entity) { getCurrentSession().update(entity);
}
43
@Override
public void delete(T entity) { getCurrentSession().delete(entity);
}
@Override
public void deleteById(Long entityId) { OptionalT entity = findById(entityId); entity.ifPresent(thisdelete);
}
@Override
public OptionalT findByCriteriaSingleResult(String param, String fieldName) throws DaoException {
ListT resultList = findByCriteriaList(param, fieldName);
if (resultList.size() == 0) { return Optional.empty();
} else if (resultList.size() == 1) {
return Optional.of((T) resultList.get(0)); } else {
throw new DaoException(More than 1 result.);
}
}
@SuppressWarnings(unchecked)
@Override
public ListT findByCriteriaList(String param, String fieldName) throws DaoException {
try {
Session session = getCurrentSession(); CriteriaBuilder cb = session.getCriteriaBuilder(); CriteriaQueryT cr = cb.createQuery(localClass); RootT user = cr.from(localClass);
cr.select(user).where(cb.equal(user.get(fieldName),param));
Query query = session.createQuery(cr); return (ListT) query.getResultList();
} catch (Exception e) {
throw new DaoException(e);
}
}
protected final Session getCurrentSession() { return sessionFactory.getCurrentSession();
}
}
package by.bsuir.app.entity;
44
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.;
import javax.persistence.; import java.util.Date;
@Data
@MappedSuperclass
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(exclude = {user}, callSuper = true) @ToString(exclude = user)
@JsonIgnoreProperties(value = { user })
public abstract class AnalyzesT extends Identifiable extends BaseEntity{
private static final long serialVersionUID = 1L;
@OneToOne
protected User attendingDoctor;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = user_id) protected User user;
@JsonFormat(pattern=dd-MM-yyyy HHmmss) protected Date createdOn;
protected String result;
}
package by.bsuir.app.controller.doctor;
import by.bsuir.app.entity.BiochemicalBloodTest; import by.bsuir.app.entity.GeneralBloodTest;
import by.bsuir.app.service.BiochemicalBloodTestService; import by.bsuir.app.service.GeneralBloodTestService; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.;
import java.util.List; import java.util.Map;
@Controller
@RequestMapping(doctorpatients) public class PatientsController {
private final BiochemicalBloodTestService biochemicalBloodTestService; private final GeneralBloodTestService generalBloodTestService;
45
public PatientsController(BiochemicalBloodTestService biochemicalBloodTestService,
GeneralBloodTestService
generalBloodTestService) {
this.biochemicalBloodTestService = biochemicalBloodTestService; this.generalBloodTestService = generalBloodTestService;
}
@GetMapping()
public String showPatientsPage(Model model) { return doctorpatients-analyzes;
}
@ResponseBody
@PutMapping(commentbioBlood{username})
public ResponseEntity setRecommendationBio(@PathVariable String username, @RequestBody MapString, String params) {
return new ResponseEntity(HttpStatus.OK);
}
@PutMapping(commentgeneralBlood{username})
public ResponseEntity setRecommendationGeneral(@PathVariable String username, @RequestBody MapString, String params) {
return new ResponseEntity(HttpStatus.OK);
}
@ResponseBody
@GetMapping(bioBlood)
public ListBiochemicalBloodTest wrappedFindAllBiochemicalBlood() { return biochemicalBloodTestService.findAll();
}
@ResponseBody
@GetMapping(generalBlood)
public ListGeneralBloodTest findAllGeneralBlood() { return generalBloodTestService.findAll();
}
@ResponseBody
@PatchMapping(bioBlood{id})
public ResponseEntity addBioBloodTestResult(@PathVariable(id) Long bloodTestId,
@RequestBody MapString,
String params) { biochemicalBloodTestService.addRecommendation(
Long.parseLong(params.get(userId)),
bloodTestId, params.get(recom).replace(, ));
return new ResponseEntity(HttpStatus.OK);
}
}
46
ПРИЛОЖЕНИЕ В Скрипт генерации базы данных
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TABLE client (
client_id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), client_name VARCHAR(255) NOT NULL,
client_email VARCHAR(255) UNIQUE NOT NULL, client_password VARCHAR(255) NOT NULL
);
CREATE TABLE fin_analitik (
mentor_id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), mentor_name VARCHAR(255) NOT NULL,
mentor_email VARCHAR(255) UNIQUE NOT NULL, mentor_password VARCHAR(255) NOT NULL
);
CREATE TABLE admin (
admin_id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), admin_name VARCHAR(255) NOT NULL,
admin_email VARCHAR(255) UNIQUE NOT NULL, admin_password VARCHAR(255) NOT NULL
);
CREATE TABLE IF NOT EXISTS projects (
project_id uuid NOT NULL DEFAULT uuid_generate_v4(), project_name varchar NOT NULL,
project_target_group varchar NOT NULL, project_description varchar NOT NULL, project_image varchar NULL,
CONSTRAINT projects_pkey PRIMARY KEY (project_id), CONSTRAINT projects_project_name_key UNIQUE (project_name)
);
CREATE TABLE team (
id |
uuid PRIMARY KEY DEFAULT uuid_generate_v4(), |
name |
VARCHAR(200) NOT NULL, |
role |
VARCHAR(200) NOT NULL, |
img |
VARCHAR(500) |
); |
|
CREATE TABLE client_profile (
client_id uuid UNIQUE REFERENCES students(student_id),
47
client_number BIGINT NOT NULL, client_phone BIGINT NOT NULL, client_bio VARCHAR(3000) NOT NULL, client_img VARCHAR(500), client_active BOOLEAN NOT NULL
);
CREATE TABLE project_proposal (
student_id uuid UNIQUE REFERENCES students(student_id), project_name varchar NOT NULL,
problem_statement varchar NOT NULL, proposed_action varchar NOT NULL, expected_result varchar NOT NULL, social_returns varchar NOT NULL, key_activities varchar NOT NULL, key_resources varchar NOT NULL, team varchar NOT NULL, client_profile varchar NOT NULL,
client_relationships varchar NOT NULL, client_channels varchar NOT NULL, key_partners varchar NOT NULL, stakeholders varchar NOT NULL, networks varchar NOT NULL, startup_costs varchar NOT NULL, operational_costs varchar NOT NULL, finance_plan varchar NOT NULL, business_plan varchar NOT NULL, implementation_plan varchar NOT NULL, key_milestones varchar NOT NULL,
monitoring_and_evaluation varchar NOT NULL, who_we_are varchar NOT NULL, vision_and_mission varchar NOT NULL, track_record varchar NOT NULL,
project_status varchar NOT NULL,
);
48