@@ -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; |