| @@ -50,6 +50,9 @@ public class Client extends BaseEntity<Long>{ | |||||
| @Column | @Column | ||||
| private LocalDate dob; | private LocalDate dob; | ||||
| @Column | |||||
| private Integer consultantId; | |||||
| public String getClientCode() { | public String getClientCode() { | ||||
| @@ -132,5 +135,12 @@ public class Client extends BaseEntity<Long>{ | |||||
| this.dob = dob; | this.dob = dob; | ||||
| } | } | ||||
| public Integer getConsultantId() { | |||||
| return consultantId; | |||||
| } | |||||
| public void setConsultantId(Integer consultantId) { | |||||
| this.consultantId = consultantId; | |||||
| } | |||||
| } | } | ||||
| @@ -134,7 +134,7 @@ public class CommonFieldService extends AbstractBaseEntityService<CommonField, L | |||||
| } | } | ||||
| public Long getByClientId(long clientId){ | public Long getByClientId(long clientId){ | ||||
| Long id = getIdByClientId(clientId); | |||||
| Long id = getIdByClientId(clientId); | |||||
| return id; | return id; | ||||
| } | } | ||||
| @@ -0,0 +1,34 @@ | |||||
| package com.ffii.lioner.modules.lioner.pdf.entity; | |||||
| import java.time.LocalDate; | |||||
| import java.time.LocalDateTime; | |||||
| import com.ffii.core.entity.BaseEntity; | |||||
| import jakarta.persistence.Column; | |||||
| import jakarta.persistence.Entity; | |||||
| import jakarta.persistence.Inheritance; | |||||
| import jakarta.persistence.InheritanceType; | |||||
| import jakarta.persistence.Table; | |||||
| import jakarta.validation.constraints.NotBlank; | |||||
| import jakarta.validation.constraints.NotNull; | |||||
| @Entity | |||||
| @Table(name = "consultant") | |||||
| @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) | |||||
| public class Consultant extends BaseEntity<Long>{ | |||||
| @NotNull | |||||
| @Column | |||||
| private String name; | |||||
| public String getName() { | |||||
| return name; | |||||
| } | |||||
| public void setName(String name) { | |||||
| this.name = name; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,9 @@ | |||||
| package com.ffii.lioner.modules.lioner.pdf.entity; | |||||
| import java.util.List; | |||||
| import com.ffii.core.support.AbstractRepository; | |||||
| public interface ConsultantRepository extends AbstractRepository<Consultant, Long> { | |||||
| } | |||||
| @@ -0,0 +1,26 @@ | |||||
| package com.ffii.lioner.modules.lioner.pdf.req; | |||||
| public class UpdateConsultantReq { | |||||
| private Long id; | |||||
| private String name; | |||||
| public Long getId() { | |||||
| return id; | |||||
| } | |||||
| public void setId(Long id) { | |||||
| this.id = id; | |||||
| } | |||||
| public String getName() { | |||||
| return name; | |||||
| } | |||||
| public void setName(String name) { | |||||
| this.name = name; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,85 @@ | |||||
| package com.ffii.lioner.modules.lioner.pdf.service; | |||||
| import java.util.HashMap; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import org.springframework.stereotype.Service; | |||||
| import com.fasterxml.jackson.databind.ObjectMapper; | |||||
| import com.ffii.core.exception.NotFoundException; | |||||
| import com.ffii.core.exception.UnprocessableEntityException; | |||||
| import com.ffii.core.support.AbstractBaseEntityService; | |||||
| import com.ffii.core.support.JdbcDao; | |||||
| import com.ffii.core.utils.BeanUtils; | |||||
| import com.ffii.lioner.modules.common.service.AuditLogService; | |||||
| import com.ffii.lioner.modules.lioner.pdf.entity.Consultant; | |||||
| import com.ffii.lioner.modules.lioner.pdf.req.UpdateConsultantReq; | |||||
| import com.ffii.lioner.modules.lioner.pdf.entity.ConsultantRepository; | |||||
| @Service | |||||
| public class ConsultantService extends AbstractBaseEntityService<Consultant, Long, ConsultantRepository> { | |||||
| private AuditLogService auditLogService; | |||||
| public ConsultantService(JdbcDao jdbcDao, ConsultantRepository repository, AuditLogService auditLogService) { | |||||
| super(jdbcDao, repository); | |||||
| this.auditLogService = auditLogService; | |||||
| } | |||||
| public Map<String, Object> saveOrUpdate(UpdateConsultantReq req) { | |||||
| Consultant instance; | |||||
| // List<SubDivision> onUsingIdList = new ArrayList<SubDivision>(); | |||||
| if(req.getId() == null) | |||||
| req.setId(-1L); | |||||
| if (req.getId() > 0){ | |||||
| instance = find(req.getId()).get(); | |||||
| // onUsingIdList = this.getSelectedSubDivisionList(req.getId()); | |||||
| } | |||||
| else { | |||||
| instance = new Consultant(); | |||||
| } | |||||
| BeanUtils.copyProperties(req,instance); | |||||
| instance = save(instance); | |||||
| return Map.of( | |||||
| "id", instance.getId() | |||||
| ); | |||||
| } | |||||
| public List<Map<String,Object>> list(Map<String, Object> args){ | |||||
| StringBuilder sql = new StringBuilder("SELECT" | |||||
| + " c.id, " | |||||
| + " c.name, " | |||||
| + " c.created, " | |||||
| + " c.modified " | |||||
| + " FROM consultant c " | |||||
| + " WHERE c.deleted = FALSE " | |||||
| ); | |||||
| if (args != null) { | |||||
| if (args.containsKey("name")) | |||||
| sql.append(" AND c.name LIKE :name "); | |||||
| if (args.containsKey("createDateFrom")) | |||||
| sql.append(" AND c.created >= :createDateFrom "); | |||||
| if (args.containsKey("createDateTo")) | |||||
| sql.append(" AND c.created <= :createDateTo "); | |||||
| } | |||||
| sql.append(" ORDER BY c.id asc "); | |||||
| return jdbcDao.queryForList(sql.toString(), args); | |||||
| } | |||||
| public Map<String, Object> loadConsultant(Long id) { | |||||
| String sql = "SELECT" | |||||
| + " c.id, " | |||||
| + " c.name " | |||||
| + " FROM consultant c " | |||||
| + " WHERE c.deleted = FALSE " | |||||
| + " AND c.id = :id " | |||||
| ; | |||||
| return jdbcDao.queryForMap(sql, Map.of("id", id)).orElseThrow(NotFoundException::new); | |||||
| } | |||||
| } | |||||
| @@ -445,7 +445,6 @@ public class PdfService extends AbstractBaseEntityService<Pdf, Long, PdfReposito | |||||
| setValueIfPresent(form, "part2_1a_amount", commonField.getFna_b1_a_amount()); | setValueIfPresent(form, "part2_1a_amount", commonField.getFna_b1_a_amount()); | ||||
| setValueIfPresent(form, "part2_1c_amount", commonField.getFna_b1_d_amount()); | setValueIfPresent(form, "part2_1c_amount", commonField.getFna_b1_d_amount()); | ||||
| setValueIfPresent(form, "part2_1e_desc", commonField.getFna_b1_b()); | |||||
| setValueIfPresent(form, "part2_1f_desc", commonField.getFna_b1_f_other()); | setValueIfPresent(form, "part2_1f_desc", commonField.getFna_b1_f_other()); | ||||
| /* Page1 End */ | /* Page1 End */ | ||||
| /* Page2 Start */ | /* Page2 Start */ | ||||
| @@ -470,6 +469,7 @@ public class PdfService extends AbstractBaseEntityService<Pdf, Long, PdfReposito | |||||
| setValueIfPresent(form, "address2", commonField.getAddress2()); | setValueIfPresent(form, "address2", commonField.getAddress2()); | ||||
| setValueIfPresent(form, "contact", commonField.getContactNo()); | setValueIfPresent(form, "contact", commonField.getContactNo()); | ||||
| setValueIfPresent(form, "email", commonField.getEmail()); | setValueIfPresent(form, "email", commonField.getEmail()); | ||||
| setValueIfPresent(form, "occupation", commonField.getOccupation()); | |||||
| setValueIfPresent(form, "1amount", commonField.getFna_b1_d_amount()); | setValueIfPresent(form, "1amount", commonField.getFna_b1_d_amount()); | ||||
| setValueIfPresent(form, "cb1f", commonField.getFna_b1_f_other()); | setValueIfPresent(form, "cb1f", commonField.getFna_b1_f_other()); | ||||
| @@ -548,7 +548,13 @@ public class PdfService extends AbstractBaseEntityService<Pdf, Long, PdfReposito | |||||
| //only do for check box | //only do for check box | ||||
| if ("Btn".equals(sourceField.getFieldType()) || "Ch".equals(sourceField.getFieldType()) | if ("Btn".equals(sourceField.getFieldType()) || "Ch".equals(sourceField.getFieldType()) | ||||
| && targetField != null && sourceFieldValue != null) { | && targetField != null && sourceFieldValue != null) { | ||||
| targetField.setValue(sourceFieldValue); | |||||
| try{ | |||||
| targetField.setValue(sourceFieldValue); | |||||
| }catch (Exception e){ | |||||
| logger.info("sourceFieldName error:" + sourceFieldName); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -711,7 +717,8 @@ public class PdfService extends AbstractBaseEntityService<Pdf, Long, PdfReposito | |||||
| setValueIfPresent(form2, "part2_1d_1", commonField.getFna_b1b_1()); | setValueIfPresent(form2, "part2_1d_1", commonField.getFna_b1b_1()); | ||||
| setValueIfPresent(form2, "part2_1d_2", commonField.getFna_b1b_2()); | setValueIfPresent(form2, "part2_1d_2", commonField.getFna_b1b_2()); | ||||
| setValueIfPresent(form2, "part2_1d_3", commonField.getFna_b1b_3()); | setValueIfPresent(form2, "part2_1d_3", commonField.getFna_b1b_3()); | ||||
| setValueIfPresent(form2, "part2_1e", commonField.getFna_b1_b()); | |||||
| setValueIfPresent(form2, "part2_1f", commonField.getFna_b1_f()); | setValueIfPresent(form2, "part2_1f", commonField.getFna_b1_f()); | ||||
| setValueIfPresent(form2, "part2_2_a", commonField.getFna_b2_a()); | setValueIfPresent(form2, "part2_2_a", commonField.getFna_b2_a()); | ||||
| @@ -1259,7 +1266,7 @@ public class PdfService extends AbstractBaseEntityService<Pdf, Long, PdfReposito | |||||
| case "part2_1d_2" -> commonField.setFna_b1b_2(fieldValue); | case "part2_1d_2" -> commonField.setFna_b1b_2(fieldValue); | ||||
| case "part2_1d_3" -> commonField.setFna_b1b_3(fieldValue); | case "part2_1d_3" -> commonField.setFna_b1b_3(fieldValue); | ||||
| case "part2_1e_desc" -> commonField.setFna_b1_b(fieldValue); | |||||
| case "part2_1e" -> commonField.setFna_b1_b(fieldValue); | |||||
| case "part2_1f" -> commonField.setFna_b1_f(fieldValue); | case "part2_1f" -> commonField.setFna_b1_f(fieldValue); | ||||
| case "part2_1f_desc" -> commonField.setFna_b1_f_other(fieldValue); | case "part2_1f_desc" -> commonField.setFna_b1_f_other(fieldValue); | ||||
| @@ -0,0 +1,84 @@ | |||||
| package com.ffii.lioner.modules.lioner.pdf.web; | |||||
| import java.util.HashMap; | |||||
| import java.util.Map; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.http.ResponseEntity; | |||||
| import org.springframework.transaction.annotation.Isolation; | |||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import org.springframework.web.bind.ServletRequestBindingException; | |||||
| import org.springframework.web.bind.annotation.CrossOrigin; | |||||
| import org.springframework.web.bind.annotation.GetMapping; | |||||
| import org.springframework.web.bind.annotation.PathVariable; | |||||
| import org.springframework.web.bind.annotation.PostMapping; | |||||
| import org.springframework.web.bind.annotation.RequestBody; | |||||
| import org.springframework.web.bind.annotation.RequestMapping; | |||||
| import org.springframework.web.bind.annotation.RestController; | |||||
| import com.ffii.core.response.RecordsRes; | |||||
| import com.ffii.core.utils.CriteriaArgsBuilder; | |||||
| import com.ffii.core.utils.Params; | |||||
| import com.ffii.lioner.modules.lioner.client.req.UpdateClientReq; | |||||
| import com.ffii.lioner.modules.lioner.pdf.req.UpdateConsultantReq; | |||||
| import com.ffii.lioner.modules.lioner.pdf.service.ConsultantService; | |||||
| import jakarta.servlet.http.HttpServletRequest; | |||||
| import jakarta.validation.Valid; | |||||
| @RestController | |||||
| @RequestMapping("/consultant") | |||||
| @CrossOrigin(origins = "", allowedHeaders = "") | |||||
| public class ConsultantController { | |||||
| private ConsultantService consultantService; | |||||
| private static final Logger logger = LoggerFactory.getLogger(ConsultantController.class); | |||||
| public ConsultantController(ConsultantService consultantService) { | |||||
| this.consultantService = consultantService; | |||||
| } | |||||
| // @GetMapping("/{id}") | |||||
| // public List<Map<String, Object>> get(@PathVariable Long id) { | |||||
| // return Map.of( | |||||
| // Params.DATA, consultantService.findByConsultantId(id).orElseThrow(NotFoundException::new) | |||||
| // ); | |||||
| // } | |||||
| @GetMapping | |||||
| public RecordsRes<Map<String, Object>> list(HttpServletRequest request) throws ServletRequestBindingException { | |||||
| return new RecordsRes<>(consultantService.list( | |||||
| CriteriaArgsBuilder.withRequest(request) | |||||
| .addStringLike("name") | |||||
| .addDate("createDateFrom") | |||||
| .addDate("createDateTo") | |||||
| .addStringLike("remarks") | |||||
| .build())); | |||||
| } | |||||
| @GetMapping("/{id}") | |||||
| public Map<String, Object> get(@PathVariable Long id) { | |||||
| return consultantService.loadConsultant(id); | |||||
| } | |||||
| @Transactional(isolation = Isolation.SERIALIZABLE, rollbackFor = Exception.class, readOnly = false) | |||||
| @PostMapping("/save") | |||||
| public Map<String, Object> saveOrUpdate(@RequestBody @Valid UpdateConsultantReq req) { | |||||
| logger.info("saveOrUpdate"); | |||||
| return Map.of( | |||||
| Params.DATA,consultantService.saveOrUpdate(req) | |||||
| ); | |||||
| } | |||||
| @GetMapping("/combo") | |||||
| public RecordsRes<Map<String, Object>> getCombo(HttpServletRequest request) throws ServletRequestBindingException { | |||||
| return new RecordsRes<>(consultantService.list( | |||||
| CriteriaArgsBuilder.withRequest(request) | |||||
| .build())); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,17 @@ | |||||
| --liquibase formatted sql | |||||
| --changeset vin:add consultant table | |||||
| CREATE TABLE `consultant` ( | |||||
| `id` int NOT NULL AUTO_INCREMENT, | |||||
| `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | |||||
| `createdBy` int DEFAULT NULL, | |||||
| `version` int NOT NULL DEFAULT '0', | |||||
| `modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | |||||
| `modifiedBy` int DEFAULT NULL, | |||||
| `deleted` tinyint(1) NOT NULL DEFAULT '0', | |||||
| `name` VARCHAR(500) NOT NULL, | |||||
| PRIMARY KEY (`id`) | |||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |||||