Commit 48748760 authored by akbar fauzi's avatar akbar fauzi

service /orafin/workorder/dgi-api/v1/inv2/add

parent b2706f2d
This diff is collapsed.
......@@ -86,6 +86,12 @@
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-javanica</artifactId>
<version>1.5.12</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.eksad.ddms</groupId>
<artifactId>ddms-common</artifactId>
......@@ -98,6 +104,11 @@
<version>1.0-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.eksad.ddms</groupId>
<artifactId>ddms-masterdata-h3-svc</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
......
package com.eksad.masterdata.controller.apidgi.invoicenjbnsc;
import com.eksad.ddms.common.dto.*;
import com.eksad.masterdata.service.invoicenjbnsc.DGIInvoiceNjbNscService;
import com.eksad.ddms.common.h2.dto.apigateway.request.PullNotaJBSCRequestDTO;
import com.eksad.ddms.common.h2.dto.ui.ResponseErrorDTO;
......@@ -12,6 +13,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -19,7 +21,9 @@ import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
......@@ -78,6 +82,12 @@ public class DGIInvoiceNjbNscRESTController {
return pullService.postRequestPullNJBNSC(dto);
}
@RequestMapping(value = "/dgi-api/v1/inv2/add",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> postWorkOrderOrafin(@RequestHeader("GvtDealerId") String dealerid, @RequestBody GatewayOrafinDTO dto) throws IOException {
return pullService.postWorkOrderOrafin(dto, dealerid);
}
}
package com.eksad.masterdata.service.invoicenjbnsc;
import com.eksad.ddms.common.dto.GatewayOrafinDTO;
import com.eksad.ddms.common.dto.GatewayPartOrafinDTO;
import com.eksad.ddms.common.dto.GatewayServiceOrafinDTO;
import com.eksad.ddms.common.dto.ResponseOrafinDTO;
import com.eksad.ddms.common.h2.dto.apigateway.request.PullNotaJBSCRequestDTO;
import com.eksad.ddms.common.h2.dto.ui.ResponseErrorDTO;
import com.eksad.ddms.common.uri.apigateway.APIGatewayURI;
import com.eksad.masterdata.common.RequestUtil;
import com.eksad.masterdata.controller.apidgi.invoicenjbnsc.DGIInvoiceNjbNscRESTController;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
......@@ -12,6 +21,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -19,8 +29,12 @@ import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
@Service
public class DGIInvoiceNjbNscService {
......@@ -114,4 +128,122 @@ public class DGIInvoiceNjbNscService {
}
}
}
@HystrixCommand(fallbackMethod = "defaultPostFallback")
public ResponseEntity<Object> postWorkOrderOrafin(GatewayOrafinDTO dto, String dealerid) throws IOException {
try {
System.out.println(new ObjectMapper().writeValueAsString(dto));
List<String> pass = new ArrayList<>();
if (dto.getNoWorkOrder().contains("WO")) {
//kalo wo njb wajib
if (dto.getNoNJB() == null || dto.getNoNJB().isEmpty()) {
throw new Exception("No NJB Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getTanggalNJB() == null || dto.getTanggalNJB().isEmpty()) {
throw new Exception("Tanggal NJB Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getTotalHargaNJB() == null || dto.getTotalHargaNJB() == 0 || dto.getTotalHargaNJB().isNaN()) {
throw new Exception("Total Harga NJB Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getHondaIdSA() == null || dto.getHondaIdSA().isEmpty()) {
throw new Exception("Honda Id SA Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getHondaIdMekanik() == null || dto.getHondaIdMekanik().isEmpty()) {
throw new Exception("Honda Id Mekanik Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getNjb().isEmpty() || dto.getNjb() == null) {
throw new Exception("NJB Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getNoNSC() == null || dto.getNoNSC().isEmpty() && !dto.getTanggalNSC().isEmpty()) {
throw new Exception("No NSC harus dilengkapi");
} else if (dto.getNoNSC() == null || dto.getNoNSC().isEmpty() && dto.getTotalHargaNSC() != 0) {
throw new Exception("NO NSC harus dilengkapi");
} else if (dto.getNoNSC() == null || dto.getNoNSC().isEmpty() && !dto.getNsc().isEmpty()) {
throw new Exception("No NSC harus dilengkapi");
} else if (!dto.getNoNSC().isEmpty() && dto.getTanggalNSC().isEmpty()) {
throw new Exception("Tanggal NSC harus dilengkapi");
} else if (!dto.getNoNSC().isEmpty() && dto.getTotalHargaNSC() == 0) {
throw new Exception("Total Harga NSC harus dilengkapi");
} else if (!dto.getNoNSC().isEmpty() && dto.getNsc().isEmpty()) {
throw new Exception("NSC harus dilengkapi");
}
}
if (dto.getNoWorkOrder().contains("SO")) {
//kalo so nsc wajib
if (dto.getNoNSC() == null || dto.getNoNSC().isEmpty()) {
throw new Exception("No NSC Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getTanggalNSC() == null || dto.getTanggalNSC().isEmpty()) {
throw new Exception("Tanggal NSC Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getTotalHargaNSC() == null || dto.getTotalHargaNSC() == 0 || dto.getTotalHargaNSC().isNaN()) {
throw new Exception("Total Harga Tidak Boleh Kosong, Mohon Periksa Kembali Data");
}
if (dto.getNoNJB() == null || dto.getNoNJB().isEmpty() && !dto.getTanggalNJB().isEmpty()) {
throw new Exception("No NJB harus dilengkapi");
} else if (dto.getNoNJB() == null || dto.getNoNJB().isEmpty() && dto.getTotalHargaNJB() != 0) {
throw new Exception("No NJB harus dilengkapi");
} else if (dto.getNoNJB() == null || dto.getNoNJB().isEmpty() && !dto.getHondaIdMekanik().isEmpty()) {
throw new Exception("No NJB harus dilengkapi");
} else if (dto.getNoNJB() == null || dto.getNoNJB().isEmpty() && !dto.getHondaIdSA().isEmpty()) {
throw new Exception("No NJB harus dilengkapi");
} else if (dto.getNoNJB() == null || dto.getNoNJB().isEmpty() && !dto.getNjb().isEmpty()) {
throw new Exception("No NJB harus dilengkapi");
} else if (!dto.getNoNJB().isEmpty() && dto.getTanggalNJB().isEmpty()) {
throw new Exception("Tanggal NJB harus dilengkapi");
} else if (!dto.getNoNJB().isEmpty() && dto.getTotalHargaNJB() == 0) {
throw new Exception("Total Harga NJB harus dilengkapi");
} else if (!dto.getNoNJB().isEmpty() && dto.getHondaIdMekanik().isEmpty()) {
throw new Exception("Honda Id Mekanik harus dilengkapi");
} else if (!dto.getNoNJB().isEmpty() && dto.getHondaIdSA().isEmpty()) {
throw new Exception("Honda Id SA harus dilengkapi");
} else if (!dto.getNoNJB().isEmpty() && dto.getNjb().isEmpty()) {
throw new Exception("NJB harus dilengkapi");
}
}
// nullEmptyExceptionHelper(dto,pass);
exceptionHelperNotMandatory(dto.getCreatedTime(), "dd/MM/yyyy HH:mm:ss", "createdTime");
exceptionHelperNotMandatory(dto.getModifiedTime(), "dd/MM/yyyy HH:mm:ss", "modifiedTime");
exceptionHelperNotMandatory(dto.getTanggalNJB(), "dd/MM/yyyy HH:mm:ss", "tanggalNJB");
exceptionHelperNotMandatory(dto.getTanggalNSC(), "dd/MM/yyyy HH:mm:ss", "tanggalNSC");
dealerValidation(dealerid, dto.getDealerId());
if (!dto.getNjb().isEmpty() || dto.getNjb() != null) {
for (GatewayServiceOrafinDTO njb : dto.getNjb()) {
exceptionHelperNotMandatory(njb.getCreatedTime(), "dd/MM/yyyy HH:mm:ss", "njb createdTime");
exceptionHelperNotMandatory(njb.getModifiedTime(), "dd/MM/yyyy HH:mm:ss", "njb modifiedTime");
}
}
if (!dto.getNsc().isEmpty() || dto.getNsc() != null) {
for (GatewayPartOrafinDTO nsc : dto.getNsc()) {
exceptionHelperNotMandatory(nsc.getCreatedTime(), "dd/MM/yyyy HH:mm:ss", "nsc createdTime");
exceptionHelperNotMandatory(nsc.getModifiedTime(), "dd/MM/yyyy HH:mm:ss", "nsc modifiedTime");
}
}
} catch (Exception ex) {
Logger.getLogger(DGIInvoiceNjbNscRESTController.class.getName()).log(Level.SEVERE, null, ex);
ResponseErrorDTO res = new ResponseErrorDTO();
res.setMessage(ex.getMessage());
res.setStatus(HttpStatus.BAD_REQUEST.value());
res.setError(HttpStatus.BAD_REQUEST.getReasonPhrase());
return ResponseEntity.badRequest().body(res);
}
Object data = pushNJBNSC(dto);
return ResponseEntity.status(HttpStatus.OK).body(data);
}
private Object pushNJBNSC(GatewayOrafinDTO dto) throws IOException {
ObjectMapper obm = new ObjectMapper();
ResponseEntity<String> response = restTemplate.exchange(
md_h2_url
+ APIGatewayURI.PUSH_NSC_NJB.getUri(),
HttpMethod.POST,
new HttpEntity<>(dto, requestUtil.getPreFormattedRequestWithToken().getHeaders()),
String.class);
ResponseOrafinDTO resOra = obm.readValue(response.getBody(), new TypeReference<ResponseOrafinDTO>() { });
return resOra;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment