Я хочу рассчитать и суммировать зарплату и распечатать результат, полученный из запроса sql в другом классе модели - PullRequest
0 голосов
/ 07 февраля 2020

Я пробовал jpql-запросы, но он дает ответ в паре ключ-значение.

С JsonObject выдает ошибку.

Я не могу суммировать сумму зарплаты, передав дата и номер отдела Я не могу сопоставить EmployeeDto с классом Employee.

Мне нужен ответ имени сотрудника и оклада сотрудника. Я уже добавил сотрудника по идентификатору отдела, а зарплата - по идентификатору сотрудника.

Теперь я должен подсчитать, к какому отделу принадлежит работник и какова зарплата.

Это мой модальный класс зарплаты. Эта зарплата сохраняется.

@Entity
@Table(name = "salary")
@Getter
@Setter
public class EmployeeSalary implements Serializable{

    private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;

        @NotEmpty(message = "Salary Number Should Not Be Empty")
        private String salaryNumber;

        private int salaryAmount;

        @NotEmpty(message = "Salary Type Should Not Be Empty")
        private String salaryType;

        @NotEmpty(message = "Salary Way Should Not Be Empty")
        @Pattern(regexp = "^[\\p{L} .'-]+$", message = "Salary way has invalid characters")
        private String Salary Way;

        @CreationTimestamp
        @Temporal(TemporalType.TIME)
        private Date salaryPassTime;

        private String salaryPassDate;

        @ManyToOne
        @JoinColumn(name = "Employee_id")

        @JsonIgnore
        private EmployeeRegister employee;  
}

Это модальный класс моего сотрудника. В этом классе модели Employee зарегистрирован.

@Entity
@Getter
@Setter
@Table(name = "add_employee")
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @NotEmpty(message = "Employee name should not be empty")
    private String employeeName;
    @Email
    private String employeeEmail;
    private String employeePassword;
    private String employeeImage;
    private String EmployeeMobileNo;

    @ManyToOne
@JoinColumn(name = "department_id")
@JsonIgnore
private Department department;        

    @OneToMany
    private List<EmployeeSalary> salary;

}

Это мой класс EmployeeDto

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class EmployeeDto {

    private  String employeeName;
    public String employeeSalary;
}

Это мой класс контроллера

@Autowired
private CommonServices service;

@Autowired
private Service test;

    @GetMapping("/getAllEmployeeById/{departmentid}/{salarydate}")
    public ResponseEntity<Object> getAllDepartmentEmployee(@PathVariable("departmentid") int departmentid,@PathVariable(value = "salarydate")String salarydate)throws ResourceNotFoundException{
        List<Employee> itemList = service.retriveAllEmployee(departmentid); 
        EmployeeDto targetEmployeeDto=new EmployeeDto();
        List itemList1=test.getTestDone(date);



        if(itemList.isEmpty()){
            response.put("status","Failure");
            response.put("message","Department idNot Exist!!");
            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response);

        }else {
                }
                return new ResponseEntity<Object>(itemList1,HttpStatus.OK);


        }

Это мой класс обслуживания

@Query(value = " select add_employee.employee_name,SUM(salary.salary_amount)"
            + "from add_employee,salary where add_employee.id=salary.employee_id and salary_pass_date =:date group by employee_id",nativeQuery = true)
public List getTestDone(String date);

Мой результат будет таким: У меня

 [
      [
        "j",
        40
      ],
      [
        "jj",
        20
      ]
    ]

Но Я хочу, чтобы ответ был в этом формате (иногда он говорит о проблеме преобразования).

{
"employeeName":"j",
"employeeSalary:"40"
},
{
"employeeName":"jj",
"employeeSalary:"20"
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...