@@ -0,0 +1,53 @@ | |||||
package com.ffii.tsms.modules.data.service | |||||
import com.ffii.core.support.AbstractBaseEntityService | |||||
import com.ffii.core.support.JdbcDao | |||||
import com.ffii.tsms.modules.data.entity.Customer | |||||
import com.ffii.tsms.modules.data.entity.CustomerType | |||||
import com.ffii.tsms.modules.data.entity.CustomerRepository | |||||
import com.ffii.tsms.modules.data.entity.CustomerTypeRepository | |||||
import com.ffii.tsms.modules.data.web.models.SaveCustomerResponse | |||||
import com.ffii.tsms.modules.project.web.models.SaveCustomerRequest | |||||
import org.springframework.beans.BeanUtils | |||||
import org.springframework.stereotype.Service | |||||
import java.util.Optional | |||||
@Service | |||||
open class DashboardService( | |||||
private val customerRepository: CustomerRepository, | |||||
private val customerTypeRepository: CustomerTypeRepository, | |||||
private val customerSubsidiaryService: CustomerSubsidiaryService, | |||||
private val customerContactService: CustomerContactService, | |||||
private val jdbcDao: JdbcDao | |||||
) { | |||||
fun CustomerSubsidiary(args: Map<String, Any>): List<Map<String, Any>> { | |||||
val sql = StringBuilder("select" | |||||
+ " c.id as customerId," | |||||
+ " c.name as customerName," | |||||
+ " c.code as customerCode," | |||||
+ " c.address as customerAddress," | |||||
+ " c.district as cutomerDistrict," | |||||
+ " c.brNo as customerBrNo," | |||||
+ " c.typeId as customerTypeId," | |||||
+ " s.id as subsidiaryId," | |||||
+ " s.name as subsidiaryName," | |||||
+ " s.code as subsidiaryCode," | |||||
+ " s.address as subsidiaryAddress," | |||||
+ " s.district as subsidiaryDistrict," | |||||
+ " s.brNo as subsidiaryBrNo," | |||||
+ " s.typeId as subsidiaryTypeId" | |||||
+ " from customer c" | |||||
+ " left join customer_subsidiary cs on c.id = cs.customerId" | |||||
+ " left join subsidiary s on cs.subsidiaryId = s.id" | |||||
+ " where c.deleted = 0" | |||||
) | |||||
if (args != null) { | |||||
if (args.containsKey("customerName")) | |||||
sql.append(" AND c.name = :customerName"); | |||||
if (args.containsKey("customerCode")) | |||||
sql.append(" AND c.code = :customerCode"); | |||||
} | |||||
return jdbcDao.queryForList(sql.toString(), args) | |||||
} | |||||
} |
@@ -0,0 +1,52 @@ | |||||
package com.ffii.tsms.modules.data.web | |||||
import com.ffii.tsms.modules.data.entity.Customer | |||||
import com.ffii.tsms.modules.data.entity.CustomerType | |||||
import com.ffii.tsms.modules.data.service.CustomerContactService | |||||
import com.ffii.tsms.modules.data.service.CustomerService | |||||
import com.ffii.tsms.modules.data.service.CustomerSubsidiaryService | |||||
import com.ffii.tsms.modules.data.service.DashboardService | |||||
import com.ffii.tsms.modules.data.web.models.CustomerResponse | |||||
import com.ffii.tsms.modules.data.web.models.SaveCustomerResponse | |||||
import com.ffii.tsms.modules.project.web.models.SaveCustomerRequest | |||||
import org.springframework.web.bind.annotation.GetMapping | |||||
import org.springframework.web.bind.annotation.RequestMapping | |||||
import org.springframework.web.bind.annotation.RestController | |||||
import org.springframework.web.bind.annotation.RequestBody | |||||
import org.springframework.web.bind.annotation.PostMapping | |||||
import org.springframework.web.bind.annotation.PathVariable | |||||
import jakarta.validation.Valid | |||||
import org.springframework.http.HttpStatus | |||||
import jakarta.servlet.http.HttpServletRequest | |||||
import org.springframework.web.bind.annotation.DeleteMapping | |||||
import org.springframework.web.bind.annotation.ResponseStatus | |||||
import com.ffii.core.response.RecordsRes | |||||
import com.ffii.core.utils.CriteriaArgsBuilder | |||||
@RestController | |||||
@RequestMapping("/dashboard") | |||||
class DashboardController( | |||||
private val customerService: CustomerService, | |||||
private val customerSubsidiaryService: CustomerSubsidiaryService, | |||||
private val customerContactService: CustomerContactService, | |||||
private val dashboardService: DashboardService | |||||
) { | |||||
@GetMapping("/searchCustomerSubsidiary") | |||||
fun searchCustomerSubsidiary(request: HttpServletRequest?): List<Map<String, Any>> { | |||||
val customerName = request?.getParameter("customerName") | |||||
val customerCode = request?.getParameter("customerCode") | |||||
val args = mutableMapOf<String, Any>() | |||||
if (customerName != null) { | |||||
args["customerName"] = customerName | |||||
} | |||||
if (customerCode != null) { | |||||
args["customerCode"] = customerCode | |||||
} | |||||
return dashboardService.CustomerSubsidiary(args) | |||||
// return dashboardService.CustomerSubsidiary( | |||||
// CriteriaArgsBuilder.withRequest(request) | |||||
// .build() | |||||
// ) | |||||
} | |||||
} |